Ledgerline
v3 core · PCI-DSS L1 · settling live in 41 markets

Authorize, route and settle on a single primitive.

Ledgerline is the dark-fiber payments core for fintechs — one API that scores risk, picks the cheapest rail, and posts a double-entry ledger that balances to the cent, with a 48ms P95 and idempotency on every write.

$ npm i @ledgerline/core
Authorized · last 24h
$2.41B
+6.8% vs Tue
Authorization rate
99.42%
+0.31pp vs Tue
P95 auth latency
48ms
−3ms vs Tue
Settlement breaks
0
409 days clean
ledgerline › auth stream · prod-eu-west
streaming
time
auth
amount
rail
status
14:22:08.41
visa ····4291 · risk 0.03
€84.20
card
AUTH
14:22:08.52
payout · batch #7741 · routed
€12,400.00
sepa
SETTLED
14:22:08.74
fx · USD→JPY @ 156.84 · hold
¥318,402
fx
3DS
14:22:08.91
debit · acct ··6620 · idem hit
$2,059.14
ach
SETTLED
14:22:09.10
visa ····0078 · velocity flag
$149.00
card
BLOCK
14:22:09.33
USDC → bank · base · settled
$9,800.00
chain
SETTLED
double-entry · debits = credits · Δ 0.00 book balanced
Throughput · settled / min
live
Peak / min
$612K
Median auth
29 ms
False decline
0.18%
Uptime · 90d
99.995%
regions: us · eu · apac 4,000 auth/s sustained
Trusted to move money in production by
Mercury VANTAGE STRATA Halcyon Brightwave northwind. Coast/ Pavilion Mercury VANTAGE STRATA Halcyon Brightwave northwind. Coast/ Pavilion
Core

Six payment problems, one primitive solves all of them.

Authorization, routing, risk, settlement, reconciliation and webhooks share one ledger and one idempotency model — so a retry can never double-charge and a balance can never drift.

Double-entry core

A book that always balances.

Every movement posts two opposing entries inside one serialisable transaction. Query any account's balance at any millisecond — no nightly batch, no "pending vs available" guesswork.

POST /v3/transfers idempotent · 201
# one transfer = two ledger entries
{
  "amount": 8420,            # minor units
  "currency": "EUR",
  "source": "acct_user_8f3c",
  "destination": "acct_merch_a21",
  "rail": "auto",
  "idempotency_key": "ord_7741_v2"
}
→ debit  acct_user_8f3c    −€84.20
→ credit acct_merch_a21    +€84.20
Smart routing

The cheapest rail, picked per transaction.

Set rail: "auto" and Ledgerline scores cost, speed and approval odds across every connected network — then fails over if the first attempt declines.

card_present
Visa · MC · Amex
ach_same_day
NACHA · RTP
sepa_instant
SCT Inst · <10s
stablecoin
USDC · Base · Sol
Risk & fraud

Scoring before authorization.

A network-trained model scores every auth in under 9ms, in-region. Tune thresholds per merchant — allow, step up to 3DS, or block.

tx_8f3c · score 0.03 · allow
tx_9a01 · velocity 0.91 · block
SDK

Three lines.

// typed, idempotent
const c = new Ledgerline(key);
await c.transfers.create(body);
Reconciliation

Settlement that ties out itself.

Acquirer files match against ledger entries automatically. Exceptions land in a queue — not a spreadsheet at month-end.

auto-match 99.7% T+0 reports CSV · webhook
Webhooks

Signed events, exactly once.

Every state change emits an HMAC-signed event with a monotonic sequence number. Replay any window; we de-dupe so your handler never double-counts a payout.

transfer.settled auth.declined dispute.opened payout.failed
v3 · stable
// charge a card, auto-route, settle to a payout — one call
import { Ledgerline } from "@ledgerline/core";

const c = new Ledgerline(process.env.CANTOR_KEY);

const charge = await c.charges.create({
  amount: 8420,
  currency: "EUR",
  source: "tok_visa_4291",
  rail: "auto",
  capture: true,
}, { idempotencyKey: "ord_7741" });

// charge.status → "settled"  ·  charge.fee → 158
// ledger auto-posts both entries · book stays balanced
Median latency
29 ms
API uptime · 90d
99.995%
Breaking changes
0
Built for engineers

Idempotency that's on by default.

Every write takes an idempotency key. Retry a timed-out request and Ledgerline returns the original result — never a double charge, never a duplicate payout. The same primitive guards webhooks, refunds and reversals.

  • Strongly-typed SDKs for Node, Python, Go and Ruby — generated from one OpenAPI spec.
  • Test mode mirrors production rails — including live FX rates and simulated declines.
  • Every response carries a request_id you can replay against in the dashboard.
  • Versioned by date — pin your version, upgrade when ready, zero forced migrations.
Read the API reference
Security & compliance

Audited the way your regulators audit you.

Funds held at tier-1 banking partners under our EMI licence, never commingled. Cardholder data is tokenized at the edge and never touches your servers. Continuous controls monitoring, evidence exported on demand.

SOC 2 Type II
PCI-DSS L1
ISO 27001
3DS2 / SCA
GDPR · DORA
EMI licensed
Encryption

Tokenized at the edge.

PANs are swapped for network tokens before they reach your backend. AES-256 at rest, TLS 1.3 in flight, keys rotated in an FIPS-140-2 HSM.

Funds

Safeguarded, never pooled.

Customer balances sit in segregated accounts at tier-1 partners. Reconcile your ledger against the safeguarding statement at any time via the API.

Evidence

Audit log you can export.

Every API call and admin action is written to a signed, append-only log. Stream it to your SIEM or export a regulator-ready bundle in one request.

Pricing

Per-transaction. No platform fee.

You pay on volume that actually moves. No minimums on Sandbox, no per-seat tax on your finance team, and the rate drops as you scale.

Sandbox

test mode
$0
/ month · 2.9% + 30¢ live

For prototypes and your first $50K of real volume.

  • Cards + ACH + SEPA rails
  • Full double-entry ledger API
  • 30-day transaction history
  • Community Slack support
Start free
Most popular

Scale

volume tiers
2.4%
+ 20¢ · drops to 1.9% at $2M/mo

For products processing real money at real scale.

  • All rails incl. instant payouts + FX
  • Smart routing + network risk scoring
  • Auto-reconciliation + T+0 reports
  • Signed webhooks · 99.99% SLA
  • Priority engineer support
Get API keys

Treasury

custom
IC+
interchange-plus · negotiated

For regulated platforms moving $100M+ across borders.

  • Interchange-plus pricing
  • Named banking partner + multi-entity
  • Dedicated BIN sponsorship
  • Solutions architect · 1h response SLA
Talk to treasury
Customers

Teams that can't afford a balance that's off by a cent.

"We collapsed four payment providers onto one Ledgerline book in six weeks. Smart routing alone lifted our auth rate by 1.4 points — that's real revenue we were leaving on the table."
IC
Ines Calderón
Head of Engineering · Vantage
"Idempotency keys are the whole reason we sleep at night. We retry aggressively at the network edge and have never double-charged a customer — 14 million transactions in."
YA
Yusuf Abara
CTO · Northwind
"Adding SEPA Instant and USDC payouts was a one-line rail change. Our European settlement dropped from two days to under ten seconds — no new integration."
HS
Hana Suzuki
Platform Lead · Halcyon
FAQ

Questions a payments lead actually asks.

Can't find it? Our solutions team answers integration questions in a shared Slack within an hour on business days.

How do you guarantee the ledger never goes out of balance? +

Every transfer writes two opposing entries inside a single serialisable transaction — if either fails, both roll back. A continuous invariant check sums all debits and credits per currency; any non-zero delta pages on-call immediately. In 409 days of production we've had zero settlement breaks.

What's your P95 authorization latency under load? +

For a card auth including risk scoring: P50 29ms, P95 48ms, P99 96ms, measured at 4,000 auths/sec sustained. Risk scoring adds under 9ms because the model runs in-region, not as a remote call.

How does smart routing decide which rail to use? +

With rail: "auto" we score each eligible network on landed cost, expected approval probability and settlement speed, weighted by the policy you set. If the chosen network declines for a retriable reason, we fail over to the next-best automatically — all under one idempotency key.

Are customer funds held separately from yours? +

Yes. Funds sit in safeguarded accounts at our tier-1 banking partners under our EMI licence, never commingled with operating capital. You can reconcile your ledger balance against the safeguarding statement at any time via the API.

Can I migrate off Ledgerline without lock-in? +

Your full ledger — every entry, balance and signed event — is exportable as newline-delimited JSON at any time, and stored card tokens are portable under PCI network rules. There's no exit fee and no data-egress charge.

Ship your first transfer this afternoon.

Test-mode keys are instant, the docs ship copy-paste snippets in four languages, and you only pay when real money moves.

$ curl https://api.ledgerline.dev/v3/charges