POST/v1/trains/book/:gdsprovider/:bookingId/order

创建并确认火车订单

提交旅客信息,根据预订创建并确认订单。

分享

提交旅客信息,根据预订创建并确认订单。

认证和请求头

请求头说明
AuthorizationBearer <secret_key>。密钥只能保存在服务器端,不能写入客户端日志。
X-Travelandz-Id<public_key>:<profile_code>,持久化的 profile code 格式为 dp_<12 位字母数字>
Content-Type带 JSON body 的请求使用 application/json

请求

body 需要 passengers[]。每位旅客需要 idtitlemrmsmx)、firstNamelastNamephoneemail;请发送 required-fields 要求的额外字段。

json
json
{"passengers":[{"id":"passenger_1","title":"mr","firstName":"John","lastName":"Doe","phone":"+34123456789","email":"john.doe@example.com","countryCode":"ES","bornDate":"1988-04-20","nationality":"ES","identityDocument":{"documentNumber":"X1234567","type":"passport"}}]}

请求参数结构

gdsprovider
enum
0
Currently 0
bookingId
string
Booking id returned by prebook.

请求体结构

passengers
array
passengers[]id
string
Passenger id returned by prebook.
passengers[]title
enum
mrmsmx
passengers[]firstName
string
passengers[]lastName
string
passengers[]age
number
passengers[]nationality
string
格式: 2-letter country code
passengers[]phone
string
格式: E.164
passengers[]email
string
格式: email
passengers[]countryCode
string
passengers[]bornDate
string
格式: YYYY-MM-DD
passengers[]cityOfBirth
string
passengers[]countryOfBirth
string
passengers[]address
string
passengers[]city
string
passengers[]postalCode
string
passengers[]identityDocument
object
passengers[]identityDocumentdocumentNumber
string
passengers[]identityDocumenttype
enum
passport

成功响应

返回 orderIdbookingIdbookingReferencebookingStatus。状态可以是 pendingconfirmedcancelled

响应体结构

orderId
string
bookingId
string
bookingReference
string
bookingStatus
enum
pendingconfirmedcancelled

错误

  • 400 表示验证失败或存在未知字段。
  • 401403 表示 API 凭证无效。
  • 供应方失败时返回 500 internal_communication_errorunknown_error
  • 预订不存在或已过期时返回 booking_not_found

使用说明

使用预订返回的旅客 id。后续查询和退款时必须原样保存订单标识。

cURL 示例

bash
bash
curl --request POST \
  --url "https://api.sandbox.travelandz.com/v1/trains/book/0/booking_123/order" \
  --header "Authorization: Bearer $TRAVELANDZ_SECRET_KEY" \
  --header "X-Travelandz-Id: $TRAVELANDZ_PUBLIC_KEY:$TRAVELANDZ_PROFILE_CODE" \
  --header "Content-Type: application/json" \
  --data '{"passengers":[{"id":"passenger_1","title":"mr","firstName":"John","lastName":"Doe","phone":"+34123456789","email":"john.doe@example.com"}]}'