---
title: "Get Offer"
method: POST
path: "/getOffers.do"
tags: ["Shopping and Ticketing"]
---

# Get Offer

`POST /getOffers.do`

**Dependency:**
No preceding function needs to be called before Get Offer.

> - Compared to the Verify API, the GetOffer API does not rely on Search results and improves the success rate of price verify. 
> - Please contact your Key Account Manager if you want to use the GetOffer API. Atlas will review your workflow and if deemed aplicable, Atlas will provide further information and support you with the implementation of this API.

**Endpoint:**
https://sandbox.atriptech.com/getOffers.do

## Headers

- `Accept` string, required
- `Content-Type` string, required
- `Accept-Encoding` string, required
- `x-atlas-client-id` string, required
- `x-atlas-client-secret` string, required

## Request body

- object
  - `adults` integer, required — Number of adults
  - `children` integer, nullable — Number of children
  - `infants` integer, nullable — Number of infants
  - `outboundSegments` UniqueSellingSegment[], required — Arrange the outbound flight segments in the order of flight.
    - `carrier` string, required — IATA two letter code of marketing carrier, case sensitive
    - `departureAirport` string, required — IATA three letter code of departure airport which is case sensitive. If the value is illegal, the system will prompt that the airport does not exist.
    - `arrivalAirport` string, required — IATA three letter code of arrival airport which is case sensitive. If the value is illegal, the system will prompt that the airport does not exist.
    - `flightNumber` string, required — Marketing flight number. Attention: Without airline code prefix. It should be noted that some users may enter flight numbers with or without zero padding, for example, you may enter 06 (or 6), but the airline may be 6 (or 06). Anyway, we will return to the user based on the actual flight number provided by the airline, and the user may need to handle the differences between request and response.
    - `departureDate` string, date, required — Departure date. Format: yyyyMMdd. We do not require users to specify departure times, nor do we want to return segments based on specific departure time. Considering that the externally transmitted time may not match the actual flight segment time on the supplier's (airline's) side, this can lead to search results being lost. Therefore, we will return the results of all flight segments that took off within the specified date, and it will be up to the user to decide how to use them.
  - `inboundSegments` UniqueSellingSegment[], nullable — Return flight segments are arranged in the order of flight. Optional, null or [] indicates one-way.
    - `carrier` string, required — IATA two letter code of marketing carrier, case sensitive
    - `departureAirport` string, required — IATA three letter code of departure airport which is case sensitive. If the value is illegal, the system will prompt that the airport does not exist.
    - `arrivalAirport` string, required — IATA three letter code of arrival airport which is case sensitive. If the value is illegal, the system will prompt that the airport does not exist.
    - `flightNumber` string, required — Marketing flight number. Attention: Without airline code prefix. It should be noted that some users may enter flight numbers with or without zero padding, for example, you may enter 06 (or 6), but the airline may be 6 (or 06). Anyway, we will return to the user based on the actual flight number provided by the airline, and the user may need to handle the differences between request and response.
    - `departureDate` string, date, required — Departure date. Format: yyyyMMdd. We do not require users to specify departure times, nor do we want to return segments based on specific departure time. Considering that the externally transmitted time may not match the actual flight segment time on the supplier's (airline's) side, this can lead to search results being lost. Therefore, we will return the results of all flight segments that took off within the specified date, and it will be up to the user to decide how to use them.
  - `currency` string, nullable — Quotation currency, optional, default will be determined based on a certain strategy, such as the currency of the customer's pre deposit account
  - `residentCode` string, nullable — Resident discount code

## Response `200`

- object
  - `status` 0 | 116 | 112 | 9999, required — - 0: success - 116: airline error - 112: timed out - 9999: system error
  - `msg` string, nullable — As an additional description of the response result. Especially when the interface reports an error (status ≠ 0), it is usually a human-readable error message. <br> **Note:** Do not use this field in any programming scenarios, such as judging whether the interface response is successful based on this field. You should always judge solely based on whether the status is equal to 0.
  - `data` object[], nullable
    - `offer` object, required
      - `offerID` string, required — The unique ID for this offer, globally unique.
      - `offerToken` string, nullable — A encrypted string containing complete flight information and related quotation information, which can be used to uniquely identify a complete itinerary. This content can be freely distributed and stored by users, but modification is not allowed. At the same time, this content has a certain validity period (generally not exceeding 6 hours). One use case of Offer Token is when users search for flight tickets and quotes through Atlas' caching system, and then use this information to perform real-time price verification in subsequent steps to confirm if there are any price changes. At this point, Atlas will directly query real-time quotes from the airline, rather than through caching.
      - `paxFares` PaxFare[], required — Contains ticket prices and taxes corresponding to each passenger type. If there are no elements for certain passenger types in the list, it means that the ticket is not currently being sold for that passenger type.
        - `paxType` 'ADT' | 'CHD' | 'INF', required
        - `price` Price, required
          - `baseAmount` number, required — Basic price, excluding taxes. Unit: Yuan, with a maximum of 2 decimal places retained
          - `taxes` number, required — Total taxes. Unit: Yuan, with a maximum of 2 decimal places retained
          - `currency` string, required — Currency code, capitalized
      - `penalties` object[], required
        - `journeyRefIDs` string[], required — The reference to the journey ID indicates the journey to which the rule applies, which may include references to multiple journey IDs (such as round trips), indicating that multiple journeys are applicable to the rule.
        - `amount` number, required — Pennalty amount. Unit: Yuan. Keep up to 2 decimal places.
        - `currency` string, required — Currency code corresponding to the pennalty amount, in capital letters. This currency may be different from the fare currency, depending on the airline.
        - `formOfPayment` 'Original' | 'Voucher', nullable — This field currently only takes effect for refund rules and indicates the fund refund method. For other type of rules, this field will remain null. For refund rules, values for this field are as follows: - Original: Refund cash back to the original form of payment. - Voucher: Refund in the form of a voucher.
        - `rule` object, required — Calculation rules for the penalty
          - `type` 'Refund' | 'Change', required — Rule type: Refund or Change rule
          - `paxTypes` PaxTypeEnums[], required — There may be multiple types of passengers to which this rule applies
          - `levelType` 'Full' | 'Partial' | 'None', required
          - `effectiveMinutes` integer, required — Form a time interval together with expiratorMinutes to indicate the time range within which the rule applies. This value serves as the starting point of the interval, measured in minutes. >= 0 represents the number of minutes before takeoff, <0 represents the number of minutes after takeoff.
          - `expirationMinutes` integer, required — Form a time interval together with expirationMinutes to indicate the time range within which the rule applies. This value serves as the end point of the interval, measured in minutes. >=0 represents the number of minutes before takeoff, <0 represents the number of minutes after takeoff.
          - `fixedAmount` number, required — Fixed deduction penalty. Unit: Yuan, with a maximum of 2 decimal places retained.
          - `airlineFee` number, required — Fixed deduction of airline handling fees. Unit: Yuan, with a maximum of 2 decimal places retained.
          - `currency` string, required — Currency of penalty and airline handling fees. This currency may be different from the fare currency, depending on the airline.
          - `percent` number, required — Penalty percentage
          - `percentBase` 'fare+tax' | 'fare', required — Penalty percentage base. - fare+tax: The base for calculating the percentage is the total price including tax - fare: It indicates that the penalty percentage is based on the base price, excluding tax
      - `services` Service[], nullable — Includes various free and chargeable services, including but not limited to: baggages, seat selection, meals, etc
        - `serviceID` string, required — The unique ID of this service. Note: this ID is unique within the context of the current offer.
        - `segmentRefIDs` string[], required — The flight segment ID reference applicable to this service
        - `type` 'Baggage' | 'Seat' | 'Meal', required
        - `level` 'Free' | 'Partial' | 'Chargeable', required
        - `paxTypes` PaxTypeEnums[], required — There may be multiple types of passengers for which this service is applicable. The items are one of: - ADT: Representing adults - CHD: Representing children - INF: Representing a baby
        - `metadata` BaggageAllowance
          - `type` 'StandardCheckInBaggage' | 'CabinBaggage' | 'CabinBaggageOverheadLocker' | 'CabinBaggageUnderSeat', required
          - `maximumWeight` integer, required — Maximum weight limit. - `0`: No Free baggage - `-1`: No limitation on weight - `>0`: Maximum weight
          - `maximumPiece` integer, required — Maximum quantity limit. - `0`: No limitation - `>0`: Maximum pieces
          - `maximumDimension` string, nullable — Maximum size limit. Note: This content is currently not guaranteed to be structured (parsed)
      - `outboundJourney` Journey, required
        - `journeyID` string, required — Unique ID for the itinerary. Note: the ID is unique within the context of the current offer.
        - `segments` Segment[], required — Display flight segments in flight order
          - `segmentID` string, required — Unique ID for the flight segment. Note: This ID is unique within the context of the current offer.
          - `carrier` string, required — Marketing carrier IATA two letter code, capitalized.
          - `flightNumber` string, required — Marketing flight number. Attention: Do not include airline code prefix.
          - `operatingCarrier` string, nullable — Operating carrier IATA two letter code, capitalized.
          - `operatingFlightNumber` string, nullable — Operating flight number. Attention: Do not include airline code prefix.
          - `duration` integer, nullable — Representing the flight duration of the entire flight segment, in minutes
          - `legs` Leg[], required — The physical flight information that constitutes the flight segment and the stopover information can be obtained from this. The number of elements=1 indicates that there is no stopping point. Display in flight order.
            - `departureAirport` string, required — IATA two letter code for the departure airport, in capital letters
            - `departureTime` string, date-time, nullable — Takeoff time, format: yyyyMMddHHmm. For those taking off from transit points, the departure time may not be available; For those taking off from the starting point, this time will definitely be available.
            - `departureTerminal` string, nullable — Departure terminal.
            - `arrivalAirport` string, required — IATA two letter code upon arrival at the airport, in capital letters
            - `arrivalTime` string, nullable — Arrival time, format: yyyyMMddHHmm. For those arriving as transit points, the arrival time may not be available; For those who arrive as the endpoint, there will definitely be an arrival time.
            - `arrivalTerminal` string, nullable — Arriving terminal.
            - `aircraftType` string, nullable — Aircraft type code. According to the actual display of the airline.
          - `fareFamily` string, nullable
          - `RBD` string, nullable
          - `cabinClass` 'Economy' | 'Business' | 'First' | 'PremiumEconomy'
          - `seatsLeft` integer — the number of remaining seats
      - `inboundJourney` Journey
        - `journeyID` string, required — Unique ID for the itinerary. Note: the ID is unique within the context of the current offer.
        - `segments` Segment[], required — Display flight segments in flight order
          - `segmentID` string, required — Unique ID for the flight segment. Note: This ID is unique within the context of the current offer.
          - `carrier` string, required — Marketing carrier IATA two letter code, capitalized.
          - `flightNumber` string, required — Marketing flight number. Attention: Do not include airline code prefix.
          - `operatingCarrier` string, nullable — Operating carrier IATA two letter code, capitalized.
          - `operatingFlightNumber` string, nullable — Operating flight number. Attention: Do not include airline code prefix.
          - `duration` integer, nullable — Representing the flight duration of the entire flight segment, in minutes
          - `legs` Leg[], required — The physical flight information that constitutes the flight segment and the stopover information can be obtained from this. The number of elements=1 indicates that there is no stopping point. Display in flight order.
            - `departureAirport` string, required — IATA two letter code for the departure airport, in capital letters
            - `departureTime` string, date-time, nullable — Takeoff time, format: yyyyMMddHHmm. For those taking off from transit points, the departure time may not be available; For those taking off from the starting point, this time will definitely be available.
            - `departureTerminal` string, nullable — Departure terminal.
            - `arrivalAirport` string, required — IATA two letter code upon arrival at the airport, in capital letters
            - `arrivalTime` string, nullable — Arrival time, format: yyyyMMddHHmm. For those arriving as transit points, the arrival time may not be available; For those who arrive as the endpoint, there will definitely be an arrival time.
            - `arrivalTerminal` string, nullable — Arriving terminal.
            - `aircraftType` string, nullable — Aircraft type code. According to the actual display of the airline.
          - `fareFamily` string, nullable
          - `RBD` string, nullable
          - `cabinClass` 'Economy' | 'Business' | 'First' | 'PremiumEconomy'
          - `seatsLeft` integer — the number of remaining seats
      - `terms` Term[], nullable
        - `carrier` string, required — Marketing carrier IATA two letter code, capitalize
        - `URL` string, required — terms and condition link
    - `serviceFee` ServiceFee, required
      - `amountPerUnit` number, required — Unit amount, unit: yuan, with a maximum of 2 decimal places retained
      - `unit` 'PER_SEGMENT' | 'PER_PAX' | 'PER_BOOKING', required
      - `currency` string, required — Currency code for the amount, in capital letters
    - `bookingRequirement` BookingRequirementSchema, required
      - `passenger` PaxConstraint, required
        - `name` Constraint, required
          - `type` 'string' | 'int', required — Data type
          - `required` boolean, required — Required or not
          - `description` string
          - `maxLength` string
        - `passengerType` Constraint, required
          - `type` 'string' | 'int', required — Data type
          - `required` boolean, required — Required or not
          - `description` string
          - `maxLength` string
        - `birthday` Constraint, required
          - `type` 'string' | 'int', required — Data type
          - `required` boolean, required — Required or not
          - `description` string
          - `maxLength` string
        - `gender` Constraint, required
          - `type` 'string' | 'int', required — Data type
          - `required` boolean, required — Required or not
          - `description` string
          - `maxLength` string
        - `nationality` Constraint, required
          - `type` 'string' | 'int', required — Data type
          - `required` boolean, required — Required or not
          - `description` string
          - `maxLength` string
        - `cardType` Constraint, required
          - `type` 'string' | 'int', required — Data type
          - `required` boolean, required — Required or not
          - `description` string
          - `maxLength` string
        - `cardNum` Constraint, required
          - `type` 'string' | 'int', required — Data type
          - `required` boolean, required — Required or not
          - `description` string
          - `maxLength` string
        - `cardIssuePlace` Constraint, required
          - `type` 'string' | 'int', required — Data type
          - `required` boolean, required — Required or not
          - `description` string
          - `maxLength` string
        - `cardExpired` Constraint, required
          - `type` 'string' | 'int', required — Data type
          - `required` boolean, required — Required or not
          - `description` string
          - `maxLength` string
    - `supportedPaymentMethods` PaymentMethodEnums[] — Supported payment methods. `null`or`[]`indicates that no payment methods are available.

---

[API](https://skmtc.net/atriptech/apis/default-module.md) · [All operations](https://skmtc.net/atriptech/apis/default-module/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/atriptech/default-module/revisions/8e9a8f8010ab/schema)
