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 cmEsas 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 comprarQue es el objetivo de todo el ejercicio:
Coste del producto
+ envío internacional estimado
= un coste realista antes de la compraDó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
- Tu aplicación llama a
POST /v1/supplier-inquiriescon una URL de producto, un SKU opcional y una o más preguntas tipadas. - HIOBuy crea la consulta y la entrega al servicio de comunicación con proveedores.
- Un operador ubicado en China contacta con el proveedor de ese anuncio.
- El proveedor responde.
- La respuesta se normaliza en datos estructurados conforme al esquema de cada tipo de pregunta.
- Tu endpoint recibe el webhook
supplier_inquiry.message_answered, o bien consultasGET /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.
| Requisito | Valor |
|---|---|
| Capacidad | Consultas a proveedores, habilitada por aplicación |
| Ámbitos | supplier_inquiry:read, supplier_inquiry:write |
| Autenticación | Clave 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
| Canal | Se detecta a partir de |
|---|---|
1688 | detail.1688.com/offer/{id}.html y enlaces equivalentes |
taobao | Enlaces 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
| Estado | Significado |
|---|---|
pending | Aceptada, aún no tomada por el proveedor del servicio |
processing | Un operador está trabajando en ella |
waiting_supplier | La pregunta se envió; se espera la respuesta del proveedor |
answered | El último mensaje tiene respuestas; el hilo sigue abierto para seguimientos |
completed | La conversación está cerrada |
failed | El mensaje no pudo entregarse o el proveedor del servicio lo rechazó |
cancelled | Cancelada; 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.
| Evento | Se emite cuando |
|---|---|
supplier_inquiry.created | Se crea una consulta |
supplier_inquiry.processing | Un operador tomó el mensaje |
supplier_inquiry.waiting_supplier | La pregunta llegó al proveedor |
supplier_inquiry.message_answered | Llegaron respuestas: el payload incluye el array answers completo y los attachments que haya |
supplier_inquiry.completed | La conversación se cerró |
supplier_inquiry.failed | El mensaje falló |
Todos los payloads incluyen inquiry_id y product.{channel,source_product_id}.
Códigos de error
| Código | HTTP | Significado |
|---|---|---|
SUPPLIER_INQUIRY_NOT_ENABLED | 403 | Capacidad no concedida o suspendida |
INVALID_PRODUCT_URL | 400 | No es una URL http(s) absoluta, o no contiene un id de producto |
UNSUPPORTED_MARKETPLACE | 400 | El canal no es 1688 ni Taobao |
INVALID_QUESTION_TYPE | 400 | questions[].type desconocido |
INVALID_QUESTION_SCHEMA | 400 | Preguntas vacías, demasiado largas o duplicadas |
INVALID_ATTACHMENT_URL | 400 | La URL del adjunto falta, no es absoluta o no es https:// |
INVALID_ATTACHMENT_TYPE | 400 | attachments[].type no es image, document ni other |
TOO_MANY_ATTACHMENTS | 400 | Más de cinco adjuntos en un mismo mensaje |
ACTIVE_INQUIRY_EXISTS | 409 | Ya existe una consulta activa: añade un mensaje a esa consulta |
INQUIRY_NOT_FOUND | 404 | Consulta desconocida, o pertenece a otra aplicación |
INQUIRY_NOT_ACTIVE | 409 | La consulta está cancelada |
SUPPLIER_INQUIRY_SERVICE_UNAVAILABLE | 503 | El 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
| Endpoint | Propósito |
|---|---|
POST /v1/supplier-inquiries | Crear una consulta |
POST /v1/supplier-inquiries/{id}/messages | Enviar un seguimiento |
GET /v1/supplier-inquiries | Listar consultas |
GET /v1/supplier-inquiries/{id} | Detalle de la consulta con todos los mensajes |
GET /v1/supplier-inquiries/{id}/messages | Mensajes con preguntas y respuestas |
Get Support
Need integration help? Contact Developer Support at support@hiobuy.com · Response within 1–2 business days