Nuvei’s rebilling service allows you to create and manage recurring charges for products and services that you offer to your customers. You can set payment plans or subscriptions and still have the flexibility to modify, extend, or cancel them.
The service also takes advantage of the card schemes’ “card updaters” (for supported cards) to ensure frictionless charging of a running subscription in the event of card details being changed by the card issuer on the customer’s side.
The service is available through our API, Cashier, and Control Panel platforms via API methods.
To familiarize yourself with this workflow, you can also study the Recurring – with 3D-Secure scenario in the Nuvei postman collection. Import the JSON file in the link into Postman and follow additional instructions in Testing APIs with Postman.
The rebilling service consists of three key components:
- Plan – The recurring-payment conditioning offered by a merchant for a single or a set of products it sells.
- Subscription – The actual recurring payment contract that was set up for a specific customer.
- Customer – The end-user registered to one or more subscriptions under one or more payment plans.
Creating a subscription requires a merchant to provide an active payment option to be used in the subscription’s lifecycle. The user payment option (UPO) can be created by using a unique method on our end, which requires the card’s full payment details including CVV2. When implementing Rebilling with Cashier, the Cashier can create the UPO as part of creating the subscription.
Once the initial payment’s date has arrived, an initial payment is sent for processing on the gateway using this payment method indicator.
Any recurring payment according to the subscription’s conditions is processed with the card’s token/UPOID flagged to the acquirers as a rebilling payment and with no CVV2.
The Rebilling plans, which act as the base template for every subscription, can be created, edited, or deleted from our CPanel or via REST API methods.
The individual subscriptions can be created by either redirecting the customer to the Nuvei Checkout Page where the customer is presented with the details of the subscription plan and can enter their card details or choose a previously saved card or via the REST API method, which creates the subscription using previously stored card details. Any or all parameters of the Rebilling plan, which is used as template for the subscription, can be changed dynamically during its creation.
The resulting subscriptions can be modified or cancelled via our CPanel or via REST API methods.
To ensure a smooth subscription experience to both its merchants and their customers, Nuvei has implemented a retry engine into its rebilling service. If a recurring payment is declined, the merchant is notified with a Direct Merchant Notification (DMN) callback and our retry mechanism is initiated:
- The first retry is executed 72 hours after the initial decline. If this attempt fails, the merchant is once again notified about a declined payment.
- A second retry is executed 72 hours after the second decline. If the retry also fails, the merchant is notified with a notification about a declined payment.
- The third and final is executed 72 hours after the payment has failed again (72×3=216 hours after the initial decline). If the third retry fails, the subscription is cancelled and the merchant is notified accordingly with a notification indicating a subscription cancellation. Nuvei notifies the merchant by sending a subscription DMN type with the subscription status changed to “Inactive”. On each re-try transaction, Nuvei notifies the merchant by sending a subscriptionPayment DMN type with transaction status = Declined.
In addition to the rebilling service described above, where the Nuvei system is responsible for storing and managing the membership details and scheduling the recurring charges, merchants may opt to use our REST API – more specifically the /payment method – to maintain the rebilling memberships on their end, and initiate the recurring charges instead of relying on our system to do it.
When sending a recurring /payment request, include the
"isRebilling":"0"– to indicate that this is the initial transaction.
"isRebilling":"1"– to indicate that this is a subsequent transaction.
The transactions can be performed using
cardData. If it is done using
cardData, then it is highly recommended to send its
relatedTransactionId as well.