Non-custodial CHR payments

Accept CHR with Chromia Pay.

Customers pay in CHR and the funds settle straight to your wallet. No pooled custody between you and your customer, and no keys held on your behalf.

Sample Chromia Pay checkout. The customer pays 1,250.00 CHR for order 1041, and the payment settles directly to the merchant payout wallet.
Non-custodial
Chromia Pay never holds your keys
Direct to you
Customer wallet to your payout wallet
Signed webhooks
Fulfil from your server, not a redirect

Built for merchants

Accept crypto. Keep control.

Direct settlement

Funds move from the customer wallet straight to your verified payout wallet. Nothing pools in between.

CHR, on two chains

Take CHR on the Chromia economy chain or as BEP-20 on BNB Smart Chain. USDC settlement is available on BNB Smart Chain.

Checkout your way

Send customers to a hosted payment page or embed checkout in your storefront, with payment creation server-side.

Reliable confirmation

Signed webhooks tell your server when a payment is confirmed, so fulfilment never depends on a browser return.

Developer integration

Two calls from cart to settled.

Create the payment on your server and redirect to the checkout URL it returns. When the signed webhook arrives, verify it and fulfil the order. Amounts are decimal strings, and the idempotency key makes creation safe to retry.

1 · Create the payment
POST /v1/payments
Authorization: Bearer cpay_sk_test_...
Idempotency-Key: order-1041

{
  "amount": "1250.00",
  "currency": "chr",
  "settlement_asset": "chr",
  "description": "Order #1041",
  "success_url": "https://shop.example.com/thanks",
  "metadata": { "order_id": "1041" }
}
2 · Confirm from the webhook
{
  "id": "evt_...",
  "type": "payment.confirmed",
  "data": {
    "payment": {
      "id": "pay_...",
      "status": "confirmed",
      "amount_expected": "1250.00",
      "amount_paid": "1250.00",
      "metadata": { "order_id": "1041" }
    }
  }
}

How it works

From setup to settled.

  1. 1

    Configure

    Verify a payout wallet, then create your API key and webhook endpoint in the Merchant Portal.

  2. 2

    Create

    Create the payment server-side and send the customer to the returned checkout URL.

  3. 3

    Confirm

    Verify the signed webhook and fulfil confirmed or overpaid orders idempotently.

Product destinations

Go where the work happens.

Merchant tools

Merchant Portal

Configure your store, payout wallets, API keys, and webhook endpoints.

Open Merchant Portal
Customer experience

Checkout

Preview the customer-facing payment experience used by hosted and embedded flows.

View checkout
Integration reference

Developer docs

API reference, webhook verification, status semantics, and test-mode keys.

Read documentation

Ready to accept CHR without giving up custody?

Open Merchant Portal