Skip to main content
Error codes

Every error, and what it means

When a call fails, whether from bad data on your side or a fault on ours, Paytia returns one of the messages below. Read httpStatus and status.statusCode in the response body, not just the HTTP status.

API reference menu

Code table

CodeFailure reasonMessage returned
200SuccessSuccess
208Duplicate reference ID. The body carries httpStatus: false.Reference ID Already Exist
400A required parameter is missing from the callMissing required parameter
400The agent_id lacks the rights for this transaction_flagThe reason, in statusDescription
401API key mismatchInvalid API key
405Invalid API call specifiedMethod Not Allowed
—Concurrent licence limit reachedconcurrent license limit reached (text only, no code)
500Database or application syntax errorInternal Server Error
502Server errorBad Gateway
503Server errorService Unavailable
504Server errorGateway Timeout

Read the body, not just the status

A duplicate reference is the trap here. It comes back as 208, which looks like success if you only check for a 2xx, but the body says otherwise:

{
  "httpStatus": false,
  "reference_id": "euat1000193723-1628134",
  "status": {
    "statusCode": 208,
    "statusDescription": "Reference ID Already Exist"
  }
}
json

reference_id must be new on every attempt, including a retry of a request that failed. Generate a fresh one and send again.

Agent rights errors

If the agent_id on a request doesn't have the rights for the transaction_flag you sent, Paytia returns a 400 with the reason in statusDescription. The agent can't go further until the rights are assigned.

{
  "httpStatus": false,
  "reference_id": "reference_id_is_number_144",
  "status": {
    "statusCode": 400,
    "statusDescription": "The agent you are using doesn't have the right to use transaction type 3."
  }
}
json

To fix it, open the Paytia Administration Portal, go to Administer Users → Users and click Edit. Set Menu Rights for menu access and Licence Rights for the payment types each active licence allows.

Concurrent licence limit

Paytia checks active calls against the concurrent licence on your merchant account. When the limit is reached, the request returns the text concurrent license limit reached with no status code, so match on the message.

Still stuck?

Write to techsupport@paytia.com with the request you sent and the response you got. Exception handling →

Ready to build with Paytia?

The docs are open. Keys are gated — drop us a line and we'll issue sandbox credentials so you can try every flow against a real endpoint.