ChargebeeAPI

Record refund for an invoice

Idempotency Supported
Try in API Explorer

Record a full or partial offline refund for an invoice.

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.

Important: This API does not process actual refunds for online payments or return money to customers through the payment gateway. To process refunds for online payments and return money to customers, use the Refund an invoice API instead.

Prerequisites & Constraints

The invoice must have a refundable amount. (See Implementation Notes for details.)

Impacts

Credit note

Chargebee creates a refundable credit note with status set to refunded.

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:

  1. linked_payments for offline transactions. This is recorded as linked_refunds[] in the credit note.
  2. linked_taxes_withheld (if available). This is recorded as linked_tax_withheld_refunds[] in the credit note.
  3. linked_payments for online transactions (after offline payments and taxes withheld are exhausted). This is recorded as linked_refunds[] in the credit note.

Example

Consider an invoice with the following payments and tax withheld:

  • Offline payments: $30
  • Online payments: $20
  • Tax withheld: $5

When you record a refund of $40, Chargebee allocates the refund as follows:

  • Refund against offline payments: $30
  • Refund against tax withheld: $5
  • Refund against online payments: $5

Implementation Notes

Before calling this API, perform the following checks:

  • The invoice must have a refundable amount. Specifically, the sum of issued_credit_notes[].amount for refundable credit notes must be less than the sum of:
  • Ensure the transaction[date] is on or after the invoice date and not in the future.
  • Include the transaction[amount] parameter to specify the refund amount. If you omit this parameter, the system records the entire refundable amount as refunded.
  • If reason codes are mandatory in Chargebee Billing, include the credit_note[create_reason_code] parameter with a value from the configured list of codes.

Sample Request

URL Format

POST https://[site].chargebee.com/api/v2/invoices/{invoice-id}/record_refund

Input Parameters

comment
optional, string, max chars=65k

Remarks, if any, on the refund.

customer_notes
optional, string, max chars=2000

The Customer Notes to be filled in the Credit Notes created to capture this refund detail.

transaction[0..n]
Parameters for transaction
pass parameters as transaction[<param name>]
credit_note[0..n]
Parameters for credit_note
pass parameters as credit_note[<param name>]

Returns

invoiceInvoice object
Resource object representing invoice
transactionTransaction object
Resource object representing transaction
credit_noteCredit note object
Resource object representing credit_note