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

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

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:

  • Minimum: $0.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

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