Overview

View as Markdown

Complete endpoint documentation for the Sare Core API (/api/v3).

Structure: one top-level folder per Spring Modulith module (Wallet, Identity, Location, Integrations, Notifications, Ussd, Waas - matching io.sare.sare_core.* in CLAUDE.md), each containing one subfolder per controller/feature area. Keep this pattern going forward: a new endpoint nests under its module’s top-level folder, in a new or existing subfolder named after its controller/feature - never as a new top-level folder.

Envelope: success responses wrap the payload as { "code": int, "message": string, "data": T } (data omitted when null). Errors are { "status": int, "message": string, "path": string } (plus stackTrace if the server has sare.stack.trace=true).

Auth: most endpoints need Authorization: Bearer {{accessToken}} (set after calling Login, under Identity > Auth). A request-signing filter also requires X-Device-Id/X-Signature/X-Timestamp/X-Request-Id headers on non-GET requests to non-public paths (skipped for GET requests, multipart requests, the local profile, and the whitelisted paths noted per-subfolder below) - included as disabled headers on relevant requests here since they require a real device keypair to compute correctly; set them via a pre-request script if you need to exercise that filter.

Fully public (no Bearer token at all): payments/**, auth/** (except auth/logout/auth/refresh-token), areas/**, counties/**, regions/**, wallets/register/**, waas/callbacks/choicebaas, devices/**, wallet/ussd/**, geolocation/reverse-geocode, users/appVersion.

Set the baseUrl collection variable to your target environment (default http://localhost:8080/api/v3).