Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.centryos.xyz/llms.txt

Use this file to discover all available pages before exploring further.

This webhook event notifies your application when withdrawal (payout) events occur. You receive events across the full lifecycle of a payout: PENDING when initiated, PROCESSING_PAY_OUT when accepted by the payment network (ACH/RTP only), SUCCESS when settled, and FAILED if the payout could not be completed.

Event Schema

FieldTypeDescription
eventTypestringAlways WITHDRAWAL
statusstringPENDING, PROCESSING_PAY_OUT, SUCCESS, or FAILED
payload.transactionIdstringInternal transaction identifier
payload.walletIdstringWallet the funds were sent from
payload.entityIdstringID of the business that owns the wallet
payload.entityTypestringUSER
payload.entrystringDEBIT
payload.methodstringPayment method (e.g. BANK_TRANSFER, DEBIT_CARD)
payload.amountnumberNet payout amount (after fees)
payload.feeChargedstringFee amount charged
payload.currencystringCurrency code (e.g. USD)
payload.summarystringHuman-readable summary
payload.descriptionstringSame as summary
payload.reasonstringPresent on FAILED events — merchant-safe explanation. Empty string on success.
payload.timestampnumberUnix timestamp in milliseconds
payload.paymentLinkobjectPayment link details. Present when the withdrawal was initiated via a payment link token.

Statuses

StatusWhen it fires
PENDINGImmediately when the withdrawal is initiated
PROCESSING_PAY_OUTACH or RTP payout has been accepted by the network (not yet settled)
SUCCESSPayout has settled — funds delivered to recipient
FAILEDPayout could not be completed; check payload.reason for details
Card payouts go directly from PENDINGSUCCESS (no PROCESSING_PAY_OUT step).

Example: PENDING

Sent immediately when a withdrawal is initiated.
{
  "eventType": "WITHDRAWAL",
  "status": "PENDING",
  "payload": {
    "description": "Withdrawal initiated",
    "method": "BANK_TRANSFER",
    "transactionId": "7794112b-094e-443d-8454-7192aee10557",
    "walletId": "44805633-c437-4140-a312-0e626c6feb19",
    "entityId": "9b5e1e96-5796-4648-94d4-62253728291e",
    "entityType": "USER",
    "summary": "Withdrawal initiated",
    "entry": "DEBIT",
    "amount": 20.87,
    "currency": "USD",
    "timestamp": 1771347620788,
    "feeCharged": "2.04174"
  }
}

Example: PROCESSING_PAY_OUT

Sent when an ACH or RTP payout has been submitted to and accepted by the payment network. This confirms the payment is in transit but not yet settled in the recipient’s account.
{
  "eventType": "WITHDRAWAL",
  "status": "PROCESSING_PAY_OUT",
  "payload": {
    "description": "Payment sent",
    "method": "BANK_TRANSFER",
    "transactionId": "7794112b-094e-443d-8454-7192aee10557",
    "walletId": "44805633-c437-4140-a312-0e626c6feb19",
    "entityId": "9b5e1e96-5796-4648-94d4-62253728291e",
    "entityType": "USER",
    "summary": "Payment sent",
    "entry": "DEBIT",
    "amount": 20.87,
    "currency": "USD",
    "timestamp": 1771347635000,
    "feeCharged": "2.04174",
    "reason": ""
  }
}

Example: SUCCESS

Sent when the payout has settled and the recipient has received the funds.
{
  "eventType": "WITHDRAWAL",
  "status": "SUCCESS",
  "payload": {
    "description": "Payment sent",
    "method": "BANK_TRANSFER",
    "transactionId": "7794112b-094e-443d-8454-7192aee10557",
    "walletId": "44805633-c437-4140-a312-0e626c6feb19",
    "entityId": "9b5e1e96-5796-4648-94d4-62253728291e",
    "entityType": "USER",
    "summary": "Payment sent",
    "entry": "DEBIT",
    "amount": 20.87,
    "currency": "USD",
    "timestamp": 1771347650000,
    "feeCharged": "2.04174",
    "reason": "",
    "paymentLink": {}
  }
}

Example: FAILED

Sent when the payout could not be completed. The reason field contains a merchant-safe explanation.
{
  "eventType": "WITHDRAWAL",
  "status": "FAILED",
  "payload": {
    "description": "Payment failed",
    "method": "BANK_TRANSFER",
    "transactionId": "7794112b-094e-443d-8454-7192aee10557",
    "walletId": "44805633-c437-4140-a312-0e626c6feb19",
    "entityId": "9b5e1e96-5796-4648-94d4-62253728291e",
    "entityType": "USER",
    "summary": "Payment failed",
    "entry": "DEBIT",
    "amount": 20.87,
    "currency": "USD",
    "timestamp": 1771347660000,
    "feeCharged": "2.04174",
    "reason": "Recipient account not found."
  }
}

Possible reason values on FAILED

reasonScenario
Recipient account not found.The recipient’s bank account could not be located
Duplicate transaction detected.A duplicate payout was submitted
Transaction declined for compliance reasons.Payout declined due to compliance or business rules
Payment could not be processed.General processing failure
Your payment could not be processed. Please try a different card.Card-specific failure
Payment was cancelled.Payout was cancelled

Missed a webhook?

If your system did not receive a webhook delivery, use the Get Transaction Webhook Payload endpoint to fetch the current payload for any transaction by its ID.