Ad Booking Refunds and Cancellations: A Publisher's Guide
How to handle advertiser cancellations, full and partial refunds, make-goods and card disputes with Stripe, with a short policy and ready-to-send emails.
On this page
The cleanest way to handle ad cancellations is to set the rules before anyone books: free cancellation before approval, a clear refund rule before the start date, and extra days (a make-good) instead of a refund when the problem is on your side. When money does need to go back, issue a full or partial refund from your Stripe Dashboard, respond to disputes quickly, and keep proof that every ad actually ran.
Key takeaways
- Write cancellation rules for each stage of a booking: before approval, before the start date, while running, and after the end.
- Canceling an authorized but uncaptured payment costs nothing. Refunding a captured payment doesn't return Stripe's original processing fee.
- When the problem is yours, a make-good of extra days often works better than a refund.
- Resolve complaints quickly. A fair refund costs less than a dispute.
- Keep dated screenshots and impression and click data for every campaign.
Cancellation rules for each stage of a booking
A booking moves through four stages, and the money is in a different state at each one.
| Stage | Money status | Common policy | How to do it |
|---|---|---|---|
| Booked, awaiting approval | Card authorized, not charged | Cancel free | Cancel the uncaptured payment so the hold is released |
| Approved, not yet started | Charged | Full refund, refund minus a fee, or credit | Refund in Stripe |
| Running | Charged | Refund unused days, or no refund | Partial refund in Stripe |
| Finished | Charged | No refund unless delivery failed | Make-good or partial refund |
The first row is the strongest argument for taking payment as an authorization and charging only on approval. Stripe notes that cardholders can't dispute uncaptured authorizations, and a canceled authorization costs you nothing. Our guide to authorize-then-capture payments explains the flow.
How refunds work in Stripe
When advertisers pay into your own Stripe account, refunds come from that account. In the Stripe Dashboard, open Payments, find the payment, click the overflow menu, and choose Refund payment. A full refund is the default, and you can enter a smaller amount for a partial refund.
A few rules from Stripe's refund documentation are worth knowing:
- Fees: Canceling a payment before it's captured costs nothing, but Stripe's processing fees from the original transaction aren't returned when you refund.
- Partial refunds: You can issue more than one refund against a payment, but the total can't exceed the original charge.
- Destination: Refunds go back to the original payment method only.
- Balance: Refunds come out of your available Stripe balance. If it's too low, card refunds stay pending until the balance covers them.
- Timing: Customers typically see the credit about 5 to 10 business days later, depending on their bank. Refunds issued shortly after the charge may appear as a reversal instead, where the original charge simply disappears from the statement.
Partial refunds: a worked example
These numbers are an example only. An advertiser books 14 days at $20 per day, for a total of $280. After 5 days, their campaign ends early and they ask to stop.
- Pro-rata refund: 9 unused days × $20 = $180 refunded.
- Refund minus a 10% cancellation fee on unused days: $180 − $18 = $162 refunded.
- No refund, credit instead: $180 in credit toward a future booking.
Whichever you choose, put it in writing before the booking. Remember that Stripe's processing fee on the original $280 isn't returned, which is one reason some publishers keep a small cancellation fee.
Make-goods: extra days instead of a refund
A make-good compensates an advertiser with extra delivery, such as additional days, instead of money. It's the standard fix when the problem is on your side:
- your site was down or the ad didn't display,
- the wrong creative ran,
- the ad appeared in the wrong place.
Offer equivalent days at the end of the campaign, or the next open dates. If the campaign was time-sensitive, such as promoting an event that has already happened, extra days are worthless, so offer a partial refund instead.
Low clicks are not a delivery failure if the ad ran as agreed. You sold time on your site, not results. A few bonus days for a loyal advertiser can still be good business, but treat it as goodwill rather than an obligation.
Disputes and chargebacks: the basics
A dispute, often called a chargeback, happens when a cardholder asks their bank to reverse a payment. According to Stripe's guide on how disputes work:
- Stripe debits the disputed amount plus a dispute fee from your balance. Fees vary by country, and in most countries the fee for receiving a dispute isn't returned even if you win.
- If you counter the dispute, an additional dispute countered fee may apply, which Stripe returns if you win.
- You usually have 7 to 21 days to respond, depending on the card network. If you miss the deadline, you lose.
- You get one chance to submit evidence, so assemble everything first.
- While a dispute is open, you can't issue a refund outside the dispute process.
- The cardholder's bank decides the outcome, and the whole process can take two to three months.
For ad bookings, strong evidence usually includes the booking confirmation, the cancellation terms the advertiser saw before paying, your approval email, dated screenshots of the ad live on your site, the campaign's impression and click report, and your messages with the advertiser. Upload screenshots as files, because issuers don't follow links.
Sometimes accepting is the right call: when the claim is fair, or the amount is small compared with the time a response takes.
How to prevent most disputes
- Use a recognizable statement descriptor. Stripe recommends your website domain or business name so customers recognize the charge. Descriptors are limited to 5 to 22 characters.
- Show your cancellation policy before payment, and link it from your booking page and confirmation emails. Our advertising policy template includes a refund section you can adapt.
- Confirm every booking in writing, with the slot, dates, and price.
- Answer complaints fast. A customer who gets a prompt, fair answer rarely calls their bank.
- Refund in full when it's clearly fair. Stripe notes that customers can't dispute fully refunded payments, but they can dispute partially refunded ones, even for the full amount.
A short cancellation policy you can adapt
Cancellations and refunds
- Before we approve your ad: cancel any time. Your card is not charged.
- After approval, before the start date: [full refund / refund minus
X% / credit toward a future booking].
- After your ad goes live: unused days are [refunded / credited / not
refundable].
- If your ad doesn't display because of a problem on our side, we add
equivalent days to your campaign, or refund those days if you prefer.
- Refunds go back to the original card and usually appear within
5-10 business days, depending on your bank.
Email templates
Confirming a cancellation
Hi [Name], we've canceled your booking for [slot] on [dates]. Under our policy, we've refunded [amount] to your original card today. It usually appears within 5 to 10 business days, depending on your bank. Thanks for advertising with us, and we'd be glad to have you back.
Offering a make-good
Hi [Name], your ad didn't display on [date or dates] because of [short reason]. We're sorry about that. We've added [number] days to the end of your campaign, so it now runs until [new end date]. If extra days don't help, tell us and we'll refund those days instead.
Answering a complaint before it becomes a dispute
Hi [Name], thanks for letting us know. Your ad ran on [slot] from [start] to [end] and received [impressions] impressions and [clicks] clicks. A screenshot is attached. If something didn't match what you expected, reply here and we'll find a fair solution together.
Refunds when you sell through a booking tool
With Spreadiom, advertisers pay through Stripe Checkout directly into your own Stripe account, and Spreadiom never holds your money, so refunds are issued from your Stripe Dashboard like any other Stripe payment. If a slot requires approval, the card is only authorized at booking, and rejecting the booking releases the hold. The 5% platform fee applies only to completed, charged bookings, so a booking you reject before it's charged costs you nothing in fees.
FAQ
Do I have to refund an advertiser who cancels?
That depends on the cancellation policy the advertiser agreed to before paying, and on local consumer law where it applies. Many publishers cancel free before approval, refund fully or minus a fee before the start date, and refund only unused days, or nothing, once the ad is live. Whatever you choose, write it down, show it before payment, and apply it consistently.
Does Stripe return its fees when I refund a payment?
No. According to Stripe's documentation, the processing fees from the original transaction aren't returned when you refund a payment. Canceling a payment that was only authorized and never captured costs nothing, though. That's one reason to authorize the advertiser's card at booking and charge it only after you approve the ad, since rejected bookings then cost you nothing.
Can I refund only part of an ad booking?
Yes. In the Stripe Dashboard, enter a smaller amount than the full charge when you refund. You can issue more than one partial refund against a payment, as long as the total doesn't exceed the original charge. Be aware that a partially refunded payment can still be disputed, even for the full amount, so record what was agreed in writing.
What should I do if an advertiser files a chargeback?
Read the dispute reason in Stripe, then decide whether to accept or counter it before the deadline, which is usually 7 to 21 days. To counter, submit everything at once: the booking confirmation, the terms shown before payment, dated screenshots of the ad running, and the campaign report. You only get one submission, and the cardholder's bank makes the final decision.
What is a make-good in advertising?
A make-good is compensation in delivery rather than money. Usually it means extra days added to a campaign when an ad didn't run as agreed, for example because of a site outage or the wrong creative. It keeps the revenue and the relationship intact. When the campaign was time-sensitive and extra days would be useless, a partial refund is the better fix.
Sell ad space on your site — start free
Give every ad slot its own booking page. Advertisers pick dates, upload a banner and pay by card or PayPal — straight into your own account. No subscription; 5% only on completed bookings.