Home
Release Notes
Home
Release Notes
Linkedin
  1. Webhooks
  • Balad™ Gateway Documentation 📖
  • Get Started
  • Authorization
  • Responses
  • Go Live!
  • FAQs
  • APIs
    • Authentication
      • Token
    • Core
      • Exchange rate
        • Exchange Rates
      • Balance
        • Get Current Balance
      • Secrets
        • Generate Secret
        • Delete Secret
        • Get Secrets
    • Link
      • Sandbox Testing Guide
      • Error Codes
      • Transaction Lifecycle V2
      • Lookups
        • Purposes List
        • Sources List
        • Banks List
        • Relations
      • Transactions
        • Create transaction
        • Update transaction
        • Cancel transaction
        • Get transaction status V2
        • Transactions List
        • Export Transactions List
        • Calculate receiving amount
        • Validate Account
      • Reconciliation
        • Reconciliation
  • Webhooks
    • Link.Transaction.StatusUpdateV2
  1. Webhooks

Link.Transaction.StatusUpdateV2

This section describes the structure of the event payload Balad sends to your registered webhook URL when a transaction status changes. This is the Version 2 (v2) payload structure.

📦 Payload Structure#

The webhook payload is a standardized event envelope that contains metadata about the event and the transaction status information nested within the data object.
FieldTypeDescription
idstringA unique identifier for this specific webhook event.
eventTypestringThe type of event. For transaction status updates, this is typically 994019.
timestampstringThe date and time the event was generated (e.g., 25-Nov-2025 08:52:02 AM).
versionstringThe version of the webhook payload structure. Currently 2.
dataobjectContains the core transaction status details.

data Object Fields#

FieldTypeDescription
referenceNumberstringYour unique reference number for the transaction.
transactionStatusCodeintegerThe numeric code representing the status. See Get transaction status V2 for a full list.
transactionStatusDescriptionstringThe human-readable description of the status.
reasonstringOptional field providing a brief technical or internal reason for the status change.
failureDetailsobject / nullProvides details on the cause of failure/rejection (only present if transactionStatusCode indicates a failure).

failureDetails Object Fields#

This object is identical to the one returned by the Get Transaction Status v2 endpoint. Get transaction status V2
FieldTypeDescription
categorystringThe high-level parent category of the rejection (e.g., COMPLIANCE_RESTRICTION).
codestringThe specific Balad rejection code (e.g., CMP_001).
messagestringThe user-friendly explanation/message.
additionalInfostringAny supplemental information related to the failure.

➡️ Example Event Payload#

This example shows the payload for a Bank Compliance Rejected status, using the camelCase convention, and including the failureDetails.
{
  "id": "180377",
  "eventType": "994019",
  "timestamp": "25-Nov-2025 08:52:02 AM",
  "version": "2",
  "data": {
    "referenceNumber": "Ref-1764060698635",
    "transactionStatusCode": 17,
    "transactionStatusDescription": "Bank Compliance Rejected",
    "reason": "Bank-failure due to sandbox suffixes rules",
    "failureDetails": {
      "category": "COMPLIANCE_RESTRICTION",
      "code": "CMP_001",
      "message": "Rejected due to AML / sanctions screening",
      "additionalInfo": ""
    }
  }
}
Previous
Webhooks
Built with