Invoice Operations

Razorpay Dashboard lets you create and issue invoices to your customers quickly and easily. You can also take other actions on an invoice such as search, update, cancel, and delete.

GST-supported Invoices
Currently, we support creation of GST-complaint Invoices only via Dashboard. However, regular invoices (without GST options) can still be created via APIs.

Tip: If GSTIN is not provided prior to Invoice creation, the option to display Tax Rate on the invoice as per the HSN/SAC code of each item would not unavailable. You can however swtich to GST-Invoices anytime by clicking +Add GST details button on the main menu.

Creating an Invoice#

Invoice creation from the Razorpay Dashboard can be broken down into the following steps:

  1. Creating a customer
  2. Adding an item

Note: Refer our glossary section to learn about the terminology used.

Creating a Customer#

  1. Log in to your Razorpay Dashboard.
  2. Click Invoices tool.
  3. Click +Create Invoice.
  4. Select the Invoice label from the Registered Name or Billing Name.
  5. Click Start Creating Invoices. A new Invoice draft will be displayed with your Company Name and Logo, GSTIN, and CIN.
  6. On the New Invoice Draft, enter the Invoice number.
  7. Enter a brief description or Summary of the purchase.
  8. Under the BILLING TO field, select a customer by searching from the list of existing customers. Note: Razorpay gives you the flexibility to create Customers on-the-fly so that your billing is not interrupted while creating an invoice. New customers can be added by clicking +Add a new Customer on the draft invoice which opens a pop-up modal, where you can enter basic details of the customer such as, Company/Individual Name, Email, Contact No., GSTIN and Billing Address. The newly added customers will appear in the Customers tool and can be reused in future invoices as well. To know more on how to create Customers, refer the detailed Customer documentation.
  9. Enter the ISSUE DATE of the Invoice. By default, it takes the present date.
  10. Under EXPIRY DATE, Choose from Calendar the date of expiry of the invoice.
  11. Under BILLING ADDRESS option, do the following:
    1. Add the Billing Address.
    2. Select the checkbox if Shipping Address is same as Billing Address, else enter the SHIPPING ADDRESS of the customer. Note: Once an address (billing or shipping) is added, it can be used later as either of the options.
  12. If the SHIPPING ADDRESS is same as the BILLING ADDRESS the same will be pre-filled. If the SHIPPING ADDRESS and BILLING ADDRESS are not same:
    1. Click Add Shipping Address.
    2. Click +Add new Address to enter the new address. The same will added to the list of saved addresses.
  13. Enter the PLACE OF SUPPLY by searching the State name from the dropdown. This is a mandatory field as this will help determine the GST of the items. Note: The PLACE OF SUPPLY field is auto-filled using the SHIPPING ADDRESS.

Adding an Item#

  1. On the Add Item text field, +Add a new Item.
  2. Enter the Name of the item.
  3. Enter the Unit Price in INR.
  4. Enter a short Description of the item.
  5. Select the applicable Tax Rate for the item from the dropdown list.
    1. You can Add Cess to the the order amount.
  6. Select your taxes imposed to be Inclusive or Exclusive of the order amount as per your business requirements. Note: If the PLACE OF SUPPLY/SHIPPING ADDRESS is of a different state from the BILLING ADDRESS, the tax will be computed as IGST else it will divided into CGST and SGST.
  7. Enter the 8-Character HSN or *SAC code of the item.
  8. Click Add Item.
  9. Specify the quantity(QTY) of the item. Tip: To edit an existing Item, search from the list previously created items and click Edit. This will open a Edit Item window, where you be shown the same options as in +Add a new Item. You can add mulitple items in the same manner by clicking Add Line. To Remove Item click the cancel button beside the added item. Note: To know more on how to create Items, refer the detailed Items documentation.

Optional Steps#

  1. In the Add Customer Notes (Optional) field, you can enter additional details if any. Note: You can add a maximum of 2048 characters in this field.
  2. In the Add Terms and Conditions (Optional) field, you can enter additional details if any. Note: You can add a maximum of 2048 characters in this field.
  3. Select the Enable Partial Payment to accept multiple payments for the same order amount.
  4. If you are sure about all the fields, click Finalize and Issue to send the created invoice.
  5. Select the mode of sending invoice and payment instruction from Mobile number and Email address.
  6. Click Issue and Send Invoice.

The created Invoice will appear on the list of previously created Invoices.

Important: Before issuing an invoice, ensure that you have updated it with the latest changes. You can even create a blank invoice (with no details at all) in Draft state, and later update it with necessary information and issue it.

The filled invoice creation screen appears as shown below:

Note: When an item's attributes are modified at the time of invoice creation, the modified item cannot be resused. The item will then be referred as a Line item. In other words, a Line Item is created when an Item is used as a template, in order to customize its attributes.

Updating an Invoice#

You can only update a Draft invoice.

To update an invoice via the API, refer the Updating an Invoice API section.

To update an Invoice on the Dashboard:

  1. Log in to your Razorpay Dashboard.
  2. Click on Invoices.
  3. Search for the particular Draft invoice using the search criteria.
  4. Select the Invoice Id you want to update and click edit under Actions.
  5. Make the necessary changes on the invoice.
  6. Click Save Invoice.

The invoice will now show the latest changes.

Issuing an Invoice#

A Draft invoice can be issued to any one of the listed customers.

To issue an invoice via the API, refer the Issuing an invoice API section.

To issue to an invoice from the Dashboard:

  1. Log in to your Razorpay Dashboard.
  2. Click on Invoices.
  3. Search for the particular Draft invoice using the search criteria.
  4. Click edit under Actions on the Invoice Id you want to issue.
  5. Click Finalize and Issue.
  6. Select the mode of sending invoice and payment instruction.
  7. Click Issue Invoice.

This sends the invoice to the customer along with a short URL called payment link which allows the customer to initiate the payment.

Cancelling an Invoice#

You can only cancel an Invoice in draft state and even after creating. Cancelling an Invoice makes it non-payable.

To cancel an invoice via the API, refer the Invoice Cancellation API Reference.

To cancel an invoice from the Dashboard:

  1. Log in to your Razorpay Dashboard.
  2. Click on Invoices.
  3. Search for the particular Draft invoice using the search criteria.
  4. Select the Invoice Id you want to cancel and click edit under Actions.
  5. Click Cancel Invoice.
  6. On the Cancel Invoice? dialog box, click Yes, Cancel to confirm the cancellation.

The cancelled invoices display a Cancelled status label.

Deleting an Invoice#

You can only delete an invoice in the draft state.

To delete an invoice via the API, refer the Invoice Deletion API Reference.

To delete an invoice from the Dashboard:

  1. Log in to your Razorpay Dashboard.
  2. Click on Invoices.
  3. Search for the particular Draft invoice using the search criteria.
  4. Select the Invoice Id you want to delete and click edit under Actions.
  5. Click Delete Invoice.
  6. On the Delete Invoice? dialog box, click Yes, Delete to confirm deletion.

Searching Invoices#

You can search for invoices (except Deleted), using the following filters:

Filter

Description

Invoice status

Lifecycle status of the invoice

Invoice Id

Invoice Id of the invoice

Receipt No.

Receipt No. of the invoice

Customer Contact

Registered contact of the customer

Customer Email

Email address of the customer

Using Webhooks with Invoices#

When the customer pays the amount given in the invoice, you can enable a webhook to get notified about it. You can use the following webhooks along with Invoices:

Invoice Paid#

Triggered when an invoice is successfully paid. The sample payload posted for the invoice.paid event is given below:

{ "entity": "event", "event": "invoice.paid", "contains": ["payment", "order", "invoice"], "payload": { "payment": { "entity": { "id": "pay_6koWN7bvxujzxM", "entity": "payment", "amount": 10000, "currency": "INR", "status": "captured", "order_id": "order_6koWN7bvxujzxM", "invoice_id": "inv_6GfX4mcIAdsfDQ", "international": false, "method": "card", "amount_refunded": 0, "refund_status": null, "captured": true, "description": "A Wild Sheep Chase is the third novel by Japanese author Haruki Murakami", "card_id": "card_6koWNAT6LASUqy", "bank": null, "wallet": null, "vpa": null, "email": "gaurav.kumar@example.com", "contact": "9123456780", "notes": { "merchant_order_id": "merchant_reciept_id" }, "fee": 23000, "service_tax": 3000, "error_code": null, "error_description": null, "created_at": 1479978483 } }, "order": { "entity": { "id": "order_6koWNAT6LASUqy", "entity": "order", "amount": 10000, "currency": "INR", "receipt": "random", "status": "paid", "attempts": 1, "notes": [], "created_at": 1479978483 } }, "invoice": { "entity": { "id": "inv_6koWNAT6LASUqy", "receipt": null, "entity": "invoice", "customer_id": "cust_6koWNAT6LASUqt", "customer_details": { "name": "test", "email": "gaurav.kumar@example.com", "contact": "9123456780", "address": null }, "order_id": "merchant_reciept_id", "line_items": [], "payment_id": "pay_6koWN7bvxujzxM", "status": "paid", "issued_at": null, "paid_at": 1479978484, "sms_status": "sent", "email_status": "sent", "date": null, "terms": null, "amount": 10000, "notes": [], "currency": "INR", "short_url": "http://bit.ly/3he311a", "view_less": true, "type": "link", "created_at": 1479978483 } } }, "created_at": 1479978484 }

Invoice Expired#

Triggered when an invoice gets expired. The sample payload posted for the invoice.expired event is given below:

{ "entity": "event", "event": "invoice.expired", "contains": ["invoice"], "payload": { "invoice":{ "entity":{ "id":"inv_6koWN7bvxujzxM", "entity":"invoice", "receipt":null, "invoice_number":null, "customer_id":"cust_6koWN7bvxujzxM", "customer_details":{ "name":"test", "email":"gaurav.kumar@example.com", "contact":"9123456780", "billing_address":null, }, "order_id":"order_6koWN7bvxujzxM", "payment_id":null, "status":"expired", "expire_by":1505201091, "issued_at":1505088000, "paid_at":null, "cancelled_at":null, "sms_status":"sent", "email_status":"sent", "date":null, "terms":null, "partial_payment":false, "gross_amount":null, "tax_amount":null, "amount":10000, "amount_paid":0, "amount_due":10000, "currency":"INR", "description":null, "notes":[], "comment":null, "short_url":"https://rzp.io/xyzxyzx", "view_less":true, "billing_start":null, "billing_end":null, "type":"invoice", "group_taxes_discounts":false, "user_id":null, "created_at":1505201092 } } }, "created_at":1505201092 }

The webhook invoice.paid let's you receive notification when an invoice gets paid by the customer. This can be enabled on your Dashboard under the webhooks section.

Refer our webhook documentation for more details.