curl -X POST https://nano-gpt.com/api/transaction/create/btc \
  -H "x-api-key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"amount": 0.001}'
{
  "txId": "6Uwh14rFrKG9XnKDYTWKc4",
  "amount": 0.001,
  "status": "New",
  "createdAt": "2025-06-23T14:52:43.000Z",
  "paidAmountCrypto": 0,
  "address": "bc1q...",
  "remainingTime": 3600,
  "expiration": 1750693963,
  "paymentLink": "bitcoin:bc1q...?amount=0.001"
}

Overview

The BTCPayServer integration allows API users to programmatically generate deposit addresses for multiple cryptocurrencies. When a user sends crypto to the generated address, their NanoGPT account balance is automatically credited with the equivalent value.

Supported Cryptocurrencies

  • BTC (Bitcoin)
  • LTC (Litecoin)
  • XMR (Monero)
  • DOGE (Dogecoin)
  • DASH (Dash)
  • BCH (Bitcoin Cash) - via PromptCash integration
  • BAN (Banano) - via Nanswap integration
  • KAS (Kaspa)

Authentication

All endpoints require API key authentication using one of these methods:
# Method 1: Authorization header
curl -H "Authorization: Bearer YOUR_API_KEY"

# Method 2: x-api-key header  
curl -H "x-api-key: YOUR_API_KEY"

Create Crypto Deposit

Generate a deposit address for cryptocurrency deposits
ticker
string
required
Cryptocurrency ticker symbol. Supported values: btc, ltc, xmr, doge, dash, bch, ban, kas
amount
number
required
Amount of cryptocurrency to deposit. Must be between minimum and maximum limits.

Amount Limits

Each cryptocurrency has minimum and maximum deposit limits based on USD equivalent: Standard Limits (BTC, LTC, XMR, DOGE, DASH, BCH, BAN):
  • Minimum: $0.10 USD equivalent
  • Maximum: $500 USD equivalent
KAS Limits:
  • Minimum: $10 USD equivalent
  • Maximum: $500 USD equivalent
curl -X POST https://nano-gpt.com/api/transaction/create/btc \
  -H "x-api-key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"amount": 0.001}'
{
  "txId": "6Uwh14rFrKG9XnKDYTWKc4",
  "amount": 0.001,
  "status": "New",
  "createdAt": "2025-06-23T14:52:43.000Z",
  "paidAmountCrypto": 0,
  "address": "bc1q...",
  "remainingTime": 3600,
  "expiration": 1750693963,
  "paymentLink": "bitcoin:bc1q...?amount=0.001"
}

Response Fields

txId
string
Unique transaction identifier for tracking
amount
number
Requested deposit amount
status
string
Payment status (“New”, “Pending”, “Completed”, etc.)
createdAt
string
ISO timestamp of invoice creation
paidAmountCrypto
number
Amount paid so far (0 for new invoices)
address
string
Crypto deposit address to send payment to
remainingTime
number
Seconds until invoice expires
expiration
number
Unix timestamp of expiration
URI link for wallet apps
QRUrl
string
QR code URL for the payment address (if available)
amountCrypto
number
Amount in cryptocurrency (if available)
amountFiat
number
Equivalent USD value (if available)

Check Payment Limits

Get minimum and maximum deposit amounts for a cryptocurrency
ticker
string
required
Cryptocurrency ticker symbol
curl -H "x-api-key: YOUR_API_KEY" \
  https://nano-gpt.com/api/transaction/limits/btc
{
  "minimum": 0.00002,
  "maximum": 0.01,
  "fiatEquivalentMinimum": 0.10,
  "fiatEquivalentMaximum": 500.0
}

Error Handling

HTTP Status Codes

  • 200: Success
  • 400: Bad Request (invalid amount, unsupported ticker)
  • 401: Unauthorized (invalid or missing API key)
  • 429: Rate Limited
  • 500: Server Error (payment provider unavailable)

Common Errors

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
KAS (Kaspa) Special Considerations:
  • Higher minimum deposit requirement (10USDvs10 USD vs 0.10 for other cryptos)
  • Deposits are automatically credited upon blockchain confirmation
  • 1-hour expiration time for payment invoices