Invoices
Cancel an Invoice
Cancel an invoice using this endpoint.
POST
Use this endpoint to cancel an invoice. Invoices in the
paid state cannot be cancelled.
Path Parameters
string
required
The unique identifier of the invoice.
Response Parameters
string
The unique identifier of the invoice.
string
Indicates the type of entity. Here, it is
invoice.string
Here, it should be
invoice.string
Unique number you added for internal reference. The minimum character length is 1 and maximum is 40.
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.object
Details of the customer.
string
Unique identifier of the customer. For example,
cust_1Aa00000000004.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.string
The customer’s email address. A maximum length of 64 characters. For example,
gaurav.kumar@example.com.string
The customer’s phone number. A maximum length of 15 characters including country code. For example,
+919876543210.object
Details of the customer’s billing address.
string
The unique identifier generated for the customer’s billing address.
string
The customer address type. Here it is
billing_address.boolean
Defines if this is the primary address.
true: It is the customer’s primary address.false: It is not the customer’s primary address.
string
The first line of the customer’s address.
string
The second line of the customer’s address.
string
The city.
string
The zipcode.
string
The state.
string
The country.
object
Details of the customer’s shipping address.
string
The unique identifier generated for the customer’s shipping address.
string
The customer address type. Here it is
shipping_address.boolean
Defines if this is the primary address.
true: It is the customer’s primary address.false: It is not the customer’s primary address.
string
The first line of the customer’s address.
string
The second line of the customer’s address.
string
The city.
string
The zipcode.
string
The state.
string
The country.
string
The unique identifier of the order associated with the invoice.
object
Details of the line item that is billed in the invoice. Maximum of 50 line items.
string
Unique identifier that is generated if a new item has been created while creating the invoice.
string
Unique identifier of the item generated using Items API that has been billed in the invoice.
string
The item’s name.
string
A brief description of the item.
integer
The price of the item.
string
The currency associated with the item. Default is
INR. Know about the list of supported international currencies.string
Here, it is
invoice.integer
The quantity of the item billed in the invoice. Defaults to
1.string
Unique identifier of a payment made against this invoice.
string
The status of the invoice. Know more about Invoice States. Possible values:
draftissuedpartially_paidpaidcancelledexpireddeleted
integer
Timestamp, in Unix format, at which the invoice will expire.
integer
Timestamp, in Unix format, at which the invoice was issued to the customer.
integer
Timestamp, in Unix format, at which the payment was made.
integer
Timestamp, in Unix format, at which the invoice was cancelled.
integer
Timestamp, in Unix format, at which the invoice expired.
string
The delivery status of the SMS notification for the invoice sent to the customer. Possible values:
pendingsent
string
The delivery status of the email notification for the invoice sent to the customer. Possible values:
pendingsent
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.
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 , pass the value as
30000.integer
Amount paid by the customer against the invoice.
integer
The remaining amount to be paid by the customer for the issued invoice.
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.string
A brief description of the invoice. The maximum character length is 2048.
object
Any custom notes added to the invoice. Maximum of 2048 characters.
string
The short URL that is generated. Share this link with customers to accept payments.
integer
Timestamp, in Unix format, that indicates the issue date of the invoice.
string
Any terms to be included in the invoice. Maximum of 2048 characters.
string
Any comments to be added in the invoice. Maximum of 2048 characters.
string
A unique reference number for the invoice, used for internal tracking and reconciliation.
string
Unique identifier of the user associated with this invoice.
integer
The first payment min amount for this invoice, in the smallest currency unit (paise for INR).
string
A unique receipt number that you can provide for the invoice, for your internal reference.
string
For example,
₹.string
A unique key used to ensure idempotency of the invoice creation request, preventing duplicate invoices.
string
Unique identifier of the subscription this invoice was generated for.
null for one-off invoices.Errors
Operation not allowed for Invoice in {cancelled|paid|partially_paid|expired} status.
Operation not allowed for Invoice in {cancelled|paid|partially_paid|expired} status.
Code:
400Cancellation is only allowed on invoices in the draft or issued state. The error message echoes the invoice’s actual current status. For example, Operation not allowed for Invoice in paid status. if the invoice has already been paid.Solution: Verify the invoice’s current status using the Fetch Invoice API. Only invoices in draft or issued state can be cancelled.Invoice cannot be cancelled as payment for it has happened.
Invoice cannot be cancelled as payment for it has happened.
Code:
400The invoice was in the issued state at the time of the cancel request but a payment was already in progress against it.Solution: Fetch the invoice and confirm its current state. Once the payment finalises, the invoice will move to paid or partially_paid and can no longer be cancelled.The api {key/secret} provided is invalid.
The api {key/secret} provided is invalid.
Code:
4xxThe API credentials passed in the API call differ from the ones generated on the Dashboard.Solution: The API keys must be active and entered correctly with no whitespace before or after.The id provided does not exist.
The id provided does not exist.
Code:
400The invoice id passed in the URL does not exist or does not belong to the requesting merchant.Solution: Use a valid invoice id returned from POST /v1/invoices. Confirm by fetching the invoice before retrying.