What is ArQPay?
ArQPay is a cryptocurrency payment processor that lets your customers pay invoices in crypto while you settle in stablecoins. It combines:
- A hosted payment widget — a self-contained
<script>tag you embed on your checkout page. - A REST API — for server-side quote creation, payment status checks, confirmation and webhook management.
- Smart-contract settlement — funds flow through audited on-chain contracts (
PaymentProcessor,MerchantRegistry,TrustedForwarder, …) so custody and distribution are transparent and trust-minimized.
Who is it for?
Any merchant who wants to accept crypto without running their own infrastructure:
| Use case | How ArQPay helps |
|---|---|
| Simple checkout | Embed the widget, done. No backend code needed. |
| Custom UX | Call the REST API from your own backend and build your own UI. |
| High-volume stores | Receive signed webhooks and reconcile payments programmatically. |
| Referral programs | Attach an affiliateId to any payment to share fees with affiliates. |
Key concepts
Merchant
A merchant is identified by a merchant ID (a bytes32 hash, e.g. 0x…). Each merchant has:
- A recipient address — where settled funds are distributed.
- A set of supported chain IDs.
- An allowed origins list — the websites permitted to initiate payments (CORS-style protection).
- Optional webhook configuration for payment notifications.
Quote
Every payment starts with a quote: a server-computed snapshot of the exchange rate, fee and exact on-chain calldata, locked in for 5 minutes (quoteDeadline). The quote is cryptographically hashed (quoteHash) and validated on-chain, so the payer cannot tamper with amounts after quoting.
Payment lifecycle
pending → completed
↘
failed
↘
waiting_relayer (gasless payments only)pending— quote created, awaiting the payer's transaction (or relay submission).waiting_relayer— gasless payment submitted, waiting for the relayer to broadcast.completed— on-chain execution verified, funds distributed.failed— execution reverted or confirmation failed.
Two payment modes
| Mode | Who pays gas | Flow |
|---|---|---|
| Standard | The payer | Payer signs & broadcasts the swap transaction themselves. |
| Gasless | Nobody (borne/settled by the platform) | Payer signs two offline signatures; ArQPay's relayer submits the transaction. Requires an ERC-20 token supporting EIP-2612 permit. |
Architecture overview
┌────────────────┐ ┌─────────────────────┐ ┌──────────────────┐
│ Your website │ ───▶ │ ArQPay Host │ ───▶ │ ArQPay Backend │
│ (checkout) │ │ serves widget.js │ │ │
└────────────────┘ │ serves /api/* │ └────────┬─────────┘
└─────────────────────┘ │
▼
┌──────────────────┐
│ Smart Contracts │
│ (EVM chains) │
└──────────────────┘- ArQPay Host — serves the payment widget assets and the API endpoints, so browser integrations work without CORS configuration.
- Backend — computes quotes, manages merchants, dispatches webhooks and runs the gasless relayer.
- Smart contracts — per-chain deployment of the payment processor suite; the backend verifies merchant registration on-chain before accepting quotes.
Where to go next
- Quick Start — take your first payment in under 10 minutes.
- Widget Integration — embed the widget on your site.
- Server-Side Integration — drive the API from your own backend.
- API Reference — full endpoint documentation.