Webhooks: Payments

Overview

  • Payment webhooks allow clients to receive real-time notifications about the status and progression of their payment transactions.
  • Once a payment intent is created, the platform will send webhook callbacks to the URLs provided by the client. These callbacks inform the client about:
    • Payment status updates
    • 3-D Secure (3DS) authentication events

Note: We do not modify, transform, or alter in any way the webhook URLs received from clients. The exact URL provided in the intent creation request is the one used for all webhook callbacks.


Type "Payment status updates"

  • Sent when a payment status changes (e.g., ACCEPTED, DECLINED, ERROR). Not only terminal statuses, but all. Full status model is available on the link
  • Triggered By: Internal processing events after payment intent creation.
  • Client must provide URL in: payments[].webhookUrl inside the request: POST /processing/api/v1/intents

Example:

{  
  "transactionType": "PAYMENT",
  "transactionId": "111122223333444455",
	"status": "ACCEPTED"
}
{
  "transactionType": "PAYMENT",
  "transactionId": "111122223333444455",
  "status": "ERROR",
  "errorCode": "CODE_PT0000",
  "errorMessage": "string"
}

Fields Description

Field

Type

Description

transactionType

String

Identifies the transaction type.
Enum: PAYMENT, DISBURSEMENT, REFUND

transactionId

String

Our internal Transaction ID on the platform

status

string

The status of the transaction

errorCode

string

Client-defined error code if the transaction cannot be processed

errorMessage

string

Human-readable description of the error.


Type "3DS Webhook"

  • Sent when 3-D Secure authentication is required or progresses.
  • Triggered By: Events related to 3-D Secure authentication.
  • Client must provide URL in: payments[].threeDSNotificationsUrl inside the same intent creation request: POST /processing/api/v1/intents

Example

{
  "cReq": "eyJtZXNzYWdlVHlwZSI6IkNSZXEiLCJtZXNzYWdlVmVyc2lvxIn0",
  "acsUrl": "https://acs.bpcprocessing.net/acs/api/3ds2/creqbrw/497637fb1",
  "threeDSSessionData": "",
  "partnerPaymentId": "0c07fdf5ef6ba5f6ffb",
  "paymentStatus": "AUTHORIZATION_REQUESTED",
  "paymentId": "248754602014800000"
}

FieldTypeDescription
cReqStringEncoded 3DS Challenge Request message.
acsUrlStringURL of the Access Control Server where the challenge must be presented.
threeDSSessionDataStringOptional session-related data for the 3DS process.
partnerPaymentIdStringPayment identifier on the partner/client side.
paymentStatusStringCurrent authentication or authorization stage (e.g., AUTHORIZATION_REQUESTED).
transactionIdStringOur internal Transaction ID on the platform