[ DEVELOPER ONBOARDING ]

How to Accept Crypto Payments: Integration Guide

Create your account, choose an integration method, and follow the Quickstart guide to create your first payment. Use hosted checkout for a faster launch or the REST API to build a custom payment flow.
0.000%

01

Choose How to Integrate Crypto Payments

Both paths lead to the same account and API keys—choose based on how much of the checkout you want to build yourself.

  • REST API

    Custom checkout flows, mobile apps, and server-to-server integrations

  • Hosted checkout

    The fastest way to accept crypto payments on your website, with no frontend development required

02

Create Your Account and Get Your API Keys

Once you've picked an integration path, generate an HMAC key pair with the INVOICE permission in Settings → API keys.

See the step-by-step guide:

PayKilla Docs — Get your API key

03

Connect the Crypto Payment API

Every crypto payment API request is signed with HMAC-SHA256 and sent to a single crypto payment gateway API endpoint that supports every supported coin.

See a complete signing example:

PayKilla Docs — Integration
  • Webhooks and Callback Handling

    One callback API endpoint per merchant, HMAC-signed deliveries, and event-driven status updates — no polling.

  • Idempotency and Retry Policy

    Duplicate-safe order tracking and webhook retry rules. See the FAQ for exact retry behaviour and limits.

04

Go Live

No sandbox is required. Our team guides you through your first integration and validates the payment flow before launch.

You can then create a real invoice and complete a real payment with support available throughout the process.

Build Your Own Gateway or Use the PayKilla API?

[ Using PayKilla’s API ]

The PayKilla API lets you add a crypto payment gateway to your business without maintaining blockchain nodes, wallets, or AML screening infrastructure.

Developer FAQ

STRAIGHT ANSWERS - TERMINAL STYLE

PayKilla
  • $ Is there a sandbox or test environment?

    > No. PayKilla does not currently offer a sandbox, but our team can guide you through the testing process step by step on request.

  • $ How do I sign a crypto payment API request?

    > Every request to the crypto payment API is authenticated with an HMAC-SHA256 signature rather than a bearer token. Authentication values are passed as the timestamp, recvWindow (recommended: 5000 ms), and signature query parameters.

    > For POST requests, sign only timestamp + recvWindow; the JSON body is not included in the signature.

    > For GET requests, sign all query parameters, including timestamp and recvWindow.

    const timestamp = Date.now()
    const recvWindow = 5000
    const signature = sign(
      qs.stringify({
        timestamp,
        recvWindow,
      }),
      secret,
    )
    
    const { data } = await client.post(
      "endpoint",
      {
        type: "FIAT_BASED",
        purpose: "Order 1001",
        currency: "USD",
        totalPrice: "10",
        paymentCurrencies: ["USDTTRC"],
      },
      {
        params: {
          timestamp,
          recvWindow,
          signature,
        },
      },
    )
    const timestamp = Date.now()
    const recvWindow = 5000
    const signature = sign(qs.stringify({ timestamp, recvWindow }), secret)
    
    const { data } = await client.post("endpoint", {
      type: "FIAT_BASED",
      purpose: "Order 1001",
      currency: "USD",
      totalPrice: "10",
      paymentCurrencies: ["USDTTRC"],
    }, { params: { timestamp, recvWindow, signature } })

    > Payment currencies must be network-qualified tickers such as USDTTRC or USDTETH. A bare USDT ticker is invalid. Retrieve the current list directly from the API; see PayKilla Docs — Integration for the exact endpoint.

  • $ Which webhook events are available?

    > PayKilla documents 13 events across five categories. Each event is assigned a HIGH, MEDIUM or LOW priority.

    > Key events:

    Payment: PAYMENT_COMPLETED, PAYMENT_FAILED, PAYMENT_PENDING, PAYMENT_PARTIAL, PAYMENT_OVERPAID, PAYMENT_UNDERPAID

    Invoice: INVOICE_CREATED, INVOICE_EXPIRED, INVOICE_PAID

    Balance & Withdrawal: BALANCE_UPDATED, DEPOSIT_RECEIVED, WITHDRAWAL_INITIATED, WITHDRAWAL_COMPLETED

    > Source: PayKilla Docs — Webhooks.

  • $ What is the SLA for API uptime?

    > We target 99.8% uptime across all API endpoints and monitor them continuously. If you need contractual SLA terms for procurement or compliance reviews, contact your account manager.

  • $ Is a KYB (business verification) required to get API keys?

    > Yes. Your business completes a one-time KYB check before API keys are issued.

    > See /security/ for details, including registration documents, UBO information, a business model description, and an operating licence for regulated industries.

PayKilla-Dev-FAQOnlineAPI v1.0.0

[ GET STARTED ]

Start Accepting Crypto Payments Today

Get API Keys

Under 2 hours to first transaction // sandbox first