Fintech APIs & Platform for KYC, Verification & Transactions in India | Eko Platform Services
Eko Platform Services Logo

Status & Error Codes

Eko APIs report status at two levels: the transport-level HTTP status code and the business-level response_status_id inside the response envelope. A 200 OK with a non-zero response_status_id is a successful call that returned a business error — always check both.

HTTP Status Codes

CodeMeaning
200OK — response returned by our system.
403Forbidden — incorrect secret-key or timestamp. See how authentication works or test your generated secret-key
404Not Found — wrong request URL.
415Unsupported Media Type — wrong Content-Type header.
500Internal Server Error — connectivity or URL misconfiguration.

The Response Structure

FieldTypeMeaning
statusnumberPrimary success indicator (0 = success).
response_status_idnumberGranular status id — the codes above.
response_type_idnumberResponse type id for non-financial requests.
tx_statusnumberFinancial Transactions status code (0 = success)
messagestringHuman-readable result or error message.
dataobjectRest of the response parameters specific to that transaction

Input Validation Errors

In case of input parameter validation errors, you will receive and error (non-zero) status code, response_status_id = 1, response_type_id = -1, and the response will contain invalid_parameters object with each invalid parameter name and its error message. This can be used to show proper error response in the user-input form itself.

For example:

{
	"status": 461,
	"response_status_id": 1,
	"response_type_id": -1,
	"invalid_params": {
		"name": "Name too long",
		"dob": "Must be over 18 years",
	},
	...
}

Financial Transaction Status Codes (tx_status)

Financial (money-debit) responses additionally carry tx_status and txstatus_desc. When tx_status is 2 (Awaited), poll the relevant status endpoint rather than retrying the debit.

tx_statusMeaning
0Success
1Failed
2Initiated (In case of NEFT Money Transfer)
3Refund Pending
4Refunded
6Response Awaited (Transaction Inquiry Required)

Common Transaction Status Codes (status)

For all financial transactions, status = 0 should be treated as successful else failed. The current state of a financial transaction can be retrieved from tx_status and txstatus_desc parameters.

For all non-financial requests, you may need to consider both status and response_type_id parameters.

Here are some of the common status codes:

statusMeaning
0Success
17User wallet already exists
132Sender name should only contain letters
302Wrong OTP
303OTP expired
319Invalid initiator_id. User does not exist in our system
327Enrollment done; verification pending
342Recipient already registered
346User/agent not onboarded or wrong user_code
347Insufficient balance
463User not found
585Customer already KYC approved
945Sender/beneficiary monthly limit exhausted
1297User/Agent not onboarded