API Reference

Respose Codes

Response Codes – Remote API

CodeDescription
1Approved
2Approved – Partial amount
-2Invalid card number
-3Duplicate transmission
-4Invalid card number (use for invalid wallet reference)
-5Transaction not permitted to Terminal / Transaction not permitted to Acquirer
-6Function not supported / Invalid transaction
-7Transaction timeout
-8Authentication failed (Incorrect checksum)
-9Do not honor (general decline, no specific reason given, technical error)
-13Stolen card
-14Insufficient funds
-16Exceeds Purchase amount limit
-17Not sufficient funds
-18Exceeds withdrawal amount limit
-19Invalid amount
-24Security violation
-25Incorrect PIN
-26Allowable PIN tries exceeded
-27Invalid PIN block
-28PIN length error
-29Restricted card
-34Account closed / Invalid account
-36Expired card
-37Suspected fraud
-38Lost card
-39Stolen card
-41Requested function not supported / Invalid transaction
-783Do not honor (general decline, no specific reason given, technical error)
-784Transaction not permitted to Cardholder / Transaction not permitted to Issuer

Important

Any argument that has the type date needs to follow the XML-RPC specified ISO 8601 date-time format:

<dateTime.iso8601>YYYYMMDDTHH:mm:ss<dateTime.iso8601>

Any transaction amount is represented as its cent value, and therefore as an integer rather than a decimal.

  • R100.50 is represented as 10050 (rand cents).
  • $10.50 is represented as 1050 (dollar cents).

KLV: Key-Length-Value Format

A type of TLV-encoded string with the following characteristics:

  1. A Key indicator of 3 digits, zero left-padded.
  2. A Length indicator of 2 digits, zero left-padded.
  3. A Value with the number of characters specified by the Length indicator.

It is important to note:

  • Transactions may or may not contain keys depending on the type of transaction.
  • Keys do not need to be in any particular order or sequence within transactionData.
  • Customers must be able to receive all keys available within transactionData.
  • Customers may ignore keys not pertinent to processing.
  • You must be able to successfully process messages that contain new unannounced keys.
  • Available keys are subject to change and are often customer-specific, and therefore will be communicated via means other than this API documentation.

For example the KLV string: 01206AB48DE003044577 contains:

  1. Key 012 with length 06 and value AB48DE
  2. Key 003 with length 04 and value 4577

Please refer to the lookup table for the available values.