Skip to content
Agency One

Platform

Five parts, one platform.

The frontends people use, one API beneath them, a workflow engine and a double-entry ledger at the core, and connectors out to every provider.

Frontends

One app for staff, a portal for every other audience

Agency portalCustomer portalBusiness portalProvider portalKiosk and USSD

API

One versioned API, described before it is built

ServicesQuotesTransactionsApprovalsReports

Platform core

The work: every journey, every posting, every match

Catalog and pricingWorkflowLedgerCustomers and KYCNetwork and floatFinance and reconciliationTasks and approvalsNotifications

Connectors

Each provider met on its own terms

API connectorsFile and batchAssisted connectorsSandbox and certification

Providers

The institutions behind the services

BanksInsurersWalletsGovernmentUtilities

Across every layer

Identity and sign-onTwo-person controlAudit trailTenant isolationBrand per tenant

The frontends

One staff app, a portal for every other audience.

Staff work in one app whose areas open by role. Customers, businesses and providers each have a door of their own, on the same API and the same catalog. Every screen carries the operator's brand, colours and words.

  • Five roles, each seeing only what it may do
  • A new service is configuration, with no release
  • Each operator's look from one theme file

Agency portal, by role

  • AgentServes customers at the counter
  • SupervisorRuns the outlet, approves the sensitive moves
  • Super-agentHolds float across a group of outlets
  • Back officeReconciles the day, works the exceptions
  • AdminBuilds services, onboards providers
  • Agency portalStaff, one app with areas by role
  • Customer portalThe public: the same catalog, self-served
  • Business portalCorporate and government clients: bulk payouts, collections
  • Provider portalThe institutions behind the services: onboarding, volumes, settlement
  • Kiosk and USSDThe essential journeys without a person behind the counter
  • Mobile appThe customer portal in a pocket

The API

One API, described before it is built.

Every frontend, and any system of yours, works through the same versioned API. The contract is written first and the frontends' clients are generated from it, so a screen can never drift from the platform behind it.

  • Every write carries a key, so a retry never pays twice
  • Errors in one standard shape, naming the field that failed
  • Within a version, change only ever adds
  • GET/v1/servicesWhat this counter can sell
  • POST/v1/quotesPrice a service before payment
  • POST/v1/transactionsTake the payment, start the journey
  • GET/v1/transactions/{id}/receiptThe receipt, once confirmed
  • POST/v1/reversal-requestsAsk for a reversal, approved by a second person
201 Created
{ "serviceCode": "funeral-premium", "state": "processing",
  "total": { "amountMinor": 15500, "currency": "BWP" } }

The workflow

Every journey finishes, or undoes itself cleanly.

Each journey runs as a workflow. It reserves float, waits for a second approver when the service asks for one, calls the provider and posts to the ledger. A slow provider is retried; a failed step undoes the steps before it. Connectors never retry on their own, so nothing happens twice.

  • Retries, timeouts and undo in one place
  • Approvals wait in a queue while the counter serves the next customer
  • Float released when a journey fails, nothing left half done

Funeral premium, R-000021 Running

  1. Quote priced from the catalogP 155.00
  2. Second approverNot asked for
  3. Float reservedOutlet 014
  4. Partner insurer calledAttempt 2
  5. Posted to the ledger
  6. Receipt issued

The ledger

Double entry, in whole thebe.

Every movement is recorded twice, as whole numbers of thebe, so nothing is rounded away and the books always balance. Float, commission and what each provider is owed are ledger balances you can open at any hour.

  • Float and cash per counter, with liquidity health
  • Commission posted with each sale, at the rate set per service
  • Books checked continuously through the day
AccountDebitCredit
Till cash, Outlet 014P 155.00
Payable to Partner insurerP 150.00
Fee incomeP 5.00
TotalsP 155.00P 155.00

Trial balance, all outlets P 0.00 Balanced

The connectors

Any provider, whatever its technology.

Institutions expose themselves differently, so the connectors meet each on its own terms. A sandbox and a certification path take a partner from signed to live.

  • API connectors for systems with real-time interfaces
  • File and batch for settlement files and beneficiary lists
  • Assisted connectors where no API exists
  • Commercial BankAPI connectorLive
  • Water UtilityNightly fileLive
  • Licensing AuthorityAssisted connectorCertifying

Watch it run. Every journey, from channel to provider.

Payments travel from every channel through the platform to the providers, and land in the feed beneath.

Channels

  • Teller counter
  • Customer portal
  • Business portal
  • Provider portal
  • Kiosk and USSD

Agency One

  • Catalog
  • Workflow
  • Ledger
  • Reconciliation

Providers

  • Banks, by API
  • Government, assisted
  • Insurers, by API
  • Wallets, by API
  • Utilities, by file

This morning, across 40 outlets and every channel

Transactions 1,284

  1. Cash depositBanks, by APIPosted
  2. A bill paid onlineUtilities, by fileIn tonight's file
  3. Funeral premiumInsurers, by APIPosted
  4. A top-up on any phoneWallets, by APIPosted
  5. A bulk payoutBanks, by APIPosted

An illustration of the traffic, not live data.

Follow one journey. Message by message, with the time.

Each lane is a party to the payment; each arrow is a message between them, in the order it happens.

  1. 09:41Teller counterCash deposit chosen at the teller counter
  2. 09:41Teller counter to Agency OneQuote priced from the catalog: P 1,208.00
  3. 09:43Teller counter to Agency OnePayment taken, with an idempotency key
  4. 09:43Agency OneFloat reserved at the outlet
  5. 09:43Agency One to BanksAPI connector calls the partner bank
  6. 09:43Banks to Agency OneThe partner bank confirms
  7. 09:43Agency OneThree lines posted, debits equal credits
  8. 09:43Agency One to Teller counterReceipt printed
  9. 06:30Settlement bank to Agency OneNext morning: matched with the bank, variance P 0.00
The teller takes the cash and the partner bank confirms it by API before the receipt prints.

The rules it is built by. Held in the code, so they hold at every counter.

Money in whole thebe.

Every amount is a whole number of thebe from the counter to the bank, so nothing is ever rounded away.

Contract first.

Every API is described before it is built, and the frontends' clients are generated from that description.

Every write safe to retry.

Each one carries a key, so a repeated request finds the first and money moves once.

Every change audited.

Who did what, when and why, recorded from the first release of every service.

Two people on risky moves.

The second person approves later, from their own login and their own queue.

Operators kept apart.

Each operator's data is isolated in the database itself, on a shared platform or a dedicated one.

Capabilities

What is in the box.

The whole inventory in one place, for the evaluator with a checklist. The story above explains how it fits; this is what you get.

The counter and journeys

  • Guided journeys with quote, payment and receipt built in
  • Provider choice at the counter, with partner marks
  • Rules and limits enforced from each contract
  • Search and category browsing across every service
  • Pending and unsettled outcomes shown as exactly that

Money and settlement

  • Counters open with a declared float and close with variance shown
  • Every movement recorded twice, to the thebe
  • Commission earned per transaction, at the rate set per service
  • Float rebalances requested and approved by two people
  • Settlement through the bank you appoint

Reconciliation and operations

  • Daily three-way match: counters, providers, bank
  • Every exception on a deadline, worked in the back office
  • A failed-transaction queue with retry and resolution
  • Books checked continuously through the day
  • A full audit trail on every change

Administration and catalog

  • A catalog studio with live preview
  • Publishing with a distinct second approver
  • Provider registry, certification and health board
  • Outlet and counter management
  • Your brand, colours and terms, changed without a rebuild

Provider connectivity

  • API connectors for real-time systems
  • File and batch for settlement files and beneficiary lists
  • Assisted connectors where no API exists
  • A sandbox and a certification path to go live
  • Provider health visible before you sell

Security and access

  • Single sign-on for every staff role
  • Five roles, nothing allowed unless a role permits it
  • Two people on every risky move
  • Each operator isolated at the database itself
  • A retry can never move money twice

See the platform run your services.

A demo walks your own story: your services, your partners, your floats.