Skip to main content

Refunds

Refunds are issued from Chargebee. Chargebee holds the customer, the subscription, and the invoice, and it collects every payment. BlueSnap is only the card gateway behind Chargebee, so a refund issued in Chargebee goes back through BlueSnap to the customer's card and is recorded against the invoice. Don't refund in the BlueSnap console unless Chargebee can't send the refund. See When Chargebee can't send the refund.

In most cases the customer should get the money back on their card, so the steps on this page do that.

Refund the card, don't issue credits

Chargebee can return money in two ways. A refund sends it to the customer's card. Credits stay on the customer's Chargebee account and are taken off their next invoice, so no money goes back to the customer, and a customer who has cancelled never uses them. Use Issue a refund, and don't choose an option that issues a credit note on its own or keeps the amount as credits. Always finish with the check in the last step of the procedure.

Refund a payment to the customer's card​

  1. Sign in to the live Chargebee site at https://nutritionistpro.chargebee.com. The left menu shows Live beside the site name.
  2. Click Customers in the left menu and find the customer by email.
  3. Open the customer and scroll down to History. You can also click History in the section list beside the customer details to jump there.
  4. On the Invoices tab, click the ID of the invoice to refund.
  5. On the invoice page, click Issue a refund in the menu on the right.
  6. Enter the amount and a reason, then confirm. Use the invoice total for a full refund, or a smaller amount for a partial refund.
  7. Go back to the customer's History and check both of these:
    • The Credit Notes tab shows a new credit note with a status of Refunded.
    • The Transactions tab shows a refund with a status of Success.

If the credit note's status is Refund Due, the amount was kept as credits and nothing went to the card. Open the credit note and refund it to the card from there.

The refund can take several business days to show on the customer's card statement.

Cancel the subscription as well​

A refund doesn't cancel anything. The customer keeps their access, and the subscription renews and charges the card again on the next billing date. When the customer is leaving, cancel the subscription in Chargebee after the refund:

  1. On the customer's page, open the subscription.
  2. Cancel it, and choose when it ends. With an immediate cancellation, the customer loses access on their next request. With a cancellation at the end of the term, they keep access until that date.
  3. If the cancel dialog offers to issue credits for the unused part of the term, don't issue them. The refund has already returned the money.

For a goodwill or partial refund where the customer is staying, skip this section.

What the app does afterward​

The app reacts to a cancellation and ignores a refund:

  • A refund changes nothing in the app. None of the Chargebee webhooks the app listens to handles a refund, so the customer's access and renewal date stay as they were.
  • A cancellation ends access. Chargebee sends the app a subscription_cancelled webhook. The app marks the order as cancelled and ends its access at the time Chargebee gives, which is right away for an immediate cancellation and the end of the term otherwise. See When access ends.
  • A cancellation updates Freshsales. The deal for that subscription moves to the CHURN stage, and so does the contact when it was their only deal. The deal amount isn't changed by the refund.
  • The app database doesn't record the refund. The orders_subscriptions table has is_refunded, refunded_amount, and refund_reason columns, and only the retired BlueSnap code writes them. Chargebee is the only record of a refund.

Some older desktop subscriptions are billed in Chargebee and have no records in the app. The refund steps are the same for them, and nothing in this section applies.

When Chargebee can't send the refund​

A refund can fail at the gateway, for example when the card has been closed or the payment is too old for BlueSnap to refund. The Transactions tab then shows the refund as failed. In that case:

  1. Return the money another way, such as a refund from the BlueSnap console.
  2. Record the refund in Chargebee as an offline refund against the same invoice, so that Chargebee matches what the customer received.

An offline refund sends no money. Only record one after the money has been returned another way.

The old refund form in the app​

The app still has a refund form from when BlueSnap was the billing system (PaymentController::refundInvoice in the nexgen_v3 repository). It calls BlueSnap's old orders API directly and knows nothing about Chargebee. No page links to it. Don't use it.

Practice on staging​

The staging environment uses the Chargebee test site, nutritionistpro-test, and the BlueSnap sandbox. You can make a test purchase on staging and refund it in the test site without moving real money.