Skip to main content

New Transaction

The New Transaction webhook notifies the subscriber with transaction details whenever a new transaction is recorded in the XD Ledger.

The subscriber must return a 200 response to confirm successful delivery of the callback notification. Any response other than 200 is treated as a failure, and the system will retry sending the notification according to the configured retry settings until a 200 response is received. If no 200 response is received after the configured attempts, the subscription for this event will be moved to a disabled state. The subscription can be re-enabled later if required.

Example

Request Parameters
ParameterDescription
source
Mandatory
String
Source or origin of the transaction
Constant value: "PL"
eventId
Mandatory
String
Identifier for the event associated with the transaction
Sample value: "EVT1358243"
eventName
Mandatory
String
Name of the event
Constant value: "Transaction.NEW"
Payload
Mandatory
Object
transactionTypeString
Specifies the type of transaction
Sample value: "PG_DEPOSIT"
referenceIDString
Unique reference ID of transaction that helps to track the transaction
Sample value: "PGDEPOSITREF0000004952"
postedDateString
Date and time of the transaction initiated
Sample value: "2022-07-02T21:00:01Z"
statusString
Current status of the transaction
Sample value: "COMPLETED"
instructedAmountNumber
Total amount of the transaction
Sample value: 1360
instructedCurrencyString
Currency of the instructed amount
Sample value: "USD"
creditBoolean
Indicates whether the transaction is credit transaction
Sample value: true
avalBalanceNumber
Balance amount in the account
Sample value: 1079284
customerIDString
ID of the customer account
Sample value: "100000001283309"
debtorAccountObject
referenceString
Reference ID of the transaction debited from the debtor account
Sample value: "txnpgdep315"
settlementAccountNumberString
Account number of the account from which the amount is debited
Sample value: "100548596389492"
settlementAccountNameString
Account name associated with the settlement account
Sample value: "PLCBW1EFTCOLLECTIONS"
creditorAccountObject
accountNumberString
Beneficiary account number which is credited
Sample value: "200872238634465"
holderNameString
Account holder name of the creditor account
Sample value: "Trent Boult"
customerAccountNameString
Account name associated with the customer account
Sample value: "Wallet Account 1"
customerAccountTypeString
Type of customer account
Sample value: "WALLET"
holderIdString
Unique ID of the account holder
Sample value: "112567846"
holderIdTypeString
Type of identification used for holder ID
Sample value: "SSN"
transactionNumberString
Unique number of the transaction
Sample value: "QA00000004568034"
subTransactionTypeString
More granular subtype of transaction.
Sample Value: ATM_DEPOSIT, POS_PURCHASE, ONLINE_PAYMENT
ledgerTxnNumberString
Internal ledger reference number.
Sample Value: QA00000002970003
channelString
Payment channel used.
Sample Values: VISA_DPS, MASTERCARD, ACH, UPI, NEFT, SWIFT
cardAcceptorString
Merchant or institution name.
Sample Value: FLIPKART INC
cardProductString
ID of card product.
Sample Value: 2c6b841a-dfc1-4a6a-a12a-13c21035b5be
mccString
Merchant Category Code (ISO 18245).
Sample Value: 5812, 6011, 5411
overDraftBoolean
Indicates whether the transaction was processed using overdraft. Appears only when overdraft rules are breached.
Sample Value: true / false
overAuthBoolean
Indicates whether the transaction value exceeded a pre-authorization. Appears only for COMPLETION transactions with higher value than the pre-authorized amount.
Sample Value: true / false
limitObject
Limit breach details. Appears only when a configured transaction limit is breached.
Sample Value: See Limit Object Fields
LimitTypeString
The type of limit breached.
Sample Value: DAILY, MONTH, YEAR, PER_TRANSACTION
currentValueString
Current accumulated value at breach.
Sample Value: 2400
limitAmountInteger
Configured threshold amount.
Sample Value: 100
limitCountInteger
Number of times limit was hit.
Sample Value: 1
errorMsgString
Error message associated with the transaction
Sample value: "per month transaction limit breached", "per year transaction limit breached", "per day transaction limit breached", "per transaction limit breached"
errorCodeString
Error Code
Sample value: "PER_MONTH_TRANSACTION_LIMIT_BREACHED", "PER_YEAR_TRANSACTION_LIMIT_BREACHED", "PER_DAY_TRANSACTION_LIMIT_BREACHED", Sample value: "PER_TRANSACTION_LIMIT_BREACHED"
signature
Mandatory
String
Signature for request validation
Sample value: "signature"

Account Object Fields (for creditorAccount and debtorAccount):

FieldDescription
accountNumberNumber
Unique account number.
Sample Value: 200667482425912
customerAccountNameString
Account name.
Sample Value: CASH Account
customerAccountTypeString
Account type.
Sample Value: SAVINGS, CHECKING, CURRENT, LOAN, CREDIT_CARD
holderIdString
Account holder unique identifier.
Sample Value: 541236528
holderIdTypeString
Type of identifier.
Sample Value: SSN, CIF, CUSTOMER_ID, PASSPORT
holderNameString
Holder name.
Sample Value: ach_fed
institutionIdString
Institution ID or routing number.
Sample Value: 101115399

Limit Object Fields (appears only when a limit breach occurs):

FieldDescription
LimitTypeThe type of limit breached.
Sample Value: DAILY, MONTH, YEAR, PER_TRANSACTION
currentValueCurrent accumulated value at breach.
Sample Value: 2400
limitAmountConfigured threshold amount.
Sample Value: 100
limitCountNumber of times limit was hit.
Sample Value: 1

Body


{
"source": "VISA_DPS",
"eventId": "EVT1358243",
"eventName": "Transaction.NEW",
"payload": {
"transactionType": "ATM_DEPOSIT",
"subTransactionType": "ATM_DEPOSIT",
"referenceID": "f3147285e1d146a5b522b0edeb80219f",
"postedDate": "2025-09-15T18:38:00.102368673+05:30",
"status": "REJECT",
"instructedAmount": 1200,
"instructedCurrency": "USD",
"credit": true,
"customerID": "100000000108001",
"debtorAccount": {},
"creditorAccount": {
"accountNumber": "200667482425912",
"customerAccountName": "CASH Account",
"customerAccountType": "SAVINGS",
"holderId": "541236528",
"holderIdType": "SSN",
"holderName": "ach_fed",
"institutionId": "101115399"
},
"transactionNumber": "QA00000002970003",
"ledgerTxnNumber": "QA00000002970003",
"channel": "VISA_DPS",
"cardAcceptor": "FLIPKART INC",
"cardProduct": "2c6b841a-dfc1-4a6a-a12a-13c21035b5be",
"overDraft": false,
"overAuth": false,
"limit": {
"LimitType": "MONTH",
"currentValue": 2400,
"limitAmount": 100,
"limitCount": 1
},
"mcc": "9898",
"error": {
"code": "PER_MONTH_TRANSACTION_LIMIT_BREACHED",
"message": "per month transaction limit breached"
}
},
"signature": "{{Signature}}"
}

Response: 200


{
//The response for this callback notification from the subscriber should be 200 for a successfull delivery of notification. If the response is other than 200, it is meant as failed status of notification. Hence, the notification is sent for ‘n’ number of times till getting the response as 200. If still the response is not 200, the subscription for this event will be cancelled.
}