> For the complete documentation index, see [llms.txt](https://resources.atriptech.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://resources.atriptech.com/api-wen-dang/api-reference/post-booking-apis/pnr-claim.md).

# PNR 认领

{% hint style="info" %}
💬 **需要帮助？** 如果遇到问题，请在帮助中心咨询 Eva，快速获取诊断建议。

<a href="https://www.atriptech.com/" class="button primary" data-icon="comments">咨询 Eva</a>
{% endhint %}

使用 `pnr/claim.do` 将符合条件的现有航司 PNR 关联到 Atlas。

该操作适用于外部创建的 PNR，不用于从现有 Atlas 订单读取 PNR 数据。

### 常见问题

#### 何时应使用 PNR 认领？

当需要将现有航司 PNR 纳入 Atlas 后续订单处理时使用。

认领前，确认该 PNR 符合当前业务流程的处理条件。

#### PNR 认领与提取有什么区别？

PNR 认领用于关联外部创建的航司 PNR。

PNR 提取用于从现有 Atlas 订单获取 PNR 数据。

#### 认领 PNR 后应做什么？

根据业务流程处理关联后的订单数据。

使用[PNR 认领与提取](/api-wen-dang/product-guides/post-booking/pnr-claim-and-extraction.md)了解完整流程和常见用例。

## PNR Claim

> \*\*Dependency\*\*\
> No preceding function needs to be carried out.\
> \
> \*\*Endpoint:\*\*\
> <https://sandbox.atriptech.com/pnr/claim.do>

```json
{"openapi":"3.0.1","info":{"title":"Default module","version":"1.0.0"},"security":[],"paths":{"/pnr/claim.do":{"post":{"summary":"PNR Claim","deprecated":false,"description":"**Dependency**\nNo preceding function needs to be carried out.\n\n**Endpoint:**\nhttps://sandbox.atriptech.com/pnr/claim.do","tags":[],"parameters":[{"name":"Accept","in":"header","description":"","required":true,"schema":{"type":"string"}},{"name":"Content-Type","in":"header","description":"","required":true,"schema":{"type":"string"}},{"name":"Accept-Encoding","in":"header","description":"","required":true,"schema":{"type":"string"}},{"name":"x-atlas-client-id","in":"header","description":"","required":true,"schema":{"type":"string"}},{"name":"x-atlas-client-secret","in":"header","description":"","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"mmb":{"type":"object","properties":{"airlinePnr":{"type":"string","description":"Passenger Name Record generated by the airline."},"email":{"type":"string","description":"Contact email.","nullable":true}},"description":"The information used for loging into traveler’s MMB","required":["airlinePnr"],"nullable":true},"passengers":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"The passenger's name. Please send it in the following format: Family Name/Given Name"},"passengerType":{"description":"Type of passenger.\n- 0: Adult\n- 1: Child\n- 2: Infant","$ref":"#/components/schemas/PassengerType","nullable":true},"gender":{"type":"string","description":"The passenger's gender.\n- `M`: Male\n- `F`: Female","nullable":true},"birthday":{"type":"string","description":"The passenger's date of birth. Format:`YYYYMMDD`. Please fill in according to the passenger information requirements(`bookingRequirement`) returned by the Verification / Get Offer API.","nullable":true},"cardType":{"type":"string","description":"The type of the identity document.\n- PP: Passport\n- GA: Hong Kong Macau Pass for China mainland citizens\n- TW: Taiwan Pass for China mainland citizens\n- TB: China mainland pass for Taiwanese\n- HY: International Seaman's Certificate","enum":["PP","GA","TW","TB","HY"],"nullable":true},"cardNum":{"type":"string","description":"The unique identifier of the identity document. e.g. the passport number. Please fill in according to the passenger information requirements(`bookingRequirement`) returned by the Verification / Get Offer API.","nullable":true},"cardIssuePlace":{"type":"string","description":"The ISO 3166-1 alpha-2 code for the country where the identity document is issued. Please fill in according to the passenger information requirements(`bookingRequirement`) returned by the Verification / Get Offer API.","nullable":true},"cardExpired":{"type":"string","description":"The date on which the identity document expires. Format:`YYYYMMDD`.Please fill in according to the passenger information requirements(`bookingRequirement`) returned by the Verification / Get Offer API.","nullable":true},"nationality":{"type":"string","description":"The ISO 3166-1 alpha-2 code for the nationality of passenger. Please fill in according to the passenger information requirements(`bookingRequirement`) returned by the Verification / Get Offer API.","nullable":true}},"required":["name"]}},"fromSegments":{"type":"array","items":{"type":"object","properties":{"carrier":{"type":"string","description":"IATA code of the marketing airline"},"flightNumber":{"type":"string","description":"The value denotes the marketing flight number.\nFormat: CA123 or TR021 or FR1290. The letters denote the carrier and the three/four-digit number that follows is the flight number."},"depAirport":{"type":"string","description":"IATA code of the departure airport."},"arrAirport":{"type":"string","description":"IATA code of the arrival airport."},"depTime":{"type":"string","description":"Departure time of the flight. Format:`yyyyMMddHHmm`"},"arrTime":{"type":"string","description":"Arrival time of the flight. Format:`yyyyMMddHHmm`","nullable":true},"stopCities":{"type":"string","description":"Name of cities from where the passengers will take connecting flights. Include IATA code of cities and use a comma in case of multiple cities to separate if transfer airports count is higher than 1. For example: CGK, SUB. Blank means non-stop flight.","nullable":true},"codeShare":{"type":"integer","description":"- 1: code share\n- 0: Not code share","nullable":true},"operatingCarrier":{"type":"string","description":"Operating carrier. It is blank when codeshare=false","nullable":true},"operatingFlightNumber":{"type":"string","description":"Operating flight number. It is blank when codeshare=false","nullable":true},"depTerminal":{"type":"string","description":"Departure Terminal","nullable":true},"arrTerminal":{"type":"string","description":"Arrival Terminal","nullable":true},"cabinClass":{"$ref":"#/components/schemas/CabinClass","nullable":true,"description":"Service grade of the fare"},"fareFamily":{"type":"string","description":"Fare Family as per the information received from the airline.","nullable":true},"duration":{"type":"integer","description":"The flying duration in minutes.","nullable":true}},"required":["carrier","flightNumber","depAirport","arrAirport","depTime"]},"description":"Outbound segments"},"retSegments":{"type":"array","items":{"$ref":"#/components/schemas/PNRClaimFlight"},"description":"Inbound segments","nullable":true},"connectInfo":{"type":"object","properties":{"contactName":{"type":"string","nullable":true},"contactEmail":{"type":"string","nullable":true},"contactPhone":{"type":"string","nullable":true},"useAtlasMailForContact":{"type":"string","nullable":true}},"nullable":true}},"required":["passengers","fromSegments"]}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string"},"msg":{"type":"string","nullable":true},"orderNo":{"type":"string","description":"Atlas order number"}},"required":["orderNo","status"]}}},"headers":{}}}}}},"components":{"schemas":{"PassengerType":{"type":"integer","enum":[0,1,2]},"CabinClass":{"type":"integer","enum":[1,2,3,4],"title":""},"PNRClaimFlight":{"type":"object","properties":{"carrier":{"type":"string","description":"IATA code of the marketing airline"},"flightNumber":{"type":"string","description":"The value denotes the marketing flight number.\nFormat: CA123 or TR021 or FR1290. The letters denote the carrier and the three/four-digit number that follows is the flight number."},"depAirport":{"type":"string","description":"IATA code of the departure airport."},"arrAirport":{"type":"string","description":"IATA code of the arrival airport."},"depTime":{"type":"string","description":"Departure time of the flight. Format:`yyyyMMddHHmm`"},"arrTime":{"type":"string","description":"Arrival time of the flight. Format:`yyyyMMddHHmm`","nullable":true},"stopCities":{"type":"string","description":"Name of cities from where the passengers will take connecting flights. Include IATA code of cities and use a comma in case of multiple cities to separate if transfer airports count is higher than 1. For example: CGK, SUB. Blank means non-stop flight.","nullable":true},"codeShare":{"type":"integer","description":"- 1: code share\n- 0: Not code share","nullable":true},"operatingCarrier":{"type":"string","description":"Operating carrier. It is blank when codeshare=false","nullable":true},"operatingFlightNumber":{"type":"string","description":"Operating flight number. It is blank when codeshare=false","nullable":true},"depTerminal":{"type":"string","description":"Departure Terminal","nullable":true},"arrTerminal":{"type":"string","description":"Arrival Terminal","nullable":true},"cabinClass":{"$ref":"#/components/schemas/CabinClass","nullable":true,"description":"Service grade of the fare"},"fareFamily":{"type":"string","description":"Fare Family as per the information received from the airline.","nullable":true},"duration":{"type":"integer","description":"The flying duration in minutes.","nullable":true}},"required":["carrier","flightNumber","depAirport","arrAirport","depTime"]}}}}
```
