サプライヤー問い合わせ API
購入前に国際送料を見積もる
ソファ、フロアランプ、ランニングマシン、大型のペットケージ — こうした商品の国際送料は、実際にどう梱包されるか でほぼ決まります。つまり梱包後の重量、箱のサイズ、そして何個口で発送されるかです。
しかし 1688 や淘宝の商品ページには、そのデータが載っていないか、載っていても信頼できないのが日常です。その結果、顧客はきわめて現実的な問題に直面します。
商品の値段はわかる。しかし自国まで届けるのにいくらかかるのかは、まったくわからない。
サプライヤー問い合わせ API はこのギャップを埋めます。HIOBuy のサプライヤーコミュニケーションサービスが購入前に実際のサプライヤーへ連絡し、梱包重量・梱包サイズ・カートンの詳細を確認して、その回答を構造化データとしてアプリケーションに返します。送料見積もりにそのまま渡せる形です。
商品 API では足りない理由
商品 API は、マーケットプレイス自身が把握している情報 — タイトル、画像、価格、SKU、属性、ショップ情報 — を確実に返してくれます。ただし物流データについては話が別です。
- 重量がまったく掲載されていない。
- 表示されている重量が梱包後の重量ではなく、商品本体の重量である。
- 商品サイズは載っているが、梱包後のサイズは載っていない。
- 重量は出品者が手入力したもので、あくまで目安に過ぎない。
- SKU が違えば梱包後の重量も違う。
- 大型商品は複数の荷物に分割して発送される。
- カートンの入り数、カートン重量、カートンサイズはページのどこにも書かれていない。
商品 API はマーケットプレイスが知っていることを教えてくれます。サプライヤーしか確認できない情報を得るには、サプライヤー問い合わせが必要です。
例: ソファの送料を見積もる
米国の顧客が、あなたのアプリで ¥800 の 1688 のソファを見ています。商品 API からは商品情報、価格、画像、SKU、属性がすでに返っていますが、信頼できる梱包重量や梱包サイズはありません。
そのためアプリは、次にもっとも重要な問いに答えられません。
商品価格 ¥800
国際送料 ???かさばる商品では、この未知の金額が商品そのものの価格を上回ることも珍しくありません。
そこでアプリが問い合わせを起票します。
POST /v1/supplier-inquiries
{
"product_url": "https://detail.1688.com/offer/554456348334.html",
"questions": [
{ "type": "packed_weight" },
{ "type": "package_dimensions" },
{ "type": "carton_info" }
]
}HIOBuy はこのタスクをサプライヤーコミュニケーションサービスに引き渡し、中国拠点のオペレーターがその出品の実際のサプライヤーへ連絡します。サプライヤーからは、ソファは 2 個口で発送されるとの回答が返ります。
荷物 1 32 kg 110 × 75 × 55 cm
荷物 2 18 kg 90 × 60 × 40 cmこれらの回答は構造化された JSON としてアプリケーションに戻り、全体の流れは次のようになります。
1688 の商品
↓ 商品 API
価格: ¥800
↓ 信頼できる物流データがない
サプライヤー問い合わせ
↓ HIOBuy が実際のサプライヤーに連絡
サプライヤーが確認: 2 個口、32 kg + 18 kg、箱のサイズ
↓ 構造化された物流データ
国際送料の見積もり(中国 → 米国)
↓
顧客は購入前におおよその総額を確認できるこれがこの一連の作業の目的です。
商品代金
+ 国際送料の見積もり
= 購入前に把握できる現実的なコストHIOBuy の API 群における位置づけ
商品 API 「その商品は何で、いくらなのか?」
↓
サプライヤー問い合わせ API 「サプライヤーは実際にどう梱包するのか?」
↓
送料見積もり 「国際輸送にはおおよそいくらかかるのか?」サプライヤー問い合わせは、商品データと送料見積もりの間に欠けていたレイヤーです。
サプライヤーが確認したデータは見積もりです
返ってくるのは サプライヤーが確認した データです。購入前の見積もりとしては、物流データがまったくない状態、商品本体の重量を使う、写真から推測する、正確であることを前提としていないマーケットプレイスの項目を信じる — こうした方法よりはるかに優れています。
ただし サプライヤーの確認は倉庫での実測ではありません。実際に商品が届いてみると梱包が異なっていたり、倉庫で再梱包されたりして、実際の重量・サイズ・個口数はいずれも変わり得ます。
これらの回答は 購入前の国際送料見積もり に使ってください。最終的な請求対象の送料重量 として扱わないでください。それは常に、倉庫が実際に梱包して実測した結果から決まります。
送料データだけではありません
送料見積もりのための梱包データは、この API のもっとも具体的で最初のユースケースですが、同じサプライヤーコミュニケーションチャネルは、サプライヤーしか知り得ないあらゆる情報にも回答します。
MOQ・在庫・リードタイム・無地梱包・カスタマイズ・カートン情報・商品詳細、そして other タイプによるその他の質問。
つまり現時点では 梱包データ → 送料見積もり を実現しますが、同じ呼び出しで サプライヤー情報 → 仕入れ判断 にも同様に使えます。10 種類すべてと回答スキーマについては 質問タイプ を参照してください。
仕組み
- アプリケーションが商品 URL、任意の SKU、1 つ以上の型付けされた質問を指定して
POST /v1/supplier-inquiriesを呼び出します。 - HIOBuy が問い合わせを作成し、サプライヤーコミュニケーションサービスに引き渡します。
- 中国拠点のオペレーターがその出品のサプライヤーに連絡します。
- サプライヤーが返信します。
- 返信は各質問タイプのスキーマに沿って構造化データへ正規化されます。
- 登録したエンドポイントに
supplier_inquiry.message_answeredの Webhook が届くか、GET /v1/supplier-inquiries/{id}をポーリングして取得します。
問い合わせは単発のリクエストではなく 会話 です。いったん作成したら、新しい問い合わせを立てるのではなく同じスレッドに追加メッセージを送り続けます。
これはリアルタイム API ではなく人手によるサービスです
実際の担当者が実際のサプライヤーに連絡するため、応答時間はサプライヤーがオンラインかどうか、返信の速さ、質問の複雑さ、追加確認が必要かどうかに左右されます。数時間、場合によってはそれ以上かかる非同期タスクとして扱ってください。一部の質問は、正当な結果として unavailable や refused で返ることもあります。
実務上は、ユーザー向けの画面を結果待ちで同期的にブロックせず、問い合わせを作成した時点ですぐレスポンスを返し、回答は Webhook で受け取り、その間 UI では processing や waiting_supplier の状態を表示してください。
添付ファイル
質問のなかには、画像があるだけで格段に伝わりやすくなるものがあります。梱包の参考画像、SKU のスクリーンショット、寸法図、仕様書 — そして逆方向では、サプライヤー自身が撮った梱包写真、カートンの写真、見積書の PDF などです。
あなた側とサプライヤー側のどちらのメッセージも、最大 5 件の添付ファイルを持てます。
{
"message": "Please ask the supplier whether they can use packaging similar to this.",
"attachments": [
{
"type": "image",
"url": "https://example.com/reference-packaging.jpg",
"filename": "reference-packaging.jpg",
"mime_type": "image/jpeg"
}
]
}type は image、document、other のいずれかです。URL は https:// である必要があり、それ以外は INVALID_ATTACHMENT_URL で拒否されます。
HIOBuy は添付ファイルをホストしません
添付ファイルは 参照 です。あなたのファイルはあなた自身がホストし、サプライヤー側のファイルは問い合わせサービスがホストします。HIOBuy が保存するのはメタデータと URL のみで、ファイル自体のアップロード・ダウンロード・複製・プロキシは一切行いません。ファイルアップロード用のエンドポイントは存在せず、追加の予定もありません。
そのため実務上は、添付ファイルの URL はそれを提供した側が管理し、一部は有効期限で失効します。レスポンスに expires_at が含まれている場合は、そのファイルを自社ストレージへ取り込む期限として扱ってください。null は提供側が「この URL は失効しない」と表明していることを意味します。今日返ってきた URL が来月も解決できる前提で設計しないでください。
サプライヤーからの返信にも添付ファイルが含まれることがあります。それらはメッセージの attachments 配列、および supplier_inquiry.message_answered Webhook に、構造化された回答とあわせて届きます。参照できるのは、問い合わせサービスがあなたに開示すると判断した添付ファイルのみです。オペレーターの作業用ファイルやサプライヤーとのチャットのスクリーンショットはサービス内部に留まり、API には届きません。
利用条件
サプライヤー問い合わせは デフォルトで無効 です。商用オンボーディング後に HIOBuy がアプリケーション単位で有効化します。利用をご希望の場合は HIOBuy サポートにご連絡ください。
| 要件 | 値 |
|---|---|
| 機能 | サプライヤー問い合わせ(アプリケーション単位で有効化) |
| スコープ | supplier_inquiry:read、supplier_inquiry:write |
| 認証 | 本番 API キー(Authorization: Bearer hio_live_...) |
機能が付与されていない、または停止されている場合、すべてのエンドポイントは 403 SUPPLIER_INQUIRY_NOT_ENABLED を返します。
対応マーケットプレイス
| チャネル | 判定元 |
|---|---|
1688 | detail.1688.com/offer/{id}.html および同等のリンク |
taobao | item.taobao.com / detail.tmall.com の商品リンク |
それ以外は UNSUPPORTED_MARKETPLACE で失敗します。商品は URL 文字列そのものではなく channel + source_product_id で識別されるため、同一商品に対する形式の異なるリンクは同じ商品として解決されます。
問い合わせステータス
| ステータス | 意味 |
|---|---|
pending | 受理済み。プロバイダーが未着手 |
processing | オペレーターが対応中 |
waiting_supplier | 質問を送信済み。サプライヤーの返信待ち |
answered | 直近のメッセージに回答あり。スレッドは追加質問のため開いたまま |
completed | 会話がクローズ済み |
failed | メッセージを送信できなかった、またはプロバイダーが拒否した |
cancelled | キャンセル済み。以降のメッセージは受け付けません |
pending、processing、waiting_supplier、answered は アクティブ として扱われます。1 つのアプリケーションが同一商品に対して保持できるアクティブな問い合わせは 1 件のみで、これにより商品ごとに 1 本のサプライヤースレッドが保たれます。completed または failed の問い合わせがある商品に対して作成リクエストを送ると、新規作成ではなくその会話が再開されます。
Webhook
デベロッパーポータルでエンドポイントを登録し、supplier_inquiry カテゴリを購読してください。署名と再送は標準の Webhook ルールに従います。
| イベント | 発生タイミング |
|---|---|
supplier_inquiry.created | 問い合わせが作成されたとき |
supplier_inquiry.processing | オペレーターがメッセージに着手したとき |
supplier_inquiry.waiting_supplier | 質問がサプライヤーに届いたとき |
supplier_inquiry.message_answered | 回答が届いたとき。ペイロードに answers 配列全体と、添付ファイルがあれば attachments を含みます |
supplier_inquiry.completed | 会話がクローズされたとき |
supplier_inquiry.failed | メッセージが失敗したとき |
すべてのペイロードに inquiry_id と product.{channel,source_product_id} が含まれます。
エラーコード
| コード | HTTP | 意味 |
|---|---|---|
SUPPLIER_INQUIRY_NOT_ENABLED | 403 | 機能が未付与、または停止中 |
INVALID_PRODUCT_URL | 400 | 絶対 http(s) URL でない、または商品 ID を含まない |
UNSUPPORTED_MARKETPLACE | 400 | チャネルが 1688 でも淘宝でもない |
INVALID_QUESTION_TYPE | 400 | questions[].type が不明 |
INVALID_QUESTION_SCHEMA | 400 | 質問が空、上限超過、または重複している |
INVALID_ATTACHMENT_URL | 400 | 添付ファイルの URL がない、絶対 URL でない、または https:// でない |
INVALID_ATTACHMENT_TYPE | 400 | attachments[].type が image、document、other のいずれでもない |
TOO_MANY_ATTACHMENTS | 400 | 1 つのメッセージに 5 件を超える添付ファイルがある |
ACTIVE_INQUIRY_EXISTS | 409 | アクティブな問い合わせが既に存在します。そちらにメッセージを追加してください |
INQUIRY_NOT_FOUND | 404 | 問い合わせが存在しない、または他のアプリケーションに属している |
INQUIRY_NOT_ACTIVE | 409 | 問い合わせがキャンセル済み |
SUPPLIER_INQUIRY_SERVICE_UNAVAILABLE | 503 | 問い合わせサービスが停止中、またはタスクを拒否した |
SUPPLIER_INQUIRY_SERVICE_UNAVAILABLE は意図的に汎用的なコードです。残高やアカウント状態といったプロバイダー側の理由は公開されません。サポートに問い合わせる際は request_id を添えてください。
エンドポイント
| エンドポイント | 用途 |
|---|---|
POST /v1/supplier-inquiries | 問い合わせを作成する |
POST /v1/supplier-inquiries/{id}/messages | 追加質問を送る |
GET /v1/supplier-inquiries | 問い合わせ一覧を取得する |
GET /v1/supplier-inquiries/{id} | 全メッセージを含む問い合わせ詳細 |
GET /v1/supplier-inquiries/{id}/messages | 質問と回答を含むメッセージ一覧 |
Get Support
Need integration help? Contact Developer Support at support@hiobuy.com · Response within 1–2 business days