POST /invoices/{invoice-id}/record_refund

Refunds the invoice. The refund is provided against the following in order of precedence:

Example

Consider an invoice with the following payments and tax withheld.

When recording a refund worth $40, the refund amount is split as follows:

For payments made via online transactions, the refund request is processed via the payment gateway originally used to charge the customer.
Tip

If the order of precendence described above does not work for your use case, and you want to provide a refund against online linked_payments first, use the Refund an invoice API.

Servers

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

Possible 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

Possible 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

Possible 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.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 refunded (for online payments) or recorded as refunded (for offline payments). If not specified, the entire refundable amount for this invoice is refunded. The refundable amount is the total amount paid (and not already refunded) for the invoice. Note: Any linked_taxes_withheld associated with the invoice can also be recorded as refunded via this operation.

transaction.payment_method String Yes

The payment method of this transaction * cash - Cash * alipay - Alipay * sofort - Sofort * direct_debit - Direct Debit * netbanking_emandates - netbanking_emandates * klarna_pay_now - Klarna Pay Now * 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 * sepa_credit - SEPA Credit * ach_credit - ACH Credit * faster_payments - Faster Payments * 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 * amazon_payments - Amazon Payments * wechat_pay - WeChat Pay * google_pay - Google Pay * card - Card * other - Payment Methods other than the above types * boleto - boleto * giropay - giropay * pay_to - PayTo

Possible values:

  • "check"
  • "chargeback"
  • "other"
  • "cash"
  • "bank_transfer"
  • "custom"
transaction.date Integer Yes

Indicates when this transaction occurred.

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] * service_unsatisfactory - Service Unsatisfactory * subscription_pause - This reason will be automatically set to credit notes created during pause/resume subscription operation. * order_cancellation - Order Cancellation * subscription_cancellation - This reason will be set automatically for Credit Notes created during cancel subscription operation * product_unsatisfactory - Product Unsatisfactory * subscription_change - This reason will be set automatically for Credit Notes created during Change Subscription operation when proration is enabled * other - Can be set when none of the above reason codes are applicable * order_change - Order Change * chargeback - Can be set when you are recording your customer Chargebacks * write_off - This reason will be set automatically for the Credit Notes created during invoice Write Off operation. * fraudulent - FRAUDULENT * waiver - Waiver

Possible values:

  • "service_unsatisfactory"
  • "chargeback"
  • "other"
  • "product_unsatisfactory"
  • "order_change"
  • "order_cancellation"
  • "waiver"
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

  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.