Stablecoin payments infrastructure
Collect payments to single-use addresses, hold balances in reusable wallets, disburse payouts on-chain, and keep your systems in sync with signed webhooks — through one JSON API.
Go from credentials to your first collection and payout in a few requests.
OAuth 2.0 client credentials, scopes, and IP allow-listing.
Where balances live and which calls credit or debit them.
Event payloads, signature verification, and retry behaviour.
What you can build
Create a one-time address and hosted payment link for an invoice or checkout. Confirmed proceeds are credited to your API account automatically. See Collections.
Long-lived addresses per network — useful for per-customer ledgers or recurring deposits. Deposits are recorded as wallet transactions. See Wallets.
A per-token balance that funds programmatic payouts. Collections and wallet deposits credit it; payouts debit it. See API Account.
Send USDT or USDC to an external address. Knit checks the balance, holds it, and reports the final state over webhooks. See Payouts.
Subscribe to incoming or outgoing activity on any address you care about, including addresses Knit does not hold. See Blockchain Notifications.
Create signing wallets, define spending policies, and submit transactions, typed data, or messages for signature. See Managed Signing.
Conventions
Every endpoint in this reference lives under /api/v1 and follows the same
rules.
- Base URLs.
https://api-prod.useknit.iofor production andhttps://api-dev.useknit.iofor pre-production testing. - Authentication. OAuth 2.0 client credentials. Send
Authorization: Bearer <access-token>on every request. See Authentication. - JSON only. Requests and responses are JSON. Send
Content-Type: application/jsonon requests with a body. - camelCase. Send camelCase field names; responses come back camelCase too. See Requests & responses for the two places this does not hold.
- Shared envelope. Every response — success or failure — has the same top-level shape. See Requests & responses.
{
"statusCode": 200,
"message": "Collections fetched successfully",
"data": {},
"success": true
}Access tokens are scoped. A request that reaches an endpoint without the
required scope is rejected with 401 — it is never silently downgraded. The
scope each endpoint needs is listed on its page.
For AI agents
These docs are published in plain text as well as HTML.
| URL | Contents |
|---|---|
/llms.txt | An index of every page, with descriptions |
/llms-full.txt | Every page concatenated into one file |
<any-page>.md | That page's Markdown source |
Append .md to any documentation URL to get the Markdown — for example
/authentication.md or
/payouts/create-a-single-payout.md.
All three are served with permissive CORS, so a browser-based agent can fetch
them directly.
Getting set up
Onboard your business
Create your business in the Knit dashboard (opens in a new tab) and complete KYB. Developer credentials become available once your business is approved.
Create an OAuth client
Go to Business → Developer → OAuth Clients and create a client with only the scopes your integration needs. Copy the client ID and secret — the secret is shown once.
Allow-list your server IPs
Add the outbound IP addresses of your servers in the dashboard. Requests from any other address are rejected before they reach the API.
Configure your webhook endpoint
Set your webhook URL and secret under Business → Developer → Webhooks. The endpoint must be publicly reachable over HTTP or HTTPS.
Make your first call
Request an access token and call an endpoint. The Quickstart walks through a complete collection and payout.