Base URL & environments
All routes live under/v3, e.g. https://api.beta.suby.fi/v3/payments. Authenticate with the X-Suby-Api-Key header · the environment comes from your key prefix (sk_live_… / sk_sandbox_…), not a header.
During the beta the API is served at
api.beta.suby.fi; api.suby.fi still
serves v2. Update your base URL at GA.How money moves
Every payment starts with a checkout session. You describe what to charge, we host the page that collects the card. That is the whole integration · and it is why no card data ever reaches your servers.CARD, APPLE_PAY, GOOGLE_PAY, KLARNA, IDEAL, BANCONTACT, TWINT, BLIK, AFFIRM, ALMA, BILLIE, SCALAPAY, MULTIBANCO, PAYPAL, SEPA_DIRECT_DEBIT, ACH_DIRECT_DEBIT) or crypto. Which ones appear is your account configuration, never the acquirer’s.
A session on a product that carries a recurringInterval also opens the subscription and bills its first cycle. Card renewals then run off-session with smart retry; crypto renewals go through a per-cycle email. You never call the API for cycle N+1.
The two exceptions
POST /v3/payments/off-session exists for the cases a hosted page cannot serve:
A card charge with the buyer present is refused there. There is no tokenization SDK, and no way to bring your own token.
Crypto networks
Payments settle same-chain into stablecoins. Which assets your account accepts is set per environment in your account configuration.
Sandbox is limited to Base Sepolia (
84532, USDC/ETH).
Get started
- Create an account at dashboard.suby.fi.
- Generate an API key in settings · shown once.
- Create a product, then a checkout session.
- Register a webhook endpoint in the dashboard, and verify signatures on your side.
- Accepting cards? Complete business verification in the dashboard onboarding.
Quickstart
Product to first payment, in a few requests.
Authentication
Keys, environments, sandbox.
Webhooks
Events, payloads, signature verification.
API Reference
Every endpoint and field.

