{
  "openapi" : "3.1.0",
  "info" : {
    "title" : "Zamna Ready To Fly API",
    "version" : "2.18"
  },
  "components" : {
    "securitySchemes" : {
      "BearerAuth" : {
        "scheme" : "bearer",
        "type" : "http"
      }
    },
    "schemas" : {
      "Airport" : {
        "type" : "object",
        "description" : "Localised Airport record",
        "properties" : {
          "airport_name" : {
            "type" : "string",
            "description" : "Airport name",
            "example" : "Los Angeles International Airport"
          },
          "airport_code" : {
            "type" : "string",
            "description" : "Airport IATA code",
            "example" : "LAX"
          },
          "city_name" : {
            "type" : "string",
            "description" : "City name",
            "example" : "Los Angeles"
          }
        },
        "required" : [ "airport_name", "airport_code", "city_name" ]
      },
      "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" ]
      },
      "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" ]
      },
      "TransitPoint" : {
        "type" : "object",
        "description" : "Transit 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})^"
          },
          "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" : "MEX"
          }
        },
        "required" : [ "airport", "departure_datetime", "arrival_datetime", "country_code" ]
      },
      "Journey" : {
        "type" : "object",
        "description" : "Journey record (departure, transit, arrival) - API output",
        "properties" : {
          "flight_numbers" : {
            "items" : {
              "type" : "string"
            },
            "description" : "Departure flight numbers",
            "type" : [ "array", "null" ]
          },
          "departure" : {
            "$ref" : "#/components/schemas/DeparturePoint",
            "description" : "Departure point"
          },
          "transit" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/TransitPoint"
            },
            "description" : "List of transit points"
          },
          "arrival" : {
            "$ref" : "#/components/schemas/ArrivalPoint",
            "description" : "Arrival point"
          }
        },
        "required" : [ "departure", "transit", "arrival" ]
      },
      "ChecklistItemStatus" : {
        "type" : "string",
        "enum" : [ "NOT_YET_RESOLVED", "RESOLVED", "VERIFICATION_REQUIRED" ]
      },
      "ChecklistResolutionStatus" : {
        "type" : "string",
        "enum" : [ "READY_TO_FLY", "ENTRY_NOT_ALLOWED", "ACTION_REQUIRED", "UNKNOWN", "NOT_ELIGIBLE" ]
      },
      "ChecklistStatus" : {
        "type" : "string",
        "enum" : [ "ON_HOLD", "ACTIVE", "FINALIZED" ]
      },
      "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"
          }
        }
      },
      "Bool" : {
        "type" : "object",
        "description" : "Answer to either `yes-no-question` or `have-document-question`",
        "properties" : {
          "question_id" : {
            "type" : "string",
            "description" : "Question id",
            "example" : "HelbxGxFg0gpdAdnumztVA=="
          },
          "value" : {
            "description" : "Answer value - true/false. Null to remove question answer",
            "example" : "true",
            "type" : [ "boolean", "null" ]
          },
          "type" : {
            "type" : "string"
          }
        },
        "required" : [ "question_id", "type" ]
      },
      "FromList" : {
        "type" : "object",
        "description" : "Answer to `pick-from-list-question`",
        "properties" : {
          "question_id" : {
            "type" : "string",
            "description" : "Question id",
            "example" : "PassportTypeInQuestion"
          },
          "value" : {
            "type" : "string",
            "description" : "Answer value - chosen option id",
            "example" : "DIPLOMATIC"
          },
          "type" : {
            "type" : "string"
          }
        },
        "required" : [ "question_id", "value", "type" ]
      },
      "ChecklistItemRequirement" : {
        "oneOf" : [ {
          "$ref" : "#/components/schemas/Not"
        }, {
          "$ref" : "#/components/schemas/ComposedAnd"
        }, {
          "$ref" : "#/components/schemas/ComposedOr"
        }, {
          "$ref" : "#/components/schemas/FieldCompare"
        }, {
          "$ref" : "#/components/schemas/FieldIn"
        }, {
          "$ref" : "#/components/schemas/FieldNotIn"
        }, {
          "$ref" : "#/components/schemas/Check"
        } ],
        "discriminator" : {
          "propertyName" : "type",
          "mapping" : {
            "not" : "#/components/schemas/Not",
            "composed-and" : "#/components/schemas/ComposedAnd",
            "composed-or" : "#/components/schemas/ComposedOr",
            "field-compare" : "#/components/schemas/FieldCompare",
            "field-in" : "#/components/schemas/FieldIn",
            "field-not-in" : "#/components/schemas/FieldNotIn",
            "check" : "#/components/schemas/Check"
          }
        }
      },
      "Check" : {
        "type" : "object",
        "description" : "Checklist item requirement: agent check (eg \"check: 2 blank pages\")",
        "properties" : {
          "as_text" : {
            "type" : "string",
            "description" : "Requirement represented as text",
            "example" : "check: 2 blank pages"
          },
          "type" : {
            "type" : "string"
          }
        },
        "required" : [ "as_text", "type" ]
      },
      "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" ]
      },
      "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" ]
      },
      "FieldCompare" : {
        "type" : "object",
        "description" : "Checklist item requirement: compare field value ({field} {operator} {value}, eg expiryDate >= 2025-10-25)",
        "properties" : {
          "as_text" : {
            "type" : "string",
            "description" : "Requirement represented as text",
            "example" : "expiryDate >= 2025-05-27"
          },
          "field" : {
            "type" : "string",
            "description" : "Field",
            "example" : "expiryDate"
          },
          "operator" : {
            "$ref" : "#/components/schemas/Operator",
            "description" : "Compare operator",
            "example" : "GTE"
          },
          "value" : {
            "type" : "string",
            "description" : "Value of the field to compare with - type depends on field",
            "example" : "2025-05-27"
          },
          "type" : {
            "type" : "string"
          }
        },
        "required" : [ "as_text", "field", "operator", "value", "type" ]
      },
      "Operator" : {
        "type" : "string",
        "enum" : [ "GTE", "LTE", "GT", "LT", "EQ", "NEQ", "CONTAINS" ]
      },
      "FieldIn" : {
        "type" : "object",
        "description" : "Checklist item requirement: field value IN list ({field} in [{values}], eg docSubType in [DIPLOMATIC,SERVICE])",
        "properties" : {
          "as_text" : {
            "type" : "string",
            "description" : "Requirement represented as text",
            "example" : "docSubType in (DIPLOMATIC, SERVICE)"
          },
          "field" : {
            "type" : "string",
            "description" : "Field",
            "example" : "docSubType"
          },
          "values" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            },
            "description" : "Allowed values",
            "example" : "[\"DIPLOMATIC\", \"SERVICE\"]"
          },
          "type" : {
            "type" : "string"
          }
        },
        "required" : [ "as_text", "field", "values", "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" ]
      },
      "Not" : {
        "type" : "object",
        "description" : "Composed checklist item requirement: Not(ChecklistItemRequirement)",
        "properties" : {
          "as_text" : {
            "type" : "string",
            "description" : "Requirement represented as text",
            "example" : "not(docSubType = \"TOURIST\" and durationFullYears = 10)"
          },
          "requirement" : {
            "$ref" : "#/components/schemas/ChecklistItemRequirement",
            "description" : "Embedded requirement"
          },
          "type" : {
            "type" : "string"
          }
        },
        "required" : [ "as_text", "requirement", "type" ]
      },
      "ChecklistItemType" : {
        "type" : "object",
        "description" : "Checklist item type, eg RESIDENCE_PERMIT/USA which represents USA Green Card",
        "properties" : {
          "item_type" : {
            "type" : "string",
            "description" : "Checklist item type",
            "example" : "RESIDENCE_PERMIT"
          },
          "item_territory" : {
            "description" : "Item type territory, might be null",
            "example" : "USA",
            "type" : [ "string", "null" ]
          }
        },
        "required" : [ "item_type" ]
      },
      "Question" : {
        "oneOf" : [ {
          "$ref" : "#/components/schemas/DeclarationItem"
        }, {
          "$ref" : "#/components/schemas/HaveDocumentQuestion"
        }, {
          "$ref" : "#/components/schemas/PickFromListQuestion"
        } ],
        "discriminator" : {
          "propertyName" : "type",
          "mapping" : {
            "declaration-item" : "#/components/schemas/DeclarationItem",
            "have-document-question" : "#/components/schemas/HaveDocumentQuestion",
            "pick-from-list-question" : "#/components/schemas/PickFromListQuestion"
          }
        }
      },
      "DeclarationItem" : {
        "type" : "object",
        "description" : "A Yes/No question (boolean)",
        "properties" : {
          "id" : {
            "type" : "string",
            "description" : "Question/Declaration item id",
            "example" : "HelbxGxFg0gpdAdnumztVA=="
          },
          "is_relevant" : {
            "type" : "boolean",
            "description" : "Whether question is relevant for this passenger, according to current answers to all questions"
          },
          "answer" : {
            "description" : "Declaration answer (confirm/refute), if was provided",
            "example" : "null",
            "type" : [ "boolean", "null" ]
          },
          "question_title" : {
            "$ref" : "#/components/schemas/QuestionTitle",
            "description" : "Declaration title (localised) - formed in either positive or negative form ('I am' or 'I am not'), depending on declaration"
          },
          "sample_image" : {
            "description" : "Question sample image (eg US Green Card specimen) with a title",
            "anyOf" : [ {
              "$ref" : "#/components/schemas/QuestionSampleImage"
            }, {
              "type" : "null"
            } ]
          },
          "default_value" : {
            "type" : "boolean"
          },
          "type" : {
            "type" : "string"
          }
        },
        "required" : [ "id", "is_relevant", "question_title", "default_value", "type" ]
      },
      "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" ]
      },
      "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" ]
      },
      "Option" : {
        "type" : "object",
        "description" : "Option to choose for `pick-from-list-question`",
        "properties" : {
          "id" : {
            "type" : "string",
            "description" : "Option id"
          },
          "title" : {
            "type" : "string",
            "description" : "Option title (localised)"
          }
        },
        "required" : [ "id", "title" ]
      },
      "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" ]
      },
      "QuestionTitle" : {
        "type" : "object",
        "description" : "Question title and optional subtitle",
        "properties" : {
          "name" : {
            "type" : "string",
            "description" : "Question title",
            "example" : "Since 01/01/2011, I have visited the following countries:"
          },
          "subtitle" : {
            "description" : "Optional question subtitle",
            "example" : "Cuba, North Korea",
            "type" : [ "string", "null" ]
          }
        },
        "required" : [ "name" ]
      },
      "RuleOrigin" : {
        "type" : "object",
        "description" : "Origin of the rule",
        "properties" : {
          "type" : {
            "$ref" : "#/components/schemas/RuleType",
            "description" : "Type (ENTRY/TRANSIT/EXIT)",
            "example" : "ENTRY"
          },
          "country" : {
            "type" : "string",
            "description" : "Rule origin country",
            "example" : "MEX"
          }
        },
        "required" : [ "type", "country" ]
      },
      "RuleType" : {
        "type" : "string",
        "enum" : [ "ENTRY", "TRANSIT", "EXIT" ]
      },
      "DocumentMrzConfiguration" : {
        "type" : "string",
        "enum" : [ "NONE", "DATA_PAGE", "CARD_FRONT", "CARD_BACK" ]
      },
      "DocumentSidesConfiguration" : {
        "type" : "string",
        "enum" : [ "SINGLE_SIDE_OR_FILE", "MULTIPLE_SIDES_OR_FILES" ]
      },
      "DocumentSidesExpectation" : {
        "type" : "string",
        "enum" : [ "DATA_PAGE", "CARD_FRONT", "CARD_BACK", "ALL" ]
      },
      "IcaoNationality" : {
        "type" : "string",
        "enum" : [ "ASC", "AND", "ARE", "AFG", "ATG", "AIA", "ALB", "ARM", "ANT", "AGO", "ATA", "ARG", "ASM", "AUT", "AUS", "ABW", "ALA", "AZE", "BIH", "BRB", "BGD", "BEL", "BFA", "BGR", "BHR", "BDI", "BEN", "BLM", "BMU", "BRN", "BOL", "BES", "BRA", "BHS", "BTN", "BUR", "BVT", "BWA", "BLR", "BLZ", "CAN", "CCK", "COD", "CAF", "COG", "CHE", "CIV", "COK", "CHL", "CMR", "CHN", "COL", "CPT", "CRI", "SCG", "CUB", "CPV", "CUW", "CXR", "CYP", "CZE", "DEU", "DGA", "DJI", "DNK", "DMA", "DOM", "DZA", "ECU", "EST", "EGY", "ESH", "ERI", "ESP", "ETH", "FIN", "FJI", "FLK", "FSM", "FRO", "FRA", "FXX", "GAB", "GBR", "GRD", "GEO", "GUF", "GGY", "GHA", "GIB", "GRL", "GMB", "GIN", "GLP", "GNQ", "GRC", "SGS", "GTM", "GUM", "GNB", "GUY", "HKG", "HMD", "HND", "HRV", "HTI", "HUN", "IDN", "IRL", "ISR", "IMN", "IND", "IOT", "IRQ", "IRN", "ISL", "ITA", "JEY", "JAM", "JOR", "JPN", "KEN", "KGZ", "KHM", "KIR", "COM", "KNA", "PRK", "KOR", "KWT", "CYM", "KAZ", "LAO", "LBN", "LCA", "LIE", "LKA", "LBR", "LSO", "LTU", "LUX", "LVA", "LBY", "MAR", "MCO", "MDA", "MNE", "MAF", "MDG", "MHL", "MKD", "MLI", "MMR", "MNG", "MAC", "MNP", "MTQ", "MRT", "MSR", "MLT", "MUS", "MDV", "MWI", "MEX", "MYS", "MOZ", "NAM", "NCL", "NER", "NFK", "NGA", "NIC", "NLD", "NOR", "NPL", "NRU", "NTZ", "NIU", "NZL", "OMN", "PAN", "PER", "PYF", "PNG", "PHL", "PAK", "POL", "SPM", "PCN", "PRI", "PSE", "PRT", "PLW", "PRY", "QAT", "REU", "ROU", "SRB", "RUS", "RWA", "SAU", "SLB", "SYC", "SDN", "SWE", "SGP", "SHN", "SVN", "SJM", "SVK", "SLE", "SMR", "SEN", "SOM", "SUR", "SSD", "STP", "SUN", "SLV", "SXM", "SYR", "SWZ", "TAA", "TCA", "TCD", "ATF", "TGO", "THA", "TJK", "TKL", "TLS", "TKM", "TUN", "TON", "TMP", "TUR", "TTO", "TUV", "TWN", "TZA", "UKR", "UGA", "UMI", "USA", "URY", "UZB", "VAT", "VCT", "VEN", "VGB", "VIR", "VNM", "VUT", "WLF", "WSM", "XXI", "XXU", "XKX", "YEM", "MYT", "YUG", "ZAF", "ZMB", "ZAR", "ZWE", "D", "EUE", "GBD", "GBN", "GBO", "GBP", "GBS", "UNA", "UNK", "UNO", "XBA", "XIM", "XCC", "XCO", "XEC", "XPO", "XOM", "XXA", "XXB", "XXC", "XXX", "ZIM", "NSK", "RKS", "WSA", "XCT" ]
      },
      "IcaoSex" : {
        "type" : "string",
        "enum" : [ "M", "F", "X" ]
      },
      "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" ]
      },
      "AllowedDocumentFormat" : {
        "type" : "string",
        "enum" : [ "BOOKLET", "ID_CARD", "EMBASSY_VISA", "PAPER", "PDF" ]
      },
      "AllowedDocumentsSet" : {
        "type" : "object",
        "description" : "A set of documents with which this checklist item can be resolved",
        "properties" : {
          "force_document_type_required" : {
            "type" : "boolean",
            "description" : "When true, it is required to provide exactly 1 value for `expected_document_types` when calling apply-document/file endpoint - ie user must choose document type they are uploading",
            "example" : "false"
          },
          "allowed_documents" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/AllowedDocument"
            },
            "description" : "List of documents that can resolve a checklist item"
          }
        },
        "required" : [ "force_document_type_required", "allowed_documents" ]
      },
      "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"
          }
        }
      },
      "IdMismatches" : {
        "type" : "object",
        "description" : "A record of mismatches to booking for document applied",
        "properties" : {
          "given_name" : {
            "items" : {
              "type" : "string"
            },
            "description" : "Given names mismatch - a pair of (expected, actual); or null if no mismatch on the field",
            "example" : "['JOHN', 'MICHAEL']",
            "type" : [ "array", "null" ]
          },
          "surname" : {
            "items" : {
              "type" : "string"
            },
            "description" : "Last name mismatch - a pair of (expected, actual); or null if no mismatch on the field",
            "example" : "['SMITH', 'BLACK']",
            "type" : [ "array", "null" ]
          },
          "full_name" : {
            "items" : {
              "type" : "string"
            },
            "description" : "Full name mismatch (for relevant documents, eg Indian E-Visa) - a pair of (expected, actual); or null if no mismatch on the field",
            "example" : "['JACK SMITH', 'JACK BLACK']",
            "type" : [ "array", "null" ]
          },
          "number" : {
            "items" : {
              "type" : "string"
            },
            "description" : "Document number mismatch - a pair of (expected, actual); or null if no mismatch on the field",
            "example" : "['1234567', 'AA556743']",
            "type" : [ "array", "null" ]
          },
          "birthdate" : {
            "items" : {
              "type" : "string",
              "format" : "date"
            },
            "description" : "Birthdate mismatch - a pair of (expected, actual); or null if no mismatch on the field",
            "type" : [ "array", "null" ]
          },
          "sex" : {
            "items" : {
              "$ref" : "#/components/schemas/IcaoSex"
            },
            "description" : "Sex mismatch - a pair of (expected, actual); or null if no mismatch on the field",
            "example" : "['M', 'F']",
            "type" : [ "array", "null" ]
          },
          "nationality" : {
            "items" : {
              "$ref" : "#/components/schemas/IcaoNationality"
            },
            "description" : "Nationality mismatch - a pair of (expected, actual); or null if no mismatch on the field",
            "example" : "['USA', 'MEX']",
            "type" : [ "array", "null" ]
          },
          "type" : {
            "type" : "string"
          }
        },
        "required" : [ "type" ]
      },
      "NoItemsToApplyDocumentTo" : {
        "type" : "object",
        "description" : "Apply file: Found no items in checklist to apply document provided",
        "properties" : {
          "type" : {
            "type" : "string"
          }
        },
        "required" : [ "type" ]
      },
      "RulesMismatch" : {
        "oneOf" : [ {
          "$ref" : "#/components/schemas/ExpiryDateGteMismatch"
        }, {
          "$ref" : "#/components/schemas/FieldMismatch"
        }, {
          "$ref" : "#/components/schemas/NationalityInMismatch"
        } ],
        "discriminator" : {
          "propertyName" : "type",
          "mapping" : {
            "expiry-date-gte-mismatch" : "#/components/schemas/ExpiryDateGteMismatch",
            "field-mismatch" : "#/components/schemas/FieldMismatch",
            "nationality-in-mismatch" : "#/components/schemas/NationalityInMismatch"
          }
        }
      },
      "ExpiryDateGteMismatch" : {
        "type" : "object",
        "description" : "Rules mismatch: expiry date greater than or equal to",
        "properties" : {
          "expected" : {
            "type" : "string",
            "format" : "date",
            "description" : "What was expected"
          },
          "actual" : {
            "type" : "string",
            "format" : "date",
            "description" : "What was provided"
          },
          "type" : {
            "type" : "string"
          }
        },
        "required" : [ "expected", "actual", "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" ]
      },
      "NationalityInMismatch" : {
        "type" : "object",
        "description" : "Rules mismatch: nationality",
        "properties" : {
          "expected" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/IcaoNationality"
            },
            "description" : "What was expected"
          },
          "actual" : {
            "$ref" : "#/components/schemas/IcaoNationality",
            "description" : "What was provided"
          },
          "type" : {
            "type" : "string"
          }
        },
        "required" : [ "expected", "actual", "type" ]
      },
      "RulesMismatches" : {
        "type" : "object",
        "properties" : {
          "mismatches" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/RulesMismatch"
            }
          },
          "type" : {
            "type" : "string"
          }
        },
        "required" : [ "mismatches", "type" ]
      },
      "SignalsMismatches" : {
        "type" : "object",
        "description" : "A record of mismatches to Zamna Signals for document applied",
        "properties" : {
          "fields" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "type" : {
            "type" : "string"
          }
        },
        "required" : [ "fields", "type" ]
      },
      "TravelDocumentRequired" : {
        "type" : "object",
        "description" : "Apply file: Passport have to be provided first",
        "properties" : {
          "type" : {
            "type" : "string"
          }
        },
        "required" : [ "type" ]
      },
      "Checklist" : {
        "type" : "object",
        "description" : "Comprises checklist statuses, questions/answers and checklist items",
        "properties" : {
          "id" : {
            "type" : "string",
            "description" : "Checklist id",
            "example" : "667e0198-af81-4276-a931-365e5065e258"
          },
          "status" : {
            "$ref" : "#/components/schemas/ChecklistStatus",
            "description" : "Checklist status (ON_HOLD, ACTIVE or FINALIZED)",
            "example" : "ACTIVE"
          },
          "nationality" : {
            "description" : "Nationality, if set",
            "example" : "GBR",
            "type" : [ "string", "null" ]
          },
          "has_nationality_question" : {
            "type" : "boolean",
            "description" : "True if nationality affects rules - require from passenger, unless `nationality` is not null (was provided already)",
            "example" : "false"
          },
          "birthdate" : {
            "format" : "date",
            "description" : "Birthdate, if set",
            "type" : [ "string", "null" ]
          },
          "has_birthdate_question" : {
            "type" : "boolean",
            "description" : "True if birthdate affects rules - require from passenger, unless `birthdate` is not null (was provided already)",
            "example" : "false"
          },
          "questions" : {
            "items" : {
              "$ref" : "#/components/schemas/Question"
            },
            "description" : "List of relevant questions to form the checklist, need to answer all via setAnswers endpoint",
            "type" : [ "array", "null" ]
          },
          "resolution_status" : {
            "$ref" : "#/components/schemas/ChecklistResolutionStatus",
            "description" : "Checklist resolution status (READY_TO_FLY, ENTRY_NOT_ALLOWED, ACTION_REQUIRED, UNKNOWN or NOT_ELIGIBLE)",
            "example" : "ACTION_REQUIRED"
          },
          "items" : {
            "items" : {
              "$ref" : "#/components/schemas/ChecklistItem"
            },
            "description" : "Checklist items to resolve for passenger and their status, shown once all relevant questions are answered",
            "type" : [ "array", "null" ]
          },
          "allowed_travel_documents_set" : {
            "description" : "All possible documents to satisfy travel document requirement",
            "anyOf" : [ {
              "$ref" : "#/components/schemas/AllowedDocumentsSet"
            }, {
              "type" : "null"
            } ]
          }
        },
        "required" : [ "id", "status", "has_nationality_question", "has_birthdate_question", "resolution_status" ]
      },
      "ChecklistItem" : {
        "oneOf" : [ {
          "$ref" : "#/components/schemas/DocumentRequirement"
        }, {
          "$ref" : "#/components/schemas/InfoItem"
        } ],
        "discriminator" : {
          "propertyName" : "type",
          "mapping" : {
            "document-requirement" : "#/components/schemas/DocumentRequirement",
            "info-item" : "#/components/schemas/InfoItem"
          }
        }
      },
      "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" ]
      },
      "InfoItem" : {
        "type" : "object",
        "description" : "Info item - can't be resolved manually",
        "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"
          },
          "status" : {
            "$ref" : "#/components/schemas/ChecklistItemStatus",
            "description" : "Checklist item status",
            "example" : "RESOLVED"
          },
          "type" : {
            "type" : "string"
          }
        },
        "required" : [ "id", "title", "rule_origin", "status", "type" ]
      },
      "DocumentProvisionMethod" : {
        "type" : "string",
        "enum" : [ "MANUAL", "SCAN", "UPLOAD" ]
      },
      "ErrorContainer" : {
        "type" : "object",
        "properties" : {
          "general_error" : {
            "anyOf" : [ {
              "$ref" : "#/components/schemas/GeneralError"
            }, {
              "type" : "null"
            } ]
          }
        }
      },
      "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" ]
      },
      "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" ]
          }
        }
      },
      "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" ]
      },
      "RequiredAction" : {
        "type" : "string",
        "enum" : [ "PROVIDE_CONSENT_RESPONSE", "PROVIDE_NATIONALITY_OR_BIRTHDATE", "PROVIDE_ADDRESS", "ANSWER_QUESTIONS", "RESOLVE_ITEMS" ]
      },
      "TravelDocument" : {
        "type" : "object",
        "description" : "Travel document structure for manual input using /apply-document/travel-document",
        "properties" : {
          "document_type" : {
            "type" : "string",
            "description" : "Type of travel document, see checklist.possible_travel_documents for allowed types for this journey",
            "example" : "PASSPORT"
          },
          "number" : {
            "type" : "string",
            "example" : "AD33344455"
          },
          "expiry_date" : {
            "type" : "string",
            "format" : "date",
            "example" : "1980-01-01"
          },
          "country_code" : {
            "type" : "string",
            "description" : "ISO 3166-1 alpha-3 https://en.wikipedia.org/wiki/ISO_3166-1_alpha-3",
            "example" : "GBR"
          },
          "given_name" : {
            "example" : "JOHN",
            "type" : [ "string", "null" ]
          },
          "surname" : {
            "example" : "SMITH",
            "type" : [ "string", "null" ]
          },
          "sex" : {
            "example" : "F",
            "anyOf" : [ {
              "$ref" : "#/components/schemas/IcaoSex"
            }, {
              "type" : "null"
            } ]
          },
          "birthdate" : {
            "type" : "string",
            "format" : "date",
            "example" : "1980-01-01"
          },
          "nationality" : {
            "type" : "string",
            "description" : "ISO 3166-1 alpha-3 https://en.wikipedia.org/wiki/ISO_3166-1_alpha-3",
            "example" : "GBR"
          },
          "sub_type" : {
            "description" : "Provided document sub type (eg DIPLOMATIC for passport)",
            "example" : "DIPLOMATIC",
            "type" : [ "string", "null" ]
          }
        },
        "required" : [ "document_type", "number", "expiry_date", "country_code", "birthdate", "nationality" ]
      },
      "AddAddressRequest" : {
        "type" : "object",
        "properties" : {
          "address" : {
            "$ref" : "#/components/schemas/Address"
          }
        },
        "required" : [ "address" ]
      },
      "AddAddressResponse" : {
        "type" : "object",
        "properties" : {
          "data" : {
            "anyOf" : [ {
              "$ref" : "#/components/schemas/AddAddressResult"
            }, {
              "type" : "null"
            } ]
          },
          "error" : {
            "anyOf" : [ {
              "$ref" : "#/components/schemas/ErrorContainer"
            }, {
              "type" : "null"
            } ]
          }
        }
      },
      "AddAddressResult" : {
        "type" : "object",
        "properties" : {
          "updated_pax_session" : {
            "$ref" : "#/components/schemas/PaxSession"
          }
        },
        "required" : [ "updated_pax_session" ]
      },
      "Address" : {
        "type" : "object",
        "properties" : {
          "lineOne" : {
            "type" : [ "string", "null" ]
          },
          "lineTwo" : {
            "type" : [ "string", "null" ]
          },
          "lineThree" : {
            "type" : [ "string", "null" ]
          },
          "city" : {
            "type" : [ "string", "null" ]
          },
          "state" : {
            "type" : [ "string", "null" ]
          },
          "postalCode" : {
            "maxLength" : 10,
            "type" : [ "string", "null" ]
          },
          "countryCode" : {
            "type" : [ "string", "null" ]
          }
        }
      },
      "BarcodeToDocMismatch" : {
        "type" : "object",
        "description" : "Doc recognition error: Barcode data to document mismatch",
        "properties" : {
          "type" : {
            "type" : "string"
          }
        },
        "required" : [ "type" ]
      },
      "DocumentTypeNotSupported" : {
        "type" : "object",
        "description" : "Doc recognition error: file type not supported",
        "properties" : {
          "type" : {
            "type" : "string"
          }
        },
        "required" : [ "type" ]
      },
      "FileTooLarge" : {
        "type" : "object",
        "description" : "Doc recognition error: file is too large",
        "properties" : {
          "maxSize" : {
            "type" : "integer",
            "format" : "int32",
            "description" : "Max file size in bytes"
          },
          "type" : {
            "type" : "string"
          }
        },
        "required" : [ "maxSize", "type" ]
      },
      "FileTypesNotSupported" : {
        "type" : "object",
        "description" : "Doc recognition error: file type not supported",
        "properties" : {
          "provided_file_types" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            },
            "description" : "Which document types were provided"
          },
          "supported_file_types" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            },
            "description" : "Which document types are supported"
          },
          "type" : {
            "type" : "string"
          }
        },
        "required" : [ "provided_file_types", "supported_file_types", "type" ]
      },
      "MrzToVizMismatch" : {
        "type" : "object",
        "description" : "Doc recognition error: MRZ to VIZ mismatch",
        "properties" : {
          "type" : {
            "type" : "string"
          }
        },
        "required" : [ "type" ]
      },
      "MrzVerificationError" : {
        "type" : "object",
        "description" : "Doc recognition error: MRZ verification failed",
        "properties" : {
          "type" : {
            "type" : "string"
          }
        },
        "required" : [ "type" ]
      },
      "NoBarcodeScannedError" : {
        "type" : "object",
        "description" : "Doc recognition error: barcode was not present",
        "properties" : {
          "type" : {
            "type" : "string"
          }
        },
        "required" : [ "type" ]
      },
      "NoMrzSideScannedError" : {
        "type" : "object",
        "description" : "Doc recognition error: mrz document side wasn't provided",
        "properties" : {
          "type" : {
            "type" : "string"
          }
        },
        "required" : [ "type" ]
      },
      "NotAllSidesScannedError" : {
        "type" : "object",
        "description" : "Doc recognition error: not all required document sides were provided",
        "properties" : {
          "type" : {
            "type" : "string"
          }
        },
        "required" : [ "type" ]
      },
      "RecognizedDocumentKindMismatch" : {
        "type" : "object",
        "description" : "Doc recognition error: wrong document type",
        "properties" : {
          "expected_types" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            },
            "description" : "Which document types were expected"
          },
          "type" : {
            "type" : "string"
          }
        },
        "required" : [ "expected_types", "type" ]
      },
      "UnknownRecognitionError" : {
        "type" : "object",
        "description" : "Doc recognition error: unknown error",
        "properties" : {
          "message" : {
            "type" : "string",
            "description" : "Error message"
          },
          "type" : {
            "type" : "string"
          }
        },
        "required" : [ "message", "type" ]
      },
      "ApplyRecognisedDocumentRequest" : {
        "type" : "object",
        "description" : "Request to provide scanned or uploaded images/files to resolve checklist item(s)",
        "properties" : {
          "documents" : {
            "type" : "array",
            "items" : {
              "type" : "object"
            },
            "description" : "List of documents got from /recognise-document"
          },
          "document_type" : {
            "type" : "string",
            "description" : "Document type recognised by /recognise-document"
          },
          "signature" : {
            "type" : "string",
            "description" : "Signature got from /recognise-document"
          },
          "method" : {
            "$ref" : "#/components/schemas/DocumentProvisionMethod",
            "description" : "Provision method - should be either `SCAN` or `UPLOAD`",
            "example" : "SCAN"
          },
          "is_travel_document" : {
            "type" : "boolean",
            "description" : "Whether document applied is travel document - should match DocumentRequirement.is_travel_document from Checklist item",
            "example" : "true"
          },
          "additional_pax_ids" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            },
            "description" : "List of additional pax session ids to apply this document to (apart from main pax session id)"
          }
        },
        "required" : [ "documents", "document_type", "signature", "method", "is_travel_document", "additional_pax_ids" ]
      },
      "ApplyRecognisedDocumentResponse" : {
        "type" : "object",
        "properties" : {
          "data" : {
            "anyOf" : [ {
              "$ref" : "#/components/schemas/ApplyRecognisedDocumentResult"
            }, {
              "type" : "null"
            } ]
          },
          "error" : {
            "anyOf" : [ {
              "$ref" : "#/components/schemas/ApplyRecognisedDocumentResponseError"
            }, {
              "type" : "null"
            } ]
          }
        }
      },
      "ApplyRecognisedDocumentResponseError" : {
        "type" : "object",
        "properties" : {
          "general_error" : {
            "anyOf" : [ {
              "$ref" : "#/components/schemas/GeneralError"
            }, {
              "type" : "null"
            } ]
          },
          "operationError" : {
            "anyOf" : [ {
              "$ref" : "#/components/schemas/ApplyDocumentError"
            }, {
              "type" : "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" ]
      },
      "ApplyTravelDocumentRequest" : {
        "type" : "object",
        "description" : "Request to provide manually input travel document data to try resolve checklist item(s). When `checklist_item_id` is provided, travel document data applies directly to checklist item by its id. Otherwise, travel document data is applied to all checklist items with `TRAVEL_DOCUMENT` type.",
        "properties" : {
          "travel_document" : {
            "$ref" : "#/components/schemas/TravelDocument",
            "description" : "Travel document data"
          },
          "ignore_mistakes" : {
            "type" : "boolean",
            "description" : "Whether to ignore potential data mismatches and accept travel document data provided (unless mismatch to booking data). It will be added to DCS, but not verified until scanned/uploaded"
          }
        },
        "required" : [ "travel_document", "ignore_mistakes" ]
      },
      "ApplyTravelDocumentResponse" : {
        "type" : "object",
        "properties" : {
          "data" : {
            "anyOf" : [ {
              "$ref" : "#/components/schemas/ApplyTravelDocumentResult"
            }, {
              "type" : "null"
            } ]
          },
          "error" : {
            "anyOf" : [ {
              "$ref" : "#/components/schemas/ApplyTravelDocumentResponseError"
            }, {
              "type" : "null"
            } ]
          }
        }
      },
      "ApplyTravelDocumentResponseError" : {
        "type" : "object",
        "properties" : {
          "general_error" : {
            "anyOf" : [ {
              "$ref" : "#/components/schemas/GeneralError"
            }, {
              "type" : "null"
            } ]
          },
          "operationError" : {
            "$ref" : "#/components/schemas/ApplyDocumentError"
          }
        },
        "required" : [ "operationError" ]
      },
      "ApplyTravelDocumentResult" : {
        "type" : "object",
        "properties" : {
          "successfully_verified" : {
            "type" : "boolean",
            "description" : "Whether travel document was verified, if false - travel document would require additional scan or upload to be verified"
          },
          "updated_pax_session" : {
            "$ref" : "#/components/schemas/PaxSession",
            "description" : "If success, updated Pax session, null otherwise"
          }
        },
        "required" : [ "successfully_verified", "updated_pax_session" ]
      },
      "GeneralError" : {
        "type" : "object",
        "properties" : {
          "code" : {
            "$ref" : "#/components/schemas/GeneralErrorCode"
          },
          "message" : {
            "type" : [ "string", "null" ]
          },
          "details" : {
            "additionalProperties" : {
              "type" : "string"
            },
            "type" : [ "object", "null" ]
          }
        },
        "required" : [ "code" ]
      },
      "GeneralErrorCode" : {
        "type" : "string",
        "enum" : [ "NOT_FOUND", "BAD_REQUEST", "BOOKING_CURRENTLY_NOT_PROCESSABLE", "BOOKING_NOT_PROCESSABLE", "SESSION_IS_LOCKED", "SESSION_FINALISED" ]
      },
      "GetPaxSessionResponse" : {
        "type" : "object",
        "properties" : {
          "data" : {
            "anyOf" : [ {
              "$ref" : "#/components/schemas/PaxSession"
            }, {
              "type" : "null"
            } ]
          },
          "error" : {
            "anyOf" : [ {
              "$ref" : "#/components/schemas/ErrorContainer"
            }, {
              "type" : "null"
            } ]
          }
        }
      },
      "GetSessionResponse" : {
        "type" : "object",
        "properties" : {
          "data" : {
            "anyOf" : [ {
              "$ref" : "#/components/schemas/MultipaxSession"
            }, {
              "type" : "null"
            } ]
          },
          "error" : {
            "anyOf" : [ {
              "$ref" : "#/components/schemas/ErrorContainer"
            }, {
              "type" : "null"
            } ]
          }
        }
      },
      "RecogniseDocumentResponse" : {
        "type" : "object",
        "properties" : {
          "data" : {
            "anyOf" : [ {
              "$ref" : "#/components/schemas/RecogniseDocumentResult"
            }, {
              "type" : "null"
            } ]
          },
          "error" : {
            "anyOf" : [ {
              "$ref" : "#/components/schemas/RecogniseDocumentResponseError"
            }, {
              "type" : "null"
            } ]
          }
        }
      },
      "RecogniseDocumentResponseError" : {
        "type" : "object",
        "properties" : {
          "general_error" : {
            "anyOf" : [ {
              "$ref" : "#/components/schemas/GeneralError"
            }, {
              "type" : "null"
            } ]
          },
          "operationError" : {
            "anyOf" : [ {
              "$ref" : "#/components/schemas/RecognizeDocumentError"
            }, {
              "type" : "null"
            } ]
          }
        }
      },
      "RecogniseDocumentResult" : {
        "type" : "object",
        "properties" : {
          "documents" : {
            "type" : "array",
            "items" : {
              "type" : "object"
            }
          },
          "signature" : {
            "type" : "string"
          },
          "document_type" : {
            "type" : "string"
          }
        },
        "required" : [ "documents", "signature", "document_type" ]
      },
      "RecognizeDocumentError" : {
        "oneOf" : [ {
          "$ref" : "#/components/schemas/BarcodeToDocMismatch"
        }, {
          "$ref" : "#/components/schemas/DocumentTypeNotSupported"
        }, {
          "$ref" : "#/components/schemas/FileTooLarge"
        }, {
          "$ref" : "#/components/schemas/FileTypesNotSupported"
        }, {
          "$ref" : "#/components/schemas/MrzToVizMismatch"
        }, {
          "$ref" : "#/components/schemas/MrzVerificationError"
        }, {
          "$ref" : "#/components/schemas/NoBarcodeScannedError"
        }, {
          "$ref" : "#/components/schemas/NoMrzSideScannedError"
        }, {
          "$ref" : "#/components/schemas/NotAllSidesScannedError"
        }, {
          "$ref" : "#/components/schemas/RecognizedDocumentKindMismatch"
        }, {
          "$ref" : "#/components/schemas/UnknownRecognitionError"
        } ],
        "discriminator" : {
          "propertyName" : "type",
          "mapping" : {
            "barcode-to-doc-mismatch" : "#/components/schemas/BarcodeToDocMismatch",
            "document-type-not-supported" : "#/components/schemas/DocumentTypeNotSupported",
            "file-too-large" : "#/components/schemas/FileTooLarge",
            "file-type-not-supported" : "#/components/schemas/FileTypesNotSupported",
            "mrz-to-viz-mismatch" : "#/components/schemas/MrzToVizMismatch",
            "mrz-validation-failed" : "#/components/schemas/MrzVerificationError",
            "no-barcode-scanned" : "#/components/schemas/NoBarcodeScannedError",
            "no-mrz-side-scanned" : "#/components/schemas/NoMrzSideScannedError",
            "not-all-sides-scanned" : "#/components/schemas/NotAllSidesScannedError",
            "document-kind-mismatch" : "#/components/schemas/RecognizedDocumentKindMismatch",
            "unknown-error" : "#/components/schemas/UnknownRecognitionError"
          }
        }
      },
      "SetAnswersRequest" : {
        "type" : "object",
        "description" : "Request to set nationality, birthdate, answers to questions and confirm/refute declarations",
        "properties" : {
          "nationality" : {
            "description" : "Nationality, nullable",
            "example" : "MEX",
            "type" : [ "string", "null" ]
          },
          "birthdate" : {
            "format" : "date",
            "description" : "Birthdate, nullable",
            "type" : [ "string", "null" ]
          },
          "answers" : {
            "items" : {
              "$ref" : "#/components/schemas/Answer"
            },
            "description" : "List of answers, nullable",
            "type" : [ "array", "null" ]
          },
          "confirm_declarations" : {
            "items" : {
              "type" : "string"
            },
            "description" : "List of declaration ids to confirm",
            "type" : [ "array", "null" ]
          },
          "refute_declarations" : {
            "items" : {
              "type" : "string"
            },
            "description" : "List of declaration ids to refute",
            "type" : [ "array", "null" ]
          }
        }
      },
      "SetAnswersResponse" : {
        "type" : "object",
        "properties" : {
          "data" : {
            "anyOf" : [ {
              "$ref" : "#/components/schemas/PaxSession"
            }, {
              "type" : "null"
            } ]
          },
          "error" : {
            "anyOf" : [ {
              "$ref" : "#/components/schemas/ErrorContainer"
            }, {
              "type" : "null"
            } ]
          }
        }
      },
      "SetConsentRequest" : {
        "type" : "object",
        "description" : "Request to set consent response for MultiPax session",
        "properties" : {
          "consent" : {
            "type" : "boolean",
            "description" : "Consent response",
            "example" : "true"
          }
        },
        "required" : [ "consent" ]
      },
      "SetConsentResponse" : {
        "type" : "object",
        "properties" : {
          "data" : {
            "anyOf" : [ {
              "$ref" : "#/components/schemas/MultipaxSession"
            }, {
              "type" : "null"
            } ]
          },
          "error" : {
            "anyOf" : [ {
              "$ref" : "#/components/schemas/ErrorContainer"
            }, {
              "type" : "null"
            } ]
          }
        }
      },
      "Start1Response" : {
        "type" : "object",
        "properties" : {
          "data" : {
            "anyOf" : [ {
              "$ref" : "#/components/schemas/Start1ResponseData"
            }, {
              "type" : "null"
            } ]
          },
          "error" : {
            "anyOf" : [ {
              "$ref" : "#/components/schemas/ErrorContainer"
            }, {
              "type" : "null"
            } ]
          }
        }
      },
      "Start1ResponseData" : {
        "type" : "object",
        "description" : "Response for /start endpoint",
        "properties" : {
          "session_id" : {
            "type" : "string",
            "description" : "MultiPax session id",
            "example" : "aae10767-d13b-4e5c-a9fe-0ab8f13b8087"
          },
          "pax_check_token" : {
            "type" : "string",
            "description" : "Session token to authenticate to other API endpoints"
          },
          "session" : {
            "description" : "Current session state",
            "anyOf" : [ {
              "$ref" : "#/components/schemas/MultipaxSession"
            }, {
              "type" : "null"
            } ]
          }
        },
        "required" : [ "session_id", "pax_check_token" ]
      },
      "StartWithBookingIdAndSurnameRequest" : {
        "type" : "object",
        "description" : "Request to login with booking identifier and surname, relies on ReCaptcha to prevent robots from using the service",
        "properties" : {
          "booking_id" : {
            "type" : "string",
            "description" : "Booking id",
            "example" : "BC45AS"
          },
          "surname" : {
            "type" : "string",
            "description" : "Passenger surname",
            "example" : "SMITH"
          },
          "recaptcha_response" : {
            "type" : "string",
            "description" : "ReCaptcha response"
          }
        },
        "required" : [ "booking_id", "surname", "recaptcha_response" ]
      },
      "StartWithBookingIdAndSurnameResponse" : {
        "type" : "object",
        "description" : "Response to login with booking identifier and surname",
        "properties" : {
          "data" : {
            "anyOf" : [ {
              "$ref" : "#/components/schemas/StartWithBookingIdAndSurnameResponseData"
            }, {
              "type" : "null"
            } ]
          },
          "error" : {
            "anyOf" : [ {
              "$ref" : "#/components/schemas/ErrorContainer"
            }, {
              "type" : "null"
            } ]
          }
        }
      },
      "StartWithBookingIdAndSurnameResponseData" : {
        "type" : "object",
        "description" : "Response for /start-with-booking-id-and-surname endpoint",
        "properties" : {
          "session_id" : {
            "type" : "string",
            "description" : "MultiPax session id",
            "example" : "aae10767-d13b-4e5c-a9fe-0ab8f13b8087"
          },
          "pax_check_token" : {
            "type" : "string",
            "description" : "Session token to authenticate to other API endpoints"
          },
          "return_url" : {
            "description" : "URL to where navigate passenger to",
            "type" : [ "string", "null" ]
          }
        },
        "required" : [ "session_id", "pax_check_token" ]
      }
    }
  },
  "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" : [ ]
        } ]
      }
    },
    "/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" : [ ]
        } ]
      }
    },
    "/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" : [ ]
        } ]
      }
    },
    "/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" : [ ]
        } ]
      }
    },
    "/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" : [ ]
        } ]
      }
    },
    "/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" : [ ]
        } ]
      }
    },
    "/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" : [ ]
        } ]
      }
    },
    "/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" : [ ]
        } ]
      }
    },
    "/start" : {
      "get" : {
        "summary" : "Initiate MultiPax session with encrypted booking id, get session token to authorize further requests",
        "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" : "encrypted_booking_id",
          "in" : "query",
          "description" : "Base64-encoded encrypted booking id",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "consented",
          "in" : "query",
          "description" : "Whether consent should be set for session, true/false",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "pax_ids",
          "in" : "query",
          "description" : "Comma-separated list of pax ids to load from booking (if not specified, all pax will be loaded)",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "encryption_mode",
          "in" : "query",
          "description" : "Encryption mode to use for booking id decryption. If omitted used the only one configured, or else AES_CBC if multiple modes are configured.",
          "schema" : {
            "type" : "string"
          },
          "example" : "AES_CBC"
        } ],
        "responses" : {
          "200" : {
            "description" : "MultiPax session id and token to authorize further requests",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Start1Response"
                }
              }
            }
          }
        }
      }
    },
    "/start-with-booking-id-and-surname" : {
      "post" : {
        "summary" : "Initiate MultiPax session with booking id and surname",
        "parameters" : [ {
          "name" : "X-Request-Id",
          "in" : "header",
          "description" : "Request id to be returned in response header (auto generated if not specified)",
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/StartWithBookingIdAndSurnameRequest"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "MultiPax session id and token to authorize further requests",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/StartWithBookingIdAndSurnameResponse"
                }
              }
            }
          }
        }
      }
    },
    "/start2" : {
      "get" : {
        "summary" : "For in-browser redirect — initiate MultiPax session with encrypted booking id, redirect browser to URL with session token to authorize further requests",
        "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" : "encrypted_booking_id",
          "in" : "query",
          "description" : "Base64-encoded encrypted booking id",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "redirect_url",
          "in" : "query",
          "description" : "URL to redirect to with auth token as query param",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "return_url",
          "in" : "query",
          "description" : "URL to return after passengers are Ready To Fly, or in case of errors",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "pax_ids",
          "in" : "query",
          "description" : "comma-separated list of pax ids to load from booking (if not specified, all pax will be loaded)",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "consented",
          "in" : "query",
          "description" : "Whether consent should be set for session, true/false",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "locale",
          "in" : "query",
          "description" : "Locale to redirect with (locale parameter is added to redirect_url)",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "departure_station",
          "in" : "query",
          "description" : "Departure station to select journey by (if not specified, first in future journey will be selected)",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "encryption_mode",
          "in" : "query",
          "description" : "Encryption mode to use for booking id decryption. If omitted used the only one configured, or else AES_CBC if multiple modes are configured.",
          "schema" : {
            "type" : "string"
          },
          "example" : "AES_CBC"
        } ],
        "responses" : {
          "302" : {
            "description" : "Location of the redirect contains redirect_url with added session token"
          },
          "400" : {
            "description" : "Bad Request"
          },
          "401" : {
            "description" : "Unauthorized"
          }
        }
      }
    }
  }
}