Architecture
MEMEH RTPO is the official Request-to-Pay orchestration platform of the Bank of Sierra Leone National Payment Switch. Its architecture separates human enablement, governed configuration, runtime orchestration, trusted addressing, provider connectivity, and the existing IPS flow.
- • Enables and certifies approved request submitters and providers
- • Governs participant BICs, adapter targets, fraud controls, and runtime snapshots
- • Orchestrates requests and records authoritative lifecycle evidence
- • CAS remains the addressing authority behind participant systems
- • Participating providers own customer consent and RTP processing
- • IPS remains the inter-participant switching and payment rail
Diagram legend (1–8)
Each step maps to the lifecycle section below.
High-level model
A practical stack view of how responsibilities split across enablement, request submitters, governed configuration, Core, adapters, providers, and IPS.
Components
Access applications, documentation, credentials, UAT evidence, downloads, and audit support outside the Core runtime.
Publishes versioned approved provider routes and adapter bindings consumed by Core.
Payment-request validation, CAS result handling, canonical instruction routing, dispatch, and lifecycle state.
Authoritative payer and payee alias resolution into verified financial addresses and servicer identifiers.
Relays canonical requests, stores provider correlation, and forwards provider lifecycle events. It does not create IPS messages.
The provider owns customer consent and RTP processing; IPS executes the standard inter-participant exchange.
Request lifecycle
The same sequence shown in the diagram, mapped to stages 1–8.
-
1Checkout resolves both partiesThe approved request submitter sends payer alias, payee alias, and the payee financial service participant BIC through the Secure Fintech Edge.
-
2Core selects the participant boundaryCore validates the request and matches payee_bic to exactly one active trusted Participant Adapter. The caller never supplies an adapter URL.
-
3Adapter resolves two aliasesThe adapter calls the participant’s existing one-alias API separately for payer and payee, combines both successful results, and verifies the payee servicer.
-
4Checkout submits selected addressesThe payer selects an eligible payer option and the request submitter binds its authorized payee option before sending the payment request.
-
5Canonical instruction is dispatchedCore validates the fresh resolution, persists one instruction, and posts it to the same Participant Adapter.
-
6Provider starts its RTP flowThe adapter posts to the configured provider RTP API. The provider owns customer consent and IPS interaction.
-
7Provider returns lifecycleThe provider posts a stable lifecycle event to the adapter; the adapter restores correlation and forwards it to Core.
-
8Core exposes outcome and historyCore deduplicates the event, enforces the state machine, and serves current status plus immutable event history.
Security model
The current implementation uses boundary-specific credentials, TLS requirements for production configuration, request and event idempotency, rate limits, controlled enablement, and auditable runtime configuration.
Public client APIs use an issued bearer key. Internal and participant boundaries use separately governed service credentials and verified TLS under restricted implementation contracts.
A required JSON idempotency_key protects payment creation; stable provider event_id values protect lifecycle processing. HMAC nonce signing is not currently implemented in Core.
The portal records applications, review decisions, sandbox credentials, signed partner invitations, downloads, and audit events. Production enablement remains a formal operational gate.