Skip to content

Xendit Recurring Payment

Recurring Payment Introduction

Xendit Recurring Payment is a product that can be used to receive a payment multiple times on a recurring basis. It will automatically create invoices based on the period that has been defined by the recurring payment system. Each period can be paid by any payment channel available on the invoice. It can be used with our Invoice UI or integrated with your UI. Recurring payment can be used to do a lot of things such as creating a subscription model, creating installment system, or receiving recurring donations, etc.

Xendit Recurring Payment is free, and you can integrate with our API directly. After creation, It will have a buffer of approximately 10 minutes before the first invoice is created.

Each invoice created at every interval will have a default invoice expiry duration. You can optionally set the payment expiry duration per recurring. If you didn't set the duration, it will follow the duration on your invoice customization Dashboard > Invoice > Custom Invoice.

Create, Edit, Stop, Pause and Resume

It's very simple to create, edit, pause, resume and even stop a recurring payment. You can learn more and implement our API

Autocharge system

Autocharge is provided for customers using cards. If a credit/debit card token is tied to a certain recurring payment plan, then every future payment for that particular recurring payment will automatically be charged right after the invoice is created. Token can be created on Create token API and will be stored on credit_card_token.


To give you more insight to how the recurring mechanism works, here is an example:

  1. First you create a recurring payment on 1st January - with 1 month interval - 200.000 IDR amount - you set the should_send_email to be enabled - with 1 day invoice duration - Ignore if payment is late/expired - and you decided to use our invoice UI.
  2. One 200.000 IDR invoice will be created within a minute and Xendit will send an email to your customer. Within 10 minutes upon receiving the email, your customer pays via VA bank, let's say via BNI. Payment will be completed, shown in your reporting, also an invoice callback will be sent to you. -- You learned that you can use invoice UI for the recurring payment. You also learned that we will send an invoice callback to you upon completed payment
  3. Next month, on 1st February, another 200.000 IDR invoice will be created and sent to your customer email. Your customer then pays via retail outlet. It will be marked as paid and same thing as #2 will happen. -- You learned that every interval, customer can change payment method
  4. On 1st March, Your customer decided to use autocharge. They input their credit/debit card credential and checkmark the "autocharge" tickbox. Upon completed payment, Xendit will store the card token in the system.
  5. On 1st April, Another 200.000 IDR invoice is created, we will send an email to the customer, but the invoice will be automatically charged, which means it will be paid using the card that was used in #4 without any effort from you or your customer. You learned about autocharge and the mechanics of autocharge
  6. On 1st May, when trying to do an autocharge, it failed and customer decided to pay via OVO. On 2nd May, the customer contacted you and asked you to remove the autocharge for their card. You can remove autocharge by editing a recurring payment. You use our edit recurring API to remove the credit_card_token -- You learned that you can add and remove autocharge
  7. On 1st June, another invoice is created and then paid. On 4th June, you and your customer agreed to do payment every 2 months with 450.000 IDR. You then use edit API to change the interval to 2 months and amount to 450.000 IDR. Edit request is completed. On 1st July, another invoice is created (Instead of 1st August or 4 August) with new 450.000 IDR applied. If it is paid, the next invoice will be 1st September (1st July + 2 months). -- You learned the mechanics of editing a recurring payment
  8. After 1st September invoice is paid, the next invoice will be 1st November. On 4th September, you want to pause the recurring. If you resume before 1st November, the invoice will be created as usual on 1st November. However, if you resume on 2nd November, the next recurring will be on 1st January next year. -- You learned the mechanics of pausing and resuming a recurring payment
  9. 1st January again, customer failed to paid on time (1 day duration time to pay based on #1). Then it depends on what you define, if you choose ignore then next invoice will be created again at 1 March. If you choose stop, then the invoice will be stopped permanently. -- You learned the actions you can define after an invoice expires

Reporting and Callback

Recurring payment will have reporting as per Xendit Invoice on dashboard. You can also get the list of invoices of certain recurring by using List all invoice API reference with recurring_payment_id. Callback will also be sent by using the invoice callback system. There will be additional parameter, recurring_payment_id, in the callback if it is created from recurring.

Additional Things To Know

  1. What's behind a Recurring Payment System?

    There is invoice system behind every Recurring Payment System. It means that recurring system will create invoices.

  2. What can be setup upon creating recurring payment?

    Customer's information(email), interval (e.g. per 3 days / per 2 months), amount, description

  3. Is there any optional things that you can setup when creating recurring payment?

    You can set whether Xendit sends an email to the customer; you can set what happens when customer misses the payment; you can set the invoice duration

  4. There's something more that I needed from recurring payments API

    Please contact us directly!