Lux Financial
Banking & Treasury

Treasury (treasuryd)

Multi-provider treasury management with double-entry ledger, OFAC compliance, and 13 banking/payment providers.

Treasury — Institutional Banking and Payments

treasuryd is a multi-provider treasury management platform that unifies 13 banking, payment, card issuing, and compliance providers behind a single API. It includes a double-entry bookkeeping ledger and OFAC sanctions screening engine.

Providers

Banking (6)

ProviderCapabilities
MercuryBusiness banking, ACH, wires
ColumnDirect Fed member — ACH, wire, RTP, FedNow
Bridge (Stripe)Stablecoin orchestration, fiat on/off ramp
IncreaseBanking infrastructure — ACH, wire, RTP, check deposits
Modern TreasuryPayment operations, virtual accounts, ledger
UnitBaaS — white-label checking and savings

Payments (4)

ProviderCapabilities
StripeTreasury BaaS, financial accounts, payouts
SquarePayments, commerce, invoicing
WiseInternational transfers, multi-currency, competitive FX
CurrencyCloud (Visa)Institutional FX, cross-border payments (35 currencies)

Cards (2)

ProviderCapabilities
LithicVirtual + physical cards, spend controls, real-time auth, tokenization
MarqetaCard issuing, JIT funding, transaction controls

Compliance (1)

ProviderCapabilities
PlaidBank account linking, identity verification, balance checks

Double-Entry Ledger

The built-in ledger provides journal-entry-based accounting:

POST /api/v1/ledger/entries
{
  "description": "Wire from Mercury to Column",
  "entries": [
    { "account": "mercury-operating", "debit": 50000 },
    { "account": "column-settlement", "credit": 50000 }
  ]
}

All entries must balance (total debits = total credits). The ledger provides per-account balance queries and full audit trail.

OFAC Sanctions Screening

Every counterparty is screened against the Treasury Department SDN (Specially Designated Nationals) list:

POST /api/v1/compliance/screen
{
  "name": "Acme Corp",
  "country": "IR"
}

Returns match score and blocked status. Screening runs automatically on counterparty creation and payment initiation.

API Endpoints

All endpoints on :8091 (configurable via TREASURY_LISTEN).

Accounts

MethodPathDescription
POST/api/v1/{provider}/accountsCreate bank account
GET/api/v1/{provider}/accountsList accounts
GET/api/v1/{provider}/accounts/{id}Get account
GET/api/v1/{provider}/accounts/{id}/balanceGet balance

Payments

MethodPathDescription
POST/api/v1/{provider}/paymentsCreate payment (ACH, wire, RTP, card)
GET/api/v1/{provider}/paymentsList payments
GET/api/v1/{provider}/payments/{id}Get payment status
DELETE/api/v1/{provider}/payments/{id}Cancel payment

FX

MethodPathDescription
GET/api/v1/{provider}/fx/quoteGet FX quote
POST/api/v1/{provider}/fx/convertExecute conversion
GET/api/v1/{provider}/fx/conversionsList conversions

Counterparties

MethodPathDescription
POST/api/v1/{provider}/counterpartiesCreate counterparty (auto-screened)
GET/api/v1/{provider}/counterpartiesList counterparties

Configuration

Env VarDescription
TREASURY_LISTENListen address (default :8091)
MERCURY_API_KEYMercury
COLUMN_API_KEYColumn
BRIDGE_API_KEYBridge
INCREASE_API_KEYIncrease
MODERN_TREASURY_ORG_ID / MODERN_TREASURY_API_KEYModern Treasury
UNIT_TOKENUnit
STRIPE_SECRET_KEYStripe Treasury
SQUARE_ACCESS_TOKENSquare
WISE_API_TOKEN / WISE_PROFILE_IDWise
CURRENCYCLOUD_LOGIN_ID / CURRENCYCLOUD_API_KEYCurrencyCloud
LITHIC_API_KEYLithic
MARQETA_APP_TOKEN / MARQETA_ACCESS_TOKENMarqeta
PLAID_CLIENT_ID / PLAID_SECRETPlaid

Source

  • Repository: luxfi/treasury
  • Language: Go
  • Key packages: pkg/provider, pkg/ledger, pkg/compliance, pkg/api

On this page