Create, update, delete, cancel, fetch and send Invoices using Razorpay APIs.
You can use Razorpay Invoices to send invoices to your customers and accept payments instantly.
The invoice contains information regarding the sale such as the name of the ordered products or services, quantity, billing cycle, price breakup, receipt number and customer information.
You can create, update, cancel and delete invoices using our APIs.
GST and Non-GST Invoices
Currently, you can only create non-GST Invoices via APIs.
International Currency Support
You can create non-GST invoices in any of the supported international currencies using our APIs. You cannot add tax rates for invoices created using international currencies.
You can try out our APIs on the Razorpay Postman Public Workspace.
string Indicates the type of entity. Here, it is invoice.
type
string Here, it should be invoice.
invoice_number
string Unique number you added for internal reference. The minimum character length is 1 and maximum is 40.
customer_id
string The unique identifier of the customer. You can create customer_id using the Customers API. Alternatively, you can pass the customer object described in the below fields.
customer_details
Details of the customer.
id
string Unique identifier of the customer. For example, cust_1Aa00000000004.
name
string Customer's name. Alphanumeric, with period (.), apostrophe (') and parentheses allowed. The name must be between 3-50 characters in length. For example, Gaurav Kumar.
email
string The customer's email address. A maximum length of 64 characters. For example, gaurav.kumar@example.com.
contact
string The customer's phone number. A maximum length of 15 characters including country code. For example, +919876543210.
billing_address
Details of the customer's billing address.
id
string The unique identifier generated for the customer's billing address.
type
string The customer address type. Here it is billing_address.
primary
boolean Defines if this is the primary address.
line1
string The first line of the customer's address.
line2
string The second line of the customer's address.
city
string The city.
zipcode
string The zipcode.
state
string The state.
country
string The country.
shipping_address
Details of the customer's shipping address.
id
string The unique identifier generated for the customer's shipping address.
type
string The customer address type. Here it is shipping_address.
primary
boolean Defines if this is the primary address.
line1
string The first line of the customer's address.
line2
string The second line of the customer's address.
city
string The city.
zipcode
string The zipcode.
state
string The state.
country
string The country.
order_id
string The unique identifier of the order associated with the invoice.
line_items
Details of the line item that is billed in the invoice. Maximum of 50 line items.
id
string Unique identifier that is generated if a new item has been created while creating the invoice.
item_id
string Unique identifier of the item generated using Items API that has been billed in the invoice.
integer The quantity of the item billed in the invoice. Defaults to 1.
payment_id
string Unique identifier of a payment made against this invoice.
status
string The status of the invoice. Know more about Invoice States. Possible values:
draft
issued
partially_paid
paid
cancelled
expired
deleted
expire_by
integer Timestamp, in Unix format, at which the invoice will expire.
issued_at
integer Timestamp, in Unix format, at which the invoice was issued to the customer.
paid_at
integer Timestamp, in Unix format, at which the payment was made.
cancelled_at
integer Timestamp, in Unix format, at which the invoice was cancelled.
expired_at
integer Timestamp, in Unix format, at which the invoice expired.
sms_status
string The delivery status of the SMS notification for the invoice sent to the customer. Possible values:
pending
sent
email_status
string The delivery status of the email notification for the invoice sent to the customer. Possible values:
pending
sent
partial_payment
boolean Indicates whether the customer can make a partial payment on the invoice. Possible values:
true: The customer can make partial payments.
false (default): The customer cannot make partial payments.
amount
integer Amount to be paid using the invoice. Must be in the smallest unit of the currency. For example, if the amount to be received from the customer is ₹299.95, pass the value as 29995.
amount_paid
integer Amount paid by the customer against the invoice.
amount_due
integer The remaining amount to be paid by the customer for the issued invoice.
currency
string The currency associated with the invoice. You must mandatorily pass this parameter if accepting international payments. If you have passed currency as a sub-parameter in the line_item object, you must ensure that the same currency is passed in both places. Know about the list of supported international currencies.
description
string A brief description of the invoice. The maximum character length is 2048.
notes
object Any custom notes added to the invoice. Maximum of 2048 characters.
short_url
string The short URL that is generated. Share this link with customers to accept payments.
date
integer Timestamp, in Unix format, that indicates the issue date of the invoice.
terms
string Any terms to be included in the invoice. Maximum of 2048 characters.
comment
string Any comments to be added in the invoice. Maximum of 2048 characters.
You can create and manage Invoices using APIs or from the Razorpay Dashboard.
You will get a short URL in the response after you issue the invoice to the customer.
Send this URL to the customer to accept payments.
Handy Tips
You cannot create GST compliant invoices using APIs. This means you cannot add the following to the invoice when creating an invoice via APIs:
tax rate
cess
HSN code
SAC code
The following endpoint creates an invoice using details such as name, billing_address and shipping_address. If you are using the Customers API, you only need to pass the customer_id.
string Indicates the type of entity. Here, it is invoice.
descriptionoptional
string A brief description of the invoice.
draftoptional
string Invoice is created in draft state when value is set to 1.
customer_idoptional
string You can pass the customer_id in this field, if you are using the Customers API. If not, you can pass the customer object described in the below fields.
customer
Customer details.
namemandatory
string Customer's name. Alphanumeric, with period (.), apostrophe (') and parentheses allowed. The name must be between 3-50 characters in length. For example, Gaurav Kumar.
emailoptional
string The customer's email address. A maximum length of 64 characters. For example, gaurav.kumar@example.com.
contactoptional
string The customer's phone number. A maximum length of 15 characters including country code. For example, +919876543210.
billing_address
The customer's billing address.
line1mandatory
string The first line of the customer's address.
line2optional
string The second line of the customer's address.
citymandatory
string The city
zipcodemandatory
string The zipcode
statemandatory
string The state
countrymandatory
string The country
shipping_address
The customer's shipping address.
line1mandatory
string The first line of the customer's address.
line2optional
string The second line of the customer's address.
citymandatory
string The city
zipcodemandatory
string The zipcode
statemandatory
string The state
countrymandatory
string The country
line_items
Details of the line item that is billed in the invoice. Maximum of 50 line items.
item_idconditionally mandatory
string If you are using the Items API, you may use an existing item. You can choose to override details such as name, description by passing these along with item_id. While the invoice will show the updated details, the existing item will not be updated. This parameter is mandatory if you are not going to use any other parameter in the array.
nameconditionally mandatory
string The item name. Mandatory if item_id is not provided.
descriptionoptional
string A brief description of the item.
amountconditionally mandatory
integer Amount to be paid using the invoice. Must be in the smallest unit of the currency. For example, if the amount to be received from the customer is ₹299.95, pass the value as 29995. Mandatory if item_id is not provided.
integer The number of units of the item billed in the invoice. Defaults to 1.
expire_byoptional
integer Timestamp, in Unix format, at which the invoice will expire.
sms_notifyoptional
boolean Defines who handles the SMS notification. Possible values:
0: You send the notification to the customer.
1 (default): Razorpay sends the notification to the customer.
email_notifyoptional
boolean Defines who handles the email notification. Possible values:
0: You send the notification to the customer.
1 (default): Razorpay sends the notification to the customer.
partial_payment
boolean Indicates whether the customer can make a partial payment on the invoice. Possible values:
true: The customer can make partial payments.
false (default): The customer cannot make partial payments.
currencyconditionally mandatory
string The currency associated with the invoice. You must mandatorily pass this parameter if accepting international payments. If you have passed currency as a sub-parameter in the line_item object, you must ensure that the same currency is passed in both places. Know about the list of supported international currencies.
Descriptions for the response parameters are present in the Invoices Entity parameters table. The status of the invoice will now be issued and it will have a short_url generated.