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

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:

  1. linked_payments of the invoice associated with the credit note. 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.

Implementation Notes

Before using this API, ensure:

Servers

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:

  • "all-disabled"
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:

  • "all-disabled"
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:

  • "all-disabled"

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 payment_method = check.

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 credit_note is assumed.

transaction.payment_method String Yes

The payment method of this transaction

  • cash - Cash
  • paypal_express_checkout - Paypal Express Checkout
  • automated_bank_transfer - Automated Bank Transfer
  • venmo - Venmo
  • bancontact - Bancontact
  • custom - Custom
  • ideal - IDEAL
  • check - Check
  • upi - upi
  • sepa_instant_transfer - Sepa Instant Transfer
  • alipay - Alipay
  • sepa_credit - SEPA Credit
  • ach_credit - ACH Credit
  • faster_payments - Faster Payments
  • sofort - Sofort
  • direct_debit - Direct Debit
  • bank_transfer - Bank Transfer
  • chargeback - Only applicable for a transaction of type = refund. This value is set by Chargebee when an automated chargeback occurs. You can also set this explicitly when recording a refund.
  • unionpay - Unionpay
  • apple_pay - Apple Pay
  • dotpay - Dotpay
  • netbanking_emandates - netbanking_emandates
  • amazon_payments - Amazon Payments
  • wechat_pay - WeChat Pay
  • google_pay - Google Pay
  • card - Card
  • klarna_pay_now - Klarna Pay Now
  • other - Payment Methods other than the above types
  • boleto - boleto
  • giropay - giropay
  • pay_to - PayTo
  • payconiq_by_bancontact - Payconiq by Bancontact

Valid values:

  • "check"
  • "chargeback"
  • "other"
  • "cash"
  • "bank_transfer"
  • "custom"
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

  1. Add HTTP Task to your workflow definition.
  2. 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.
  3. Click Test request to test run your request to the API and see the API's response.