Skip to content

Xendit Invoices


Xendit Invoices are one of our core products that is used to bill end customers. Xendit Invoices automatically detect payments instantly and can be paid from any banks globally. Xendit Invoices can have multiple payment channels to allow end customers choose different payment methods, and it’s customizable.

We provide Xendit Invoices for free, Xendit Invoices UI can be directly used optionally, and can be integrated with merchant’s Invoice UI. Xendit invoices can be created with API integration or created directly from the Xendit Dashboard without API integration.

This is how an invoice will look like from the end customer’s point of view:

alt text

The invoices can be opened from web and mobile. It has a language toggle and it will show all available payment methods and instructions for the end customers, giving them convenient flexibility.

Xendit Invoices Features

Features Description
Multiple payment channels Customisable channels
Automatic Notification (callback & e-mail) Callback URL, email to end customers
Customisable Business logo, business name, description, expire date, language, payment channels
Live Report in Xendit dashboard List and statuses. Available for download
Free Invoice UI No building, we create it for you, for free
With or without API integration Invoice creation via dashboard or automated creation via API

Xendit invoices can have multiple payment channels that can be configured. We send automatic callback upon successful payments to Xendit Invoices, please set the callback URLs to receive it. Automatic email notification is also provided to the end customer. Merchants can customize business logo, business name, description, expire date, language, payment channels in Xendit Invoices.

Every Xendit Invoices created will be on the Xendit Dashboard with its status and details. Xendit Invoices have two languages, Bahasa Indonesia and English, there is a language toggle to change in the invoices. You can optionally custom Invoice expire date every time you create an invoice via API or via dashboard. By default, your business setting for expiration of invoices is 24 hours. Please inform Xendit Support or the dedicated Xendit Account Manager if you want to change the default expiration time for your business.

Setting Up Xendit Invoices

By default, available payment channels will directly be available in every invoice created. Before using Xendit Invoices, please make sure that the Invoice settings in Configuration page is ready.

Below are the steps before using Xendit Invoices:

alt text

Set Up Payment Channels and Expiration Time for Xendit Invoices

There are 2 considerations before using Xendit Invoices:

Payment Channels Decide how to accept payments from the end customers
Expiration Time By default, Xendit Invoices have expiration time of 24 hours, do contact us to change the default expiration time

Xendit Invoices can have multiple payment channels. However, please note that the settings are applied to all invoices a merchant creates.

Set Up Non Fixed Virtual Accounts for Xendit Invoices

Non Fixed Virtual Accounts will always be linked to an invoice. When an invoice is created, Non Fixed Virtual Accounts will automatically be created. Xendit directly provides Non Fixed Virtual Accounts from Mandiri and BRI. We can also help the integration of Non Fixed Virtual Accounts from BCA and BRI. However, this requires an additional forms to be filled as we have to register our customers as merchants to the bank.

Set Up Non Fixed Virtual Accounts Range for Invoices

Setting up Non Fixed Virtual Accounts ranges needs to be done before creating the invoices. This can be done directly in the Xendit Dashboard. Once the ranges are activated, the available banks will directly appear in the invoices created.

alt text

Set Up Callback URLs for Invoices

Xendit sends automatic callbacks upon successful payments. In order to receive the callbacks from us, Callback URLs need to be set from the Xendit Dashboard. Find out how to set up here.

alt text

Once the Callback URLs have been configured, callbacks can directly be tested if your server can receive our callbacks. Payment simulation of a paid invoice can also be done to really receive our callbacks by creating an invoice with a magic amount of IDR 3,000,000.

How Invoices Work

After the invoices has been configured and integrated, it can be created or will be automatically generated once the end customers reach the checkout page. The end customer can pay the invoice by choosing the payment options and following the given payment instructions.

Invoice Process with Xendit

Once the payment has been successfully completed, Xendit detects the incoming payment and sends the callback. The incoming funds will show up in the Xendit Dashboard as a balance in the Cash Account, and the invoice status in the Invoice Tab will also be completed.

alt text

Flow of Funds Received

One invoice can have multiple payment channels, yet the the funds received from all payment channels will be in the balance in Cash.

alt text

Once the funds are in the Cash Account, it can directly be withdrawn to any bank accounts in Indonesia at any time without fees and limitations.

Invoice Callback and Email Notifications

To receive our callbacks, please ensure that the Callback URLs for Invoices has been set. If merchants choose to send the customer an email during the invoice creation, the customer will receive an email when:

  • Customer received the invoice
  • The payment has been successful
  • The invoice is expired

When to Use Invoices

Invoices are useful to bill your customers for one time payments, subscriptions, or something in between. Xendit invoices can be used as traditional invoices or as a checkout page for eCommerce businesses.

Creating an invoice automatically creates a Non-Fixed Virtual Account and ties it to that invoice. Fixed Virtual Accounts can be used without an invoice (learn more about Virtual Accounts here). Xendit allows customers to utilize Xendit Invoices as required by their business purposes.

Make an invoice when:

alt text

Invoice Amount Limit

Before you create an invoice, please make sure you dont exceed the restricted amount for your invoice.

Particulars Amount
Maximum amount per invoice IDR
Maximum amount per invoice if retail payment channel is enabled IDR 5.000.000
Minimum amount per invoice IDR 10.000

If you need to create an Invoice that exceeds the maximum amount limit, we instead suggest you to generate multiple invoices with split amounts.

Creating Invoice

You have two choices on how to create invoice: from your Dashboard and/or using API. Please use the Dashboard guide if you are not familiar with API integrations.

Simulate a Paid Invoice Payment

Test Xendit integration thoroughly by simulating payment to your invoice!

This simulation will result in your invoice status showing up as PAID in your Dashboard. We also initiate a callback to your Callback URL.

To simulate invoice payment via API integration:

  1. Follow the same steps as creating invoice with our API.
  2. Change the amount inside the script to be IDR 3,000,000
  3. Go to your dashboard for the transaction details
  4. Invoice details will show up as PAID

Frequently Asked Questions

  1. How do I know if my invoice is paid?

    • The status of the invoice shows up as PAID on your dashboard
    • We send a callback to you for the payment
  2. How do I know when an invoice expires?

    • When an invoice expires, you are able to see the status on your dashboard on the Invoices menu
    • If you tick the flag to send the invoice to your customer, email notification will be sent to your customer when the invoice expires, and they will be informed not to make payment
    • Send us a GET Invoice Request with API to see your invoice status
  3. What to do with an expired invoice? How do I know if someone paid to it?

    When an invoice expires, you can disregard it and make a new one. Expired invoices cannot be paid.

  4. What to do when my customer paid a wrong amount to the invoice?

    Virtual Accounts in invoice will always be closed amount, hence your customer will not be able to pay a wrong amount to the invoice

  5. Can I set customized expiration time of my invoice?

    Yes, with a maximum 1 (one) year expiry date that you could customize upon invoice creation, from Xendit dashboard or from an API. This is an optional setting, that you can leave it blank for your default business setting (24 hours invoice expiry) to be applied. However, please note that the invoices that have been generated cannot be altered or canceled, although we can assist to expire the invoice to make it redundant (so that your customer cannot settle).

  6. Which user can create invoices on dashboard?

    Users who can create invoice are those with the permission to edit.

  7. How to set Banks and payment methods on my invoices?

    This can be set in advance by informing us.

  8. How do I set types of Virtual Account on my Invoices?

    Currently you may only set this via API. You can also inform us in advance to set it for you.

  9. How do I put my company name and picture on my invoices?

    If you are using Xendit Invoices UI, you can put your company name and picture on your dashboard, go to Settings, upload your Business Logo and set Business Information. Your Invoice details will be in accordance to your configurations.

  10. Can I use my own UI for Xendit Invoices?

    Yes, you can use your own UI by integrating with our API.

  11. Is credit card payment a default payment method or should we configure it first?

    It is default and automatically appears on the invoice as one of payment methods option for customer.