BuffMoneyBuffMoney
Get started

Quick start.

Sign up, mint a sandbox key, send one usage event. Five minutes, no SDK.

1. Sign up

Email + password at /signup. You'll land in a sandbox dashboard immediately — no KYC needed yet.

2. Mint a sandbox API key

Open /merchant/developer Create API key → label it "Quickstart", environment sandbox, scopes customer:write + usage:write + invoice:read. Copy the token — it's shown once.

BUFFMONEY_API_KEY=bm_sandbox_YOUR_KEY_ID.YOUR_SECRET

3. Sync a test customer

From your backend, upsert the customer identifier you already use in your product. The dashboard form is only for sandbox tests or one-off corrections.

curl https://www.buffmoney.com/api/v1/customers \
  -H "Authorization: Bearer bm_sandbox_YOUR_KEY.YOUR_SECRET" \
  -H "Content-Type: application/json" \
  -d '{
    "customers": [
      {
        "externalId": "user_42",
        "name": "Jane Chen",
        "email": "jane@example.com"
      }
    ]
  }'

4. Send your first usage event

From your backend, any language. curl example:

curl https://www.buffmoney.com/api/v1/usage-events \
  -H "Authorization: Bearer bm_sandbox_YOUR_KEY.YOUR_SECRET" \
  -H "Content-Type: application/json" \
  -d '{
    "events": [
      {
        "customerExternalId": "user_42",
        "idempotencyKey": "evt_quickstart_001",
        "metric": "tokens_input",
        "quantity": "1000",
        "occurredAt": "2026-05-25T10:00:00Z"
      }
    ]
  }'

Success response:

{
  "ok": true,
  "accepted": 1,
  "duplicate": 0,
  "rejected": 0,
  "results": [
    { "idempotencyKey": "evt_quickstart_001", "status": "accepted", "eventId": "..." }
  ]
}

5. See it in the dashboard

Refresh /merchant/usage — your event shows up at the top. Replay the same idempotencyKey and you'll see duplicate: 1 in the response — proof the dedup works.

What's next