payments infrastructure

One API for cash-in,
cash-out and settlement.

Sckaler moves money across mobile money, bank rails and cards behind a single ledgered API — with idempotency, webhooks and reconciliation built in, not bolted on.

live

A transfer, end to end.

cash-in · live200 · 118ms
$ curl -X POST https://api.sckaler.com/v1/cash-ins \
-H "Authorization: Bearer sk_live_..." \
-H "Idempotency-Key: 9f31c0a2" \
-d '{"amount":25000,"currency":"XOF","channel":"mobile_money"}'
{ "id": "cin_01J8Z...", "status": "pending", "amount": 25000,
"currency": "XOF", "channel": "mobile_money" }
webhook cash_in.succeeded delivered in 1.2s
$

The same call in sandbox returns the same shape against simulated rails — swap the key, not the code.

what you get

Three guarantees, not a feature list.

double-entry

Ledgered by default

Every movement writes a balanced pair of entries. Balances are derived, never patched, so the ledger and the API cannot drift apart.

exactly-once

Idempotent writes

Replay any request with the same key and get the same resource back. Retrying after a timeout is safe by construction.

signed + retried

Webhooks that arrive

Signed payloads, exponential backoff, and a delivery log you can inspect and replay from the dashboard.

how it works

Four steps, then it is boring.

01 — issue a keysk_live_…

Scoped API keys per environment, rotated without downtime.

02 — post a transfer201 Created

One endpoint per direction: cash-in and cash-out, same shape.

03 — receive the webhookcash_in.succeeded

The terminal state arrives signed; no polling loop to maintain.

04 — reconcileledger == provider

Daily statements match the ledger line for line, or we flag it.

pricing

Per environment, not per call.

Sandbox$0/mo

The full API surface against simulated rails.

all endpointswebhooks2 seats
Growth$249/mo

Live rails, production keys and same-day settlement reporting.

live railsunlimited seats99.9% SLAemail support
PlatformCustom

Dedicated capacity, custom rails and a named engineer.

private railsSSOaudit exportshared channel

Rail fees are passed through at cost and itemised on every statement.

in production

We replaced four provider integrations and a spreadsheet with one endpoint. Reconciliation went from a weekly ritual to a dashboard we glance at.

A. KoneHead of Engineering, Marketplace

The idempotency contract is the part that changed how we build. Retrying is boring now, which is exactly what you want from money.

M. DialloStaff Engineer, Fintech