Welcome to spuke

Take card, wallet, bank and BNPL payments with one API — no PSP account required.

Welcome to spuke

spuke is a payments platform. You create a merchant account, we handle the PSP relationships (cards, wallets, SEPA, Klarna, iDEAL, and more), and you get one REST API to charge customers, run subscriptions, issue refunds and receive payouts to your bank.

This section gets you from zero to your first live payment.

What you can do with the API

Capability Endpoint Docs
One-off payment POST /v1/checkout/sessions Checkout Sessions
Recurring billing POST /v1/subscriptions Subscriptions
Invoicing POST /v1/invoices Invoices
Catalog POST /v1/products · POST /v1/prices Products
Refunds POST /v1/refunds Refunds
Realtime updates Webhooks How webhooks work

Everything is JSON over HTTPS. Base URL: https://api.spuke.com/v1.

Quickstart (5 minutes)

1. Onboard your merchant account. Sign in to the dashboard, complete the 15-step onboarding, and wait for approval. You must be active before live keys work.

2. Grab an API key. Dashboard → DevelopersAPI keys. You'll get two:

  • sk_test_… — sandbox, no real money, no payout.
  • sk_live_… — real money.

Treat these like passwords. See API security best practices.

3. Make your first charge.

curl -X POST https://api.spuke.com/v1/checkout/sessions \
  -H "Authorization: Bearer sk_test_…" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: order_0001" \
  -d '{
    "amount": 2500,
    "currency": "eur",
    "customer_name":  "Jane Doe",
    "customer_email": "jane@example.com",
    "success_url": "https://example.com/thanks",
    "cancel_url":  "https://example.com/cart"
  }'

Redirect the buyer to the returned checkout_url. Use test card 4242 4242 4242 4242 with any future expiry and any CVC.

4. Receive the webhook. Add an endpoint at Dashboard → Developers → Webhooks and listen for checkout.session.completed. Always verify the signature — instructions here.

Core concepts

  • Merchant account. Your business on spuke. Owns your keys, products, transactions, payouts.
  • Session / Subscription / Invoice. Three ways to collect money. Pick by use case.
  • client_secret. Short-lived token used by the browser to confirm a payment. Never trust it as proof of payment — details.
  • Fees. Per-plan, per-method, calculated in EUR and deducted per transaction. See Fees.
  • Payouts. Automatic, on your configured schedule (daily/weekly), to your verified bank account.

Environments

Mode Keys Money Payouts
Test sk_test_… / pk_test_… No No
Live sk_live_… / pk_live_… Yes Yes

Both modes share the same base URL and endpoints. The key alone decides which environment you hit.

Idempotency, errors, rate limits

  • Send Idempotency-Key: <your-key> on every mutating request. Safe retries, no duplicate charges.
  • Errors follow a stable shape: { "error": { "type": "…", "message": "…", "param": "…" } }. See Error reference.
  • Default limits: 60 req/min per key for reads, 20 req/min for writes. 429 rate_limited includes a Retry-After header.

Where to next