# Partial Refund: Meaning, Examples, and How to Issue One

> What a partial refund is, when SaaS and digital sellers should use one, how fees and sales tax or VAT are handled, and how to issue a partial refund step by step.
- **Author**: Deepak Jangir
- **Published**: 2026-10-17
- **Category**: Payments, Refunds
- **URL**: https://dodopayments.com/blogs/en/partial-refund

---

A partial refund is when a merchant returns only part of a payment to the customer instead of the full amount. The original transaction stays in place, a portion of the money goes back to the customer's original payment method, and the rest is kept as earned revenue. It is the right tool when the customer received some, but not all, of the value they paid for.

For SaaS, AI, and digital product founders, this comes up constantly. A customer on a $99 annual add-on downgrades two weeks in. Someone buys a three-course bundle and one course turns out to be a duplicate of something they already own. An outage knocks your API offline for a day and a large customer asks for something back. In each case, a full refund gives away value the customer actually used, and refusing outright pushes them toward their bank's dispute button.

This guide covers the partial refund meaning in plain terms, the situations where it is the correct call, how it compares to a full refund or account credit, what happens to processing fees and sales tax or VAT, how it affects chargeback risk, and exactly how to issue a partial refund in Dodo Payments from the dashboard or the API.

## Partial Refund Meaning: What It Is and What It Is Not

A partial refund is a merchant-initiated reversal of a specific amount that is smaller than the original charge. You decide the amount. The customer does not need to return anything (in digital goods there is usually nothing to return), and the original payment record is not cancelled. It simply shows a refunded amount alongside the amount you kept.

It helps to separate a partial refund from a few things it often gets confused with:

- **A void** cancels an authorization before it settles, so no money moves at all. A partial refund happens after the payment has succeeded and settled.
- **A chargeback** is a reversal the cardholder requests from their bank, going around you. A partial refund is something you choose to issue. Our breakdown of [chargeback vs refund](https://dodopayments.com/blogs/chargeback-vs-refund) covers that difference in depth.
- **An account credit** keeps the money on your side and applies it to a future invoice. A partial refund sends cash back to the customer's card or wallet.
- **A discount** reduces a future price. A partial refund adjusts a past one.

Here is how the three most common remedies compare when a customer is owed something back.

| Dimension | Partial refund | Full refund | Account credit |
| --- | --- | --- | --- |
| Money returned to customer | Part of the payment | Entire payment | None, value stays on account |
| Where the value goes | Original payment method | Original payment method | Applied to future invoices |
| Revenue you keep | The unrefunded portion | None of the payment | All of it, until the credit is used |
| Best for | Partial use, one item in a bundle, prorated downgrade | Unused purchase, billing error, product failure | Customers who are staying and will pay again |
| Customer perception | Fair, proportionate | Most generous | Fine if they plan to stay, frustrating if they are leaving |
| Effect on dispute risk | Lowers it if done quickly | Lowers it most | Can raise it if the customer wanted cash |

A partial refund sits in the middle and is usually the most honest reflection of what the customer actually received.

If you are setting the rules for when each remedy applies, start with a written policy. Our guide to [SaaS refund management](https://dodopayments.com/blogs/saas-refund-management) covers refund policy design broadly. This post focuses specifically on the partial refund itself.

## When SaaS and Digital Sellers Use a Partial Refund

Partial refunds are not a fallback for when you are too stingy to issue a full one. They are the correct answer whenever the customer got some value and you can put a reasonable number on the part they did not get. These are the four situations that come up most often for software and digital sellers.

### Prorated downgrades and mid-cycle changes

A customer on a higher tier moves to a cheaper plan halfway through a billing period and asks for the difference back. If your billing system does not automatically issue a proration credit, or the customer wants cash instead of credit, a partial refund for the unused portion of the higher tier is the fair outcome.

The math is the same proration logic covered in our explainer on [prorated billing for SaaS](https://dodopayments.com/blogs/prorated-billing-explained-saas): take the price difference, multiply by the fraction of the period remaining, and refund that amount. For the full mechanics of how upgrades and downgrades interact with renewal dates, see our guide to [subscription upgrade and downgrade proration](https://dodopayments.com/blogs/subscription-upgrade-downgrade-proration).

### One item in a bundle or multi-item order

A customer buys a template pack plus an add-on, or a course plus a community membership, and only one of those items is the problem. Refunding the full order punishes you for the parts that worked. Refunding just the affected item keeps the rest of the sale intact.

Per-item refunds help here: the refund record shows exactly which product was returned, which simplifies reconciliation and any later dispute.

### Service credits for outages or missed SLAs

When your product fails to deliver for a period, many B2B customers expect a service credit. Some will accept it as a credit on the next invoice. Others, especially customers on annual prepaid plans or those who are already planning to leave, want money back.

A partial refund sized to the affected period handles both cases. If you publish an SLA, define the credit formula there so the refund amount is never a negotiation.

### Goodwill gestures

Sometimes nothing is technically wrong, but the customer had a bad experience: a confusing onboarding, a slow support response, a feature that did not behave as the sales page implied. A small partial refund can turn a frustrated customer into a retained one, or at least a neutral one who does not leave a damaging review.

Goodwill refunds work best when they are proactive, offered before the customer has to ask.

## Partial Refund vs Full Refund: How to Decide

The partial refund vs full refund decision usually comes down to two questions. Did the customer receive meaningful value? And can you calculate the unreceived portion without arguing about it?

If the answer to both is yes, a partial refund is defensible and fair. If the customer received essentially nothing (they bought the wrong plan and noticed within minutes, a billing bug double-charged them, the product never worked for their use case), a full refund is the better call. Trying to keep a few dollars in those cases usually costs more in support time and dispute risk than it saves.

A simple decision path looks like this:

```mermaid
flowchart LR
    A["Customer asks for money back"] --> B{"Did they get meaningful value?"}
    B -->|No| C["Full refund"]
    B -->|Yes| D{"Can you calculate the unused part?"}
    D -->|Yes| E{"Do they want cash or credit?"}
    D -->|No| F["Offer a fixed goodwill amount"]
    E -->|Cash| G["Partial refund"]
    E -->|Credit| H["Account credit"]
    F --> G
```

One rule worth enforcing across a support team: billing errors such as duplicate charges or renewals after a missed cancellation always get a full refund, never a negotiated partial one. And proration or SLA credits should come from a documented calculation, not judgment calls.

## Partial Refund Processing Fees, Sales Tax, and VAT

Two questions come up every time a founder issues their first partial refund: who eats the processing fee, and what happens to the tax that was collected on the original charge?

### What happens to processing fees

On most payment platforms, the processing fee on the original transaction is not returned when you refund, whether the refund is full or partial. The card networks and processors already did the work of moving the money, so that cost stays with you. Many providers also charge a separate fee per refund.

Dodo Payments follows the same pattern. The transaction fee on the original payment is not reversed, and each refund carries a $1 fee per refund. Here is a worked example for a one-time $100 purchase on a domestic US card, using Dodo's published 4% + 40c rate and excluding tax for simplicity:

| Line item | Amount |
| --- | --- |
| Original payment | $100.00 |
| Transaction fee (4% + $0.40) | -$4.40 |
| Partial refund to customer | -$30.00 |
| Refund fee | -$1.00 |
| Net you keep | $64.60 |

Two takeaways follow from that table. First, several small partial refunds on the same payment each carry their own refund fee, so it is usually better to settle on one amount than to refund in installments. Second, the fee structure is the same for a $5 refund as for a $50 one, so tiny goodwill refunds are relatively expensive. For a wider view of what card payments really cost, see our guide to [credit card processing fees for small businesses](https://dodopayments.com/blogs/credit-card-processing-fees-small-business).

### What happens to sales tax and VAT

When you issue a partial refund on a taxed transaction, the tax portion is generally refunded proportionally. If a customer paid $100 plus $20 VAT and you refund half the price, they should also get back half the VAT, $10. Refunding the price without the matching tax leaves the customer short and leaves your tax filings out of sync with what you actually earned.

That proportional adjustment then has to flow through your tax reporting. If you are registered for VAT in the EU or sales tax in several US states, you have to reduce the tax you report for that period by the refunded tax amount. Our [EU VAT guide for SaaS](https://dodopayments.com/blogs/eu-vat-saas-guide-2026) covers how those obligations work when you sell into Europe.

With Dodo Payments acting as Merchant of Record, this is handled for you. Before you confirm a refund in the dashboard, Dodo shows the price refund, the tax refund, and the total refund to the customer. On the ledger side, the refund is recorded with a matching tax reversal entry, and because Dodo is the legal seller, the tax filing adjustment is part of the service. The customer's refund receipt also shows the taxable amount and the tax amount of the refund.

## How Partial Refunds Affect Chargeback Risk

A partial refund is one of the best tools you have for preventing chargebacks, but it can also backfire if you use it carelessly.

On the positive side, a refund resolved directly with the customer never touches your dispute rate. A chargeback does, and on Dodo each dispute carries a $30 fee on top of the reversed funds. Card networks run monitoring programs that flag merchants whose dispute ratio climbs too high, and repeated flags can end with higher costs or the loss of card acceptance. Every customer you satisfy with a quick partial refund is one fewer potential entry in that ratio. Our guide to [chargeback prevention for SaaS](https://dodopayments.com/blogs/chargeback-prevention-saas) covers the broader playbook.

The risk is that a customer who wanted a full refund and received a partial one may still be unhappy enough to file a dispute for the remainder. In that case you have refunded part of the money and you may still face a chargeback on the rest. A few habits reduce that risk:

- **Explain the calculation.** Tell the customer exactly how you arrived at the amount, for example "14 unused days of the Pro plan at $3.30 per day."
- **Act fast.** A partial refund issued within hours lands very differently from one issued after a week of back-and-forth.
- **Record the reason.** A clear refund reason on the transaction is useful evidence if a dispute is filed later, because it shows you engaged in good faith and returned money.
- **Do not make customers fight for it.** If you would eventually give a full refund after enough pushback, give it now.

If a dispute does land after a partial refund, the refund record itself becomes part of your response. It shows the issuer that you already compensated the customer for the portion they did not receive. For more on how disputes work when a Merchant of Record handles them, see our guide to [Merchant of Record chargeback handling](https://dodopayments.com/blogs/merchant-of-record-chargebacks), and for a lean operating process, read [how solo founders handle refunds and chargebacks](https://dodopayments.com/blogs/handle-refunds-chargebacks-solo-founder).

## How to Issue a Partial Refund in Dodo Payments

Dodo Payments supports full and partial refunds from both the dashboard and the API. The refund goes to the original payment method, and Dodo emails the customer a receipt when it succeeds. Full details are in the [Dodo refunds documentation](https://docs.dodopayments.com/features/transactions/refunds).

### Refund rules to know first

Before you start, check that the payment meets Dodo's refund rules:

- The payment must have succeeded.
- The refund must be initiated within the refund window, which is 30 days from the payment date by default.
- The refund, together with any earlier refunds on the payment, cannot exceed the amount paid.
- Only one refund per payment can be in progress at a time, so a `pending` or `review` refund must finish before you start another.
- Your Dodo balance must cover the refund amount, since refunds are paid from your wallet balance rather than from the original payment.

### Issuing a partial refund from the dashboard

1. Open the payment from Transactions to reach the Payment Details page.
2. Click **Initiate Refund** and choose **Partial refund**.
3. Enter the amount to refund for each item. The dashboard shows each item's refundable amount and will not let you exceed the original payment.
4. Add a refund reason of at least 5 characters, such as "Downgraded mid-cycle, 14 unused days."
5. Review the price refund, tax refund, and total refund to the customer, then confirm.

Once the refund completes, you can download the refund invoice under Transactions, then Refunds, which keeps your bookkeeping clean. It sits alongside the original invoice rather than replacing it, a pattern explained in our guide to [how invoices and credit notes work together](https://dodopayments.com/blogs/what-is-an-invoice).

### Issuing a partial refund through the API

To refund from your backend, call `POST /refunds` with the `payment_id`. For a partial refund, pass an `items` array where each entry has an `item_id` (the product ID or add-on ID) and the `amount` to refund in the smallest currency unit, so 1500 means $15.00 for a USD payment. If you omit `items`, the payment is refunded in full. The endpoint reference is in the [Create Refund API docs](https://docs.dodopayments.com/api-reference/refunds/post-refunds).

Here is a partial refund using the Dodo Node SDK:

```ts
import DodoPayments from 'dodopayments';

const client = new DodoPayments({
  bearerToken: process.env['DODO_PAYMENTS_API_KEY'],
});

// Refund $15.00 of one product on a payment, keep the rest
const refund = await client.refunds.create({
  payment_id: 'pay_123',
  items: [{ item_id: 'pdt_123', amount: 1500 }],
  reason: 'Downgraded mid-cycle',
});

console.log(refund.refund_id, refund.status, refund.is_partial);
```

The response includes an `is_partial` field so your system can tell partial and full refunds apart without recomputing amounts. Each item also accepts a `tax_inclusive` flag, which defaults to `true`, to control whether the amount you pass already includes tax. Install the SDK by following the [Dodo Payments SDK guide](https://docs.dodopayments.com/developer-resources/dodo-payments-sdks).

### Listening for refund webhooks

Refunds are not always instant, so do not update your app's state on the API response alone. Subscribe to the `refund.succeeded` and `refund.failed` webhooks and act on those events, for example by reducing a customer's seat count or credit balance only once the refund has actually succeeded. Setup and signature verification are covered in the [Dodo webhooks documentation](https://docs.dodopayments.com/developer-resources/webhooks), and our guide to [webhooks for payment notifications](https://dodopayments.com/blogs/webhooks-payment-notifications) explains the event-driven pattern in more detail.

## FAQ

### Can you get a partial refund on a subscription?

Yes. A partial refund on a subscription usually covers the unused portion of the current billing period after a downgrade or cancellation, or a service credit for an outage. The subscription payment stays on record and only the agreed amount goes back to the customer's original payment method.

### How long does a partial refund take to show up?

Once the refund succeeds on the merchant's side, it is sent to the customer's original payment method. How quickly it appears on the customer's statement depends on their bank or card issuer and can take several business days.

### Can I issue more than one partial refund on the same payment?

Usually yes, as long as the total refunded never exceeds the original amount. On Dodo Payments, only one refund per payment can be in progress at a time, and each refund carries its own $1 fee, so combining adjustments into a single refund is cheaper.

### Is a partial refund better than offering store credit?

It depends on whether the customer is staying. Credit preserves revenue for customers who will keep paying, while a partial refund is safer for customers who are leaving, because unused credit they cannot spend can turn into a chargeback.

### Does a partial refund cancel the customer's access?

No, not automatically. A partial refund only returns money, so you decide in your own app whether access, seats, or credits should change, ideally by acting on the refund success webhook.

## Final Thoughts

A partial refund is the proportionate answer when a customer got some value but not all of it. Used well, it settles prorated downgrades, single bad items in a bundle, outages, and bad experiences without giving away revenue the customer actually used, and without pushing them toward a chargeback. The keys are a documented calculation, a fast response, a clear refund reason, and a tax adjustment that matches the price adjustment.

If you sell software, AI products, or digital goods globally, [Dodo Payments](https://dodopayments.com) handles the hard parts as your Merchant of Record: per-item partial refunds from the dashboard or API, proportional tax refunds shown before you confirm, refund webhooks, and tax compliance across the countries you sell into. Refunds cost $1 each with no monthly fees, and you can review every rate on the [Dodo Payments pricing page](https://dodopayments.com/pricing).
---
- [More Payments articles](https://dodopayments.com/blogs/category/payments)
- [All articles](https://dodopayments.com/blogs)