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[]。每位旅客需要 id、title(mr、ms、mx)、firstName、lastName、phone 和 email;请发送 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
是

成功响应

返回 orderId、bookingId、bookingReference 和 bookingStatus。状态可以是 pending、confirmed 或 cancelled。

响应体结构

orderId
string是
bookingId
string是
bookingReference
string是
bookingStatus
enum
pendingconfirmedcancelled
是

错误

  • 400 表示验证失败或存在未知字段。
  • 401 或 403 表示 API 凭证无效。
  • 供应方失败时返回 500 internal_communication_error 或 unknown_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"}]}'