Skip to main content

Overview

NanoGPT supports multiple deposit methods (crypto, stablecoins, and cards). This page documents the public endpoints you can use to:
  • Create a deposit payment intent
  • Check deposit limits
  • Track deposit status (polling or SSE)
Deposits are credited automatically after payment confirmation.

Supported Payment Methods

Limits vary by method and can change. Use GET /api/transaction/limits/{ticker} for the authoritative min/max.

Crypto (invoice / address)

Stablecoins and multi-chain (Daimo Pay)

These methods settle as USDC and can be paid from multiple chains/wallets.

Fiat (card)

Nano (direct deposit)

Nano deposits use a direct-send flow to your assigned Nano deposit address (no invoice creation). See: Check Balance and Receive Nano.

Authentication

All /api/transaction/* endpoints require API key authentication using one of these methods:

Endpoint Summary

Pick the endpoint based on the payment method:
  • Crypto invoice / swap deposits: POST /api/transaction/create/{ticker}
  • Daimo Pay (multi-chain): POST /api/transaction/create/daimo/{ticker}
  • Card (Stripe): POST /api/transaction/create/usd
  • Limits: GET /api/transaction/limits/{ticker}
  • Status polling: GET /api/transaction/status/{ticker}/{txId}
  • Status SSE: GET /api/transaction/status/events?ticker={ticker}&txId={txId}
  • Nano (XNO): send to nanoDepositAddress (from Check Balance); optionally call Receive Nano

Create Crypto Deposit

Create an invoice / pay-in address for supported crypto tickers
string
required
Ticker symbol. Examples: btc, btc-ln, ltc, zec, bch, kas, vvv, zano, fusd
number
required
Amount of cryptocurrency to deposit. Must be between minimum and maximum limits.

Response Fields

string
Unique transaction identifier for tracking
string
Deposit address for sending crypto
number
Requested deposit amount
string
Payment status. Common values include: New, Pending, Processing, Paid, Completed, Expired, Failed
URI for wallet apps (e.g., bitcoin:address)
string
ISO timestamp of creation
string
ISO timestamp when address expires

Check Payment Limits

Get minimum and maximum deposit amounts for a payment method
string
required
Payment method ticker symbol (for example: btc, btc-ln, zec, usdc, sol, usd)

Create Daimo Payment

Create a multi-chain payment (USDC/USDT/ETH/SOL) via Daimo Pay
string
required
Daimo payment ticker. Common values: usdc, usdt, eth, sol
number
required
Amount to pay. This is typically treated as a USD/USDC amount (for example, 10 for about $10).

Create Card Deposit (Stripe)

Create a Stripe Checkout session for card deposits
number
required
Amount in the selected fiat currency (for example, 10).

Status Tracking

Most deposit methods can be tracked by polling a status endpoint:
Some methods use provider-specific IDs (for example Stripe session IDs). The create response usually returns the correct txId value to use. Example:

Real-time status (SSE)

Instead of polling, you can subscribe to Server-Sent Events:
Example:
The server may also return an x-poll-after header on status responses to indicate a recommended retry interval (seconds).

Transaction Lifecycle

Status values can vary slightly by payment method, but a typical lifecycle looks like: Notes:
  • BTC deposits can take longer to reach Completed due to on-chain settlement/confirmations.
  • Some providers may accept payment after an invoice expires; in those cases the deposit can still complete.

Payment Providers

NanoGPT uses different providers per ticker:
  • BTCPay: BTC, BTC-LN, LTC, LTC-MWEB, XMR, DOGE, DASH, ZEC
  • Prompt.Cash: BCH
  • Nanswap: BAN, KAS, TON, NEAR, EGLD, VVV
  • Zano proxy: ZANO, FUSD
  • Daimo Pay: USDC, USDT, ETH, SOL (multi-chain payments settling as USDC)
  • Stripe: card deposits (USD/EUR/GBP)
  • Native Nano: XNO direct deposits to your nanoDepositAddress

Pricing Endpoints

These endpoints are commonly used by deposit flows and checkout UIs:
  • GET /api/get-nano-price (NANO/USD pricing)
  • GET /api/get-fiat-prices (fiat FX rates)
Example:
Example responses:

Bonuses and Discounts

  • BTC-LN: Lightning deposits may include a bonus on the credited amount (if enabled).
  • XNO: Paying with Nano balance may include a usage discount (if enabled).
  • USDC via Daimo: USDC stablecoin deposits typically credit close to $1 per 1 USDC.

Error Handling

HTTP Status Codes

Common Error Messages

  • "No amount specified" - Missing amount in request body
  • "Invalid amount. Must be a positive number." - Amount validation failed
  • "Minimum amount is X" - Below minimum threshold
  • "Maximum amount is X" - Above maximum threshold
  • "Unsupported ticker" - Ticker not supported
  • "This payment method is currently not available" - Provider temporarily unavailable

Rate Limits

  • 10 requests per 10 minutes per IP address or API key
  • Rate limit applies to all deposit creation endpoints

Payment Flow

1

Create Invoice

Call /api/transaction/create/{ticker} with desired amount
2

Get Address

Extract address from response
3

Send Payment

User sends crypto to the provided address
4

Auto-Credit

Account balance automatically updated when payment confirms