Skip to content

Receiving Funds ​

How settlement works ​

TokenCashFlow settles every payment in USDT. When a payment completes:

  1. The received crypto is swept from the temporary payment wallet to the platform (via the configured exchange where applicable)
  2. The settlement engine computes fees and writes a ledger credit to your account balance
  3. You withdraw manually at any time — withdrawals are processed in USDT to a wallet address you configure per chain

The fee_payer setting (merchant or payer absorbs fees) is snapshotted at payment creation time. Changing the setting after a payment is created does not affect that payment — only future payments.

Fees overview ​

Fees are deducted before crediting your account. The exact percentages are set by the platform operator.

Service fee ​

Applied to every payment (default: 0.5% of amount_usd).

Conversion fee ​

Applied to every payment since all payments settle in USDT (defaults):

Payer's cryptoDefault fee
Stablecoin (USDT on any chain)1.0% of amount_usd
Any other crypto2.0% of amount_usd

Fee payer option ​

You choose who absorbs the fees in Dashboard → Payment Settings (or via PUT /v1/payments/settings):

  • Merchant pays (fee_payer: "user", default): fees are deducted from the settled amount — net = amount_usd − service_fee − conversion_fee
  • Payer pays (fee_payer: "payer"): the required crypto amount shown to the payer is increased to cover the fees; you receive the full amount_usd

Withdrawal fee ​

A per-chain fee configured by the platform operator, deducted from each withdrawal. Check the current fee for a chain via GET /v1/withdrawals/fee-estimate?chain_id=... or in Dashboard → Withdrawals.

Account balance ​

Your USDT balance is ledger-derived:

  • balance_usd — total credits minus debits
  • reserved_usd — amounts locked by withdrawal requests awaiting admin approval
  • available_usd — what you can withdraw right now

Query it at any time: GET /v1/withdrawals/balance.

Withdrawing funds ​

Withdrawals are currently manual, USDT-only, and processed through the platform's configured exchange:

  1. Add a wallet address for the target chain (Dashboard → Withdrawals → Wallets). Chains available for withdrawal are shown in Dashboard → Withdrawals, or via GET /v1/withdrawals/chains.
  2. Requests start in pending_approval and must be approved by the admin team; the on-chain withdrawal is then processed and monitored to completion.
  3. If your account has 2FA enabled, you must include a valid totp_code with the withdrawal request.
  4. Each request must be at least the minimum withdrawal amount (default: $10.00) and above the per-chain withdrawal fee.
  5. If you hold Basic KYC, a rolling 24-hour withdrawal limit applies (default: $50,000/day). Advanced KYC removes the daily limit.

You receive withdrawal.completed / withdrawal.failed webhooks when the on-chain withdrawal finalises.

Address validation. Invalid addresses are rejected when you submit withdrawal requests. Always double-check the destination — on-chain transfers are irreversible.

Settlement on partial expiry ​

If a payment settles after its selection window expired while only partially funded (expired_partial), you are credited proportionally to the amount actually received, rather than the full amount_usd.

TokenCashFlow Documentation