API Documentation

The CryptoCheckout Pro API allows you to programmatically create cryptocurrency payment requests and check payment status. Integrate with any website, app, or platform.

API AccessAll Plans

API access is available on all plans. Free plan limited to 5 transactions/month. Upgrade to Pro for unlimited via your dashboard.

Base URL

https://cryptocheckoutpro.com/api

Authentication

All API requests require authentication using your API key. Include your API key in theX-API-Keyheader with every request.

Getting Your API Key

  1. Go to API Keys in your dashboard at cryptocheckoutpro.com/dashboard
  2. Click "Generate New Key"
  3. Copy and securely store your API key
  4. Never share or expose your API key publicly

Example Request

curl -X POST https://cryptocheckoutpro.com/api/create-payment \
  -H "Content-Type: application/json" \
  -H "X-API-Key: your_api_key_here" \
  -d '{
    "orderNumber": "ORDER-123",
    "amount": 99.99,
    "currency": "ETH",
    "network": "ethereum"
  }'

Create Payment

Create a new cryptocurrency payment request. The API will return a payment ID and wallet address for the customer to send funds to.

POST/api/create-payment

Request Body

ParameterTypeDescription
orderNumberreqstringYour unique order identifier
amountreqnumberPayment amount in USD
currencystringCryptocurrency: BTC, ETH, BNB, MATIC, USDC (default: USD)
networkstringNetwork: bitcoin, ethereum, bsc, polygon, base (default: ethereum)
customerEmailstringCustomer email for notifications

Example Request

curl -X POST https://cryptocheckoutpro.com/api/create-payment \
  -H "Content-Type: application/json" \
  -H "X-API-Key: your_api_key_here" \
  -d '{
    "orderNumber": "ORDER-12345",
    "amount": 150.00,
    "currency": "ETH",
    "network": "ethereum",
    "customerEmail": "customer@example.com"
  }'

Example Response

{
  "success": true,
  "paymentId": "a1b2c3d4e5f6...",
  "paymentUrl": "https://cryptocheckoutpro.com/payment/a1b2c3d4e5f6...",
  "status": "pending",
  "existing": false
}

Check Payment Status

Check the current status of a payment by its payment ID or your order ID.

GET/api/payment-status

Query Parameters

ParameterTypeDescription
paymentIdstringThe payment ID returned from create-payment
orderIdstringYour order ID (alternative to paymentId)

Example Request

curl -X GET "https://cryptocheckoutpro.com/api/payment-status?paymentId=pay_abc123xyz" \
  -H "X-API-Key: your_api_key_here"

Example Response

{
  "success": true,
  "payment": {
    "id": "pay_abc123xyz",
    "orderId": "ORDER-12345",
    "status": "confirmed",
    "amount": 150.00,
    "amountCrypto": 0.0543,
    "currency": "ETH",
    "network": "ethereum",
    "txHash": "0x8f7d3b2e1a...",
    "confirmations": 12,
    "confirmedAt": "2025-01-15T12:15:30Z"
  }
}

Payment Status Values

StatusDescription
pendingWaiting for customer to send payment
detectingTransaction detected, awaiting confirmations
confirmingCollecting blockchain confirmations
confirmedPayment confirmed and completed
expiredPayment window expired (30 minutes)

Webhooks

Configure a webhook URL in Settings in your dashboard to receive real-time notifications when payment status changes. We'll send a POST request to your endpoint.

Webhook Payload

{
  "event": "payment.confirmed",
  "timestamp": "2025-01-15T12:15:30Z",
  "data": {
    "paymentId": "pay_abc123xyz",
    "orderId": "ORDER-12345",
    "status": "confirmed",
    "amount": 150.00,
    "amountCrypto": 0.0543,
    "currency": "ETH",
    "network": "ethereum",
    "txHash": "0x8f7d3b2e1a...",
    "walletAddress": "0x742d35Cc6634C0532925a3b844Bc9e7595f..."
  }
}

Webhook Events

ParameterTypeDescription
payment.detectedeventTransaction detected on blockchain
payment.confirmingeventCollecting confirmations
payment.confirmedeventPayment fully confirmed
payment.expiredeventPayment window expired

Tip: Your webhook endpoint should respond with a 2xx status code within 10 seconds. Failed webhooks will be retried up to 3 times with exponential backoff.

Rate Limits

API rate limits are based on your plan. Exceeding these limits will result in a 429 response.

PlanReq/minReq/dayTx/month
Free101005
Pro6010,000Unlimited

Need higher limits? Contact us for custom plans.

Error Handling

All API errors return a consistent JSON response with an error code and message.

Error Response Format

{
  "success": false,
  "error": {
    "code": "INVALID_API_KEY",
    "message": "The provided API key is invalid or expired"
  }
}

HTTP Status Codes

CodeDescription
200Success
400Bad request - invalid parameters
401Unauthorized - invalid or missing API key
403Forbidden - plan does not include API access
404Not found - payment or resource doesn't exist
429Rate limit exceeded
500Internal server error

Common Error Codes

ParameterTypeDescription
INVALID_API_KEYerrorAPI key is invalid, expired, or missing
PLAN_UPGRADE_REQUIREDerrorYour plan does not include API access
INVALID_CURRENCYerrorUnsupported cryptocurrency specified
INVALID_NETWORKerrorNetwork doesn't match currency
PAYMENT_NOT_FOUNDerrorNo payment found with given ID
RATE_LIMIT_EXCEEDEDerrorToo many requests, slow down

Need help? Contact us at support@cryptocheckoutpro.com

© 2025 CryptoCheckout Pro. All rights reserved.