Introducing the Chargebee CLI

How do I manage refunds and chargebacks in Chargebee with Stripe?

Problem Statement

When using Chargebee with Stripe, you may see two separate refund-related adjustments against the same payment — a merchant-initiated refund and a chargeback. This happens most often when a refund is created manually before Chargebee's Chargeback Management workflow finishes processing an existing dispute, and it can leave mismatched balances between Chargebee and Stripe.

Solution

A refund and a chargeback are separate financial events:

  • A refund is initiated by you, the merchant.
  • A chargeback is initiated by the customer through their bank.

Issuing a refund does not automatically cancel an open dispute. If you refund a payment while the dispute is still open, Stripe can process both the refund and the chargeback, resulting in two separate deductions for the same payment. In Chargebee, one entry may represent the merchant-initiated refund while the other represents the adjustment recorded by Chargeback Management. Although both can appear refund-related, they originate from different events.

To avoid duplicate records, do not record a separate refund for an amount that has already been reversed through a chargeback. Work through the steps below before creating or removing any financial adjustment.

Confirm whether both a refund and a chargeback occurred

Review the payment in both Chargebee and Stripe before making any change.

In Chargebee:

  1. Go to Logs > Transactions.
  2. Open the original payment transaction.
  3. Review the associated refunds, credit notes, dispute details, and activity timeline.
  4. Note the transaction ID, refund ID, amount, status, and timestamps.

In Stripe:

  1. Open the corresponding payment.
  2. Review the Refunds and Disputes sections.
  3. Confirm whether the payment has both a merchant-initiated refund and a customer-initiated dispute.
  4. Compare the refund and dispute IDs, amounts, statuses, and timestamps with the records in Chargebee.

If the records have different IDs or timestamps, they are separate financial events rather than the same refund appearing twice.

Process refunds through Chargebee

Initiate refunds from Chargebee whenever possible so that the refund is recorded in Chargebee and sent to Stripe through the configured integration. Go to Logs > Transactions, select the transaction, and click Refund.

Before processing a refund, verify whether an active dispute already exists for the payment. If a dispute is in progress, review how it will be handled before issuing a separate refund.

Keep Chargeback Management enabled

You do not need to disable Chargeback Management to prevent duplicate refunds. Chargebee uses the configured workflow to process dispute events received from Stripe. Review the configuration under Settings > Configure Chargebee > Billing LogIQ > Chargeback Management and confirm that the configured actions align with your intended chargeback workflow. For setup details, see Configuring Chargeback Management.

When a dispute already exists, allow the configured workflow to process it before creating a separate refund whenever possible.

Do not record another refund manually

If a refund or dispute adjustment has already been recorded for the transaction, do not create another offline refund solely because a dispute appears in Stripe. Creating an additional refund can result in another financial adjustment and make reconciliation more difficult. Verify the transaction, refund, and dispute records in both Chargebee and Stripe first.

Handle an open dispute after a refund

If the payment has already been refunded but the dispute remains open:

  • Do not issue another refund.
  • Review the dispute in Stripe.
  • Follow Stripe's dispute process and provide evidence that the customer was already refunded, where applicable.
  • Monitor the dispute until Stripe confirms its final outcome.

A merchant-initiated refund does not automatically close a dispute. The dispute must be resolved separately through Stripe and the customer's bank.

Reconcile completed refunds and chargebacks

If Stripe confirms that both the refund and the chargeback were completed:

  • Do not delete or reverse valid Chargebee records without confirming the gateway activity.
  • Ask the customer to contact their bank about withdrawing the dispute, where possible.
  • Contact Stripe if clarification or recovery of the duplicate deduction is required.
  • Compare the final Stripe balance with the transaction, refund, dispute, and credit-note records in Chargebee.
  • Review any required reconciliation entry with your accounting team.

If Chargebee does not accurately represent the completed Stripe events, contact Chargebee Support and provide the Chargebee transaction ID, Stripe payment ID, refund ID, dispute ID, amounts, statuses, and relevant timestamps.

Important Notes

  • A merchant-initiated refund does not automatically cancel a customer's dispute.
  • A refund and a chargeback can both be processed against the same payment.
  • Before issuing a refund, check whether a dispute is already open for the payment.
  • Process refunds through Chargebee whenever possible to keep Chargebee and Stripe synchronized.
  • Do not disable Chargeback Management solely to prevent duplicate refunds.
  • Do not record an offline refund unless the refund occurred outside Chargebee and has not already been represented in Chargebee.
  • Review the transaction, refund, and dispute timelines before making any manual reconciliation entry.