Crypay API

Crypto payment gateway — accept BTC, ETH, USDC, EURC and more.

Quick start

  1. Create a Crypay merchant account at crypay.com.
  2. Generate an API key in Dashboard → API Keys.
  3. Call the endpoints below with header X-API-Key: <your-key>.

Base URLs: https://crypay.com/api (mainnet), https://dev.crypay.com/api (testnet).

POST /api/payments

Create a new payment. Returns a link to redirect the customer to.

curl -X POST https://dev.crypay.com/api/payments \
  -H 'Content-Type: application/json' \
  -H 'X-API-Key: pk_xxx' \
  -d '{
    "amount": 9.99,
    "currency": "EUR",
    "reference": "ORDER-1234"
  }'

# Response
{ "id": "5abvy58xgcg2", "link": "https://dev.crypay.com/payment/5abvy58xgcg2" }
Body

GET /api/payments

List payments for your merchant account. Supports query parameters: limit, offset, state.

curl https://dev.crypay.com/api/payments?limit=10 \
  -H 'X-API-Key: pk_xxx'

GET /api/payments/{shortId}/options

List available payment options (BTC, ETH, USDC, EURC, …) for a payment.

POST /api/payments/{shortId}/cancel

Cancel a payment that hasn't been confirmed yet.

Webhooks

Crypay POSTs the following payload to your configured webhook URL when a payment changes state:

{
  "id": "5abvy58xgcg2",
  "reference": "ORDER-1234",
  "state": "SUCCESS",   // or "FAILED", "CANCELLED"
  "amount": 9.99,
  "currency": "EUR",
  "transactionId": "0xabc..."
}

Verify the X-Crypay-Signature header — HMAC-SHA256 of the raw body using your webhook secret.

Eshop modules + drop-in

Issues / questions: crypay.com/contact