What can be refunded
QR, announced transfer, dedicated deposit account and collect payins
cannot be refunded through this path (
refund_not_supported): those
rails have no refund capability at the processor. POS charges are
refunded through the crypto rail with
POST /v1/pos/charges/{id}/refunds.
Lifecycle
Request a refund
1
Refund the full payin
Omit The response is
amount to refund everything that is left to refund:201 when the processor approves right away, 202 when
it is still in flight and 422 when it declines.2
Or refund part of it
Send You can request several partials on the same payin. When the sum exceeds
what is left to refund, we answer
amount in the payin currency (not in USDT). The debit is
computed proportionally to the value that payin brought in:422 refund_exceeds_payin without
touching your balance.3
Void instead of refunding (same day)
If the payin has not settled at the processor yet, If the payin can no longer be voided, the processor declines it and you
can request a regular refund.
kind: "void" voids
it instead of creating a refund. The effect on your balance is the same;
for the cardholder, a void usually shows up on their statement sooner.4
Check the status
Second factor
POST /v1/payins/{payinID}/refunds takes money out of your account,
so it requires a second factor when a person originates it with their
session (action payin_refund). If your organization has it enabled,
the first call answers 403 otp_required with a challenge_id: verify
the code and repeat the request with the challenge token.
API keys are exempt by design, same as everywhere else on the
platform: your backend integrates without friction.
History and filters
status (pending, completed, failed), kind (refund,
void, chargeback), payin_id, from/to and pagination.
How much of each payin is refunded
Every payin exposes its refund progress, and you can filter the payin list by it:
The payin does not change status: it stays
credited. Your
financial history is never rewritten; the refund is a new movement.
Chargebacks
When the card issuer imposes a chargeback, the money is already gone: it is neither your decision nor ours. In that case:- We debit the amount from your balance automatically, with
kind: "chargeback". - The debit is applied even if you have no balance: the account can go negative and that debt is netted against your next credits.
- You receive the
payin_refundedwebhook withkind: "chargeback"and, if the balance went negative, thebalance_afterfield.
What we debit across refunds and chargebacks on the same payin never
exceeds what that payin brought in. If a chargeback arrives after you
already refunded, the debit is capped to whatever was left — or lands at
zero with the reason recorded — so we never charge you the same money
twice.
The payin_refunded webhook
Emitted on every final state (completed or failed) and on
chargebacks. pending refunds do not emit: wait for the final state.
failure_reason; a chargeback that leaves the
account negative carries balance_after.
Receipt
Every refund has its PDF receipt with your organization’s branding and a public verification code:Errors
Full catalogue in Errors.
FAQ
Do I get the fee back when I refund?
Do I get the fee back when I refund?
No. The fee and the FX margin of the original payin are not refundable:
we debit the gross value the payin brought in and the house keeps what
it charged. This is the standard behaviour of the card industry.
I requested a refund and got a 202. Should I retry?
I requested a refund and got a 202. Should I retry?
Not with another key. A
202 means the refund may already have been
executed and we do not have confirmation yet. Retrying with a new key
would be a second real refund. Repeat the request with the same
idempotency_key (we return the same object) or wait for the
payin_refunded webhook.Which currency is debited?
Which currency is debited?
Always USDT, the currency the payin was credited in, even if your
account has a different default settlement asset for payins. We never
convert on your behalf: if you do not have enough USDT, we answer
insufficient_funds.Can I refund a payin from months ago?
Can I refund a payin from months ago?
As long as the payin is
credited and has refundable value left, yes on
our side. The real limit comes from the processor and the card scheme
rules (usually 180 days); past that window the refund is declined with
failed and the reserved amount returns to your balance untouched.What if a chargeback leaves my balance negative?
What if a chargeback leaves my balance negative?
The account is allowed to go negative for this reason only. The debt is
settled automatically against your next credits; meanwhile, operations
that move money out still require available balance.
Can my organization admin refund too?
Can my organization admin refund too?
Yes. The admin panel can originate the refund on any account of the
organization; it is audited with the admin who executed it and shows up
in your history with
requested_by: "admin".