Auth guard:
admin-api-key header required for all endpoints. No JWT/user access.Overview
A benefit provider is a company or entity (e.g. a diagnostic chain, an insurance company, a telemedicine platform) that offers one or more benefits to Aarokya users. Providers are the top-level grouping in the benefit catalogue — everyBenefit row has a provider_id foreign key referencing a BenefitProvider.
Providers are managed exclusively by system admins. There is no partner or user path.
Key Rules
- Name uniqueness is global. No two active providers may share the same name.
- Soft delete is guarded. A provider with associated benefits (active or inactive) cannot be deleted. Remove all benefits first via
DELETE /benefits/{benefit_id}. - Update is name-only. Only
namecan be changed. Passingnullfornameis a no-op (returns the current provider unchanged).
Endpoints
POST /benefit_providers
Create a new benefit provider. Name must be unique across all active providers.
GET /benefit_providers
Paginated list of benefit providers. Supports filtering by
status, start_time, end_time.GET /benefit_providers/{benefit_provider_id}
Fetch a single provider by UUID.
PATCH /benefit_providers/{benefit_provider_id}
Rename a provider. The new name must not conflict with any other active provider.
DELETE /benefit_providers/{benefit_provider_id}
Soft-delete a provider (sets
status = inactive). Fails if the provider has any benefits.Request / Response Examples
Error Codes
| Code | HTTP | Description |
|---|---|---|
BPE_400 | 500 | Internal server error |
BPE_401 | 404 | Provider not found |
BPE_402 | 409 | Name already exists |
BPE_403 | 409 | Provider has associated benefits |
BPE_404 | 400 | Validation error (e.g. empty name) |