eventId, eventType, data, and timestamp envelope described in the Webhooks Overview.
Checkout Events
Checkout events are emitted when a Checkout Wallet reaches a terminal state. Usedata.reference to reconcile the event to your order and eventId to deduplicate deliveries.
checkout.completed
Fired after the exactamountPayable is confirmed and merchant settlement is recorded. This is the only checkout event on which you should fulfill an order.
sender.bankCode is exposed when the provider supplies a sender bank code. sender.bankName can be null when the upstream provider does not supply the bank name.
checkout.failed
Fired when checkout processing fails, including an incoming transfer that does not equalamountPayable. Do not fulfill the order.
checkout.expired
Fired when a pending checkout reaches its expiry or is manually expired.checkout.reversed
Fired after an incoming checkout payment is returned to the sender. This can follow a failed temporary-account payment, such as an amount mismatch.Payout Events
Master-wallet payout events are emitted when a payout reaches a terminal state. Usedata.reference to reconcile with your request and data.payoutId when retrieving the payout through the API.
payout.completed
Fired when the payout completes successfully. A same-business transfer may produce this event immediately during the create request.payout.failed
Fired when a payout fails and does not have a confirmed full reversal. Do not automatically create a replacement payout. Retrieve the payout and contact support if funds remain reserved.payout.reversed
Fired when the payout does not complete and FossaPay confirms that the reserved payout amount and fee have been returned to the merchant master wallet.route value is one of same_business, fossapay_cross_business, or external_bank. Same-business payouts have a zero fee.
Bulk Payout Events
Bulk payout events are terminal and refer to the FossaPay batch withdata.batchId. Verify the webhook signature and deduplicate deliveries using the envelope eventId.

