B2B WALLET INFRASTRUCTURE

Money moves.
Make every move count.

Build your merchant wallet business on a foundation you can account for. Collections, balances and payout workflows, connected to one double-entry ledger.

Early access · Design partners

FROM COLLECTION TO CLOSE
Customer collectionUSD 1,000.00
Platform feeUSD 20.00
Merchant balance
USD 980.00Balanced ledger entries Σ 0
Controlled payoutSecond approval required
Illustrative workflow · simulated funds
Your brandYour provider relationshipsYour operating controls

01 / THE OPERATING LAYER

A wallet is a balance. A business needs the whole picture.

Give product, engineering and finance a shared view of how money moves. Start with the merchant workflow that matters to your business.

Collect with context

Connect each collection to the merchant, its fee and its ledger record. Scope local payment rails with your contracted providers.

Keep balances explainable

Follow available and reserved funds back to double-entry postings. Give merchants a clear view of their money.

Put control around payouts

Explore approvals, restrictions and uncertain provider outcomes in the simulated merchant demo.

Close with evidence

Walk through statement matching, fee exceptions and an evidence export. See what finance needs before a pilot.

Evidence, not adjectives

Books that reconcile to the entry.

An independent audit recomputed the entire ledger directly from raw records, no trusting the software's own checker. Every figure below is cited to that audit and to the load baseline, and every number is from testing on synthetic data.

5,455,009
ledger entries recomputed with zero exceptions

Independent SQL audit, 2026-08-18. Conservation, reconciliation, authorisation and lifecycle checks all returned zero over 5 ledgers.

0
balance drift across 7,463 accounts

Cached balances vs. balances recomputed from full history. Total absolute drift: 0.

1,394,739
reward grants tie out exactly to the ledger

Domain records reconciled against ledger postings on both count and amount. Zero missing, duplicate, or non-positive grants.

1,600 tx/s
payments delivered on a single database writer

Synthetic benchmark on managed Postgres (Aurora Serverless v2), 2026-08-26. 100% completion through 1,600 tx/s, with the writer near a quarter of capacity. Correctness invariants held throughout.

02 / BUILT FOR YOUR ENGINEERS

Your product on the outside. Accountable money movement underneath.

A documented REST API connects your experience to the wallet engine and its separate ledger of record. Inspect the integration before committing to a design partnership.

Open the docs
# Fund a wallet, then send money. Balances only move on the ledger.
curl -sS -X POST "$WALLETD_API/v1/users" \
  -H "Authorization: Bearer $WALLETD_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: usr-42-create" \
  -d '{"external_id":"user-42","kind":"consumer","display_name":"Ada Lovelace","handle":"ada"}'

curl -sS -X POST "$WALLETD_API/v1/transfers" \
  -H "Authorization: Bearer $WALLETD_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: xfer-ada-grace-001" \
  -d '{"from":"user-42","to":"@grace","amount":2500,"currency":"USD"}'
client := walletd.New(os.Getenv("WALLETD_API"), os.Getenv("WALLETD_API_KEY"))

var transfer walletd.Transfer
err := client.Do(ctx, http.MethodPost, "/v1/transfers", map[string]any{
    "from":     "user-42",
    "to":       "@grace",
    "amount":   2500, // minor units, $25.00, never a float
    "currency": "USD",
}, &transfer, "xfer-ada-grace-001") // idempotency key
if err != nil {
    return fmt.Errorf("transfer: %w", err)
}
client = WalletD()  # reads WALLETD_API / WALLETD_API_KEY

transfer = client.request(
    "POST",
    "/v1/transfers",
    {
        "from": "user-42",
        "to": "@grace",
        "amount": 2500,      # minor units, $25.00
        "currency": "USD",
    },
    idempotency_key="xfer-ada-grace-001",
)
print(transfer["status"])  # "settled"
const res = await fetch(`${API}/v1/transfers`, {
  method: "POST",
  headers: {
    Authorization: `Bearer ${API_KEY}`,
    "Content-Type": "application/json",
    "Idempotency-Key": "xfer-ada-grace-001",
  },
  body: JSON.stringify({
    from: "user-42",
    to: "@grace",
    amount: 2500, // minor units, $25.00
    currency: "USD",
  }),
});
const transfer = await res.json();
$transfer = $walletd->request('POST', '/v1/transfers', [
    'from'     => 'user-42',
    'to'       => '@grace',
    'amount'   => 2500,      // minor units, $25.00
    'currency' => 'USD',
], idempotencyKey: 'xfer-ada-grace-001');

echo $transfer['status']; // "settled"
var body = Map.of(
    "from", "user-42",
    "to", "@grace",
    "amount", 2500,      // minor units, $25.00
    "currency", "USD");

Transfer transfer = client.post(
    "/v1/transfers", body, "xfer-ada-grace-001", Transfer.class);

One platform

Every movement lands in the ledger of record.

A documented REST API connects your experience to the wallet engine and its separate ledger of record. Inspect the integration before committing to a design partnership.

BEFORE WE TALK

Good questions. Clear answers.

What is B2B wallet infrastructure?

B2B wallet infrastructure is the software behind a business’s wallet product: balances, transaction records, payment workflows and operational controls. WalletD connects those money paths to a separate double-entry ledger.

Who is WalletD designed for?

WalletD is designed for licensed payment service providers and suitably sponsored operators with an existing merchant distribution channel. Marketplace and rewards teams can also explore the underlying platform.

Can we use our own brand and infrastructure?

WalletD supports branded product experiences and dedicated partner deployments. We scope hosting, integrations and support with each partner. The ordinary software subscription does not include source-code distribution.

Is WalletD ready to move live customer money?

WalletD is in early access. The merchant demo uses simulated providers and funds. A live-money pilot requires contracted providers, approved identity checks, production readiness and the partner’s operating permissions.

Does WalletD provide a payment licence or custody?

WalletD supplies software and contracted support. The partner owns regulated operations, provider agreements and the permissions required for its service. WalletD is not a substitute for those arrangements.

Early access

Become a design partner.

Bring us your collection-to-payout workflow. We are working with design partners building merchant wallet and payment products. Talk directly with the engineers building the platform.