Invoicing (NEW!)

Streamline your invoice creation flow from start to finish with Midtrans Invoicing.


Invoicing is in BETA mode

More features coming up real soon - send us your feedback and request via the product board here.

You can now streamline your account receivable collection process with Midtrans Invoicing - from creating a custom branded invoice, generating a payment link or a Virtual Account number to digitally collect payments, automatically send reminders, and programmatically reconcile payments with invoice.

Invoicing can be accessed from Dashboard > Invoicing menu, Production environment only. No manual activation is needed to use Invoicing.

Set up Invoicing

Before you create a new invoice, set up your invoice settings first. This will not just help reduce the number of fields that you need to fill when creating an invoice, but also is required to ensure that your invoice looks professional, and works properly. You can immediately see how it will look like in your Invoice PDF via the preview pane in the right side of the page.

Do note that if you use Payment Link, some settings e.g. logo, branding and payment method default expiry needs to be configured in Snap Preference settings, so ensure your Snap Preference settings are updated as well.


Setup your invoice before creating your first invoice

While it's possible to create an invoice without setting up anything, we strongly advise to finish configuring your invoice settings first. Otherwise, some aspects might not work properly.

Any changes to Invoice settings will apply to newly created invoices.

To start configuring your settings, click the Start set up button. Otherwise you can also access the setting from the Setting button in the top right side of the page that will appear when at least 1 invoice has been created.

Invoice settings

Invoice settings

Set up invoice's branding

Set up your business branding in your invoice to make it look professional and helpful for your customer to understand and verify your business. Upload your business logo and fill in your business details such as Official Merchant Name in Midtrans's General Settings page - Invoicing will use said information to populate your business information that will be shown in Invoice PDF and email.

Branding settings

Branding settings

Set up payment method default settings (optional)

You can choose from two ways to get paid; by generating a Payment Link, or a Virtual Account number ( that will be attached directly to your Invoice PDF - henceforth will be referred as Direct VA). The former has the benefit where your customers can pay using a wide array of payment methods; while the latter make it easy for your customers whose workflow requires paying via bank account to streamline the payment e.g. saving the VA number to their transfer list, get the VA number without having to open a link everytime, etc.

Payment Link's configuration is optional and can only be done when creating an invoice. For Direct VA, you can configure what would be your default acquiring bank that will issue the VA (e.g. BCA VA, BRI VA, etc). You can also configure the default expiry time - either it will match the invoice due date (rendering invoice unpayable once invoice's due date has passed), or x hours/days after Invoice date.

Payment method default settings

Payment method default settings

Add additional information (optional)

You can add the default value for optional additional information such as T&C, Notes, Signature, and Signatory information in this section. You can still modify Notes directly within the invoice creation form.

Set up reminder schedule


Sending a reminder

Reminders can only be sent to customers via emails at the moment. In order to user the reminder feature, ensure that Client email is filled when creating an invoice. Otherwise, reminder will not be sent.

Reminder that's scheduled to be sent after the Invoice status has changed to Expired will be skipped. This also applies for any invalid reminder schedule.

Set the toggle to On in order to user the reminder feature. Once toggled on, reminders will sent to customers/recipient via email - you must set at least 1 reminder schedule.

You can set up to 3 reminders. Reminder will then be sent to customer x hours/ days after the date invoice is published (posting date).

Reminder settings

Reminder settings

Set up custom text template

In the scenario where you want to share your Invoice PDF or payment method to customers manually, Midtrans will generate a text containing the PDF download link and Payment Link URL / Direct VA number that you can copy and share to your customers via any of your preferred channel. You can modify the header section of the template in this section.

Text template

Text template

Creating an invoice

Create a new invoice


B2B / Open Amount Virtual Account

During this beta phase, Invoicing does not yet support using B2B / Open Amount VA. If you still choose to use it; payment will still be accepted as usual, but invoice will never be marked as Paid. Please pay caution.

When creating an invoice from a new fresh form, some of the information will be auto populated from the Settings. Midtrans will also auto generate some value for you (e.g. Invoice No, Order ID) in fields that are mandatory to be filled in order to publish an invoice - but you are free to change the value as per your needs. You can see an approximate preview of how your invoice would look like from the preview pane on the right; the final preview will be shown when you click Preview and Send.

Below are some explanation of the invoice fields :

  • Customer details (Required) : Your client information that is the subject to receive the information. At least Name needs to be filled. If you plan to use the Reminder feature, then Email must be filled as well.

  • Invoice information (Required) : Invoice properties. At least Invoice date, Invoice due date, Invoice no, and Order ID are mandatory to be filled. By default we will prepopulate these fields for you; the dates using today's date, IDs using random UUID. Several notes :

    • Invoice no : Your invoice number. Number needs to be unique among paid invoices; however you can reuse any invoice number if previous invoice's status is expire.
    • Invoice date : Date of your invoice. Backdate and future date is allowed, up to 2 years prior / after.
    • Invoice due date : The date when your invoice will be marked as Overdue in Midtrans. Overdue invoice can still be paid by customers as long as the payment method hasn't expired yet. Invoice due date must be at least or later than today's date. Invoice due date can be set up to 2 years after today's date.

  • Payment method (Required) : Define how do you want to get paid for that particular invoice. Payment link is selected by default - customer can attempt to pay again until 1 pending/successful payment is generated.
    If you choose Virtual account (Direct VA) instead - Invoice will generate a VA number that will be automatically shown in the Invoice PDF and email. The default bank from Settings will be automatically selected here, however you can change it in this section. Expiry time will be by default configured as Same as due date.

    You can only choose between Payment Link and Direct VA, not both. If you choose Payment Link, you can still accept VA payment, however customer will need to open the Payment Link URL first and choose to pay using Virtual Accounts.

    To accept VA payment in either Payment Link or Direct VA, you need to have at least one VA payment method active in your merchant account.

    • Payment link settings (Optional):
      This is an optional configuration to modify what payment method you want to show, and specific payment settings for VA and Card Payment. Some settings (e.g. payment method expiry time or Payment Link logo/branding) needs to be set in Snap Preference so ensure your Snap Preference is updated as well. You can choose to skip modifying this section if not needed. If you want to set the expiry time to be specific time period after Posting date / at a specific date, choose Expiry Date as custom.
    • Virtual Account settings (Optional) :
      By default, VA bank will be chosen from the default bank set in Invoice settings. You can also optionally define the Custom VA number here (e.g. in case where you want to assign a static VA number to each customer). Please do note all typical custom VA behaviour and limitation applies here; such as if VA number has been used in a Pending transaction within Midtrans's system, Midtrans will automatically generate a random VA number instead during Invoice generation - or that VA number with short number length will automatically be appended with trailing zeros.

  • Product List (Required) : Products being sold and billed using Invoicing. Price, quantity and Descriptions are mandatory to be filled. You can add up to 30 products here.

  • Discount, tax and shipping fee (Optional) : Add discount, tax and shipping amount in this section. This section is optional - if filled, they will be shown before the final Total amount in the Invoice PDF.

Creating and deleting a draft

You can save your progress and save it as draft by clicking the Save draft button in the top right side of the Create Invoice form. You can also delete the draft by going to the Draft details (click the specific Invoice number in the Invoice list page), then click the Delete button in the top right.

Draft information can be filled with incomplete information, but do note that all information needs to be valid and complete once it's ready to be published.

Duplicating an invoice

Duplicate an invoice

Duplicate an invoice

You can duplicate from a published invoice to create a new draft already populated with all of the previous information. Some important things to note :

  • Order ID and Invoice Number will be generated with a new random UUID, as Order ID and Invoice Number cannot be duplicate with any pending transaction or open invoice, respectively.
  • Invoice date will be duplicated as it is. That means, an Invoice date can potentially change into a backdate, if said invoice is duplicated later than today's date.
  • Invoice due date will be adjusted to today's date if the original Invoice due date is earlier than today's date.

Publishing and sharing your invoice

Once ready, publish your invoice by clicking the Preview and send button in the top right side of Create invoice page. If your inputted data is valid, you will see the final preview of the Invoice PDF. Click the X button if you want to go back and edit your invoice, otherwise click Send.

If you input your customer's email when creating the invoice, an email will be sent to your customer notifying of an outstanding invoice, containing the invoice PDF as attachment, and link to pay / direct VA number in the email body.

If you do not input your customer's email when creating the invoice, you will need to download the Invoice PDF and share the PDF to your customers manually, either by sharing the PDF file directly, or sharing the template text generated via the preferred channel of your choice..

To download the PDF, there are two ways to do this :

  • Download from the Invoice List page : go to the rightmost side of the table row, click the ... button in the actions column, then click Download PDF.

    Download PDF from Quick Actions

    Download PDF from Quick Actions

  • Download the Invoice detail page : from Invoice List page, click the Invoice No to be redirected to Invoice Detail page, then click the Download PDF button in the top right side of the page.

    Download PDF from Invoice Detail Page

    Download PDF from Invoice Detail Page

You can also share a template text containing the Invoice PDF download link and Payment Link URL or Direct VA number by copying the text from Invoice Details. Then share said text to your customer via your preferred channel.

After publishing an invoice

It's highly recommended to input your customer's email when creating an invoice in order to fully utilize Invoicing's features designed to streamline your collection process and increase the chance of your invoice to be paid.

In the event when an email address is inputted, Midtrans will send the following emails to your customers :

  1. Notification of an open invoice will be emailed to your customer. Said email will contain invoice information, payment link URL or direct VA number, and an attachment of your Invoice PDF.
  2. Midtrans will programmatically send additional emails to your customers whenever the invoice's status is updated to Paid, Expire, and Overdue. This way, your customer will be updated in regard of the invoice status.
  3. Additionally, your customer will be notified every time the transaction status changes, in the event where customer has started a payment via Payment Link, or is expected to pay via a Direct VA. This is useful to notify customers in case there are problems with their payments (e.g. payments get rejected) or when there are changes to their successful payments (e.g. payment gets refunded or cancelled).
  4. Reminders will also be sent to your customers according to the reminder schedule specified in the Invoice settings.

If needed, you can also retrieve the invoice PDF files and copying the payment link URL/direct VA number via the quick actions in the Invoice List page, or Invoice Details page. Text template can be copied from the Invoice Detail page only.

Getting paid

There are two methods of getting paid via Midtrans's invoicing - one is via a virtual account number generated for the sole purpose of this invoice, and the other is via Payment Link. You can only choose either one of the two method for each invoice created.

Please do note that you need the relevant payment methods to be active in your merchant accounts in order to use it to accept payments for your invoices.

Important note : B2B/Open amount VA type as a payment method is not yet properly supported in this beta phase. Please refrain from using it, otherwise invoices using B2B/Open amount VA will not properly marked as paid.

Direct Virtual Account

Direct VA Number as shown in Invoice PDF

Direct VA Number as shown in Invoice PDF

You can opt to generate a virtual account number and attach it directly to your Invoice PDF - that way your customer can copy and pay the VA number directly without having to navigate through a payment link each time, and potentially even save the VA number in their transfer list if the VA number is customized for each client via the custom VA number feature. This is useful for customers that you know only wants to pay bank transfer.

Some acquiring banks support open loop virtual account such as BRI, Permata, BNI and CIMB - open loop means that said VA number can be paid using any banks in Indonesia. You can choose with acquirer to generate the VA number for you when creating an invoice via the Bank dropdown field; do ensure that you have the corresponding banks active in your Midtrans's merchant account in order to use it. If not, you can apply to activate your desired banks via the Payment Method menu in Midtrans's dashboard.

Do note that once a direct VA number has expired; payment can no longer be done to the associated invoice and invoice subsequently will be marked as Expired. In cases where customer wants to attempt repaying again, we recommend to duplicate and issue a new invoice instead. Otherwise, you can also set the VA expiry time in Invoice settings to be longer (up to 180 days) than the Invoice due date, so that customer can still pay even if the invoice is already Overdue.


Notable Custom VA Number Behaviour

VA number needs to be unique within Midtrans's system; that means there could not be any transactions with Pending status with identical VA number. As such, if you're creating an invoice with a custom VA number per client; ensure the previous open invoice has been paid first before issuing a new invoice with the same custom VA number; otherwise VA number for the newer invoice will be randomly generated due to the conflicts.

If you need to use the custom VA number feature and have multiple open invoices at the same time, we recommend to create multiple custom VA numbers reserved for said clients instead.

If you're creating a VA number with shorter number length than the provided instruction, trailing zeros will automatically be appended to said number.

For merchants using Permata VA pretty VA number feature, as it only supports phone number as a custom VA, reinput your client phone number into the custom VA number; otherwise a random VA number will be generated.

Payment Link

Create a payment link for your customers to pay. With payment links, you can offer and accept a wide array of payment methods (e.g. cards) to your customers. To pay, customer simply need to click on the link provided, choose a payment method, then follow the instruction to pay.

In Invoicing, payment link generated will be a single use payment link, closed amount payment link only. Single use here means that customer can reattempt to pay multiple times using the same link, until 1 transaction in Pending/Capture/Settlement state is generated - in which case payment link can no longer be used to pay. If payment does not succeed, said link can be reused again by customers to pay.

Just like VA, payment link has an expiry time, which can be set even longer than the invoice's due date (up to 2 years). Each payment method expiry time however will follow the expiry settings in Snap Preference settings page. In the scenario where customer has generate a payment (e.g. payment code) but soon after payment link URL expires, invoice status will only be updated to Expired if the generated payment code has expired.

Track and automatically reconcile your invoices with payments

Invoice created via Midtrans Invoicing will have its status be programmatically updated according to the payment status as long as the payment is made via Midtrans (see below for more information on Invoice statuses). You can track the status of an invoice from the Invoice List page. Additionally, you can also download the tables as a CSV report via the Export CSV button in the top right side of the page.

In order to download the report, ensure to Filter the page first to narrow down the date range of at least one of the date filter to be under 31 days.

You can also search for invoice using specific properties of the invoice e.g. customer details, invoice no etc using the Custom Filter. Up to 3 keywords can be searched - Invoicing will then return the list of invoices that matches all 3 keywords.

Understanding Invoice status and dates

Invoice status

Invoices move through different statuses from the time they’re created to when they’re paid. Below is the explanation of each statuses :

  • Draft : Invoice form is already filled and saved as draft, but hasn't been published yet. At this state, invoice can still be edited.
  • Pending : invoice has been published and currently awaiting payment. Pending invoice cannot be edited anymore.
  • Paid : a payment has been successfully received for the associated invoice. You can still refund/cancel the payment via Transaction page, however Invoice status will stay as Paid.
  • Expired : all means of payment has expired, hence Invoice is no longer possible to be paid. This status can be triggered if either a) Direct VA has expired, or b) Payment Link URL has expired and there's no pending payments generated by Payment Link. In the event where Payment Link URL has expired but there's a pending payment (e.g. pending QRIS payment generated from Payment Link), Invoice will only change status to Expire once said payment has expired.
  • Overdue : invoice will change status to Overdue if invoice has passed the invoice's due date. Invoice can still be paid however - there are no notable effect of an invoice being marked as Overdue other than for merchant's tracking purposes. Automated reminder will still be sent as per the schedule.

Important dates in Invoice

There are several dates shown in Invoices that mark the different stages of an invoice's lifecycle. Below is the explanation of each dates :

  1. Invoice date : the date of the invoice; can be used to represent the date on which the goods have been billed and the transaction officially recorded. This date is fillable by merchant; accepts both backdate and future date (up to 2 years of forward/backward looking).
  2. Due date : date where the invoice is expected to be paid by customer at the latest. This date is fillable by merchant and accepts any date later than today's date up to 2 years. If due date is passed, invoice will be marked as Overdue.
  3. Creation date : non modifiable, system generated date that represents the invoice creation date (either as a draft or a published invoice). Creation date is used to sort the invoices from newest to oldest in the Invoice List page.
  4. Posting date : non modifiable, system generated date that represents the date when invoice is published, and subsequently marked as Pending.

Adding e-Meterai to Invoice


This feature is currently still in limited gradual release.

Now you can add e-Meterai to your invoice that will enhance legal validation to your invoice, ensure compliance with tax regulations, and prevents fraud.

To use, tick the e-Meterai box to use e-Meterai. Fee (Rp13.000) will be reserved from your pending payable amount (can be viewed via Balance page) the moment your invoice is posted and deducted from your pending payable amount by the end of the day. Your reserved amount might not be reflected in your remaining pending payable amount before the end of the day, so make sure to also take into account your e-Meterai purchases on that day to calculate your available pending payable amount to purchase e-Meterai, otherwise your purchase might fail.

Pending payable amount is calculated from your successful transactions that haven't been settled to your Withdrawable Balance yet. If for some reasons you don't have enough balance, you can increase your balance by having new successful transactions with amount > Rp13.000. The simplest way to do this is by creating and completing a transactions via Payment Link - to do so, follow below steps :

  1. Create a Payment Link and input enough amount to purchase e-Meterai (Rp 13.000/e-Meterai + your Midtrans fee).
  2. Open the created link and complete the payment.
  3. Return to the invoice page and click refresh balance if the balance is not updated.

Afterwards, you'll be able to see a preview of the e-Meterai in your invoice preview. You will then be charged once the Invoice has been successfully published.

Invoice Financing (BETA)

You can get your funds faster from any invoice created with Midtrans through Invoice Financing facilities, provided in collaboration with PT Multifinance Anak Bangsa ( - part of GoTo Financial). You can receive your funds from outstanding invoices as early as D+1 (the next day) from the application date. This feature is currently only available for merchants with legal entities.

See this FAQ for more details.