Skip to main content

Instant Payments

Instant Payments is a retail, @alias-addressed transfer layer that rides on top of the platform's existing CBDC settlement rails. It's a different product from mint/burn/transfer/ bridging (all still described in Token Operations): those move value between the institution's own accounts, while Instant Payments moves value between retail customers of participant banks, instantly and across banks. A companion consumer PWA ("Billetera") is the app a retail customer installs; this page covers the surfaces exposed in the Portal (apps/dashboard).

Every payment is either:

  • INTERNAL — sender and recipient are customers of the same bank.
  • CROSS_ORGANIZATION — sender and recipient are at different banks. These settle wholesale on-chain between the two banks' settlement accounts.

The Billetera consumer wallet

Billetera (billetera.blockchain.hn) is the phone-first PWA a retail customer installs. It re-themes itself around the customer's bank and is Spanish-first (Lempira, symbol L). A customer picks a bank and name, lands on a balance-and-movements home, then activates instant payments by registering a globally-unique @alias — the identifier others use to pay them. Until an alias is activated, the home Enviar / Recibir actions route into the activation flow.

Billetera Pagos tab: 'Pagos instantáneos' intro with value props and an Activar buttonAlias registration screen with a live availability check showing '¡Disponible!'

Left: the Payments tab before activation — the value props and the Activar CTA. Right: @alias registration, with a live availability check (green ¡Disponible! when free, or "ya está en uso" when taken).

Billetera home with the bank-themed balance card and Enviar / Recibir actionsEnviar dinero bottom sheet: amount, recipient @alias with a QR-scan button, and an optional reference

Left: the home screen — the bank-themed balance card with Enviar / Recibir and the movements feed. Right: the Enviar dinero sheet — amount, recipient @alias (with a QR-scan shortcut), and an optional reference message.

The screenshots above are from the current demo/self-service build (see Current status): a customer self-registers a wallet and alias, and the wallet opens with a fixed demo balance.

The settlement account

Each Commercial organization has one Instant Payments settlement ("ops") account, used to settle cross-bank payments. It is auto-provisioned when the organization is activated (not a step the admin performs) and is deliberately not a multisig — it's a single custody key the platform generates and controls, distinct from the account/group model in Accounts. Banks top up its liquidity from their exchange address via the wholesale Send flow; GET /organizations/:id/instant-payments/account (and .../balance) expose its address and balance, gated on read · InstantPayment and organization ownership.

Portal surfaces

Both organization types see an Instant Payments sidebar item (/instant-payments), but the page renders differently depending on the viewer's organization type:

ViewerWhat they see
Commercial (Participant)Their own retail surface: Dashboard (settlement-account card, volume/payment/avg-payment KPIs split cross-bank vs. internal, day/hour distribution), Transactions, and Users (their registered retail clients) tabs, plus CSV export.
Central (Issuer)A read-only, aggregate-only oversight view: system-wide or per-bank KPIs (settled volume, payment count, avg payment, users), a sortable/searchable per-bank rollup table (each bank's settlement-account address, volume, payments, users), day/hour distribution charts, and CSV/JSON export. No transaction- or client-level detail is exposed here.

The Issuer oversight view requires read · InstantPaymentOversight, which only Administrators and Auditors carry — Issuer Members don't see the Instant Payments sidebar item at all. Participant staff (any role) see their own bank's surface via read · InstantPayment.

Permissions

SubjectAdministratorMemberAuditor
InstantPaymentmanageread, createread
InstantPaymentOversightmanageread

InstantPayment covers a bank's own clients/accounts/payments; InstantPaymentOversight is the Issuer-only, cross-bank aggregate surface above. See Roles & Permissions for how these fit the rest of the ability matrix.

Current status: demo mode

The alias-registration path wired into the PWA today is a public, throttled demo/self-service flow (POST /instant-payments/demo/clients, .../demo/clients/:id/alias) — demo wallets get a fixed, server-side starting balance so the sandbox stays honest. A production-oriented, org-scoped path also exists for a bank's staff to register real retail clients directly (POST /instant-payments/clients, requires create · InstantPayment), but it isn't yet the flow the PWA uses end-to-end.