Model INR settlement flows with AMOTCX sandbox APIs.
A practical integration manual for sandbox API keys, rates, quotes, architecture, errors, security, webhook planning, and production review readiness.
Current API surface
/ratesLive sandbox endpoint
/quotesLive sandbox endpoint
/ordersComing Soon
Start with the sandbox
AMOTCX is an INR settlement platform for stablecoin workflows. The public developer API currently exposes sandbox rates and quotes so partners can build integrations before production settlement APIs are enabled.
Use cases
Wallets, brokers, OTC desks, Telegram bots, fintech products, and merchant tools can model USDT/USDC to INR settlement flows.
Integration flow
Create a workspace, generate a sandbox key, call Rates, create Quotes, handle errors, then request production access.
Sandbox vs production
Sandbox is live for Rates and Quotes only. Production keys and settlement APIs require AMOTCX approval.
Go-live checklist
Backend-only keys, retry handling, request IDs, compliance contact, support email, and reviewed payout UX.
How an integration fits together
Your backend
AMOTCX API
Sandbox engine
Your product UI
Client UI -> Your backend -> AMOTCX sandbox API
1. User requests an INR estimate
2. Backend calls GET /rates or POST /quotes
3. AMOTCX authenticates the sandbox key
4. Response includes data and X-Request-Id
5. Your backend returns a safe display model to the clientAPI keys and request security
Use sandbox keys from the Developer Portal. Send them as bearer tokens from your backend only.
Authorization: Bearer amx_sandbox_sk_xxxxxSandbox keys
Prefix: amx_sandbox_sk. Valid only for sandbox Rates and Quotes.
Production keys
Prefix: amx_live_sk. Key management is approval-gated; public production settlement APIs are not documented as live.
Best practices
Store in secret managers, rotate on exposure, never log raw keys, never ship keys in browser bundles.
Rate limits
Rates: 120/minute. Quotes: 60/minute. Authentication abuse controls also apply.
Objects and terms
Wallet balance
The user wallet balance exists in the AMOTCX app. External balance mutation APIs are not live.
Quotes
Sandbox quotes estimate INR output for an asset, network, amount, and payout method. They are non-binding.
Orders
Production order APIs are Coming Soon. Sandbox quotes do not create orders.
Deposits
Deposits are handled inside the AMOTCX product wallet today. Partner deposit APIs are Coming Soon.
Settlements
Production settlement operations remain controlled by AMOTCX until partner APIs are approved.
Webhooks
Webhook configuration exists in the portal; outbound delivery docs are marked Coming Soon.
Idempotency
Recommended for future order creation. Current Rates and Quotes are safe to retry with backoff.
Error handling
Use stable error codes, HTTP status, and requestId. Do not parse human messages.
Live sandbox endpoints
Base URL
https://app.amotcx.com/api/developers/ratesReturns sandbox USD/INR rate, supported assets, supported networks, and a request ID.
curl --fail-with-body "https://app.amotcx.com/api/developers/rates" \
-H "Authorization: Bearer $AMOTCX_API_KEY"{
"data": {
"environment": "sandbox",
"baseCurrency": "USD",
"quoteCurrency": "INR",
"rate": 98.7,
"ratePair": "USD_INR",
"source": "sandbox_fixed",
"supportedAssets": [
{ "asset": "USDT", "networks": ["trc20", "bep20", "erc20", "sol"] },
{ "asset": "USDC", "networks": ["base"] }
],
"generatedAt": "2026-06-27T00:00:00.000Z",
"disclaimer": "Sandbox rate for integration testing. It is not a live settlement quote."
},
"requestId": "req_..."
}Response codes: 200, 401, 429, 503.
/quotesCreates a five-minute non-binding sandbox quote. Required body: asset, network, amount, payoutMethod.
curl --fail-with-body -X POST "https://app.amotcx.com/api/developers/quotes" \
-H "Authorization: Bearer $AMOTCX_API_KEY" \
-H "Content-Type: application/json" \
-d '{"asset":"USDT","network":"trc20","amount":1000,"payoutMethod":"BANK"}'{
"data": {
"id": "quote_sandbox_...",
"environment": "sandbox",
"asset": "USDT",
"network": "trc20",
"cryptoAmount": 1000,
"payoutMethod": "BANK",
"rate": 98.7,
"ratePair": "USD_INR",
"feeInr": 0,
"receiveAmountInr": 98700,
"receiveCurrency": "INR",
"createdAt": "2026-06-27T00:00:00.000Z",
"expiresAt": "2026-06-27T00:05:00.000Z",
"binding": false,
"disclaimer": "Sandbox quote only. No funds are reserved or moved."
},
"requestId": "req_..."
}Validation: amount must be greater than 0 and no more than 1,000,000. payoutMethod must be BANK or UPI.
Response codes: 200, 400, 401, 429, 503.
Stable errors and recovery
{
"error": {
"code": "unsupported_asset_network",
"message": "Use USDT on TRC20, BEP20, ERC20 or Solana, or USDC on Base."
},
"requestId": "8f3c..."
}authentication_error401Meaning: The API key is missing, malformed, revoked, or not a valid sandbox key.
How to fix: Send `Authorization: Bearer <sandbox_key>` from your server. Rotate the key if it was exposed.
configuration_error503Meaning: AMOTCX developer authentication is temporarily unavailable.
How to fix: Retry later. If this continues, contact AMOTCX with the request ID.
invalid_request400Meaning: The request body is not valid JSON or required fields are missing.
How to fix: Send `Content-Type: application/json` and validate the request before sending.
unsupported_asset_network400Meaning: The asset and network combination is not supported by the sandbox quote API.
How to fix: Use USDT on trc20, bep20, erc20, or sol. Use USDC on base.
invalid_payout_method400Meaning: The payout method is not supported.
How to fix: Use `BANK` or `UPI`.
invalid_amount400Meaning: The amount is zero, negative, not a number, or above the sandbox maximum.
How to fix: Use a numeric amount greater than 0 and no more than 1,000,000.
rate_limit_exceeded429Meaning: The key or IP has sent too many requests in the current window.
How to fix: Back off, respect `Retry-After`, and add client-side retry jitter.
Event delivery model
Coming Soon
Webhook endpoint management exists in the developer portal, but production outbound webhook delivery is not documented as live yet.
{
"id": "evt_...",
"type": "sandbox.completed",
"createdAt": "2026-06-27T00:00:00.000Z",
"data": {
"sandboxRunId": "run_...",
"status": "completed"
}
}Planned verification will use a signing secret, timestamp tolerance, and replay protection. Local testing should use HTTPS tunnels and signature verification before acknowledging events.
Official SDK roadmap
Node.js
Planned. Use native fetch examples today.
Python
Planned. Use requests examples today.
PHP
Planned. Use cURL examples today.
Go
Planned. Use net/http examples today.
Java
Planned enterprise SDK section.
C#
Planned .NET SDK section.
Integration guides
Wallet integration
Show rate previews and quote estimates before sending users to AMOTCX wallet flows.
Exchange integration
Use sandbox quotes to model INR settlement estimates from an exchange backend.
Telegram bot integration
Call Rates and Quotes from the bot server; never put API keys in bot clients.
Broker integration
Generate backend quote previews and store request IDs for support handoff.
Merchant integration
Use Quotes as an estimate layer until production order APIs are approved.
OTC desk integration
Route quote checks through internal operator tools with audited secrets.
Fintech integration
Add compliance review, logging hygiene, and retry budgets before go-live.
Production-grade controls
Authentication
Bearer keys must be stored server-side and scoped to environment.
Rate limits
Respect Retry-After and apply exponential backoff with jitter.
IP whitelisting
Future production control. Not live today.
Replay protection
Required for future webhooks with signed timestamps.
Idempotency
Recommended for future order APIs. Current quote calls are non-binding.
Sensitive data
Avoid logging API keys, payout details, or raw compliance documents.
Testing environment
Sandbox endpoints are safe for integration tests. They authenticate real sandbox keys but do not move funds, create orders, or reserve balances.
Mock responses
Rates use a fixed sandbox USD/INR value. Quotes calculate deterministic INR output.
Limitations
No live settlement, payout, deposit, or production order creation through external APIs.
Migration
Submit production review after testing request handling, retries, errors, and support workflows.
Resetting data
Use the Developer Portal sandbox tools where available. More reset controls are planned.
Frequently asked questions
How do I create my first sandbox quote?
Generate a sandbox key in the Developer Portal, call GET /rates to confirm authentication, then POST /quotes with asset, network, amount, and payoutMethod.
Which external APIs are live today?
The public external developer contract currently includes GET /rates and POST /quotes under /api/developers. Other /api/developers routes power the first-party portal UI.
Are production settlement APIs live?
No public production settlement API is documented as live. Production access is approval-gated, and live order/deposit/settlement APIs are marked Coming Soon.
What is the sandbox base URL?
Use https://app.amotcx.com/api/developers. The app can override this with NEXT_PUBLIC_DEVELOPER_API_BASE_URL, but production docs default to the app.amotcx.com developer API path.
How do I create a sandbox API key?
Open the Developer Portal while signed in, create or initialize a workspace, then generate a sandbox key. The raw secret is shown once.
Can I use API keys in browser JavaScript?
No. API keys are bearer secrets and must stay on your backend. Browser, mobile, and desktop clients should call your server instead.
How do I rotate an API key?
Use the Developer Portal key rotation action. Rotation replaces the stored secret hash and returns the new raw secret once.
What happens when I revoke a key?
A revoked key can no longer authenticate. Requests with that secret return authentication_error.
What networks are supported for USDT quotes?
USDT quotes support trc20, bep20, erc20, and sol in the current sandbox quote implementation.
Why is Base listed as USDC only?
The current sandbox asset-network map lists USDC on base. USDT on Base is not part of the developer quote contract shown by GET /rates.
How long is a sandbox quote valid?
The Quotes API returns expiresAt five minutes after creation. The quote is non-binding and does not reserve funds.
Does a sandbox quote reserve funds?
No. The response includes binding: false and the disclaimer says no funds are reserved or moved.
Does the Quotes API create an order?
No. POST /quotes returns a quote_sandbox_* identifier only. It does not create an order or touch settlement tables.
How do deposits work in the product wallet?
Deposits are part of the AMOTCX app wallet experience, not the external developer API contract. Partner deposit APIs are not documented as live.
Are deposit APIs available to partners today?
No public partner deposit API is documented as live in this portal. Deposit lifecycle docs are included as architecture context only.
How are webhooks delivered?
Webhook endpoint management exists in the portal, but outbound webhook delivery is not documented as live for external production integrations.
Are webhooks live in production?
Not as a documented external production delivery contract. Webhook sections are clearly marked Coming Soon where delivery semantics are planned.
What webhook events are planned?
The codebase defines sandbox.created, sandbox.deposit_detected, sandbox.processing, sandbox.completed, and sandbox.failed event names for sandbox simulation context.
How should I verify webhook signatures?
Signature verification is planned. Do not rely on webhook signature examples until AMOTCX publishes the live delivery contract.
How do I test webhooks locally?
Today you can configure webhook endpoints in the portal. Full local delivery testing instructions are Coming Soon with outbound webhook delivery.
How do I retry failed requests?
Retry GET /rates and POST /quotes with exponential backoff and jitter. Respect Retry-After when the response is 429.
What is the request ID used for?
Every developer API response includes requestId and X-Request-Id. Store it in logs so AMOTCX can trace support issues.
How do I handle 429 responses?
Stop sending requests for the window, respect Retry-After: 60 when present, then retry with jitter.
What timeout should my server use?
Use a practical server timeout such as 10 seconds for sandbox calls and make retries bounded. Do not retry indefinitely.
Should I implement idempotency keys?
For current Rates and Quotes calls, idempotency keys are not required because they do not mutate financial state. They are recommended for future order APIs.
Are idempotency keys supported today?
No public idempotency-key header is documented for the current external Rates and Quotes APIs.
How do I move from sandbox to production?
Submit a production access request in the Developer Portal with use case, website, compliance contact, and expected monthly volume.
What does production review require?
The portal collects company/workspace details, website, support contact, use case, expected monthly volume, and compliance contact.
Can I whitelist IP addresses?
IP whitelisting is not documented as live. Treat it as a future production security control until AMOTCX enables it.
Is IP whitelisting live today?
No. The current code uses rate limits and API-key authentication for developer endpoints.
What SDKs are available?
No official SDK package is documented as released. Use the cURL, Node.js, Python, PHP, Go, or TypeScript examples directly today.
When will Node.js SDK be available?
The Node.js SDK section is a planned documentation placeholder. No release date is stated in the current docs.
Can I integrate from Python today?
Yes. Use HTTPS requests from your backend with the Authorization header. The docs include a requests example.
Can I integrate from PHP today?
Yes. Use server-side cURL or stream requests with the Authorization header. Do not expose the key to a browser.
Can I integrate from Go today?
Yes. Use net/http with a backend-held sandbox key and bounded timeouts.
What is the rate source in sandbox?
GET /rates returns source: sandbox_fixed and rate: 98.7 from the current developer constants.
Is the sandbox rate live market data?
No. The response disclaimer states it is a sandbox rate for integration testing and not a live settlement quote.
Can I reset sandbox data?
The portal includes sandbox simulation tooling, but this docs page does not document a public external reset API.
Can I simulate failed orders?
The first-party portal has sandbox run status simulation concepts. Public external order simulation APIs are not part of the live Rates/Quotes contract.
Can Telegram bots use AMOTCX APIs?
Yes, from the bot server only. The bot must never send AMOTCX API keys to Telegram clients or user devices.
Can brokers use AMOTCX APIs?
Yes, brokers can use sandbox Rates and Quotes to model INR estimates. Live settlement flows require production approval.
Can merchants use AMOTCX APIs?
Merchants can use sandbox quote estimates today. Live merchant settlement APIs are not documented as generally available.
Can exchanges use AMOTCX APIs?
Exchanges can integrate the sandbox endpoints for testing. Production access requires AMOTCX review and approval.
What security practices are required?
Keep keys server-side, rotate exposed keys, avoid logging secrets, store request IDs, and apply bounded retries.
Can I log request bodies?
For Rates and Quotes, log only what you need for debugging. Never log bearer keys or future sensitive payout/customer data.
Can I store customer payout details?
The current external Rates and Quotes APIs do not require customer payout details. Future production integrations should store only what compliance and operations require.
What response format do errors use?
Errors return an error object with code and message, plus requestId. Some 429 responses include Retry-After.
What currencies are returned?
Rates uses baseCurrency USD and quoteCurrency INR. Quotes returns receiveCurrency INR.
How do I contact support with an API issue?
Send the endpoint, timestamp, environment, HTTP status, and requestId. Do not send raw API keys.
How do I know if the API is healthy?
Call GET /rates with a valid sandbox key. A 200 response with requestId confirms sandbox authentication and API availability.
Documentation and API versions
Features: Expanded enterprise documentation portal, sandbox Rates and Quotes reference, SDK roadmap, and status page.
Breaking changes: No breaking changes.
Features: Developer portal, sandbox keys, usage tracking, and quote playground.
Breaking changes: Sandbox-only API keys required.
Features: Initial AMOTCX platform documentation.
Breaking changes: No public external API contract.
Current platform status
Current API version
Sandbox Developer API v1.5.
Sandbox status
Rates and Quotes are available.
Production status
Production partner APIs are approval-gated and not generally available.
Supported networks
USDT: TRC20, BEP20, ERC20, Solana. USDC: Base.
Last updated: June 27, 2026.