Now covering Google Play chargeback reviews

Every refund request gets answered before the deadline.

When a customer asks Apple or Google for their money back, the store gives you hours to respond with evidence — then decides. RefundHalt answers every single one for you, automatically, with real usage data.

Free to start · 2-minute setup · No SDK required

$0M+

refund value contested

0h

Apple response window

0%

requests answered in time

defense console · live

$0

saved in the last 30 days

0%

answered in window

0%

save rate

0

requests contested

3.7s

median response

Incoming refund requests

auto-pilot on

Thrift Scannerpro.yearly

Declined · 87 scans in 6 days

SAVED

Built on the official refund surfaces of both stores

App Store Server Notifications V2Send Consumption InformationGoogle Play RTDNorders.reviewrefundVoided Purchases APIStoreKit 2subscriptionsv2Orders API
App Store Server Notifications V2Send Consumption InformationGoogle Play RTDNorders.reviewrefundVoided Purchases APIStoreKit 2subscriptionsv2Orders API
App Store Server Notifications V2Send Consumption InformationGoogle Play RTDNorders.reviewrefundVoided Purchases APIStoreKit 2subscriptionsv2Orders API
App Store Server Notifications V2Send Consumption InformationGoogle Play RTDNorders.reviewrefundVoided Purchases APIStoreKit 2subscriptionsv2Orders API

HOW IT WORKS

Two pastes. Zero code. Full coverage.

No SDK, no server changes, no Google Cloud account. If you can copy and paste, you can be protected before your coffee cools.

01

Add your app

Tell us the bundle ID or package name. For Android we instantly provision a dedicated notification pipeline in our cloud — you never touch Google Cloud.

02

Paste two values in the store console

iOS: point App Store Server Notifications at your RefundHalt URL and upload your In-App Purchase key. Android: paste our topic name and invite our service account in Play Console.

03

We answer every refund request

Apple's CONSUMPTION_REQUEST gives you 12 hours. Google's chargeback review gives you 24. RefundHalt responds in seconds with consumption evidence — and logs the outcome.

THE FULL ARSENAL

Everything a refund needs to meet on its way out

RefundHalt is not a dashboard bolted onto a webhook. It is a complete decision engine wired into Apple's and Google's official refund machinery.

Automatic consumption responses

Apple CONSUMPTION_REQUEST answered within the 12-hour window with ConsumptionRequest V2 — delivery status, sample content, consumption percentage, refund preference. Never miss one again.

Google chargeback reviews

When Google asks for evidence on a chargeback, we respond within the 24-hour window with usage events, timestamps and IP addresses via orders.reviewrefund.

Granular decision rules

First-time refunder under $3? Grant it as goodwill. Heavy user on day 6? Decline with evidence. Repeat refunder? Always contest. You write the rules — or use our battle-tested defaults.

Approve, decline, or delegate

Run fully automatic, review each case in the dashboard, or delegate decisions to your own server via signed webhooks. A fallback fires before the deadline so you never forfeit by silence.

Evidence-grade usage data

Stream usage events through our API and refund responses carry real consumption data instead of time-based estimates. Purchases link to your user IDs automatically.

Cross-store analytics

Amount contested, amount saved, save rate, refund reasons, countries, products, repeat refunders — one ledger across the App Store and Google Play.

Outbound webhooks

Stripe-style signed webhooks for every event: request received, response sent, refund declined, money saved. Pipe it into Slack, your CRM, or your data warehouse.

Encrypted by default

Store credentials are sealed with AES-256-GCM envelope encryption and a rotatable key ring. Webhook deliveries are OIDC-verified. Your keys never leave the vault.

FOR DEVELOPERS

An API you'd build yourself — if you had a spare quarter

Everything the dashboard does is available over a clean REST API with API keys, filterable lists and signed webhooks. Usage ingestion is one POST.

# Stream usage events → refund responses carry real evidence
curl -X POST https://app.refundhalt.com/v1/apps/$APP_ID/ingest/usage \
  -H "Authorization: Bearer rh_live_..." \
  -H "Content-Type: application/json" \
  -d '{
    "events": [{
      "external_user_id": "user_8231",
      "event_type": "scan",
      "quantity": 3,
      "ip_address": "203.0.113.9",
      "country": "US"
    }]
  }'

# → {"accepted": 1, "app_users_created": 0}

THE SCOREBOARD

Know exactly what refunds cost you — and what we saved

Every request, response, and outcome lands in one ledger. Filter by app, platform, country, product, reason, or time.

$0

Saved this month

$0

Contested

0%

Save rate

0

Refund requests

Saved this month · 12 weeks

w1w6w12

Refund reasons

  • Unsatisfied with purchase41%
  • Unintended purchase27%
  • Chargeback14%
  • Fulfillment issue10%
  • Other8%

Top countries

  • US
    38%
  • GB
    17%
  • DE
    12%
  • BR
    9%
  • JP
    7%

PRICING

Pays for itself with one saved refund

Start free. Upgrade when the saved revenue makes the decision for you.

Indie

For your first app and your first save.

$0/month

  • 1 app (iOS or Android)
  • 50 refund responses / month
  • Automatic policy engine
  • 30-day analytics history
  • Community support
Most popular

Pro

For serious apps that refuse to leak revenue.

$29/month

  • 5 apps across both stores
  • Unlimited refund responses
  • Custom rules & manual review
  • Usage ingestion API
  • Outbound webhooks
  • 1-year analytics history
  • Email support

Scale

For portfolios and studios that live on IAP.

$99/month

  • Unlimited apps
  • Unlimited everything
  • Delegate mode (your server decides)
  • Priority processing
  • Unlimited analytics history
  • Slack support & onboarding

All plans include both platforms, encrypted credential storage, and the deadline-safety fallback. Prices exclude VAT.

QUESTIONS

Frequently asked questions

On iOS, Apple sends a CONSUMPTION_REQUEST notification and waits up to 12 hours for consumption evidence before deciding. On Android, Google sends a chargeback review request with a 24-hour window. RefundHalt receives these, matches the buyer, computes consumption from real usage (or time-based estimates), applies your policy, and submits the response — usually within seconds.
No. RefundHalt works entirely server-side against the stores' official APIs. Setup is pasting a webhook URL (iOS) or a topic name and a service-account email (Android) into the consoles you already use. Optionally, you can stream usage events for evidence-grade responses.
Apple and Google make the final call — nobody can promise a specific outcome. What RefundHalt guarantees is that your side of the case is always presented: with consent, delivery status, usage evidence and your preference, inside the deadline. Developers who respond consistently report the majority of contested refunds being declined.
For orders placed after August 3, 2026, Google shifts the cost of lost chargebacks to developers — you lose the purchase price plus fees. Google also introduced a review API where you get 24 hours to submit evidence. RefundHalt automates exactly that.
Instead of deciding automatically, RefundHalt sends your server a signed webhook with the full case file. Your system replies with grant, decline, or no preference through the API. If you don't answer in time, your configured fallback fires before the deadline — you can never lose by silence.
Credentials are encrypted at rest with AES-256-GCM envelope encryption under a rotatable key ring, bound to their owning record. Apple notifications are verified against Apple's root certificates; Google deliveries are OIDC-verified. We never ask for your developer account password.

The next refund request is already on its way.

Set up RefundHalt in the time it takes to read another support email about a refund you didn't get to contest.