For developers
Build on Offbank
Take USDC, invoice, and pay anyone - from one npm package. Install @offbank/sdk and you're live in minutes. If you're an operator who just wants to send invoices from the dashboard, start here instead.
SDK Reference
The complete @offbank/sdk guide - install, initialize, and every method (checkout, invoices, payouts, webhook verification) with parameters, runnable examples, and response shapes.
REST API
Every SDK call over plain HTTP - checkout sessions, invoices, payouts. Request + response examples, API-key auth.
Webhooks
Subscribe to settlement events. HMAC-signed deliveries, automatic retries, idempotency keys.
Integrations
LeafLink, Solana wallets, x402 protocol, Squads multisig.
Payouts & Cashouts
Pay anyone in USDC by email or wallet - affiliate commissions, player cashouts, supplier runs. Single or batch, instant.
GitHub
Source for the on-chain program, SDK, and reference frontend.
curl https://offbankpay.com/api/invoices \
-H "x-api-key: $OFFBANK_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"buyerName": "Acme Wholesale",
"buyerEmail": "ap@acme.com",
"lineItems": [
{ "description": "Wholesale order #4421", "quantity": 1, "unitPrice": 47500 }
],
"dueDate": "2026-08-01",
"memo": "Net 30"
}'Returns a hosted invoice link your buyer pays with any Solana wallet. A signed settlement webhook fires once the on-chain payment confirms. Prefer types? npm install @offbank/sdk.
// npm install @offbank/sdk
import { Offbank } from "@offbank/sdk";
const offbank = new Offbank({ apiKey: process.env.OFFBANK_API_KEY! });
// Affiliate commission, player cashout, supplier payment - same call
await offbank.payouts.create({
email: "alice@example.com",
amount: 250.0,
memo: "March affiliate commission",
});
// Pay a whole run at once
await Promise.all([
offbank.payouts.create({ email: "alice@example.com", amount: 250.0 }),
offbank.payouts.create({ email: "bob@example.com", amount: 180.0 }),
]);Each recipient gets a claim link (and email) and claims with any Solana wallet - or one we provision on first claim. Your webhook fires when it settles. No minimum amounts, no batch windows.
