Documentation

chcks Documentation

Everything you need to accept crypto payments — whether you run a café, an online store, or a SaaS product.

Overview

chcks is a multichain crypto payment platform for merchants and developers. Accept TON, BTC, ETH, SOL, USDT, and more — payments settle directly to your wallet with no custodian and no middleman.

QR Menu

Customers scan a QR code, browse your menu, and pay in crypto without installing anything.

Kitchen Display

Real-time order board for your kitchen — updates instantly as orders come in via WebRTC P2P.

Payments

Multichain payments: TON, USDT, BTC, ETH, SOL, and more. Customers choose their chain at checkout.

Receipts

Every payment produces a tamper-proof receipt verified by a SHA-256 hash on the blockchain.

GDPR / Privacy

Data minimisation, consent management, right to erasure, and AES-256-GCM encryption at rest.

Developer API

REST API for online stores, SaaS products, and custom integrations — with webhooks and a gateway checkout page.

Setup

Getting Started

Set up your merchant account and start accepting crypto payments in minutes.

1. Create an account

1

Register at chcks.co

Sign up with your email and set a secure passkey. No credit card required. Your account is tied to a single merchant profile — one wallet, one menu.

2. Connect your wallet

2

Add your wallet address

Go to Settings → Wallet and paste your TON wallet address. All payments settle directly to this address — chcks never holds your funds.

You control your funds

chcks is non-custodial. Payments land directly in your wallet on-chain. Make sure you own the private key to the address you configure.

3. Set up your menu

3

Add products and categories

Create your product catalog under Products. Each product has a name, price (in your display currency), and optional category. Products marked as menu-visible appear on your public QR menu.

4. Go live

4

Print your QR code and start taking orders

Find your QR code in Dashboard → Menu. Print it, display it at your counter or tables, and customers can start ordering immediately. No app required on their end.

Tables support

Assign QR codes to specific table numbers. Orders automatically include the table ID so your kitchen display knows exactly where to deliver.

Feature

QR Menu

Your QR menu is a mobile-optimised web page customers open by scanning a code. No app install, no account creation — just scan and order.

Scan QR
Browse menu
Place order
Pay in crypto
Get receipt

No app required

Opens in any mobile browser. Works on iOS and Android.

Wallet deeplinks

One tap opens Tonkeeper or any compatible wallet with the amount and memo pre-filled.

Memo matching

Each payment has a unique memo. chcks scans the blockchain and matches transactions automatically.

Instant receipt

Customers get a receipt URL with a SHA-256 hash the moment their payment is confirmed on-chain.

Feature

Kitchen Display

The kitchen display shows incoming orders in real time. Staff can update order status as food is prepared and ready for pickup.

Real-time updates

Orders appear instantly via WebRTC P2P — no page refresh needed.

Status workflow

Move orders through: created → confirmed → preparing → ready → completed → paid.

Works on any device

Open the kitchen display on a tablet, laptop, or mounted screen — no install needed.

P2P architecture

Kitchen and POS screens connect directly peer-to-peer. Orders sync without going through a central server, keeping latency low and reducing infrastructure cost.

Feature

Payments

chcks supports a wide range of chains and currencies. Customers can pay in whichever crypto they hold — the system automatically converts to your preferred settlement currency (TON or USDT) via an exchange bridge.

Multichain support

Accept TON, USDT, BTC, ETH, SOL, BNB, LTC, DOGE, XRP, TRX, and more. Customers choose their chain at checkout.

Automatic conversion

When a customer pays in BTC, ETH, or another chain, the exchange bridge converts it to your configured settlement currency.

Payment window

QR menu payments expire after 15 minutes. Gateway payments expire after 30 minutes.

Transaction hash

Every confirmed payment records the on-chain tx hash for independent verification.

Payment statuses

pending·confirming·confirmed·expired

Feature

Receipts

Every paid order generates a tamper-proof receipt. The receipt hash links the order data to the on-chain transaction.

Receipt page

Customers get a shareable URL (e.g. /check/17) immediately after payment confirmation.

Hash verification

The SHA-256 receipt hash is derived from the order + payment data. Any tampering breaks the hash.

Blockchain explorer

Cross-reference the tx hash on any chain explorer to independently verify the payment.

How receipt hashing works

When a payment is confirmed, chcks hashes the canonical receipt JSON (items, amounts, merchant, tx hash) with SHA-256. This hash is stored and exposed via the public GET /api/receipt/:hash endpoint so anyone can verify a receipt without trusting chcks.

Compliance

Privacy

chcks is designed to collect the minimum data necessary and give users full control over their information.

Data minimisation

Only data required to operate the service is collected. No tracking, no ads.

Access & portability

Export all your data from the dashboard at any time.

Right to erasure

Request full account deletion — your data is removed within 30 days.

Consent management

Cookie consent banner with granular controls. Analytics only with explicit opt-in.

MiCA awareness

chcks is designed with EU crypto-asset regulation in mind.

Encryption at rest

Sensitive merchant data is encrypted with AES-256-GCM before storage.

API

For Developers

chcks exposes a REST API that lets online stores, SaaS products, and services accept crypto payments without building any blockchain infrastructure themselves. All you need is an API key and a wallet address.

Gateway Payments — for online stores & services

The gateway checkout is the fastest way to add crypto checkout to an existing product. Create a payment link from your server, redirect the customer, and receive a webhook when the blockchain confirms the transaction. Customers can pay in any supported chain — the system bridges to your settlement currency automatically. No product catalog required.

Customer checkout
POST payment
Customer pays
Webhook fires
Order fulfilled
POST/api/v1/invoicesAPI Key

Create a payment. Pass amount, currency, your internal order_id, and a webhook_url. Returns a payment_url to redirect your customer to.

GET/api/v1/invoices/:uuidAPI Key

Get current status, tx_hash, and webhook delivery info.

POST/api/v1/invoices/:uuid/checkAPI Key

Trigger an on-chain check. Use as a fallback if your webhook endpoint was unreachable.

POST/api/v1/invoices/chooseAPI Key

Switch a pending payment to a different customer currency.

GET/api/v1/invoicesAPI Key

List all gateway payments, paginated. ?limit=20&offset=0

Webhook payload

When a payment is confirmed, chcks POSTs to your webhook_url with { event: "payment.confirmed", payment: { uuid, external_order_id, amount, currency, tx_hash, ... } }. Signed with HMAC-SHA256 in X-Signature. Always verify before fulfilling.

Keep your API key server-side

Never call gateway endpoints from browser code. Your csr_... key must stay on your server.

Custom Storefront — build on top of chcks products

Build a fully custom ordering UI on top of a chcks product catalog — a kiosk, mobile app, or website checkout. These endpoints require no authentication.

GET/api/menu/:slugPublic

Fetch the merchant's catalog (products, categories, wallet info).

POST/api/public/ordersPublic

Place an order. Body: { slug, items: [{productId, quantity}], tableId?, customerNote? }

GET/api/payment/:idPublic

Get payment details with TON deeplinks for rendering a QR code.

POST/api/payment/:id/checkPublic

Poll for payment confirmation. Returns status, tx_hash, and receipt URL. Poll every 5s.

GET/api/receipt/:hashPublic

Verify a receipt by SHA-256 hash. No trust required.

Management API — sync products and read orders

Programmatically manage your merchant account — sync your product catalog, read order history, or build internal tooling.

GET/api/v1/businessAPI Key

Read your merchant profile, wallet address, and settings.

PUT/api/v1/businessAPI Key

Update wallet address or settings (paymentCurrency, displayCurrency).

GET/api/v1/productsAPI Key

List all products including hidden ones.

POST/api/v1/productsAPI Key

Create a new product in your catalog.

GET/api/v1/transactionsAPI Key

List orders with items and table info.

GET/api/v1/transactions/:id/paymentAPI Key

Get payment details for an order, including QR deeplinks.

POST/api/v1/transactions/chooseAPI Key

Switch a pending order payment to a different currency.

All endpoints

POST /api/v1/invoicesCreate gateway payment
GET /api/v1/invoices/:uuidGet gateway payment
POST /api/v1/invoices/:uuid/checkCheck gateway payment
POST /api/v1/invoices/chooseSwitch currency
GET /api/v1/invoicesList gateway payments
GET /api/v1/businessGet merchant profile
PUT /api/v1/businessUpdate merchant
GET /api/v1/productsList products
POST /api/v1/productsCreate product
GET /api/v1/transactionsList orders
GET /api/v1/transactions/:id/paymentGet order payment
POST /api/v1/transactions/chooseSwitch order currency
GET /api/menu/:slugPublic menu
POST /api/public/ordersCreate public order
GET /api/payment/:idGet payment + deeplinks
POST /api/payment/:id/checkCheck payment status
GET /api/receipt/:hashVerify receipt

API keys use Bearer token authentication (Authorization: Bearer csr_...). Get yours from Settings → API Key.

Full API Reference

chcks Documentation — questions? [email protected]