RefundHalt

API

Authentication and where to find the full endpoint reference.

Everything the dashboard does is available over a clean REST API at https://app.refundhalt.com. The complete, always-current endpoint reference lives at app.refundhalt.com/docs (OpenAPI).

Authentication

Create an API key in Dashboard → API keys and send it as a Bearer token. API keys work on every /v1 endpoint, exactly like dashboard sessions:

curl https://app.refundhalt.com/v1/apps \
  -H "Authorization: Bearer rh_live_..."

Real usage evidence

Refund responses carry much stronger evidence when they include the buyer's real usage. You host one small webhook and RefundHalt calls it the moment a refund case opens, so the numbers are always fresh. Reply within 10 seconds; if it is down we retry and fall back to an estimate, so a refund is never blocked. See Usage data for the request/reply contract and the one-line auth check.

Common endpoints

EndpointWhat it does
GET /v1/appsList your apps
GET /v1/apps/{id}/setupSetup guide values (webhook URL, topic, …)
PUT /v1/apps/{id}/policyUpdate refund policy & rules
GET /v1/apps/{id}/forwardsList notification forwards
POST /v1/apps/{id}/forwardsAdd a forward URL
GET /v1/refund-requestsThe refund-request ledger (filterable)
GET /v1/refundsRefund outcomes
GET /v1/analytics/overviewSaved revenue, save rate, totals

Errors always come back as {"error": {"code": "...", "message": "...", "details": …}}, and response shapes never change based on state — empty lists are empty lists, never a different object.

On this page