Visa card transactions unlike Verve card and Mastercard card transitions require cardinal validation. Payment transaction requires Cardinal when ResponseCode is S0
To accept payment with Card that requires cardinal use this end point to make your request.
1 |
POST /api/v3/purchases |
Sample Request
To make payment with card that requires cardinal, set up your payment request like this.
1 2 3 4 5 6 7 8 9 10 |
{ "customerId": "1407002510", // Email, mobile number, BVN etc to uniquely identify the customer. "amount": "200", // Amount in naira. "transactionRef": "ESBDEV10003", // Unique transaction reference number. "currency":"NGN", // ISO Currency code. "authData":"AMZtxiP2Jxx5PjYnM+YbtxMt56j/0cfaqo27oCTEa7ifuONNODvmshDVLYdSl0YZ41dETsI1ZgzRy6i YvPUZ0g2E41AU4wAcmU55sFsuEyAfuHWVrw/sOuyBtg/vO9k1Khv/KPNHw/bg8GvmWPclS1Ti4V01sMkEdjGDX3L3geh05 fCHrk8/Z8VHOLMHQ4v9sKbsrwzglS9qBRTqHhfYmayG2+s4j3KE82hPeK/6trxtvJ0vCE6h2/UOyxaD+WjtrQblSW/g8Cp yhw3AkE9JR14bNxQXQWCeWI1obwPcGHE04gsKFLekBIjFqKlszMXHlkevBHgdSHnexbWjtj/O6Q==" // Auth data. } |
Sample Response (success)
After payment request has been sent, the expected successful payment response is similar to this.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
{ "paymentId": "66603", // Payment Identifier. "responseCode": "S0", // Response Code. "amount": "200.00", // Amount in Naira. "transactionRef": "ESBDEV10003", // Uniques transaction reference number. "transactionId": "MSPjKBV2Kyg91MQRMep0", // Transaction unique identifier. "eciFlag": "07", // The Electronic Commerce Indicator (ECI) Flag e.g Visa:05: Issuer Liability, // 06: Issuer Liability, 07: Merchant Liability. "MD": "66603", // Merchant's session tracker. Set to blank if not used. "ACSUrl": "https://testcustomer34.cardinalcommerce.com/V3DSStart?osb=visa-3&VAA=B", // This is the URL to which your application must next send the cardholder to complete authentication. "TermUrl": "https://sandbox.interswitchng.com/collections/api/v1/pay/cardinalCallBack", // The URL for handling and processing the response from the ACSUrl. "PaReq": "eNpVUttu4jAQffdXoH5AbOeCtGhqKQVp2+2GpmlL9zU4s2AgTuo4Bf6+doBe3uacuficGcPz2iDOnlD2BgVk2HXlCkequr7Knv LN/c0ivD+ufvHssciwZVcC8rTANwHvaDrVaMEDFoRAL5C4EUauS20FlPLt5m4u4jiOogjoGRKo0dzNBA+jOBkDPSECuqxRpBXaXm+UGqVbpSs EOtAEZNNra44iGbuWCyDQm51YW9tOKN3jsi2PgdLWSdkrK9d6Fcimpo6tlEFpaYV1A9T3EKBfOvPeR52zf1CVeF7MH8utnS42f/7iq0yyF168 bPlOztJroL6CQFVaFCHjY5aE0YjzScInPAY68ATK2gsU89/zUchYwJgzf6IItP6x9IRc0ue+U85pbwxqebF6QQTw0DYafRvQz9gZ+ZI/vfVLl 9btM5/pij10u+Vh+v/233IfcrnPZVE0/g5DxTBQuS06FfEwUQ0rpX4KPV+Znj+Ei358lA9Mdboe" // Content of the Payload field from cmpi_lookup. } |
Sample Response (failure)
After payment request has been sent, the expected failure response is similar to this if any.
1 2 3 4 5 6 7 8 9 |
{ "errors": [ { "code": "10409", // Error code. "message": "\"Payment already completed\"" // Error Message. } ], "transactionRef": "ESBDEV10003" // Transaction unique identifier. } |