Skip to content

Overview

B2B stablecoin collection and settlement infrastructure with compliance built in. Create deposit addresses, watch them confirm on-chain, sweep to custody, and pay out, over TRON, BSC and Ethereum.

CowriePay API

CowriePay is a stablecoin collection and settlement API for businesses and the developers integrating them, with compliance built in: sanctions screening on every deposit, allowlists and approvals, and a complete audit trail. Create deposit addresses on TRON, BSC and Ethereum, watch them confirm on-chain, sweep to custody, and pay out, with HMAC-signed webhooks along the way.

Assets: USDT on all three chains, USDC and EURC on Ethereum, plus the native ETH and BNB.

Get Started

Sign up at app.cowriepay.io/signup. Activating your account from the emailed link issues a Sandbox API key (cpk_test_), so you can sign your first request without waiting on a review.

Going Live is a separate step and is gated on your KYB being approved, not on a turnaround time: submit your business details and documents, and once the file is approved your workspace is enabled for Live and you create a cpk_live_ key from the dashboard. The Going live guide on the documentation site carries the full checklist.

Base URL

There is a single base URL for every request, Sandbox and Live alike:

https://api.cowriepay.io

Sandbox vs Live

You do not switch hosts to test. The API key you sign with selects the network (the key prefix decides Sandbox vs Live):

Key prefix Mode Network
cpk_test_… Sandbox Testnets (TRON Nile, BSC testnet, ETH Hoodi), valueless crypto
cpk_live_… Live Mainnets, real funds

Same URL, same code, same request: swap cpk_test_ for cpk_live_ to go from Sandbox to Live. Create test keys from the dashboard in Sandbox mode, then pre-fund a Sandbox wallet in one call with the built-in Sandbox Faucet (see the Sandbox tag), no public faucets to hunt. To go Live: complete KYB in the dashboard, our team approves it and sets your workspace live, then you mint a cpk_live_ key. Nothing else in your integration changes.

Amount format

All amounts are human-readable decimal strings in whole asset units, never raw blockchain units (sun, wei). To send 100 USDT you pass "100", not "100000000".

When you send an amount, write it as a plain decimal. Trailing zeros are optional, so "100", "100.0" and "100.000000" are all read as the same value. The only limit is the asset’s precision: an amount finer than the smallest step below is rejected.

When the API returns an amount, it is zero-padded to the asset’s precision (a deposit of 100 USDT_TRON reads back as "100.000000"). That padding is a display detail of the response; it is never required on input.

Asset You send Smallest step (decimals) API returns
USDT_TRON “100” 0.000001 (6) “100.000000”
USDT_BSC “50.5” 0.000000000000000001 (18, Binance-Peg BSC-USD, unlike USDT on TRON/ETH) “50.500000000000000000”
ETH “1.5” 0.000000000000000001 (18) “1.500000000000000000”
BNB “0.001” 0.000000000000000001 (18) “0.001000000000000000”

Information

  • OpenAPI version: 3.1.0

Public API key identifier (cpk_live_xxx or cpk_test_xxx). Must be combined with X-CowriePay-Timestamp and X-CowriePay-Signature headers for HMAC request signing.

Security scheme type: apiKey

Header parameter name: X-CowriePay-Key