Built by engineers who've operated real payments.
Every safeguard in the platform came from a real incident. We ported the hard-won lessons; we did not port the technical debt.
Hub, Spoke, and Nexus
Three backend systems with sharp responsibilities. One vendor gateway, N isolated business Spokes, and a control plane you'll never see.
A boring API for a boring-on-purpose platform
No hidden state, no chained callbacks, no fragile SDK singletons. Just HTTP + JSON + Idempotency-Key, everywhere.
Your app → your Spoke
POST /api/dmt/transfer
Host: spoke.acme.dogmanexus.com
Authorization: Bearer <firebase-jwt>
X-Context-Token: <context-token>
Idempotency-Key: 5b6a2c73-...
{
"senderId": "snd_9f2...",
"beneficiaryId": "bnf_a41...",
"amount": "1500.0000",
"mode": "IMPS"
}Your Spoke → the Hub
// Spoke → Hub, via HubApiClient
var resp = await _hub.TransferDmtAsync(new DmtHubRequest {
ClientRef = txn.Id,
IdempotencyKey = ctx.IdempotencyKey,
Sender = sender.ToDto(),
Beneficiary = bene.ToDto(),
Amount = amount, // decimal(19,4)
Mode = TransferMode.IMPS,
}, ct);
// Enqueued via OutboxMessage in the same DB transaction
// as the wallet debit — either both happen or neither.What you get out of the box
One API surface
Ten payment services, sixteen vendor integrations, one consistent request/response contract. Switch vendors without touching your app code.
Two-token auth
Firebase for identity, Context Token for capability. Header-sized token, DB-backed permission fingerprint, 60s revocation.
Signed webhooks
Vendor callbacks arrive at the Hub, are signed with your webhook secret, and forwarded to your Spoke. Signature + ProcessedWebhook table prevent spoofing and duplicate settlement.
Idempotency by default
Every money-moving endpoint requires an Idempotency-Key. Unique constraint at the DB level. Same key twice returns the cached response — never re-executes.
Transactional outbox
Outbound Hub calls and internal state changes are committed atomically. A worker drains the outbox — a Spoke crash between debit and Hub call is fully recoverable.
OpenAPI + TypeScript
Every service publishes an OpenAPI spec. The @dogma-nexus/sdk NPM package is generated from it — end-to-end types from your React app to the Hub.
All systems operational
Live status, per service, per region. Subscribe for incident updates.
Ready to launch a fintech of your own?
We onboard new businesses in about a week. You'll walk out with a live Spoke, your own database, your own Firebase project, and a customer portal at your domain.