Recurring Payments

This feature allows you to accept payments from your customer’s card without requiring the customer’s card details. This can be used for recurring payments, subscriptions, automated savings, etc.

How it works

  1. A first transaction requiring customer authorization is done from your web or mobile application.

  2. Get a token linked to the card.

  3. Save the card token.

  4. Charge the card using the saved token.

Charge the customer’s card from your web or mobile application.

When a customer initiates a card transaction on either your web or mobile application and provides their card details, you charge their card for that initial payment to confirm the validity of the card.

Get card token

Once the first card transaction is successful, you get a card token by performing a re-query on the transaction using the Get Transaction Status API, for more info - check this link. When you call this endpoint, you'll obtain a response with a cardDetails object in the request body, which has the cardToken field, which holds the card’s token.

Sample response from the Get Transaction Status

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 { "requestSuccessful": true, "responseMessage": "success", "responseCode": "0", "responseBody": { "transactionReference": "MNFY|85|20220121154916|000006", "paymentReference": "1642776556694", "amountPaid": "30.00", "totalPayable": "30.00", "settlementAmount": "20.00", "paidOn": "21/01/2022 03:49:28 PM", "paymentStatus": "PAID", "paymentDescription": "Paying for Product A", "currency": "NGN", "paymentMethod": "CARD", "product": { "type": "WEB_SDK", "reference": "1642776556694" }, "cardDetails": { "cardType": "MC Scheme", "last4": "1608", "expMonth": "08", "expYear": "24", "bin": "469667", "bankCode": "044", "bankName": "Access bank", "reusable": true, "countryCode": null, "cardToken": "MNFY_8BA4740A8ED449E7BE404335977193AC", "supportsTokenization": true }, "accountDetails": null, "accountPayments": [], "customer": { "email": "smekiluwa@teamapt.com", "name": "Smart Mekiliuwa" }, "metaData": { "deviceType": "mobile", "ipAddress": "127.0.0.1" } } }

Store Card Token

Once you have gotten the token for the transaction, you store the token and the email address used for the transaction. It is important to save the email for the original transaction with the obtained token as this pair of information must match for subsequent automated payments using the card token.

Charge the Card Token

When a customer selects the card for a new transaction or when you want to charge them subsequently, you make a request to the Charge Card Token endpoint with the saved token and the customer’s email. Ensure you send the same email used for the initial transaction when making this request.

To enable this feature on your integration, kindly reach out to the Monnify integration team via integration-support@monnify.com to help activate this feature.