High-level overview

We use the Mona gateway to enrol a customer for deferred/recurring payments. It does not matter if a customer pays via USSD, card or bank transfer, we will automatically retrieve the bank account linked to their payment method to enrol. Any time we re-identify this user on our checkout, we will offer them this as a payment method.

the Mona enrolment object

By passing the monaEnrolment object to your create checkout session request, we will seek to onboard the customer to Mona Pay with Bank. If you pass a Mona customer ID as part of the object, we assume you are trying to enrol an additional bank account for an existing customer. It is important you allow the customer to approve limits to the amount and frequency you can debit them. This is done by passing the mandatory periodicLimits key in the object. The periodicLimits object

Enrolling a customer for debits

If you want to charge a customer on a deferred or recurring basis, for example for payment on delivery, or to top-up a wallet or a recurring subscription charge, pass the enrolMona object as part of your , After a regular payment, the customer will be prompted to enrol for Mona Pay with Bank. If their enrolment is succesful, you will receive a mona.enrolment.success webhook event, containing the customerId we created for this customer in our system. Use the transactionId of the checkout to map it back to the customer profile in your database.