title: What's the right magento observer event to capture order paid?
body: <p>I'm trying to send orders to a third-party after and ONLY after an order has been paid and has now been set to 'Processing' as status. What's the best observer to use to set up this to work for all payments types?</p>
  
  <p>After reading several sources it seems like:</p>
  
  <pre><code>sales_order_invoice_pay
  </code></pre>
  
  <p>Should work for all payment methods but it seems like it has been removed on Magento 1.9: <a href="http://rabee.me/codes/magento/cheatsheet/1.9/" rel="nofollow noreferrer">http://rabee.me/codes/magento/cheatsheet/1.9/</a> <strong>(<em>This list is incomplete, please check the updates below</em> )</strong></p>
  
  <p>The other option was:</p>
  
  <pre><code>'sales_order_payment_pay'
  </code></pre>
  
  <p>But when I test it setting the payment method to "Check / Money order" it is NOT fired after I generate the invoice on backend using Order > Invoice > Submit Invoice</p>
  
  <p>Is this method only called with the other payment methods? (paypal/authorize.net)</p>
  
  <p><strong>UPDATE:</strong></p>
  
  <p>After reading: this other question it seems like the only way to guarantee that I'm exporting the order AFTER a payment (online or offline) has been made is to capture when an invoice is created, and that for Magento 1.9 the right observer is:</p>
  
  <pre><code>sales_order_invoice_register
  </code></pre>
  
  <p>Are invoices automatically created and sent after payment on online methods paypal/authorize.net? Will this still be true when using them on sandbox/test mode?</p>
  
  <p><strong>UPDATE 2:</strong></p>
  
  <p>After much testing it seems that <code>'sales_order_invoice_pay'</code> is the right method to use to achieve what I needed.</p>