Frequently Asked Questions
Payments
What cryptocurrencies do you support?
TokenCashFlow supports a wide range of tokens across 30+ blockchains, including Ethereum, Polygon, BSC, Solana, Aptos, Sui, Bitcoin, XRP, 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 → Enabled Tokens.
How long does a payment stay valid?
Payments never expire. Once created, a payment stays open until it is completed, blacklisted, or fails.
Only the chain selection window expires. When a payer confirms their token choice, a countdown starts — this is configured per chain (chain.payment_expiry_minutes, typically 30–60 minutes). If the countdown expires before a transaction is detected:
- Status becomes
EXPIRED_SELECTION - The payer can return to the payment page at any time and reselect a token 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 chain selection window expires.
If the selection window (selection_expires_at) expires while the payment is partially paid:
- Status becomes
EXPIRED_SELECTION - The payer can return to the payment page and reselect a token at the current market rate
- The remaining USD amount is recalculated based on what has already been received; only the gap is required
- Payments are accepted until the total reaches or exceeds the required amount
Partially paid payments are never permanently closed by expiry. The payer can always complete them. You are only credited after the payment reaches COMPLETED.
What happens if the payer sends too much?
The excess is non-refundable. The payment processes normally for the original amount_usd. The payment page informs the payer that overpayments are non-refundable before they confirm.
You are credited for the original amount_usd only, not the overpaid amount.
When is the exchange rate locked?
The rate is locked when the payer clicks "Confirm and Pay" on the payment page. 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 and the payer must try again.
If the chain selection window expires and the payer reselects, a new rate is applied to the remaining USD 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 and generate API keys. 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?
| Feature | Basic KYC | Advanced KYC |
|---|---|---|
| Create payments | ✓ | ✓ |
| Manual withdrawal | ✓ (≤ $50,000/day) | ✓ (unlimited) |
| Auto-withdraw | ✗ | ✓ |
| API key creation | ✓ | ✓ |
Advanced KYC requires proof of residence in addition to the government ID from Basic KYC.
Webhooks
What if my webhook endpoint is down?
TokenCashFlow retries failed webhook deliveries up to 10 times over approximately 24 hours with exponential backoff. You can view the delivery status and re-attempt in Dashboard → Webhooks → Delivery History.
After all retries are exhausted the delivery is marked permanently_failed and no further attempts are made. 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 account immediately after the sweep transaction (moving funds from the payment wallet to TokenCashFlow's main wallet) is confirmed on-chain. The time varies by chain and network congestion — typically seconds to minutes.
For auto-withdraw, the withdrawal transaction is initiated immediately after the sweep completes.
What is the minimum withdrawal amount?
The minimum withdrawal is $10.00 USDT (configurable by the platform operator). You can view the current minimum in Dashboard → Withdrawals.
How do I test without sending real funds?
TokenCashFlow does not currently support testnet chains. For integration testing, create a small real payment (e.g. $1.00) or use a staging environment if your platform operator has one configured.
Technical
Is there an OpenAPI / Swagger specification?
A full 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.
What HTTP methods does the API use?
POST— create resourcesGET— read resourcesPUT— create or update (upsert) configuration resourcesDELETE— remove resources (e.g. revoke API key)PATCH— partial updates (where applicable)
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.

