# Platform Map

MobiCred should treat the platform as a set of clear boundaries, not one large
API surface.

## Current Services

- `service-core-api`: canonical business orchestration, Fineract-facing account
  flows, credit application hooks, payments orchestration, and internal BFF
  endpoints.
- `service-api-mobile`: public mobile BFF for consumer and POS-style mobile
  surfaces.
- `service-api-account-alias`: alias and payment credential directory, with
  Nest Swagger already wired.
- `service-payment-gateway`: payment initiation, status, provider callbacks,
  payin, and payout gateway, with L5 Swagger configuration.
- `mobile-client-app`, `mobile-commercial-app`, and `pos-application`: channel
  clients that should call BFF or partner APIs rather than bypassing the core.

## Missing Core Pieces

- Credit intelligence service: ingestion, feature materialization, score
  calculation, score explanation, and decision trace.
- Partner gateway service: tenant-aware partner users, credentials, scopes,
  quotas, webhooks, and API audit.
- OpenAPI export in `service-core-api` and `service-api-mobile`.
- Shared identity resolution contract so one person cannot become duplicate
  borrowers through different partners or POS flows.

## Platform Rule

Every channel can create or update a user-facing onboarding flow, but the
canonical person and account state must converge in the core/Fineract graph.
Partner tenancy changes access and attribution; it must not duplicate the real
person.
