Zamna Session API

The Session API from Zamna — 9 operation(s) for session.

Operations 9

GET /session/{sessionId} Get MultiPax session #
GET /session/{sessionId}/pax-session/{paxSessionId} Get Pax session #
POST /session/{sessionId}/pax-session/{paxSessionId}/address Add address to pax session #
POST /session/{sessionId}/pax-session/{paxSessionId}/answers Provide nationality and/or birthdate and/or set answers to questions #
POST /session/{sessionId}/pax-session/{paxSessionId}/apply-document/manual Apply manually provided non-travel document data #
POST /session/{sessionId}/pax-session/{paxSessionId}/apply-document/recognised Apply document recognised by /recognise-document #
POST /session/{sessionId}/pax-session/{paxSessionId}/apply-document/travel-document Apply manually provided travel document data #
POST /session/{sessionId}/pax-session/{paxSessionId}/recognise-document Recognise document (photo, scan or PDF) #
POST /session/{sessionId}/set-consent Set consent for MultiPax session #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/zamna-session-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

zamna-session-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Zamna Ready To Fly Session API
  version: '2.18'
servers:
- url: https://paxcheck-app-dev.staging.zamna.com
  description: Base URL declared by the provider in apis.yml (roadmap#122).
tags:
- name: Session
paths:
  /session/{sessionId}:
    get:
      summary: Get MultiPax session
      operationId: getSession
      parameters:
      - name: X-Request-Id
        in: header
        description: Request id to be returned in response header (auto generated if not specified)
        schema:
          type: string
      - name: Accept-Language
        in: header
        description: Locale to return content with
        schema:
          type: string
      - name: sessionId
        in: path
        description: MultiPax session id
        required: true
        schema:
          type: string
        example: aae10767-d13b-4e5c-a9fe-0ab8f13b8087
      responses:
        '200':
          description: MultiPax session
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetSessionResponse'
        '401':
          description: Unauthorized
      security:
      - BearerAuth: []
      tags:
      - Session
  /session/{sessionId}/pax-session/{paxSessionId}:
    get:
      summary: Get Pax session
      operationId: getPaxSession
      parameters:
      - name: X-Request-Id
        in: header
        description: Request id to be returned in response header (auto generated if not specified)
        schema:
          type: string
      - name: Accept-Language
        in: header
        description: Locale to return content with
        schema:
          type: string
      - name: sessionId
        in: path
        description: MultiPax session id
        required: true
        schema:
          type: string
        example: aae10767-d13b-4e5c-a9fe-0ab8f13b8087
      - name: paxSessionId
        in: path
        description: Pax session id (prefixed with 'pax_')
        required: true
        schema:
          type: string
        example: pax_aae10767-d13b-4e5c-a9fe-0ab8f13b8087
      responses:
        '200':
          description: Pax session
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetPaxSessionResponse'
        '401':
          description: Unauthorized
      security:
      - BearerAuth: []
      tags:
      - Session
  /session/{sessionId}/pax-session/{paxSessionId}/address:
    post:
      summary: Add address to pax session
      operationId: addAddress
      parameters:
      - name: X-Request-Id
        in: header
        description: Request id to be returned in response header (auto generated if not specified)
        schema:
          type: string
      - name: Accept-Language
        in: header
        description: Locale to return content with
        schema:
          type: string
      - name: sessionId
        in: path
        description: MultiPax session id
        required: true
        schema:
          type: string
        example: aae10767-d13b-4e5c-a9fe-0ab8f13b8087
      - name: paxSessionId
        in: path
        description: Pax session id (prefixed with 'pax_')
        required: true
        schema:
          type: string
        example: pax_aae10767-d13b-4e5c-a9fe-0ab8f13b8087
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AddAddressRequest'
        required: true
      responses:
        '200':
          description: Updated pax session
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AddAddressResponse'
        '401':
          description: Unauthorized
      security:
      - BearerAuth: []
      tags:
      - Session
  /session/{sessionId}/pax-session/{paxSessionId}/answers:
    post:
      summary: Provide nationality and/or birthdate and/or set answers to questions
      operationId: postAnswers
      parameters:
      - name: X-Request-Id
        in: header
        description: Request id to be returned in response header (auto generated if not specified)
        schema:
          type: string
      - name: Accept-Language
        in: header
        description: Locale to return content with
        schema:
          type: string
      - name: sessionId
        in: path
        description: MultiPax session id
        required: true
        schema:
          type: string
        example: aae10767-d13b-4e5c-a9fe-0ab8f13b8087
      - name: paxSessionId
        in: path
        description: Pax session id (prefixed with 'pax_')
        required: true
        schema:
          type: string
        example: pax_aae10767-d13b-4e5c-a9fe-0ab8f13b8087
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SetAnswersRequest'
        required: true
      responses:
        '200':
          description: Updated Pax session
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SetAnswersResponse'
        '401':
          description: Unauthorized
      security:
      - BearerAuth: []
      tags:
      - Session
  /session/{sessionId}/pax-session/{paxSessionId}/apply-document/manual:
    post:
      summary: Apply manually provided non-travel document data
      operationId: applyManualDocument
      parameters:
      - name: X-Request-Id
        in: header
        description: Request id to be returned in response header (auto generated if not specified)
        schema:
          type: string
      - name: Accept-Language
        in: header
        description: Locale to return content with
        schema:
          type: string
      - name: sessionId
        in: path
        description: MultiPax session id
        required: true
        schema:
          type: string
        example: aae10767-d13b-4e5c-a9fe-0ab8f13b8087
      - name: paxSessionId
        in: path
        description: Pax session id (prefixed with 'pax_')
        required: true
        schema:
          type: string
        example: pax_aae10767-d13b-4e5c-a9fe-0ab8f13b8087
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApplyManualDocumentRequest'
        required: true
      responses:
        '200':
          description: Either error (rules mismatch), or success (with updated Pax session)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApplyManualDocumentResponse'
        '401':
          description: Unauthorized
      security:
      - BearerAuth: []
      tags:
      - Session
  /session/{sessionId}/pax-session/{paxSessionId}/apply-document/recognised:
    post:
      summary: Apply document recognised by /recognise-document
      operationId: applyRecognisedDocument
      parameters:
      - name: X-Request-Id
        in: header
        description: Request id to be returned in response header (auto generated if not specified)
        schema:
          type: string
      - name: Accept-Language
        in: header
        description: Locale to return content with
        schema:
          type: string
      - name: sessionId
        in: path
        description: MultiPax session id
        required: true
        schema:
          type: string
        example: aae10767-d13b-4e5c-a9fe-0ab8f13b8087
      - name: paxSessionId
        in: path
        description: Pax session id (prefixed with 'pax_')
        required: true
        schema:
          type: string
        example: pax_aae10767-d13b-4e5c-a9fe-0ab8f13b8087
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApplyRecognisedDocumentRequest'
        required: true
      responses:
        '200':
          description: Success (with updated Pax session) or Error (doc processing, id or rules mismatch)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApplyRecognisedDocumentResponse'
        '401':
          description: Unauthorized
      security:
      - BearerAuth: []
      tags:
      - Session
  /session/{sessionId}/pax-session/{paxSessionId}/apply-document/travel-document:
    post:
      summary: Apply manually provided travel document data
      operationId: applyTravelDocument
      parameters:
      - name: X-Request-Id
        in: header
        description: Request id to be returned in response header (auto generated if not specified)
        schema:
          type: string
      - name: Accept-Language
        in: header
        description: Locale to return content with
        schema:
          type: string
      - name: sessionId
        in: path
        description: MultiPax session id
        required: true
        schema:
          type: string
        example: aae10767-d13b-4e5c-a9fe-0ab8f13b8087
      - name: paxSessionId
        in: path
        description: Pax session id (prefixed with 'pax_')
        required: true
        schema:
          type: string
        example: pax_aae10767-d13b-4e5c-a9fe-0ab8f13b8087
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApplyTravelDocumentRequest'
        required: true
      responses:
        '200':
          description: Either error (id or rules mismatch), or success (with updated Pax session)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApplyTravelDocumentResponse'
        '401':
          description: Unauthorized
      security:
      - BearerAuth: []
      tags:
      - Session
  /session/{sessionId}/pax-session/{paxSessionId}/recognise-document:
    post:
      summary: Recognise document (photo, scan or PDF)
      operationId: recogniseDocument
      parameters:
      - name: X-Request-Id
        in: header
        description: Request id to be returned in response header (auto generated if not specified)
        schema:
          type: string
      - name: sessionId
        in: path
        description: MultiPax session id
        required: true
        schema:
          type: string
        example: aae10767-d13b-4e5c-a9fe-0ab8f13b8087
      - name: paxSessionId
        in: path
        description: Pax session id (prefixed with 'pax_')
        required: true
        schema:
          type: string
        example: pax_aae10767-d13b-4e5c-a9fe-0ab8f13b8087
      requestBody:
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                method:
                  type: string
                expected_document_types:
                  type: array
                  items:
                    type: string
                page_index_to_process:
                  type: integer
                files:
                  type: array
                  items:
                    type: string
                    format: binary
        required: true
      responses:
        '200':
          description: Success (with updated Pax session) or Error (doc processing, id or rules mismatch)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RecogniseDocumentResponse'
        '401':
          description: Unauthorized
      security:
      - BearerAuth: []
      tags:
      - Session
  /session/{sessionId}/set-consent:
    post:
      summary: Set consent for MultiPax session
      operationId: setConsent
      parameters:
      - name: X-Request-Id
        in: header
        description: request id to be returned in response header (generated if not specified)
        schema:
          type: string
      - name: Accept-Language
        in: header
        description: Locale to return content with
        schema:
          type: string
      - name: sessionId
        in: path
        description: MultiPax session id
        required: true
        schema:
          type: string
        example: aae10767-d13b-4e5c-a9fe-0ab8f13b8087
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SetConsentRequest'
        required: true
      responses:
        '200':
          description: Updated MultiPax session
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SetConsentResponse'
        '401':
          description: Unauthorized
      security:
      - BearerAuth: []
      tags:
      - Session
components:
  schemas:
    IcaoSex:
      type: string
      enum:
      - M
      - F
      - X
    HaveDocumentQuestion:
      type: object
      description: A Yes/No question (boolean), manifested through a positive statement of 'I do have {document type}' format
      properties:
        id:
          type: string
          description: Question id
          example: HelbxGxFg0gpdAdnumztVA==
        is_relevant:
          type: boolean
          description: Whether question is relevant for this passenger, according to current answers to all questions
        answer:
          description: Question answer, if was provided
          example: 'null'
          type:
          - boolean
          - 'null'
        question_title:
          $ref: '#/components/schemas/QuestionTitle'
          description: Question title (localised)
        sample_image:
          description: Question sample image (eg US Green Card specimen) with a title
          anyOf:
          - $ref: '#/components/schemas/QuestionSampleImage'
          - type: 'null'
        doc_category_order:
          type: integer
          format: int32
          description: Document category sort order
        doc_category_title:
          type: string
          description: Document category (localised)
          example: Visa
        doc_title:
          type: string
          description: Document title (localised)
          example: US Green Card
        country:
          description: Document country code (iso alpha-3) - can be EURO
          example: USA
          type:
          - string
          - 'null'
        type:
          type: string
      required:
      - id
      - is_relevant
      - question_title
      - doc_category_order
      - doc_category_title
      - doc_title
      - type
    FieldNotIn:
      type: object
      description: 'Checklist item requirement: field value NOT IN list ({field} not in [{values}], eg docSubType not in [B1,B2,B1/B2])'
      properties:
        as_text:
          type: string
          description: Requirement represented as text
          example: docCountry not in (GBR, USA)
        field:
          type: string
          description: Field
          example: docCountry
        values:
          type: array
          items:
            type: string
          description: Not allowed values
          example: '["GBR", "USA"]'
        type:
          type: string
      required:
      - as_text
      - field
      - values
      - type
    BarcodeToDocMismatch:
      type: object
      description: 'Doc recognition error: Barcode data to document mismatch'
      properties:
        type:
          type: string
      required:
      - type
    ErrorContainer:
      type: object
      properties:
        general_error:
          anyOf:
          - $ref: '#/components/schemas/GeneralError'
          - type: 'null'
    DeparturePoint:
      type: object
      description: Departure point - API output
      properties:
        airport:
          $ref: '#/components/schemas/Airport'
          description: Airport record
        departure_datetime:
          type: string
          description: Date and time of departure (local)
          pattern: $(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2})^
        country_code:
          type: string
          description: ISO 3166-1 alpha-3 country code
          example: USA
      required:
      - airport
      - departure_datetime
      - country_code
    NoBarcodeScannedError:
      type: object
      description: 'Doc recognition error: barcode was not present'
      properties:
        type:
          type: string
      required:
      - type
    ApplyDocumentError:
      oneOf:
      - $ref: '#/components/schemas/IdMismatches'
      - $ref: '#/components/schemas/NoItemsToApplyDocumentTo'
      - $ref: '#/components/schemas/RulesMismatches'
      - $ref: '#/components/schemas/SignalsMismatches'
      - $ref: '#/components/schemas/TravelDocumentRequired'
      discriminator:
        propertyName: type
        mapping:
          id-mismatches: '#/components/schemas/IdMismatches'
          no-items-to-apply-document-to: '#/components/schemas/NoItemsToApplyDocumentTo'
          rules-mismatches: '#/components/schemas/RulesMismatches'
          signals-mismatches: '#/components/schemas/SignalsMismatches'
          provide-passport: '#/components/schemas/TravelDocumentRequired'
    DocumentSidesExpectation:
      type: string
      enum:
      - DATA_PAGE
      - CARD_FRONT
      - CARD_BACK
      - ALL
    DocumentSidesConfiguration:
      type: string
      enum:
      - SINGLE_SIDE_OR_FILE
      - MULTIPLE_SIDES_OR_FILES
    ComposedOr:
      type: object
      description: 'Composed checklist item requirement: Or([ChecklistItemRequirement])'
      properties:
        as_text:
          type: string
          description: Requirement represented as text
          example: expiryDate >= 2025-05-27 or nationality in (GBR,USA)
        requirements:
          type: array
          items:
            $ref: '#/components/schemas/ChecklistItemRequirement'
          description: Embedded requirements as a list (... or ... or ...)
        type:
          type: string
      required:
      - as_text
      - requirements
      - type
    SetAnswersResponse:
      type: object
      properties:
        data:
          anyOf:
          - $ref: '#/components/schemas/PaxSession'
          - type: 'null'
        error:
          anyOf:
          - $ref: '#/components/schemas/ErrorContainer'
          - type: 'null'
    ApplyManualDocumentResponseError:
      type: object
      properties:
        general_error:
          anyOf:
          - $ref: '#/components/schemas/GeneralError'
          - type: 'null'
        operationError:
          $ref: '#/components/schemas/ApplyDocumentError'
      required:
      - operationError
    AddAddressResult:
      type: object
      properties:
        updated_pax_session:
          $ref: '#/components/schemas/PaxSession'
      required:
      - updated_pax_session
    SetConsentRequest:
      type: object
      description: Request to set consent response for MultiPax session
      properties:
        consent:
          type: boolean
          description: Consent response
          example: 'true'
      required:
      - consent
    PickFromListQuestion:
      type: object
      description: A question with options to choose from, requires single answer (option id)
      properties:
        id:
          type: string
          description: Question id
          example: PassportTypeInQuestion
        is_relevant:
          type: boolean
          description: Whether question is relevant for this passenger, according to current answers to all questions
        answer:
          description: Question answer (Option id), if was provided
          example: 'null'
          type:
          - string
          - 'null'
        options:
          type: array
          items:
            $ref: '#/components/schemas/Option'
          description: Options to choose from
        question_title:
          $ref: '#/components/schemas/QuestionTitle'
          description: Question title (localised)
        sample_image:
          description: Question sample image with a title
          anyOf:
          - $ref: '#/components/schemas/QuestionSampleImage'
          - type: 'null'
        default_value:
          type:
          - string
          - 'null'
        type:
          type: string
      required:
      - id
      - is_relevant
      - options
      - question_title
      - type
    FieldMismatch:
      type: object
      description: 'Rules mismatch: specific document field'
      properties:
        field:
          type: string
          description: Name of the mismatched document field
        type:
          type: string
      required:
      - field
      - type
    QuestionSampleImage:
      type: object
      description: Question sample image with a name to form expressions like 'Sample of {title}'
      properties:
        url:
          type: string
          description: Image URL for a sample image to go with the question
          example: https://zamna-webview.s3.eu-west-1.amazonaws.com/samples/usa-green-card.png
        title:
          description: Optional title
          example: US Green Card
          type:
          - string
          - 'null'
      required:
      - url
    OnwardTicket:
      type: object
      description: Manually entered return or onward ticket
      properties:
        travelDate:
          type: string
          format: date
        type:
          type: string
      required:
      - travelDate
      - type
    ArrivalPoint:
      type: object
      description: Arrival point - API output
      properties:
        airport:
          $ref: '#/components/schemas/Airport'
          description: Airport record
        arrival_datetime:
          type: string
          description: Date and time of arrival (local)
          pattern: $(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2})^
        country_code:
          type: string
          description: ISO 3166-1 alpha-3 country code
          example: COL
      required:
      - airport
      - arrival_datetime
      - country_code
    ComposedAnd:
      type: object
      description: 'Composed checklist item requirement: And([ChecklistItemRequirement])'
      properties:
        as_text:
          type: string
          description: Requirement represented as text
          example: expiryDate >= 2025-05-27 and docCountry = CAN
        requirements:
          type: array
          items:
            $ref: '#/components/schemas/ChecklistItemRequirement'
          description: Embedded requirements as a list (... and ... and ...)
        type:
          type: string
      required:
      - as_text
      - requirements
      - type
    AllowedDocument:
      type: object
      description: Describes a document which can be used to resolve checklist item
      properties:
        type:
          type: string
          description: Type of document
          example: USA_GREEN_CARD
        document_format:
          $ref: '#/components/schemas/AllowedDocumentFormat'
          description: Document format - to represent in UI
          example: BOOKLET
        title:
          type: string
          description: Title (localised)
          example: US Green Card
        description:
          description: Description (localised)
          example: Verification of your US Green Card is required to travel
          type:
          - string
          - 'null'
        provision_methods:
          type: array
          items:
            $ref: '#/components/schemas/DocumentProvisionMethod'
          description: Allowed provision methods (MANUAL, SCAN, UPLOAD)
        sides_configuration:
          $ref: '#/components/schemas/DocumentSidesConfiguration'
          description: Whether document has one or multiple sides (or files, ie PDF)
        sides_expectation:
          $ref: '#/components/schemas/DocumentSidesExpectation'
          description: Whether one or multiple sides (or files, ie PDF) are requested from passenger
        side_with_mrz:
          $ref: '#/components/schemas/DocumentMrzConfiguration'
          description: MRZ configuration
        multipax_resolution_supported:
          type: boolean
          description: If true, document of this type can be applied to multiple pax sessions with a single apply (ie using multipax-apply-document/file)
          example: 'true'
        sample_image_src:
          description: Sample image URL (optional)
          example: https://zamna-webview.s3.eu-west-1.amazonaws.com/samples/col-id-card.png
          type:
          - string
          - 'null'
        country:
          description: Document country code (iso alpha-3) - can be EURO
          example: USA
          type:
          - string
          - 'null'
        expect_long_processing:
          type: boolean
          description: Whether to expect long processing on the backend - allows to show user a warning
        page_index_to_process:
          format: int32
          description: Which page of the document is relevant - pass to /apply
          type:
          - integer
          - 'null'
      required:
      - type
      - document_format
      - title
      - provision_methods
      - sides_configuration
      - sides_expectation
      - side_with_mrz
      - multipax_resolution_supported
      - expect_long_processing
    AddAddressResponse:
      type: object
      properties:
        data:
          anyOf:
          - $ref: '#/components/schemas/AddAddressResult'
          - type: 'null'
        error:
          anyOf:
          - $ref: '#/components/schemas/ErrorContainer'
          - type: 'null'
    ChecklistItem:
      oneOf:
      - $ref: '#/components/schemas/DocumentRequirement'
      - $ref: '#/components/schemas/InfoItem'
      discriminator:
        propertyName: type
        mapping:
          document-requirement: '#/components/schemas/DocumentRequirement'
          info-item: '#/components/schemas/InfoItem'
    MultipaxSession:
      type: object
      description: MultiPax session (ie booking)
      properties:
        id:
          type: string
          description: MultiPax session id
          example: aae10767-d13b-4e5c-a9fe-0ab8f13b8087
        journey:
          $ref: '#/components/schemas/Journey'
          description: Journey
        paxs:
          type: array
          items:
            $ref: '#/components/schemas/PaxSession'
          description: List of Pax sessions (ie passengers)
      required:
      - id
      - journey
      - paxs
    DocumentRequirement:
      type: object
      description: Document requirement with status and acceptable documents (and methods) to resolve it
      properties:
        id:
          type: string
          description: Checklist item id
          example: QFJHy3K9eSufEkA7auLeZQ==
        title:
          type: string
          description: Title (localised)
          example: US Green Card
        short_title:
          description: Short document title (localised)
          example: visa
          type:
          - string
          - 'null'
        description:
          description: Description (localised)
          example: What is ESTA?...
          type:
          - string
          - 'null'
        short_description:
          description: Short description (localised)
          example: You need to pay the Non-Resident Fee (DNR)
          type:
          - string
          - 'null'
        requirements:
          items:
            $ref: '#/components/schemas/ChecklistItemRequirement'
          description: Any relevant requirements to present to passenger (eg hours to the onward flight for TICKET checklist item type)
          type:
          - array
          - 'null'
        external_link:
          description: External link for more info
          example: https://ceac.state.gov/genniv/
          type:
          - string
          - 'null'
        rule_origin:
          $ref: '#/components/schemas/RuleOrigin'
          description: Rule origin
        allowed_documents_set:
          description: A set of documents with which this checklist item can be resolved
          anyOf:
          - $ref: '#/components/schemas/AllowedDocumentsSet'
          - type: 'null'
        status:
          $ref: '#/components/schemas/ChecklistItemStatus'
          description: Checklist item status
          example: RESOLVED
        item_type:
          $ref: '#/components/schemas/ChecklistItemType'
          description: Checklist item type
        is_travel_document:
          type: boolean
          description: Whether item is Travel Document requirement
          example: 'true'
        type:
          type: string
      required:
      - id
      - title
      - rule_origin
      - status
      - item_type
      - is_travel_document
      - type
    Answer:
      oneOf:
      - $ref: '#/components/schemas/Bool'
      - $ref: '#/components/schemas/FromList'
      discriminator:
        propertyName: type
        mapping:
          bool-answer: '#/components/schemas/Bool'
          from-list-answer: '#/components/schemas/FromList'
    SetConsentResponse:
      type: object
      properties:
        data:
          anyOf:
          - $ref: '#/components/schemas/MultipaxSession'
          - type: 'null'
        error:
          anyOf:
          - $ref: '#/components/schemas/ErrorContainer'
          - type: 'null'
    UnknownRecognitionError:
      type: object
      description: 'Doc recognition error: unknown error'
      properties:
        message:
          type: string
          description: Error message
        type:
          type: string
      required:
      - message
      - type
    PaxSession:
      type: object
      description: Pax session (ie passenger)
      properties:
        pax_session_id:
          type: string
          description: Pax session id (prefixed with 'pax_')
          example: pax_aae10767-d13b-4e5c-a9fe-0ab8f13b8087
        required_action:
          description: Next action required
          example: ANSWER_QUESTIONS
          anyOf:
          - $ref: '#/components/schemas/RequiredAction'
          - type: 'null'
        consented:
          description: 'Consent response when provided (true: consented, false: didn''t consent), null otherwise'
          type:
          - boolean
          - 'null'
        pax:
          $ref: '#/components/schemas/Pax'
          description: Passenger basic data (first name, last name, birthdate)
        checklist:
          $ref: '#/components/schemas/Checklist'
          description: Passenger checklist
        is_travel_document_verified:
          type: boolean
          description: Whether travel document requires verification
        is_visa_verified:
          type: boolean
          description: Whether visa requires verification
        is_rp_verified:
          type: boolean
          description: Whether residence permit requires verification
      required:
      - pax_session_id
      - pax
      - checklist
      - is_travel_document_verified
      - is_visa_verified
      - is_rp_verified
    MrzToVizMismatch:
      type: object
      description: 'Doc recognition error: MRZ to VIZ mismatch'
      properties:
        type:
          type: string
      required:
      - type
    ApplyManualDocumentRequest:
      type: object
      description: Request to provide manually entered non-travel document data to resolve checklist item(s)
      properties:
        document:
          $ref: '#/components/schemas/ApiManualDocument'
        ignore_mistakes:
          type: boolean
      required:
      - document
      - ignore_mistakes
    Pax:
      type: object
      description: Passenger basic data (first name, last name, birthdate)
      properties:
        first_name:
          description: Given names, should be provided if last_name is null
          example: JACK MARVO
          type:
          - string
          - 'null'
        last_name:
          description: Last name, should be provided if first_name is null
          example: SMITH VESSEN
          type:
          - string
          - 'null'
        birthdate:
          format: date
          description: Birthdate, if set in DCS
          type:
          - string
          - 'null'
    ApplyRecognisedDocumentResult:
      type: object
      properties:
        updated_pax_session:
          $ref: '#/components/schemas/PaxSession'
        additional_pax_sessions:
          items:
            $ref: '#/components/schemas/PaxSession'
          type:
          - array
          - 'null'
      required:
      - updated_pax_session
    TravelDocumentRequired:
      type: object
      description: 'Apply file: Passport have to be provided first'
      properties:
        type:
          type: string
      required:
      - type
    InfoItem:
      type: object
  

# --- truncated at 32 KB (68 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/zamna/refs/heads/main/openapi/zamna-session-api-openapi.yml