Developers

Build with Baynoy

A REST API with OpenAPI 3.1, idempotency keys and webhooks. Typed SDKs in JavaScript, Python, PHP, Ruby, Go and C#. Sandbox keys ship in 30 seconds.

<150ms

P50 API latency

99.95%

Uptime SLA

6

Official SDKs

8

Webhook events

Quickstart

Create your first charge

One POST, any payment method. Pass an Idempotency-Key on every retry and you'll never double-charge.

curl https://api.baynoy.com/v1/payments \
  -H "Authorization: Bearer sk_test_••••" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{
    "amount": 4900,
    "currency": "USD",
    "methods": ["card","usdc"],
    "payout":  { "type": "bank", "currency": "USD" }
  }'

Verify a webhook

Signed, retried, replayable

Every event is signed with HMAC SHA-256 and retried up to 7 days with exponential backoff. Replay any past delivery from the dashboard.

import crypto from "node:crypto";

export async function POST(req: Request) {
  const header = req.headers.get("Baynoy-Signature")!; // t=...,v1=...
  const body = await req.text();
  const { t, v1 } = Object.fromEntries(
    header.split(",").map((p) => p.split("=")),
  );
  const expected = crypto
    .createHmac("sha256", process.env.BAYNOY_WHSEC!)
    .update(`${t}.${body}`)
    .digest("hex");
  if (v1 !== expected) return new Response("bad signature", { status: 401 });
  const evt = JSON.parse(body); // evt.type === "payment.succeeded"
  return new Response("ok");
}

REST API

Call it from any language

Baynoy is a plain REST API with Bearer auth — no SDK to install. The same request works from any HTTP client.

cURL

curl https://baynoy.com/api/v1/payments \
  -H "Authorization: Bearer sk_live_..."

JavaScript / TypeScript

await fetch("https://baynoy.com/api/v1/payments", {
  headers: { Authorization: "Bearer sk_live_..." },
});

Python

requests.get(
  "https://baynoy.com/api/v1/payments",
  headers={"Authorization": "Bearer sk_live_..."},
)

Webhook events

Eight types, one shape

payment.succeeded

A payment settled into your balance.

payment.failed

A payment was declined or expired.

payment.refunded

A refund completed, in full or in part.

payout.paid

A payout reached the destination account or wallet.

payout.failed

A payout was rejected and reversed.

dispute.opened

A cardholder opened a dispute or chargeback.

customer.created

A new customer was added via API or checkout.

invoice.paid

A recurring or one-off invoice was paid.

Reliability

Built to stay up

Multi-region deployment behind Cloudflare, automated failover, and 24/7 paging for our SRE on-call. The status page publishes every incident and post-mortem within 48 hours.

  • 99.95% uptime SLA on Pro and above
  • PCI DSS Level 1, SOC 2 Type II (in progress)
  • Versioned API — no silent breaking changes

Changelog

Latest releases
  • Multi-chain USDC + locked-rate FX

    USDC payouts on Solana, Base, Ethereum and Polygon with automatic lowest-fee routing.

    2026-05
  • Hosted Checkout v2

    Sandbox bridge, 12-language auto-detection, custom logo + accent color.

    2026-04
  • REST API v1, webhooks, SDKs

    Initial REST API, 8 webhook events, and 5 official SDKs released.

    2026-03
  • Idempotency-Key required on POST

    Doubled-charge protection on retried POST requests.

    2026-02

Ship the integration tonight

Sandbox keys, a CLI, and a typed SDK. Production unlocks after Tier 1 verification.