Skip to main content

Three separate balances

Your embedded TRON wallet holds USDT and TRX on chain. Your card account holds spendable USD credit for issuing and funding cards. Each card has its own balance. Moving funds into the card account does not automatically top up a card. The Plane account wallet is available through your signed-in account on your devices. Plane stores its private key encrypted on the server and signs wallet transfers on your behalf. There is no separate wallet password or backup file. The Sandbox wallet is created automatically on Nile testnet when you join a workspace; existing members receive it when they first open Wallet. A separate Live wallet is created only after verification is approved, and its Mainnet address and transfers remain unavailable until Live wallet service is activated. Sending from the Live wallet requires a recent authenticator confirmation only when two-factor authentication is enabled. Sandbox and Live do not share keys or funds. TRX pays activation and network fees.

Card account fee

Enter a whole-dollar deposit nominal from 10 USD: 10, 11, 12 and so on, or the issuer’s higher current minimum. The issuer deducts 1% of this nominal, and the quote shows the actual amount you receive. The total customer fee remains 1.5% of that credit, rounded upward to cents, and already includes the issuer deduction. For a 100 USD nominal, you receive 99 USD; the total fee is 1.49 USD and your Plane wallet debit is 100.49 USDT, plus network fees in TRX. For a 10 USD nominal, you receive 9.90 USD and pay 10.05 USDT plus TRX. Existing invoices retain their original pricing. After funding the card account, you can top up an existing card from 5 USD without an additional fee. The card-account deposit minimum remains 10 USD. The issuer may return a unique fractional USDT amount. Plane sends that exact payAmount without rounding and accounts for the full customer fee. Review creditAmount, fee and totalDebit before confirming. Keep enough USDT for totalDebit and enough TRX for network fees. GasFree and automatic energy rental are not enabled.

Create and pay an invoice

API access is available only in Live after approved verification. Use funding:write for quotes and creation, and balance:read for invoice status.
  1. Call POST /api/v1/card-account/quote with { "amount": "100.00" }.
  2. Review depositAmount: "100.00", creditAmount: "99.00", fee: "1.49" and totalDebit: "100.49".
  3. Call POST /api/v1/card-account/invoices with the same amount, an active Plane walletId in the workspace, and a persistent Idempotency-Key. Console requests default to the signed-in user’s wallet; API keys must supply walletId.
  4. In the signed-in Plane console, select the bound wallet and confirm payment before expiresAt. Live transfers require recent authenticator confirmation when two-factor authentication is enabled. Do not pay an invoice externally: that bypasses the wallet fee reservation and requires manual reconciliation.
  5. Poll GET /api/v1/card-account/invoices/{id} or consume funding.completed.
The issuer payment goes directly from the selected Plane wallet to the invoice address. Card-account credit requires both a confirmed wallet transfer and the matching issuer credit record. A transaction ID supplied by a client is never proof of payment. The displayed wallet balance excludes fees already charged, even while those fees await collection on chain.

Retry and expiry

One unresolved invoice is allowed per workspace and environment. Retrying the same idempotency key returns the same intent. A timeout during invoice creation moves it to manual_review; do not create another invoice or send money without a confirmed payment address. The server never repeats an ambiguous invoice creation automatically. Do not pay an expired invoice. If the payment or network result is unknown, check its existing transaction and invoice instead of sending again. Contact support for a payment that requires review.

Sandbox

Use the Sandbox console to try the funding flow without a real payment. Its Nile test wallet is available before verification. Public API access and API keys are not available in Sandbox. The legacy funding/address TON endpoint is retired. Use card-account invoices for new deposits.