---
title: "Create Invoice"
method: POST
path: "/pgsi/ve1_2/invoice/create"
tags: ["Invoice"]
---

# Create Invoice

`POST /pgsi/ve1_2/invoice/create`

An invoice represents the billed amount that needs to be collected from the customer for a subscription. This API can be used to create an invoice with the specific reference of the underlying mandateid.

The invoice details are sent to the customer as a pre-debit notification for the card and upi payment methods, as required by regulatory guidelines. For UPI, pre-debit-notifications are sent by bank via (sms, email) 

To ensure that the pre-debit notification is received by the customer atleast 24 hours prior to the recurring charge (regulatory requirement), it is recommended that the invoice request is initiated 36 hrs prior to the recurring charge request.

If the recurring charge debit amount is higher than the permissible limit (as per regulations), the customer requires to provide an additional AFA for processing the recurring charge. This is not applicable for upi mandates

## Headers

- `BD-Traceid` string, required
- `BD-Timestamp` string, required
- `Content-Type` string, required
- `Accept` string, required

## Request body

- object
  - `invoice_number` string, required — Unique number assigned by merchant for the invoice
  - `invoice_display_number` string, required — Invoice number to be displayed to the customer
  - `mercid` string, required — Unique identifier as defined by BillDesk for each merchant
  - `mandateid` string, required — Unique mandateid created by BillDesk
  - `currency` string, required — ISO currency of the transaction amount, for INR this value will be 356
  - `amount` string, required — Invoice amount in two decimals, eg. 2400.00
  - `subscription_refid` string, required — Unique reference assigned by merchant for a subscription
  - `customer_refid` string, required — Unique reference of the customer in the merchant system, and can be linked to different subscriptions of the same customer Required for mandate and tokenization
  - `debit_date` string, date, required — Date on which the SI debit needs to be executed to the payment method
  - `invoice_date` string, date, required — Invoice generation date in the YYYYMMDD format
  - `description` string, required — Brief description for the invoice
  - `duedate` string, date, required — Invoice due date in the YYYYMMDD format
  - `net_amount` string, required — Current payable amount, adjusted for discount or late payment charges as applicable
  - `early_payment_amount` string — Amount after adjusting any discount applicable.
  - `early_payment_discount` string — Discount amount for early payment of invoice
  - `early_payment_duedate` string, date — Early payment date for invoice
  - `late_payment_amount` string — Payment amount after due date
  - `late_payment_charges` string — Late payment charges if any
  - `additional_info` AdditionalInfo — Array of 7 additional_info values that can be attached to the transaction. Note: Merchant is advised to not pass customer PII information in additional info fields.
    - `additional_info1` string
    - `additional_info2` string
    - `additional_info3` string
    - `additional_info4` string
    - `additional_info5` string
    - `additional_info6` string
    - `additional_info7` string

## Response `200`

OK

- object
  - `objectid` 'transaction' | 'authentication' | 'mandate' | 'invoice' | 'cardaccount' | 'validatevpa' | 'dispute' | 'settlement' | 'altid' | 'mandate_token' | 'accountvalidation' — String representing the object's type. Objects of the same type share the same value.
  - `invoice_number` string — Unique number assigned by merchant for the invoice
  - `invoice_display_number` string — Invoice number to be displayed to the customer
  - `mercid` string — Unique identifier as defined by BillDesk for each merchant
  - `subscription_refid` string — Unique reference assigned by merchant for a subscription
  - `customer_refid` string — Unique reference of the customer in the merchant system, and can be linked to different subscriptions of the same customer Required for mandate and tokenization
  - `invoice_date` string, date — Invoice generation date in the YYYYMMDD format
  - `duedate` string, date — Invoice due date in the YYYYMMDD format
  - `debit_date` string, date — Date on which the SI debit needs to be executed to the payment method
  - `amount` string — Invoice amount in two decimals, eg. 2400.00
  - `net_amount` string — Current payable amount, adjusted for discount or late payment charges as applicable
  - `early_payment_due_date` string, date — Early payment date for invoice
  - `early_payment_discount` string — Discount amount for early payment of invoice
  - `early_payment_amount` string — Amount after adjusting any discount applicable.
  - `late_payment_charges` string — Late payment charges if any
  - `late_payment_amount` string — Payment amount after due date
  - `currency` string — ISO currency of the transaction amount, for INR this value will be 356
  - `mandateid` string — Unique mandateid created by BillDesk
  - `description` string — Brief description for the invoice
  - `status` 'unpaid' | 'rejected' | 'stopped' — Status of the invoice. Possible values are: • unpaid – invoice has been received successfully, and charge can be processed • rejected – invoice has been rejected by the system • stopped – invoice has been stopped by the customer
  - `invoice_id` string — Unique id created by BillDesk for each invoice
  - `verification_error_code` string — Represents the error code for the response
  - `verification_error_type` string — Represents the error type for the response
  - `verification_error_desc` string — Represents the error description for the response
  - `createdon` string, date-time — object creation timestamp
  - `additional_info` AdditionalInfo — Array of 7 additional_info values that can be attached to the transaction. Note: Merchant is advised to not pass customer PII information in additional info fields.
    - `additional_info1` string
    - `additional_info2` string
    - `additional_info3` string
    - `additional_info4` string
    - `additional_info5` string
    - `additional_info6` string
    - `additional_info7` string

## Other responses

- `403` — Forbidden
- `500` — Internal Server Error
- `default` — Any bad or invalid request will lead to following error object

---

[API](https://skmtc.net/billdesk/apis/payments.md) · [All operations](https://skmtc.net/billdesk/apis/payments/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/billdesk/payments/revisions/43f021fc467f/schema)
