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.

RangeMeaning
2XXRequest processed successfully — response body contains the expected data.
4XXClient error — inspect and correct the request before retrying.
5XXServer error — treat as transient; consider retrying after a delay.

Common Error Status Codes

When a request fails, our APIs return an error payload describing the issue.

HTTP StatusError CodeDescription / CauseRecommended Action
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 subscriptionAccount 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": { } | null, // Optional additional info
"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
}