Home
Release Notes
Home
Release Notes
Linkedin
  1. Link
  • 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. Link

Error Codes

A complete guide to Balad API error codes with clear explanations and resolution steps.

Quick Navigation#

Understanding Error Responses
Create Transaction Errors
Cancel Transaction Errors
Update Transaction Errors
Developer API Errors
General Errors

Understanding Error Responses#

Response Format#

All API errors follow a consistent format:
{
  "data": null,
  "errors": [
    {
      "code": 10,
      "message": "Invalid Input",
      "field": "receiver_bank_code",
      "additional_info": "Bank code must be 3 characters"
    }
  ]
}

Response Fields Explained#

FieldDescriptionExample
codeUnique error identifier (use this for programmatic handling)10
messageHuman-readable error description"Invalid Input"
fieldThe request field that caused the error (when applicable)"receiver_bank_code"
additional_infoExtra context to help resolve the issue"Bank code must be 3 characters"

Create Transaction Errors#

Endpoint: POST /remit-api/v1/transactions - Create transaction
These errors occur when creating a new transaction.

Input Validation Errors#

HTTPCodeMessageCauseResolution
40010Invalid InputA request field has an invalid valueCheck the field and additional_info in the response for details. Correct the invalid field and retry.

Amount Errors#

HTTPCodeMessageCauseResolution
400170Minimum amount should be greater than or equal {amount}Transaction amount is below the minimum thresholdIncrease the amount to at least 1 USD (or equivalent in EGP).
400171Maximum amount should be less than or equal {amount}Transaction amount exceeds the maximum allowedReduce the amount to the maximum shown in the error message.

Transaction Limit Errors#

HTTPCodeMessageCauseResolution
400187Max wallet amount is {amount}Transaction amount exceeds the maximum wallet limitReduce the transaction amount to {amount} EGP or less per wallet transaction.
400188Recipient account daily transaction limit exceededRecipient account has reached the allowed daily transaction limitWait until the next day
400189Recipient account monthly transaction limit exceededRecipient account has reached the allowed monthly transaction limitWait until the next month
Note
The {amount} value in error messages are dynamic and reflects the actual limits. Always read the exact amount from the API response message rather than assuming a fixed value.

Account & Bank Errors#

HTTPCodeMessageCauseResolution
400172Invalid account number for provided bank codeThe receiver's bank account number failed validationVerify the account number is correct and matches the bank's format requirements. For BDC bank, ensure the account follows their specific format.

Currency & Routing Errors#

HTTPCodeMessageCauseResolution
4008057Sorry, this currency isn't allowedUnsupported currency codeUse only supported currencies: USD (US Dollar) or EGP (Egyptian Pound).
400185This currency is not supported on the selected payout routeCurrency/route combination not supportedEither change the payout route or use a different currency that's supported on the selected route.

Transaction Type Errors#

HTTPCodeMessageCauseResolution
400174Sorry, this transaction type isn’t allowed.Invalid or unsupported transaction typeUse only valid transaction types: 1 (Cash), 2 (Account), 3 (Wallet). Contact support if you need a specific type enabled.

Reference Number Errors#

HTTPCodeMessageCauseResolution
400129Reference number already existsA transaction with this reference already existsGenerate a new unique reference number. Each transaction must have a unique remitterReferenceNo.

Balance Errors#

HTTPCodeMessageCauseResolution
4008068The requested amount exceeds your balanceInsufficient partner balancePre-fund your account before creating transactions. Contact your account manager to add funds.

Security Errors#

HTTPCodeMessageCauseResolution
400173Encryption must be enabled to process card transactions. Please enable encryption and try again.Card transaction attempted without encryptionEnable encryption in your partner settings before processing card transactions. Contact support for assistance.

Cancel Transaction Errors#

Endpoint: POST /remit-api/v1/transactions/cancel - Cancel transaction
These errors occur when canceling an existing transaction.
HTTPCodeMessageCauseResolution
400106Invalid Reference NumberTransaction not foundVerify the remitterReferenceNo is correct and belongs to your partner account.
400113Cancellation Not AvailableTransaction cannot be canceled in current statusCancellation is only available for transactions in certain statuses. Check the transaction status first using the status API.
400169Transaction already canceled beforeTransaction was already canceledNo action needed. The transaction is already canceled. Use the transaction details API to confirm the status.

Cancel Error Decision Tree#

πŸ’‘
Is the reference number correct?
β”œβ”€β”€ No β†’ Error 106: Double-check the remitterReferenceNo
└── Yes β†’ Check transaction status
β”œβ”€β”€ Already Canceled β†’ Error 169: No action needed
β”œβ”€β”€ Completed/Transferred β†’ Error 113: Cannot cancel completed transactions
└── Created/Pending β†’ Cancellation should succeed

Update Transaction Errors#

Endpoint: POST /remit-api/v1/transactions/update - Update transaction
These errors occur when updating receiver information.
HTTPCodeMessageCauseResolution
400106Invalid Reference NumberTransaction not foundVerify the remitterReferenceNo is correct and belongs to your partner account.
400161Can not update transaction infoTransaction cannot be updated in current statusUpdates are only allowed for transactions in Created status. Transactions that are already transferred, completed, or failed cannot be updated.

Update Error Decision Tree#

Is the reference number correct?
β”œβ”€β”€ No  β†’ Error 106: Double-check the remitterReferenceNo
└── Yes β†’ Check transaction status
          β”œβ”€β”€ Created β†’ Update should succeed
          β”œβ”€β”€ Processing β†’ Error 161: Wait for completion or contact support
          β”œβ”€β”€ Transferred/Completed β†’ Error 161: Cannot update completed transactions
          └── Failed/Canceled β†’ Error 161: Cannot update failed/canceled transactions

Developer API Errors#

Endpoint: POST /core/v1/developer/secrets - Secrets
HTTPCodeMessageCauseResolution
4008033You have exceeded the limit of 5 active secrets allowedMaximum secret count reachedRevoke an existing secret before creating a new one. You can have a maximum of 5 active secrets.

General Errors#

These errors can occur on any endpoint.
HTTPCodeMessageCauseResolution
40010Invalid InputRequest validation failedCheck the field and additional_info for specific details about what needs to be corrected.
400/50014An unexpected error has occurredUnexpected system errorThis is rare. Retry the request. If it persists, contact support with your request details and timestamp.

Quick Reference Card#

CodeMeaningAction
10Invalid inputFix the field shown in response
14System errorRetry, then contact support
106Reference not foundVerify reference number
113Can't cancelCheck transaction status
129Duplicate referenceUse unique reference
161Can't updateOnly "Created" status allowed
169Already canceledNo action needed
170Amount too lowIncrease amount (min 1 USD)
171Amount too highDecrease amount
172Invalid accountVerify bank account
173Encryption requiredEnable encryption
174Invalid typeUse type 1, 2, or 3
185Currency/route mismatchChange currency or route
187Wallet limit exceededReduce wallet transaction amount
188Daily recipient limit exceededRetry next day
189Monthly recipient limit exceededRetry next month
8033Too many secretsRevoke one first
8057Invalid currencyUse USD or EGP
8068Insufficient balancePre-fund account
Previous
Sandbox Testing Guide
Next
Transaction Lifecycle V2
Built with