Recurring payments API
Introduction
Recurring payments (sometimes called “standing orders”) are ideal to pay for subscriptions. With our solution, any merchant or product owner planning to offer paid subscriptions within their platforms can easily do so now, leaving all the low-level payments handling routine to Fena.
Currently almost all banks in the UK support weekly, monthly, quarterly and yearly frequencies for payments. Meaning merchants are free to set up standing orders to receive payments from their customers in any of these time intervals.
There are some specifics to consider when planning to integrate recurring payments from Fena into your platform:
- Standing orders are set up/initiated once by the end-user/bank account holder. After initiation all subsequent payments associated with that standing order are handled by the bank without intervention from Fena or account holder.
- Once an order is initiated with the bank Fena doesn’t have control over it. Meaning, our customers/merchants can’t change that order’s parameters, cancel it etc.
- On the other hand, end-users have full control over initiated standing orders. Meaning, they can change any parameter of their order (except for reference field) or cancel it. Currently, banks don’t notify third-party providers like us about these changes. So we developed our own mechanisms for tracking edge-cases. Details below.
- Most of the banks don’t make payments on weekends or bank holidays. So if your next payment is on the weekend, most probably you will get it on the nearest working day after that weekend. Also first payment date must be 3 working days in the future
List of statuses that a recurring payment can have. Fena notifies the user of the API key about each change in the status (except of draft) of the payment via webhook.
Status | Description |
---|---|
Draft | Draft payment which can be processed later via api call |
Sent | The payment has been sent to the end user and can be paid, |
Overdue | The payment is marked as overdue. User need to update first payment date so it is , otherwise link won't work |
Rejected | The payment has been rejected (nothing can be changed) but the end user can retry to initiate it |
Pending | The payment has been made by the end user and await a status update from the payment provider.In this status it cannot be modified |
Active | The payment initiation has been completed successfully and it waiting for updates from the banks |
Paid | The payment has been paid fully (nothing can be changed in this payment) |
Cancelled | The payment has been cancelled and cannot be iniated anymore |
Warning | One of the payment is either missed, either patially paid or Fena is unable to check it |
Sandbox
If you want to see for yourself how our payment flow works you can create a sandbox payment with the sandbox bank account which we've created for you automatically during sign up. You don't have to pass ID verification checks or verify your data, and you can start integrating right away. Notes:
- Sandbox payments don't initiate any real bank transfers so you shouldn't expect any money to actually arrive. In order to test the flow with real funds you have to pass the ID and bank verification first.
- Sandbox flow is only suitable for initiating of recurring payments. In the sandbox environment, banks do not support sending regular payments
Example of usage
The inition flow is pretty much the same as for single payments:
To interact with the API, we will need the ID terminal and the secret terminal that were created when reading this guide. These 2 parameters will be present in the header of almost every request.We will also need to fill in the minimum required data to create a payment.