Чтение запросов поставщику

Три эндпоинта на чтение, всем требуется scope supplier_inquiry:read. Запросы привязаны к создавшему их приложению: идентификатор запроса другого приложения возвращает 404 INQUIRY_NOT_FOUND, а не 403.

Список запросов

GET /v1/supplier-inquiries

ПараметрОписание
statusОдин статус запроса (pending, processing, waiting_supplier, answered, completed, failed, cancelled)
channel1688 или taobao
source_product_idТочный идентификатор товара на площадке
created_after / created_beforeМетки времени в формате ISO 8601
pageПо умолчанию 1
limitПо умолчанию 20, максимум 100
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": "Чёрный / 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_..."
}

Неизвестное значение status или channel отклоняется с кодом 400, поэтому опечатка никогда не приведёт к молчаливому возврату всех записей.

Детали запроса

GET /v1/supplier-inquiries/{inquiry_id} возвращает сводку, а также весь диалог и компактную ленту событий.

{
  "id": "sinq_9f2c...",
  "status": "answered",
  "product": {
    "channel": "1688",
    "source_product_id": "554456348334",
    "...": "..."
  },
  "sku": {
    "id": "3245:12345",
    "label": "Чёрный / XL"
  },
  "message_count": 2,
  "messages": [
    {
      "id": "smsg_1a4b...",
      "type": "initial",
      "status": "answered",
      "questions": [
        {
          "id": "sqst_...",
          "type": "packed_weight",
          "note": "Вес вместе с розничной коробкой",
          "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 не равно null только для вопросов типа other. Вопрос без ответа имеет status: "pending" и answer: null.

Массив attachments перечисляет ссылки на файлы этого сообщения — те, что отправили вы, плюс те, которыми поделилась сторона поставщика. Их различает поле source (developer, operator, supplier, system). Файлы, которые сервис запросов оставляет внутренними, здесь никогда не возвращаются. HIOBuy не хранит эти файлы: url указывает на хранилище провайдера или ваше собственное, а непустое expires_at — это момент, после которого URL может перестать открываться.

Только сообщения

GET /v1/supplier-inquiries/{inquiry_id}/messages возвращает те же объекты сообщений без блока товара — более экономный вызов, когда сам запрос у вас уже есть и нужны только новые ответы.

{
  "inquiry_id": "sinq_9f2c...",
  "status": "answered",
  "data": [ /* сообщения, от самых старых */ ],
  "request_id": "req_..."
}

Опрос против вебхуков

Предпочтительнее использовать вебхук supplier_inquiry.message_answered: его payload уже содержит полный массив answers, поэтому часто одного уведомления достаточно. Если вы всё же опрашиваете API, обращайтесь к эндпоинту сообщений с интервалом в минуты — ответы приходят в человеческом темпе, а опрос каждые несколько секунд только расходует лимит запросов.

Get Support

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

Email support