POST /credit_notes/{credit-note-id}/record_refund
Records a refund for a refundable credit note.
This API does not process an actual refund for online payments by returning money to customers.
Use this API to record refunds processed outside Chargebee (for example, directly through a payment gateway or via offline methods such as bank transfers or checks) so you can reconcile them in Chargebee.
To process refunds via Chargebee for online payments and automatically return money to customers, use the Refund a credit note API instead.
Prerequisites & Constraints
- The credit note
typemust berefundable. - The credit note
statusmust berefund_due.
Impacts
Transactions
Chargebee records the refunds by creating transactions of type refund and links them to the credit note. The refund transactions are recorded in the following order:
linked_paymentsof the invoice associated with the credit note. This is recorded aslinked_refunds[]in the credit note.linked_taxes_withheld(if available). This is recorded aslinked_tax_withheld_refunds[]in the credit note.
Implementation Notes
Before using this API, ensure:
- The credit note
typeisrefundable. - The credit note
statusisrefund_due. - If reason codes are mandatory in Chargebee Billing, include the
refund_reason_codeparameter with a value from the configured list of codes.
Servers
- {protocol}://{site}.{environment}:{port}/api/v2
- {protocol}://{site}-test.{environment}:{port}/api/v2
Path parameters
| Name | Type | Required | Description |
|---|---|---|---|
credit-note-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 |
Remarks, if any, on the refund. |
transaction |
Object | No |
Parameters for transaction |
transaction.id |
String | No | |
transaction.reference_number |
String | No |
The reference number for this transaction. For example, the check number when |
transaction.custom_payment_method_id |
String | No |
Identifier of the custom payment method of this transaction. |
transaction.amount |
Integer | No |
The amount to be recorded as refunded. If not specified, the entire refundable amount for this |
transaction.payment_method |
String | Yes |
The payment method of this transaction
Valid values:
|
transaction.date |
Integer | Yes |
Indicates when this transaction occurred. |
refund_reason_code |
String | No |
Reason code for the refund. Must be one from a list of reason codes set in the Chargebee app in Settings > Configure Chargebee > Reason Codes > Credit Notes > Refund Credit Note. 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.