Payment orchestration gateway

One API. Every way to pay.

One REST integration. 40+ payment methods. Smart routing sends every transaction to the provider most likely to approve it — and fails over automatically when one doesn't.

This exact request runs in the API playground — keys auto-provisioned, no signup, no money moved.

POST /v1/payments
curl https://api.finscale.dev/v1/payments \
  -H "Authorization: Bearer sk_test_51FinscaleDemo…" \
  -H "Idempotency-Key: idem_ord_9f21_0716" \
  -H "Content-Type: application/json" \
  -d '{
    "amount": 4900,
    "currency": "EUR",
    "payment_method": "ideal",
    "reference": "ord_9f21_0716",
    "customer": { "email": "anna@example.com" },
    "return_url": "https://shop.example.com/checkout/return"
  }'

40+payment methods
1API across every provider
3API calls to your first charge
99.99%availability design target

01 — One integration

One integration, every method

Cards are table stakes. Your customers in Amsterdam pay with iDEAL, in São Paulo with PIX, in Mumbai with UPI. Finscale puts all of them behind the same payment_method field — you never integrate a method twice.

UPIupiIndia · Real-time
PayPalpaypalGlobal · Wallet
AlipayalipayChina & Asia · Wallet
WeChat Paywechat_payChina & Asia · Wallet
KlarnaklarnaEU, UK & US · Buy now pay later
OXXOoxxoMexico · Voucher
PIXpixBrazil · Real-time
iDEALidealNetherlands · Bank redirect
BLIKblikPoland · Real-time
Apple Payapple_payGlobal · Wallet
M-PesampesaKenya · Mobile money
SEPA Direct Debitsepa_debitEU · Direct debit
USDCusdcGlobal · Crypto
+30 more →Swish · Vipps · TWINT · Trustly · PromptPay · Kakao Pay · Boleto · ACH…

Browse the full method catalog →

02 — Smart routing

Routing that pays for itself

Behind your one integration sits a pool of payment providers — acquirers and PSPs you never touch directly. Each is an opaque provider id like prov_eu_acq_01.

  • Smart routing. Every transaction is scored per provider: cost, historical auth-rate for that method and currency, live health, your rules. The best one wins.
  • Automatic failover. A timeout or retriable decline moves the payment to the next-best provider inside the same API call. No merchant code involved.
  • Per-merchant rules. Pin a corridor — BRL PIX through prov_br_psp_01 — or cap any provider's share of your traffic.

The response tells you who processed it: "provider": "prov_eu_acq_02". One point of auth-rate on €1,000,000 of monthly volume is €10,000 a month you stop losing.

Your server POST /v1/payments Finscale smart routing attempt 1 · timeout prov_eu_acq_01 timed out attempt 2 · approved prov_eu_acq_02 approved prov_us_psp_01 standby

Attempt 1 on prov_eu_acq_01 times out. Finscale retries on prov_eu_acq_02 — approved. One API call, two attempts, zero merchant code.

03 — Developer experience

Built for developers

The same payment in curl, Node, or Python. Idempotent by design, signed end to end, testable down to the failover path.

POST /v1/payments
curl https://api.finscale.dev/v1/payments \
  -H "Authorization: Bearer sk_test_51FinscaleDemo…" \
  -H "Idempotency-Key: idem_ord_9f21_0716" \
  -H "Content-Type: application/json" \
  -d '{
    "amount": 4900,
    "currency": "EUR",
    "payment_method": "ideal",
    "reference": "ord_9f21_0716",
    "customer": { "email": "anna@example.com" },
    "return_url": "https://shop.example.com/checkout/return"
  }'

# → 201 · "status": "requires_action" · "provider": "prov_eu_acq_01"

Idempotency keys

Send Idempotency-Key on every POST. Retries replay the original response for 24 hours — never a double charge.

Signed webhooks

Every event carries Finscale-Signature (HMAC-SHA256). Verify, then trust. Retried with backoff for 72 hours.

Test mode that behaves

Test cards for every outcome. Amount 4999 forces a first-provider decline so you can watch failover live.

One error model

Six error types, machine-readable codes, a request_id on every response. The same envelope from every provider.

04 — Operations

Operations without the spreadsheet

Multiple providers usually means multiple settlement files, multiple dashboards, multiple versions of the truth. Finscale gives you one.

Unified reconciliation

Every provider's settlement files normalized into one ledger. Match payments to payouts without opening a spreadsheet.

Refunds that follow the payment

POST /v1/refunds against the payment id — full or partial. Finscale routes it to whichever provider processed the original.

Settlement reports

Per-currency reports like stl_2026_07_16_eu01, fetchable via API. settlement.report.ready fires the moment they land.

Provider health

Live auth-rates, latency, and error rates per provider id. provider.health.changed fires before your dashboard turns red.

05 — FAQ

Questions, answered

Do I sign contracts with each payment provider?

No. You contract with Finscale once. The providers behind the API are opaque provider ids — we add, tune, and retire them with zero code changes on your side.

How does smart routing choose a provider?

Per transaction: cost, historical auth-rate for that method, currency, and region, live provider health, and your routing rules. The winner is returned on the payment as provider.

What happens on a decline or timeout?

Timeouts and retriable declines fail over to the next-best provider inside the same API call. Try it in test mode: amount 4999 forces a first-provider decline.

Which payment methods can I offer?

Cards plus 40+ methods — iDEAL, PIX, UPI, BLIK, Klarna, OXXO, M-Pesa, Apple Pay, PayPal, Alipay, USDC and more. One integration covers the full catalog.

How do refunds work if the provider changed?

Refund the payment, not the provider: POST /v1/refunds with "payment": "pay_8Q2mX4nT1cVb". Finscale routes the refund to the provider that processed the original.

How does Finscale handle PCI DSS?

Finscale is built to PCI DSS Level 1 standards. With hosted checkout, card data never touches your servers — which keeps your own compliance scope as small as it gets.

06 — About

Why Finscale exists

Accepting payments in more than one market still means stitching together several provider integrations — each with its own API, its own settlement file, its own failure modes. Teams spend quarters on plumbing their customers never see, and every new market starts the project again.

Finscale is the layer we kept rebuilding, built once and done properly: one API in front of many providers, with routing, failover, reconciliation, and reporting handled centrally. Adding a market becomes a parameter, not a project. The gateway is the product — there is nothing else on the roadmap.

Three API calls to your first charge.

Create a payment, redirect your customer, listen for the webhook. Test mode is free and sk_test keys never move real money.