Consulter les demandes fournisseur

Trois endpoints de lecture, tous soumis au scope supplier_inquiry:read. Les demandes sont rattachées à l’application qui les a créées : l’identifiant de demande d’une autre application renvoie 404 INQUIRY_NOT_FOUND, et non 403.

Lister les demandes

GET /v1/supplier-inquiries

ParamètreDescription
statusUn statut de demande (pending, processing, waiting_supplier, answered, completed, failed, cancelled)
channel1688 ou taobao
source_product_idIdentifiant produit exact sur la place de marché
created_after / created_beforeHorodatages ISO 8601
pageVaut 1 par défaut
limitVaut 20 par défaut, 100 au maximum
GET /v1/supplier-inquiries?status=answered&channel=1688&limit=20
 
{
  "data": [
    {
      "id": "sinq_9f2c...",
      "status": "answered",
      "product": {
        "channel": "1688",
        "source_product_id": "554456348334",
        "product_url": "https://detail.1688.com/offer/554456348334.html",
        "canonical_product_url": "https://detail.1688.com/offer/554456348334.html",
        "title": "...", "image": "...", "shop_id": "...", "shop_name": "..."
      },
      "sku": { "id": "3245:12345", "label": "Noir / XL" },
      "message_count": 2,
      "last_message_at": "2026-05-20T10:02:00.000Z",
      "created_at": "2026-05-20T08:31:11.000Z",
      "updated_at": "2026-05-20T11:40:00.000Z"
    }
  ],
  "pagination": { "page": 1, "limit": 20, "total": 1, "total_pages": 1 },
  "request_id": "req_..."
}

Un status ou un channel inconnu est rejeté avec un 400 : une faute de frappe ne renvoie donc jamais silencieusement l’intégralité des résultats.

Détail d’une demande

GET /v1/supplier-inquiries/{inquiry_id} renvoie le résumé, ainsi que l’ensemble de la conversation et une chronologie compacte.

{
  "id": "sinq_9f2c...",
  "status": "answered",
  "product": {
    "channel": "1688",
    "source_product_id": "554456348334",
    "...": "..."
  },
  "sku": {
    "id": "3245:12345",
    "label": "Noir / XL"
  },
  "message_count": 2,
  "messages": [
    {
      "id": "smsg_1a4b...",
      "type": "initial",
      "status": "answered",
      "questions": [
        {
          "id": "sqst_...",
          "type": "packed_weight",
          "note": "Poids avec la boîte de vente",
          "question": null,
          "status": "answered",
          "answer": {
            "question_id": "sqst_...",
            "type": "packed_weight",
            "status": "answered",
            "value": 1250,
            "unit": "g",
            "provider_note": null,
            "answered_at": "2026-05-20T11:40:00.000Z"
          }
        }
      ],
      "attachments": [
        {
          "id": "satt_...",
          "type": "image",
          "url": "https://files.example.com/packaging.jpg",
          "filename": "supplier-packaging.jpg",
          "mime_type": "image/jpeg",
          "source": "supplier",
          "expires_at": null,
          "created_at": "2026-05-20T11:40:00.000Z"
        }
      ],
      "provider_note": null,
      "created_at": "2026-05-20T08:31:12.000Z",
      "answered_at": "2026-05-20T11:40:00.000Z"
    }
  ],
  "timeline": [
    {
      "message_id": "smsg_1a4b...",
      "type": "initial",
      "status": "answered",
      "created_at": "2026-05-20T08:31:12.000Z",
      "answered_at": "2026-05-20T11:40:00.000Z"
    }
  ],
  "request_id": "req_..."
}

question n’est non nul que pour les questions de type other. Une question sans réponse porte status: "pending" et answer: null.

attachments liste les références de fichiers rattachées à ce message — celles que vous avez envoyées, plus celles que le côté fournisseur a partagées avec vous. source permet de les distinguer (developer, operator, supplier, system). Les fichiers que le service de demande garde en interne ne sont jamais renvoyés ici. HIOBuy n’héberge pas ces fichiers : url pointe vers le stockage du prestataire ou le vôtre, et un expires_at non nul indique la date à partir de laquelle cette URL peut cesser de répondre.

Messages seuls

GET /v1/supplier-inquiries/{inquiry_id}/messages renvoie les mêmes objets message sans le bloc produit — l’appel le plus économique lorsque vous détenez déjà la demande et ne cherchez que les nouvelles réponses.

{
  "inquiry_id": "sinq_9f2c...",
  "status": "answered",
  "data": [ /* messages, du plus ancien au plus récent */ ],
  "request_id": "req_..."
}

Polling ou webhooks

Privilégiez le webhook supplier_inquiry.message_answered : son payload contient déjà le tableau answers complet, si bien qu’une simple notification suffit souvent. Si vous optez pour le polling, interrogez l’endpoint des messages à l’échelle de la minute — les réponses arrivent à un rythme humain, et interroger l’API toutes les quelques secondes ne fait que consommer votre quota.

Get Support

Need integration help? Contact Developer Support at support@hiobuy.com · Response within 1–2 business days

Email support