To be granted access to this API, you will be required to be PCI-DSS certified. For further inquiries, please reach out to integrations@monnify.com
Charge Cards
Monnify allows you to charge your customers who make one-time payments through the use of their cards. To charge a card you will need to make a request to the endpoint below:
This endpoint is protected with OAuth 2.0 Bearer token. To find out more about authorization for Monnify endpoints, check Here
Endpoint URL: {{base_url}}/api/v1/merchant/cards/charge
HTTP Method: POST
The {{base_url}} for test is https://sandbox.monnify.com
but when you go live, it changes to the live url
Sample Request Body
{ "transactionReference": "MNFY|20190514172736|000001", "collectionChannel": "API_NOTIFICATION", "card": { "number": "4111111111111111", "expiryMonth": "10", "expiryYear": "2022", "pin": "1234", "cvv": "122" } }
The response that will be gotten depends on the kind of card used for the transaction. There are cards charged with the use of an OTP, without an OTP, and also with 3DS Secure Authentication. See sample response for each scenario.
Sample Response (with no OTP)
{ "requestSuccessful": true, "responseMessage": "success", "responseCode": "0", "responseBody": { "status": "SUCCESS", "message": "Transaction Successful", "transactionReference": "MNFY|54|20210429142557|000206", "paymentReference": "1619702756719", "authorizedAmount": 2000.00 } }
Sample Response (with OTP)
{ "requestSuccessful": true, "responseMessage": "success", "responseCode": "0", "responseBody": { "status": "OTP_AUTHORIZATION_REQUIRED", "message": "OTP Authorization required", "otpData": { "id": "2000.00-e944ba213f0acbc90a16b292ba353b2f", "message": "Please enter OTP. Use 123456 as token" }, "transactionReference": "MNFY|54|20210429142945|000208", "paymentReference": "1619702984105", "authorizedAmount": 1000 } }
Sample Response (For 3DS Secure Authentication)
{ "requestSuccessful": true, "responseMessage": "success", "responseCode": "0", "responseBody": { "status": "BANK_AUTHORIZATION_REQUIRED", "secure3dData": { "id": "769104908", "redirectUrl": "https://0eaf.cardinalcommerce.com/EAFService/jsp/v1/redirect", "callBackUrl": "https://webpay.interswitchng.com/collections/api/v1/pay/cardinalCallBack", "eciFlag": "07", "termUrl": "https://webpay.interswitchng.com/collections/api/v1/pay/cardinalCallBack", "acsUrl": "https://0eaf.cardinalcommerce.com/EAFService/jsp/v1/redirect", "paReq": "P.29bc9e4fb9c3cdd35c3cd6abf323a7544ed8da1a7b609462f2979c2c8cdf561736fbed57ed447ef69484556311fc0b08399a9b3a8f3ae94900d9e5cb443a1bf257541e1b931b67dfcb4c27ba64d06b53", "transactionId": "gJKEbN5MmwlkjcKwYAD0", "paymentId": "769104908", "method": "POST", "md": "769104908" }, "transactionReference": "MNFY|79|20220328040030|001015", "paymentReference": "u0v3ysqjp809883", "authorizedAmount": 20.0 } }
Field Parameters
Field | Description |
---|---|
transactionReference | Unique reference generated for the transaction by Monnify |
collectionChannel |
|
card | Object containing card information |
number | Card number |
expiryMonth | Card expiration month |
expiryYear | Card expiration year |
pin | Card pin from card owner |
cvv | Security code behind card |
tokenId | Token id from the request response (otpData.id) |
token | OTP from card owner (use 12345 for test card) |