Event Types
We support multiple webhook events to the same URL that you provide for the ease of your integration.
Therefore, we send the type of the event in our header x-beam-event with the value being the event name.
Currently, the following events are supported:
| Event | Sent when |
|---|---|
charge.succeeded | A charge has been successfully processed. |
charge.failed | A charge has failed. |
payment_link.paid | A payment link has been paid for. |
card_authorization.authorized | A card authorization has been authorized. |
card_authorization.failed | A card authorization has failed. |
card_authorization.canceled | A card authorization has been canceled. |
refund.succeeded | A refund has been successfully processed. |
refund.failed | A refund has failed. |
bolt_intent.paid | A bolt intent has been paid. |
bolt_intent.canceled | A bolt intent has been canceled. |
bolt_intent.expired | A bolt intent has expired. |
transaction.created | A transaction has been created. |
The schema for each webhook we send is based on the event itself. You can expect the request payload to be the original
object as you would expect from calling our GET endpoint on the resource.
For example, when a charge is successful, we trigger a callback to your registered endpoint by sending the
header x-beam-event with value charge.succeeded and you can expect the schema payload to be the same as calling
a GET /v1/api/charges/{chargeId}.
Webhook Request Examples
charge.succeeded
charge.succeededandcharge.failedwebhooks (Please note that this schema is subject to change in the future, so please refer to the API Reference for the most up-to-date schema):
POST https://your-webhook-endpoint.com/webhook
X-Beam-Signature: TIJ+djHBA1D4dviJ0EmFmctWf/w498Scaqjz4v0qNDU=
X-Beam-Event: charge.succeeded
Content-Type: application/json
{
"chargeId": "ch_34duZsgqHJzkZZhMOl9wVcYzjRx",
"merchantId": "merchantId",
"referenceId": "order#10001",
"status": "SUCCEEDED",
"currency": "THB",
"amount": 199,
"source": "PAYMENT_LINK",
"sourceId": "HFF4n25LYl",
"transactionTime": "2025-10-27T16:03:48.47173+07:00",
"paymentMethod": {
"paymentMethodType": "CARD",
"card": {
"last4": "1234",
"brand": "VISA",
"countryAlpha2": "TH"
},
"cardInstallments": null,
"cardNetworkToken": null,
"qrPromptPay": null,
"alipay": null,
"weChatPay": null,
"trueMoney": null,
"linePay": null,
"shopeePay": null,
"make": null,
"bangkokBankApp": null,
"kPlus": null,
"scbEasy": null,
"krungsriApp": null,
"krungthaiNext": null
},
"failureCode": "",
"customer": {
"primaryPhone": {
"countryCode": "+66",
"number": "0123456789"
},
"email": "",
"deliveryAddress": {
"contactName": "Real Name",
"phone": {
"countryCode": "+66",
"number": "0123456789"
},
"address": {
"streetAddress": "140 Wireless",
"city": "Bangkok",
"country": "THA",
"postCode": "10330"
}
}
},
"createdAt": "2025-10-27T16:03:48.46695+07:00",
"updatedAt": "2025-10-27T16:03:52.599628+07:00"
}payment_link.paid
payment_link.paidwebhook (Please note that this schema is subject to change in the future, so please refer to the API Reference for the most up-to-date schema):
POST https://your-webhook-endpoint.com/webhook
X-Beam-Signature: 7t1EBTr1RpsjbTy82Sfe/MW9EuMBPBDGfswAtNfNYtU=
X-Beam-Event: payment_link.paid
Content-Type: application/json
{
"paymentLinkId": "string",
"merchantId": "string",
"url": "https://pay.beamcheckout.com/merchantId/paymentLinkId",
"status": "PAID",
"order": {
"netAmount": 3000000,
"currency": "THB",
"description": "Pets Shop",
"referenceId": "order#10001",
"internalNote": "string",
"orderItems": []
},
"linkSettings": {
"buyNowPayLater": {
"isEnabled": true
},
"card": {
"isEnabled": true
},
"cardInstallments": {
"installments3m": {
"isEnabled": true
},
"installments4m": {
"isEnabled": true
},
"installments6m": {
"isEnabled": true
},
"installments10m": {
"isEnabled": true
}
},
"qrPromptPay": {
"isEnabled": true
},
"eWallets": {
"isEnabled": true
},
"mobileBanking": {
"isEnabled": true
}
},
"collectDeliveryAddress": false,
"collectPhoneNumber": true,
"redirectUrl": "https://www.beamcheckout.com",
"expiresAt": "2026-06-05T04:20:04.067Z",
"feeType": "TRANSACTION_FEE"
}card_authorization.authorized
card_authorization.authorized,card_authorization.failedandcard_authorization.canceledwebhooks (Please note that this schema is subject to change in the future, so please refer to the API Reference for the most up-to-date schema):
POST https://your-webhook-endpoint.com/webhook
X-Beam-Signature: 7t1EBTr1RpsjbTy82Sfe/MW9EuMBPBDGfswAtNfNYtU=
X-Beam-Event: card_authorization.authorized
Content-Type: application/json
{
"cardAuthorizationId": "ca_39sVe4uemxX7fSofJDcgN3UQoLt",
"merchantId": "yourmerchantid",
"referenceId": "order_190821",
"status": "AUTHORIZED",
"supportsMulticapture": false,
"currency": "THB",
"amount": 100,
"capturedAmount": 0,
"capturableAmount": 100,
"latestChargeId": "",
"authorizedAt": "2026-02-19T14:07:36.182568+07:00",
"expiresAt": "2026-02-26T14:07:36.180839+07:00",
"paymentMethod": {
"paymentMethodType": "CARD",
"card": {
"last4": "1111",
"brand": "VISA",
"countryAlpha2": "PL"
},
"cardNetworkToken": null
},
"failureCode": "",
"createdAt": "2026-02-19T14:07:36.180839+07:00",
"updatedAt": "2026-02-19T14:07:36.42328+07:00"
}refund.succeeded
refund.succeededandrefund.failedwebhooks (Please note that this schema is subject to change in the future, so please refer to the API Reference for the most up-to-date schema):
POST https://your-webhook-endpoint.com/webhook
X-Beam-Signature: TIJ+djHBA1D4dviJ0EmFmctWf/w498Scaqjz4v0qNDU=
X-Beam-Event: refund.succeeded
Content-Type: application/json
{
"refundId": "re_34duZsgqHJzkZZhMOl9wVcYzjRx",
"chargeId": "ch_34duZsgqHJzkZZhMOl9wVcYzjRx",
"merchantId": "merchantId",
"referenceId": "order#10001",
"amount": 199,
"currency": "THB",
"status": "SUCCEEDED",
"failureCode": "",
"refundReason": "Customer requested refund",
"createdAt": "2025-10-27T16:03:48.46695+07:00",
"updatedAt": "2025-10-27T16:03:52.599628+07:00",
"transactionTime": "2025-10-27T16:03:52.599628+07:00"
}bolt_intent.paid
bolt_intent.paid,bolt_intent.canceledandbolt_intent.expiredwebhooks (Please note that this schema is subject to change in the future, so please refer to the API Reference for the most up-to-date schema):
POST https://your-webhook-endpoint.com/webhook
X-Beam-Signature: TIJ+djHBA1D4dviJ0EmFmctWf/w498Scaqjz4v0qNDU=
X-Beam-Event: bolt_intent.paid
Content-Type: application/json
{
"id": "bi_34duZsgqHJzkZZhMOl9wVcYzjRx",
"merchantId": "merchantId",
"amount": 10000,
"currency": "THB",
"status": "PAID",
"mode": {
"type": "PAIRING",
"deepLink": null
},
"paymentMethod": {
"paymentMethodType": "CARD",
"card": {
"last4": "1234",
"brand": "VISA"
},
"cardInstallments": null,
"qrPromptPay": null,
"alipay": null,
"alipayPlus": null,
"linePay": null,
"shopeePay": null,
"trueMoney": null,
"weChatPay": null,
"sPayLater": null
},
"boltConnectionId": "bc_34duZsgqHJzkZZhMOl9wVcYzjRx",
"referenceId": "order#10001",
"internalNote": "",
"expiresAt": "2025-10-27T17:03:48.46695+07:00",
"merchant": {
"merchantId": "merchantId",
"name": "Merchant Name",
"logoUrl": ""
},
"latestChargeId": "ch_34duZsgqHJzkZZhMOl9wVcYzjRx",
"latestChargeStatus": "SUCCEEDED",
"latestChargeFailureCode": "",
"result": "CH_SUCCEEDED",
"createdAt": "2025-10-27T16:03:48.46695+07:00",
"createdBy": "merchantId",
"updatedAt": "2025-10-27T16:03:52.599628+07:00",
"updatedBy": "merchantId"
}transaction.created
transaction.createdwebhook (Please note that this schema is subject to change in the future, so please refer to the API Reference for the most up-to-date schema):
POST https://your-webhook-endpoint.com/webhook
X-Beam-Signature: TIJ+djHBA1D4dviJ0EmFmctWf/w498Scaqjz4v0qNDU=
X-Beam-Event: transaction.created
Content-Type: application/json
{
"transactionId": "ch_34duZsgqHJzkZZhMOl9wVcYzjRx",
"merchantId": "merchantId",
"referenceId": "order#10001",
"transactionType": "PAYMENT",
"chargeSource": "PAYMENT_LINK",
"sourceId": "HFF4n25LYl",
"currency": "THB",
"grossAmount": 199,
"feeAmount": 6,
"vatAmount": 0,
"netAmount": 193,
"feeStrategy": "RATE",
"createdAt": "2025-10-27T16:03:48.46695+07:00",
"transactionTime": "2025-10-27T16:03:52.599628+07:00"
}Last updated on