[ account aggregation × consent ]

Every account.
One consent.

Sluice connects your product to 2,418 banks in 31 countries, asks users for permission in plain language, and keeps every account in sync until they say stop.

Institutions live

2,418

Connections today

184,206

Connections today

184,206

p95 sync

412 ms

p95 sync

412 ms

Revoked today

3,904

Revoked today

3,904

dashboard.sluice.dev/connect/sessions/cs_7Hq2● LIVE
Institutionshealth
HMHalden Mutual99.4%
NBNorthgate Bank99.1%
BLBanco Lume98.7%
CRCrédit Rivière99.6%
KSKestrel Savings97.9%
Consent · Ledgerlyawaiting user
Ledgerly wants read access to your Halden Mutual accounts.
Balancesread
Transactions · 24 moread
Account detailsread
Identitynot requested
Expires in 90 daysRevocable anytime
Approve access
Current ••4821
£0.00
Savings ••0937
£0.00
Card ••5512
£0.00
Eventswebhooks → api.ledgerly.app

Live on Sluice

  • ◐

    Ledgerly

    1,284 live

  • ▲

    Fernway

    862 live

  • ◆

    Tallow

    2,031 live

  • ▣

    Corrigan Pay

    4,418 live

  • ◯

    Brightlane

    957 live

  • ✦

    Oakmoor

    3,120 live

A hand holds a phone at night while a bank consent screen asks for read access
9:41
LedgerlySecured by Sluice
Connect your bank
Pick your bank. You sign in with them, never with Ledgerly.
Search 2,418 banks
HMHalden
NBNorthgate
BLBanco
CRCrédit
KSKestrel
UFUnion
Secured by Sluice
LHM
Ledgerly wants to read your Halden accounts
BalancesCurrent and available
TransactionsLast 24 months
IdentityNot needed by Ledgerly
VALID UNTIL 01 FEB 2027 · REVOKE ANYTIME
Allow access
Not now
Secured by Sluice
3 accounts linked
£18,204.51
HMCurrent•• 4821£12,480.22
HMSavings•• 0937£5,210.07
HMCard•• 5512£514.22
Manage access in Settings › Connected banks

[

01

·

the consent moment

]

Permission your users actually read.

01

Pick a bank, never a password

02

Share exactly what is needed

03

Linked in seconds, revoked in one tap

Node

Python

cURL

connect

import { Sluice } from ‘@sluice/node’;

const sluice = new Sluice(process.env.SLUICE_KEY);
const session = await sluice.connect.sessions.create({
user: ‘user_31c’,
scopes: [‘balances’, ‘transactions’],
});
// send session.url to your user

201 Created · 84 ms

id cs_7Hq2
url https://connect.sluice.dev/cs_7Hq2
expires_in 900

Node

Python

cURL

connect

import { Sluice } from ‘@sluice/node’;

const sluice = new Sluice(process.env.SLUICE_KEY);
const session = await sluice.connect.sessions.create({
user: ‘user_31c’,
scopes: [‘balances’, ‘transactions’],
});
// send session.url to your user

201 Created · 84 ms

id cs_7Hq2
url https://connect.sluice.dev/cs_7Hq2
expires_in 900

[

04

·

connection lifecycle

]

Consent has a lifetime.

We keep it honest.

Every connection is born with an expiry. Sluice syncs it, warns before it lapses, renews it in one tap and closes it the second a user says stop. Your webhooks hear about each step.

Every connection is born with an expiry. Sluice syncs it, warns before it lapses, renews it in one tap and closes it the second a user says stop. Your webhooks hear about each step.

01 · active

Linked, and you know it.

The moment a user approves, you get a scoped token and a connection object you can read, store and show back to them.

connection.created

02 · sync

Fresh data, without polling.

Balances and new transactions arrive on a schedule you set. Sluice retries the bank, not your servers.

transactions.available · 38 new

03 · expiring

A warning a week ahead.

Seven days before consent lapses, you hear about it and so does your user. Nobody finds out from a failed sync.

connection.expiring · in 7 days

04 · re-auth

Renewed in one tap.

The user confirms the same scopes again from a link you send. The connection keeps its id, your data keeps its history.

connection.reauthorized · +90 days

05 · revoked

Stop means stop.

When a user revokes access, from your app or from their bank, the token dies at once and you get the event to delete what you hold.

consent.revoked · token destroyed

HM

L

Halden Mutual → Ledgerly

conn_4Vb81 · 3 accounts

Active

active

sync

expiring

re-auth

revoked

Last sync

2 min ago

Balance

£18,204.51

Transactions

1,284

Consent expires

Feb 1, 2027

Consent validity

Day 17 of 90

balances · read

transactions · 24 mo

account details

09:41:14

consent.granted

200

09:41:07

connection.created

201

[

05

·

security

]

Revocation is a feature, not a ticket.

Every grant lands in a consent ledger your users and your auditors can read. A revoke closes the token at once, wherever it starts.

App

Scopes

Granted

Expires

State

Ledgerly

balances, txns

Oct 12, 2026

Jan 10, 2027

Active

Fernway

txns, identity

Sep 28, 2026

Dec 27, 2026

Active

Tallow

balances

Sep 2, 2026

Dec 1, 2026

Active

Brightlane

txns

Aug 14, 2026

Nov 12, 2026

Revoked

Oakmoor

balances, txns

Jul 30, 2026

Oct 28, 2026

Active

App

Scopes

Granted

Expires

State

Ledgerly

balances, txns

Active

Fernway

txns, identity

Active

Tallow

balances

Active

Brightlane

txns

Revoked

Oakmoor

balances, txns

Active

Halden Mutual · settings

Apps with access to your accounts

L

Ledgerly

balances · transactions

Revoke

F

Fernway

transactions · identity

Active

T

Tallow

balances

Active

your webhook endpoint

waiting for events…

Halden Mutual · settings

Apps with access to your accounts

L

Ledgerly

balances · transactions

Revoke

F

Fernway

transactions · identity

Active

T

Tallow

balances

Active

your webhook endpoint

waiting for events…

01 · credentials

Never stored, never seen

Users sign in with their bank. Sluice and your app only ever hold scoped tokens.

02 · scopes

Only what was granted

Each token carries its scopes. A call outside them is refused, not logged and forgiven.

03 · encryption

Encrypted at rest and in transit

Tokens and account data are encrypted with keys rotated every 90 days.

04 · audit

A trail you can export

Grants, renewals and revokes are events. Export the ledger as CSV or stream it to your warehouse.

[

07

·

pricing

]

Pay for connections

that stay connected.

Free in sandbox. In production you pay per account that keeps a live consent, never per API call.

Sandbox

Free

test data, forever

Build the whole flow against test banks before you talk to anyone.

✓

100 live test connections

✓

Every product and webhook

✓

Shared test institutions

✓

Community support

No card needed

Growth

Most teams

$0.30

per connected account / month

Pay only for accounts that keep a live consent.

✓

Unlimited sessions and re-auth

✓

Balances, transactions, identity

✓

Webhooks with retries

✓

Email support, 1 business day

Billed monthly on active connections

Scale

Custom

volume pricing

For lenders and platforms above 50,000 connected accounts.

✓

Volume tiers from 50k accounts

✓

Dedicated connector reviews

✓

SSO and audit exports

✓

Named support engineer

Annual agreement

Estimate

1,000

connected accounts

×

$0.30

$300

per month

[

09

·

faq

]

Questions, answered.

Still unsure? Write to the team from the contact page; an engineer replies within two business days.

How long does a user's consent last?

Can users revoke access?

What data can Sluice read?

Is there a sandbox?

How do webhooks work?

Which banks do you cover?

Do you store bank passwords?

How is Sluice priced?

[ 10 · get started ]

Your first connection,

before lunch.

$ npx sluice init

✓ sandbox key created sk_test_••••4f2

✓ webhook endpoint registered /api/sluice

✓ test bank Halden Mutual connected

→ open http://localhost:3000/connect

> GET /v3/consent

412 ms

200 OK · consent granted

Sluice

© 2026 Sluice Inc.

Demo company and illustrative data.

Sluice

© 2026 Sluice Inc.

Demo company and illustrative data.

Sluice

© 2026 Sluice Inc.

Demo company and illustrative data.

Sluice template preview

Sluice® Template

$129 · one-time

Buy
Nova Studio

NOVA STUDIO

/ SECURED BY POLAR

Create a free website with Framer, the website builder loved by startups, designers and agencies.