POST /invoices/{invoice-id}/void
Voids the specified invoice.
Use this operation when:
- The invoice was generated in error.
- The invoice amount is incorrect.
- The customer requests a change to the invoice.
- The customer cancels the order.
Voiding preserves the audit trail and allows for future reference and compliance without removing the original record.
Regenerate or import an invoice
- If the invoice is for the current term of a subscription, you can regenerate it using the Regenerate an invoice API.
- If the invoice is not for the current term of a subscription, you can import it using the Import an invoice API or the UI bulk import action.
Prerequisites & Constraints
- The invoice
statusmust bepayment_due,posted, ornot_paid. - The invoice must not have any
linked_paymentswithtxn_statusset tosuccessorin_progress. - The
amount_adjustedon the invoice must be zero. - The invoice must not have any
applied_creditswithcn_statusset torefundedorrefund_due. - The invoice must not have any
issued_credit_noteswithcn_statusset torefundedorrefund_due. - The invoice must not have any
linked_taxes_withheld.
Impacts
Invoices
- Chargebee sets the invoice
statustovoided.
Subscription
- If the invoice is for the current term of a subscription and you change the subscription later within the same term with proration enabled, Chargebee does not issue prorated credits.
Customer
- Chargebee adds back any promotional credits that were applied to the invoice to
customer.balances.promotional_credits.
Credit Note
- If the Void invoices with credit note setting is enabled, Chargebee creates a credit note for the voided invoice:
- The credit note
typeisadjustment. - The credit note
statusisadjusted. - The credit note
create_reason_codeisInvoice Void.
- The credit note
Usages
- Chargebee delinks the
usageresources associated with the invoice by clearing theinvoice_idattribute.
Integrations
- Review how voiding an invoice impacts your accounting integrations.
Implementation Notes
Before calling this API, ensure the following:
- The invoice
statusispayment_due,posted, ornot_paid. - Remove any
linked_paymentswithtxn_statusset tosuccessorin_progress. - Remove the following credits:
- any
applied_creditswithcn_statusset torefundedorrefund_due - any
issued_credit_noteswithcn_statusset torefundedorrefund_due - any
adjustment_credit_noteswithcn_statusset toadjusted
- any
- Remove any
linked_taxes_withheld.
Servers
- {protocol}://{site}.{environment}:{port}/api/v2
- {protocol}://{site}-test.{environment}:{port}/api/v2
Path parameters
| Name | Type | Required | Description |
|---|---|---|---|
invoice-id |
String | Yes |
Request headers
| Name | Type | Required | Description |
|---|---|---|---|
chargebee-request-origin-device |
String | No |
The device from which the customer has made the request |
Content-Type |
String | Yes |
The media type of the request body.
Default value: "application/x-www-form-urlencoded" |
chargebee-event-webhook |
String | No |
skip only webhooks Valid values:
|
chargebee-business-entity-id |
String | No |
If the site has multiple business entities, you can use this custom HTTP header to specify the business entity for which Chargebee should perform the operation. |
chargebee-event-actions |
String | No |
skip all actions to be done on the events Valid values:
|
chargebee-request-origin-user |
String | No |
The email address of your customer/user. Use this when the email address has only ASCII characters. |
chargebee-request-origin-ip |
String | No |
The IP address of the customer where the request originated |
chargebee-request-origin-user-encoded |
String | No |
The Base64-encoded email address of your customer/user. Use this if the email address has UTF-8 characters. When this header is provided, the header chargebee-request-origin-user is ignored. |
chargebee-event-email |
String | No |
skip only emails Valid values:
|
Request body fields
| Name | Type | Required | Description |
|---|---|---|---|
comment |
String | No |
An internal comment to be added for this operation, to the invoice. This comment is displayed on the Chargebee UI. It is not displayed on any customer-facing Hosted Page or any document such as the Invoice PDF . |
void_reason_code |
String | No |
Reason code for voiding the invoice. Select from a list of reason codes set in the Chargebee app in Settings > Configure Chargebee > Reason Codes > Invoices > Void invoice. Must be passed if set as mandatory in the app. The codes are case-sensitive. |
How to start integrating
- Add HTTP Task to your workflow definition.
- Search for the API you want to integrate with and click on the name.
- This loads the API reference documentation and prepares the Http request settings.
- Click Test request to test run your request to the API and see the API's response.