{"service":"OMNL Banking Rail","basePath":"/api/v1","version":"1.0.0","endpoints":[{"method":"GET","path":"/health","description":"Service health check","auth":"none"},{"method":"GET","path":"/omnl/openapi.json","description":"OpenAPI 3.0 JSON","auth":"none"},{"method":"GET","path":"/omnl/swagger","description":"Public Swagger UI for the OpenAPI document","auth":"none"},{"method":"GET","path":"/omnl/catalog","description":"Machine-readable route catalog","auth":"none"},{"method":"GET","path":"/omnl/integration-status","description":"OMNL integration status snapshot","auth":"none"},{"method":"GET","path":"/omnl/reconcile-anchor","description":"Public OMNL reconciliation anchor and evidence hash pointer","auth":"none"},{"method":"GET","path":"/omnl/ipsas/registry","description":"Public IPSAS-aligned OMNL registry reference","auth":"none"},{"method":"GET","path":"/omnl/fineract-compare","description":"Compare OMNL Fineract balances against reconciliation evidence","auth":"OMNL_API_KEY if set"},{"method":"GET","path":"/omnl/bri/integration-status","description":"BRI transfer rail readiness and configuration","auth":"none"},{"method":"GET","path":"/omnl/bri/swagger","description":"Public Swagger UI for the BRI rail docs","auth":"none"},{"method":"GET","path":"/omnl/bri/transfer/template","description":"Build a BRI fund transfer external template","query":["amount","settlementRef","sourceAccount","beneficiaryAccount","beneficiaryAccountName","bankCode","dryRun"],"auth":"OMNL_API_KEY when OMNL_REQUIRE_API_KEY=1"},{"method":"POST","path":"/omnl/bri/transfer/template","description":"Build a BRI fund transfer external template","body":"{ amount, settlementRef, sourceAccount, beneficiaryAccount, beneficiaryAccountName, bankCode, dryRun }","auth":"OMNL_API_KEY when OMNL_REQUIRE_API_KEY=1"},{"method":"POST","path":"/omnl/bri/transfer/dispatch","description":"Dispatch a BRI fund transfer request when credentials are configured","body":"{ amount, settlementRef, sourceAccount, beneficiaryAccount, beneficiaryAccountName, bankCode, execute, dryRun }","auth":"OMNL_API_KEY when OMNL_REQUIRE_API_KEY=1"},{"method":"GET","path":"/omnl/bri/reconciliation/summary","description":"Read the stored BRI dispatch and callback reconciliation summary","auth":"OMNL_API_KEY when OMNL_REQUIRE_API_KEY=1"},{"method":"GET","path":"/omnl/bri/reconciliation/records","description":"Read the stored BRI reconciliation records","auth":"OMNL_API_KEY when OMNL_REQUIRE_API_KEY=1"},{"method":"GET","path":"/omnl/bri/ops/metrics","description":"Read the operational BRI metrics snapshot","auth":"OMNL_API_KEY when OMNL_REQUIRE_API_KEY=1"},{"method":"POST","path":"/omnl/bri/ops/dispatch/replay","description":"Replay a stored BRI dispatch by settlement reference","body":"{ settlementRef, execute, dryRun }","auth":"OMNL_API_KEY when OMNL_REQUIRE_API_KEY=1"},{"method":"POST","path":"/omnl/bri/callbacks/normalize","description":"Normalize BRIVA or direct-debit callback payloads into OMNL canonical form","body":"{ source, callbackUrl, payload }","auth":"public"},{"method":"POST","path":"/omnl/bri/callbacks/briva","description":"Normalize BRIVA push notifications","body":"{ ...callbackPayload }","auth":"public"},{"method":"POST","path":"/omnl/bri/callbacks/direct-debit/charges","description":"Normalize direct-debit charge callbacks","body":"{ ...callbackPayload }","auth":"public"},{"method":"POST","path":"/omnl/bri/callbacks/direct-debit/refunds","description":"Normalize direct-debit refund callbacks","body":"{ ...callbackPayload }","auth":"public"}]}