Error Handling

All errors from the Payments API share one structure. Whether an error appears in an error response, on a failed payment, or in a webhook payload, it is the same object:

AttributeRequiredDescription
codeYesA unique error code identifying the issue
titleYesA short summary of the error
detailYesA detailed explanation of the error
dataNoPer-attribute validation messages (e.g. on 400 and 422 responses)
linksNoRelated documentation links (e.g. on 401 and 503 responses)

Error Responses

Requests that fail return an errors array at the top level of the response body.

API error (400)

Returned when request parameters fail contract validation. The data attribute contains per-attribute messages.

{
  "errors": [
    {
      "code": "ZIS01",
      "title": "Bad Request",
      "detail": "The request parameters are invalid.",
      "data": {
        "amount": ["can't be blank"],
        "uid": ["can't be blank"]
      }
    }
  ]
}

Failed Payments

When a payment fails asynchronously, the payment resource in subsequent responses includes an errors array describing the cause.

{
  "data": {
    "status": "failed",
    "errors": [
      {
        "code": "ZIC01",
        "title": "Creditor Account Alias Not Resolved",
        "detail": "The creditor account alias could not be resolved."
      }
    ]
  }
}

A failed payment's payments_payout.finalised webhook carries the same errors array — see the Webhooks page.

Failure Code Prefixes

All codes use the ZI prefix (Zepto payment Initiation). The third character indicates the responsible party:

  • S — Shared (applies regardless of side)
  • D — Debtor (originator of the payment)
  • C — Creditor (recipient of the payment)

Shared Failure Codes

Codes that may apply to any request or payment, regardless of which side caused the issue.

CodeTitleDescription
ZIS01Bad RequestThe request parameters are invalid.
ZIS02Unprocessable EntityThe request could not be processed.
ZIS03Duplicate UIDA payment with the given UID already exists.
ZIS04Retention Period ExpiredThe payment is outside the retention period and is no longer available.
ZIS05Over Per-Transaction LimitThe requested amount exceeds your per-transaction limit.
ZIS06Debtor and Creditor Are the Same AccountPlease use transfers to move money between internal accounts.
ZIS07Client Not FoundThe client could not be found.
ZIS08Unauthorised Access TokenAccess token is expired or not valid
ZIS09Unauthorised UserThis user has not yet confirmed their account or is suspended
ZIS10ForbiddenThis user is not permitted to perform the requested action.
ZIS11Invalid Accept FormatAccepted formats: '/', 'application/json'
ZIS12Invalid Request BodyThe request body could not be parsed as JSON.
ZIS13Gateway TimeoutThe server did not receive a timely response. Please try again later.
ZIS14Timeout Acquiring LockTimed out waiting for another request to finish. Retry in 5 seconds.
ZIS15Invalid Request ParametersOne or more request parameters are invalid.
ZIS16Payment Not CancellableThe payment can't be cancelled in its current status.
ZIS99Unknown Payment ErrorAn unknown error occurred while processing the payment. Please contact Zepto for assistance.

Debtor Failure Codes

Codes indicating the issue originated from the debtor side (e.g. account configuration, available funds).

CodeTitleDescription
ZID01Debtor Account Not FoundThe debtor account could not be found.
ZID02Debtor Account Insufficient FundsThe debtor account had insufficient funds to process this payment.
ZID03Debtor Account Not ActiveThe debtor account is not active.
ZID04Debtor Account Not ConfiguredThe debtor account is not configured for payments.
ZID05Debtor Account Unsupported ChannelThe debtor account does not support the selected payment channel.
ZID06Debtor Account Debit BlockedThe debtor account has an active debit block.

Creditor Failure Codes

Codes indicating the issue originated from the creditor side (e.g. unable to resolve the destination account).

CodeTitleDescription
ZIC01Creditor Account Alias Not ResolvedThe creditor account alias could not be resolved.
ZIC02Creditor Account ClosedThe creditor account is closed.
ZIC03Intermittent Outage At Target InstitutionThe target financial institution is experiencing technical difficulties. Please try again later.
ZIC04Creditor Account BlockedThe creditor account is blocked from receiving funds.
ZIC05Creditor Account Cannot Accept NPP PaymentsThe creditor account cannot accept this payment via NPP.
ZIC06Creditor Account Blocked By InstitutionThe creditor account is blocked by its financial institution and cannot receive funds.