Skip to content

Frequently Asked Questions ​

Payments ​

What cryptocurrencies do you support? ​

TokenCashFlow supports a wide range of tokens across many blockchains (EVM chains, Solana, Bitcoin, Cosmos, Aptos, Sui, Cardano, Tezos and more). The full list of active tokens is managed by the platform operator and may expand over time. You can see and enable specific tokens in Dashboard → Payment Settings (an empty selection means all active tokens).

Does a payment expire? ​

Only the selection window expires — not the payment itself. Once the payer confirms a token choice, a countdown starts (per-chain payment_expiry_minutes, typically 30–60 minutes). If it expires before the required funds are received:

  • Status becomes expired_selection
  • The payer can return to the payment page at any time and reselect (the same token if partially paid) at the current market rate
  • A new countdown starts on reselection

What happens if the payer sends less than required? ​

The payment enters partially_paid status. The payer can send the remaining amount to the same wallet address before the selection window expires.

If the window (selection_expires_at) expires while the payment is partially paid:

  • Status becomes expired_selection
  • The payer must reselect — and is required to continue with the same token
  • The remaining amount is recalculated at the current rate; previously received funds count toward the total
  • If the payment ultimately settles as expired_partial, you are credited proportionally to what was actually received

What happens if the payer sends too much? ​

The payment proceeds normally (confirming → completed). Settlement is computed from the payment's recorded amounts, not the overpayment. Instruct your customers to send the exact amount shown on the payment page.

When is the exchange rate locked? ​

The rate locks when the payer confirms their token selection on the payment page. Stablecoins are always locked at 1.0. The exact crypto amount the payer must send is calculated at that moment.

Rate freshness is validated before locking — if the rate is older than 30 seconds the lock is rejected (RATE_STALE) and the payer must try again.

If the selection window expires and the payer reselects, a new rate is applied to the remaining amount. Previously received funds count toward the total; only the remaining gap is recalculated.

Can I create payments in currencies other than USD? ​

No. All payment amounts are denominated in USD. The crypto equivalent is calculated at lock time using the current exchange rate.

Account & KYC ​

Can I create payments without KYC? ​

No. At least Basic KYC is required to create payments, generate API keys, and request withdrawals. You can register an account and explore the dashboard without KYC, but cannot accept payments or withdraw funds.

What is the difference between Basic and Advanced KYC? ​

FeatureBasic KYCAdvanced KYC
Create payments✓✓
Manual withdrawal✓ (≤ $50,000/day rolling, default)✓ (no daily limit)
API key creation✓✓

Advanced KYC requires additional documentation on top of the government ID from Basic KYC. Limits are defaults and may be adjusted by the platform operator.

Webhooks ​

What if my webhook endpoint is down? ​

TokenCashFlow retries failed webhook deliveries up to 10 times with exponential backoff (30s up to 24h — roughly 2 days of coverage). You can view the delivery status, attempts, and response logs in Dashboard → Webhooks → Delivery History, and re-queue a failed delivery for immediate retry.

After all retries are exhausted the delivery is marked permanently_failed and no further attempts are made automatically. You can still retrieve payment status via GET /v1/payments/{payment_id}.

Can I receive a duplicate webhook? ​

In rare network-partition scenarios, a delivery might be retried after receiving a successful 2xx response. Always treat webhooks as at-least-once delivery and use data.payment_id + event (+ timestamp) as a deduplication key.

Funds & Settlement ​

How quickly are funds credited after a payment completes? ​

Funds are credited to your TokenCashFlow balance once the sweep of the payment wallet completes (moving funds to the platform/exchange). The time varies by chain and network congestion — typically seconds to minutes after the required block confirmations.

What is the minimum withdrawal amount? ​

The default minimum is $10.00 USDT (configurable by the platform operator). You can view the current minimum per chain via GET /v1/withdrawals/fee-estimate?chain_id=... or in Dashboard → Withdrawals.

How do I test without sending real funds? ​

TokenCashFlow does not currently support testnet chains. For integration testing:

  • Use POST /v1/webhooks/test to validate your webhook handler end-to-end (it sends a signed synthetic payment.completed event)
  • Create a small real payment (e.g. the minimum amount in a low-fee token)
  • Use a staging environment if your platform operator has one configured

Technical ​

Is there an OpenAPI / Swagger specification? ​

Swagger UI is available at https://api.tokencashflow.com/docs in development/staging environments. For production API reference, see the API Reference in this documentation.

Are the amounts in API responses numbers? ​

Decimal amounts are returned as JSON strings (e.g. "amount_usd": "150.00") to preserve precision. Parse them with your language's decimal type rather than floating point.

Are there SDKs available? ​

Official SDKs are planned. Until then, the API is a straightforward REST API that any HTTP library can consume. See the Quickstart Guide for cURL and language-agnostic examples.

TokenCashFlow Documentation