Skip to main content

Payout webhooks

Overview​

Payout webhooks notify your system about payout status changes, payout confirmation, transaction hash receipt, and validation errors.

Use these webhooks to keep payout statuses synchronized in your system. After receiving a webhook, we recommend requesting the payout details through the API to verify the latest state.

Webhook events​

Event typeTriggerMerchant action
PAYOUT_CHANGE_STATUSPayout status changed to CREATION_IN_PROGRESS, PENDING_CONFIRMATION, IN_PROGRESS, CANCELED, FAILED, PARTIAL, or COMPLETED.Update payout status in your system and request payout details if needed.
PAYOUT_CONFIRMEDPayout has been confirmed by all required process participants.Continue tracking payout status.
PAYOUT_HASH_RECEIVEDPayout received a blockchain transaction hash but has not yet received all network confirmations.Save the transaction hash and continue tracking final status.
PAYOUT_VALIDATION_ERRORValidation error occurred during payout processing.Check validation details and create a new payout with corrected data, if needed.

Handling recommendations​

RecommendationDescription
Verify webhook dataAfter receiving a webhook, request payout details using [POST] payout or [POST] payout/mass.
Use idempotencyWebhook delivery can be repeated. Process webhooks idempotently by event type and payout identifier.
Track final statusesTreat COMPLETED, FAILED, and CANCELED as final statuses. For mass payouts, PARTIAL means one or more payouts from the list were not completed successfully.
Store transaction hashUse PAYOUT_HASH_RECEIVED to store the blockchain hash before the payout reaches a final status.

Payloads​

PAYOUT_CHANGE_STATUS​

ParameterTypeDescription
hashstringTransaction hash, if available.
typestringEvent type: PAYOUT_CHANGE_STATUS.
parentExternalIdnumberSystem ID of the payout.
createdDatestringDate and time of payout creation.
payoutStatusstringCurrent payout status.
idempotencyKeystringExternal ID generated by the merchant while creating the payout through API.
currencystringPayout currency.
externalIdstringExternal identifier passed by the merchant when creating the payout.

PAYOUT_CONFIRMED​

ParameterTypeDescription
typestringEvent type: PAYOUT_CONFIRMED.
parentExternalIdnumberSystem ID of the payout.
createdDatestringDate and time of payout creation.
approvedarrayList of users who approved the payout.
idempotencyKeystringExternal ID generated by the merchant while creating the payout through API.
currencystringPayout currency.
externalIdstringExternal identifier passed by the merchant when creating the payout.

PAYOUT_HASH_RECEIVED​

ParameterTypeDescription
hashstringBlockchain transaction hash.
typestringEvent type: PAYOUT_HASH_RECEIVED.
parentExternalIdnumberSystem ID of the payout.
createdDatestringDate and time of payout creation.
payoutStatusstringCurrent payout status.
idempotencyKeystringExternal ID generated by the merchant while creating the payout through API.
currencystringPayout currency.
externalIdstringExternal identifier passed by the merchant when creating the payout.

PAYOUT_VALIDATION_ERROR​

ParameterTypeDescription
typestringEvent type: PAYOUT_VALIDATION_ERROR.
parentExternalIdnumberSystem ID of the payout.
messagestringValidation error message.
createdDatestringDate and time of payout creation.
dealWithdrawalIdnumberSystem ID of the withdrawal where the validation error occurred.
validationStatusstringValidation error reason.
idempotencyKeystringExternal ID generated by the merchant while creating the payout through API.
currencystringPayout currency.
externalIdstringExternal identifier passed by the merchant when creating the payout.
DocumentLink
Webhook subscriptionsWebhook subscriptions
Single payout APIHow to create a single payout via API
Mass payout APIHow to create a mass payout via API