Skip to main content

Success & Error Codes

Understanding HTTP status codes and error responses to build robust integrations.

Understanding Response Codes

We use standard HTTP status codes to communicate the outcome of API requests. Use the status code to drive your business logic and remedial actions:

2XX

Success

Request was processed successfully — response body contains the expected data.

4XX

Client Error

There's an issue with the request. The client should inspect and correct the request.

5XX

Server Error

An error occurred on our side. Treat as transient — consider retrying the request later.

Common Error Status Codes

When a request fails, our APIs return an error payload describing the issue. The table below lists common error HTTP status codes, possible reasons, and recommended actions:

HTTP StatusError CodeDescription / CauseRecommended Next Steps
400BAD_REQUESTRequest has malformed or missing data.Validate request data against API schema. Fix missing/incorrect fields.
401UNAUTHORISED_ACCESSAuthentication failed — missing or invalid credentials.Ensure Authorization header is correct and key is valid.
402No active subscriptionYour account subscription is inactive or expired.Contact support to activate or renew subscription.
403MERCHANT_CREDITS_EXPIREDAccount has exhausted credits required for API calls.Acquire more credits — contact support to top up.
422NO_RECORD_FOUNDAPI could not find any matching record based on input.Verify input data is correct and refers to existing records.
443MAX_RETRIES_EXCEEDEDRate‑limit exceeded (too many requests).Wait for cooldown period and retry. Implement rate-limiting logic.
500INTERNAL_SERVER_ERRORUnexpected error occurred on server side.Retry after some time. If persistent, contact support with requestId.
503INTERNAL_SERVICE_UNAVAILABLEService temporarily unable to handle request.Retry after some time with backoff. Contact support if persistent.
504Endpoint request timed outRequest took too long to process.Retry after delay. Consider adding timeout and retry logic.

📝Note: The list above covers common cases. Additional or custom error codes may appear depending on the endpoint, account configuration, or business logic. Always inspect the full error payload for details.

Error Response Format

When the API returns an error, the response body follows this JSON schema:

{
"error": {
  "code": <integer>,         // HTTP status code or custom error code
  "description": "string",   // Brief description of the error
  "message": "string",       // Human-readable error message
  "metadata": { /* optional additional info */ } | null,
  "referenceId": "string",   // Unique ID for the error/request
  "type": "string"           // Error type (e.g. BAD_REQUEST)
},
"merchantId": "string",      // Your account / merchant identifier
"requestId": "string",       // Unique request identifier
"statusCode": <integer>,     // HTTP status code
"timestamp": <integer>       // Unix timestamp in milliseconds
}

Sample 400 Error Response

{
"error": {
  "code": 400,
  "description": "Request does not contain ifsc param in request body",
  "message": "IFSC is missing",
  "metadata": null,
  "referenceId": "",
  "type": "BAD_REQUEST"
},
"merchantId": "org_qMOPL369km74RKOz",
"requestId": "RNlVKFM0BcwEDGA=",
"statusCode": 400,
"timestamp": 1725268007691
}