Mono Colombia

Integration example

A realistic walkthrough of building a wallet on Core.

This page walks through building a consumer wallet on Core end-to-end: a product where end users hold a balance, top it up, send money to other users, and spend it through a virtual card. It is the canonical example for understanding how Core's services compose into a real product.

A wallet is the most common use case for Core. If you are building something else — a corporate-card program, a marketplace seller balance, a treasury system — the patterns here transfer directly; only the entity names change.

This page is an integration-example scaffold. The full version will include a complete narrative, code snippets per step, and a reference architecture diagram.

What you will build

A wallet that supports:

  • Onboarding — a user signs up and gets a ledger account.
  • Top-up — the user adds funds via PSE (Banking handles this; Core records the credit).
  • Card issuing — the user requests a virtual card spending against their ledger account.
  • Spending — the card is authorized in real time against the user's balance and limits.
  • W2W transfer — the user sends money to another wallet user.
  • Payout — the user withdraws to a Colombian bank account (Banking handles the rail; Core debits the ledger).

Architecture

The wallet sits on three Core services and one Banking service:

LayerServiceRole
Money inBanking — PSE collectionsPayer-initiated top-up
BalanceCore — LedgerPer-user account, every cent recorded
SpendingCore — Cards + Spending ControlsCard issuing + real-time authorization
Money outCore — Payouts → BankingWithdrawal to external bank

Walkthrough

The full walkthrough — onboarding code, top-up handling, card issuing, real-time authorization, W2W transfer, and payout — will be added here.

Next steps

  • Ledger — the data model that anchors the wallet.
  • Cards — issuing and lifecycle.
  • Best practices — production considerations.

On this page