openapi: 3.0.1 info: title: Balad Gateway APIs/Authentication APIs/Link/Transactions API description: Balad Gateway APIs — a suite of RESTful endpoints for secure inward cross-border remittances and payouts into Egypt (bank transfers, mobile wallets, cash pickup). Covers authentication, exchange rates, balance, secrets management, lookups, and the full transaction lifecycle. Assembled by API Evangelist from the provider's per-operation OpenAPI fragments published on developers.balad.tech. version: 1.0.0 contact: name: Balad Support email: support@balad.me url: https://developers.balad.tech/ servers: [] tags: - name: APIs/Link/Transactions paths: /remit-api/v1/transactions/calculate-receiving-amount: post: summary: Calculate receiving amount deprecated: false description: 'This API endpoint calculates and retrieves the receiving amount based on the sending amount. The transaction type is optional; if provided, the API will return the receiving amount in the currency associated with the specified transaction type. If the transaction type is not provided, the API will return the receiving amount for all available currencies. **Request Params** | **Parameter** | **Type** | **Mandatory** | **Remarks** | | --- | --- | --- | --- | | amount_usd | Integer | Y | This is the amount being sent and needs to be used for calculating the corresponding receiving amount. | | transaction_type | Integer | N | The transaction type
1- Cash
2 - Account Credit
3 - Wallet
4 -Credit/Debit Card | **Response Params** | **SI No** | **Parameter** | **Remarks** | | --- | --- | --- | | 1 | currency_code | the receiving currency | | 2 | amount | the receiving amount |' tags: - APIs/Link/Transactions parameters: - name: Content-Type in: header description: '' required: false example: application/json schema: type: string requestBody: content: application/json: schema: type: object properties: {} x-apidog-orders: [] example: "{\r\n \"amount_usd\":XXXX,\r\n \"transaction_type\":X\r\n}" responses: '200': description: '' content: application/json: schema: type: object properties: {} x-apidog-orders: [] example: "{\r\n \"data\": [\r\n {\r\n \"currency_code\": \"EGP\",\r\n \"amount\":XXX\r\n },\r\n {\r\n \"currency_code\": \"USD\",\r\n \"amount\":XXX\r\n }\r\n ],\r\n \"errors\": null\r\n}\r\n" headers: {} x-apidog-name: EG Country security: - Balad Token: [] x-apidog: required: true schemeGroups: - id: 87aTaQp8pR3_G2Uh_UKds schemeIds: - Balad Token use: id: 87aTaQp8pR3_G2Uh_UKds x-apidog-folder: APIs/Link/Transactions x-apidog-status: released x-run-in-apidog: https://app.apidog.com/web/project/1056134/apis/api-20919923-run /remit-api/v1/transactions/cancel: post: summary: Cancel transaction deprecated: false description: 'This method handles transaction cancellation within the Balad Remit system. ### Cancellable Transactions Only the following transaction statuses can be cancelled. Each status results in either an **Instant Cancel (Code 7)** or **Under Cancellation (Code 22)** depending on the case. | Transaction Status Code | Transaction Status | Transaction Type | Resulting Status | |-------------|-------------------------------|------------------|------------------------------| | **0** | Created | All | **7 (Cancelled)** | | **2** | In Progress | Cash | **22 (Under Cancellation)** | | **8** | Pending | All | **7 (Cancelled)** | | **11** | Balad Compliance Suspended | All | **7 (Cancelled)** | | **12** | Balad Compliance Approved | All | **7 (Cancelled)** | | **16** | Bank Compliance Suspended | Cash | **22 (Under Cancellation)** | | **19** | Ready For Pickup | Cash | **22 (Under Cancellation)** | --- ### Cancellation Reasons Use one of the following values in the **reason** field when submitting a cancellation request. If none of the predefined reasons apply, set `reason` to **13** and include your explanation in `other_reason`. | Code | Reason | | ------ | ----------------------------------------------------- | | **1** | I entered the wrong recipient name | | **2** | I entered the wrong account, wallet, or phone number | | **3** | I chose the wrong bank, wallet, or payout method | | **4** | I entered the wrong amount | | **5** | I no longer need to send this transfer | | **6** | The recipient no longer needs the money | | **7** | This is a duplicate transfer | | **8** | The transfer is taking too long | | **9** | I will send the money using a different method | | **11** | Fees or exchange rate are not acceptable | | **12** | I created this transaction by mistake (test or trial) | | **13** | Other reason (please specify) | --- ' tags: - APIs/Link/Transactions parameters: - name: Content-Type in: header description: '' required: false example: application/json schema: type: string requestBody: content: application/json: schema: type: object properties: remitter_reference_no: type: string reason: type: integer other_reason: type: string required: - remitter_reference_no - reason x-apidog-orders: - remitter_reference_no - reason - other_reason example: remitter_reference_no: BALADLINK-XXXXXXXXXX reason: 1 other_reason: '' responses: '200': description: '' content: application/json: schema: type: object properties: data: type: object properties: remitter_reference_no: type: string transaction_status_code: type: integer transaction_status_description: type: string required: - remitter_reference_no - transaction_status_code - transaction_status_description x-apidog-orders: - remitter_reference_no - transaction_status_code - transaction_status_description errors: type: 'null' required: - data - errors x-apidog-orders: - data - errors examples: '1': summary: Under Cancellation value: data: remitter_reference_no: BALADLINK-XXXXXXXXXX transaction_status_code: 22 transaction_status_description: Under Cancellation errors: null '2': summary: Instant Cancel value: data: remitter_reference_no: BALADLINK-XXXXXXXXXX transaction_status_code: 7 transaction_status_description: Canceled errors: null headers: {} x-apidog-name: Success '400': description: '' content: application/json: schema: type: object properties: data: type: 'null' errors: type: array items: type: object properties: code: type: integer message: type: string field: type: 'null' x-apidog-orders: - code - message - field required: - data - errors x-apidog-orders: - data - errors example: data: null errors: - code: 113 message: Cancellation Not Available field: null additionalInfo: null headers: {} x-apidog-name: Cancellation Not Available x-400:Reference No Not found: description: '' content: application/json: schema: type: object properties: data: type: 'null' errors: type: array items: type: object properties: code: type: integer message: type: string field: type: 'null' additionalInfo: type: 'null' x-apidog-orders: - code - message - field - additionalInfo required: - data - errors x-apidog-orders: - data - errors example: data: null errors: - code: 106 message: Invalid Reference Number field: null additionalInfo: null headers: {} x-apidog-name: Reference No Not found x-400:Transaction already canceled: description: '' content: application/json: schema: type: object properties: data: type: 'null' errors: type: array items: type: object properties: code: type: integer message: type: string field: type: 'null' additionalInfo: type: 'null' x-apidog-orders: - code - message - field - additionalInfo required: - data - errors x-apidog-orders: - data - errors example: data: null errors: - code: 169 message: Transaction already canceled before field: null additionalInfo: null headers: {} x-apidog-name: Transaction already canceled security: - Balad Token: [] x-apidog: required: true schemeGroups: - id: 87aTaQp8pR3_G2Uh_UKds schemeIds: - Balad Token use: id: 87aTaQp8pR3_G2Uh_UKds x-apidog-folder: APIs/Link/Transactions x-apidog-status: released x-run-in-apidog: https://app.apidog.com/web/project/1056134/apis/api-20919919-run /remit-api/v1/transactions: post: summary: Create transaction deprecated: false description: "This endpoint is used to **initiate a money transfer transaction** through Balad’s Collection API. \nIt supports multiple transaction types (Cash, Card, Bank Account and Wallet) and requires sender, receiver, and transaction details to be passed in the request body. \n\n ---\n\n\n \n\n| **Parameter** | **Remarks** |\n| --- | --- |\n| sender_first_name | First or full legal name. Must match valid ID. Could be sender first name only or sender full name (Full Name must be the full legal name of the sender and must exactly match the name as it appears on the sender's valid ID.) |\n| sender_middle_name | Middle name. Same character rules as first name. |\n| sender_last_name | Last name. Same character rules as first name. |\n| sender_address | Full sender address. |\n| sender_dateofbirth | Format: `DD-MMM-YYYY`. Example: `01-JUN-2020`. |\n| sender_contact_no | Contact number. |\n| sender_identity | Identity type: 1 = Passport, 2 = Government-issued ID. |\n| sender_identity_no | ID/Passport number. Allowed: periods (.), commas (,), underscores (_), hyphens (-), space ( ). |\n| sender_identity_expiry_date | ID Expiry Date. Format: `DD-MMM-YYYY`. Must not be expired. |\n| sender_nationality | ISO alpha-2 country code (e.g., `US`, `EG`). |\n| sender_country_code | ISO alpha-2 country code of residence. |\n| sender_country_of_birth | Country of birth, valid country string (e.g., `Egypt`, `United States of America`). |\n| sender_gender | 1 = Male, 2 = Female. |\n\n \n\n \n\n | **Parameter** | **Remarks** |\n | --- | --- |\n | receiver_first_name | First or full legal name in English. Must match valid ID. |\n | receiver_middle_name | Middle name. Same character rules as first name. |\n | receiver_last_name | Last name. Same character rules as first name.|\n | receiver_address | Required in some cases (e.g., Account transfer in USD except bank code `BDC`). |\n | receiver_contact_no | Valid phone number. Egyptian format supported. In case of cash, if provided the receiver will receive SMS with transaction details on this number Examples: `+20101111145`, `020101111145`, `01011111145`. |\n | receiver_identity_type | Identity type: 1 = Passport, 2 = Government-issued ID (default 2 if not sent). |\n | receiver_identity_no | ID/Passport number. Allowed: periods (.), commas (,), underscores (_), hyphens (-), space ( ). |\n | receiver_gender | 1 = Male, 2 = Female. |\n\n \n\n \n\n | **Parameter** | **Remarks** |\n | --- | --- |\n | transaction_type | 1 = Cash, 2 = Account Credit, 3 = Wallet, 4 = Card. |\n | remitter_reference_no | Unique agent reference. Allowed: A–Z, a–z, 0–9, dash (-). |\n | sending_currency_code | ISO 4217 currency code. Examples: `EGP`, `USD`. |\n | amount | Amount with up to 2 decimals. Example: `2500.50`. |\n | account_no | Account/Wallet/Card number. Rules:
• 16 digits for card
• 11 digits for wallet (Egyptian phone number format)
Examples: `+201055555333`, `01055555333`.
• IBAN for USD bank transfers
• Required in case transaction type 'Cash' and bank code 'POST' |\n | receiver_bank_code | Bank code (e.g., `BDC`, `POST`). Required in some cases. [Banks List](https://developers.balad.tech/banks-list-20919916e0.md) |\n | source_of_remittance | Source code of transaction. List available via sources endpoint. [Sources List](https://developers.balad.tech/sources-list-20919915e0.md) |\n | purpose | Purpose code of transaction. List available via purposes endpoint. [Purposes List](https://developers.balad.tech/purposes-list-20919914e0.md)|\n | value_date | Format: `DD-MMM-YYYY`. Example: `01-JUN-2020`. Must be today or later. |\n | business_model_type | Business model: 1 = C2C (default)|\n\n
\n
\n\n\n## Required Fields \n\n| Field | Cash Pickup (`1`) | Bank Account (`2`) | Wallet (`3`) |\n|---------------------------|-------------------|--------------------|--------------|\n| **transaction_type** | ✅ | ✅ | ✅ |\n| **remitter_reference_no** | ✅ | ✅ | ✅ |\n| **sender_first_name** | ✅ | ✅ | ✅ |\n| **sender_last_name** | ✅ | ✅ | ❌ |\n| **sender_address** | ✅ | ✅ | ✅ |\n| **sender_dateofbirth** | ✅ | ✅ | ✅ |\n| **sender_contact_no** | ❌ | ❌ | ❌ |\n| **sender_identity (type)**| ❌ | ❌ | ❌ |\n| **sender_identity_no** | ❌ | ❌ | ❌ |\n| **sender_identity_expiry_date** | ❌ | ❌ | ❌ |\n| **sender_nationality** | ✅ | ✅ | ✅ |\n| **sender_country_code** | ✅ | ✅ | ✅ |\n| **receiver_first_name** | ✅ | ✅ | ✅ |\n| **receiver_last_name** | ❌ | ❌ | ❌ |\n| **receiver_address** | ❌ | ✅ | ❌ |\n| **receiver_contact_no** | ✅ | ❌ | ✅ |\n| **receiver_identity_type** | ❌ | ❌ | ❌ |\n| **receiver_identity_no** | ❌ | ❌ | ❌ |\n| **receiver_gender** | ❌ | ❌ | ❌ |\n| **receiver_relationship** | ❌ | ❌ | ❌ |\n| **account_no** | ❌ | ✅ | ✅ |\n| **receiver_bank_code** | ✅ | ✅ | ❌ |\n| **sending_currency_code** | ✅ | ✅ | ✅ |\n| **amount** | ✅ | ✅ | ✅ |\n| **source_of_remittance** | ❌ | ❌ | ❌ |\n| **purpose** | ✅ | ✅ | ✅ |\n| **value_date** | ❌ | ❌ | ❌ |\n| **business_model_type** | ❌ | ❌ | ❌ |\n\n--- \n\n" tags: - APIs/Link/Transactions parameters: - name: X-Country-Code in: header description: '' required: false example: '' schema: type: string - name: X-IV-Key in: header description: '' required: false example: '' schema: type: string - name: Content-Type in: header description: '' required: false example: application/json schema: type: string requestBody: content: application/json: schema: type: object properties: transaction_type: type: integer description: 'Transaction type: 1=Cash, 2=Account Credit, 3=Wallet, 4=Card' enum: - 1 - 2 - 3 - 4 examples: - 1 x-apidog-enum: - value: 1 name: Cash description: Cash payout at agent location - value: 2 name: Account description: Direct credit to bank account - value: 3 name: Wallet description: Credit to mobile wallet - value: 4 name: Card description: Credit to debit/credit card remitter_reference_no: type: string maxLength: 50 pattern: ^[A-Za-z0-9-]+$ description: Unique transaction reference number assigned by the sending agent examples: - TXN-20230901 sender_first_name: type: string maxLength: 50 description: Sender first name or full name examples: - Mohamed sender_middle_name: type: string maxLength: 50 description: Sender middle name (optional) examples: - Ahmed sender_last_name: type: string maxLength: 50 description: Sender last name (required if first name is not full name) examples: - Hassan sender_address: type: string description: Full residential address of sender maxLength: 200 examples: - 123 Nile Street, Cairo sender_dateofbirth: type: string pattern: ^\d{2}-[A-Z]{3}-\d{4}$ description: Sender date of birth in DD-MMM-YYYY format examples: - 01-JUN-1990 sender_contact_no: type: string maxLength: 20 description: Sender contact number examples: - '+201011111145' sender_identity: type: integer enum: - 1 - 2 description: 'Sender ID type: 1=Passport, 2=Government ID' examples: - 2 x-apidog-enum: - value: 1 name: Passport - value: 2 name: Government ID sender_identity_no: type: string description: Sender ID number maxLength: 50 examples: - '29804151502123' sender_identity_expiry_date: type: string pattern: ^\d{2}-[A-Z]{3}-\d{4}$ description: Expiry date of ID (optional, DD-MMM-YYYY format) examples: - 01-JUN-2030 sender_nationality: type: string maxLength: 2 description: Sender nationality (ISO 3166-1 alpha-2) examples: - EG sender_country_code: type: string maxLength: 2 description: Country code of sender's residence (ISO 3166-1 alpha-2) examples: - EG sender_country_of_birth: type: string maxLength: 100 description: Sender country of birth (optional) examples: - Egypt sender_gender: type: integer enum: - 1 - 2 description: 'Sender gender: 1=Male, 2=Female' examples: - 1 x-apidog-enum: - value: 1 name: Male - value: 2 name: Female receiver_first_name: type: string maxLength: 50 description: Receiver first name or full name (English only) examples: - John receiver_middle_name: type: string maxLength: 50 description: Receiver middle name (optional) examples: - Michael receiver_last_name: type: string maxLength: 50 description: Receiver last name (optional if full name in first_name) examples: - Smith receiver_address: type: string description: Receiver residential address (mandatory for Account/Card, optional for Cash/Wallet) maxLength: 200 examples: - 45 Park Avenue, NY receiver_contact_no: type: string maxLength: 20 description: Receiver contact number (mandatory for Wallet/Card, optional for Cash/Account) examples: - '+201011111145' receiver_identity_type: type: integer enum: - 1 - 2 description: Receiver ID type (mandatory for Cash payout). 1=Passport, 2=Government ID examples: - 2 receiver_identity_no: type: string maxLength: 50 description: 'Receiver ID number (mandatory for Cash payout). Government ID: It''s Egyptian National Identity' examples: - '29804151502123' receiver_gender: type: integer enum: - 1 - 2 description: Receiver gender (optional) examples: - 1 receiver_relationship: type: string maxLength: 50 description: Relationship of receiver to sender (optional, e.g., BROTHER, MOTHER) examples: - BROTHER sending_currency_code: type: string maxLength: 3 description: Sending currency ISO 4217 code. The currency beneficiary/receiver will receive money in examples: - USD amount: type: string description: Transaction amount with up to two decimal places pattern: ^\d+(\.\d{1,2})?$ examples: - '2500.50' account_no: type: string minLength: 4 maxLength: 29 description: Account/Wallet/Card number (mandatory for Account, Wallet, and Card transfers) examples: - '01055555333' receiver_bank_code: type: string maxLength: 4 description: Receiver bank code (mandatory for Account transfer if bank is required) examples: - BDC source_of_remittance: type: string maxLength: 3 description: Source code of transaction funds (optional, ISO/custom code) examples: - SAL purpose: type: string maxLength: 3 description: Purpose code of transaction (ISO/custom code) examples: - FAM value_date: type: string pattern: ^\d{2}-[A-Z]{3}-\d{4}$ description: Value date (>= today, optional) examples: - 05-SEP-2025 business_model_type: type: integer enum: - 1 - 2 description: 'Business model type: 1=C2C (Person-to-Person)' examples: - 1 x-apidog-enum: - value: 1 name: C2C description: Person-to-Person remittance required: - transaction_type - remitter_reference_no - sender_first_name - sender_last_name - sender_address - sender_dateofbirth - sender_identity - sender_identity_no - sender_nationality - sender_country_code - receiver_first_name - sending_currency_code - amount - purpose x-apidog-orders: - transaction_type - remitter_reference_no - sender_first_name - sender_middle_name - sender_last_name - sender_address - sender_dateofbirth - sender_contact_no - sender_identity - sender_identity_no - sender_identity_expiry_date - sender_nationality - sender_country_code - sender_country_of_birth - sender_gender - receiver_first_name - receiver_middle_name - receiver_last_name - receiver_address - receiver_contact_no - receiver_identity_type - receiver_identity_no - receiver_gender - receiver_relationship - sending_currency_code - amount - account_no - receiver_bank_code - source_of_remittance - purpose - value_date - business_model_type examples: '1': value: transaction_type: 1 remitter_reference_no: '{{refNo}}' sender_first_name: SHOHAIB KHAN sender_last_name: MOHAMMAD sender_address: KUWAIT ROAD KUWAIT sender_dateofbirth: 10-May-1980 sender_identity: 2 sender_identity_no: PK12255100 sender_identity_expiry_date: 23-Jul-2027 sender_nationality: EG sender_country_code: KW sender_contact_no: '96539053100' receiver_first_name: Mohammad Faisal Rashid receiver_last_name: Mustafa receiver_address: EGYPT receiver_identity_type: 2 receiver_nationality: EG receiver_contact_no: '01222222103' sending_currency_code: EGP amount: '5800' account_no: '01234323456' receiver_bank_code: BDC source_of_remittance: '001' purpose: '002' summary: Cash Transaction '2': value: transaction_type: 2 remitter_reference_no: '{{refNo}}' sender_first_name: SHOHAIB KHAN sender_last_name: MOHAMMAD sender_address: KUWAIT ROAD KUWAIT sender_dateofbirth: 10-May-1980 sender_identity: 2 sender_identity_no: PK12255100 sender_identity_expiry_date: 23-Jul-2027 sender_nationality: EG sender_country_code: KW sender_contact_no: '96539053100' receiver_first_name: Mohammad Faisal Rashid receiver_last_name: Mustafa receiver_address: EGYPT receiver_nationality: EG sending_currency_code: EGP amount: '5800' account_no: '01234323456' receiver_bank_code: BDC source_of_remittance: '001' purpose: '002' summary: Account Transaction '3': value: transaction_type: 3 remitter_reference_no: '{{refNo}}' sender_first_name: SHOHAIB KHAN sender_last_name: MOHAMMAD sender_address: KUWAIT ROAD KUWAIT sender_dateofbirth: 10-May-1980 sender_identity: 2 sender_identity_no: PK12255100 sender_identity_expiry_date: 23-Jul-2027 sender_nationality: EG sender_country_code: KW sender_contact_no: '96539053100' receiver_first_name: Mohammad Faisal Rashid receiver_last_name: Mustafa receiver_address: EGYPT receiver_nationality: EG receiver_contact_no: '01222222100' sending_currency_code: EGP amount: '5800' account_no: '01234323456' source_of_remittance: '001' purpose: '002' summary: Wallet Transaction responses: '200': description: '' content: application/json: schema: type: object properties: data: type: object properties: remitter_reference_no: type: string delivery_estimate: type: string required: - remitter_reference_no - delivery_estimate x-apidog-orders: - remitter_reference_no - delivery_estimate errors: type: 'null' required: - data - errors x-apidog-orders: - data - errors examples: '1': summary: Success value: data: remitter_reference_no: XXXXXXXXXXXXXXXXXXX delivery_estimate: XXXXXXXXXXXXXXXXXXX errors: null '2': summary: Mandatory field is required value: data: null errors: - code: 10 message: Transaction Type is required field: transaction_type - code: 10 message: Remitter Reference No is required field: remitter_reference_no - code: 10 message: Sending Currency Code is required field: sending_currency_code - code: 10 message: Amount is required field: amount - code: 10 message: Account No is required field: account_no - code: 10 message: Source Of Remittance is required field: source_of_remittance - code: 10 message: Purpose is required field: purpose - code: 10 message: Value Date is required field: value_date - code: 10 message: Sender First Name is required field: sender_first_name - code: 10 message: Sender Address is required field: sender_address - code: 10 message: Sender Contact No is required field: sender_contact_no - code: 10 message: Sender Email is required field: sender_email - code: 10 message: Sender Identity Expiry Date is required field: sender_identity_expiry_date - code: 10 message: Sender Nationality is required field: sender_nationality - code: 10 message: Sender Contact No is required field: sender_contact_no - code: 10 message: Receiver First Name is required field: receiver_first_name - code: 10 message: Receiver Address is required field: receiver_address '3': summary: Create - Cash Transaction value: data: remitter_reference_no: Same transaction reference number sent in the request delivery_estimate: Within X Business Days errors: null '4': summary: Create - Account credit Transaction value: data: remitter_reference_no: Same transaction reference number sent in the request delivery_estimate: Within X Business Days errors: null '5': summary: Create - Wallet Transaction value: data: remitter_reference_no: Same transaction reference number sent in the request delivery_estimate: Within X Business Days errors: null headers: {} x-apidog-name: Success '400': description: '' content: application/json: schema: type: object properties: data: type: 'null' errors: type: array items: type: object properties: code: type: integer message: type: string field: type: string required: - code - message - field x-apidog-orders: - code - message - field required: - data - errors x-apidog-orders: - data - errors headers: {} x-apidog-name: Mandatory field is required x-200:Create - Cash Transaction: description: '' content: '*/*': schema: type: object properties: data: type: object properties: remitter_reference_no: type: string delivery_estimate: type: string required: - remitter_reference_no - delivery_estimate x-apidog-orders: - remitter_reference_no - delivery_estimate errors: type: 'null' required: - data - errors x-apidog-orders: - data - errors headers: {} x-apidog-name: Create - Cash Transaction x-200:Create - Account credit Transaction: description: '' content: '*/*': schema: type: object properties: data: type: object properties: remitter_reference_no: type: string delivery_estimate: type: string required: - remitter_reference_no - delivery_estimate x-apidog-orders: - remitter_reference_no - delivery_estimate errors: type: 'null' required: - data - errors x-apidog-orders: - data - errors headers: {} x-apidog-name: Create - Account credit Transaction x-200:Create - Wallet Transaction: description: '' content: '*/*': schema: type: object properties: data: type: object properties: remitter_reference_no: type: string delivery_estimate: type: string required: - remitter_reference_no - delivery_estimate x-apidog-orders: - remitter_reference_no - delivery_estimate errors: type: 'null' required: - data - errors x-apidog-orders: - data - errors headers: {} x-apidog-name: Create - Wallet Transaction security: - Balad Token: [] x-apidog: required: true schemeGroups: - id: AQLH24PRUM3hlhxvZ7vSa schemeIds: - Balad Token use: id: AQLH24PRUM3hlhxvZ7vSa x-apidog-folder: APIs/Link/Transactions x-apidog-status: released x-run-in-apidog: https://app.apidog.com/web/project/1056134/apis/api-20919918-run get: summary: Transactions List deprecated: false description: 'This method provides a list of transactions with the added pagination feature. The pagination feature allows clients to fetch transactions in smaller, manageable chunks, enhancing the efficiency and performance of the request-response cycle. **Request Params:** | **SI NO** | **Parameter** | **Length** | **Type** | **Mandatory** | **Remarks** | | --- | --- | --- | --- | --- | --- | | 1 | from_date | 13 | String | Y | Starting date of the required list (DD-MMM-YYYY) Ex: 01-JUN-2020 | | 2 | to_date | 13 | String | Y | End date of the required list (DD-MMM-YYYY) Ex: 01-JUN-2020 | | 3 | page_no | 1 or 2 | Integer | Y | Requested page number | | 4 | page_size | 1 or 2 | Integer | N | Number of transactions per page Should be 1000 or less | | 5 | reference_no | 20 | Integer | N | The reference a number of the transaction to needs to be retreived | **Response Params:** | **SI NO** | **Parameter** | **Remarks** | | --- | --- | --- | | 1 | page_no | Requested page number | | 2 | page_size | Number of transactions per page | | 3 | total | Total number of pages of the list | | 4 | has_next | Indicates if there is more than one page | | 5 | date | Date and time of the transaction | | 6 | remitter_reference_no | Remitter Reference Number | | 7 | bank_reference_no | Bank Reference Number | | 8 | type | Transaction type
ex. "AccountCredit" | | 9 | sender_name | Sender Name | | 10 | receiver_name | Beneficiary Name | | 11 | account_no | Beneficiary''s Account Number. | | 13 | paid_date | Beneficiary Cash Collected/Account
Deposited Date | | 14 | status | Transaction status code and description | | 15 | currency_code | Currency Code Passed By Remitter To Balad | | 16 | amount | Amount Passed By Remitter To Balad |' tags: - APIs/Link/Transactions parameters: - name: from_date in: query description: 'format: (DD-MMM-YYYY)' required: true example: 15-jul-2023 schema: type: string - name: to_date in: query description: 'format: (DD-MMM-YYYY)' required: true example: 31-jul-2023 schema: type: string - name: page_no in: query description: '' required: true example: '1' schema: type: string - name: page_size in: query description: '' required: true example: '10' schema: type: string - name: reference_no in: query description: '' required: true example: '' schema: type: string - name: Content-Type in: header description: '' required: false example: application/json schema: type: string responses: '200': description: '' content: application/json: schema: type: object properties: data: type: object properties: page_no: type: integer page_size: type: integer total: type: integer has_next: type: boolean items: type: array items: type: object properties: date: type: string remitter_reference_no: type: string bank_reference_no: type: string type: type: string sender_name: type: string receiver_name: type: string account_number: type: string paid_date: type: string status: type: string status_details: type: object properties: code: type: integer description: type: string required: - code - description x-apidog-orders: - code - description amount: type: integer currency_code: type: string failing_reason: type: 'null' required: - date - remitter_reference_no - bank_reference_no - type - sender_name - receiver_name - account_number - paid_date - status - status_details - amount - currency_code - failing_reason x-apidog-orders: - date - remitter_reference_no - bank_reference_no - type - sender_name - receiver_name - account_number - paid_date - status - status_details - amount - currency_code - failing_reason required: - page_no - page_size - total - has_next - items x-apidog-orders: - page_no - page_size - total - has_next - items errors: type: 'null' required: - data - errors x-apidog-orders: - data - errors example: data: page_no: 1 page_size: 20 total: 3 has_next: false items: - date: DD-MMM-YYYY hh:mm AM/PM remitter_reference_no: BALADLINK-XXXXXXXXXX bank_reference_no: XXXXXXXXXX type: AccountCredit sender_name: XXXXX XXXXX XXXXX receiver_name: XXXXX XXXXX XXXXX account_number: XXXXXXXXXX paid_date: DD-MMM-YYYY status: Transferred status_details: code: 1 description: Transferred amount: 1 currency_code: EGP failing_reason: null - date: DD-MMM-YYYY hh:mm AM/PM remitter_reference_no: BALADLINK-XXXXXXXXXX bank_reference_no: XXXXXXXXXX type: AccountCredit sender_name: XXXXX XXXXX XXXXX receiver_name: XXXXX XXXXX XXXXX account_number: XXXXXXXXXX paid_date: DD-MMM-YYYY status: SettledOpenForReturn status_details: code: 1 description: Transferred amount: 1 currency_code: EGP failing_reason: null - date: DD-MMM-YYYY hh:mm AM/PM remitter_reference_no: BALADLINK-XXXXXXXXXX bank_reference_no: '' type: Wallet sender_name: XXXXX XXXXX XXXXX receiver_name: XXXXX XXXXX XXXXX account_number: XXXXXXXXXX paid_date: DD-MMM-YYYY status: Transferred status_details: code: 1 description: Transferred amount: 1 currency_code: EGP failing_reason: null errors: null headers: {} x-apidog-name: Success '400': description: '' content: application/json: schema: type: object properties: data: type: 'null' errors: type: array items: type: object properties: code: type: integer message: type: string required: - code - message x-apidog-orders: - code - message required: - data - errors x-apidog-orders: - data - errors example: data: null errors: - code: 10 message: Invalid From Date. - code: 10 message: Invalid To Date. headers: {} x-apidog-name: Invalid From and To Date x-400:From Date is greater than To Date Copy: description: '' content: application/json: schema: type: object properties: data: type: 'null' errors: type: array items: type: object properties: code: type: integer message: type: string required: - code - message x-apidog-orders: - code - message required: - data - errors x-apidog-orders: - data - errors example: data: null errors: - code: 10 message: From Date should be less than or equal ToDate - code: 10 message: To Date should be greater than or equal from date headers: {} x-apidog-name: From Date is greater than To Date Copy x-400:No Record Found: description: '' content: application/json: schema: type: object properties: data: type: 'null' errors: type: array items: type: object properties: code: type: integer message: type: string x-apidog-orders: - code - message required: - data - errors x-apidog-orders: - data - errors example: data: null errors: - code: 102 message: No Record Found headers: {} x-apidog-name: No Record Found x-400:Date difference cannot be more than 15 days: description: '' content: application/json: schema: type: object properties: data: type: 'null' errors: type: array items: type: object properties: code: type: integer message: type: string x-apidog-orders: - code - message required: - data - errors x-apidog-orders: - data - errors example: data: null errors: - code: 108 message: Date difference cannot be more than 15 headers: {} x-apidog-name: Date difference cannot be more than 15 days security: - Balad Token: [] x-apidog: required: true schemeGroups: - id: 87aTaQp8pR3_G2Uh_UKds schemeIds: - Balad Token use: id: 87aTaQp8pR3_G2Uh_UKds x-apidog-folder: APIs/Link/Transactions x-apidog-status: released x-run-in-apidog: https://app.apidog.com/web/project/1056134/apis/api-20919921-run /remit-api/v1/transactions/export: get: summary: Export Transactions List deprecated: false description: '' tags: - APIs/Link/Transactions parameters: - name: from_date in: query description: '' required: true example: 01-AUG-2025 schema: type: string - name: to_date in: query description: '' required: true example: 31-AUG-2025 schema: type: string responses: '200': description: '' content: application/json: schema: type: object properties: data: type: object properties: page_no: type: integer page_size: type: integer total: type: integer has_next: type: boolean items: type: array items: type: object properties: id: type: integer transaction_type: type: integer reference_no: type: string sender_first_name: type: string sender_middle_name: type: string sender_last_name: type: string sender_address: type: string sender_contact_no: type: string sender_date_of_birth: type: string sender_email: type: string sender_identity: type: integer sender_identity_no: type: string sender_identity_expiry_date: type: string sender_nationality: type: string sender_country_code: type: string sender_country_of_birth: type: 'null' receiver_first_name: type: string receiver_middle_name: type: string receiver_last_name: type: string receiver_address: type: string receiver_identity_no: type: string receiver_contact_no: type: string sending_currency_code: type: string amount: type: number deducted_amount_in_partner_currency: type: number exchange_rate: type: integer fees: type: number fees_currency_code: type: string account_no: type: string receiver_bank_code: type: string source_of_remittance: type: string purpose: type: string value_date: type: string sender_employer_name: type: string sender_job_description: type: string receiver_employer_name: type: string receiver_job_description: type: string sender_gender: type: string receiver_gender: type: string receiver_relationship: type: 'null' created_at: type: string failure_reason: type: string response_status: type: string response_status_code: type: integer last_update: type: string x-apidog-orders: - id - transaction_type - reference_no - sender_first_name - sender_middle_name - sender_last_name - sender_address - sender_contact_no - sender_date_of_birth - sender_email - sender_identity - sender_identity_no - sender_identity_expiry_date - sender_nationality - sender_country_code - sender_country_of_birth - receiver_first_name - receiver_middle_name - receiver_last_name - receiver_address - receiver_identity_no - receiver_contact_no - sending_currency_code - amount - deducted_amount_in_partner_currency - exchange_rate - fees - fees_currency_code - account_no - receiver_bank_code - source_of_remittance - purpose - value_date - sender_employer_name - sender_job_description - receiver_employer_name - receiver_job_description - sender_gender - receiver_gender - receiver_relationship - created_at - failure_reason - response_status - response_status_code - last_update required: - page_no - page_size - total - has_next - items x-apidog-orders: - page_no - page_size - total - has_next - items errors: type: 'null' required: - data - errors x-apidog-orders: - data - errors example: data: page_no: 1 page_size: 1000 total: 1 has_next: false items: - id: 1 transaction_type: 2 reference_no: SNC003349444 sender_first_name: MAHAMOUD sender_middle_name: HAJI sender_last_name: YUSUF-ADAN sender_address: SNC sender_contact_no: '733432008' sender_date_of_birth: 01-Mar-1979 sender_email: '' sender_identity: 1 sender_identity_no: '2503599' sender_identity_expiry_date: 31-Mar-2027 sender_nationality: Somalia sender_country_code: Yemen sender_country_of_birth: null receiver_first_name: sad sdfa d receiver_middle_name: '' receiver_last_name: '' receiver_address: EGYPT receiver_identity_no: '' receiver_contact_no: '201032486931' sending_currency_code: EGP amount: 540.37 deducted_amount_in_partner_currency: 10.81 exchange_rate: 50 fees: 1.08 fees_currency_code: USD account_no: '01032323000102' receiver_bank_code: CIB source_of_remittance: SALARY purpose: TRANSFER TO OWN FOREIGN BANK AC value_date: 29-Apr-2026 sender_employer_name: '' sender_job_description: '' receiver_employer_name: '' receiver_job_description: '' sender_gender: Male receiver_gender: Male receiver_relationship: null created_at: 20-Aug-2025 09:02 AM failure_reason: '' response_status: In Progress response_status_code: 2 last_update: 20-Aug-2025 errors: null headers: {} x-apidog-name: Success '400': description: '' content: application/json: schema: type: object properties: data: type: 'null' errors: type: array items: type: object properties: code: type: integer message: type: string required: - code - message x-apidog-orders: - code - message required: - data - errors x-apidog-orders: - data - errors example: data: null errors: - code: 10 message: Invalid From Date. - code: 10 message: Invalid To Date. headers: {} x-apidog-name: Bad Request security: - Balad Token: [] x-apidog: required: true schemeGroups: - id: 87aTaQp8pR3_G2Uh_UKds schemeIds: - Balad Token use: id: 87aTaQp8pR3_G2Uh_UKds x-apidog-folder: APIs/Link/Transactions x-apidog-status: released x-run-in-apidog: https://app.apidog.com/web/project/1056134/apis/api-21744276-run /remit-api/v2/transactions/{remitter_reference_no}/status: get: summary: Get transaction status V2 deprecated: false description: 'This method provides the current status of a transaction. ## 🧾 Transaction Status Codes | Transaction Status Code | Description | Meaning | | :--- | :--- | :--- | | **0** | **Created** | Transaction record is initiated. | | **1** | **Transferred** | Funds have been successfully sent to the beneficiary. | | **2** | **Bank Processing** | Transaction is currently being processed by the bank. | | **4** | **Returned** | Funds have been returned to the remitter. | | **7** | **Canceled** | Transaction was canceled by the remitter. | | **8** | **Pending** | Awaiting further action (e.g., funding or review). | | **9** | **Failed** | General failure during processing. | | **11** | **Balad Compliance Suspended** | Transaction flagged for internal compliance review. | | **12** | **Balad Compliance Approved** | Compliance review passed. | | **13** | **Balad Compliance Rejected** | Transaction rejected by Balad''s compliance team. | | **15** | **Bank Rejected** | Transaction rejected by the receiving bank. | | **16** | **Bank Compliance Suspended** | Transaction is under review by the bank''s compliance team. | | **17** | **Bank Compliance Rejected** | Transaction rejected by the bank''s compliance team. | | **19** | **Ready For Pickup** | Transaction is ready for cash pickup. | | **20** | **Transferred To ACH** | Transaction passed to a third party for execution. | | **21** | **Third Party Rejected** | Transaction rejected by the third party. | | **22** | **Under Cancellation** | Transaction is under cancellation. | ## 🚨 Failure Codes & Messages | Transaction Status Code | Balad Parent Category | Balad Code | Meaning / UX Message | | :--- | :--- | :--- | :--- | | **21** | `BEN_BANK_RESTRICTION` | `BEN_BNK_001` | Beneficiary bank is temporarily unavailable. | | **21** | `BEN_BANK_RESTRICTION` | `BEN_BNK_002` | Beneficiary account is restricted and cannot receive funds. | | **21** | `BEN_BANK_RESTRICTION` | `BEN_BNK_003` | Beneficiary account does not accept EGP. | | **21** | `INVALID_ACCOUNT` | `ACC_001` | Incorrect beneficiary account number. | | **21** | `INVALID_ACCOUNT` | `ACC_002` | Invalid / inconsistent account details. | | **21** | `INVALID_ACCOUNT` | `ACC_003` | Invalid beneficiary wallet number. | | **15** | `INVALID_ACCOUNT` | `ACC_004` | Invalid account format / wrong account length. | | **13 or 17** | `COMPLIANCE_RESTRICTION` | `CMP_001` | Rejected due to AML / sanctions screening. | | **7** | `CANCELLED` | `CNL_001` | Transaction cancelled. | | **4** | `RETURNED` | `RTN_001` | Transaction expired and is automatically returned. | | **9** | `TECH_FAIL` | `TECH_FAL_001` | Technical issue, transaction processing failed. | | **21 or 15 or 4** | `MISC` | `MSC_001` | Generic bank rejection / unspecified error. | :::tip[Handling MISC Failures] **`MSC_001`** is a generic, catch-all failure reason used when a rejection from the bank doesn''t map to a specific, known Balad failure code. We recommend logging these cases and contacting Balad support if they occur frequently. ::: ' tags: - APIs/Link/Transactions parameters: - name: remitter_reference_no in: path description: '' required: true example: BALADLINK-XXXXXXXXXXX schema: type: string - name: Content-Type in: header description: '' required: false example: application/json schema: type: string responses: '200': description: '' content: application/json: schema: type: object properties: data: type: object properties: remitter_reference_no: type: string transaction_status: type: object properties: code: type: integer description: type: string required: - code - description x-apidog-orders: - code - description failing_reason: type: string failure_details: type: 'null' required: - remitter_reference_no - transaction_status - failing_reason - failure_details x-apidog-orders: - remitter_reference_no - transaction_status - failing_reason - failure_details errors: type: 'null' required: - data - errors x-apidog-orders: - data - errors examples: '1': summary: Success value: data: remitter_reference_no: Ref-1764071699924 transaction_status: code: 1 description: Transferred failing_reason: '' failure_details: null errors: null '2': summary: Success value: data: remitter_reference_no: your-unique-ref transaction_status: code: 17 description: Bank Compliance Rejected failing_reason: '' failure_details: category: COMPLIANCE_RESTRICTION code: CMP_001 message: Rejected due to AML / sanctions screening additional_info: '' errors: null '3': summary: Invalid Remitter Reference No value: data: null errors: - code: 150 message: Invalid Remitter Reference No. headers: {} x-apidog-name: 'Success: Transferred' '400': description: '' content: application/json: schema: type: object properties: data: type: 'null' errors: type: array items: type: object properties: code: type: integer message: type: string x-apidog-orders: - code - message required: - data - errors x-apidog-orders: - data - errors headers: {} x-apidog-name: Invalid Remitter Reference No 'x-200:Success: Bank Compliance Rejected': description: '' content: application/json: schema: type: object properties: data: type: object properties: remitter_reference_no: type: string transaction_status: type: object properties: code: type: integer description: type: string required: - code - description x-apidog-orders: - code - description failing_reason: type: string failure_details: type: object properties: category: type: string code: type: string message: type: string additional_info: type: string required: - category - code - message - additional_info x-apidog-orders: - category - code - message - additional_info required: - remitter_reference_no - transaction_status - failure_details - failing_reason x-apidog-orders: - remitter_reference_no - transaction_status - failing_reason - failure_details errors: type: 'null' required: - data - errors x-apidog-orders: - data - errors headers: {} x-apidog-name: 'Success: Bank Compliance Rejected' security: - Balad Token: [] x-apidog: required: true schemeGroups: - id: 87aTaQp8pR3_G2Uh_UKds schemeIds: - Balad Token use: id: 87aTaQp8pR3_G2Uh_UKds x-apidog-folder: APIs/Link/Transactions x-apidog-status: released x-run-in-apidog: https://app.apidog.com/web/project/1056134/apis/api-23798903-run /remit-api/v1/transactions/update: post: summary: Update transaction deprecated: false description: "The Update Receiver Info API allows partners to request corrections to receiver information (name and contact number) for an existing transaction. \n\n### Important Notes\n- Updates can only be requested for Cash Transactions and statuses that is **not Final Status**. Check it at [Transaction Lifecycle](https://developers.balad.tech/transaction-lifecycle-v2-1733418m0.md)\n- A support ticket is automatically created for operations team to review and approve the update\n\n## Request Processing Logic\n\n| Transaction Status | Auto Update | Ticket Created | request_status | request_status_code |\n|---------------------------------|-------------|----------------|----------------|---------------------|\n| Pending | Yes | No | Updated | 1 |\n| Balad Compliance Suspended | Yes | No | Updated | 1 |\n| Sent to BDC (Not Final) | No | Yes | In Progress | 2 |" tags: - APIs/Link/Transactions parameters: [] requestBody: content: application/json: schema: type: object properties: remitterReferenceNo: type: string receiverFirstName: type: string receiverMiddleName: type: string receiverLastName: type: string receiverContactNo: type: string required: - remitterReferenceNo - receiverFirstName - receiverContactNo x-apidog-orders: - remitterReferenceNo - receiverFirstName - receiverMiddleName - receiverLastName - receiverContactNo example: remitterReferenceNo: TXN-20260115-ABC123 receiverFirstName: Ahmed receiverMiddleName: Mohamed receiverLastName: Ali receiverContactNo: '+201234567890' responses: '200': description: '' content: application/json: schema: type: object properties: data: type: object properties: request_status: type: string request_status_code: type: integer remitter_reference_no: type: string delivery_estimate: type: string nullable: true bank_reference_no: type: string nullable: true required: - request_status - request_status_code - remitter_reference_no - delivery_estimate - bank_reference_no x-apidog-orders: - request_status - request_status_code - remitter_reference_no - delivery_estimate - bank_reference_no errors: type: 'null' required: - data - errors x-apidog-orders: - data - errors examples: '1': summary: Instant Update value: data: request_status: Updated request_status_code: 1 bank_reference_no: null remitter_reference_no: XXXXXXXXXXXXXXXXXXX delivery_estimate: null errors: null '2': summary: Manual Approval Update value: data: request_status: In Progress request_status_code: 2 bank_reference_no: null remitter_reference_no: XXXXXXXXXXXXXXXXXXX delivery_estimate: null errors: null headers: {} x-apidog-name: Success '400': description: '' content: application/json: schema: type: object properties: data: type: 'null' errors: type: array items: type: object properties: code: type: integer message: type: string field: type: 'null' additional_info: type: 'null' x-apidog-orders: - code - message - field - additional_info required: - data - errors x-apidog-orders: - data - errors example: data: null errors: - code: 161 message: Can not update transaction info field: null additional_info: null headers: {} x-apidog-name: Cannot update Final Status x-400:Invalid Transaction Type Update: description: '' content: application/json: schema: type: object properties: data: type: 'null' errors: type: array items: type: object properties: code: type: integer message: type: string field: type: 'null' additional_info: type: 'null' x-apidog-orders: - code - message - field - additional_info required: - data - errors x-apidog-orders: - data - errors example: data: null errors: - code: 174 message: Sorry, this transaction type isn’t allowed. field: null additional_info: null headers: {} x-apidog-name: Invalid Transaction Type Update security: - bearer: [] x-apidog-folder: APIs/Link/Transactions x-apidog-status: released x-run-in-apidog: https://app.apidog.com/web/project/1056134/apis/api-22206972-run /remit-api/v1/transactions/validate-account: post: summary: Validate Account deprecated: false description: This API allows clients to validate bank account numbers and IBANs before initiating transfers. It enforces specific rules based on currency (EGP vs. USD), bank codes, and length requirements. tags: - APIs/Link/Transactions parameters: [] requestBody: content: application/json: schema: type: object required: - account_no - bank_code - currency properties: account_no: type: string description: 'Validation: Standard length >= 4 for EGP; IBAN format for USD.' minLength: 4 maxLength: 29 bank_code: type: string description: Must be a valid registered bank code. currency: type: string enum: - EGP - USD x-apidog-orders: - account_no - bank_code - currency example: account_no: '78153237676595' bank_code: SCB currency: EGP responses: '200': description: '' content: application/json: schema: type: object properties: data: type: 'null' errors: type: 'null' required: - data - errors x-apidog-orders: - data - errors example: data: null errors: null headers: {} x-apidog-name: Valid Account Sucess '400': description: '' content: application/json: schema: type: object properties: data: type: 'null' errors: type: array items: type: object properties: code: type: integer message: type: string field: type: string additionalInfo: type: string x-apidog-orders: - code - message - field - additionalInfo required: - data - errors x-apidog-orders: - data - errors example: data: null errors: - code: 10 message: Invalid Input field: account_no additionalInfo: Invalid Egyptian IBAN format. Please enter a valid IBAN. headers: {} x-apidog-name: Invalid IBAN security: - Balad Token: [] x-apidog: required: true schemeGroups: - id: yZFVPsbW6ly_WiinOrCGO schemeIds: - Balad Token use: id: yZFVPsbW6ly_WiinOrCGO x-apidog-folder: APIs/Link/Transactions x-apidog-status: released x-run-in-apidog: https://app.apidog.com/web/project/1056134/apis/api-28115248-run components: securitySchemes: Balad Token: type: bearer scheme: bearer bearer: type: http scheme: bearer