Skip to main content
通过 AIsa 网关调用 Duffel 机票 API:搜索航班、查询报价、下单出票、改签与退票。 所有请求使用你的 AIsa API key 认证,按调用计费(见价格表)。

快速开始

Base URL:https://api.aisa.one
响应(节选):
记下 offers[0].id(下单用)和 passengers[0].id(乘机人信息回填用)。

核心流程:三步出票

② 下单前刷新报价(必做)

Offer 会过期,价格以刷新返回为准:

③ 下单出票

响应包含 booking_reference(航司订位编号)和 documents(电子票)。 注意:
  • payments.amount 必须等于第 ② 步刷新返回的 total_amount
  • passengers[].id 必须用搜索响应里返回的 passenger id
  • 婴儿乘客(2 岁以下)必须通过成人的 infant_passenger_id 字段绑定,一名成人最多带一名婴儿

端点总表

交易类端点当前为固定服务费定价;切换到按票面金额计费前,价格以目录 API 为准。

搜索参数详解

改签与退票

改签是两步操作——先创建请求获取改签报价,再确认:
响应含 order_change_offers[](改签差价 change_total_amount、罚金 penalty_total_amount)。
退票同样是两步——先取退款报价,再确认:
改签约束: 新行程舱位必须与原订单一致。

错误处理

非 2xx 响应为 JSON 错误体(Duffel 原样透传):
  • 422 参数校验失败(检查 body 结构)
  • 404 offer/order 不存在或已过期(重新搜索)
  • 429 触发限流(指数退避重试)
  • 计费规则:失败请求不收费(4xx/5xx 自动免计费)

常见问题

Q: offer 多久过期? 通常几十分钟内,搜索响应的每个 offer 有 expires_at。下单前务必刷新报价;过期后需重新搜索。 Q: 为什么下单报金额不匹配? payments.amount 必须与刷新后的 total_amount 完全一致(字符串十进制,如 "70.48")。票价是实时的。 Q: 能查所有航司吗? 覆盖范围以 Duffel 供应商网络为准;沙箱环境返回的是虚拟航司(Duffel Airways)测试数据。 Q: 如何测试? 当前平台凭证为沙箱模式(live_mode: false),可完整走通搜索→下单→退票流程,不产生真实机票。切换生产模式前会另行公告。