Webhooks
Webhooks (also known as web callbacks) let you receive real-time notifications whenever an event occurs in an integrated system. Data is delivered via HTTP POST requests to your configured endpoint — no polling required.
Each webhook request contains details about the event and the resource involved.
Setup
Authentication
At least one authentication method must be configured on your destination URL before webhooks can be delivered.
Basic Auth
Provide a client_id and client_secret. These are base64-encoded and sent on every webhook request.
| Header | Value |
|---|---|
Authorization | Basic base64(client_id:client_secret) |
Configuration
Configure your webhooks via the API Reference: https://developers.londonbridge.pro/api/#tag/Webhook
Events
| Category | Event |
|---|---|
| Deposits | pixChargePaid |
| Deposits | pixChargeExpired |
| Deposits | pixChargeRejected |
| Withdrawals | pixWithdrawSuccess |
| Withdrawals | pixWithdrawFailed |
| Refunds | pixRefundSuccess |
| Refunds | pixRefundFailed |
Deposit Events
Pix Charge Paid
Fired when a Pix charge is successfully paid.
Key fields
| Field | Description |
|---|---|
chargeId | Internal charge identifier |
externalId | Your system's identifier for this charge |
status | Always "paid" for this event |
amount | Amount in cents |
paidAt | Timestamp of payment confirmation |
debtor | Bank account details of the payer |
pixTransaction.endToEndId | Unique end-to-end Pix transaction ID |
{
"pixChargePaid": {
"chargeId": "019d0853-bf54-7145-b463-df2d5566e894",
"externalId": "8d231a73-80c0-4333-acea-abf9b55f8d53",
"status": "paid",
"createdAt": "2026-03-19T22:59:59.439Z",
"expiresAt": "2026-03-19T23:16:39.439Z",
"paidAt": "2026-03-19T23:00:37.491Z",
"description": "Displayed to the customer in the payment app before confirmation. Up to 140 chars.",
"amount": 1000,
"debtor": {
"bankCode": "00000000",
"branchCode": "0001",
"accountNumber": "3323200006",
"personType": "NATURAL_PERSON",
"accountType": "CACC",
"taxId": "39424283008",
"name": "PT1"
},
"pixTransaction": {
"transactionId": "019d0854-5399-7500-a4bf-85e175e300f3",
"endToEndId": "E183942282026031923007DP8OFYBk9a"
},
"metadata": {
"additionalProp1": "1",
"additionalProp2": "string",
"additionalProp3": "string"
}
}
}
Pix Charge Expired
Fired when a Pix charge reaches its expiration time without being paid.
Key fields
| Field | Description |
|---|---|
chargeId | Internal charge identifier |
externalId | Your system's identifier for this charge |
status | Always "expired" for this event |
expiresAt | Timestamp when the charge expired |
{
"pixChargeExpired": {
"chargeId": "019d0853-bf54-7145-b463-df2d5566e894",
"externalId": "8d231a73-80c0-4333-acea-abf9b55f8d53",
"status": "expired",
"createdAt": "2026-03-19T22:59:59.439Z",
"expiresAt": "2026-03-19T23:16:39.439Z",
"description": "Displayed to the customer in the payment app before confirmation. Up to 140 chars.",
"amount": 1000,
"metadata": {
"additionalProp1": "1",
"additionalProp2": "string",
"additionalProp3": "string"
}
}
}
Pix Charge Rejected
Fired when a Pix charge is rejected — for example, because the paying account does not match the expected payer.
Key fields
| Field | Description |
|---|---|
chargeId | Internal charge identifier |
externalId | Your system's identifier for this charge |
status | Always "pending" for this event (charge is not settled) |
rejectedReason | Machine-readable rejection code (e.g. ACCOUNT_MISMATCH) |
rejectedDescription | Human-readable explanation of the rejection |
{
"pixChargeRejected": {
"chargeId": "019d0853-bf54-7145-b463-df2d5566e894",
"externalId": "8d231a73-80c0-4333-acea-abf9b55f8d53",
"status": "pending",
"createdAt": "2026-03-19T22:59:59.439Z",
"expiresAt": "2026-03-19T23:16:39.439Z",
"description": "Displayed to the customer in the payment app before confirmation. Up to 140 chars.",
"amount": 1000,
"expectedPayer": {
"taxId": "15276356213",
"name": "Andre",
"bankAccounts": [
{
"bankCode": "341",
"branchCode": "0001",
"accountNumber": "20262027",
"personType": "NATURAL_PERSON",
"accountType": "CACC"
}
]
},
"debtor": {
"bankCode": "00000000",
"branchCode": "0001",
"accountNumber": "3323200006",
"personType": "NATURAL_PERSON",
"accountType": "CACC",
"taxId": "39424283008",
"name": "PT1"
},
"rejectedReason": "ACCOUNT_MISMATCH",
"rejectedDescription": "This payment account is not allowed for this QR Code.",
"metadata": {
"additionalProp1": "1",
"additionalProp2": "string",
"additionalProp3": "string"
}
}
}
Withdrawal Events
Pix Withdraw Success
Fired when a Pix withdrawal is successfully processed.
Key fields
| Field | Description |
|---|---|
transactionId | Internal transaction identifier |
externalId | Your system's identifier for this withdrawal |
endToEndId | Unique end-to-end Pix transaction ID |
status | Always "success" for this event |
initiationType | How the withdrawal was initiated (e.g. PIX_KEY) |
creditor | Resolved bank account that received the funds |
{
"pixWithdrawSuccess": {
"transactionId": "019d0853-bf54-7145-b463-df2d5566e894",
"externalId": "8d231a73-80c0-4333-acea-abf9b55f8d53",
"endToEndId": "E183942282026031923007DP8OFYBk9a",
"status": "success",
"description": "Displayed to the customer in the payment app before confirmation. Up to 140 chars.",
"initiationType": "DICT_KEY",
"amount": 1000,
"creditor": {
"bankCode": "00000000",
"branchCode": "0001",
"accountNumber": "3323200006",
"personType": "NATURAL_PERSON",
"accountType": "CACC",
"taxId": "39424283008",
"name": "PT1"
},
"createdAt": "2026-03-19T22:59:59.439Z",
"updatedAt": "2026-03-19T23:16:39.439Z",
"metadata": {
"additionalProp1": "1",
"additionalProp2": "string",
"additionalProp3": "string"
}
}
}
Pix Withdraw Failed
Fired when a Pix withdrawal cannot be completed.
Key fields
| Field | Description |
|---|---|
transactionId | Internal transaction identifier |
externalId | Your system's identifier for this withdrawal |
status | Always "failed" for this event |
errorCode | Machine-readable failure code (e.g. ACCOUNT_MISMATCH) |
errorDescription | Human-readable explanation of the failure |
{
"pixWithdrawFailed": {
"transactionId": "019d0853-bf54-7145-b463-df2d5566e894",
"externalId": "8d231a73-80c0-4333-acea-abf9b55f8d53",
"endToEndId": "E183942282026031923007DP8OFYBk9a",
"status": "failed",
"description": "Displayed to the customer in the payment app before confirmation. Up to 140 chars.",
"initiationType": "DICT_KEY",
"amount": 1000,
"creditor": {
"bankCode": "00000000",
"branchCode": "0001",
"accountNumber": "3323200006",
"personType": "NATURAL_PERSON",
"accountType": "CACC",
"taxId": "39424283008",
"name": "PT1"
},
"createdAt": "2026-03-19T22:59:59.439Z",
"updatedAt": "2026-03-19T23:16:39.439Z",
"errorCode": "ACCOUNT_MISMATCH",
"errorDescription": "The destination account does not match the provided Pix key.",
"metadata": {
"additionalProp1": "1",
"additionalProp2": "string",
"additionalProp3": "string"
}
}
}
Refund Events
Pix Refund Success
Fired when a Pix refund is successfully processed.
Key fields
| Field | Description |
|---|---|
refundId | Internal refund identifier |
externalId | Your system's identifier for this refund |
transactionId | Internal transaction identifier |
originalEndToEndId | End-to-end ID of the original charge being refunded |
refundEndToEndId | End-to-end ID of the refund transaction itself |
status | Always "success" for this event |
amount | Refunded amount in cents |
originalAmount | Original charge amount in cents |
leftAmount | Remaining refundable amount in cents |
totalReversedAmount | Total amount reversed so far in cents |
creditor | Bank account that received the refund |
canBeReversedUntil | Deadline after which the refund can no longer be reversed |
settlementDateTime | Timestamp when the refund settled |
{
"pixRefundSuccess": {
"refundId": "019d0853-bf54-7145-b463-df2d5566e894",
"externalId": "8d231a73-80c0-4333-acea-abf9b55f8d53",
"transactionId": "019d0854-5399-7500-a4bf-85e175e300f3",
"originalEndToEndId": "E183942282026031923007DP8OFYBk9a",
"refundEndToEndId": "E183942282026031923007DP8OFYBk9b",
"status": "success",
"amount": 1000,
"originalAmount": 1000,
"leftAmount": 0,
"totalReversedAmount": 1000,
"creditor": {
"bankCode": "341",
"branchCode": "0001",
"accountNumber": "20262027",
"accountType": "CACC",
"personType": "NATURAL_PERSON",
"taxId": "15276356213",
"name": "Andre"
},
"canBeReversedUntil": "2026-03-26T22:59:59.439Z",
"settlementDateTime": "2026-03-19T23:00:37.491Z",
"createdAt": "2026-03-19T22:59:59.439Z",
"updatedAt": "2026-03-19T23:16:39.439Z"
}
}
Pix Refund Failed
Fired when a Pix refund cannot be completed.
Key fields
| Field | Description |
|---|---|
refundId | Internal refund identifier |
externalId | Your system's identifier for this refund |
transactionId | Internal transaction identifier |
originalEndToEndId | End-to-end ID of the original charge being refunded |
status | Always "failed" for this event |
amount | Attempted refund amount in cents |
originalAmount | Original charge amount in cents |
leftAmount | Remaining refundable amount in cents |
totalReversedAmount | Total amount reversed so far in cents |
errorCode | Machine-readable failure code |
errorDescription | Human-readable explanation of the failure |
{
"pixRefundFailed": {
"refundId": "019d0853-bf54-7145-b463-df2d5566e894",
"externalId": "8d231a73-80c0-4333-acea-abf9b55f8d53",
"transactionId": "019d0854-5399-7500-a4bf-85e175e300f3",
"originalEndToEndId": "E183942282026031923007DP8OFYBk9a",
"refundEndToEndId": "E183942282026031923007DP8OFYBk9b",
"status": "failed",
"amount": 1000,
"originalAmount": 1000,
"leftAmount": 1000,
"totalReversedAmount": 0,
"creditor": {
"bankCode": "341",
"branchCode": "0001",
"accountNumber": "20262027",
"accountType": "CACC",
"personType": "NATURAL_PERSON",
"taxId": "15276356213",
"name": "Andre"
},
"canBeReversedUntil": "2026-03-26T22:59:59.439Z",
"errorCode": "REFUND_LIMIT_EXCEEDED",
"errorDescription": "The refund amount exceeds the original charge amount.",
"createdAt": "2026-03-19T22:59:59.439Z",
"updatedAt": "2026-03-19T23:16:39.439Z"
}
}