POST/v1/flights/order/required-fields/:gdsprovider/:offerId
API 控制台
试一试
向沙箱 API 发送真实请求并查看响应。
凭证
登录后即可从已保存的 API 密钥中选择,无需手动粘贴。
路径参数
2 个字段GDS 提供方
用于获取航班内容的全球分销系统。选择 0 使用默认提供方。
Offer ID
上一次航班搜索请求返回的报价标识符。
请求体
cURL 请求
bash
curl -X POST 'https://api.sandbox.travelandz.com/v1/flights/order/required-fields/0/:offerId' \
-H 'Authorization: Bearer YOUR_SECRET_KEY' \
-H 'X-Travelandz-Id: YOUR_PUBLIC_KEY:YOUR_PROFILE_CODE' \
-H 'Content-Type: application/json' \
-d '{"offerId":"off_0000B7VCW4q5OD5G49hmKn","passengers":[{"type":"adult"}]}'请填写凭证以发送请求。
响应
点击「试一试!」发送请求,响应将显示在此处。
返回完成所选航班报价预订所需的动态旅客、证件和身份字段。
接口
| 方法 | 路径 | 认证 |
|---|---|---|
POST | /v1/flights/order/required-fields/:gdsprovider/:offerId | 需要 API key |
| Header | 说明 |
|---|---|
Authorization | Bearer <secret_key>. The secret is shown only once when the credential is created. |
X-Travelandz-Id | <public_key>:<profile_code>. The profile_code is the dp_-prefixed Developer Profile code shown in your dashboard. This binds the request to a profile and credential. |
Content-Type | Use application/json for requests with a body. |
请求参数结构
gdsproviderAccepted values:
0, 1offerId请求体结构
offerIdSelected offer id
passengerspassengers[]type成功响应
返回 required field definitions for the offer.
响应体结构
holderholderphone为 true 时,为使用 holder 联系信息的流程提供 E.164 格式的
passengers[0].phone_numberholderemail为 true 时,为使用 holder email 的流程提供
passengers[0].emailholdercountryCodecreate-order 中没有单独字段。在 gdsprovider=1 流程中,它由 E.164 格式的 passengers[0].phone_number 派生passengerspassengers[]idxrequired-fields 响应中的旅客索引
passengers[]title映射到
passengers[].titlepassengers[]type映射到
passengers[].typepassengers[]name映射到
passengers[].firstNamepassengers[]lastName映射到
passengers[].lastNamepassengers[]age仅供参考。
create-order 中没有直接字段,并且当前公共航班流程中该值为 falsepassengers[]nationality为 true 时映射到
passengers[].countrypassengers[]gender映射到
passengers[].genderpassengers[]phone为 true 时映射到
passengers[].phone_numberpassengers[]email为 true 时映射到
passengers[].email。某些 gdsprovider=1 流程只会使用第一位旅客的 emailpassengers[]address仅供参考。
create-order 中没有直接字段,并且当前公共航班流程中该值为 falsepassengers[]city仅供参考。
create-order 中没有直接字段,并且当前公共航班流程中该值为 falsepassengers[]postalCode仅供参考。
create-order 中没有直接字段,并且当前公共航班流程中该值为 falsepassengers[]bornDate为 true 时映射到
passengers[].bornDatepassengers[]documentIdentifier为 true 时映射到
passengers[].identity_documents[].unique_identifierpassengers[]documentType为 true 时映射到
passengers[].identity_documents[].type,当使用证件对象时适用passengers[]documentIssuedAt仅供参考。
create-order 中没有直接字段,并且当前公共航班流程中该值为 falsepassengers[]documentExpiresAt为 true 时映射到
passengers[].identity_documents[].expires_onpassengers[]documentCountryCode为 true 时映射到
passengers[].identity_documents[].issuing_country_codepassengers[]allowedDocuments预订证件流程允许的值:
passport、tax_id、known_traveler_number、passenger_redress_number、dni。如果允许 dni,还需要收集 passengers[].NationalID,因为当前响应没有专用的 nationalId 标记liveModeTrue when the request is served by the live Travelandz environment. This value comes from Travelandz, not the provider payload.
集成说明
- 优先使用此
POST端点,因为它可以在请求体中接收旅客上下文。 GET /v1/flights/order/required-fields/:gdsprovider/:offerId仅为兼容保留,集成应使用POST。- 真实响应合同是
holder加passengers[],不是requiredFields[]包装。 - 根据响应判断预订前是否需要收集
identity_documents、NationalID、国籍或证件有效期。 allowedDocuments限制passengers[].identity_documents[].type的有效值。如果包含dni,也要收集passengers[].NationalID,即使当前响应没有专用的nationalIdboolean。- 在 gdsprovider=1 流程中,
holder.countryCode不对应单独的预订字段,而是由 E.164 格式的passengers[0].phone_number满足。 - 在 gdsprovider=1 流程中,
passengers[].email可能被标记为必填,但实际可能只使用第一位旅客的 email 作为 holder email。
示例
bash
curl -X POST https://api.sandbox.travelandz.com/v1/flights/order/required-fields/0/offer_123 \
-H "Authorization: Bearer $TRAVELANDZ_SECRET_KEY" \
-H "X-Travelandz-Id: $TRAVELANDZ_PUBLIC_KEY:$TRAVELANDZ_PROFILE_CODE" \
-H "Content-Type: application/json" \
-d '{"offerId":"offer_123","passengers":[{"type":"adult"}]}'请求体 - 示例
json
{
"offerId": "off_0000B7VCW4q5OD5G49hmKn",
"passengers": [
{
"type": "adult"
}
]
}响应
| 状态码 | 说明 |
|---|---|
200 | 已成功解析预订必填字段。 |
400 | 请求无效:payload 不合法。 |
401 | 未授权:凭证无效或缺失。 |
403 | 禁止访问:凭证无效。 |
500 | 服务器内部错误 |
200 响应体
媒体类型:application/json
json
{
"holder": {
"phone": false,
"email": false,
"countryCode": false
},
"passengers": [
{
"idx": 0,
"title": true,
"type": true,
"name": true,
"lastName": true,
"age": false,
"nationality": false,
"gender": true,
"phone": true,
"email": true,
"address": false,
"city": false,
"postalCode": false,
"bornDate": true,
"documentIdentifier": false,
"documentType": false,
"documentIssuedAt": false,
"documentExpiresAt": false,
"documentCountryCode": false,
"allowedDocuments": null
}
],
"liveMode": false
}