The status code indicates if the gateway was technically able to process the operation or not.
The result code is a three-digit number that specifies the result of the processed operation, e.g. "success" or "failure".
The reason code is a number containing more-detailed information on why the transaction was successful or failed, e. g. “Request successful” or “Authentication failed”.
Tip: The "code hierarchy" is as follows: Status Code > Result Code > Reason Code. Explanation: Reason Codes are grouped into Result Codes and Result Codes occur into Status Codes.
Most gateway responses containing a customer message that can be shown to the customer.
payment_request_response.xml
[…]
<operation>PAYMENT_REQUEST</operation>
<response-type>PAYMENT_PERMISSION</response-type>
[…]
<processing>
<timestamp>2018-09-13T10:55:04.000</timestamp>
<status code="OK">Successfully</status>
<reason code="700">Request successful</reason>
<result code="402">Transaction result pending</result>
<customer-message>The verification was successful. Thank you for choosing open invoice as your preferred method of payment.</customer-message>
</processing>
[…]In the example above you see:
<status code="OK">
<result code="402">
402: Transaction result pending
<reason code="700">
| Version | Date | Changes |
|---|---|---|
| 1.5 | January 2022 | Structural changes |
| 1.4 | January 2021 | Added a Quick Start Guide and made some editorial changes |
| 1.3 | Added reason code for Remember IBAN feature 262: Merchant consumer id and payment method 'ELV' are mandatory for using stored bank account information | |
| 1.2 | Added reason codes for marketplaces 260: Shop-id in external block is mandatory for this product 261: All items must contain a shop-id 261: All items must not contain a shop-id | |
| 1.1 | April 2020 | Expanded possible reason codes by 720: Declined - Payment attribute 721: Declined - Transaction risk |
| 1.0 | January 2020 | Initial release on GitBook |