> ## Documentation Index
> Fetch the complete documentation index at: https://docs.feddi.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Platform liveness check

> Unauthenticated liveness probe. Returns immediately without any database read, token verification, or tenant resolution, mounted ahead of the auth layer so load balancers and POS terminals can gate feature availability without holding a key. When all subsystems are nominal the response is `{ ok: true, status: 'up', degraded_subsystems: [] }`. A non-empty `degraded_subsystems` array indicates a partial outage; the POS should surface a warning but may continue operations that are not degraded. **This endpoint carries no tenant data.**



## OpenAPI

````yaml /api-reference/openapi.yaml get /health
openapi: 3.1.0
info:
  title: Feddi Partner API
  version: '2026-06-01'
  description: >-
    Operate a Feddi closed-loop wallet and loyalty program at the point of sale:
    identify customers, read balances, accept wallet payments, run top-ups, and
    reconcile transactions.


    All amounts are integer minor units with an explicit ISO-4217 currency.
    Balances are merchant-held and closed-loop.


    Every response uses a typed envelope (`ok` / `data` / `error` / `meta`) with
    string error codes (never a bare HTTP number) and an idempotency-replay
    flag. Authenticate with the `x-api-key` header; exchange it for a
    short-lived POS terminal JWT for hot-path calls.


    Self-validate against this document (`GET /openapi`) and read `GET
    /capabilities` for the credential types, currencies, and features enabled
    for your integration before assuming any enum.


    Operations are tagged `x-feddi-availability: ga` (stable) or `beta`
    (callable, contract may still change additively); confirm what is enabled
    for your credentials via `GET /capabilities`.


    Sandbox access is granted per partner agreement; request credentials from
    your Feddi contact.
servers:
  - url: https://api.feddi.io/v1/partner
    description: production
  - url: https://api.dev.feddi.io/v1/partner
    description: dev
security:
  - ApiKeyAuth: []
tags:
  - name: platform
    description: >-
      Platform cross-cutting: health, capabilities, openapi self-serve, merchant
      provisioning, settlement, reconciliation.
  - name: checkout_session
    description: >-
      Checkout sessions: every interaction opens a session, then identity and
      basket attach to it, and payment, top-up, and offers run against it.
  - name: auth
    description: >-
      Partner authentication + onboarding: API key lifecycle, POS terminal JWT
      exchange, terminal heartbeat.
  - name: customers
    description: >-
      Customer lookup + identification: resolve identity, cashier-panel
      summaries, preferences, GDPR export/erase.
  - name: enrollment
    description: >-
      Enrollment + signup: OTP enroll, cashback claims, identity/consent,
      customer correction + merge.
  - name: payments
    description: >-
      Payments + redemption: debit wallet (promo-first), balance-check, void,
      refund, QR mint.
  - name: topup
    description: >-
      Wallet top-up: 2-step prepare/confirm, reload-bonus grants, SKU top-up,
      settlement + reconciliation.
  - name: incentives
    description: >-
      Incentives + offers: offer feeds, apply/redeem/release locks, proposals,
      budget envelopes, points, grant clawback.
  - name: transactions
    description: >-
      Transactions + receipts: transaction detail, void, receipts, disputes,
      settlements, reconciliation, exports.
  - name: webhooks
    description: >-
      Webhooks + events: subscriptions, delivery history + retry, event catalog,
      polling fallback.
paths:
  /health:
    get:
      tags:
        - platform
      summary: Platform liveness check
      description: >-
        Unauthenticated liveness probe. Returns immediately without any database
        read, token verification, or tenant resolution, mounted ahead of the
        auth layer so load balancers and POS terminals can gate feature
        availability without holding a key. When all subsystems are nominal the
        response is `{ ok: true, status: 'up', degraded_subsystems: [] }`. A
        non-empty `degraded_subsystems` array indicates a partial outage; the
        POS should surface a warning but may continue operations that are not
        degraded. **This endpoint carries no tenant data.**
      operationId: getHealth
      parameters: []
      responses:
        '200':
          description: >-
            Platform is live (or partially degraded, inspect
            `degraded_subsystems`).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HealthStatus'
              example:
                ok: true
                status: up
                degraded_subsystems: []
      security: []
components:
  schemas:
    HealthStatus:
      type: object
      description: >-
        Unauthenticated liveness response. This payload requires no credentials
        and contains no tenant-scoped data. The `degraded_subsystems` array is
        empty when the service is nominal, and lists the affected subsystems
        otherwise.
      required:
        - ok
        - status
        - degraded_subsystems
      properties:
        ok:
          type: boolean
          description: Always `true` on HTTP 200, the platform is reachable.
        status:
          type: string
          enum:
            - up
            - degraded
          description: >-
            `up` = all subsystems nominal. `degraded` = one or more subsystems
            impaired but platform is still serving.
        degraded_subsystems:
          type: array
          items:
            type: string
          description: >-
            Named subsystems currently impaired (e.g. `['promo_engine',
            'webhook_fanout']`). Empty when `status` is `up`.
          example: []
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: >-
        Partner API key (platform- or merchant-scoped). Contract key-enforces
        context.merchant_id.

````