RefundHalt

Introduction

What RefundHalt does and how it protects your revenue in about five minutes of setup.

What RefundHalt does

When a customer asks Apple or Google for their money back, the store gives you a short window to respond with evidence before it decides:

  • Apple sends a CONSUMPTION_REQUEST notification and waits 12 hours for consumption information (Send Consumption Information V2).
  • Google opens a chargeback review and waits 24 hours for a verdict (orders.reviewrefund).

Miss the window and the store decides without you — which usually means the refund goes through. RefundHalt receives those notifications, matches the buyer, applies your policy, and answers instantly and automatically. Every outcome lands in one cross-store ledger so you can see exactly how much revenue was saved.

How it works

  1. Connect your store. For iOS you upload an In-App Purchase key (encrypted with AES-256-GCM at rest) and point App Store Server Notifications V2 at your dedicated RefundHalt URL. For Android you invite our service account in Play Console and paste one generated topic name — no Google Cloud account needed.
  2. We listen. Refund requests arrive on your per-app webhook the moment they open.
  3. We answer. The decision engine evaluates your ordered rules, falls back to your default preference, attaches consumption evidence, and responds well inside the deadline. A deadline fallback guarantees silence never loses a case.
  4. You watch the ledger. Requests, outcomes, saved revenue, and analytics in one dashboard — plus signed webhooks to your own systems.

The two-minute setup

Everything is driven from the dashboard's per-app setup progression:

  1. Store integrationApple or Google.
  2. Notifications — point the store's notifications at RefundHalt, or keep RevenueCat / Adapty / Apphud primary and let them forward to us. Already using that URL for something else? Notification forwarding keeps it working.
  3. Refund policy — sane defaults are active from day one; tune them anytime.

No babysitting, by design

There is deliberately no manual review queue. Every request is answered automatically from your policy — instantly, 24/7, including the ones that arrive at 3 a.m. on a holiday. If you want per-case control, encode it as rules: they're evaluated in order and the first match wins.

On this page