Webhooks
One of the great features of Loop's integration with Stripe is that you can continue to use Stripe's webhooks for any automations you have. Since Loop updates the Customer and Invoice record automatically, Stripe webhooks continue to fire.
Stripe webhooks
When an invoice's payment status in Stripe changes to paid
, the invoice.paid
event in Stripe will be emitted. We suggest you also listen to the payment.intent_succeeded
to ensure you are notified of a payment.
Common confusion
When a Loop payment occurs, a payment_intent.canceled
event is emitted. This is because Stripe will want to charge the payment method on file (fiat). Thus, Loop cancels this event and instead updates the invoice to be paid outside of Stripe."
The invoice.paid
event will emit once the payment takes place on chain and Loop marks the invoice as paid. There is nothing you need to do here but be aware of this.
If you have Stripe already configured, you may also already be listening to the invoice.charge.succeeded
event from Stripe. This invoice.charge.succeeded
event is triggered specifically when a single charge associated with an invoice successfully completes, while an invoice.paid
event is triggered whenever an entire invoice is marked as paid, which can include scenarios where the payment was manually marked as paid outside of a standard charge process (which is the case when you use Loop!). As a result, it is important to ensure you are listening to invoice.paid
.
Loop webhooks
If you would like, you can still listen to webhook events emitted from Loop. Loop has its own set of webhook events separate from Stripe and listening to these events is not required if you are using the Stripe integration. When running testing, some teams like to listen to Loop webhooks in Slack. If you would like to do this, let us know.
Updated 3 days ago