Payout webhooks

Subscribe to payout webhooks for updates on status changes

Early Preview

This feature is currently in Beta. Please contact Rainforest support or your Platform Success Manager for more information on Payouts.

Webhooks can be configured to receive updates on every status change that occurs through the life cycle of a payout. For how to configure webhooks, see Webhooks.


Payout events


Events

It is recommended that your platform listen to the following Rainforest webhooks to notify your platform, the merchant, and the payout receiver on key events. Below is each webhook event and whether the following notifications should be sent:

  • Internal Notification - notify your platform support team so they can assist your merchants
  • Merchant Notification - notify your merchants via an email or alert within your platform
  • Payout Receiver Notification - notify the payout receiver of the status of the payout
WebhookInternal NotificationMerchant NotificationPayout Receiver Notification
payout.scheduled❌✅❌
payout.in_review✅✅❌
payout.processing❌❌✅
payout.succeeded❌✅❌
payout.failed✅✅❌
payout.returned✅✅✅
payout.canceled❌✅❌

Payload

The webhook payload consists of:

  • data - represents all payout detail fields returned by the get payout endpoint
  • event_type - payout events denoted by the format of payout.{payout_status}
{
    "data": {
        "payout_id": "pyo_33F9AbCdEfGhIjKlMnOpQrStUvW",
        // ...
        "status": "PROCESSING",
        // ...
    },
    "event_type": "payout.processing"
}

Scheduled

Event: payout.scheduled

Triggered when a payout is created and scheduled to process on its scheduled payout date, or when a payout is approved after a risk review before its scheduled payout date.

FieldDescription
payout_idThe unique payout identifier.
payout_config_idThe unique payout config identifier.
merchant_idThe unique merchant identifier.
payout_receiver_idThe unique payout receiver identifier.
payment_method_idThe unique payment method identifier of the payout receiver's bank account.
categoryThe payout category.
idempotency_keyA unique identifier provided by the platform.
amountThe amount of the payout, in minor units.
currency_codeThree-letter ISO currency code, in uppercase. Currently, only USD is supported.
billing_feeThe payout fee incurred for the payout, in minor units.
statusThe status of the payout, will be SCHEDULED.
requested_payout_dateThe date requested to process the payout.
scheduled_payout_dateThe date the payout is scheduled to process.
estimated_arrival_dateThe estimated date the funds will arrive in the payout receiver's bank account.
metadataValid JSON key-value object specified by the platform to store additional information on the payout.
created_atDate and time payout was created at in UTC RFC 3339 format.
scheduled_atDate and time payout was scheduled at in UTC RFC 3339 format.

In review

Event: payout.in_review

Triggered when a payout is flagged for risk review. See In review.

FieldDescription
payout_idThe unique payout identifier.
statusThe status of the payout, will be IN_REVIEW.
updated_atDate and time payout was updated at in UTC RFC 3339 format.

Processing

Event: payout.processing

Triggered when a payout is processing and can no longer be edited or canceled.

FieldDescription
payout_idThe unique payout identifier.
statusThe status of the payout, will be PROCESSING.
processed_atDate and time payout was processed at in UTC RFC 3339 format.
updated_atDate and time payout was updated at in UTC RFC 3339 format.

Succeeded

Event: payout.succeeded

Triggered when a payout has completed processing and the funds were sent to the payout receiver.

FieldDescription
payout_idThe unique payout identifier.
statusThe status of the payout, will be SUCCEEDED.
updated_atDate and time payout was updated at in UTC RFC 3339 format.

Failed

Event: payout.failed

Triggered when a payout could not be processed. The amount goes back to the merchant's available balance.

FieldDescription
payout_idThe unique payout identifier.
statusThe status of the payout, will be FAILED.
failure_codeThe code explaining why the payout failed. See payout failure codes.
failure_descThe description explaining why the payout failed.
estimated_arrival_dateWill be set to null.
failed_atDate and time payout failed at in UTC RFC 3339 format.
updated_atDate and time payout was updated at in UTC RFC 3339 format.

Returned

Event: payout.returned

Triggered when a payout is returned by the payout receiver's bank after it was processed. The amount goes back to the merchant's available balance.

FieldDescription
payout_idThe unique payout identifier.
statusThe status of the payout, will be RETURNED.
return_codeThe ACH return code explaining why the payout was returned.
return_descThe description of the ACH return code.
estimated_arrival_dateWill be set to null.
returned_atDate and time payout was returned at in UTC RFC 3339 format.
updated_atDate and time payout was updated at in UTC RFC 3339 format.

Canceled

Event: payout.canceled

Triggered when a payout is canceled before it was processed, by the merchant, the platform, or after a risk review. The amount goes back to the merchant's available balance.

FieldDescription
payout_idThe unique payout identifier.
statusThe status of the payout, will be CANCELED.
cancel_reasonThe reason the payout was canceled, if provided.
estimated_arrival_dateWill be set to null.
canceled_atDate and time payout was canceled at in UTC RFC 3339 format.
updated_atDate and time payout was updated at in UTC RFC 3339 format.

Did this page help you?