Skip to main content
POST
Refund a card payin

Authorizations

Authorization
string
header
required

Session JWT (from register/login) or API key (pk_...). X-API-Key: <token> is accepted as an alternative header.

Headers

X-OTP-Token
string

One-time-use OTP token (see the OTP guide). Only for session callers.

Path Parameters

payinID
string<uuid>
required

Body

application/json
idempotency_key
string
required
amount
string

Amount in the original local currency. Omit it for a full refund of the remaining refundable value.

kind
enum<string>

refund (default) returns a settled charge; void cancels one that has not settled yet.

Available options:
refund,
void
reason
string

Response

Replay of the same idempotency key — the SAME refund, with idempotency_hit.

refund_id
string<uuid>
payin_id
string<uuid>
account_id
string<uuid>
kind
enum<string>

chargeback is imposed by the issuer — it is booked automatically and may leave the balance negative.

Available options:
refund,
void,
chargeback
status
enum<string>
Available options:
pending,
completed,
failed
currency
string

Currency of the original payin.

local_amount
string
usdt_debited
string

Amount debited from the USDT balance. The fee and the FX spread of the original payin are NOT refunded.

requested_by
enum<string>
Available options:
account,
admin,
issuer
reason
string
failure_reason
string

Present when status is failed — the debit was reversed in full.

idempotency_key
string
idempotency_hit
boolean
reconciliation_required
boolean

Present while the refund is pending — the outcome is resolved by reconciliation and is never re-dispatched.

balance_after
string

Present in the payin_refunded webhook — the USDT balance after the movement (can be negative on a chargeback).

receipt_url
string
created_at
string<date-time>
updated_at
string<date-time>
Last modified on August 22, 2026