How It Works
Paratro Checkout processes stablecoin payments through a simple, deterministic flow — from order creation to settlement.Payment Flow
Step-by-Step Flow
Create a payment order
Your server calls the Paratro API to create a payment order with the amount, currency, and metadata (e.g., internal order ID, customer email). The API returns a unique payment URL and order ID.
Customer opens payment page
Redirect the customer to the Paratro-hosted payment page, or render the Embed Widget on your site. The customer sees the amount, supported chains, and a wallet address or QR code to send funds to.
Customer sends payment
The customer sends USDC or USDT from their wallet (MetaMask, Coinbase Wallet, Trust Wallet, or any compatible wallet) to the displayed address on their chosen chain.
Blockchain confirmation
Paratro monitors the blockchain for the incoming transaction. Once detected, the payment moves to
confirming status. After sufficient block confirmations, it moves to confirmed.KYT / AML screening
Every payment is automatically screened against sanctions lists and risk scoring models. Flagged transactions are held for review.
Auto-sweep to merchant wallet
Confirmed funds are automatically swept from the collection address to your designated merchant wallet. The payment moves to
settled.Payment Lifecycle
Every payment order progresses through a defined set of states:| State | Description |
|---|---|
created | Payment order created. Waiting for customer to send funds. |
pending | Transaction detected on-chain but not yet confirmed. |
confirming | Transaction is accumulating block confirmations. |
confirmed | Sufficient confirmations received. KYT screening passed. |
settled | Funds swept to merchant wallet. Terminal success state. |
expired | Customer did not send funds within the payment window (default: 30 minutes). |
failed | Transaction failed on-chain, or KYT screening flagged the payment. |
The number of required block confirmations varies by chain. Ethereum requires 12 confirmations, Base and Polygon require 20, and Solana requires 32 slot confirmations.
Webhook Events
Configure a webhook endpoint in your Dashboard to receive real-time notifications. All webhooks are signed with HMAC-SHA256 for verification.| Event | Description | Triggered When |
|---|---|---|
payment.created | Payment order was created | POST /checkout/orders is called |
payment.pending | On-chain transaction detected | Customer’s transfer appears in mempool or on-chain |
payment.confirming | Block confirmations in progress | First block confirmation received |
payment.confirmed | Payment fully confirmed | Required block confirmations reached and KYT passed |
payment.settled | Funds swept to merchant wallet | Auto-sweep transaction confirmed |
payment.expired | Payment window expired | Customer did not pay within the time limit |
payment.failed | Payment failed | On-chain failure or KYT screening flagged |
Webhook Payload
Verifying Webhook Signatures
Paratro signs every webhook with HMAC-SHA256 using your webhook secret. The signature is included in theX-Paratro-Signature header with a v1= prefix.