跳到主要内容
Elimapi

订单 API 参考

概述

本页列出订单模块的状态、端点、参数与错误码。完整流程请见淘宝/1688 下单与支付指南。如何通过 webhook 接收订单更新,另有独立参考页

适用范围: 已支持多个市场。支付统一以 越南盾、美元或人民币(CNY) 计价——采购钱包以这三种货币之一充值;API 中的余额与订单金额均归一化为统一单位(*_cny)。

Elim 是负责订单执行与支付的技术平台——不做零售,也不直接面向终端客户。你的系统通过采购钱包向 Elim 付款,Elim 再向平台上的卖家付款。因此每笔订单都有两个相互独立的状态——平台状态(status)和与 Elim 的支付状态(payment_status)——外加一个平台侧支付结果指示(platform_payment_status)。

所有端点均需 JWT 认证(Authorization: Bearer <token>)或 API Key(x-api-key)。见API 请求认证

平台状态(status

订单在淘宝 / 1688 侧的处理进度。

取值说明
creating订单刚创建,等待平台确认
pending_payment平台已生成订单,等待支付
paid订单已在平台侧支付
shipped货物已出仓,运输中
completed订单完成,已确认收货
cancelled订单已取消
unknown无法从平台解析出状态
creating → pending_payment → paid → shipped → completed
                                            ↘ cancelled

Elim 支付状态(payment_status

用户与 Elim 之间的支付进度。与 status 相互独立

取值说明钱包中的资金
unpaid创建订单时的默认值——尚未发起支付申请未受影响
requested用户已发起支付申请已冻结frozen_balance
approvedElim 已审批申请,正在向平台支付仍处于冻结
paid支付完成已从 balance 扣除
rejectedElim 拒绝申请(rejection_reason 给出原因)已释放回来
refunded已支付的订单退款至钱包重新计入 balance
unpaid → requested → approved → paid → refunded
   ↑         ↓
   └──── rejected

requested 状态下,用户可自行撤回申请回到 unpaid(见 cancel-payment-request)。进入 approved 后,只能通过退款回退。

平台支付结果(platform_payment_status

仅在 Elim 向平台发起支付后才有取值。

取值说明
pending正在向平台发送支付指令
success平台已记录支付
failed平台报错——Elim 将人工处理
unknown结果尚未确定

界面中请同时显示 statuspayment_statusplatform_payment_status 主要用于出现问题时的诊断。

订单端点

前缀 /v1/orders。限流按秒级时间窗口计。

端点方法说明限流
/v1/orders/previewPOST预览订单:预估总额、库存检查——不创建订单、不扣款20 / 60s
/v1/ordersPOST在平台上创建真实订单10 / 60s
/v1/ordersGET列出当前用户的订单(分页)30 / 60s
/v1/orders/statsGET按时间范围 / 状态汇总的订单统计30 / 60s
/v1/orders/:idGET订单详情——每次调用都会自动从平台同步最新状态30 / 60s
/v1/orders/:id/cancelPOST在仍可取消的状态下取消订单10 / 60s
/v1/orders/:id/logistic-detail?package_id=<int>GET中国境内物流追踪(仅淘宝20 / 60s

预览与创建订单——请求体

{
  "platform": "alibaba",
  "receiver_address": {
    "name": "Nguyen Van A",
    "phone": "02812345678",
    "mobile": "13800138000",
    "address": "广州市天河区体育西路123号",
    "province": "广东省",
    "city": "广州市",
    "area": "天河区",
    "town": "天河南街道"
  },
  "line_items": [
    { "product_ref": "734467086498", "sku_ref": "5578084256927", "quantity": 2, "price": 15.5 }
  ],
  "preview_token": "c5f75ec1-9f8d-4bf6-9de2-048d50fef349",
  "idempotency_key": "checkout-2026-08-25-001",
  "remark": "给卖家的备注",
  "promotion_id": "PROMO123"
}
字段类型必填说明
platformstringtaobaoalibaba(1688)
receiver_addressAddress中国境内的有效收货地址
warehouse_addressAddress发货仓库地址
line_itemsLineItem[]商品清单(见下文)
preview_tokenstring来自预览的 token;一次性使用,10 分钟后过期。创建订单时带上以锁定所预览的价格
idempotency_keystring建议每次结账的防重复键。使用相同键的重复请求返回同一笔订单
client_order_idstring你自有系统的订单号(留空则自动生成)
promotion_idstring优惠码
remarkstring给卖家的备注

line_items[]

每个元素以 product_ref + sku_ref 组合标识商品,直接取自商品搜索 / 详情

字段类型必填说明
product_refstring来自商品搜索响应的商品 ID 或链接
sku_refstring对应的 SKU ID——淘宝:skus[].id · 1688:skus[].spec_id
quantitynumber数量
pricenumber单价(CNY)——建议提供,以便预览返回准确数字

mp_id + mp_skuid(marketplace ID)组合仍向后兼容接受。

receiver_address

字段必填说明
name收货人姓名
phone固定电话号码
mobile手机号码
address详细地址(中文)
province / city / area建议省 / 市 / 区县
town街道 / 乡镇

预览响应

{
  "success": true,
  "preview_token": "c5f75ec1-9f8d-4bf6-9de2-048d50fef349",
  "currency": "CNY",
  "total_product_amount": 31.0,
  "total_post_fee": 8.0,
  "total_amount": 39.0,
  "shops": [
    {
      "seller_id": "b2b-2201234567",
      "seller_name": "广州某某贸易有限公司",
      "post_fee": 8.0,
      "shop_amount": 31.0,
      "items": [
        { "product_id": "734467086498", "sku_id": "5578084256927", "quantity": 2, "unit_price": 15.5, "total_price": 31.0 }
      ]
    }
  ],
  "unavailable_items": []
}
字段说明
total_product_amount商品总额(CNY)
total_post_fee中国境内运费总额
total_amount应付平台总额 = 商品 + 运费
unavailable_items[]无法下单的商品(缺货 / SKU 错误 / 已下架)。该数组非空时不要创建订单

创建订单响应

{
  "status": "pending_payment",
  "data": {
    "id": "ORD0000000123",
    "order_list": [
      {
        "success": true,
        "amount": 39.0,
        "post_fee": 8.0,
        "lines": [
          { "sub_id": "E2101234567890", "product_id": "734467086498", "sku_id": "5578084256927", "quantity": 2, "amount": 31.0 }
        ]
      }
    ]
  }
}
字段说明
data.id形如 ORD + 10 位数字的内部订单 ID——后续所有操作都用它
status成功时为 pending_payment;无法确定时为 unknown——中止支付流程,通过订单详情重新核对
data.order_list[]来自平台的店铺 + 明细——用于生成收据

新订单始终处于 payment_status = unpaid

订单列表——筛选参数

GET /v1/orders

参数类型说明
pagenumber当前页(默认 1)
sizenumber每页订单数(默认 20)
platformstringtaobao / alibaba——留空 = 两者
statusstring按平台状态筛选
payment_statusstring按 Elim 支付状态筛选
client_order_idstring按你自有的订单号筛选
created_from / created_toISO date创建日期范围

响应: { total, page, size, items: OrderListItem[] }

{
  "total": 1, "page": 1, "size": 20,
  "items": [
    {
      "id": "ORD0000000123",
      "platform": "alibaba",
      "status": "paid",
      "payment_status": "paid",
      "total_amount_cny": 39.0,
      "total_amount": 39.0,
      "products": [
        { "id": "734467086498", "name": "某某商品", "price": 15.5, "quantity": 2, "img_urls": ["https://..."] }
      ],
      "created_at": "2026-04-09T10:30:00.000Z"
    }
  ]
}

列表中的 line_items / products 是下单时的快照。需要最新数据请调用 GET /v1/orders/:id

订单详情——各平台差异

GET /v1/orders/:id——响应前会自动从平台同步状态。

平台商品清单物流
1688products[]logistics.logistics_info[] 内嵌在响应中
淘宝line_items[]另行调用 GET /v1/orders/:id/logistic-detail?package_id=<int>

platform 字段在列表响应中即有——保存下来,在调用详情前用于选择展示方式。

package_id整数,取自淘宝订单详情响应,而非 ORD... ID。

取消订单——条件

POST /v1/orders/:id/cancel——仅当 statuscreatingpending_payment 时。

若订单尚无平台订单号:{ "success": true, "message": "Internal order cancelled, no external order to cancel" }

采购钱包端点

前缀 /v1/purchasing

端点方法说明
/v1/purchasing/walletGET钱包余额
/v1/purchasing/wallet/transactionsGET交易历史(分页)
/v1/purchasing/exchange-ratesGET当前生效汇率

GET /v1/purchasing/wallet

{
  "balance": 1670.30,
  "frozen_balance": 286.50,
  "available_balance": 1383.80,
  "total_deposited": 5000.00,
  "total_spent": 3329.70,
  "updated_at": "2026-06-19T00:00:00.000Z"
}
字段说明
balanceCNY 总余额
frozen_balancerequested / approved 订单冻结的部分
available_balancebalance − frozen_balance——实际可用金额。用它与订单金额比较
total_deposited / total_spent累计数据

GET /v1/purchasing/wallet/transactions

参数:pagesizetypedate_fromdate_to。响应:{ total, page, size, items }

type含义
deposit向钱包充值
order_freeze发起支付申请时冻结资金
order_unfreeze撤回申请或被拒绝时释放资金
order_deduction订单支付完成时扣款
order_refund订单退款至钱包
admin_adjustmentElim 人工调整余额

GET /v1/purchasing/exchange-rates

按货币对(VND→CNY、USD→CNY)返回的生效汇率数组:source_currencytarget_currencyrate(市场汇率)、markup_percenteffective_rate(Elim 加价后实际适用的汇率)。

订单支付端点

前缀 /v1/purchasing/orders/:id:idORD... 形式。

端点方法起始状态目标状态说明
/request-paymentPOSTunpaidrequested确认订单并发起支付申请——在钱包中冻结资金
/cancel-payment-requestPOSTrequestedunpaid撤回申请——释放已冻结资金
/confirmPOSTunpaidpaid直接支付(在已启用处)——立即扣款,不经审批步骤
/paymentGET订单支付记录详情

POST …/request-payment

{
  "success": true,
  "order_id": "ORD0000000123",
  "frozen_amount": 286.50,
  "goods_amount_cny": 281.50,
  "shipping_fee_cny": 0,
  "service_fee_cny": 5.00
}

钱包余额不足错误——400

{
  "error": "insufficient_balance",
  "current_balance": 120.00,
  "available_balance": 90.00,
  "required": 286.50,
  "deficit": 196.50
}

POST …/confirm

{
  "order_id": "ORD0000000123",
  "goods_amount_cny": 281.50,
  "shipping_fee_cny": 0,
  "service_fee_cny": 5.00,
  "total_amount_cny": 286.50,
  "payment_status": "paid",
  "wallet_balance_after": 1383.80
}

wallet_balance_after 更新显示余额,无需再次调用 GET /v1/purchasing/wallet

由 Elim 执行的状态流转

用户不会调用这些操作。列出它们是为了说明 payment_status 将如何变化,以及你何时会收到 payment.updated

Elim 操作起始目标钱包影响
审批申请requestedapproved资金仍冻结
拒绝申请requestedrejected释放已冻结资金;rejection_reason 给出原因
平台支付成功approvedpaid扣除已冻结资金;platform_payment_status = success
平台支付失败approvedunpaidplatform_payment_status = failed;Elim 将联系处理
退款paidrefunded重新计入 balance;生成 order_refund 交易

通过 webhook 接收订单更新

注册 webhook,使订单的 statuspayment_status 每次变化时 Elim 都会回调你的系统——免去持续轮询状态。与订单模块相关的两个事件:

事件何时发送
order.updated订单 status 变化:从平台同步、定期同步或取消订单
payment.updatedpayment_status 变化:发起申请、撤回申请、审批、拒绝、平台支付完成/失败或退款

Payload 携带一份订单快照:data.order.idstatuspayment_statusplatform_payment_statustotal_amount_cnyupdated_at。处理完成后返回 HTTP 2xx。

注册端点、完整 payload 结构、请求头、HMAC 签名校验以及重试策略:见 Webhook 参考

错误码

HTTP情形你应如何处理
400insufficient_balance再充值 deficit 数额的 CNY 后重新发起申请
400Cannot request payment: current status is "..."订单已不在 unpaid
400平台 ID 格式错误检查 product_ref / sku_ref
401JWT 过期获取新 token
403访问了不属于本账户的订单仅对自己的订单操作
404订单 / 支付记录不存在重新核对 ORD... ID
422LINE_ITEM_SKU_NOT_RESOLVABLE / LINE_ITEM_PRODUCT_NOT_RESOLVABLE(淘宝)sku_ref / product_ref 错误——从商品详情重新获取
429超出限流等待约 60 秒,放慢调用节奏
502淘宝/1688 平台无响应重试;不要创建重复订单

错误响应遵循 { statusCode, message, error } 结构。message 有时为越南语,可直接展示。

ID 约定

  • 内部订单 ID: ORD + 10 位数字,例如 ORD0000000123。用于所有端点。
  • 平台订单号(order_id): 由淘宝/1688 签发,仅在订单创建成功后才有。
  • package_id 整数,用于淘宝物流追踪。

相关链接