Payments infrastructure · USDT · USDC

Stablecoin payments for platforms.

Your sellers get paid in USDT and USDC on Polygon, BNB Smart Chain and Base. Every payment is split between seller, affiliate and your markup on a double-entry ledger, the moment it is confirmed. 0.50 % per confirmed payment.

HMAC-signed webhooks · Idempotency-Key on invoices and payouts
Test mode on Polygon Amoy, BSC Testnet and Base Sepolia

Confirmed atPolygon PoS64 conf.BNB Smart Chain15Base30
A type designer leaning over printed letterform proofs in her studio, seen through the Aliquot mark

Halden Type, Oslo
90.00 of 102.50 USDT
Polygon PoS
paid 14:05:52 UTC
(example seller)

Ledger entryBalanced

Split on confirmation

Posted 14:05:52 · double-entry · USDT

DRASSET:ONCHAIN_CUSTODYDeposit address 0x2830…b72e102.50
CRLIABILITY:MERCHANT_SETTLEMENTHalden Type90.00
CRLIABILITY:PARTNER_PAYABLEKerning Weekly · affiliate 10 %10.00
CRLIABILITY:PARTNER_PAYABLEGlyphyard · markup 2 %2.00
CRREVENUE:PLATFORM_PROCESSING_FEEAliquot · 0.50 %0.50
Debits
102.50
Credits · 90.00 + 10.00 + 2.00 + 0.50
102.50

Entry balances to the cent0.00

How a payment splits

Halden Type gets 90.00. We take 0.50.

Glyphyard, a type marketplace in Berlin, sells a 100.00 USD license by Halden Type, a foundry in Oslo. Kerning Weekly referred the buyer for 10 %, and Glyphyard adds a 2 % markup. Ana Prado pays 102.50 USDT on Polygon PoS. When the transfer reaches 64 confirmations, one balanced ledger transaction books every part.

Glyphyard, Halden Type, Kerning Weekly and Ana Prado are example data, not customers.

90.00 + 10.00 + 2.00 + 0.50 = 102.50USDT

paid by the buyer

  • Halden Type · seller90.00USDT
  • Kerning Weekly · affiliate · 10 %10.00USDT
  • Glyphyard · your markup · 2.00 %2.00USDT
  • Aliquot · processing fee · 0.50 %0.50USDT
  • Every part is a percentage of the base price, computed in integer token units. The seller absorbs the rounding, so the parts always add up to the total.
  • With fee_payer CUSTOMER the fee and your markup are added to the price. With MERCHANT the buyer pays 100.00 and both come out of the seller's share.
  • Debits equal credits in every transaction, enforced by the database. Journal rows are append-only and a balance never goes below zero.
From the request
"fee_payer": "CUSTOMER",
"markup_percent": 2,
"merchant": "halden_type",
"splits": [
  { "account": "kerning_weekly",
    "percent": 10 }
]

What you integrate

Use one surface, or all of them.

  • Hosted checkout

    A page at /pay/:id with an EIP-681 QR code, one-click payment from a browser wallet and live status until the receipt.

    EIP-681 · live status · 30 min window

  • Headless API

    Draw your own checkout. The invoice returns the deposit address, the exact total and the payment URI.

    POST /api/v1/crypto/invoices

  • Payment links

    A fixed-price product page at /l/:slug. Each payment opens a fresh invoice and can deliver a file, a secret or a redirect.

    No code

  • Splits on a ledger

    Seller, partners, your markup and our fee, booked as one balanced transaction per payment, per network and token.

    Double-entry · append-only

  • Payouts with 2FA

    Settled balances go to a wallet. Every payout from the dashboard needs a TOTP code; API keys that can pay out are stepped up when they are created.

    TOTP step-up

  • Signed webhooks

    invoice.paid, payout.completed, refund.claimable and more, signed with HMAC-SHA256 and retried. Invoices and payouts require an Idempotency-Key.

    X-Webhook-Signature: t=…,v1=…

  • React embed

    Render the checkout inside your own page instead of redirecting the buyer.

    <CryptoCheckout />

  • Telegram Mini-App

    The same checkout runs inside Telegram, for communities that sell there.

    /pay/:id?tg=1

  • Pull refunds

    Overpayments, expired partial payments and late transfers are held in escrow. The buyer claims them to a wallet they control through a private link.

    Claimed, never sent back blind

Networks and confirmations

Three networks, two stablecoins. Credited at a fixed depth.

  • Polygon PoS64conf.USDT · USDC · ~2 minTest mode: Polygon Amoy · USDC
  • BNB Smart Chain15conf.USDT (BEP-20, 18 decimals) · ~45 sTest mode: BSC Testnet · USDT
  • Base30conf.USDC · ~1 minTest mode: Base Sepolia · USDC

For developers

One request opens an invoice. A signed webhook tells you it is paid.

Request
curl -X POST "$ALIQUOT_API/api/v1/crypto/invoices" \
  -H "authorization: Bearer $ALIQUOT_KEY" \
  -H "content-type: application/json" \
  -H "idempotency-key: glyphyard-order-77310" \
  -d '{
    "amount": "100.00",
    "currency": "USD",
    "network": "POLYGON_AMOY",
    "token": "USDC",
    "fee_payer": "CUSTOMER",
    "markup_percent": 2,
    "merchant": "halden_type",
    "splits": [{ "account": "kerning_weekly", "percent": 10 }],
    "title": "Halden Grotesk — Desktop license, 5 seats",
    "merchant_order_id": "glyphyard-order-77310"
  }'
Response · 201
{
  "id": "inv_01JB7Q8M3X4K9TPZ2R6WVN5HDC",
  "status": "PENDING",
  "livemode": false,
  "network": "POLYGON_AMOY",
  "token": "USDC",
  "base": "100.00",
  "platform_fee": "0.50",
  "markup": "2.00",
  "merchant_net": "90.00",
  "total": "102.50",
  "deposit_address": "0x2830693ddff50d883cef82754913ea80c3c0b72e",
  "payment_uri": "ethereum:0x41E94Eb019C0762f9Bfcf9Fb1E58725BfB0e7582@80002/transfer?address=0x2830693ddff50d883cef82754913ea80c3c0b72e&uint256=102500000",
  "required_confirmations": 64,
  "expires_at": "2026-10-26T14:32:11.000Z",
  "pay_url": "https://checkout.example/pay/inv_01JB7Q8M3X4K9TPZ2R6WVN5HDC",
  …
}
  • Idempotency-Key is required. The same key and body return the same invoice with Idempotent-Replay: true; the same key with another body is a 409.
  • Leave out network and token and send mode instead, and the buyer chooses on the checkout.
  • POST /api/v1/crypto/quote returns the same breakdown without creating anything.
Read the quickstart

Pricing

0.50 %per confirmed payment.

No plans and no monthly fee. You pay when a payment is confirmed, and you add your own markup on top.

Processing fee
0.50 % of the base price
Your markup
0 to 20 %, credited to your platform account
Who pays
fee_payer CUSTOMER or MERCHANT, per invoice
Payouts and refunds
A flat network fee, deducted from the amount sent

On a 100.00 sale100.00 + 0.50

Get test keys. Open your first invoice on testnet.

Test mode runs on Polygon Amoy, BSC Testnet and Base Sepolia, with the same API, ledger and webhooks as live mode.