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

# Step 2: Validate Fare

Ensure you set `adult: 2` in your validation payload.

### Request Setup

<ParamField body="search_id" type="string" required>Paste the `search_id` from Step 1.</ParamField>
<ParamField body="signature" type="string" required>Paste the `signature` from Step 1.</ParamField>

<ParamField body="pax" type="object" required>
  <Expandable>
    <ParamField body="adult" type="integer" default="1" />
  </Expandable>
</ParamField>

### Instructions

1. Review the requirements and set up the request payload.
2. Hit the **Send** button.

<Warning>
  **Requirement:** Copy the `fare_token` and `provider`. The price is locked for 15 minutes.
</Warning>


## OpenAPI

````yaml POST /flight/fare/validate
openapi: 3.0.3
info:
  title: Travomatrix B2B Travel API
  version: 1.0.0
  description: >
    Travomatrix is a high-performance multi-vertical travel booking engine
    designed for B2B enterprises.


    ### Verticals Supported

    - **Flights**: Unified interface for global GDS and NDC providers.

    - **Hotels**: Coming Soon.

    - **Rail**: Coming Soon.

    - **Cabs**: Coming Soon.


    ### Key Security & Reliability Headers

    - **X-API-Key**: Your primary server-to-server API key.

    - **Idempotency-Key**: Required for financial operations. Prevents duplicate
    actions on retries.

    - **X-Request-ID**: Optional but recommended. Used for tracing requests
    through the Travomatrix infrastructure.
servers:
  - url: https://api.travomatrix.com/api/v1
    description: Production Environment
  - url: http://uat.travomatrix.com/api/v1
    description: UAT Environment
  - url: http://localhost:80/api/v1
    description: Localhost (Port 80)
  - url: http://localhost:8080/api/v1
    description: Localhost (Port 8080)
security: []
paths:
  /flight/fare/validate:
    post:
      tags:
        - Flights - Operations
      summary: Validate Fare & Lock Price
      parameters:
        - $ref: '#/components/parameters/RequestIDHeader'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FareValidateRequest'
            example:
              search_id: SEARCH_123
              signature: SIG_XYZ
              pax:
                adult: 1
      responses:
        '200':
          description: Price lock created for 15 minutes.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FareValidateResponse'
      security:
        - ApiKeyAuth: []
components:
  parameters:
    RequestIDHeader:
      name: X-Request-ID
      in: header
      description: Unique correlation ID for tracing.
      required: false
      schema:
        type: string
  schemas:
    FareValidateRequest:
      type: object
      required:
        - search_id
        - signature
      example:
        search_id: SEARCH_123
        signature: SIG_XYZ
        pax:
          adult: 1
      properties:
        search_id:
          type: string
        signature:
          type: string
        pax:
          type: object
          properties:
            adult:
              type: integer
              minimum: 1
            child:
              type: integer
              minimum: 0
            infant:
              type: integer
              minimum: 0
    FareValidateResponse:
      type: object
      properties:
        fare_token:
          type: string
        status:
          type: string
          enum:
            - VALID
            - PRICE_CHANGED
            - SOLD_OUT
            - FARE_EXPIRED
            - PROVIDER_ERROR
        offer:
          $ref: '#/components/schemas/UnifiedOffer'
    UnifiedOffer:
      type: object
      properties:
        offer_id:
          type: string
        search_id:
          type: string
        signature:
          type: string
        airline:
          type: string
        segments:
          type: array
          items:
            $ref: '#/components/schemas/Segment'
        best_price_paise:
          type: integer
        currency:
          type: string
        pricing_breakdown:
          $ref: '#/components/schemas/PricingBreakdown'
        expires_at:
          type: string
          format: date-time
    Segment:
      type: object
      properties:
        carrier:
          type: string
          pattern: ^[A-Z0-9]{2}$
        flight_no:
          type: string
        origin:
          type: string
          pattern: ^[A-Z]{3}$
        dest:
          type: string
          pattern: ^[A-Z]{3}$
        dep_time:
          type: string
          format: date-time
        arr_time:
          type: string
          format: date-time
        cabin:
          type: string
          enum:
            - ECONOMY
            - PREMIUM_ECONOMY
            - BUSINESS
            - FIRST
        booking_class:
          type: string
        seats_available:
          type: integer
    PricingBreakdown:
      type: object
      properties:
        base_fare:
          type: integer
          description: Base fare in Paise.
        taxes:
          type: integer
          description: Total taxes and fees in Paise.
        commission:
          type: integer
          description: Agent commission earned in Paise.
        ota_markup:
          type: integer
          description: Platform markup in Paise.
        agent_markup:
          type: integer
          description: Sub-agent markup in Paise.
        net_fare:
          type: integer
          description: >-
            Final amount to be debited from agent wallet (Base + Taxes + Markup
            - Commission).
        final_price:
          type: integer
          description: Total price to display to the end customer.
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: X-API-Key

````