Build payments in an afternoon
A clean REST API, server SDKs for every major language, and signed webhooks you can trust. Start in test mode, ship to production once your first account passes KYC — the endpoints never change.
From zero to first payment in three steps
No sales call, no sandbox waiting list. Pull a key, create a charge and react to the webhook — the same code runs unchanged when you flip to live mode.
Get your API keys
Create a sandbox account and grab a test secret key from the dashboard. Every request is authenticated with a single bearer token — no OAuth dance to accept payments.
1export COBALT_API_KEY=sk_test_8Q2k4f1a92 3# Verify the key resolves to your account4curl https://api.cobaltpay.com/v1/account \5 -u $COBALT_API_KEY:Create a charge
Take a payment on a connected account and split your platform fee in the same call. Idempotency keys make every write safe to retry over flaky networks.
1const charge = await cobalt.charges.create({2 amount: 4200, // $42.003 currency: "usd",4 account: "acct_8Q2k", // connected merchant5 application_fee: 336,6})Receive a webhook
Cobaltpay tells you the moment money moves. Verify the signature, switch on the event type, and update your ledger — settlement data is included on every payload.
1const event = cobalt.webhooks.verify(2 req.body, req.headers["cobalt-signature"]3)4 5if (event.type === "charge.succeeded") {6 ledger.settle(event.data.id)7}One object model for the whole money flow
Predictable resources with consistent shapes, expandable fields and cursor pagination. Every endpoint is documented with copyable examples in your language of choice.
Built for developers, by people who ship
A clean REST API, predictable objects, and webhooks you can trust. Move from sandbox to live without rewriting your integration — same endpoints, same idempotency guarantees, full settlement data on every event.
- REST API + signed webhooks
- Idempotency keys on every write
- Full test mode with sandbox data
- SDKs for Node, Python, Ruby, Go
- Embeddable checkout & elements
1import Cobaltpay from "cobaltpay"2 3const cobalt = new Cobaltpay(process.env.API_KEY)4 5// Create a charge on a connected account6const charge = await cobalt.charges.create({7 amount: 4200, // $42.008 currency: "usd",9 account: "acct_8Q2k",10 application_fee: 336, // 8% + $0.3011}, { idempotencyKey: "chg_7f1" })12 13console.log(charge.status) // "succeeded"Official libraries for your stack
Typed, versioned and battle-tested. Every SDK ships with automatic retries, idempotency helpers and request signing built in — install one line and you are ready.
Node.js
JavaScript / TypeScriptnpm i cobaltpayPython
3.8+pip install cobaltpayRuby
Bundler readygem install cobaltpayGo
Modulesgo get cobaltpay.com/goPHP
8.1+composer require cobaltpay/sdkJava
Maven / Gradleimplementation 'com.cobaltpay:sdk'Test mode that mirrors production
Simulate successful charges, declines, disputes and payouts with deterministic test cards and a sandbox clock. Nothing touches a real bank until you swap your secret key.
Explore test dataWebhooks you can verify and replay
Every event is signed with a rotating secret and timestamped to block replays. Inspect deliveries, retry failures and forward events to localhost with the Cobalt CLI.
Webhook guideStart moving money in days, not months.
Onboard merchants, accept payments and settle payouts on one platform. Go live with sandbox keys today and switch to production once your first account passes KYC.
or talk to our teamNo setup fees · No monthly minimums · PCI DSS Level 1