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:Create Crypto Deposit
Generate a deposit address for cryptocurrency deposits
Cryptocurrency ticker symbol. Supported values:
btc
, ltc
, xmr
, doge
, dash
, bch
, ban
, kas
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
- Minimum: $10 USD equivalent
- Maximum: $500 USD equivalent
Response Fields
Unique transaction identifier for tracking
Requested deposit amount
Payment status (“New”, “Pending”, “Completed”, etc.)
ISO timestamp of invoice creation
Amount paid so far (0 for new invoices)
Crypto deposit address to send payment to
Seconds until invoice expires
Unix timestamp of expiration
URI link for wallet apps
QR code URL for the payment address (if available)
Amount in cryptocurrency (if available)
Equivalent USD value (if available)
Check Payment Limits
Get minimum and maximum deposit amounts for a cryptocurrency
Cryptocurrency ticker symbol
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
Amount Validation Errors
Amount Validation Errors
"No amount specified"
- Missing amount in request body"Minimum amount is X"
- Amount below minimum threshold"Maximum amount is X"
- Amount above maximum threshold
Authentication Errors
Authentication Errors
"Incorrect API key"
- Invalid authentication
Provider Errors
Provider Errors
"Unsupported ticker"
- Invalid cryptocurrency ticker"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 amount2
Get Address
Extract
address
from response3
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 (0.10 for other cryptos)
- Deposits are automatically credited upon blockchain confirmation
- 1-hour expiration time for payment invoices