Auth guard: admin JWT bearer (Authorization: Bearer <admin-jwt>) required for all endpoints. No user JWT or partner key access.

Overview

A benefit provider is a company or entity (e.g. a diagnostic chain, insurer, or telemedicine platform) that offers one or more benefits to Aarokya users. Providers are the top-level catalogue entry — every Benefit row has a provider_id FK referencing a provider.
  • Name uniqueness is global. No two providers may share the same name.
  • Delete is guarded. A provider with associated benefits cannot be deleted — remove benefits first.

Data Flow


Auth Guards by Endpoint

EndpointAdmin keyNotes
POST /benefit_providersName must be unique
GET /benefit_providersFilter by status
GET /benefit_providers/{id}
PATCH /benefit_providers/{id}Only name is updatable
DELETE /benefit_providers/{id}Blocked if benefits exist

Endpoints

POST /benefit_providers

Create a new benefit provider. Name must be unique.

GET /benefit_providers

Paginated list. Filter by status.

GET /benefit_providers/{id}

Fetch a single provider by UUID.

PATCH /benefit_providers/{id}

Rename a provider. New name must not conflict.

DELETE /benefit_providers/{id}

Soft-delete (status → inactive). Fails if provider has benefits.

Request / Response Examples

curl -X POST http://localhost:8080/benefit_providers \
  -H 'Authorization: Bearer eyJhbGci...admin-jwt...' \
  -H 'Content-Type: application/json' \
  -d '{ "name": "Apollo Diagnostics" }'

Error Codes

CodeHTTPDescription
BPE-400500Internal server error
BPE-401404Provider not found
BPE-402409Name already exists
BPE-403409Provider has associated benefits — delete benefits first
BPE-404400Validation error (e.g. empty name)