Introduction
The iCryptoNow API lets your platform accept stablecoin deposits and send payouts. It is a JSON over HTTPS API, and every request is signed with your API key.
How an integration works
- Create a deposit address for each player with
POST /v1/addresses. Show it to the player. The same player always gets the same address. - Receive webhooks. When the player pays, we send
deposit.detected, thendeposit.confirmedonce it is final. Credit the player ondeposit.confirmed. See Webhooks. - Send payouts with
POST /v1/payouts. Track them by webhook or by polling.
Base URL
Your base URL, API key id (ak_…) and secret are issued when your merchant account is created. The examples use these environment variables:
ICN_BASE_URL=... # base URL from onboarding ICN_KEY_ID=ak_... # API key id ICN_SECRET=... # API secret (keep it server-side)
Requests are only accepted from the IP addresses registered for your key. See Authentication.
Amounts
All amounts are strings holding an integer in the token's smallest unit, never decimals. For example, with a 6-decimal token, "50000000" is 50 USDT. Decimals differ by network (USDT on BSC uses 18), so always use the decimals field that responses and webhooks include.
Networks and assets
Use these chain ids in requests. Assets are written as chain:TOKEN, for example tron:USDT. Which assets are enabled depends on your account.
| Network | Chain id | Tokens |
|---|---|---|
tron | USDT | |
bsc | USDT | |
eth | USDT, USDC | |
arbitrum | USDT, USDC | |
base | USDT, USDC | |
polygon | USDT, USDC | |
solana | USDT, USDC |
Request ids
Every response carries an X-Request-Id header. Include it when you contact support about a request.