Get started

Test mode

Test mode is the same gateway on test networks: real blocks, real confirmations, real webhooks, worthless coins. Build and test the whole flow before you touch live money.

Test keys

A key starting with axp_test_ works only in test mode: it creates test invoices, sees only test invoices and only test networks. Test and live have separate address pools, and every webhook says which mode it belongs to (mode: "test"). Nothing you do in test mode can affect live payments.

Create a test key in the dashboard: Developers → New key. Test mode is open right after you confirm your email, without a card or a business form.

Test networks

Network IDChainTest tokenConfirmations
tron-nileTRON Nile testnetUSDT TXYZopYRdj2D9XRtbG411XZZ3kM5VkAeBf, 6 decimals19 blocks, about 1 minute
bsc-testnetBNB Smart Chain testnetUSDT 0xc2E6cD2e478ceFd3aD0d9ccfF21e7BC497d9B4C1, 6 decimals15 blocks, about 10 seconds
base-sepoliaBase SepoliaUSDC 0x036CbD53842c5426634e7929541eC2318f3dCF7e, 6 decimals10 blocks, about 20 seconds
arbitrum-sepoliaArbitrum SepoliaUSDC 0x75faf114eafb1BDbe2F0316DF893fd58CE46AA4d, 6 decimals40 blocks, about 10 seconds
polygon-amoyPolygon AmoyUSDC 0x41E94Eb019C0762f9Bfcf9Fb1E58725BfB0e7582, 6 decimals15 blocks, about 30 seconds
ton-testnetTON testnetTON (no official test USDT)2 masterchain blocks, a few seconds

Live USDT on BSC has 18 decimals, the test token has 6. Always read decimals from the invoice or from GET /v1/assets, never hard-code it.

Simulated payments

You do not need test coins to see the whole flow. A test invoice page has the buttons Simulate: payment, underpayment, late payment, overpayment. A simulated transfer goes through the same pipeline as a real one: found, confirmations, status change and webhooks (invoice.payment_detected, then invoice.paid and the rest) — in about six seconds. Its hash starts with sim_ and has no explorer link.

Simulation exists only for test invoices; a live invoice answers SIMULATION_TEST_ONLY. The same buttons are available through the API: POST /v1/checkout/{id}/simulate with {"kind":"paid"} (paid | partial | late | over).

Getting test coins

  • TRON Nile: the official Nile faucet at nileex.io gives test TRX and test USDT. Any TRON wallet works: TronLink has a Nile network switch.
  • BSC testnet: get tBNB for gas from the BNB Chain faucet. There is no official test USDT on BSC: ask us in the pilot chat and we send you some.
  • Base Sepolia, Arbitrum Sepolia, Polygon Amoy: test USDC from the Circle faucet; ETH or POL for gas from any public faucet of that testnet.
  • TON testnet: test TON from the Telegram bot @testgiver_ton_bot; Tonkeeper has a testnet switch in its developer settings. Put the invoice comment (AX-…) into the transfer.

End-to-end test

  1. Create an invoice with your test key.
  2. Open hosted_url, pick USDT on Nile, accept the terms.
  3. Send the exact amount from your test wallet to the address on the page.
  4. Watch the page go "found" then "paid" (about a minute on Nile), and check that your webhook endpoint got invoice.payment_detected and invoice.paid with a valid signature.
  5. Repeat with an underpayment, an overpayment and an expired invoice to see partially_paid, paid_overpaid and expired.
curl
# 1. create
curl https://pay.axiomis.app/api/v1/invoices -H "Authorization: Bearer $AXIOMISPAY_TEST_KEY" \
  -H "Content-Type: application/json" \
  -d '{"amount_usd_cents":100,"external_order_id":"test-1","customer_ref":"me"}'

# 4. check
curl https://pay.axiomis.app/api/v1/invoices/inv_… -H "Authorization: Bearer $AXIOMISPAY_TEST_KEY"

Webhooks on localhost

We deliver webhooks only to public HTTPS URLs. For local development use a tunnel such as cloudflared tunnel or ngrok, or test your handler offline with signWebhook() from the SDK.

Test mode · Axiomis Pay Docs