POST /invoices/{invoice-id}/refund
Refunds online payments or online refundable credit notes applied to an invoice.
If multiple transactions or credit note allocations are associated with the invoice, the refund can be processed only for one transaction or allocation at a time. The refund amount is returned to the customer through the payment_source associated with the transaction.
For recording offline refunds, including those for linked_taxes_withheld, use the Record refund for an invoice API.
Prerequisites & Constraints
- The invoice must have a refundable amount derived from online transactions.
- There must be no
linked_paymentswith a status ofin-progress. - Partial refunds can be processed only if the associated payment gateway supports partial refund operations.
- Ensure that all parameter-level requirements are met.
Impacts
- The invoice status does not change after this operation.
- A refundable credit note is created for the invoice to capture the refund details.
Implementation Notes
Before calling this API, ensure the following:
- The invoice must have a refundable amount derived from online transactions.
The refundable amount is calculated as:
linked_payments[].amountfor online payments +applied_credits[].applied_amount-issued_credit_notes[].cn_total - There must be no
linked_paymentswith a status ofin-progress. - All parameter-level requirements are met.
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 |
Comment, if any, on the refund. |
refund_amount |
Integer | No |
The amount to be refunded. Constraints
Default behavior
|
credit_note |
Object | No |
Parameters for credit_note |
credit_note.reason_code |
String | No |
The reason for issuing this Credit Note. The following reason codes are supported now[Deprecated; use the create_reason_code parameter instead] * product_unsatisfactory - Product Unsatisfactory * chargeback - Can be set when you are recording your customer Chargebacks * service_unsatisfactory - Service Unsatisfactory * write_off - This reason will be set automatically for the Credit Notes created during invoice Write Off operation. * subscription_change - This reason will be set automatically for Credit Notes created during Change Subscription operation when proration is enabled * fraudulent - FRAUDULENT * other - Can be set when none of the above reason codes are applicable * subscription_pause - This reason will be automatically set to credit notes created during pause/resume subscription operation. * waiver - Waiver * order_cancellation - Order Cancellation * order_change - Order Change * subscription_cancellation - This reason will be set automatically for Credit Notes created during cancel subscription operation Valid values:
|
credit_note.create_reason_code |
String | No |
Reason code for creating the credit note. Must be one from a list of reason codes set in the Chargebee app in Settings > Configure Chargebee > Reason Codes > Credit Notes > Create Credit Note. The codes are case-sensitive |
customer_notes |
String | No |
The Customer Notes to be filled in the Credit Notes created to capture this refund detail. |
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.