{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://raw.githubusercontent.com/api-evangelist/amadeus/refs/heads/main/json-schema/transfer-book-transfer-schema.json", "title": "Transfer", "description": "Transfer schema from Transfer Booking", "type": "object", "properties": { "transferType": { "type": "string", "enum": [ "PRIVATE", "SHARED", "TAXI", "HOURLY", "AIRPORT_EXPRESS", "AIRPORT_BUS" ], "description": "amadeus transfer service type\n\nvalue | description \n-------------- | ------------------------\nPRIVATE | Private transfer from point to point\nSHARED | Shared transfer from point to point\nTAXI | Taxi reservation from point to point, price is estimated\nHOURLY | Chauffeured driven transfer per hour\nAIRPORT_EXPRESS | Express Train from/to Airport\nAIRPORT_BUS | Express Bus from/to Airport\n", "example": "PRIVATE" }, "start": { "type": "object", "description": "location information", "properties": { "dateTime": { "description": "date and time specified in the [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) YYYY-MM-DDThh:mm:ss format e.g. 2017-11-10T10:00:00\nnot supported for stopOvers object\n", "type": "string", "example": "2019-11-10T10:30:00" }, "locationCode": { "type": "string", "description": "airport code from [IATA table codes](http://www.iata.org/publications/Pages/code-search.aspx), e.g. CDG.", "pattern": "[A-Za-z]{3}", "example": "CDG" }, "address": { "type": "object", "description": "address information", "properties": { "line": { "description": "Address line with street, number, bulding, etc...", "type": "string", "minLength": 1, "maxLength": 70, "example": "string-value" }, "zip": { "description": "Post office code number", "type": "string", "minLength": 1, "maxLength": 120, "example": "string-value" }, "countryCode": { "description": "Country code (two character standard IATA country code)", "type": "string", "pattern": "[a-zA-Z]{2}", "example": "FR" }, "cityName": { "description": "City, town or postal station", "type": "string", "minLength": 1, "maxLength": 35, "example": "Paris" }, "stateCode": { "description": "State code (two character standard IATA state code)", "type": "string", "pattern": "[a-zA-Z0-9]{1-2}", "example": "string-value" }, "latitude": { "description": "latitude of the location", "type": "number", "format": "double", "example": 43.580418 }, "longitude": { "description": "longitude of the location", "type": "number", "format": "double", "example": 7.125102 } } }, "name": { "type": "string", "description": "Place name e.g. Airport Name, Hotel Name etc.", "example": "Sample Name" }, "googlePlaceId": { "description": "Google place id only for google address e.g. ChIJL-DOWeBv5kcRfTbh97PimNc.", "type": "string", "example": "ChIJrTLr-GyuEmsRBfy61i59si0" }, "uicCode": { "type": "string", "description": "UIC code defined by the worldwide railway organization e.g. 8600626", "example": "string-value" } } }, "end": { "type": "object", "description": "location information", "properties": { "dateTime": { "description": "date and time specified in the [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) YYYY-MM-DDThh:mm:ss format e.g. 2017-11-10T10:00:00\nnot supported for stopOvers object\n", "type": "string", "example": "2019-11-10T10:30:00" }, "locationCode": { "type": "string", "description": "airport code from [IATA table codes](http://www.iata.org/publications/Pages/code-search.aspx), e.g. CDG.", "pattern": "[A-Za-z]{3}", "example": "CDG" }, "address": { "type": "object", "description": "address information", "properties": { "line": { "description": "Address line with street, number, bulding, etc...", "type": "string", "minLength": 1, "maxLength": 70, "example": "string-value" }, "zip": { "description": "Post office code number", "type": "string", "minLength": 1, "maxLength": 120, "example": "string-value" }, "countryCode": { "description": "Country code (two character standard IATA country code)", "type": "string", "pattern": "[a-zA-Z]{2}", "example": "FR" }, "cityName": { "description": "City, town or postal station", "type": "string", "minLength": 1, "maxLength": 35, "example": "Paris" }, "stateCode": { "description": "State code (two character standard IATA state code)", "type": "string", "pattern": "[a-zA-Z0-9]{1-2}", "example": "string-value" }, "latitude": { "description": "latitude of the location", "type": "number", "format": "double", "example": 43.580418 }, "longitude": { "description": "longitude of the location", "type": "number", "format": "double", "example": 7.125102 } } }, "name": { "type": "string", "description": "Place name e.g. Airport Name, Hotel Name etc.", "example": "Sample Name" }, "googlePlaceId": { "description": "Google place id only for google address e.g. ChIJL-DOWeBv5kcRfTbh97PimNc.", "type": "string", "example": "ChIJrTLr-GyuEmsRBfy61i59si0" }, "uicCode": { "type": "string", "description": "UIC code defined by the worldwide railway organization e.g. 8600626", "example": "string-value" } } }, "stopOvers": { "type": "array", "items": { "description": "Location of the stop over or the several stop over points. It can be defined either using IATA code or Address (address line, zip, country, city, state, latitude, longitude). Vehicle change via stop overs is not supported.", "properties": { "duration": { "description": "transfer stop duration in [ISO8601](https://en.wikipedia.org/wiki/ISO_8601) PnYnMnDTnHnMnS format, e.g. PT2H10M.", "type": "string", "example": "PT2H30M" }, "sequenceNumber": { "description": "sequence number of the stop e.g. 3", "type": "number", "example": 1 }, "location": { "$ref": "#/definitions/Location" } } } }, "passenegerCharacteristics": { "type": "array", "items": { "properties": { "passengerTypeCode": { "description": "Passenger type codes e.g. CHD , ADT. CHD is for child and ADT for Adult.", "type": "string", "example": "child" }, "age": { "type": "integer", "description": "Age of the Passenger (Mandatory if typeCode= \u201cCHD\u201d)", "example": 12 } } } }, "duration": { "description": "transfer duration in [ISO8601](https://en.wikipedia.org/wiki/ISO_8601) PnYnMnDTnHnMnS format, e.g. PT2H10M", "type": "string", "example": "PT2H30M" }, "vehicle": { "type": "object", "required": [ "code", "category", "description", "seats" ], "properties": { "code": { "type": "string", "enum": [ "CAR", "SED", "WGN", "ELC", "VAN", "SUV", "LMS", "MBR", "TRN", "BUS" ], "description": "vehicle type, which can take following values\n\nvalue | description\n-------------- | ------------------------\nCAR | Car\nSED | Sedan\nWGN | Wagon\nELC | Electric car\nVAN | Van or minivan\nSUV | Sport utility vehicle\nLMS | Limousine\nMBR | Motorbike\nTRN | Train\nBUS | Bus\n", "example": "CAR" }, "category": { "type": "string", "enum": [ "ST", "BU", "FC" ], "description": "category of the vehicle, which can take following values\n\nvalue | description\n-------------- | ------------------------\nST | Standard\nBU | Business\nFC | First class\n", "example": "ST" }, "description": { "type": "string", "description": "description of the vehicle. Can describe a list of potential vehicles, e.g. VW Polo or similar", "example": "Sample description text." }, "seats": { "type": "array", "items": { "$ref": "#/definitions/Seat" } }, "baggages": { "type": "array", "items": { "$ref": "#/definitions/Baggage" } }, "imageURL": { "type": "string", "description": "URL to vehicle image", "example": "https://example.com/resource" } } }, "serviceProvider": { "type": "object", "description": "information about provider", "required": [ "code", "name", "logoUrl" ], "properties": { "code": { "type": "string", "pattern": "[a-zA-Z]{3}", "description": "provider code", "example": "string-value" }, "name": { "type": "string", "pattern": "[a-zA-Z]{30}", "description": "provider name", "example": "Sample Name" }, "logoUrl": { "type": "string", "description": "URL to provider logo", "example": "https://example.com/resource" }, "termsUrl": { "type": "string", "description": "URL to provider's terms and conditions page", "example": "https://example.com/resource" }, "isPreferred": { "type": "boolean", "description": "indicates if sub-provider is preferred for the travel-seller", "example": true }, "contacts": { "allOf": [ { "$ref": "#/definitions/Contact" }, { "type": "object", "properties": { "address": { "$ref": "#/definitions/AddressCommon" } } } ], "description": "Contact and Adress details" }, "settings": { "type": "array", "description": "list of provider settings", "items": { "type": "string", "description": "provider setting", "enum": [ "BILLING_ADDRESS_REQUIRED", "FLIGHT_NUMBER_REQUIRED", "CVV_NUMBER_REQUIRED" ] } }, "businessIdentification": { "description": "Information about the Customer stakeholder participating to the described sales summary.", "properties": { "vatRegistrationNumber": { "type": "string", "description": "VAT (Value Added Tax) Registration Number of the customer applicable ot the current sales." } }, "example": "string-value" } } }, "partnerInfo": { "type": "object", "description": "Information about partner/subprovider. Below settings configuration is not applicable for sub-provider. Fields 'code', 'name' and 'logoUrl' are not mandatory for sub-provider.", "properties": { "serviceProvider": { "type": "object", "description": "information about provider", "required": [ "code", "name", "logoUrl" ], "properties": { "code": { "type": "string", "pattern": "[a-zA-Z]{3}", "description": "provider code", "example": "string-value" }, "name": { "type": "string", "pattern": "[a-zA-Z]{30}", "description": "provider name", "example": "Sample Name" }, "logoUrl": { "type": "string", "description": "URL to provider logo", "example": "https://example.com/resource" }, "termsUrl": { "type": "string", "description": "URL to provider's terms and conditions page", "example": "https://example.com/resource" }, "isPreferred": { "type": "boolean", "description": "indicates if sub-provider is preferred for the travel-seller", "example": true }, "contacts": { "$ref": "#/definitions/ContactWithAddress" }, "settings": { "type": "array", "description": "list of provider settings", "items": { "type": "string", "description": "provider setting", "enum": [ "BILLING_ADDRESS_REQUIRED", "FLIGHT_NUMBER_REQUIRED", "CVV_NUMBER_REQUIRED" ] } }, "businessIdentification": { "description": "Information about the Customer stakeholder participating to the described sales summary.", "properties": { "vatRegistrationNumber": { "type": "string", "description": "VAT (Value Added Tax) Registration Number of the customer applicable ot the current sales." } }, "example": "string-value" } } } } }, "quotation": { "description": "quotation representing a price valuation and its components. The monetaryAmount at the root are the sum of base and all the taxes/fees/discounts", "allOf": [ { "type": "object", "properties": { "monetaryAmount": { "type": "string", "example": "10.5" } } }, { "type": "object", "properties": { "currencyCode": { "type": "string", "example": "USD" }, "isEstimated": { "type": "boolean", "description": "indicates if the price is pre-estimated prior to ride. Becomes mandatory for transferType = TAXI" }, "base": { "description": "base price", "allOf": [ { "$ref": "#/definitions/PointsAndCash" } ] }, "discount": { "description": "discount amount of base price", "allOf": [ { "$ref": "#/definitions/PointsAndCash" } ] }, "taxes": { "description": "Taxes breakdown", "type": "array", "items": { "$ref": "#/definitions/Tax" } }, "fees": { "description": "Fees breakdown", "type": "array", "items": { "$ref": "#/definitions/Fee" } }, "totalTaxes": { "$ref": "#/definitions/PointsAndCash" }, "totalFees": { "$ref": "#/definitions/PointsAndCash" } } } ] }, "converted": { "description": "quotation representing a price valuation and its components. The monetaryAmount at the root are the sum of base and all the taxes/fees/discounts", "allOf": [ { "type": "object", "properties": { "monetaryAmount": { "type": "string", "example": "10.5" } } }, { "type": "object", "properties": { "currencyCode": { "type": "string", "example": "USD" }, "isEstimated": { "type": "boolean", "description": "indicates if the price is pre-estimated prior to ride. Becomes mandatory for transferType = TAXI" }, "base": { "description": "base price", "allOf": [ { "$ref": "#/definitions/PointsAndCash" } ] }, "discount": { "description": "discount amount of base price", "allOf": [ { "$ref": "#/definitions/PointsAndCash" } ] }, "taxes": { "description": "Taxes breakdown", "type": "array", "items": { "$ref": "#/definitions/Tax" } }, "fees": { "description": "Fees breakdown", "type": "array", "items": { "$ref": "#/definitions/Fee" } }, "totalTaxes": { "$ref": "#/definitions/PointsAndCash" }, "totalFees": { "$ref": "#/definitions/PointsAndCash" } } } ] }, "extraServices": { "type": "array", "items": { "type": "object", "required": [ "code" ], "properties": { "code": { "type": "string", "description": "extra service code, which can take following values\n\ncode | name \n------ | ---------------------------- \nDSL | Driver language specified\nEWT | Extra waiting time\nMAG | Meet & Greet\nFLM | Flight monitoring\nNWS | Newspaper\nCAI | Cancellation insurance\nWNR | Wait and Return. Driver waits at destination and brings back the customer to pick-up point\n", "enum": [ "DSL", "EWT", "MAG", "FLM", "NWS", "CAI", "WNR" ], "example": "DSL" }, "itemId": { "type": "string", "description": "extra service identifier", "example": "12345" }, "description": { "type": "string", "description": "extra service description", "example": "Sample description text." }, "metricType": { "type": "string", "description": "extra service time metric type", "enum": [ "YEARS", "DAYS", "HOURS", "MINUTES" ], "example": "YEARS" }, "metricValue": { "type": "string", "description": "extra service metric value", "example": "string-value" }, "quotation": { "$ref": "#/definitions/Quotation" }, "converted": { "$ref": "#/definitions/Quotation" }, "isBookable": { "type": "boolean", "description": "true if extra service is available for booking", "example": true }, "taxIncluded": { "type": "boolean", "description": "true if tax included in extra service price", "example": true }, "includedInTotal": { "type": "boolean", "description": "true if extra service price is included in total transfer amount", "example": "199.50" } } } }, "equipment": { "type": "array", "items": { "type": "object", "description": "extra equipment information", "required": [ "code" ], "properties": { "code": { "type": "string", "description": "extra equipment codes, which can take following values\n\ncode | name \n------ | ------------------------------------- \nBBS | Baby stroller/Push chair\nBYC | Bicycle rack\nCBB | Cargo barrier rack\nCBF | Cargo barrier front\nCBS | Booster seat for child under 135cm or up to 12 years\nCSB | Child seat determined by weight/age of child 1-3 years / 9-18 Kg\nCSI | Child seat determined by weight/age of child 0-12 month/0-13Kg\nCST | Child seat determined by weight/age of child 4-7 years/15 \u2013 30 Kg\nSBR | Snow board racks\nSKB | Ski box\nSKR | Ski rack\nTAB | Travel Tablet \nWAR | Wheelchair access ramp\nWHC | Wheelchair\nWIF | Wi-Fi access\nCNT | Charger cable\n", "enum": [ "BBS", "BYC", "CBB", "CBF", "CBS", "CSB", "CSI", "CST", "SBR", "SKB", "SKR", "TAB ", "WAR", "WHC", "WIF", "CNT" ], "example": "BBS" }, "itemId": { "type": "string", "description": "extra equipment identifier", "example": "12345" }, "description": { "type": "string", "description": "extra equipment description", "example": "Sample description text." }, "quotation": { "$ref": "#/definitions/Quotation" }, "converted": { "$ref": "#/definitions/Quotation" }, "isBookable": { "type": "boolean", "description": "true if extra equipment is available for booking", "example": true }, "taxIncluded": { "type": "boolean", "description": "true if tax included in extra equipment price", "example": true }, "includedInTotal": { "type": "boolean", "description": "true if extra equipment price is included in total transfer amount", "example": "199.50" } } } }, "cancellationRules": { "type": "array", "items": { "type": "object", "description": "cancellation rule information", "properties": { "ruleDescription": { "type": "string", "description": "description of cancellation rule", "example": "Sample description text." }, "feeType": { "type": "string", "enum": [ "PERCENTAGE", "VALUE" ], "description": "type of fee - percentage of total amount (PERCENTAGE) or fixed amount (VALUE)\n", "example": "PERCENTAGE" }, "feeValue": { "type": "string", "description": "value of the fee, e.g. \"100\" or \"12.50\"", "example": "string-value" }, "currencyCode": { "type": "string", "pattern": "[A-Z]{3}", "description": "currency code of the fee in [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) format, e.g. USD, EUR", "example": "EUR" }, "metricType": { "type": "string", "description": "type of metric", "enum": [ "MINUTES", "HOURS", "DAYS", "YEARS" ], "example": "MINUTES" }, "metricMin": { "type": "string", "description": "metric min value", "example": "string-value" }, "metricMax": { "type": "string", "description": "metric max value", "example": "string-value" } } } }, "methodsOfPaymentAccepted": { "type": "array", "description": "list of payment methods, allowed by provider", "items": { "type": "string", "description": "Method of payment required when PaymentType equal BT (applicable only for reservation action).", "enum": [ "CREDIT_CARD", "INVOICE", "TRAVEL_ACCOUNT", "PAYMENT_SERVICE_PROVIDER" ] } }, "discountCodes": { "type": "array", "description": "list of discount codes", "items": { "type": "object", "description": "discount object that gives access to negotiated prices", "properties": { "type": { "type": "string", "description": "describes type of discount", "enum": [ "CD", "PC" ], "example": "CD" }, "value": { "type": "string", "description": "discount code value. \n\"CD\" type stands for corporate discount code - a number generated by provider in case of\n special agreement with a given subscriber is passed (airlines, TMC,\n corporation\u2026). It gives to subscriber access to negotiated prices for\n transfer \n\"PC\" - for promotional/campaign discount code - a voucher code generated by the\n provider valid for a given period of time or a given number of usage.\n The code is sent by customer to provider in order to get a discounted\n price.", "example": "string-value" } } } }, "distance": { "properties": { "value": { "description": "great-circle distance between two locations. This distance thus do not take into account traffic conditions; international boundaries; mountains; water; or other elements that might make the a nearby location hard to reach.", "type": "integer", "example": 152 }, "unit": { "description": "unit of the distance", "type": "string", "example": "KM", "enum": [ "KM", "MI" ] } } } }, "required": [ "transferType", "start", "serviceProvider", "vehicle", "quotation", "methodsOfPaymentAccepted" ] }