Start here
What Cripay does, how a payment flows from your customer to your wallet, and the three ways to integrate (no code, a button, or the API).
In one paragraph
Cripay lets your business get paid in crypto the way Stripe lets it get paid by card. You tell Cripay "charge 25 USD". Cripay gives you a payment page where the customer pays with USDT, USDC, BTC, ETH or SOL from any wallet or exchange (Binance, Coinbase, MetaMask, Phantom, Trust…). When the money is on the blockchain and final, Cripay tells your system. The money lands in your own wallet. There is no KYC and no monthly fee; the platform keeps a small percentage of each confirmed payment.
You never touch a blockchain yourself. You work with three things: a payment (what you want to charge), a checkout URL (where the customer pays) and a webhook (how you find out it was paid).
Pick your path
| If you… | Start with | Time |
|---|---|---|
| Don't want to write code | Payment links and QR from the app | 2 minutes |
| Have a site and want a "Pay with crypto" button | Embedded checkout (embed.js or React) | 10 minutes |
| Use Claude Code, Cursor, Codex or OpenCode | Integrate with your AI agent: the agent does it for you through MCP | 15 minutes |
| Have your own backend | Quickstart (REST API + webhooks), then the TypeScript SDK | an afternoon |
The Developers page of the app shows these paths with your real URLs and key already filled into every snippet.
How a payment flows
- You create a payment, priced in USD. From the app (a QR or a link), or from your code with one API call.
- Cripay answers with a
checkout_url. Send the customer there, or open it inside your site. - The customer pays. They pick a coin and a network, then either scan a QR / copy the exact amount and address from their exchange, or connect their wallet and sign one transaction. The price in crypto is locked while they pay.
- Cripay watches the network. The payment becomes
processingwhen the transaction is seen andconfirmedwhen it is final (seconds on Solana, Tron and L2s; a few minutes on Ethereum; about ten on Bitcoin). - Cripay tells you. A signed webhook reaches your server with the full payment; the customer sees a receipt.
- The money settles to the payout wallet you configured. If you prefer, it accrues in a Cripay balance that you withdraw whenever you want.
If the customer sends too little, the checkout shows the missing amount and the same address, and the payment completes when the rest arrives. If they send too much, you receive it all. If nothing arrives before the price expires, the payment is expired and no money moved.
Three ways to integrate
| You want to… | Use | Code needed |
|---|---|---|
| Charge in person, invoice a client, take tips, sell a few things | Payment links and QR codes from the app | None |
| Add a "Pay with crypto" button to an existing site | embed.js or the React component | Five lines of HTML |
| Run a store, a SaaS, a platform or an API with its own backend | The REST API, the TypeScript SDK and webhooks | An afternoon |
All three end in the same place: the payment shows up in your activity, the webhook fires, the money reaches your wallet.
What you need before you start
- An account. Email or wallet, one minute, no documents.
- A payout wallet per network family (an EVM address for Ethereum/Base/BNB/Polygon/Arbitrum, a Solana address, a Tron address). This is where your money goes. Set it under Profile → Payout wallets.
- For code: a test key (
cpr_test_…) to build with, a live key (cpr_live_…) when you go live. Test keys never move real money and come with a simulator, so you can finish the whole integration without owning any crypto.
Six words you will meet
| Word | Meaning |
|---|---|
| Payment | One request to get paid: an amount in USD, a status, and, once paid, the transaction on chain. |
| Checkout | The page where the customer pays. Hosted by Cripay, in your brand, in the customer's language. |
| Payment link | A reusable URL that creates a payment each time someone opens it. No code. |
| Webhook | An HTTP request Cripay sends to your server when something happens (payment.confirmed is the one that matters). Signed, retried, replayable. |
| Test mode / live mode | Two separate worlds. Test keys and test payments use test networks and fake money; live keys use real networks and real money. Nothing crosses over. |
| Settlement | Where the money ends up: straight to your wallet (default) or in your Cripay balance. |
Where to go next
- Quickstart: a confirmed test payment in ten minutes, with and without code.
- How it works: statuses, fees, settlement, partial payments and webhooks explained in plain words.
- Guides: one thing at a time, with the exact fields.
- API reference: every endpoint, generated from the OpenAPI document, with a playground.
Chains and assets
| Family | Networks | Assets | Pay by connecting a wallet | Pay by transfer (QR / address) |
|---|---|---|---|---|
| EVM | Ethereum, Base, Arbitrum, Optimism, Polygon, BNB Chain (testnets in test mode) | USDC, USDT, native coin | Yes, one transaction | Yes, unique address per payment |
| Solana | mainnet, devnet | USDC, USDT, SOL | Yes | Yes |
| Tron | mainnet, Nile | USDT (TRC-20), TRX | — | Yes |
| Bitcoin | mainnet, signet | BTC | — | Yes, to an address derived from your own xpub |
GET /v1/currencies returns what your server actually offers, with minimum amounts, network fees and confirmation depths.