Documentation Index
Fetch the complete documentation index at: https://docs.privataswap.com/llms.txt
Use this file to discover all available pages before exploring further.
Two refund modes
| Mode | Providers | Behaviour |
|---|---|---|
programmatic | Exolix, ChangeNOW, FixedFloat, SimpleSwap, Godex | We call the provider API on your behalf. Resolves within refund_window_hours. |
ticket | Trocador and 22 others | Provider opens an internal ticket. SLA refund_sla_hours (24-72 h typical). |
GET /partner/v1/providers/refund-capability.
We refresh this monthly.
Per-order capability
Every/order/create response carries:
refund_required to choose your UX:
programmatic→ show “Refund now” button when the order hitsrefund_required.ticket→ show “Refund requested, takes up to 72 h. Provider: .” Don’t show a button.
Setting partner preferences at order creation
| Field | Effect |
|---|---|
default | What we do if you don’t call /refund-action within the window. |
fallback_if_refund_address_missing | If user didn’t provide a refund_address. Default manual_review. |
convert_to_stable_target | Required if you ever choose convert_to_stable. We never auto-convert without this. |
Confirming the refund
When you get theorder.refund_required event, call:
refund_window_hours. Past the window: 409 REFUND_WINDOW_EXPIRED
and the server applies the default you set at order creation.
What happens after
Arefunded webhook event fires with tx_out_hash pointing at the refund
transaction. The order is terminal.
Edge cases
refund_capability=noneon a 6th-tier exotic provider — currently zero such providers, but the enum value reserves the slot for future. If you see it, the order can still be refunded via support ticket onpartners@privataswap.com.- Provider goes down mid-refund — we move the order to
manual_reviewand our ops team executes manually. You’ll getprovider_outage_affecting_partneron the ops events channel.