Response Codes - Local API

Result Codes

CodeDescription
"0"Approved no Action. Note: code is 0 and does not include ""
1Approved
-3Duplicate Transaction ID
-4Validation error. Please verify the values you provided are correct
-5Operation not Allowed
-6Operation not Supported
-7Transaction Timeout
-8Authentication Failed
-9Do not honor (general decline, no specific reason given)
-29There are invalid characters in either the pin block or one of these fields: title, initials, surname, address1, address2, address3, address4, address5, additionalData
-34Card already active
-35Card not active
-36Expired card
-38Lost card
-39Stolen card
-244Invalid last name
-246Invalid first name
-247Invalid ID number
-248Invalid MSISDN
-250Invalid initials
-251Invalid Address 1 OR Invalid Contact Number
-252Invalid Address 2
-253Invalid Address 3
-254Invalid Address 4
-255Invalid Address 5 OR Invalid PinBlock
-295Invalid expiry date
-333sessionKey not present in header and "Companion API Require Session Key" is enabled
-334sessionKey present and not decryptable/parsable
-778Reference has no linked cards
-779Card already linked to a different reference
-780Invalid card reference
-781Invalid card - Not a physical card
-782Cannot disable physical card OR Print card request already requested

Important

The checksum that accompanies each request should be calculated as the HMAC-SHA256 hash of the method name concatenated with all the parameters in order. The terminal password should be used as the key for the hash:

hmac_sha256('TerminalPassword', 'MethodNameParam1Param2Param3')

Any method with both the reference and cardIdentifier parameters will accept an empty reference parameter if the campaign is set to use the card number as reference and the cardIdentifier parameter is supplied.

The cardIdentifier parameter can be empty for most calls if the reference only refers to a single card.

Any argument that has the type 'date' needs to follow the XML-RPC specified ISO 8601 datetime format: <dateTime.iso8601>YYYYMMDDTHH:mm:ss</dateTime.iso8601>

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

  • R100.50 is therefore represented as 10050 rand cents.

  • $10.50 is therefore represented as 1050 dollar cents.