Bitwage Logo
Platform · API & SDKs

Every Platform
Capability.
Programmatic.

REST API, real-time webhooks, and SDKs that expose every platform capability — payout execution, FX locking, compliance status, and treasury management.

REST API Real-time webhooks Node · Python · Ruby SDKs Full sandbox

Also see pre-built ERP integrations and white-label onboarding.

Node.jsPythonRubycURL
// Execute a batch payout run
import { Bitwage } from '@bitwage/sdk';

// Initialize with API key
const bw = new Bitwage(process.env.BW_API_KEY);

// Create a batch payout run
const run = await bw.payouts.create({
  recipients: [
    {
      id: 'rec_maria_lopez',
      amount: 4200,
      currency: 'USD',
    },
  ],
  fxLock: true,
});

// Webhook fires on settlement
bw.webhooks.on('payment.settled', (event) => {
  console.log(event.txHash);
});
Full SDK reference →View API docs →

Full Platform Surface Area

Every dashboard capability is available via API. The dashboard is built on the same API your integration will use.

Payout Execution

POST /payouts — Create batch run
GET /payouts/{id} — Run status
POST /payouts/{id}/approve — Dual approve
GET /payouts/{id}/recipients — Settlement detail
See the feature

FX & Treasury

GET /fx/rates — Current rates (30+ pairs)
POST /fx/lock — Lock rate for run
GET /balance — Treasury balance
POST /balance/fund — Initiate funding
See the feature

Compliance

GET /recipients/{id}/kyc — KYC status
POST /recipients/{id}/screen — OFAC check
GET /1099s — Annual 1099-NEC export
GET /w8bens — W-8BEN status by recipient
See the feature

Recipient Management

POST /recipients — Create recipient
PUT /recipients/{id} — Update preferences
POST /onboarding/invite — Send invite link
GET /onboarding/{id}/status — Check completion
See the feature

Webhooks

payment.settled — Settlement confirmed
payment.failed — Failure with reason code
kyc.completed — KYC verification done
ofac.flagged — Sanctions flag triggered
See the feature

Reconciliation

GET /transactions — Payment history
GET /transactions/export — CSV / ERP export
GET /receipts/{id} — Payment receipt PDF
GET /audit-log — Full immutable event log
See the feature
Webhooks

Real-Time Events
On Every Payment.

Webhooks fire on every meaningful event — settlement confirmed, payment failed, KYC completed, OFAC flag triggered. Payloads are signed with HMAC-SHA256 for tamper detection. Retry logic with exponential backoff handles transient failures automatically. Every event includes the payment ID, timestamp, and enough context to update your NetSuite ERP or reconciliation system without a follow-up API call.

  • payment.settledSettlement confirmed with txHash and timestamp
  • payment.failedFailure reason code, recipient info, retry options
  • kyc.completedKYC verification passed or failed with details
  • ofac.flaggedSanctions match detected — payment blocked
  • batch.approvedBoth approvers signed — FX rate locked
  • balance.thresholdTreasury balance crosses configured threshold
Webhook Payload · payment.settled
{
  "event": "payment.settled",
  "id": "pay_abc123",
  "recipient_id": "rec_maria_lopez",
  "amount": 4200,
  "currency": "USD",
  "rail": "usdc_ethereum",
  "tx_hash": "0x7f3a...d9c2",
  "settled_at": "2026-03-20T14:22:01Z",
  "settlement_seconds": 34,
  "signature": "sha256=abc..."
}

API & SDK FAQ

How the REST API, webhooks, and SDKs work for global payout integration.

The REST API covers the full platform surface: create and execute batch payout runs, lock FX rate lock rates, query OFAC sanctions screening and KYC / AML compliance status, manage recipient onboarding, fund {{link:products/balance}} treasury, retrieve settlement confirmations with on-chain hashes for USDC stablecoin payments, and pull reconciliation data. Every dashboard action is available via API — the dashboard itself is built on the same API.

Webhook events fire on: payment batch approved, individual payment settled, payment failed (with reason code), recipient onboarding completed, KYC status change, FX rate lock confirmed, treasury balance threshold crossed, and OFAC sanctions screening flag triggered. Webhooks are signed with HMAC-SHA256 for tamper detection and support retry logic with exponential backoff.

Official SDKs are available for Node.js (TypeScript-typed), Python, and Ruby. Each SDK wraps the REST API with type-safe methods, automatic retry handling, and webhook signature verification. SDKs are open source on GitHub. For teams using ERP payment integration systems like NetSuite or Sage Intacct, we publish pre-built NetSuite ERP integration and Sage Intacct integration connectors that use the API internally.

The API uses API key + secret pairs with optional IP allowlisting. Separate key pairs can be issued per integration or environment (production vs. staging). Keys have granular permission scopes: read-only (reporting), payout execution, treasury management, and admin. API calls require HTTPS. Rate limits are generous for enterprise use cases — contact sales for dedicated capacity.

Yes. A full-featured sandbox environment mirrors production with simulated payment execution, realistic settlement timelines, and test stablecoin transfers on testnets. Sandbox credentials are issued immediately on signup. All webhook events fire in sandbox with the same payloads as production — making integration testing reliable before going live.

Start building on the Bitwage API.

Full sandbox environment, Node.js/Python/Ruby SDKs, and comprehensive documentation. API keys issued immediately.