Skip to main content

Withdrawal Webhook

Webhooks are automatic notifications that the API sends when a withdrawal event happens. That way you do not have to keep polling the API: just receive and process the event when it arrives.

If you work with transactions, see Transaction Webhook.

Supported events​

EventWhen it is sent
WITHDRAWAL_CREATEDWhen the withdrawal is created
WITHDRAWAL_APPROVEDWhen the withdrawal is approved
WITHDRAWAL_PROCESSEDWhen the withdrawal is processed
WITHDRAWAL_APPROVED_AND_PROCESSEDWhen the withdrawal is approved and processed
WITHDRAWAL_CANCELEDWhen the withdrawal is canceled
WITHDRAWAL_REFUNDEDWhen the withdrawal is refunded
WITHDRAWAL_REJECTEDWhen the withdrawal is rejected
WITHDRAWAL_FAILEDWhen the withdrawal fails

Payload format​

FieldTypeRequiredDescription
typestring (enum) - WITHDRAWAL_CREATED, WITHDRAWAL_APPROVED, WITHDRAWAL_PROCESSED, WITHDRAWAL_APPROVED_AND_PROCESSED, WITHDRAWAL_CANCELED, WITHDRAWAL_REFUNDED, WITHDRAWAL_REJECTED, WITHDRAWAL_FAILEDYesType of the event sent in the webhook
dataobjectYesWithdrawal data

Base payload​

These fields are present in every withdrawal webhook.

FieldTypeRequiredDescription
idstring (UUID)YesUnique identifier of the withdrawal
externalCodestringYesYour reference code
amountnumberYesWithdrawal amount, in cents
methodstring (enum) - PIXYesWithdrawal method
statusstring (enum) - PENDING, PROCESSING, PROCESSED, FAILED, CANCELED, REFUNDED, REJECTED, PENDING_COMPLIANCEYes
  • PENDING: withdrawal created, awaiting processing
  • PROCESSING: withdrawal being processed
  • PROCESSED: withdrawal processed successfully
  • FAILED: processing error
  • CANCELED: withdrawal canceled
  • REFUNDED: withdrawal refunded
  • REJECTED: withdrawal rejected by the gateway
  • PENDING_COMPLIANCE: withdrawal awaiting compliance review
createdAtstring (ISO)YesCreation date
endToEndstringYesEnd-to-end identifier of the withdrawal

Variations per event​

WITHDRAWAL_CREATED, WITHDRAWAL_APPROVED and WITHDRAWAL_REJECTED​

They use the base payload only.

WITHDRAWAL_PROCESSED and WITHDRAWAL_APPROVED_AND_PROCESSED​

In addition to the base payload, they add:

FieldTypeRequiredDescription
pixKeyobjectYesPIX key (see Sub-Object PixKeyVo)
trackingKeystringNoSPEI clave de rastreo. It always comes back null on PIX withdrawals
receiverobjectNoReceiver data (see Sub-Object AccountHolder)
payerobjectNoPayer data (see Sub-Object AccountHolder)
amountWithdrawnnumberNoAmount actually withdrawn
processedDatestring (ISO)NoProcessing date
paymentReceiptstringNoURL of the receipt

WITHDRAWAL_CANCELED and WITHDRAWAL_FAILED​

In addition to the base payload, they add:

FieldTypeRequiredDescription
reasonstringNoReason for the cancellation or failure, when provided

WITHDRAWAL_REFUNDED​

In addition to the base payload, it adds:

FieldTypeRequiredDescription
refundAmountnumberYesRefund amount
refundDatestring (ISO)NoRefund date
endToEndRefundstringNoEnd-to-end identifier of the refund
refundReceiptstringNoURL of the refund receipt

Sub-Objects​

AccountHolder​

FieldTypeRequiredDescription
typestring (enum) - PF, PJYesHolder type
namestringYesHolder name
documentstringYesHolder document
bankAccountobjectYesBank data (see Sub-Object BankAccount)
pixobjectYesPIX key of the holder (see Sub-Object PixKeyVo)

BankAccount​

FieldTypeRequiredDescription
typestringYesAccount type
digitstringYesAccount check digit
ispbstringYesISPB of the bank

PixKeyVo​

FieldTypeRequiredDescription
keystringYesPIX key
typestring (enum) - CPF, CNPJ, EMAIL, PHONE, EVPYesPIX key type

SpeiAccountVo​

FieldTypeRequiredDescription
clabeobjectYesCLABE of the destination account, in the value field
holderNamestringYesName of the account holder
institutionIdstringNoIdentifier of the destination institution

Payload example​

Masked data

Sensitive values may be masked with ***.

{
"type": "WITHDRAWAL_PROCESSED",
"data": {
"id": "553e8400-e29b-41d4-a716-436251480000",
"externalCode": "SAQUE-123",
"amount": 10000,
"method": "PIX",
"status": "PROCESSED",
"createdAt": "2026-03-06T12:49:04.681Z",
"endToEnd": "0123456789",
"pixKey": {
"key": "12345678910",
"type": "CPF"
},
"receiver": {
"type": "PJ",
"name": "Empresa Exemplo LTDA",
"document": "12345678000199",
"bankAccount": {
"type": "CHECKING",
"digit": "0",
"ispb": "12345678"
},
"pix": {
"key": "contato@exemplo.com",
"type": "EMAIL"
}
},
"payer": {
"type": "PF",
"name": "Fulano de Tal",
"document": "***456789**",
"bankAccount": {
"type": "CHECKING",
"digit": "7",
"ispb": "12345678"
},
"pix": {
"key": "12345678910",
"type": "CPF"
}
},
"amountWithdrawn": 10000,
"processedDate": "2026-03-06T12:49:04.681Z",
"paymentReceipt": "https://files.exemplo.com.br/receipts/withdrawal-553e8400-e29b-41d4-a716-436251480000.pdf"
}
}