API de consultas a proveedores

Estima el envío internacional antes de que el cliente compre

Para un sofá, una lámpara de pie, una cinta de correr o un transportín grande para mascotas, el coste del envío internacional depende casi por completo de cómo se embala realmente el artículo: su peso embalado, las dimensiones de la caja y en cuántos paquetes se envía.

Esos datos faltan o no son fiables de forma habitual en las páginas de producto de 1688 y Taobao. Lo que deja a tu cliente ante un problema muy práctico:

Sabe cuánto cuesta el producto. No tiene ni idea de cuánto cuesta llevarlo hasta su país.

La API de consultas a proveedores cierra esa brecha. El servicio de comunicación con proveedores de HIOBuy contacta con el proveedor real antes de la compra, confirma el peso embalado, las dimensiones del embalaje y los detalles de las cajas, y devuelve las respuestas a tu aplicación como datos estructurados, listos para alimentar una estimación de envío.

Por qué la API de productos no basta

Las API de productos te dan de forma fiable lo que el propio marketplace conoce: título, imágenes, precio, SKU, atributos, información de la tienda. Los datos logísticos son otra historia:

  • no se publica ningún peso;
  • el peso mostrado es el peso neto del producto, no el peso embalado;
  • existen las dimensiones del producto, pero no las dimensiones una vez embalado;
  • el peso lo escribió el vendedor y solo es orientativo;
  • distintos SKU se embalan con pesos distintos;
  • un artículo grande se envía repartido en varios paquetes;
  • la cantidad de cajas, su peso y su tamaño no aparecen en ninguna parte de la página.

La API de productos te dice lo que sabe el marketplace. Una consulta al proveedor te consigue lo que solo el proveedor puede confirmar.

Ejemplo: estimar el envío de un sofá

Un cliente en Estados Unidos está mirando en tu aplicación un sofá de 1688 con un precio de ¥800. La API de productos ya ha devuelto el producto, el precio, las imágenes, los SKU y los atributos, pero ningún peso embalado ni dimensiones de embalaje fiables.

Así que tu aplicación no puede responder a la única pregunta que importa a continuación:

Precio del producto     ¥800
Envío internacional     ???

En un artículo voluminoso, esa incógnita puede superar con facilidad el precio del propio producto.

Tu aplicación crea una consulta:

POST /v1/supplier-inquiries
{
  "product_url": "https://detail.1688.com/offer/554456348334.html",
  "questions": [
    { "type": "packed_weight" },
    { "type": "package_dimensions" },
    { "type": "carton_info" }
  ]
}

HIOBuy entrega la tarea al servicio de comunicación con proveedores, y un operador ubicado en China contacta con el proveedor real de ese anuncio. El proveedor responde que el sofá se envía en dos paquetes:

Paquete 1   32 kg   110 × 75 × 55 cm
Paquete 2   18 kg    90 × 60 × 40 cm

Esas respuestas llegan a tu aplicación como JSON estructurado, y el recorrido completo se ve así:

Producto de 1688
      ↓  API de productos
Precio: ¥800
      ↓  faltan datos logísticos fiables
Consulta al proveedor
      ↓  HIOBuy contacta con el proveedor real
El proveedor confirma: 2 paquetes, 32 kg + 18 kg, dimensiones de las cajas
      ↓  datos logísticos estructurados
Estimación de envío internacional (China → Estados Unidos)

El cliente ve un coste total aproximado antes de comprar

Que es el objetivo de todo el ejercicio:

Coste del producto
+ envío internacional estimado
= un coste realista antes de la compra

Dónde encaja dentro de las API de HIOBuy

API de productos       "¿Qué es el producto y cuánto cuesta?"

API de consultas       "¿Cómo lo va a embalar realmente el proveedor?"

Cotización de envío    "¿Cuánto costará aproximadamente enviarlo al extranjero?"

La consulta al proveedor es la capa que falta entre los datos del producto y una cotización de envío.

Los datos confirmados por el proveedor son una estimación

Lo que recibes son datos confirmados por el proveedor. Para una estimación previa a la compra, eso es mucho mejor que no tener datos logísticos, usar el peso neto del producto, adivinar a partir de las fotos o confiar en un campo del marketplace que nunca se pensó para ser exacto.

Pero confirmado por el proveedor no es medido en almacén. Una vez que la mercancía llega físicamente, el embalaje puede diferir, el almacén puede reembalar, y el peso real, las dimensiones y el número de paquetes pueden cambiar.

Usa estas respuestas para la estimación del envío internacional antes de la compra. No las trates como el peso facturable definitivo del envío: ese siempre sale de lo que el almacén embala y mide realmente.

Más que datos de envío

Los datos de embalaje para estimar el envío son el uso primero y más concreto de esta API, pero el mismo canal de comunicación con el proveedor responde a cualquier cosa que solo él conoce:

MOQ · stock · plazo de producción · embalaje neutro · personalización · información de las cajas · detalles del producto · cualquier otra cosa, mediante el tipo other.

Así que hoy te da datos de embalaje → estimación de envío, y la misma llamada puede servir igualmente para información del proveedor → decisión de compra. Consulta los tipos de pregunta para ver los diez y sus esquemas de respuesta.

Cómo funciona

  1. Tu aplicación llama a POST /v1/supplier-inquiries con una URL de producto, un SKU opcional y una o más preguntas tipadas.
  2. HIOBuy crea la consulta y la entrega al servicio de comunicación con proveedores.
  3. Un operador ubicado en China contacta con el proveedor de ese anuncio.
  4. El proveedor responde.
  5. La respuesta se normaliza en datos estructurados conforme al esquema de cada tipo de pregunta.
  6. Tu endpoint recibe el webhook supplier_inquiry.message_answered, o bien consultas GET /v1/supplier-inquiries/{id}.

Una consulta es una conversación, no una petición puntual. Una vez creada, añades mensajes de seguimiento al mismo hilo en lugar de abrir uno nuevo.

Este es un servicio humano, no una API en tiempo real

Una persona real contacta con un proveedor real, así que el tiempo de respuesta depende de que el proveedor esté conectado, de lo rápido que conteste, de lo compleja que sea la pregunta y de si hace falta un seguimiento. Trátalo como una tarea asíncrona que se mide en horas, a veces más. Algunas preguntas volverán legítimamente como unavailable o refused.

En la práctica: nunca dejes que una página de cara al cliente espere el resultado de forma síncrona, responde en cuanto se cree la consulta, recibe las respuestas por webhook y muestra mientras tanto un estado processing o waiting_supplier en tu interfaz.

Adjuntos

Algunas preguntas son mucho más fáciles de plantear con una imagen. Una referencia de embalaje, una captura de pantalla de un SKU, un croquis con medidas, una ficha técnica; y en el otro sentido, la foto de embalaje del propio proveedor, la foto de una caja o un presupuesto en PDF.

Cada mensaje, el tuyo y el del proveedor, puede llevar hasta cinco adjuntos:

{
  "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 es image, document u other. La URL debe ser https://; cualquier otra cosa se rechaza con INVALID_ATTACHMENT_URL.

HIOBuy no aloja los archivos adjuntos

Los adjuntos son referencias. Tú alojas tus propios archivos; los del proveedor los aloja el servicio de consultas. HIOBuy guarda los metadatos y la URL, y nunca sube, descarga, copia ni actúa como proxy del archivo en sí. No existe ningún endpoint de subida de archivos, ni está previsto.

La consecuencia práctica es que las URL de los adjuntos las gestiona quien las proporciona, y algunas caducan. Cuando una respuesta incluye expires_at, trátalo como el plazo para llevar ese archivo a tu propio almacenamiento; null significa que el proveedor declara que la URL no caduca. No construyas sobre la suposición de que una URL devuelta hoy seguirá resolviendo el mes que viene.

Las respuestas del proveedor también pueden incluir adjuntos. Llegan en el array attachments del mensaje y en el webhook supplier_inquiry.message_answered, junto a las respuestas estructuradas. Solo ves los adjuntos que el servicio de consultas marcó como destinados a ti: los archivos de trabajo de los operadores y las capturas de pantalla de los chats con el proveedor quedan internos al servicio y nunca llegan a la API.

Acceso

Las consultas a proveedores están desactivadas por defecto. HIOBuy las habilita por aplicación tras la incorporación comercial; contacta con el soporte de HIOBuy para solicitar acceso.

RequisitoValor
CapacidadConsultas a proveedores, habilitada por aplicación
Ámbitossupplier_inquiry:read, supplier_inquiry:write
AutenticaciónClave de API de producción (Authorization: Bearer hio_live_...)

Si la capacidad no está concedida o está suspendida, todos los endpoints devuelven 403 SUPPLIER_INQUIRY_NOT_ENABLED.

Marketplaces admitidos

CanalSe detecta a partir de
1688detail.1688.com/offer/{id}.html y enlaces equivalentes
taobaoEnlaces de artículo de item.taobao.com / detail.tmall.com

Cualquier otro caso falla con UNSUPPORTED_MARKETPLACE. Un producto se identifica por channel + source_product_id, nunca por la cadena de la URL original, de modo que distintas formas de enlace de la misma oferta resuelven al mismo producto.

Estados de una consulta

EstadoSignificado
pendingAceptada, aún no tomada por el proveedor del servicio
processingUn operador está trabajando en ella
waiting_supplierLa pregunta se envió; se espera la respuesta del proveedor
answeredEl último mensaje tiene respuestas; el hilo sigue abierto para seguimientos
completedLa conversación está cerrada
failedEl mensaje no pudo entregarse o el proveedor del servicio lo rechazó
cancelledCancelada; no se aceptan más mensajes

pending, processing, waiting_supplier y answered cuentan como activos. Una aplicación solo puede mantener una consulta activa por producto: así se garantiza un único hilo con el proveedor por oferta. Enviar una petición de creación para un producto cuya consulta esté en completed o failed reabre esa conversación en lugar de crear una nueva.

Webhooks

Registra un endpoint en el portal de desarrolladores y suscríbete a la categoría supplier_inquiry. La firma y los reintentos siguen las reglas estándar de webhooks.

EventoSe emite cuando
supplier_inquiry.createdSe crea una consulta
supplier_inquiry.processingUn operador tomó el mensaje
supplier_inquiry.waiting_supplierLa pregunta llegó al proveedor
supplier_inquiry.message_answeredLlegaron respuestas: el payload incluye el array answers completo y los attachments que haya
supplier_inquiry.completedLa conversación se cerró
supplier_inquiry.failedEl mensaje falló

Todos los payloads incluyen inquiry_id y product.{channel,source_product_id}.

Códigos de error

CódigoHTTPSignificado
SUPPLIER_INQUIRY_NOT_ENABLED403Capacidad no concedida o suspendida
INVALID_PRODUCT_URL400No es una URL http(s) absoluta, o no contiene un id de producto
UNSUPPORTED_MARKETPLACE400El canal no es 1688 ni Taobao
INVALID_QUESTION_TYPE400questions[].type desconocido
INVALID_QUESTION_SCHEMA400Preguntas vacías, demasiado largas o duplicadas
INVALID_ATTACHMENT_URL400La URL del adjunto falta, no es absoluta o no es https://
INVALID_ATTACHMENT_TYPE400attachments[].type no es image, document ni other
TOO_MANY_ATTACHMENTS400Más de cinco adjuntos en un mismo mensaje
ACTIVE_INQUIRY_EXISTS409Ya existe una consulta activa: añade un mensaje a esa consulta
INQUIRY_NOT_FOUND404Consulta desconocida, o pertenece a otra aplicación
INQUIRY_NOT_ACTIVE409La consulta está cancelada
SUPPLIER_INQUIRY_SERVICE_UNAVAILABLE503El servicio de consultas está caído o rechazó la tarea

SUPPLIER_INQUIRY_SERVICE_UNAVAILABLE es genérico de forma deliberada: no se exponen motivos del lado del proveedor del servicio, como el saldo o el estado de la cuenta. Indica el request_id al contactar con soporte.

Endpoints

EndpointPropósito
POST /v1/supplier-inquiriesCrear una consulta
POST /v1/supplier-inquiries/{id}/messagesEnviar un seguimiento
GET /v1/supplier-inquiriesListar consultas
GET /v1/supplier-inquiries/{id}Detalle de la consulta con todos los mensajes
GET /v1/supplier-inquiries/{id}/messagesMensajes con preguntas y respuestas

Get Support

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

Email support