For developers

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.

Architecture

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.

Nexus Control Planeadmin.dogmanexus.comHub APIvendor gateway · M2M authSpoke: AcmeCloud RunPostgresacme.dbSpoke: NovaCloud RunPostgresnova.dbSpoke: VegaCloud RunPostgresvega.dbSpoke: OrbitCloud RunPostgresorbit.dbDogmastaff onlyCentral DogmaPer business
Developer experience

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

http
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

C#
// 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.
Platform capabilities

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.