Remiton · verified surfaces

Six surfaces. Every one a real round-trip to the live FastAPI.

§22 P9 (every artifact genuine) burn-down: each tile mounts a Next page that fires an HTTP call to a registered router on the live portal, captures X-Trace-Id, displays the raw response payload, and surfaces the round-trip latency. There is no setTimeout fake-progress and no hand-authored response shim · open the network panel and the same call_id token travels both ways.

// wallet · pair

Pair a sender and receiver.

Form posts to POST /api/wallet/pair with an Idempotency-Key; the response carries both wallet handles, the corridor code, and a pair_id you can look up.

api · POST /api/wallet/pair
▸ open verified surface
// quote · inspector

Read a live FX quote.

Hits GET /api/quote with any of the six supported corridors. Live mid-rate from open.er-api.com travels with a sandbox call_id per rail.

api · GET /api/quote
▸ open verified surface
// family · budgets

List active shared budgets.

Calls GET /api/family/budgets · the same in-memory ledger that /workflow/family-goal writes to. Create a budget there, see it surface here.

api · GET /api/family/budgets
▸ open verified surface
// transfer · initiation

Initiate a sandbox transfer.

Pulls a live quote first, then POSTs /api/transfer with the returned quote_call_id and a fresh Idempotency-Key. Both prefixes (SBX-/STUB-) accepted server-side for back-compat.

api · GET /api/quote → POST /api/transfer
▸ open verified surface
// statement · nri

Download a real NRI PDF.

Streams GET /api/statement/nri.pdf with a configurable period. Headers expose X-Remiton-Statement-Rows + X-Remiton-Statement-Synthetic so QA can verify provenance.

api · GET /api/statement/nri.pdf
▸ open verified surface
// audit · event log

Inspect the audit trail.

Queries GET /api/audit/events with entity_type + user_handle filters. Surfaces the storage_mode chip (supabase vs memory-degraded) so the UI never silently lies about persistence.

api · GET /api/audit/events
▸ open verified surface