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

# Readiness probe

> Reports whether the service can reach its dependencies. Requires no credentials.



## OpenAPI

````yaml openapi.json GET /ready
openapi: 3.1.0
info:
  title: Vibepay Charge API
  version: 1.0.0
  description: >-
    The public API a merchant point-of-sale charges a Vibepay meal-benefit
    wallet against.


    A cardholder's card lives in Apple or Google Wallet as a pass that displays
    a rotating QR token. Your terminal scans that token, posts it here with an
    amount in tugrik, and the wallet is debited atomically. Every card charge
    also produces a Mongolian VAT receipt (ДДТД), issued asynchronously.


    This surface is authenticated per terminal with HTTP Basic and is intended
    for server-to-server or native POS callers. It sends no CORS headers, so a
    browser page cannot call it cross-origin.
  contact:
    name: Vibepay integrations
    email: info@vibepay.mn
    url: https://vibepay.mn
servers:
  - url: https://api.vibepay.mn
    description: >-
      Production. There is no separate sandbox — see the Environments guide for
      the small-amount charge-and-reverse loop used to verify an integration.
security:
  - terminalBasic: []
tags:
  - name: Transactions
    description: Charge a wallet, reverse a charge, and read this terminal's own history.
  - name: Service
    description: Unauthenticated liveness and readiness probes.
paths:
  /ready:
    get:
      tags:
        - Service
      summary: Readiness probe
      description: >-
        Reports whether the service can reach its dependencies. Requires no
        credentials.
      operationId: ready
      responses:
        '200':
          description: Every dependency is reachable.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReadyStatus'
        '503':
          description: At least one dependency is unreachable. The body names it.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReadyStatus'
      security: []
components:
  schemas:
    ReadyStatus:
      type: object
      title: Readiness
      required:
        - status
        - deps
      properties:
        status:
          type: string
          description: '`ok` when every dependency is reachable, `degraded` otherwise.'
          enum:
            - ok
            - degraded
          example: ok
        deps:
          type: object
          description: Per-dependency detail, keyed by dependency name.
          additionalProperties:
            type: object
            properties:
              status:
                type: string
                description: '`ok`, `down`, or `skipped`.'
                enum:
                  - ok
                  - down
                  - skipped
              error:
                type: string
                description: Why the dependency is down. Absent when it is healthy.
  securitySchemes:
    terminalBasic:
      type: http
      scheme: basic
      description: >-
        Per-terminal HTTP Basic credentials, issued in the Vibepay merchant
        dashboard under Terminals. The username starts with `term_` and the
        password with `vpt_`. Every authentication failure — missing header,
        unknown username, wrong password, suspended terminal — returns the same
        `401`, so the response can never be used to discover valid usernames.

````