Crypto payments that end with a clear answer: paid, or not.
cTpeWay gives your business its own wallet, invoices with a hosted checkout your customers can finish on a phone, and a dashboard that tells you exactly what arrived, what it cost and where it is.
New accounts start in test mode. No real funds are needed to try it.
Wallet management
How your wallet works
The whole path of a payment, from the wallet it lands in to the day you withdraw it. Five steps, and you can see each one.
Step 1 of 5
Unique to cTpeWay
What is different here
Most gateways are a shared wallet with an API in front of it. cTpeWay is a wallet management system first: the wallet is yours, the addresses are yours, and the service exists to watch them, settle them and tell you plainly what happened.
- Where your money is
- Common elsewhereOne pooled wallet for every merchant. Your balance is a number in the gateway's database.
- cTpeWayA separate wallet per merchant, made with your account. Every deposit lands in an address that comes from it, and you can check each one on a block explorer.
- Addresses
- Common elsewhereA shared pool of addresses, recycled between customers and merchants.
- cTpeWayA fresh address for every invoice, never reused. Named deposit addresses that stay yours, and work on every EVM network at once.
- Fees
- Common elsewhereA cut on deposits, another on withdrawals, and a spread on conversions.
- cTpeWay0.5% on deposits and nothing else. Charged in the network's own coin at the market rate, and itemised on every payment: the rate, the price used, the amount.
- Knowing where things stand
- Common elsewhereA status that means different things on different screens, and a support ticket to find out where the money is.
- cTpeWayOne word per state for invoices, payments and settlements, the same in the dashboard, the API and webhooks. Settlement is shown on its own: Pending, Held or Released. An invoice is paid, or it is not.
- Testing
- Common elsewhereA sandbox with made-up data, or none at all.
- cTpeWayA test mode that is a real place: real test networks, test keys, simulated payments, all kept apart from live money and reached from the same dashboard.
- Keys
- Common elsewhereOne API key that works from anywhere it leaks to.
- cTpeWaySecret keys for your server, and browser-safe keys that in live mode work only on domains you have verified. Live webhooks go only to verified domains too.
- Finding payments
- Common elsewhereEvery block of every chain read and stored, or a third party paid to do it, with the cost passed on.
- cTpeWayOnly your addresses are watched, and the checkout page reports a payment the moment it is sent. The service grows with your invoices, not with chain traffic.
Networks
Eight networks, each with a test network
The native coin of each network, and USDT and USDC where they are issued on it. Enable only the networks you accept; a master wallet is made for each, and your test account runs the same networks with test coins.
- EthereumETH · test on Sepolia
- BNB Smart ChainBNB · test on BNB Smart Chain Testnet
- PolygonPOL · test on Amoy
- BaseETH · test on Base Sepolia
- Arbitrum OneETH · test on Arbitrum Sepolia
- BitcoinBTC · test on Testnet4
- SolanaSOL · test on Devnet
- TronTRX · test on Nile
Developers
An afternoon to integrate
A TypeScript SDK and a command-line tool for Node.js, built from the API's own description, so every field is typed and nothing is guessed.
- One key is the whole configuration
- A test key and a live key are different keys, so nothing switches modes by accident.
- Invoices from your server, checkout for the customer
- Create the invoice on your backend and hand the browser only the checkout link. The secret never leaves your server.
- Signed webhooks, retried
- Every change to an invoice, payment or settlement is sent to your endpoint, signed, and sent again if it did not get through.
import { CtpeWay } from "@ctpeway/sdk"; const ctpeway = new CtpeWay(process.env.CTPEWAY_API_KEY!); const invoice = await ctpeway.invoices.create({ price: { currency: "USD", amount: "120.00" }, options: [{ asset: "USDT", network: "bsc" }],}); // Send the customer here. Your server keeps the key.redirect(invoice.checkout_url);