Saltar al contenido principal

Integraciones API

Encuentra la información necesaria de las integraciones vía API con Multivende.

Búsqueda

Primeros Pasos

Ver los artículos
Todo lo que debes saber sobre Integraciones API

Conéctate vía API a una o más cuentas de Merchant y automatiza operaciones con nuestra API Rest.

 

Flujo global de integraciones

Multivende actúa como el centro de gestión para el catálogo de productos de un usuario, como observamos en el diagrama más abajo. (Diagrama flujo global de integraciones)

Dentro de Multivende, los usuarios pueden realizar todas las configuraciones necesarias, como la carga de productos, gestión de stock, administración de bodegas y establecimiento de listas de precios. Con esta información, Multivende publica los productos o SKUs en los diversos marketplaces y tiendas online con los que está integrado de manera nativa.

Todo el proceso entre Multivende, los marketplaces y las tiendas online está gestionado por nuestro equipo de desarrollo. Nosotros enviamos información relevante como stock, precios, productos, estado de órdenes y documentos a los marketplaces y tiendas online.

A su vez, recibimos en Multivende los datos de ventas y los cambios de estado, como actualizaciones de órdenes y detalles sobre despachos o retiros en tienda.

Además, ofrecemos la opción de descargar etiquetas de despacho y estamos integrados de manera nativa con operadores logísticos como Chilexpress, Envíame, entre otros.

Multivende sigue un enfoque API First, lo que significa que nuestra API está disponible para que los integradores conecten sus sistemas externos. Durante el proceso de implementación, gestionamos todas las interacciones entre Multivende y la integración. (Diagrama flujo global de integraciones -  Aplicaciones)

La API permite actualizar stock, precios y productos, y también acceder a esta información desde Multivende. Asimismo, disponemos de Webhooks para proporcionar actualizaciones en tiempo real sobre cualquier cambio en los recursos habilitados en la aplicación. Se pueden conectar con Multivende diferentes tipos de sistemas como ERPs, OMS, WMs, Canales de ventas, entre otros. Para más información sobre los sistemas a conectar con Multivende y sus funcionalidades consulta el siguiente artículo.

Flujo_API.webp

Diagrama flujo global de integraciones 

Funcionalidades para automatizar

Toda integración de un sistema con Multivende se debe realizar con el método de autenticación Oauth2. Puedes automatizar diferentes funcionalidades con esta integración las cuales son:

  • Ordenes
    Multivende te permite administrar dentro de una misma cuenta de Merchant diferentes conexiones a un mismo canal, podrás realizar: 
    • Leer órdenes por polling: Consultar las ventas nuevas/actualizadas en un rango de fechas de forma periódica para todas tus conexiones o por conexión .
    • Actualizar estados de las órdenes de despacho: Enviar a Multivende los cambios de estados que ocurren fuera del canal de venta, actualizaciones que a su vez, Multivende enviará al canal. Por ejemplo cambios de status del pedidos, como "El pedido ha sido enviado".
    • Actualizar estados de los retiros en tienda: Enviar a Multivende los cambios de estados que ocurren fuera del canal de venta, actualizaciones que a su vez, Multivende enviará al canal. Por ejemplo cambios de status del pedidos, como "El pedido está listo para ser retirado".
  • Etiquetas
  • Documentos tributarios:
    • Leer documentos tributarios de las órdenes: Obtener los DTE (documentos tributarios electrónicos, también denominados boletas o facturas) que cargan en Multivende otras integraciones en las órdenes.
    • Cargar documentos tributarios a las órdenes: Enviar a Multivende los DTE (documentos tributarios electrónicos, también denominados boletas o facturas) para almacenarlas como un repositorio centralizado de información de la orden. A su vez, Multivende envía a los canales que tienen habilitada la carga de DTE.
  • Productos:
  • Stock:
    • Leer stock: Obtener el stock disponible de los productos según la bodega.
    • Cargar stockEnviar el stock disponible de los productos según la bodega.
  • Precios: 

 

Conexión de nuevos canales

Aplica para conectar marketplace o e-commerce que no están actualmente dentro de los canales con los que ya contamos con la integración, permitimos la conexión de nuevos canales de ventas a través de nuestra central de aplicaciones los cuales podrán realizar adicional a las funcionalidades anteriores:

  • Crear órdenes: Enviar a Multivende nuevas órdenes de compra con el detalle de precio, productos, cliente, modalidad de entrega y pagos. Las cuales al ser registradas, Multivende realiza el descuento del stock.
  • Administrar product links: Obtener desde Multivende los productos que serán publicados en el canal.
  • Cargar etiquetas de envío: Enviar a Multivende las etiquetas de envío para los paquetes de las órdenes que son despachadas por el seller en coordinación con un courier del canal.

Para conocer qué funcionalidades debes realizar en tu integración te invitamos a validar según tu tipo de sistemas las dimensiones a cubrir Dimensiones de integración.

 

Permisos

El Merchant podrá seleccionar el nivel de permisos que se le asignará a cada aplicación por medio de los scopes definidos.

Por Ejemplo: Asignar a un canal de venta el acceso a una lista de precios específica.

Manejamos múltiples bodegas y listas de precios las cuales pueden mapear según los permisos otorgados a la aplicación para la sincronización del stock y precios.

Notificaciones

Disponemos de Webhooks encargados de enviar notificaciones a la aplicación para que pueda consultar las actualizaciones de los recursos, por lo que necesitarás un desarrollo que esté escuchando nuestras notificaciones.

 

ℹ️ Información: Las integraciones hacia Multivende como son desarrolladas por parte de ustedes, deben estar soportadas con mantenimiento dado que los Canales de Venta y Multivende agregan o modifican los recursos para mejorar u optimizar dicha integración.
 

El siguiente paso que debes realizar es integrar una aplicación. Para saber cómo hacerlo, consulta el siguiente artículo.

 

Equipo Integraciones API Multivende

 
Más información
Pasos esenciales para Integrar tu Aplicación

En este artículo te presentamos los pasos que debes seguir para integrar una aplicación.

 

Para poder integrar una aplicación deberás:

  1. Crear tu cuenta de desarrollador, si no cuentas con una debe ser creada con un correo que no esté registrado en Multivende.
  2. Crear tu aplicación en nuestra plataforma.
     
    Vídeo del proceso
     
  3. Desarrollar la conexión entre Multivende y la aplicación y la interfaz por la cual el Merchant realizará la configuración de la comunicación, esta comunicación se realizará por medio de Oauth2.
  4. Si la aplicación es un Marketplace, lee las siguientes consideraciones.
  5. Obtener detalles de la conexión entre tu APP y la cuenta del Merchant Get app information.
  6. ¡Listo! Puedes empezar a consultar nuestra API y realizar la integración con Multivende.

Consideraciones Generales:

  1. La aplicación debe cumplir con los estándares de seguridad definidos en el siguiente artículo.

  2. Nuestras fechas están en formato UTC, se debe realizar la conversión según la zona horaria.
  3. Los datos enviados a la aplicación deben ser almacenados en su base de datos y por medio de los webhooks se notificarán los cambios para que puedan ser actualizados, por lo que no se debe realizar consultas constantes para obtener la información de algún recurso.
  4. El desarrollo debe considerar reintentos en caso de error.
  5. Una aplicación se puede relacionar a más de un Merchant.
  6. Un Merchant puede tener múltiples conexiones a la misma aplicación.
  7. No puedes tener la sesión de la cuenta desarrollador y merchant en el mismo navegador.

Consideraciones Partners:

  1. La integración debe ser estándar para que los Merchant puedan configurar rápidamente la relación entre los sistemas.
  2. Se debe generar un manual de integración que será publicado en nuestro Help Center. El cual debe contener:
    1. ¿Cómo contactarse con el área comercial para contratar el servicio?.
    2. ¿Cómo contactarse con soporte en caso de tener algún inconveniente?.
    3. Condiciones del servicio.
    4. Funcionalidades que realiza la integración.
    5. Flujo que debe realizar para habilitar la integración, con capturas de pantalla que respalden la acción indicada.
  3. Más información en el siguiente artículo recomendaciones para partners.

 

Equipo Integraciones API Multivende

 
Más información
Empezando con tu cuenta de Desarrollador: Guía Rápida

Para usar la API de Multivende, gestiona tus aplicaciones desde la cuenta de desarrollador.

 

Para crear tu cuenta de desarrollador, debes seguir los siguientes pasos:

1. Tienes que crear una cuenta a través de https://app.multivende.com/developers/signup , donde deberás ingresar los datos solicitados en el formulario:

    • Nombre de usuario.
    • Correo electrónico: Email destinado al administrador de la cuenta (se recomienda que sea el correo del equipo de TI y es posible usar un correo previamente registrado como en la cuenta de un merchant).
    • Contraseña la cual cumpla con los estándares definidos:
      • Mínimo 12 caracteres.
      • Mínimo 1 letra mayúscula y 1 letra minúscula.
      • Mínimo 1 número.
      • Mínimo 1 símbolo.

Dale click a "Continuar" y listo! Tu cuenta ha sido creada con éxito.

 

2.Si ya posees cuenta como desarrollador creada deben realizar login a través de:

https://app.multivende.com/developers/login 

 

ℹ️ Información:
Recuerda siempre validar la URL a la cual estás apuntando para acceder correctamente al ambiente de Desarrollo.

 

Equipo Integraciones API Multivende

 
Más información
Instrucciones para crear y configurar tu Aplicación

Debes registrar la app en tu cuenta de desarrollador para integrarla vía API con otro sistema.

 

A continuación, te mostramos los pasos para crear la aplicación en Multivende:

1. Ingresa al menú de aplicaciones, donde se mostrarán todas tus aplicaciones creadas en Multivende y presiona el botón Crear.

Crear_aplicacio_n_-_2.png

2. Ingresa los datos de tu aplicación.

  • Nombre: Nombre de tu aplicación para reconocerla en tu listado de aplicaciones.
  • Código: Código para asociar la aplicación. Debe ser único en todo el sistema, por lo que debes seguir la nomenclatura “empresa_nombredelsistema_pais_version”.
  • Nombre público: Nombre que se muestra a los merchants en su listado de aplicaciones. Debe ser único en todo el sistema, por lo que debes seguir la nomenclatura “Empresa + nombre del sistema + país + versión”.
  • Visibilidad: 
    • Público: Se listará tu aplicación para que los merchants puedan seleccionar tu app y asociarla a su cuenta.
    • Privado: No se listará en el pull de aplicaciones disponibles para integrar.
  • URL de destino: Página a la que enviaremos a los merchant para que se realicen el OAuth2.
  • URL de marketing: Página donde se mostrará tu publicidad.
  • Descripción.
  • Descripción pública: Debes detallar las funcionalidades que tiene tu integración, quedará disponible para que el merchant pueda visualizarla.
  • Scopes: Permisos que debe otorgar el merchant para que la aplicación funcione correctamente. Puedes encontrar más detalles en el artículo dedicado a los scopes.
  • Redirect URL: URL a la que redireccionaremos luego de que el merchant otorgue los permisos necesarios.
  • Webhooks: Notificaciones a las que debe estar suscrita la aplicación para que funcione correctamente. Puedes encontrar más detalles en el artículo de webhooks.
  • Callback URL: URL a la que enviaremos el POST de la notificación.

3. Carga el logo de tu aplicación. Recuerda que esta debe cumplir con el formato de 45x45 px.

4. ¡Listo! Tu aplicación se ha creado con éxito.

ℹ️ Información:
Para solicitar la aprobación, debes levantar un ticket al equipo de API solicitando la autorización de esta misma, envíanos el "ClientId" (en formato texto) que puedes encontrar en el listado de aplicaciones.
Tu solicitud pasará por un proceso de validación. Te informaremos por el ticket
cuando la aprobación sea confirmada y tu aplicación esté lista para usar los
servicios.

 

Crear aplicación - 1

 

 

Equipo Integraciones API Multivende

Más información
API Mutivende (Postman)

Conoce más sobre nuestra API y accede a su documentación disponible en Postman en este artículo.

 

Multivende Integration Services (MIS) permite a los clientes o aplicaciones de terceros interactuar con la información del usuario de forma estándar, así como diferentes aspectos de la cuenta de los usuarios.

Puedes comenzar a probar la integración usando una cuenta con la URL base (Base URL) que apunte a la siguiente dirección:

https://app.multivende.com

Recuerda que nuestra comunicación utiliza HTTPS solo con TLS>= 1.2

 

En el siguiente enlace, podrás consultar el detalle de nuestra API, la cual se encuentra documentada en Postman para que puedas descargar la colección y realizar pruebas a través de la herramienta..

 

Equipo Integraciones API Multivende

Más información
Cómo crear una cuenta de pruebas en Multivende

Prueba Multivende creando una cuenta gratuita y conoce sus funciones antes de usarla en tu negocio.

Paso 1: Accede al Sitio Web de Multivende

  1. Visita el sitio web oficial de Multivende: www.multivende.com.
  2. En la página principal, busca la opción que dice "Crear Cuenta". Podrás encontrar esta opción en la parte inferior de la página.

Paso 2: Completa el Formulario de Registro

  1. Rellena tus datos personales: Para crear una cuenta de prueba, deberás proporcionar algunos datos básicos, tales como:

    • Nombre de usuario
    • Dirección de correo electrónico (asegúrate de usar una válida)
    • Contraseña segura.
      • Requisitos para la contraseña:
        • Mínimo 12 caracteres.
        • Mínimo 1 letra mayúscula y 1 letra minúscula.
        • Mínimo 1 número.
        • Mínimo 1 símbolo.
        • No puede contener el nombre de usuario.
    • Nombre de la empresa. (Utilizar la siguiente nomenclatura "nombreEmpresa_test")
    • Selecciona tu actividad principal. (Retail, venta mayorista, etc...)
    • Selecciona tu país.
    • Número de telefono. (No olvides incluir el código de area)
  2. Completa el reCAPTCHA.

  3. Enviar el formulario: Haz clic en el botón "Crear Cuenta".

Paso 3: Inicia Sesión en tu Cuenta

  1. Una vez verificada tu cuenta, regresa al sitio de Multivende.
  2. En la parte superior derecha, haz clic en "Acceder".
  3. Ingresa tu correo electrónico y la contraseña que usaste durante el registro.

Paso 4: Explora las Funcionalidades

Con tu cuenta de prueba ya activa, podrás explorar todas las características que Multivende ofrece, como:

  • Crear productos.
  • Crear bodegas.
  • Cargar stock.
  • Cargar precios.
  • Crear ventas.
  • Administrar inventarios.
  • Probar opciones de pago y envío.
  • Entre otras...

 

¿Te gustaría aprender más sobre cómo sacar el máximo provecho a tu cuenta de prueba?
Te invitamos a visualizar nuestro Workshop del Funcionamiento de la plataforma, donde te explicaremos detalladamente cómo utilizar cada funcionalidad y resolveremos todas tus dudas.

 

Paso 5: Contacta Soporte si tienes preguntas

Si tienes algún problema durante el registro o necesitas asistencia adicional, puedes contactar con el equipo de soporte de Multivende a través de las opciones de ayuda en línea o contacto que se encuentran en el sitio.

Si necesitas más detalles de como contactar al equipo de Integraciones API, puedes ver más detalles en el siguiente artículo:

 

Equipo Integraciones API Multivende

 

 

Más información

Proceso de autorización

Ver los artículos
Configuración de Autenticación OAuth2: Todo lo que necesitas saber

Configura OAuth2 fácilmente y asegura tus datos, mejorando la protección y la experiencia del usuario.

El método de autenticación utilizado para las integraciones es OAuth2, ya que ofrece una serie de beneficios clave, por ejemplo:

  • Esta optimizado para aplicaciones del lado del servidor.
  • El código fuente no se expone públicamente.
  • Mantiene la confidencialidad del Client Secret.

¿Qué es OAuth2?

Es un marco de autorización que permite a las aplicaciones obtener acceso limitado a cuentas de usuario en un servicio HTTP como Google, Facebook, GitHub, entre otros. 

¿Cómo funciona?

Funciona delegando  la  autenticación  del usuario (Merchant) al servicio que aloja la cuenta (Multivende) y autorizando a las aplicaciones de terceros a  acceder  a  los  datos  de  la  cuenta  del Merchant seleccionando los permisos que desea otorgar.

Roles

  • Propietario del recurso - Merchant
  • Cliente - Aplicación
  • Servidor de recursos - Multivende 
  • Servidor de autorización - Multivende

 

  • Proceso de Autorización

1. El Merchant ingresa al sitio web de la aplicación y genera la solicitud de autorización a Multivende.

2. Aplicación redirecciona al Merchant a Multivende enviando por parámetro en la URL:

  • "response_type" = code.
  • "client_id" = Client ID.
  • "redirect_uri" = redirect_uri (Ingresada previamente al crear la aplicación en Multivende).
  • "scope"= scopes (Ingresado(s) previamente al crear la aplicación en Multivende).

Ejemplo:

https://app.multivende.com/apps/authorize?response_type=code&client_id=00000000000&redirect_uri=asd&scope=read:checkouts

 

3. El Merchant selecciona los permisos (scopes) a autorizar para la aplicación. Mas detalles en el artículo Scopes.

4. Multivende genera el código de autorización y redirige al redirect_uri. Enviando:

  • code(Código de autorización)

5. Aplicación solicita el access token a Multivende por el endpoint Authenticate OAuth2 Enviando: 

    • client_id.
    • client_secret.
    • grant_type: 'authorization_code'.
    • code.

6. Multivende valida que el authorization code entregado no haya expirado y retornar el access token. La aplicación recibe:

    • token
    • expiresAt
    • refreshToken
    • refreshTokenExpiresAt
    • scopes
    • MerchantId
    • OauthClientId

Response:

  {
    "_id": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
    "status": "created",
    "OauthClientId": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
    "MerchantId": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
    "CreatedById": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
    "UpdatedById": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
    "OwnerId": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
    "scopes": {
      "read:products": true,
      "write:products": true,
      "read:stocks": {
        "all": false,
        "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX": true
      },
      "write:stocks": {
        "all": false,
        "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX": true
      },
      "read:prices": {
        "all": false,
        "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX": true
      },
      "write:prices": {
        "all": false,
        "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX": true
      },
      "read:checkouts": {
        "all": false,
        "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX": false,
        "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX": true
      },
      "write:checkouts": {
        "all": false,
        "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX": true
      },
      "read:product_links": {
        "all": false,
        "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX": true
      },
      "write:product_links": {
        "all": false,
        "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX": true
      },
      "manage:checkouts": true,
      "manage:product_links": true
    },
    "expiresAt": "2021-03-03T01:45:34.958Z",
    "refreshToken": "rt-XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
    "refreshTokenExpiresAt": "2021-03-04T19:45:34.958Z",
    "updatedAt": "2021-03-02T19:45:34.000Z",
    "createdAt": "2021-03-02T19:45:34.000Z",
    "token": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
}

Se ilustra a continuación en el diagrama del proceso de autorización:


image (6)-1

Diagrama del proceso de autorización

 

  • Proceso para actualizar el token

 Para generar un nuevo token se debe solicitar el endpoint Refresh token OAuth2 enviando:

  • refresh_token: Generado en el paso anterior. (Proceso de Autorización)
  • client_id.
  • client_secret.
  • grant_type: 'refresh_token'.

Retorna dentro del response:

  • token.
  • expiresAt.
  • refreshToken.
  • refreshTokenExpiresAt.
  • scopes.
  • MerchantId.
  • OauthClientId.

Response:

  {
    "_id": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
    "status": "created",
    "OauthClientId": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
    "MerchantId": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
    "CreatedById": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
    "UpdatedById": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
    "OwnerId": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
    "scopes": {
      "read:products": true,
      "write:products": true,
      "read:stocks": {
        "all": false,
        "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX": true
      },
      "write:stocks": {
        "all": false,
        "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX": true
      },
      "read:prices": {
        "all": false,
        "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX": true
      },
      "write:prices": {
        "all": false,
        "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX": true
      },
      "read:checkouts": {
        "all": false,
        "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX": false,
        "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX": true
      },
      "write:checkouts": {
        "all": false,
        "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX": true
      },
      "read:product_links": {
        "all": false,
        "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX": true
      },
      "write:product_links": {
        "all": false,
        "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX": true
      },
      "manage:checkouts": true,
      "manage:product_links": true
    },
    "expiresAt": "2021-03-03T01:45:34.958Z",
    "refreshToken": "rt-XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
    "refreshTokenExpiresAt": "2021-03-04T19:45:34.958Z",
    "updatedAt": "2021-03-02T19:45:34.000Z",
    "createdAt": "2021-03-02T19:45:34.000Z",
    "token": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
}

 

Diagrama proceso de refrescado del token:

Diagrama proceso de refrescado

Importante

  • Cada vez que el Merchant otorgue permisos a la aplicación se genera una nueva conexión entre la aplicación y la cuenta del Merchant la cual no sustituye las conexiones anteriores. Por lo que si tu aplicación solo permite una conexión, el Merchant deberá eliminar las conexiones que no de desean usar.
  • Se debe encriptar con un algoritmo de clave simétrica el token y refresh token antes de almacenarlo en la base de datos.
    • Y se debe seguir los protocoles establecidos en nuestra sección de Seguridad.
  • Tiempos de caducidad:
 

Caducidad

Usos

authorization code

24 horas

1 sola vez

token

6 horas

indefinido

refreshToken

48 horas

1 sola vez

 

 

Equipo Integraciones API Multivende

 
Más información
Todo lo que necesitas saber sobre Webhooks: Configuración y Uso

Notificaciones en tiempo real de eventos en Multivende enviadas a tu app vía Callback URL.

 

Cuando se produce un evento en Multivende, se envía una solicitud HTTPS POST a la URL de devolución de llamada (Callback URL) por cada una de las apps de integración que están suscritas a los webhooks. A partir de las notificaciones se puede usar para desencadenar reglas o procesos específicos de la aplicación.

De esta manera, las apps resultan más eficientes, porque identifican cuando se produce un cambio en tiempo real, y, entonces, puede hacer las solicitudes periódicas en un rango de tiempo más amplio a la API para obtener el contenido actualizado.

 

Los webhooks disponibles son los siguientes:

  • Stock: Se notificará los cambios del stock de una versión de un producto por bodega.
  • Products: Se notificará que hay un cambio en los detalles o un nuevo producto y sus versiones.
  • Product links: Se notificará que hay un cambio en el estado de sincronización del producto con el canal.
  • Checkouts: Se notificará que hay una nueva venta, cambios de estados, cambio en el detalle de la venta.*
  • Prices: Se notificará los cambios en los precios de una versión de un producto por lista de precio.
  • Delivery Orders: Se notificará los cambios de estados en las entregas con despacho a domicilio de una venta.
  • Pick Up Orders: Se notificará los cambios de estados en las entregas con retiro en tienda de una venta.

Ejemplo de notificación cambio de checkouts:

{
"CheckoutId":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"MerchantId":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"MarketplaceConnectionId":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"MerchantAppId":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"OauthClient":{
"_id":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"client_id":"99631xxxxxxx"
},
"resource":"checkouts",
"attemps":1,
"received":"2021-04-08T19:55:07.061Z"
}

Más ejemplos de notificaciones (link)

⚠️ Advertencia: Si al consultar el detalle de la venta con el CheckoutId el response es con status 404, se debe a que se trata de una venta que presentó error en el registro de Multivende la cual no queda registrada.

Importante:

  • Recomendamos no procesar la notificación (Webhooks) cuando esta se recibe en tu sistema, sino realizarlo de forma asíncrona, implementando un sistema de colas para el procesamiento de las notificaciones.
  • Guarda el JSON directamente en algún lugar.
    • Por ejemplo Redis o alguna BBDD.
  • El Callback URL se registra al momento de crear la aplicación (Crear tu aplicación).
    • El Callback URL debe poseer certificado SSL válido (HTTPS).
    • El Callback URL no debe poseer validación de token.
    • El tiempo de respuesta de la CallbackURL debe ser menor a 6 segundos.
  • Los Webhooks son infinitos, los costos de su operación es por parte de ustedes como desarrolladores.
  • Por seguridad deben agregar que solo reciban Request de nuestra IP como Multivende.
  • Los webhooks se deben complementar con un polling para disminuir la probabilidad de pérdida de datos.

 

 

Equipo Integraciones API Multivende

 
Más información
Scopes en profundidad: Guía para configuración y uso Efectivo

Permisos que otorga el Merchant para que la app acceda solo a los datos de los scopes autorizados.

 

  • “all”: La aplicación tendrá permiso a todos los recursos asociados a ese scope.
  • “xxxxxxxxx-xxxx-xxxx-xxxxxxxxxxxxxxxx”: La aplicación tendrá permiso al _id del recurso asociado al alcance.

Por ejemplo:

El Merchant otorga el alcance “read: stock”. Como el stock varia según la bodega, el Merchant puede seleccionar otorgar acceso a todas sus bodegas o a una/varias bodegas específicas. 

  • Permiso encendido para leer el Stock de Todas las sucursales y bodegas:

Response:

{
  "_id": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
  "status": "created",
  "OauthClientId": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
  "MerchantId": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
  "MerchantAppId": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
  "CreatedById": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
  "UpdatedById": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
  "OwnerId": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
  "scopes": {
    "read:stocks": {
      "all": true
    }
  },
  "expiresAt": "2024-10-15T19:57:26.468Z",
  "refreshToken": "rt-XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
  "refreshTokenExpiresAt": "2024-10-17T13:57:26.468Z",
  "updatedAt": "2024-10-15T13:57:26.000Z",
  "createdAt": "2024-10-15T13:57:26.000Z",
  "token": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.XXXXXXXXXXXX........."
}

 

 

Si el merchant otorga permisos "all", deberá consultar el endpoint correspondiente según sea el caso para obtener el listado de todos los recursos.

  • Permiso para acceder solo a una bodega o sucursal:

Response:

{
  "_id": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
  "status": "created",
  "OauthClientId": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
  "MerchantId": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
  "MerchantAppId": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
  "CreatedById": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
  "UpdatedById": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
  "OwnerId": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
  "scopes": {
    "read:stocks": {
      "all": false,
      "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX": false,
      "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXX1234": true // Bodega con acceso
    }
  },
  "expiresAt": "2024-10-15T19:57:26.468Z",
  "refreshToken": "rt-XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
  "refreshTokenExpiresAt": "2024-10-17T13:57:26.468Z",
  "updatedAt": "2024-10-15T13:57:26.000Z",
  "createdAt": "2024-10-15T13:57:26.000Z",
  "token": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.XXXXXXXXXXXX........."
}

En este caso en el json del scope el valor del campo “all” es “false” por lo que la aplicación no tiene acceso a todas las bodegas. Pero tiene acceso a la bodega con id = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXX1234".

  • Sin permiso para leer stock de ninguna sucursal o bodega:

Response:

{
  "_id": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
  "status": "created",
  "OauthClientId": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
  "MerchantId": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
  "MerchantAppId": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
  "CreatedById": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
  "UpdatedById": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
  "OwnerId": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
  "scopes": {
    "read:stocks": {
      "all": false // Ninguna bodega con acceso.
    }
  },
  "expiresAt": "2024-10-15T19:57:26.468Z",
  "refreshToken": "rt-XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
  "refreshTokenExpiresAt": "2024-10-17T13:57:26.468Z",
  "updatedAt": "2024-10-15T13:57:26.000Z",
  "createdAt": "2024-10-15T13:57:26.000Z",
  "token": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.XXXXXXXXXXXX........."
}

Tipos de scope:

  • Read: Otorga permisos de solo lectura para el scope seleccionado.
  • Write: Otorga permisos de escritura para el scope seleccionado.
  • Manage: Otorga permisos para administrar(lectura/escritura) los recursos del scope seleccionado de forma global, no permite seleccionar por recurso.
ℹ️ Importante: El permiso de manage:checkouts es exclusivamente para aplicaciones que integran canales de ventas.

Los diferentes scopes que tenemos disponibles son los siguientes:

  • Permisos para consultar/escribir los productos, sus versiones, categorías, color, talla, entre otros. Se otorga acceso global. 
      •  read:products
      • write:products
  • Permisos para consultar/escribir el stock de los productos según las bodegas. Se puede otorgar acceso a global o segmentado.
      • read:stocks
      • write:stocks
  • Permisos para consultar/escribir el precio de los productos según las listas de precios. Se puede otorgar acceso a global o segmentado.
      • read:prices
      • write:prices
  • Permisos para consultar/escribir/administrar las ventas de los diferentes canales de venta. Se puede otorgar acceso a global o segmentado.
      •  read:checkouts
      • write:checkouts
      • manage:checkouts Este scope se debe habilitar solo para las aplicaciones que son canales de venta.
  • Permisos para consultar/escribir/administrar la asociación de una versión de un producto a los diferentes canales de venta. Se puede otorgar acceso a global o segmentado por canal.
      • read:product_links
      • write:product_links
      • manage:product_links 
        • Este scope se debe habilitar solo para las aplicaciones que son canales de venta.
  • Permisos para consultar/escribir/administrar las bodegas que tiene creadas el merchant. Se puede otorgar acceso a global o segmentado.
      • read:warehouses
      • write:warehouses
      • manage:warehouses

  • Permisos para consultar/escribir/administrar los clientes que tiene creados el merchant. Se puede otorgar acceso a global.
      • read:clients
      • write:clients
      • manage:clients

  • Permisos para consultar/escribir en las conexiones con couriers que tiene el merchant creada . Se puede otorgar acceso a global o segmentado.
      • read:couriers
      • write:couriers

  • Permisos para consultar los canales que tiene creados el merchant. Se puede otorgar acceso a global o segmentado.
      • read:channels
  • Permisos para generar etiquetas de despacho desde los canales de ventas que permiten esta funcionalidad.
      • read:channels
      • read:checkouts
      • write:checkouts

 

Equipo Integraciones API Multivende

 
Más información
¿Cómo generar authorization code sin interfaz gráfica?

Guía para generar el código de autorización OAuth2 sin necesidad de una interfaz gráfica.

En caso de no contar con una interfaz gráfica para realizar la conexión de la aplicación con la cuenta del Merchant igualmente puede generar tu código de autorización, primero debes ingresar a tu cuenta de Desarrollador, dirigirte a "Aplicaciones", luego a "Listado de aplicaciones" y hacer clic en la acción del "Lápiz" (Editar).

Dentro de la configuración de la aplicación podrás visualizar la opción “Agregar cuentas de merchant”, la cual se encuentra debajo de “Visibilidad”.

Importante, esto solo se puede realizar una vez tengas tu aplicación autorizada.

 

Una vez dentro, debes insertar el MerchantId en el recuadro y hacer click sobre el botón guardar.

Ahora el Merchant podrá visualizar tu aplicación en el listado de aplicaciones de la vista de Merchants.

 

Para esto, el Merchant debe ingresar a la plataforma, dirigirse a "Aplicaciones" luego a "Listado de aplicaciones".

Aquí veremos un listado de aplicaciones certificadas de Multivende, se debe hacer scroll hasta el final de la página en donde dice "Listado de aplicaciones propias no certificadas", debes hacer clic en "Ver más" en la aplicación a la cual se desea generar el authorization code, donde el Mrechant podrá otorgar los permisos según lo requiera.

Seguido a esto se debe seleccionar la opción "Generar authorization code", aquí el Merchant podrá brindarle permiso (Scopes) a los datos seleccionados y establecer un nombre para la conexión con la aplicación.

Válida que la información esté correcta y listo, el código de autorización será generado y podrás continuar con el proceso de autenticación mediante Oauth2

 

Podrás ver el proceso en el siguiente video:

 

 

 

Equipo Integraciones API Multivende

 
Más información
Cómo generar un nuevo Código de Autorización en Multivende sin reconectar la aplicación - Guía paso a paso

Guía para generar el código de autorización OAuth2 sin reconectar la aplicación.

 

Para generar un nuevo código de autorización de una aplicación ya conectada a la cual se le expiró el refreshToken o algún problema similar; lo puedes realizar sin generar una nueva conexión de la aplicación en Multivende. Para ello debes seguir los siguientes pasos.

Primero, el Merchant debe ingresar a la plataforma de Multivende, seguido a esto hará clic a la opción "Aplicaciones" la cual desplegará "Listado de aplicaciones".

Aquí el Merchant podrá ver todas las aplicaciones que tenga conectadas en su cuenta:

  • Se debe hacer click sobre la acción del lápiz en la aplicación en concreto.

 

  • Luego "Generar código de autorización

 

  • Y listo, se ha generado el código de autorización para continuar con tu flujo de autenticación.

 

Puedes ver los detalles en el siguiente vídeo:

 

Importante

  • El código de autorización solo se genera al principio del flujo, luego debes renovar tu token con el refreshToken. Solo en los casos que el refreshToken expire u algún problema similar, se puede realizar este proceso.
  • La obtención del código de autorización es un proceso manual que se realiza únicamente desde la cuenta del Merchant. Este proceso no puede ser automatizado debido a que requiere confirmación por parte del Merchant los permisos a otorgar a la aplicación.

 

 

Equipo Integraciones API Multivende

Más información
OAuth2 en Multivende: Cómo obtener y renovar tu token de acceso

Clave para asegurar que apps externas interactúen de forma segura con una API.

 

El proceso de autenticación mediante OAuth2 es un paso crucial para garantizar que las aplicaciones de terceros puedan interactuar de manera segura con una API, garantizando que solo los usuarios autorizados puedan acceder a ciertos recursos. Sin embargo, en este proceso, pueden surgir varios errores que impiden obtener o renovar el token de acceso. A continuación, te explicamos los pasos involucrados en este proceso, los posibles errores que podrías enfrentar y cómo solucionarlos.

Proceso de autenticación con OAuth2

Cuando un merchant entrega el código de autorización, se inicia el proceso de autenticación mediante OAuth2. El primer paso consiste en enviar los parámetros necesarios al Endpoint Authenticate OAuth2 utilizando una solicitud HTTP POST.

Ejemplo de solicitud:

curl --location -g '{{base_url}}/oauth/access-token' \
  --header 'cache-control: no-cache' \
  --header 'Content-Type: application/json' \
  --data '{
    "client_id": 00000000000,
    "client_secret": "NMV6TupxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxpR3YNW",
    "grant_type": "authorization_code",
    "code": "ac-xxxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxxx"
  }'

En este punto, la API responderá con un objeto que contiene el token, refreshToken y la duración de su validez.

Respuesta exitosa:

{
  "_id": "xxxxxxxxx-3736-4f94-8xxx-xxxxxxxxxxxxxxx",
  "status": "created",
  "OauthClientId": "xxxxxxxxx-3736-4f94-8xxx-xxxxxxxxxxxxxxx",
  "MerchantId": "xxxxxxxxx-3736-4f94-8xxx-xxxxxxxxxxxxxxx",
  "CreatedById": "xxxxxxxxx-3736-4f94-8xxx-xxxxxxxxxxxxxxx",
  "UpdatedById": "xxxxxxxxx-3736-4f94-8xxx-xxxxxxxxxxxxxxx",
  "OwnerId": "xxxxxxxxx-3736-4f94-8xxx-xxxxxxxxxxxxxxx",
  "scopes": { ... },
  "expiresAt": "2021-03-03T01:45:34.958Z",
  "refreshToken": "rt-xxxxxxxx-xxxx-4fd9-xxxx-8d9a818bef2a",
  "refreshTokenExpiresAt": "2021-03-04T19:45:34.958Z",
  "token": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
}

El token tiene una validez de 6 horas, mientras que el refreshToken tiene una validez de 48 horas y puede ser utilizado una única vez para renovar el acceso.

Renovación del Token mediante el Refresh Token

Cuando el token está cerca de expirar, se debe utilizar el Endpoint Refresh Token OAuth2 para obtener un nuevo token y un nuevo refreshToken. Esto debe realizarse antes de que el token original caduque, idealmente cuando queda aproximadamente 1 hora de vida.

Ejemplo de solicitud para renovar el token:

curl --location -g '{{base_url}}/oauth/access-token' \
  --header 'cache-control: no-cache' \
  --header 'Content-Type: application/json' \
  --data '{
    "client_id": 00000000000,
    "client_secret": "NMV6TupxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxpR3YNW",
    "grant_type": "refresh_token",
    "refresh_token": "rt-xxxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxxx"
  }'

 

Respuesta exitosa:

{
  "_id": "xxxxxxxxx-3736-4f94-8xxx-xxxxxxxxxxxxxxx",
  "status": "created",
  "OauthClientId": "xxxxxxxxx-3736-4f94-8xxx-xxxxxxxxxxxxxxx",
  "MerchantId": "xxxxxxxxx-3736-4f94-8xxx-xxxxxxxxxxxxxxx",
  "CreatedById": "xxxxxxxxx-3736-4f94-8xxx-xxxxxxxxxxxxxxx",
  "UpdatedById": "xxxxxxxxx-3736-4f94-8xxx-xxxxxxxxxxxxxxx",
  "OwnerId": "xxxxxxxxx-3736-4f94-8xxx-xxxxxxxxxxxxxxx",
  "scopes": { ... },
  "expiresAt": "2021-03-03T01:45:34.958Z",
  "refreshToken": "rt-xxxxxxxx-xxxx-4fd9-xxxx-8d9a818bef2a",
  "refreshTokenExpiresAt": "2021-03-04T19:45:34.958Z",
  "token": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"

}

Este proceso puede ser automatizado para que, cuando el token esté cerca de su expiración (por ejemplo, con 5 horas de antelación), se realice la renovación automática utilizando el refreshToken. De este modo, se garantiza la continuidad en el flujo de autenticación sin interrupciones.

Errores Comunes

  1. Token Expirado o Invalidado: Si el token ha expirado y no se ha renovado a tiempo, el proceso debe reiniciarse desde el principio. Esto implica que el merchant deberá generar un nuevo código de autorización manualmente desde la configuración de la aplicación.

  2. Refresh Token Expirado o No Utilizado: Si el refreshToken ha expirado o no ha sido utilizado dentro de su período de validez, el proceso también debe reiniciarse desde cero, lo que requerirá que el merchant obtenga un nuevo código de autorización manualmente.

  3. Error en la Solicitud de Renovación: Si hay errores en la solicitud de renovación del token (por ejemplo, errores de red, parámetros incorrectos, etc.), asegúrate de validar los datos enviados, como el client_id, client_secret y el refresh_token.

  4. Error en la Respuesta del Servidor: Si la API devuelve un error, revisa el código de estado HTTP y el mensaje de error para identificar la causa. Algunos errores comunes incluyen falta de permisos o problemas de autenticación.

Resumen

Para gestionar adecuadamente la autenticación OAuth2, es importante realizar lo siguiente:

  • Obtener y gestionar el token y el refreshToken de manera eficiente.

  • Automatizar la renovación del token antes de su expiración.

  • Asegurarse de que el refreshToken se use dentro de su período de validez.

  • Si el refreshToken expira o no es válido, reiniciar el proceso de autenticación obteniendo un nuevo código de autorización manualmente.

Este proceso garantiza que las interacciones con la API sean seguras y fluidas, manteniendo el acceso autorizado de manera continua y sin interrupciones.

 

 

 

Equipo Integraciones API Multivende

Más información

Guía de acciones según tu tipo de integración

Ver los artículos
¿Tu integración es un ERP?

Conoce el proceso para interactuar de forma correcta con la API de Multivende para integrar ERP's

Para realizar tu interacción de forma correcta con la plataforma y permitir que tu integración ERP pueda sacar el máximo provecho de las herramientas que brindamos, es necesario iniciar aprendiendo información básica sobre nuestra API, para eso te pedimos leer 5 artículos básicos sobre la integración:

Artículo 1 - Todo lo que debes saber sobre Integraciones API(Requerido)

Detallamos cuáles son los pasos para que tu aplicación pueda conectarse a la cuenta del merchant y poder empezar a consultar sus datos.

Artículo 2 - API Multivende - Postman(Requerido)

Conocerás más sobre nuestra API y su documentación en Postman.

Artículo 3 - Requisitos técnicos generales (Requerido):

Encontrarás la información asociada a las consideraciones técnicas que debes tener en cuenta para la integración.

Artículo 4 - ¿Cómo cargar stock vía API?(Requerido)

Encontrarás la información para realizar la sincronización de stock a Multivende. Para hacerlo, debes hacer uso de los endpoints de la sección “stock”, te recomendamos dejar un cron que sincronice los stocks por lo menos una vez al día. Además de una opción para que el usuario pueda ejecutar el proceso manualmente.

Artículo 5 - Actualización de Precios(Opcional)

Podrás obtener la información para realizar la sincronización de precios a Multivende. Para hacerlo, debes hacer uso de los endpoints de la sección “prices”.

Artículo 3 - ¿Cómo crear productos desde tu sistema a Multivende?(Opcional)

Con información básica (SKUs, Nombre, Variantes)(Recomendado): Te dejamos los endpoint disponibles:

Artículo 4 - Registro de ventas desde Multivende: Instrucciones para integrarlas en tu sistema(Requerido)

Conocerás cómo obtener las ventas e iniciar el proceso de logística. Este es un flujo complementario a los webhooks para repasar las ventas en un rango de fechas y horas dadas, se recomienda:

  • Registrar el _id de la venta.
  • Registrar la fecha de la venta en el canal "soldAt".
  • Registrar la fecha de última actualización de la venta en Multivende "updatedAt" para que puedas identificar si la venta ha sido modificada desde la última vez que la obtuviste.
  • Luego de registrar la venta por primera vez se envía el stock actualizado de los productos en ella.

Artículo 5 - ¿Cómo enviar Documentos Tributarios a Multivende? (Requerido)

Detallamos cómo realizar la carga de los documentos electrónicos a las ventas.

 

Equipo Integraciones API Multivende

Más información
¿Tu integración es un OMS?

Conoce el proceso para interactuar de forma correcta con la API de Multivende para integrar tu OMS.

Para realizar tu interacción de forma correcta con la plataforma y permitir que tu integración OMS pueda sacar el máximo provecho de las herramientas que brindamos, es necesario iniciar aprendiendo información básica sobre nuestra API, para eso te pedimos leer 8 artículos básicos sobre la integración:

Artículo 1 - Todo lo que debes saber sobre Integraciones API(Requerido)

Detallamos cuáles son los pasos para que tu aplicación pueda conectarse a la cuenta del merchant y poder empezar a consultar sus datos.

Artículo 2 - API Mutivende - Postman(Requerido)

Conocerás más sobre nuestra API y su documentación en Postman.

Artículo 3 - Requisitos técnicos generales (Requerido):

Encontrarás la información asociada a las consideraciones técnicas que debes tener en cuenta para la integración.

Artículo 4 - Registro de ventas desde Multivende: Instrucciones para integrarlas en tu sistema(Requerido)

Conocerás cómo obtener las ventas e iniciar el proceso de logística. Este es un flujo complementario a los webhooks para repasar las ventas en un rango de fechas y horas dadas, se recomienda:

    • Registrar el _id de la venta.
    • Registrar la fecha de la venta en el canal "soldAt".
    • Registrar la fecha de última actualización de la venta en Multivende "updatedAt" para que puedas identificar si la venta ha sido modificada desde la última vez que la obtuviste.
    • Luego de registrar la venta por primera vez se envía el stock actualizado de los productos en ella.

Artículo 5 -Estados de una Orden Según el Tipo de Entrega(Requerido)

Encontrarás la información para poder notificar al canal el estado de manejo de una orden.

Artículo 6 - ¿Cómo generar y consultar etiquetas de los Marketplace?(Recomendado):

Conocerás cómo obtener las etiquetas de las ventas que son despachadas por el marketplace.

Artículo 7 - ¿Cómo cargar stock vía API?(Opcional)

Encontrarás la información para realizar la sincronización de stock a Multivende. Para hacerlo, debes hacer uso de los endpoints de la sección “stock”, te recomendamos dejar un cron que sincronice los stocks por lo menos una vez al día. Además de una opción para que el usuario pueda ejecutar el proceso manualmente.

Artículo 8 - Actualización de Precios(Opcional)

Podrás obtener la información para realizar la sincronización de precios a Multivende. Para hacerlo, debes hacer uso de los endpoints de la sección “prices”.

Artículo 9 - ¿Cómo enviar Documentos Tributarios a Multivende? (Opcional)

Detallamos cómo realizar la carga de los documentos electrónicos a las ventas.

 

 

Equipo Integraciones API Multivende

Más información
¿Tu integración es un POS?

Conoce el proceso para interactuar de forma correcta con la API de Multivende para integrar tu POS.

Para realizar tu interacción de forma correcta con la plataforma y permitir que tu integración POS pueda sacar el máximo provecho de las herramientas que brindamos, es necesario iniciar aprendiendo información básica sobre nuestra API, para eso te pedimos leer 8 artículos básicos sobre la integración:

Artículo 1 - Todo lo que debes saber sobre Integraciones API(Requerido)

Detallamos cuáles son los pasos para que tu aplicación pueda conectarse a la cuenta del merchant y poder empezar a consultar sus datos.

Artículo 2 - API Mutivende - Postman(Requerido)

Conocerás más sobre nuestra API y su documentación en Postman.

Artículo 3 - Requisitos técnicos generales (Requerido):

Encontrarás la información asociada a las consideraciones técnicas que debes tener en cuenta para la integración.

Artículo 4 - ¿Cómo cargar stock vía API?(Requerido)

Encontrarás la información para realizar la sincronización de stock a Multivende. Para hacerlo, debes hacer uso de los endpoints de la sección “stock”, te recomendamos dejar un cron que sincronice los stocks por lo menos una vez al día. Además de una opción para que el usuario pueda ejecutar el proceso manualmente.

Artículo 5 - Registro de ventas desde Multivende: Instrucciones para integrarlas en tu sistema(Requerido)

Conocerás cómo obtener las ventas e iniciar el proceso de logística. Este es un flujo complementario a los webhooks para repasar las ventas en un rango de fechas y horas dadas, se recomienda:

  • Registrar el _id de la venta.
  • Registrar la fecha de la venta en el canal "soldAt".
  • Registrar la fecha de última actualización de la venta en Multivende "updatedAt" para que puedas identificar si la venta ha sido modificada desde la última vez que la obtuviste.
  • Luego de registrar la venta por primera vez se envía el stock actualizado de los productos en ella.

Artículo 6 - ¿Cómo enviar Documentos Tributarios a Multivende? (Requerido)

Detallamos cómo realizar la carga de los documentos electrónicos a las ventas.

Artículo 7 - Actualización de Precios(Opcional)

Podrás obtener la información para realizar la sincronización de precios a Multivende. Para hacerlo, debes hacer uso de los endpoints de la sección “prices”.

Artículo 8 -Estados de una Orden Según el Tipo de Entrega(Opcional)

Encontrarás la información para poder notificar al canal el estado de manejo de una orden.

Artículo 9 - Generación de etiquetas de los marketplace(Opcional):)

Conocerás cómo obtener las etiquetas de las ventas que son despachadas por el marketplace.

 

 

Equipo Integraciones API Multivende

Más información
¿Tu integración es un PIM?

Conoce el proceso para interactuar de forma correcta con la API de Multivende para tu integración con PIM.

Para realizar tu interacción de forma correcta con la plataforma y permitir que tu integración OMS pueda sacar el máximo provecho de las herramientas que brindamos, es necesario iniciar aprendiendo información básica sobre nuestra API, para eso te pedimos leer 8 artículos básicos sobre la integración:

Artículo 1 - Todo lo que debes saber sobre Integraciones API(Requerido)

Detallamos cuáles son los pasos para que tu aplicación pueda conectarse a la cuenta del merchant y poder empezar a consultar sus datos.

Artículo 2 - API Mutivende - Postman(Requerido)

Conocerás más sobre nuestra API y su documentación en Postman.

Artículo 3 - Requisitos técnicos generales (Requerido):

Encontrarás la información asociada a las consideraciones técnicas que debes tener en cuenta para la integración.

Artículo 4 - ¿Cómo crear productos desde tu sistema a Multivende?(Requerido)

Con información básica (SKUs, Nombre, Variantes)(Recomendado): Te dejamos los endpoint disponibles:

Artículo 5 - ¿Cómo cargar stock vía API?(Requerido)

Encontrarás la información para realizar la sincronización de stock a Multivende. Para hacerlo, debes hacer uso de los endpoints de la sección “stock”, te recomendamos dejar un cron que sincronice los stocks por lo menos una vez al día. Además de una opción para que el usuario pueda ejecutar el proceso manualmente.

Artículo 6 - Actualización de Precios(Requerido)

Podrás obtener la información para realizar la sincronización de precios a Multivende. Para hacerlo, debes hacer uso de los endpoints de la sección “prices”.

 

 

Equipo Integraciones API Multivende

Más información
¿Tu integración es un DTE?

Conoce el proceso para interactuar de forma correcta con la API de Multivende y aprovechar las herramientas disponibles para integrar tu DTE.

Para realizar tu interacción de forma correcta con la plataforma y permitir que tu integración OMS pueda sacar el máximo provecho de las herramientas que brindamos, es necesario iniciar aprendiendo información básica sobre nuestra API, para eso te pedimos leer 8 artículos básicos sobre la integración:

Artículo 1 - Todo lo que debes saber sobre Integraciones API(Requerido)

Detallamos cuáles son los pasos para que tu aplicación pueda conectarse a la cuenta del merchant y poder empezar a consultar sus datos.

Artículo 2 - API Mutivende - Postman(Requerido)

Conocerás más sobre nuestra API y su documentación en Postman.

Artículo 3 - Requisitos técnicos generales (Requerido):

Encontrarás la información asociada a las consideraciones técnicas que debes tener en cuenta para la integración.

Artículo 4 - Registro de ventas desde Multivende: Instrucciones para integrarlas en tu sistema(Requerido)

Conocerás cómo obtener las ventas e iniciar el proceso de logística. Este es un flujo complementario a los webhooks para repasar las ventas en un rango de fechas y horas dadas, se recomienda:

  • Registrar el _id de la venta.
  • Registrar la fecha de la venta en el canal "soldAt".
  • Registrar la fecha de última actualización de la venta en Multivende "updatedAt" para que puedas identificar si la venta ha sido modificada desde la última vez que la obtuviste.
  • Luego de registrar la venta por primera vez se envía el stock actualizado de los productos en ella.

Artículo 5 - ¿Cómo enviar Documentos Tributarios a Multivende? (Requerido)

Detallamos cómo realizar la carga de los documentos electrónicos a las ventas.

 

Equipo Integraciones API Multivende

Más información
¿Tu integración es un Fulfillment / WMS / TMS?

Conoce el proceso para interactuar de forma correcta con la API de Multivende  para tu integración de sistema logístico.

Para realizar tu interacción de forma correcta con la plataforma y permitir que tu integración OMS pueda sacar el máximo provecho de las herramientas que brindamos, es necesario iniciar aprendiendo información básica sobre nuestra API, para eso te pedimos leer 8 artículos básicos sobre la integración:

Artículo 1 - Todo lo que debes saber sobre Integraciones API(Requerido)

Detallamos cuáles son los pasos para que tu aplicación pueda conectarse a la cuenta del merchant y poder empezar a consultar sus datos.

Artículo 2 - API Mutivende - Postman(Requerido)

Conocerás más sobre nuestra API y su documentación en Postman.

Artículo 3 - Requisitos técnicos generales (Requerido):

Encontrarás la información asociada a las consideraciones técnicas que debes tener en cuenta para la integración.

Artículo 4 - ¿Cómo cargar stock vía API?(Requerido)

Encontrarás la información para realizar la sincronización de stock a Multivende. Para hacerlo, debes hacer uso de los endpoints de la sección “stock”, te recomendamos dejar un cron que sincronice los stocks por lo menos una vez al día. Además de una opción para que el usuario pueda ejecutar el proceso manualmente.

Artículo 5 - Registro de ventas desde Multivende: Instrucciones para integrarlas en tu sistema(Requerido)

Conocerás cómo obtener las ventas e iniciar el proceso de logística. Este es un flujo complementario a los webhooks para repasar las ventas en un rango de fechas y horas dadas, se recomienda:

  • Registrar el _id de la venta.
  • Registrar la fecha de la venta en el canal "soldAt".
  • Registrar la fecha de última actualización de la venta en Multivende "updatedAt" para que puedas identificar si la venta ha sido modificada desde la última vez que la obtuviste.
  • Luego de registrar la venta por primera vez se envía el stock actualizado de los productos en ella.

Artículo 6 -Estados de una Orden Según el Tipo de Entrega(Requerido)

Encontrarás la información para poder notificar al canal el estado de manejo de una orden.

Artículo 7 - Generación de etiquetas de los marketplace(Requerido):

Conocerás cómo obtener las etiquetas de las ventas que son despachadas por el marketplace.

 

 

Equipo Integraciones API Multivende

 
Más información
Registro de ventas desde Multivende hacia tu sistema

Conoce las herramientas de Multivende para registrar tus ventas desde la plataforma a tu sistema.

Para registrar las ventas desde Multivende hacia un sistema tenemos a disposición dos herramientas:

  • Webhooks: Son notificaciones en tiempo real que se generan cuando ocurre un evento en Multivende y se envían a la aplicación por medio del Callback_URL.
  • Polling: Es un proceso de consulta de ventas que funciona como complemento del webhook. 

¿Cómo realizar esta implementación?

Consultar ventas

Se debe consultar las ventas de un rango de fechas cada M (Frecuencia de ejecución) horas, estableciendo lo siguiente:

  • from = fecha y hora de la última vez que se ejecutó correctamente el polling (si no se ha ejecutado, desde que fecha y hora se deben consultar las ventas).
  • to = la fecha y la hora actual.
  • M = frecuencia de ejecución (recomendamos usar M = 1 -2 horas).

Debes utilizar el endpoint Get checkouts light whit scroll para realizar el sondeo de las órdenes desde Multivende.
En cada solicitud, se debe enviar el MerchantId.

De manera opcional, puedes filtrar por MarketplaceConnectionId y obtener las ventas utilizando los campos de fecha:

  • UpdatedAt: fecha de última actualización de la orden.
  • SoldAt: fecha de venta en el canal de venta.

También debes definir el límite (limit) de resultados a consultar (valor permitido entre 50 y 1000). Este endpoint permite obtener las ventas del merchant paginadas mediante scroll.

ℹ️ Información: El resultado (response) de la llamada al "Get checkouts light whit scroll" no devuelve las ventas ordenadas por fecha.

⚠️ Advertencia:

Recuerda que, para un correcto registro de tus ventas, debes ejecutar el polling comenzando desde la última vez en que se ejecutó correctamente.
Por ejemplo, si la última ejecución fue el 2025-01-01T02:55:31.000Z, al realizar una nueva solicitud asegúrate de establecer el parámetro from desde esa fecha.

Ten en cuenta que el rango máximo permitido por consulta es de 2 horas.
Si realizas una consulta con un rango mayor, no solo podrías obtener resultados incompletos, sino que además las consultas serán bloqueadas y se retornará un error.

De esta manera, garantizas un registro completo, confiable y dentro de los límites operativos del sistema.

Modos de consulta según funcionalidad a integrar

  1. Sistemas que intervienen en la operación de la orden. Por ejemplo: generación de etiquetas, documentos tributarios, entre otros.
    1. _updated_at_from (buscar en fecha de última actualización en Multivende).
    2. _updated_at_to (buscar hasta la fecha de última actualización en Multivende).
    3. _marketplace_connection_id (opcional, filtra por Marketplace).
       
  2. Sistemas que no intervienen en la operación de la orden. Por ejemplo: reportería, herramientas de BI. 
    1. _sold_at_from (buscar en Fecha de venta en el mercado).
    2. _sold_at_to (buscar hasta la fecha de venta en el Marketplace).
    3. _marketplace_connection_id (opcional, filtra por Marketplace). 
⚠️ Importante: Ésta opción no es recomendada para sistemas del punto 1, ya que puede haber desfase de fechas y horas en las que el canal de venta y Multivende registraron la venta, debido a validaciones en los pagos u algo similar.

Se pueden consultar las ventas cada M = 1 hora, por ejemplo, pasando en los parámetros a continuación:

_updated_at_from --> "from".
_updated_at_to --> "to".

Estos parámetros tienen el formato y la zona horaria en UTC, puedes utilizar los siguientes formatos: 

  • YYYY-MM-DD
  • YYYY-MM-DDTHH:mm
  • YYYY-MM-DDTHH:mm:ss
  • YYYY-MM-DD[T]HH:mm:ss.SSS[Z]

Ejemplo:

Si la fecha actual es “2020-03-18 20:30”, el request sería de la siguiente manera:

curl --location -g '{{base_url}}/api/m/{{merchant_id}}/checkouts/light/limit/{{limit}}?_scroll_id={{scroll_id}}&_updated_at_from=2025-01-01T13:43:00.OOOZ&_updated_at_to=2025-01-02T13:490:00.OOOZ'
--header 'Authorization: Bearer {{access_token}}'
 

En donde este sería el Response:

{
  "entries": [
    {
      "_id": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
      "status": "created",
      "verifyStatus": "verificado",
      "paymentStatus": "completado",
      "soldAt": "2019-10-10T16:12:59.000Z",
      "createdAt": "2019-10-10T16:13:01.000Z",
      "updatedAt": "2019-10-31T22:01:09.000Z",
      "BillingAddressId": null,
      "DeliveryTypeId": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
      "MerchantId": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"
    }
  ],
  "pagination": {
    "limit": 50,
    "scroll_id":XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX,
    "previous_id":XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
  }
}

 

Recomendamos registrar en su sistema los campos updatedAt (Fecha de última actualización en Multivende), soldAt (Fecha de la venta en el canal), y "_id" (identificador de la venta en Multivende), ya que con estos campos se puede comparar en sus registros y validar si es una nueva venta o se debe actualizar.

 

Consultar detalle de venta por "_id"

Una vez se tenga el "_id" de la venta (response anterior), se consulta su detalle con el endpoint Get Checkout.

 
Campos importantes dentro de la venta:
  • Información general de la venta:
    • "_id": identificador de Multivende para la venta.
    • "origin": Nombre del canal desde donde se origina la venta.
    • Fechas:  
      • "soldAt": fecha en que se registró la venta en el canal.
      • "createdAt": fecha en que se registró la venta en Multivende.
      • "updatedAt": fecha en la venta se actualizó por última vez.
    • "courierName": nombre del courier asignado por el canal.
    • "shippingMode": modo logístico que informa el canal.

 

  • "Client" (Información asociada al cliente que realizó la compra):
    • "fullName": Nombre completo.
    • "name": Nombre.
    • "lastName": Apellido
    • "comune": Comuna.
    • "city": Ciudad.
    • "documentType": Tipo de documento.
    • "taxId": RUT o DNI.
    • "email":  Correo electrónico.
    • "phoneNumber" Número telefonico.
  • "BillingAddresses" (Dirección de facturación - Se encuentra dentro del "Client")
    • "address_1" - "address_2": Direcciones.
    • "zipCode":  Código Postal.
    • "city":  Ciudad.
    • "country": País.
    • "neighborhood":  Comuna - Barrio.
    • "state": Estado.

 

  • "CheckoutLink" (Trae la información asociada al canal remoto):

    • "externalId": Contiene el "id" del pedido remoto.
    • "externalOrderNumber"  Contiene el número del pedido remoto.
    • "externalCustomerOrderNumber":  Contiene el número del pedido remoto que es visible para el cliente final.
    • "externalContent": Contiene la información JSON del pedido remoto externo, que se toma de la API de integración.
       
    ⚠️ Importante: 
    El campo "externalContent" devuelve la información nativa del canal. Por favor, NO tomes los datos de este campo. 

    De ser necesario, comunicarse previamente con el equipo de Integraciones API Multivende.

     

  • "CheckoutItems"
    • Información asociada a los productos que se compraron. Devuelve un array por cada item.
      • "CheckoutItems" -> "ProductVersion" -> "code": SKU del item.

 

  • Prices by item: (Estos se encuentran dentro del campo "CheckoutItems")
    • "gross": Precio del artículo (sin descuento).
    • "count": Cantidad solicitada del SKU.
    • "total": Total neto (gross * count).
    • "discount": Descuento aplicado al producto.
    • "totalWithDiscount":Total neto menos descuento (total  - discount)
       
Información asociada a los precios totales de la orden
  • "total": Importe Total Bruto (Sin descuentos de venta, incluye descuentos por artículo)
  • "totalDiscounts": Cantidad total de descuentos
  • "totalWithDiscount": Importe Neto Total (Con descuento)
  • "totalPayment": Importe Neto Total (Con descuento + envío)
  • "DeliveryOrder" -> "cost": Importe Total Envío del pedido (Flete)

 

  • "CheckoutPayments"
    • Información asociada a los pagos y métodos de pagos de la orden.
  • "DeliveryOrdersInCheckouts": Se refiere a la venta con despachos, el cual es un arreglo que detalla toda la información de los despachos de la venta.
    • Cada despacho viene dentro de un objeto que se llama DeliverOrder. En el objeto se encuentra la dirección de despacho dentro del objeto ShippingAddress.

  • PickUpOrders: Se refiere a la venta con retiro en tienda, el cual es un arreglo que detalla toda la información del retiro en tienda para la venta.


Importante: 

  • Multivende mantiene la misma estructura, pero los datos pueden variar según el canal. Por ejemplo:
  • Los campos DeliveryOrdersInCheckouts y PickUpOrders son arrays dado que una venta puede tener más de un despacho o retiro en tienda asociado.
  • Una venta puede contener tanto “DeliveryOrdersInCheckouts” (Despachos) como “PickUpOrders” (Retiros en tienda) esto siempre y cuando el canal lo permita.
  • Get delivery order types: Tipos de entrega  para una orden.
     

Ejemplos:

1. El campo country puede tener el valor CL o Chile.
2. El campo indication puede llegar el detalle de la calle y casa y en otra venta llegar separado en el campo calle y número.

  • Entrega con despacho

Podemos consultar el detalle de la orden para tomar la data relevante para la operación logística mediante el endpoint  delivery order.

  • Entrega con retiro en tienda

Podemos consultar el detalle de la orden para tomar la data relevante para la operación logística mediante el endpoint pickup order.

  • Entrega Mixta

Se consultan ambos endpoints de acuerdo al tipo de entrega de cada producto.

 

Consideraciones importantes

  • A través de los webhooks las apps resultan más eficientes, porque identifican cuando se produce un cambio en tiempo real y entonces, puede hacer las solicitudes periódicas en un rango de tiempo más amplio a la API para obtener el contenido actualizado.
  • Si quieres evitar las actualizaciones masivas que los canales hacen de forma repentina,
    puedes agregar una validación que limite "sold_at" a un rango de 1 a 2 meses.
  • Los webhooks se deben complementar con un polling para disminuir la probabilidad de pérdida de datos. (Actualmente no estamos realizando re intentos que aseguren el delivery de la notificación).
  • Deben validar siempre desde webhooks y polling que el id de la venta informado ya se encuentre registrado en tu sistema para ver si la creas o actualizas.
  • Validar para actualizar si la fecha de updateAt es diferente a la que tienes registrada.
  • Para determinar el estado de un despacho, no se debe validar el campo deliveryStatus.
    En su lugar, siempre se debe utilizar el campo deliveryOrderStatusId, ya que este contiene los estados normalizados en Multivende de acuerdo con la información proporcionada por el canal de venta. 

Ventas con errores:

Es posible consultar los ids de las ventas que no se registraron en Multivende por motivos de error durante el registro, esto puede funcionar como una auditoría. Para realizar la consulta de estos ids pueden realizar un request al endpoint Get checkouts with error

La respuesta de la api dará una descripción del error que causó el no registro correspondiente de la orden. Recordar que cuando la orden es corregida, se lleva a cabo el registro de la misma con un id diferente.

Response: 

{
  "entries": [
    {
      "_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx",
      "externalId": "XXXXXXX",
      "externalContent": null,
      "error": "StatusCodeError: 404 - {\"cause\":\"\",\"message\":\"Order do not exists\",\"error\":\"order_not_found\",\"status\":404}\n at new StatusCodeError (...)",
      "archived": "disabled",
      "count": 0,
      "status": null,
      "eventStatus": "error",
      "type": null,
      "createdAt": "2021-05-22T04:29:46.000Z",
      "updatedAt": "2021-05-22T04:29:46.000Z",
      "MerchantId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx",
      "MarketplaceConnectionId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx",
      "CreatedById": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx",
      "UpdatedById": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx"
    },
    {
      "_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx",
      "externalId": "XXXXXXX",
      "externalContent": null,
      "error": "StatusCodeError: 404 - {\"cause\":\"\",\"message\":\"Order do not exists\",\"error\":\"order_not_found\",\"status\":404}\n at new StatusCodeError (...)",
      "archived": "disabled",
      "count": 0,
      "status": null,
      "eventStatus": "error",
      "type": null,
      "createdAt": "2021-05-22T04:11:37.000Z",
      "updatedAt": "2021-05-22T04:11:37.000Z",
      "MerchantId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx",
      "MarketplaceConnectionId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx",
      "CreatedById": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx",
      "UpdatedById": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx"
    }
  ]
}

 

 

Flujo de la consulta

 

 

 

Equipo Integraciones API Multivende

 
Más información
Información de facturación: Cómo consultarla y entenderla

En este artículo detallamos la información de la facturación referente a una venta según el Canal.

Lo primero que debes realizar es consultar la orden enviando el ID mediante el Endpoint Get Checkout, los detalles para la información de facturación puedes obtenerla dentro de nuestros campos normalizados en Multivende, consultando dentro de "Client" donde podrás obtener todos los datos relacionados al cliente y dentro del campo "BillingAddresses" los detalles en relación a la dirección de facturación.

"Client": {
  "fullName": "",
  "_id": "a8e48e5c-XXXX-4dab-9ec3-XXXXXXXXXXXX",
  "name": "",
  "lastName": "",
  "activity": null,
  "contactName": null,
  "comune": null,
  "city": null,
  "documentType": null,
  "taxId": "XXXXXXXX-X",
  "birthday": null,
  "code": null,
  "email": null,
  "phoneNumber": null,
  "comment": null,
  "type": "person",
  "tags": null,
  "status": "created",
  "createdAt": "2020-11-04T19:32:04.000Z",
  "updatedAt": "2020-11-04T19:32:04.000Z",
  "CreatedById": "af718539-XXXX-4413-8c83-XXXXXXXXXXXX",
  "UpdatedById": "68a88914-XXXX-414e-9d3c-XXXXXXXXXXXX",
  "ClientId": "a8e48e5c-XXXX-4dab-9ec3-XXXXXXXXXXXX",
  "MerchantId": "be133293-XXXX-4f01-822a-XXXXXXXXXXXX",
  "BillingAddresses": [
    {
      "_id": "30feddc9-XXXX-4951-816b-XXXXXXXXXXXX",
      "name": "Full Name",
      "address_1": "Coquimbo - IV - Coquimbo, Chile",
      "address_2": "General Bartolome Blanche XXX",
      "description": null,
      "indications": null,
      "position": 0,
      "status": "created",
      "importance": "principal",
      "createdAt": "2023-03-10T13:02:10.000Z",
      "updatedAt": "2023-03-10T13:02:10.000Z",
      "CreatedById": "af718539-XXXX-4413-8c83-XXXXXXXXXXXX",
      "UpdatedById": "68a88914-XXXX-414e-9d3c-XXXXXXXXXXXX",
      "ClientId": "a8e48e5c-XXXX-4dab-9ec3-XXXXXXXXXXXX",
      "MerchantId": "be133293-XXXX-4f01-822a-XXXXXXXXXXXX"
    }
  ]
}
    • Para identificar la información de facturación del cliente debes consultar el campo "CheckoutBillingClients"
"CheckoutBillingClients": [
  {
    "_id": "9f1839df-XXXX-4a05-XXXX-2e4024XXXXXX",
    "name": "Multivende",
    "taxName": null,
    "taxActivity": null,
    "taxId": "XXXXXXXXX",
    "documentType": "RUT",
    "legalRepresentative": null,
    "legalRepresentativeTaxId": null,
    "email": null,
    "phoneNumber": null,
    "type": "company" or "person"
    "status": "created",
    "createdAt": "2024-01-12T12:41:08.000Z",
    "updatedAt": "2024-01-12T12:41:08.000Z",
    "BillingAddressId": "02e22a7b-7850-4204-8728-78a888ae09c7",
    "CheckoutId": "0d85a156-9c81-XXXX-XXXX-7908e8XXXXXX",
    "CreatedById": null,
    "UpdatedById": null,
    "MerchantId": "4df759c7-XXXX-4cad-XXXX-a5e954XXXXXX"
  }
]
 
ℹ️ Información: Dentro del campo "type" se informará si corresponde a persona ("person") o compañía ("company"), pero debes tener en consideración que no todos los canales de venta informan esto, por consiguiente este campo llegaría como "person" por defecto.
 
Si necesitas obtener la información para saber si una venta corresponde a boleta o factura, actualmente esta información no la tenemos estandarizada como campo de Multivende.
Se debe tomar del "CheckoutLink" --> "externalContent".
 
Puedes identificar el canal de venta consultando el campo "origin". A partir de allí se debe identificar la información de acuerdo a cada Marketplace:
 

Dafiti  y Falabella

Esta se informa dentro del campo "InvoiceRequired"

  • Boleta:
{
  "InvoiceRequired: "false",
}
  • Factura:
{ 
"InvoiceRequired: "true",
}

Mercadolibre

Se informa dentro de:

"remote_order_extra_billing_information" → "buyer" → "attributes" → "cust_type"
  • Si la orden de compra es una Persona Física (Cliente) llegará de la siguiente manera:
{ "remote_order_billing_information": 
{ "buyer":
{ "billing_info":
{ "attributes":
{ "cust_type": "CO"
}
}
}
}
}
  • Si la orden de compra es una Persona Jurídica (Empresa) llegará de la siguiente manera:
{ "remote_order_billing_information": 
{ "buyer":
{ "billing_info":
{ "attributes":
{ "cust_type": "BU"
}
}
}
}
}
ℹ️ Información: Cuando una orden es del tipo 'Fulfillment', la facturación es gestionada directamente por MercadoLibre. Por lo tanto, el merchant no debe emitir factura, y en consecuencia, no verás los campos mencionados anteriormente.

Paris

Se informa dentro del campo "originInvoiceType".

  • Boleta:
{
  "originInvoiceType: "boleta,
}
  • Factura:
{
  "originInvoiceType: "factura,
}

 

Ripley

Se informa dentro del campo "has_invoice"

  • Boleta:
{
  "has_invoice: "false,
}
  • Factura:
{
  "has_invoice: "true",
}

 

Shopify

Se informa dentro de los campos "CheckoutLink" --> "tags"

"tags": [
  "FACTURA",
]

 

VTEX

Se informa dentro del campo "clientProfileData" --> "isCorporate"

{
  "isCorporate: true // Factura
}

 

 

 

Equipo Integraciones API Multivende

Más información
¿Cómo enviar Documentos Tributarios a Multivende?

Conoce cómo cargar documentos tributarios a través de la API de Multivende.

 
Subir documentos electrónicos a las ventas

Se pueden adjuntar archivos tanto las ventas (Checkouts) como los despachos (DeliveryOrder) en formato PDF con un peso máximo de 1MB, para ello se requiere identificar los respectivos _ids de la venta o del despacho.

Primero se tiene que crear un registro en Multivende del DTE usando el siguiente endpoint Create checkout electronic billing document, dentro del body estarás enviando la siguiente información: 

Request:

curl --location -g '{{base_url}}/api/checkouts/{{checkout_id}}/electronic-billing-documents' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {{access_token}}' \
--data '{
  "ClientId": "{{client_id}}",
  "id": "XXXXXXX",
  "emissionDate": "2019-03-01",
  "type": "electronic_billing_electronic_bill",
  "provider": "test_provider_code",
  "ElectronicBillingDocumentEmitterId": "{{electronic_billing_document_emitter_id}}"
}'

Response:

{
  "_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx",
  "status": "created",
  "ClientId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx",
  "id": "8877777",
  "emissionDate": "2019-03-01T00:00:00.000Z",
  "ElectronicBillingDocumentEmitterId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx",
  "CreatedById": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx",
  "UpdatedById": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx",
  "MerchantId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx",
  "ElectronicBillingDocumentTypeId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx",
  "ElectronicBillingDocumentProviderId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx",
  "CheckoutId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx",
  "updatedAt": "2019-08-29T15:26:33.000Z",
  "createdAt": "2019-08-29T15:26:33.000Z"
}

Una vez se cree el registro del DTE, con el "_Id" del response, se adjuntan los archivos, tenemos dos endpoints que permiten realizar la carga de archivos en  pdf o base64:

La carga de los DTE desde Multivende a los canales de venta se tiene habilitado para:

  • Mercado Libre
  • Paris
  • Ripley
  • Falabella
  • Coppel
  • Walmart (Habilitado sólo para México)
  • VTEX

A continuación te detallamos algunas consideraciones a tener en cuenta en la carga de los documentos tributarios para los siguientes canales de ventas: 

Consideraciones para VTEX

En el caso de VTEX se envía el documento tributario al canal, solo cuando esta cargado el PDF y luego se marca la orden como enviada.

Consideraciones para Falabella

La creación del registro del DTE y posterior subida solo es permitida cuando la orden se encuentra en los siguientes estados:

  • "ready_to_ship"
  • "delivered"
  • "shipped"

De lo contrario el documento quedará con error de sincronización.

A partir del 28 de febrero de 2025, Falabella solo admite la carga del documento tributario en formato PDF, por lo que para este canal debes realizar la subida del documento en este formato.

Consideraciones para Walmart México

Deben esperar a que la orden tenga la información de facturación dentro del campo"billingClient" para poder realizar la generación del DTE, ya que, un cliente puede solicitar factura dentro de los 30 días próximos a la venta; es en ese entonces cuando deben realizar la generación del documento correspondiente.

En el caso de Walmart debes realizar previamente la configuración de Apolo en Multivende, en este artículo encontrarás los pasos a seguir.

 

 

Subir documentos electrónicos a los despachos

Primero se tiene que crear el registro en Multivende del DTE usando el siguiente endpoint Create delivery order electronic billing document 

Para lo que se requiere conocer:

curl --location -g '{{base_url}}/api/delivery-orders/{{delivery_order_id}}/electronic-billing-documents' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {{access_token}}' \
--data '{
  "ClientId": "{{client_id}}",
  "id": "XXXXXXX",
  "emissionDate": "2019-03-01",
  "type": "electronic_billing_electronic_bill",
  "provider": "test_provider_code",
  "ElectronicBillingDocumentEmitterId": "{{electronic_billing_document_emitter_id}}"
}'

 

Response: 

{
  "_id": "xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "status": "created",
  "ClientId": "xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "id": "8877777",
  "emissionDate": "2019-03-01T00:00:00.000Z",
  "ElectronicBillingDocumentEmitterId": "xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "CreatedById": "xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "UpdatedById": "xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "MerchantId": "xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "ElectronicBillingDocumentTypeId": "xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "ElectronicBillingDocumentProviderId": "xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "DeliveryOrderId": "xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "updatedAt": "2019-08-29T15:27:24.000Z",
  "createdAt": "2019-08-29T15:27:24.000Z"
}

Una vez se cree el registro del DTE, con el _id del response, se adjunta como tal los archivos (.pdf, .zip, entre otros) por medio del endpoint Upload file to electronic billing document.

Códigos de tipos (type) permitidos para los DTEs

  • electronic_billing_electronic_invoice (Factura Electrónica)
  • electronic_billing_not_taxed_electronic_invoice (Factura Electrónica Exenta)
  • electronic_billing_electronic_bill (Boleta Electrónica)
  • electronic_billing_not_taxed_electronic_bill (Boleta Electrónica Exenta)
  • electronic_billing_not_taxed_debit_note
  • electronic_billing_not_taxed_credit_node

Para los Providers (proveedor)

Esta información se tiene que canalizar vía correo api@multivende.com solicitando un código de proveedor según el proveedor (generador de boletas) que estén usando. Enviando la siguiente información:

  • Sistema DTE.
  • Empresa desarrolladora de la integración.
  • Merchant ID.

Multivende genera el código y lo informa de vuelta en el correo de la solitud.

Para los Emisores de documentos (ElectronicBillingDocumentEmitterId)

Puedes seguir los pasos del siguiente artículo ¿Cómo crear un emisor de documentos?.  En caso de cualquier duda comunicarse con onboarding@multivende.com , ellos lo asistirán en la generación de este identificador.

Si deseas realizar este proceso via API, puedes crear el emisor de documentos mediante el endpoint Create electronic billing document emitter enviando los siguientes campos:

{
  "name": "nombre asociado al emisor de documentos",
  "code": "código",
  "taxId": "RUT/NIT",
  "taxName": "razón social"
}

*Rellena el campo código con 01111

En la respuesta del endpoint puedes identificar el _id asociado al emisor del documento electrónico, este proceso se realiza sólo una vez y el emisor de documento electrónico queda asociado a la cuenta del merchant.

 

Response: 

{
  "_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx",
  "status": "created",
  "name": "Test emitter",
  "code": "01010",
  "taxId": "76449667-3",
  "taxName": "Test emitter SPA",
  "MerchantId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx",
  "updatedAt": "2019-08-28T19:58:12.000Z",
  "createdAt": "2019-08-28T19:58:12.000Z"
}

 

Puedes consultar el _id del emisor de documento asociado a la cuenta de un merchant mediante el endpoint: Get electronic billing document emitters

Consulta de documentos electrónicos

Para consultar los documentos electrónicos de una orden puedes consultar al siguiente endpoint Get electronic billing documents of a checkout

Consideraciones para tipos de envío Fulfillment

Si se trata de una orden de tipo Fulfillment, recuerda que para verificar el tipo de envío debes consultar el campo "shippingMode".

{
  "shippingMode": "fulfillment"
}

Paris

  • El seller debe solicitar la configuración de Fulfillment a Paris, y el canal se encarga de emitir la boleta.

Mercadolibre:

  • Argentina, Colombia y México, el vendedor puede generar la factura.
  • Brasil y Chile, Mercado Libre siempre genera la factura.

Falabella

  • Falabella se encarga de la emisión de la boleta.

Ripley

  • Para registrar tus ventas de Fulfillment by Ripley desde Multivende, es necesario que tengas una cuenta nueva creada en Ripley. Asegúrate de tener este requisito cumplido antes de solicitar la integración. La boleta es generada por el marketplace para estas ventas.

 

 

Equipo Integraciones API Multivende

 
Más información
¿Cómo funcionan los medios de pago?

En este artículo mostramos como obtener la información del pago realizado por el comprador en la venta.

Esta información la obtenemos mediante los siguientes Endpoints que tenemos disponibles dentro de nuestro Servicios de Integración de Multivende.

Obtener la información del pago de una venta

  • Get checkout: Adicional a obtener los detalles de una venta, tales como datos del cliente y facturación puedes encontrar los detalles del pago consultando el campo "CheckoutPayments" aquí podrás visualizar los métodos de pago utilizados en la venta.

Ejemplo Response: 

"CheckoutPayments": [
  {
    "_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx",
    "code": "xxxxxxxxxxx",
    "amount": 59600,
    "amountPaid": 59600,
    "change": 0,
    "paymentStatus": "completed",
    "authorizationCode": null,
    "detail": null,
    "status": "created",
    "verificationStatus": "verified",
    "cardNumber": null,
    "installments": 1,
    "datePaid": null,
    "dateVerificated": null,
    "createdAt": "2021-05-10T18:31:28.000Z",
    "updatedAt": "2021-05-10T18:51:23.000Z",
    "CreatedById": null,
    "UpdatedById": null,
    "CheckoutId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx",
    "PaymentMethodId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx",
    "CurrencyId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx",
    "MerchantId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx",
    "PaymentMethod": {
      "_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx",
      "tags": "{\n \"requiresTransaction\": false\n }",
      "code": "_payment_methods_online_payment",
      "name": "PAYMENT_METHODS.Online_payment.Name",
      "description": "PAYMENT_METHODS.Online_payment.Description",
      "position": 12,
      "status": "created",
      "createdAt": null,
      "updatedAt": null,
      "codeTranslated": "Pago en línea"
    },
    "CheckoutPaymentLinks": [
      {
        "_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx",
        "externalId": "xxxxxxxxxxx",
        "transactionId": "xxxxxxxxxxx",
        "externalContent": "",
        "synchronizationStatus": "synchronized",
        "status": "created",
        "createdAt": "2021-05-10T18:31:28.000Z",
        "updatedAt": "2021-05-10T18:31:28.000Z",
        "CreatedById": null,
        "UpdatedById": null,
        "MarketplaceConnectionId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx",
        "MerchantId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx",
        "CheckoutPaymentId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx"
      }
    ]
  }
]

 

Métodos de Pago

  • Get checkout payment methods: Se detallan los métodos de pago asociados a la cuenta del Merchant, enviando dentro del Request el MerchantId se listará el ID del método de pago, nombre, descripción, entre otros. Los cuales son estándar para todos los merchants de Multivende y puedes dejarlos preconfigurados al realizar la integración para homologarlos con los de la aplicación.

 

Ejemplo Response: 

[  
{   
"_id": "a4135228-a10c-11e6-bfdf-2c56dc130c0d",     
"tags": "{\n  \"requiresTransaction\": false\n}",     
"code": "_payment_methods_cash",     
"name": "PAYMENT_METHODS.Cash.Name",     
"description": "PAYMENT_METHODS.Cash.Description",     
"position": 0,     
"status": "created",     
"createdAt": null,     
"updatedAt": null   },   {     
"_id": "0f5b5e2f-a10d-11e6-bfdf-2c56dc130c0d",     
"tags": "{\n  \"requiresTransaction\": true\n}",     
"code": "_payment_methods_credit_card",     
"name": "PAYMENT_METHODS.Credit_card.Name",     
"description": "PAYMENT_METHODS.Credit_card.Description",     
"position": 1,     
"status": "created",     
"createdAt": null,     
"updatedAt": null  
},  
{   
"_id": "a41369d7-a10c-11e6-bfdf-2c56dc130c0d",     
"tags": "{\n  \"requiresTransaction\": true\n}",     
"code": "_payment_methods_debit_card",     
"name": "PAYMENT_METHODS.Debit_card.Name",     
"description": "PAYMENT_METHODS.Debit_card.Description",     
"position": 2,     
"status": "created",     
"createdAt": null,     
"updatedAt": null  
}
]

 

Actualizar información del pago de una venta

  • Update checkout payment: Te permite actualizar los detalles de un pago, no es obligatorio enviar todos los campos del cuerpo. Solo se deben enviar aquellos que necesitan ser actualizados.

Los valores permitidos para enviar dentro del campo “verificationStatus” es "verified" o "pending"

 

Nota: esta funcionalidad sólo es permitida para las integraciones que son de tipo Canal de venta, las cuales pueden notificar los estados de los pagos hacia Multivende. 

 

Ejemplo Request:

curl --location -g --request PUT '{{base_url}}/api/checkout-payments/{{checkout_payment_id}}' \
--header 'Authorization: Bearer {{access_token}}' \
--header 'Content-Type: application/json' \
--data '{
  "verificationStatus": "pending",
  "authorizationCode": 12345,
  "detail": "detail",
  "cardNumber": 1234567,
  "installments": 12
}'
 

Ejemplo Response:

{
  "_id": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
  "code": "14514653588",
  "amount": 4990,
  "amountPaid": 4990,
  "change": 0,
  "paymentStatus": "completed",
  "authorizationCode": 12345,
  "detail": "detail",
  "status": "created",
  "verificationStatus": "pending",
  "cardNumber": 1234567,
  "installments": 12,
  "datePaid": null,
  "dateVerificated": null,
  "createdAt": "2021-04-19T16:44:58.000Z",
  "updatedAt": "2021-11-10T19:23:07.000Z",
  "CreatedById": null,
  "UpdatedById": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
  "CheckoutId": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
  "PaymentMethodId": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
  "PaymentGatewayId": null,
  "CurrencyId": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
  "MerchantId": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"
}

 

 

 

Equipo Integraciones API Multivende

Más información
¿Cómo se registra una venta de Kit que proviene de MercadoLibre?

Cuando un comprador adquiere un Kit (Pack) en MercadoLibre, se genera una única venta que represente al kit completo.

En su lugar:

  • MercadoLibre crea una orden de venta por cada ítem que compone el kit.
  • Todas esas órdenes:
    • Corresponden a una misma venta en Multivende
    • Están relacionadas entre sí
    • Comparten información común como el envío y el pack

Implicaciones importantes:

  • Siempre habrá múltiples órdenes para una venta de kit en Mercadolibre lo que en Multivende se traduce como un mismo checkout, debido a que Mercadolibre los asocia como un mismo pack. 
  • Cada orden representa un producto específico del kit y el descuento del stock va asociado a cada ítem componente del kit. Esto quiere decir que las órdenes de kit van a mostrar los productos componentes del pack y no el pack en si.
     

Flujo general para identificar una venta de Kit vía API Multivende:

El proceso recomendado para un integrador de Multivende es el siguiente:

  1. Leer la venta usando el endpoint de Get Checkout
  2. Validar si la orden corresponde a un Kit mediante el campo tags, dentro de esta respuesta, se debe revisar el campo "tags": "pack_order,kit_component,kit,paid,not_delivered,test_order".

Tags clave a validar:

  • Kit
  • Kit_component

Interpretación: Si alguno de estos tags está presente, la venta contiene productos de kit.

  1. Si deseas identificar todas los números de las órdenes de Mercadolibre relacionadas al Kit lo puedes hacer usando externalContent -> kit_orders, esto es un paso no requerido.

Este campo contiene un arreglo con la información de cada orden que compone el kit.

Ejemplo de kit_orders:

"kit_orders": [
  {
    "order_id": 200001408888XXXX,
    "item_id": "MLB595574XXXX",
    "variation_id": null,
    "pack_id": 20000103169XXXX,
    "shipment_id": 4598979XXXX,
    "parent_item_id": "MLB595731XXXX"
  },
  {
    "order_id": 20000140888XXXX,
    "item_id": "MLB595581XXXX",
    "variation_id": null,
    "pack_id": 200001031698XXXX,
    "shipment_id": 4598979XXXX,
    "parent_item_id": "MLB595731XXXX"
  },
  {
    "order_id": 200001408888XXXX,
    "item_id": "MLB595585XXXX",
    "variation_id": null,
    "pack_id": 200001031698XXXX,
    "shipment_id": 4598979XXXX,
    "parent_item_id": "MLB595731XXXX"
  }
]

Cada objeto dentro de kit_orders representa una orden individual del kit:

Campo Descripción
order_id ID de la orden individual del componente
item_id ID del producto vendido
variation_id ID de la variación (si aplica)
pack_id Identificador único del Kit (Pack)
shipment_id ID del envío compartido
parent_item_id ID del ítem principal del Kit
  • Todos las órdenes comparten el mismo: 
    • Pack_id
    • shipment_id , ya que se envían juntos
    • parent_item_id,  identifica el producto principal del Kit
       

Cualquier duda o consulta adicional referente a este artículo, puedes escribirnos a api@multivende.com.

Más información
Carga de ventas de canales via API: Tutorial Completo

Descubre cómo cargar una venta en Multivende paso a paso en este artículo.

 
Luego de completar la configuración de la relación entre las plataformas y publicado los productos, se podrán registrar nuevas órdenes vía API si cuenta con los permisos necesarios para administrar las ventas de la conexión realizada.

Para poder registrar una venta se deben cumplir las siguientes condiciones:

  1. El producto debe estar registrado en Multivende.
  2. Los "id" deben ser únicos por conexión.
  3. Validar antes al momento de realizar el pago de la orden el stock.

A continuación, se detalla los campos que deben enviar a través del endpoint Created checkout

Detalles de los campos a enviar para crear una venta:

  • "id": Identificador único de la orden en el canal. 
  • "orderNumber": Número de orden entregado al Merchant.
  • "customerOrderNumber": Número de orden entregado al cliente.
  • "externalCreatedAt": Fecha de creación de la orden en el canal (Ver formato valido).
  • "externalUpdatedAt": Fecha de última actualización de la orden en el canal (Ver formato valido).
  • "soldAt": Fecha de venta (Ver formato valido).
  • "currencyCode": Moneda en la cual se realizó la venta (Ver valores validos).
  • "comment": Comentarios de la orden. (Opcional).
  • "net": Precio de venta total sin impuestos, descuentos y costo de envío. (Opcional).
  • "tax": Impuestos. (Opcional).
  • "total": Precio de venta total con impuestos, sin descuentos y sin costo de envío.
  •  "discounts": Array de descuentos aplicados a la venta, no se deben incluir los descuentos por item. (Opcional).
    • "detail": Detalles del descuento.
    • "discount": Valor del descuento.
    • "discountType": Tipo de descuento (Ver valores validos).
  • “externalContent”: JSON en formato string del detalle de la orden en el canal.
  • "client":
    • "id": Identificador único del cliente en el canal.
    • "documentType": Tipo de documento. (Opcional).
    • "taxId": Número de identificación nacional (Rut, pasaporte, DNI, etc).
    • "name".
    • "lastName".
    • "contactName".
    • "activity": Actividad a la que se dedica (Rubro, etc). (Opcional).
    • "birthday": Fecha de cumpleaños. (Opcional).
    • "email". (Opcional).
    • "phoneNumber". (Opcional).
    • "type": Tipo de cliente (Ver valores validos).
  • "billingClient": 
    • "name": "company or client name",
    • "taxName": "company name",
    • "taxActivity": "company activity",
    • "taxId": "document number",
    • "documentType": "document type",
    • "legalRepresentative": "legalRepresentative name",
    • "legalRepresentativeTaxId": "999999999",
    • "email": "email@mail.cl",
    • "phoneNumber": "5555555555",
    • "type": "company or person",
    • "billingAddress": 
      • "name":"company name",
      • "address_1": "address_1",
      • "address_2": "address_2",
      • "indications": "indications",
      • "description": "description",
      • "importance": "principal" 
  • "checkoutItems": Array dónde se debe enviar los ítems de la venta con el precio de venta.
        • "sku": sku del productVersion.
        • "quantity": cantidad total de ítems en la venta.
        • "unitPrice": Precio de venta total del item con impuestos, sin descuentos y sin costo de envío.
        • "net": Precio total del item sin impuestos, descuentos y costo de envío. (Opcional).
        • "tax": Impuestos. (Opcional).
        •  "discounts": Array de descuentos aplicados al item, este descuento no se debe incluir en el array de discounts de la venta.
          • "detail": Detalles del descuento.
          • "discount": Valor del descuento.
          • "discountType": Tipo de descuento (Ver valores validos).
 
  • "deliveryOrders": Array de las diferentes entregas a domicilio de una orden. En el caso que la orden no tenga despacho a domicilio se debe enviar el array vacio.
    • "id": Identificador único de la orden de despacho en el canal.
    • "externalContent": JSON en formato string del detalle de la orden de despacho en el canal.
    • "createdAt": Fecha de creación de la orden de despacho en el canal (Ver formato valido).
    • "updatedAt": Fecha de última actualización de la orden de despacho en el canal (Ver formato valido).
    • "shippingMode": Modalidad Logística. (Opcional).
    • "courierName": Nombre del courier. (Opcional).
    • "trackingNumber": Número de tracking del courier. (Opcional).
    • "trackingContent": Detalles del tracking. (Opcional).
    • "cost": Costo del despacho con impuestos.
    • "estimatedDeliveryDateFrom": Fecha inicial del rango de entrega (Ver formato valido).
    • "estimatedDeliveryDateTo": Fecha límite para entrega (Ver formato valido).
    • "effectiveDeliveryClosingDate": Fecha en que se entregó la orden de despacho (Ver formato valido, opcional).
    • "promisedDeliveryDate": Fecha de promesa de entrega al cliente (Ver formato valido).
    • "handlingDateLimit": Fecha límite de entrega al Courier (Ver formato valido).
    • "comment": Comentarios para la orden de despacho. (Opcional).
    • "deliveryOrderStatus": Estado de la orden de despacho, se detalla más adelante los valores permitidos (Ver valores permitidos).
    • "shippingAddress": Dirección donde se debe despachar la orden.
      • "address_1": Dirección.
      • "address_2": Dirección. (Opcional).
      • "neighborhood": Comuna.
      • "number": Numeración de la calle.
      • "street": Calle.
      • "country": País.
      • "state": Región.
      • "city": Ciudad.
      • "zipCode":  Código postal. 
      • "description": (Opcional).
      • "indications": Indicaciones para ubicar la dirección. (Opcional).
    • "shippingAddressReceiver": Datos de la persona que recibirá la orden de despacho.
      • "documentType": Tipo de documento. (Opcional).
      • "taxId": Número de identificación nacional (Rut, pasaporte, DNI, etc). (Opcional).
      • "name".
      • "lastName".
      • "contactName”.
      • "email”. (Opcional).
      • "phoneNumber". (Opcional).
    • "deliveryOrderItems": Array de ítems que se van a entregar en la orden de despacho indicando la cantidad y bodega donde se va a descontar el stock.
      • "sku": sku del productVersion.
      • "quantity": Cantidad de ítems a descontar de la bodega indicada.
      • "fulfilledWarehouseId": Id de la bodega donde se descontará el stock, este Id se obtiene de la configuración inicial para el mapeo de las bodegas. 
  • "pickUpOrders": Array de las diferentes entregas con retiro. En caso que la orden no tenga retiro en tienda se debe enviar el array vacio.
    • "id": Identificador único de la orden de retiro en el canal.
    • "externalContent": JSON en formato string del detalle de la orden de retiro en el canal.
    • "createdAt": Fecha de creación de la orden de retiro en el canal.
    • "updatedAt": Fecha de última actualización de la orden de retiro en el canal.
    • "cost": Costo por retiro con impuestos. 
    • "estimatedPickUpDateFrom": Fecha inicial del rango de retiro (Ver formato valido).
    • "estimatedPickUpDateTo": Fecha límite para el retiro (Ver formato valido).
    • "effectivePickUpClosingDate": Fecha en que se entregó la orden de retiro. (Ver formato valido, opcional).
    • "comment": Comentarios para la orden de retiro. (Opcional).
    • "pickUpOrderStatus": Estado de la orden de retiro, se detalla más adelante los valores permitidos (Ver valores validos).
    • "warehouseId": Id de la tienda en Multivende donde se va a retirar la orden.
    • "pickUpOrderPicker": Datos de la persona que retirará la orden de retiro.
      • "documentType": Tipo de documento. (Opcional).
      • "taxId": Número de identificación nacional (Rut, pasaporte, DNI, etc). (Opcional).
      • "name".
      • "lastName".
      • "contactName”.
      • "email”. (Opcional).
      • "phoneNumber". (Opcional).
    • "pickUpOrderItems": Array de ítems que se van a entregar en la orden de retiro indicando la cantidad y bodega donde se va a descontar el stock.
      • "sku": sku del productVersion.
      • "quantity": Cantidad de ítems a descontar de la bodega indicada.
      • "fulfilledWarehouseId": Id de la bodega donde se descontará el stock, este Id se obtiene de la configuración inicial para el mapeo de las bodegas. 
  • "checkoutPayments": Array con los pagos registrados en la orden.
    • "id": Identificador único del pago en el canal.
    • "transactionId": Número de transacción.
    • "code": Código de transacción. (Opcional).
    • "paymentStatus": Estado del pago (Ver valores validos).
    • "datePaid": Fecha de pago (Ver formato valido).
    • "amountPaid": Monto pagado.
    • "installments": Cantidad de cuotas. (Opcional).
    • "cardNumber": Número de tarjeta. (Opcional).
    • "authorizationCode": Código de autorización.
    • "detail": Detalles del pago. (Opcional).
    • "verificationStatus": Estado de verificación del pago (Ver valores permitidos).
    • "dateVerificated": Fecha cuando se verificó el pago (Ver formato valido).
    • "externalContent": JSON en formato string del detalle del pago en el canal.
    • "paymentMethodCode": Código del método de pago registrado en el mapeo inicial de configuración, se detalla más adelante los valores permitidos (Ver valores permitidos).

A continuación, te detallamos los valores válidos para los campos

Global

  • Formato para las fechas, todas nuestras fechas se encuentran almacenadas en formato UTC, por lo que se debe enviar las fechas siguiendo este formato “YYYY-MM-DDThh:mm:ss.sTZD”. Donde:
    • YYYY = un año de cuatro dígitos
    • MM = un mes de dos dígitos, de 01 a 12
    • DD = un día del mes de dos dígitos, de 01 a 31
    • T = un valor literal que sigue a la fecha y presenta la hora
    • hh = dos dígitos para la hora, de 00 a 23
    • mm = dos dígitos para los minutos, de 00 a 59
    • ss = dos dígitos para los segundos, de 00 a 59
    • s = uno o varios dígitos que representan una fracción decimal de un segundo
    • TZD = designador de zona horaria (Z o +hh:mm o -hh:mm)
      • Z para hora UTC
      • +hh:mm para una zona horaria local anterior a UTC
      • -hh:mm para una zona horaria local posterior a UTC
  • “currencyCode”: se debe enviar el campo “code” del mapeo realizado en la configuración inicial para la moneda a través del endpoint Get currencies

  • “verificationStatus": 
    • 'verified': Todos los pagos de la orden están verificados.
    • 'pending': Todos o algunos de los pagos aún no están verificados.
  • “paymentStatus": 
    • 'completed': Todos los pagos de la orden esta completos, cubriendo el total del valor de los ítems y el despacho.
    • 'pending': Hay por lo menos un pago pendiente para se cubra el total del valor de los ítems y el despacho.
    • 'rejected': Todos los pagos fueron rechazados.
    • 'refunded': Se solicita devolución de todos los pagos. 
  • “deliveryStatus": 
    • 'canceled': Se canceló la orden.
    • 'delivered': Se completaron todas las entregas de la orden.
    • 'not-delivered': No se entregó una de las entregas de la orden.
    • 'pending': Pendiente de por lo menos una de las entregas de la orden.

"discounts"

  • "discountType":
    • "value": Si el descuento es un monto especifico.
    • "percentage": Si el descuento aplicado es un porcentaje del valor.

“client”

  • “type”:
    • ‘person’: Persona.
    • ‘company’: Empresa.

“deliveryOrders”

  • “status”:
    • “pending”: La orden de despacho se creó y está pendiente de preparación.
    • “under_review”: La orden de despacho está en revisión para ser despachada.
    • “handling”: La orden de despacho fue tomada para preparación.
    • “ready_to_ship”: La orden de despacho esta lista para ser despachada.
    • “shipped”: La orden de despacho fue enviada.
    • “delivered”: La orden de despacho fue entregada.
    • “not_delivered”: La orden de despacho no fue entregada.
    • “cancelled”: La orden de despacho fue cancelada.
    • “reschedule”: La orden de despacho se reprogramó. 

 “pickUpOrders”

  • “status”:
    • “pending”: La orden de retiro en tienda se creó y está pendiente de preparación.
    • “handling”: La orden de retiro en tienda fue tomada para preparación.
    • “received_by_store”: La orden de retiro en tienda fue recibida por la tienda.
    • “completed”: La orden de retiro en tienda fue entregada.
    • “cancelled”: La orden de retiro en tienda fue cancelada.

 “checkoutPayments”

  • “paymentStatus":
    • 'completed': El pago fue completado.
    • 'pending': El pago está pendiente.
    • 'rejected': El pago fue rechazado.
    • 'refunded': 
    • 'cancelled': El pago fue cancelado.
  • “verificationStatus":
    • 'verified': El pago está verificado.
    • 'pending': El pago está pendiente de verificación.
  • “paymentMethodCode”: Se debe enviar el campo “code” del mapeo realizado en la configuración inicial para los métodos de pago a través del endpoint Get checkout payment methods

 

¿Cómo realizar la actualización de estados de una venta?

Desde la integración de tu marketplace, puedes realizar la actualización de los estados asociados a una venta, los cuales son los siguientes:

 

Actualización del estado del despacho

  • deliveryStatus
    • "delivered"
    • "not-delivered"
    • "cancelled"
    • "pending"

Actualización del estado del pago

  • paymentStatus
    • "completed"
    • "pending"
    • "rejected"
    • "refunded"
    • "cancelled"

Actualización del estado de verificación de la orden

  • verificationStatus
    • "verified"
    • "pending"

Para actualizar a la venta los estados anteriores, se debe mediante el endpoint PUT
Update checkout status enviando en la solicitud el id de la venta y en el body el o los estados a actualizar:

{
"deliveryStatus": "cancelled",
"paymentStatus": "cancelled",
"verificationStatus": "verified"
}

 

 

Equipo Integraciones API Multivende

 
Más información

Productos, Stocks y Precios

Ver los artículos
Sincronización de Información de Productos a Canales de Venta.

Encuentra aquí el proceso necesario para sincronizar información de productos hacia canales de venta.

El objetivo es facilitar que los merchants puedan gestionar y relacionar toda la información de sus productos de manera eficiente.

  • Proceso de Sincronización y Publicación

Para lograr la publicación exitosa de un producto en un canal de venta, se requiere seguir los siguientes pasos de configuración de información, los cuales deben ser implementados del lado del canal de venta.

Mapeo general: Configuración de los datos de las credenciales para establecer la conexión entre Multivende y el canal de venta. Permite al comerciante vincular ambos sistemas.

imagenes-articulos-canales-venta.png

Mapeo de categorías : Establecer la relación entre las categorías de productos en Multivende y las categorías correspondientes en el canal de venta. Las categorías de la cuenta del merchant en Multivende pueden ser obtenidas mediante el endpoint: Get product categories.

2-categorias.pngMapeo de atributos: Relacionar los atributos personalizados creados en Multivende con los atributos equivalentes disponibles en el canal de venta. Los atributos deben estar asociados por categorías. El único atributo que debe quedar configurado por defecto es el SKU (code).
Para obtener un array con todos los atributos de los productos de Multivende para un Merchant usar el endpoint Get product attributes.

3-atributos.png

Mapeo de marcas:Relacionar cada una de las marcas creadas en Multivende con la marca correspondiente en el canal de venta.

Para consultar las marcas de una cuenta de merchant dentro de Multivende puedes hacerlo mediante el endpoint: Get brands.

4-marcas.png

Imágenes: las imágenes están clasificadas por álbum. Para obtener el listado de los álbumes usar el endpoint Get products picture set. (El Merchant debe poder seleccionar qué álbum de fotos que va a usar). En caso de usar el álbum por defecto de Multivende debes considerar que el _id de este álbum es el valor "null". 

 

Publicación de los productos en el canal:

Para consultar todo el detalle de la información de un producto lo haces por el id de Multivende del producto mediante el endpoint Get product by id.

La publicación de los productos en el canal de venta se puede realizar mediante dos modalidades:

  • Publicar desde el canal

Esta vista debe listar los productos de la cuenta del merchant en Multivende y permitir la publicación masiva o individual de los  productos. La vista debe ser realizada de lado de la integración.

Para leer los productos desde Multivende hacia el canal de venta debes realizar la consulta mediante el polling de productos con el endpoint de Get products with scroll.

5-productos.png

  • Publicación mediante product links:

En Multivende, el merchant, puede activar los productos de forma individual o masiva, generando un `product link`. Este enlace contiene información del estado del producto entre el  canal de ventas y Multivende.

Los product links serán notificados vía webhook y también pueden ser consultados mediante la        api con el endpoint de Get product links with scroll para respaldar cualquier notificación que no          haya sido recibida.

Al consultar el detalle del product link mediante el endpoint de Get product link by id en la respuesta de la api,  se puede validar el estado de sincronización para el producto enviado.

Los estados de sincronización asociados a un product link son:

  • “not-synchronized” : el producto fue enviado para ser sincronizado, este estado es recepcionado por el canal para iniciar la publicación del producto.
  • “synchronized”: el producto fue publicado exitosamente en el canal de venta, este estado es notificado por el canal de venta hacia Multivende mediante una actualización del estado de sincronización.
  • “synchronized_with_warnings”: el producto se sincronizó, sin embargo se requiere de cierta información, que si bien no afecta la publicación del producto, debe ser corregida o enviada para que la publicación quede cien por ciento sincronizada.
  • “synchronizing”:  el producto se encuentra en sincronización con el canal de venta, este estado es usado por los canales que requieren una revisión del producto antes de ser publicado.
  • “failed”: la sincronización del producto con el canal falló y no se logró la publicación. El canal debe enviar la descripción o detalle del error para que el merchant pueda realizar las correcciones pertinentes.

Realizar actualizaciones de estados de sincronización hacia Multivende.

Las actualizaciones de estados de los product links notifican hacia Multivende el resultado de la            vinculación del producto con el canal de venta. Esta comunicación de product links es bi-                      direccional entre Multivende y el canal de venta.

Las integraciones de canal de venta reciben la notificación via webhook o la lectura via polling de          las actualizaciones de los product links que se realicen desde Multivende y a partir de allí deben            informar hacia Multivende el estado en que se encuentra el producto en el canal.

El endpoint para enviar los de estados de sincronización hacia Multivende es: Post Upsert product link, se deben pasar los siguientes parámetros:

  • 'ProductId': id de el producto padre en Multivende
  • 'externalId': corresponde al identificador del producto en el canal
  • 'externalContent': se informa la data nativa del canal (JSON)
  • 'extraData': cualquier otra información relevante
  • 'synchronizationStatus': permite los siguientes estados

           -> 'not-synchronized'

           -> 'synchronized'

           -> 'synchronized_with_warnings'

           -> 'synchronizing'

           -> 'Failed'

 

Los estados de sincronización de los productos entre Multivende y el canal de venta, los merchants los pueden ver en el panel de control del front de Multivende:

 

Y también en la conexión con la aplicación:

Despublicar el producto en el canal de venta

Si un usuario requiere remover productos en el canal, puede hacerlo desde Multivende, apagando el producto en la conexión, esta acción registra el estado de sincronización del producto como “to_unpublish”.

El canal de venta debe notificar a Multivende que la publicación del producto en el canal fue eliminada mediante el endpoint:  Deleted product link , el estado de sincronización del producto se actualiza a “to_unpublish” y es removido de la conexión, si el producto es nuevamente activado, el estado de sincronización llegará como “to_republish” y puede ser sincronizado nuevamente.

Si se desea remover el producto directamente desde el canal, sólo se debe enviar la solicitud del  Deleted product link. Este endpoint permite eliminar uno o varios productos directamente de la conexión.

 

Mapeo de precios

El merchant debe poder seleccionar la lista de precios mediante la cual el canal tomará la información de los valores de precios de los productos. Para consultar las listas de precios asociadas a un merchant usamos el endpoint Get price lists 

Posteriormente puedes consultar el precio de los productos mediante el endpoint Get prices with scroll, enviando el id de la lista de precios, límite de items a consultar (el rango del límite permitido es >=50 y <=30000), este endpoint permite obtener el precio de los productos paginados por scroll.

Puedes consultar el precio por un rango de fecha y hora, filtrando por el parámetro de fecha de creación (createdAt) o fecha de actualización (updatedAt).

6-precios.png

Mapeo de inventario

En esta vista el merchant selecciona la bodega desde la cual se tomará el stock de los productos publicados en el canal. Para consultar las bodegas de la cuenta de un usuario en Multivende hacemos un llamado al endpoint Get stocks and warehouses.

Puedes consultar el stock de los productos mediante el endpoint Get stocks with scroll, enviando el id de la bodega, límite de items a consultar (el rango del límite permitido es >=50 y <=30000), este endpoint permite obtener el stock de los productos paginados por scroll.

 Puedes consultar el stock por un rango de fecha y hora, filtrando por el parámetro de fecha de creación (createdAt) o fecha de actualización (updatedAt).

7-inventario.png

Esperamos que este artículo te haya proporcionado una guía detallada para asegurar que la información de los productos se sincronice correctamente entre Multivende y los canales de venta, incluyendo los pasos necesarios y los endpoints de la API para realizar estas acciones.

 

Equipo Integraciones API Multivende

 

Más información
¿Cómo crear productos desde tu sistema a Multivende?

En este artículo, mostramos cómo realizar la creación de productos desde tu sistema hacia Multivende.

Para comenzar, te dejamos los Endpoints disponibles para una correcta creación de un producto desde nuestra API.

    • Get products with scroll: Obtener todos los productos de un Merchant.
    • Products: Obtener los registros de las marcas, tallas, colores u otros se debe consultar según sea el caso en la carpeta correspondiente.
    • Create product: Crear productos asociado a un merchant.
    • Update product: Permite actualizar la información del producto.
    • Atributos custom: Atributos personalizados que pueden asignar al producto.

Te recomendamos leer el siguiente artículo en donde abordamos esto con mayor detalle.

 

Creación de un producto con información básica

A través de nuestra API podemos realizar la creación de un producto para ello disponemos del Endpoint Create product *, esto nos permite crear un producto a un Merchant.

Te dejamos un ejemplo para la creación de un producto enviando información básica dentro del cuerpo del mensaje, cabe destacar que debes ponerle un Nombre y configurar el SKU padre e hijo.

{
  "name": "Nombre del producto",
  "code": "SKU Padre",
  "InventoryTypeId": "791a6654-c5f2-11e6-aad6-2c56dc130c0d",
  "InternalCodeTypeId": null,
  "ProductVersions": [
    {
      "status": "waiting-for-creation",
      "code": "SKU Hijo",
      "isDefaultVersion": true,
      "InventoryTypeId": "791a6654-c5f2-11e6-aad6-2c56dc130c0d",
      "InternalCodeTypeId": null,
      "position": 0
    }
  ]
}

Tener en consideración utilizar siempre el campo “InventoryTypeId” seteado de la siguiente manera  = "791a6654-c5f2-11e6-aad6-2c56dc130c0d".

 

Una vez enviado el endpoint la API no retornará 201, indicando la creación de nuestro producto de forma exitosa, un ejemplo del response es el siguiente:

{
  "_id": "XXX33b34-XXXX-XXXX-85e2-5b55a0aXXXXXX",
  "status": "created",
  "name": "Nombre del producto",
  "InternalCodeTypeId": null,
  "code": "SKU Padre",
  "CreatedById": "d561f14f-0800-4091-8d3f-XXXXXXXXXXXX",
  "UpdatedById": "d561f14f-0800-4091-8d3f-XXXXXXXXXXX",
  "MerchantId": "bf03e4e6-53a0-4082-9476-XXXXXXXXXXX",
  "updatedAt": "2023-00-00T00:00:00.000Z",
  "createdAt": "2023-00-00T00:00:00.000Z",
  "ProductTypeId": "0f381d1c-3408-11e7-8e63-XXXXXXXXXXXX",
  "ProductVersions": [
    {
      "_id": "d775b3d8-a19a-4069-8cdd-XXXXXXXXXXXX",
      "code": "SKU Hijo",
      "internalCode": null,
      "providerCode": null,
      "position": 0,
      "width": 0,
      "length": 0,
      "height": 0,
      "weight": 0,
      "status": "created",
      "createdAt": "2023-00-00T00:00:00.000Z",
      "updatedAt": "2023-00-00T00:00:00.000Z",
      "CodeTypeId": null,
      "InternalCodeTypeId": null,
      "ColorId": "4ecf5004-f721-46bf-a38a-75807491a4cb",
      "SizeId": "226a61dc-1eef-41cf-af5e-cc6aea7c75b4",
      "CreatedById": "d561f14f-0800-4091-8d3f-XXXXXXXXXXXX",
      "UpdatedById": "d561f14f-0800-4091-8d3f-XXXXXXXXXXXX",
      "InventoryTypeId": "791a6654-c5f2-11e6-aad6-XXXXXXXXXXXX",
      "ProductId": "30433b34-294f-40a6-85e2-XXXXXXXXXXXX",
      "MerchantId": "bf03e4e6-53a0-4082-9476-XXXXXXXXXXXX"
    }
  ]
}

 

Tener en consideración la lectura de los siguientes artículos, dado que una vez creado este producto puedes realizar la carga del Stock y el Precio.

Crear un producto con información completa.

Del mismo modo utilizando el Endpoint Create product * podemos crear un producto pero enviando información completa de este, ya sea color, talla, marca, etc.

Antes de comenzar a crear un producto al detalle lo primero que debes realizar es lo siguiente:

1.- Mapeo de los atributos de los productos como:

      1. Categoría.
      2. Color.
      3. Talla.
      4. Marca.
      5. Temporada.
      6. Clases de envío.
      7. Descripción.
      8. Atributos custom. 
      9. El único atributo que debe quedar configurado por defecto es el SKU (code).

Para obtener un array con todos los atributos de los productos de Multivende para un Merchant usar en endpoint Get product attributes.

 

2.- Imágenes: 

Las imágenes están clasificadas por álbum para obtener el listado de los álbumes usar el endpoint Get products picture set. (El Merchant deberá poder mapear los álbumes de la aplicación con los álbumes de Multivende).

Si el campo "ProductPictureSetId" es "null", es el álbum predeterminado.

Puedes encontrar más detalles en el artículo dedicado a la Gestión de imágenes.

*El Merchant deberá poder seleccionar cuales son los productos que cargará desde la aplicación a Multivende.

 

Configuración de atributos

Puedes encontrar el detalle de los Endpoint en la propia documentación de la API, no obstante te dejamos los que podrían ser los más relevantes:

  • Marcas:

Get Brands: Podrás obtener las marcas asociadas al Merchant.

Get Brands by Id: Te permite buscar una marca especifica enviando el "_id" dentro del request.

Post Brands: Puedes crear una marca desde la integración la cual quedará asociada al Merchant.

Update Brands: Te permite actualizar el nombre o la descripción de la marca.

 

  • Clases de envío:

Get shipping classes: Podrás obtener las clases de envío asociadas al Merchant.

Get shipping classes by Id: Te permite buscar una clase envío especifica enviando el "_id" dentro del request.

Post shipping classes: Puedes crear una clase de envío desde la integración la cual quedará asociada al Merchant.

 

  • Colores:

Get Colors:  Podrás obtener los colores asociados al Merchant.  

Get Colors by Id: Te permite buscar un color especifico enviando el "_id" dentro del request.

Post Colors: Puedes crear un color el cual quedará asociado al Merchant.

Update Colors: Te permite actualizar el nombre del color.

 

  • Tallas:

Get Sizes: Podrás buscar las tallas asociadas al Merchant. 

Get Size by Id: Te permite buscar una talla especifica enviando el "_id" dentro del request.

Post Sizes: Puedes crear un talla la cual quedará asociada al Merchant.

Update Sizes: Te permite actualizar el nombre y la descripción de la talla.

 

  • Temporadas:

Get Seasons: Podrás obtener las temporadas asociadas al Merchant.  

Get Seasons by Id: Te permite buscar una temporada especifica enviando el "_id" dentro del request.

Post Seasons: Puedes crear una temporada la cual quedará asociada al Merchant.

Update Seasons: Te permite actualizar el nombre de la temporada.

 

  • Categorías:

Get Product Categories: Podrás obtener las categorías de los productos asociadas al Merchant.

Get Product Categories by Id: Te permite buscar una categoría de un producto enviando el "_id" dentro del request.

Post Product Categories: Puedes crear una categoría la cual quedará asociada al Merchant.

Update Categories: Te permite actualizar el nombre y la descripción de la categoría.

 

 

Equipo Integraciones API Multivende

Más información
¿Cómo actualizar un producto desde tu sistema hacia Multivende?

En este artículo, mostramos como actualizar un producto desde tu sistema hacia Multivende mediante nuestra API.

Para comenzar, te dejamos los endpoints disponibles para una correcta actualización de un producto desde nuestra API.

  • Get products with scroll: Obtener todos los productos de un Merchant.
  • ProductsObtener los registros de las marcas, tallas, colores u otros se debe consultar según sea el caso en la carpeta correspondiente.
  • Create product: Crear productos asociado a un merchant.
  • Atributos custom: Atributos personalizados que pueden asignar al producto.

A través de nuestra API podemos realizar la actualización de un producto para ello disponemos del Endpoint Update Product.

Dentro del "Body" podrás enviar los parámetros que deseas modificar, como por ejemplo "name", "alias" o un "CustomAttributeValues".

Te dejamos un ejemplo para la actualización de un producto enviando información básica dentro del cuerpo del mensaje.

{
  "name": "TEST Guantes Nike Extreme Lightweight Fitness Para Hombre",
  "alias": "",
  "BrandId": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
  "model": "",
  "SeasonId": null,
  "description": null,
  "ProductVersions": [
    {
      "_id": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
      "code": "NLGC4937_L",
      "SizeId": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
      "ColorId": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
      "status": "created",
      "internalCode": "",
      "CodeTypeId": null,
      "InternalCodeTypeId": null,
      "position": 0,
      "width": 0,
      "length": 0,
      "height": 0,
      "weight": 0,
      "Size": {
        "_id": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
        "name": "L"
      },
      "CodeType": {
        "_id": null,
        "name": null,
        "code": null,
        "description": null,
        "position": null,
        "tags": null,
        "status": null,
        "createdAt": null,
        "updatedAt": null
      },
      "InternalCodeType": {
        "_id": null,
        "name": null,
        "code": null,
        "description": null,
        "position": null,
        "tags": null,
        "status": null,
        "createdAt": null,
        "updatedAt": null
      },
      "Color": {
        "_id": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
        "name": "Negro"
      },
      "InventoryType": {
        "_id": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
        "name": "INVENTORY_TYPES.Normal.Name",
        "code": "_normal_inventory_type",
        "description": "INVENTORY_TYPES.Normal.Description",
        "position": 0,
        "tags": "NULL",
        "status": "created",
        "createdAt": null,
        "updatedAt": null
      },
      "ProductVersionPictures": [null],
      "CustomAttributeValues": {
        "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX": "L"
      },
      "allImages": [],
      "InventoryTypeId": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"
    }
  ],
  "ProductCategoryId": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
  "code": "NLGC4937",
  "internalCode": "",
  "CodeTypeId": null,
  "shortDescription": "",
  "htmlDescription": "",
  "htmlShortDescription": "",
  "tags": [],
  "WarrantyId": null,
  "ShippingClassId": null,
  "CustomAttributeValues": {
    "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
    "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX": "negro",
    "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX": "xNLGC4937",
    "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"
  },
  "OfficialStoreId": null,
  "InventoryTypeId": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
  "InternalCodeTypeId": null
}

Importante:

  • Recordar que siempre el campo “InventoryTypeId” debe ir establecido de la siguiente manera:
  "InventoryTypeId": "791a6654-c5f2-11e6-aad6-2c56dc130c0d"
  • Dentro del body puede enviar únicamente los parámetros que deseas actualizar, el resto, puedes omitirlos o no enviarlos en la solicitud.

 

 

Equipo Integraciones API Multivende

Más información
Consultar stock de productos en bodegas

En este artículo te mostramos cómo consultar el stock de tus productos mediante la API de Multivende.

La consulta de stock se realiza a productos asociados a una bodega en Multivende. Para consultar las bodegas que se encuentran creadas en una cuenta de merchant, lo puedes hacer mediante el endpoint: Get stores and warehouses.

Request:

curl --location -g '{{base_url}}/api/m/{{merchant_id}}/stores-and-warehouses/p/{{page}}' \
--header 'Authorization: Bearer {{access_token}}'

 

Response:

{
  "entries": [
    {
      "_id": "xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
      "name": "Mi Tienda (Personaliza el nombre)",
      "code": null,
      "address": null,
      "description": null,
      "type": "store",
      "phoneAreaCode": null,
      "phoneNumber": null,
      "latitude": 0,
      "longitude": 0,
      "openHours": null,
      "tags": null,
      "position": 0,
      "status": "created",
      "createdAt": "2018-05-24T00:19:31.000Z",
      "updatedAt": "2018-05-24T00:19:31.000Z",
      "CreatedById": "xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
      "UpdatedById": "xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
      "LocationId": null,
      "TimezoneId": null,
      "MerchantId": "xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
      "SalesGroupId": null
    },
    {
      "_id": "xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
      "name": "Bodega (Personaliza el nombre)",
      "code": null,
      "address": null,
      "description": null,
      "type": "warehouse",
      "phoneAreaCode": null,
      "phoneNumber": null,
      "latitude": 0,
      "longitude": 0,
      "openHours": null,
      "tags": null,
      "position": 1,
      "status": "created",
      "createdAt": "2018-05-24T00:19:31.000Z",
      "updatedAt": "2018-05-24T00:19:31.000Z",
      "CreatedById": "xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
      "UpdatedById": "xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
      "LocationId": null,
      "TimezoneId": null,
      "MerchantId": "xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
      "SalesGroupId": null
    }
  ],
  "pagination": {
    "offset": 0,
    "limit": 50,
    "total_pages": 1,
    "current_page": 1,
    "next_page": 0,
    "previous_page": 0,
    "total_items": 2
  }
}

 

Consultar stock de productos

Puedes consultar el stock de los productos mediante el endpoint Get stocks with scroll, enviando:

  • el id de la bodega
  • límite de items a consultar (el rango del límite permitido es >=50 y <=5000)

Este endpoint permite obtener el stock de los productos en una bodega paginados por scroll.

Puedes consultar el stock por un rango de fecha y hora, filtrando por el parámetro de fecha de creación (createdAt) o fecha de actualización (updatedAt). Esta modalidad es requerida para aquellas integraciones que realicen consultas frecuentes de stocks, se recomienda que la ventana de búsqueda no sea mayor a 2 horas respecto a la última búsqueda realizada.

 

Consultar el histórico de movimientos de stock de un producto en una bodega

El historial de stock en bodega, puede ser consultado a través del endpoint Get stock history
este retorna todo el movimiento de stock del producto.

Podrás visualizar la información que se ve en la vista Movimiento de inventario desde la plataforma de Multivende.

Ejemplo response:

{
  "entries": [
    {
      "_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx",
      "date": "2019-03-07T18:14:15.000Z",
      "amount": 76,
      "unitCost": 0,
      "type": "INCREASE",
      "comment": null,
      "status": "created",
      "createdAt": "2019-03-07T18:14:15.000Z",
      "updatedAt": "2019-03-07T18:14:15.000Z",
      "CreatedById": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx",
      "UpdatedById": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx",
      "CostCurrencyId": null,
      "OriginProviderId": null,
      "ProductRelocationCategoryId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx",
      "OriginWarehouseId": null,
      "DestinationWarehouseId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx",
      "ProductVersionId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx",
      "MerchantId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx",
      "ProductStockBatchId": null,
      "ProductRelocationCategory": {
        "_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx",
        "name": "PRODUCT_RELOCATION_CATEGORIES.Product_reception.Name",
        "certaintyLevel": "known",
        "type": "increase",
        "code": "_product_reception",
        "description": "PRODUCT_RELOCATION_CATEGORIES.Product_reception.Description",
        "position": 0,
        "tags": "{ \"use_type\": \"external\"}",
        "status": "created",
        "createdAt": null,
        "updatedAt": null
      },
      "CreatedBy": {
        "profile": {
          "name": "developers",
          "fullName": "developers"
        },
        "token": {
          "_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx"
        },
        "_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx",
        "name": "developers",
        "email": "developers-test@multivende.com"
      },
      "OriginWarehouse": null,
      "DestinationWarehouse": {
        "_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx",
        "name": "Bodega (Personaliza el nombre)",
        "code": null,
        "address": null,
        "description": null,
        "type": "warehouse",
        "phoneAreaCode": null,
        "phoneNumber": null,
        "latitude": 0,
        "longitude": 0,
        "openHours": null,
        "tags": null,
        "position": 1,
        "status": "created",
        "createdAt": "2019-01-30T17:18:46.000Z",
        "updatedAt": "2019-01-30T17:18:46.000Z",
        "CreatedById": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx",
        "UpdatedById": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx",
        "LocationId": null,
        "TimezoneId": null,
        "MerchantId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx",
        "SalesGroupId": null
      }
    },
    {
      "_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx",
      "date": "2019-03-07T18:04:49.000Z",
      "amount": 14,
      "unitCost": 0,
      "type": "INCREASE",
      "comment": null,
      "status": "created",
      "createdAt": "2019-03-07T18:04:49.000Z",
      "updatedAt": "2019-03-07T18:04:49.000Z",
      "CreatedById": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx",
      "UpdatedById": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx",
      "CostCurrencyId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx",
      "OriginProviderId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx",
      "ProductRelocationCategoryId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx",
      "OriginWarehouseId": null,
      "DestinationWarehouseId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx",
      "ProductVersionId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx",
      "MerchantId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx",
      "ProductStockBatchId": null,
      "ProductRelocationCategory": {
        "_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx",
        "name": "PRODUCT_RELOCATION_CATEGORIES.Product_reception.Name",
        "certaintyLevel": "known",
        "type": "increase",
        "code": "_product_reception",
        "description": "PRODUCT_RELOCATION_CATEGORIES.Product_reception.Description",
        "position": 0,
        "tags": "{ \"use_type\": \"external\"}",
        "status": "created",
        "createdAt": null,
        "updatedAt": null
      },
      "CreatedBy": {
        "profile": {
          "name": "developers",
          "fullName": "developers"
        },
        "token": {
          "_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx"
        },
        "_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx",
        "name": "developers",
        "email": "developers-test@multivende.com"
      },
      "OriginWarehouse": null,
      "DestinationWarehouse": {
        "_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx",
        "name": "Bodega (Personaliza el nombre)",
        "code": null,
        "address": null,
        "description": null,
        "type": "warehouse",
        "phoneAreaCode": null,
        "phoneNumber": null,
        "latitude": 0,
        "longitude": 0,
        "openHours": null,
        "tags": null,
        "position": 1,
        "status": "created",
        "createdAt": "2019-01-30T17:18:46.000Z",
        "updatedAt": "2019-01-30T17:18:46.000Z",
        "CreatedById": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx",
        "UpdatedById": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx",
        "LocationId": null,
        "TimezoneId": null,
        "MerchantId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx",
        "SalesGroupId": null
      }
    }
  ],
  "pagination": {
    "offset": 0,
    "limit": 50,
    "total_pages": 1,
    "current_page": 1,
    "next_page": 0,
    "previous_page": 0,
    "total_items": 2
  }
}

 

 

Equipo Integraciones API Multivende

Más información
¿Cómo cargar stock vía API?

En este artículo, te mostramos cómo cargar stock de tus productos mediante la API de Multivende.

Consultar y crear bodegas 

Puedes consultar y crear bodegas asociadas a un Merchant mediante el siguiente Endpoint:Get stores and warehouses

Create store or warehouse permite crear una bodega asociada al Merchant.

Actualizar stock de productos en bodegas

La actualización de stock disponible de un producto se envía a cada bodega.

De manera masiva se pueden actualizar 1000 productos por solicitud. 

Puedes actualizar el stock de productos asociados a una bodega mediante el siguiente endpoint:

  • Bulk update stock: envía de manera individual o masiva el stock a una bodega, enviando en un arreglo de productos el sku versión y monto disponible. En la respuesta mediante el parámetro success se devuelve el mensaje de si la actualización fue exitosa o no.

Consideraciones

Debes tener en cuenta que el stock enviado mediante API reemplaza al actual que tenga el producto.
Debes consultar primero el stock actual en Multivende mediante el endpoint Get stocks with scroll y actualizar solamente los que tengan diferencias.
Se recomienda realizar la sincronización de stock por lo menos una vez al día de forma automática.
Se recomienda dejar una opción para que se pueda ejecutar el proceso de forma manual.

 

 

Equipo Integraciones API Multivende

 
Más información
Consultar precios de productos via API

En este artículo te mostramos cómo consultar el precio de tus productos mediante la API de Multivende.

La consulta de precios se realiza a productos asociados a una lista de precios en Multivende.

Consultar precios de productos.

Para obtener el id de una lista de precios consultamos al endpoint Get price lists.

Puedes consultar el precio de los productos que estén en una lista de precios mediante el endpoint Get prices with scroll, enviando:

  • el id de la lista de precios
  • límite de items a consultar (el rango del límite permitido es >=50 y <=5000)

Este endpoint permite obtener el precio de los productos paginados por scroll.

 

Para realizar el polling de precios lo puedes hacer consultando por un rango de fecha y hora, filtrando por el parámetro de fecha de creación (createdAt) o fecha de actualización (updatedAt). Esta modalidad es requerida para aquellas integraciones que realicen consultas frecuentes de precios, se recomienda que la ventana de búsqueda no sea mayor a 2 horas respecto a la última búsqueda realizada.

 

Equipo Integraciones API Multivende

Más información

Logística

Ver los artículos
Modalidades y operadores logísticos de los despachos

Conoce las modalidades y operadores logísticos de los despachos que puedes gestionar a través de Multivende.

Modalidades logísticas

Podrás conseguir la información de las modalidades logísticas de tus despachos en los endpoints:

  • Get checkouts light: Permite realizar el sondeo de las órdenes desde Multivende hacia tu integración.
  • Get checkout: Ente endpoint te permite consultar el detalle de una orden.
  • Get delivery order: Este Endpoint te permite consultar el detalle de un despacho asociado a una orden.

Delivery Order

En el detalle del DeliveryOrders:

  • "shippingMode": Informa el modo de envío según lo que indica el canal de venta.
  • "courierName": Informa el nombre del courier que realizará el despacho según lo que indica el canal de venta.

Checkout

En el detalle del Checkout:

  • "shippingMode": Informa el modo de envío según lo que indica el canal de venta. En los casos donde hay más de un DeliveryOrder con diferentes ShippingMode, el campo indicará "multiple".
  • "courierName": Informa el nombre del courier que realizará el despacho según lo que indica el canal de venta. En los casos donde hay más de un DeliveryOrder con diferentes courierName, el campo indicará "múltiple".
  • "isMultiwarehouse": Informa si el punto de retiro del pedido para el despacho es más de uno.

Shipping Mode

En el "shippingMode" encontrarás las opciones propias de cada canal de venta, según la información que nos proporcione el canal vía API. (me1, me2, fulfillment, Dropshipping).

Ejemplo:

"shippingMode": "fulfillment",

courierName

En el “courierName” las opciones disponibles y denominación de los operadores logísticos podrán variar de acuerdo a la configuración propia del canal para identificar a cada uno (El courier Blue Express podrás encontrarlo con los valores: Blue Express, BLX, entre otros).

Ejemplo:

"courierName": "BLUEXPRESS",

 

Modalidades logísticas de los marketplaces:

Mercadolibre

ℹ️ Información: 

ME1 
En esta modalidad, el vendedor se encarga del embalaje y despacho del producto, utilizando su propia flota o un operador logístico externo. 
Debe proporcionar una URL de seguimiento, que se sincroniza con la plataforma para que el comprador pueda rastrear su pedido. Los estados como “enviado”, “entregado” o “no entregado” se actualizan automáticamente y son notificados al comprador. 

ME2 
En este modelo, el envío sigue siendo gestionado por el vendedor, pero coordinado y controlado por Mercado Libre. 
El vendedor prepara y despacha el producto, mientras que Mercado Libre genera y administra la etiqueta de envío, incluyendo tarifas negociadas y seguimiento integrado. 

 

Modalidad

"shippingMode"

Descripción

 

 

me2

 

 

fulfillment

Mercado Envíos Full

El vendedor envía stock a la bodega de Mercado Libre y el marketplace se encarga de almacenar los productos y realizar todo el proceso de preparación, generación de etiquetas y entrega al cliente final.

*No se genera etiqueta

* El seller debe generar la boleta para Colombia.

 

 

me2

 

cross_docking

Mercado Envíos Coleta

El vendedor prepara el pedido en su bodega, imprime la etiqueta y la flota propia de Mercado Libre lo retira y entrega al cliente final.

 

 

me2

 

xd_drop_off

Mercado Envíos Places

El vendedor prepara el pedido en su bodega, imprime la etiqueta y despacha a través del courier asignado o en los puntos autorizados de Mercado Libre.

 

 

 

me2

 

 

self_service

Mercado Envíos Flex

El vendedor prepara el pedido en su bodega, imprime la etiqueta con código QR y despacha a través del courier de su preferencia o con su flota propia.

*Las etiquetas deben ser escaneadas por el operador logístico con la app móvil de Mercado Envíos Flex para el control y seguimiento de los paquetes.

 

 

me2

 

drop_off

Llevar a sucursal/correo

El vendedor prepara el pedido en su bodega, imprime la etiqueta y despacha a través del courier asignado por el marketplace. 

 

me2      

turbo

 Envíos Turbo (ultra-rápido)

Es una modalidad de envíos ultrarrápidos que forma parte del sistema de logística propia de Mercado Libre (Mercado Envíos).

Su objetivo es entregar productos el mismo día o en menos de 24 horas, principalmente en zonas urbanas grandes de México, Chile, Argentina, Colombia y Brasil.

TURBO = Fulfillment + Envío express de última milla.

 

 

 

custom

 

 

custom

Envío personalizado del vendedor

El vendedor prepara el pedido en su bodega y despacha según lo acordado con el comprador.


*No imprime la etiqueta
*Debe actualizar el estado de envío a Mercado Libre.

 

me1

own logistics
 

Programa viejo de Mercado Envíos

Despacho por cuenta propia del vendedor.

 

 

Dafiti

Dropshipping El vendedor prepara el pedido en su bodega, imprime la etiqueta y despacha a través del courier asignado por el marketplace.
crossdocking/ Cross docking El vendedor prepara el pedido en su bodega, imprime la etiqueta y la flota propia de Dafiti lo retira y entrega al cliente final.
Fulfillment by Dafiti Los sellers pueden enviar su stock a centros de distribución de Dafiti.

Dafiti se encarga de almacenar, empaquetar, despachar y gestionar devoluciones.

 Esto permite que los productos tengan entrega rápida y seguimiento profesional, similar a FBA o Fulfillment by Falabella.

 

Ripley 

Dropshipping El vendedor prepara el pedido en su bodega, imprime la etiqueta y despacha a través del courier asignado por el marketplace.
Cross docking El vendedor prepara el pedido en su bodega, imprime la etiqueta y la flota propia de Ripley lo retira y entrega al cliente final.
Despacho propio El vendedor prepara el pedido en su bodega y despacha a través de su flota propia.
Fulfillment El vendedor envía stock a la bodega de Mercado Ripley y el marketplace se encarga de almacenar los productos y realizar todo el proceso de preparación, generación de etiquetas y entrega al cliente final.

 

Paris

Dropshipping (scheduled) El vendedor prepara el pedido en su bodega, imprime la etiqueta y despacha a través del courier asignado por el marketplace.
Same Day (sameday) El vendedor prepara el pedido en su bodega, imprime la etiqueta y despacha con su flota propia o a través del courier de su preferencia en el mismo día.
Fulfillment (fulfillment) El vendedor envía stock a la bodega de Paris y el marketplace se encarga de almacenar los productos y realizar todo el proceso de preparación, generación de etiquetas y entrega al cliente final.

*Los productos aún no son informados vía API.
*No se genera etiqueta y el seller debe generar la boleta.
Next Day (netxday) El vendedor prepara el pedido en su bodega, imprime la etiqueta y despacha con su flota propia o a través del courier de su preferencia en el mismo día.
Daterange  
  • homeDeliveryMkpDateRange
  • homeDeliveryMkp24Hours
  • homeDeliveryMkpNormal
  • homeDeliveryMkpStandard
  • homeDeliveryStandard

 

Envío a domicilio del marketplace según la entrega. 

Mkpsignifica “Marketplace” (productos de terceros).
 

homeDeliveryenvío a domicilio.
 

El resto indica tipo o velocidad del envío (24h, estándar, con rango de fecha, etc.).

intangible

Se usa para identificar productos que no tienen envío asociado, por ejemplo:

  • Gift cards digitales.
  • Suscripciones o membresía.
  • Licencias de software.
  • Cursos online.
  • Servicios que se activan electrónicamente.

 

Fcom (falabella.com)

Dropshipping El vendedor prepara el pedido en su bodega, imprime la etiqueta y despacha a través del courier asignado por el marketplace.
Cross docking El vendedor prepara el pedido en su bodega, imprime la etiqueta y la flota propia de falabella.com lo retira y entrega al cliente final.
Fulfillment

El vendedor envía stock a la bodega de Falabella y el marketplace se encarga de almacenar los productos y realizar todo el proceso de preparación y entrega al cliente final.

*Los productos aún no son informados vía API.
*No se genera etiqueta y el seller debe generar la boleta.

El marketplace o un tercero se encarga del almacenamiento, preparación y despacho de los productos vendidos por los sellers.
El vendedor envía su stock a un centro de distribución del operador logístico (por ejemplo, Falabella), y ellos gestionan los pedidos al cliente final.

🔹 En este modelo genérico, puede haber distintos operadores (no necesariamente Falabella).
🔹 Se usa el término “Fulfillment” como concepto de servicio logístico integral.

Fulfillment by Falabella Retail S.A Falabella (la empresa) se encarga directamente de todo el proceso logístico de envío, almacenamiento y despacho de los productos vendidos a través de su marketplace.

 

Amazon 

MFN Los vendedores son responsables de abastecer y almacenar su propio inventario, cumplir con sus propios pedidos, gestionar las devoluciones y trabajar directamente con el cliente.
Fulfillment El vendedor envía el stock a la bodega de Amazon y el marketplace se encarga de almacenar los productos y realizar todo el proceso de preparación y entrega al cliente final.

Easy Ship

('pri-ez-mx'

'expd-ez-mx'

'expr-ez-mx'

std-ez-mx')

Se encarga de la recolección, etiquetado y entrega de tus productos. Una vez que recibes un pedido, el sistema genera automáticamente la etiqueta de envío y coordina la recolección con el transportista.

Además te ofrece seguimiento en tiempo real de todos tus envíos, proporcionando actualizaciones constantes tanto a ti como a tus clientes, mejorando la transparencia y la satisfacción del cliente.

SellerFlex
  • Se integra al Seller Central.
  • El vendedor etiqueta los paquetes con códigos SellerFlex generados por Amazon.
  • Los envíos se gestionan a través de Amazon Shipping o transportistas asociados.
MFN std Logística MFN pero en modalidad standard.

 

Walmart

Fulfillment (sólo México) Es un servicio logístico en el que Walmart se encarga del almacenamiento, preparación, envío y postventa de los productos que venden los sellers dentro del marketplace de Walmart.
Standard El vendedor prepara el pedido en su bodega, imprime la etiqueta y despacha a través del courier asignado por el marketplace.

 

Coppel

Standard El vendedor prepara el pedido en su bodega, imprime la etiqueta y despacha a través del courier asignado por el marketplace.

 

Tik Tok Shop

TIKTOK-HOME_DELIVERY

TikTok Home Delivery es el modelo de envío gestionado directamente por TikTok o sus socios logísticos, similar a un fulfillment de marketplace.

  • El vendedor envía su stock a un centro logístico de TikTok (o se integra con un operador logístico autorizado).

     
  • Cuando un comprador realiza una compra, TikTok se encarga de preparar, despachar y entregar el pedido al cliente final.

     
  • TikTok también gestiona seguimiento, notificaciones y devoluciones
SELLER-HOME_DELIVERY

Seller Home Delivery es el modelo en el que el propio vendedor es responsable de todo el proceso de envío.

  • El vendedor prepara y despacha los pedidos directamente desde su bodega o almacén.

     
  • Puede usar su propia logística o contratar transportistas externos.

     
  • TikTok solo actúa como plataforma, proporcionando información del pedido y seguimiento parcial.

     

 

T1

dropshipping El vendedor prepara el pedido en su bodega, imprime la etiqueta y despacha a través del courier asignado por el marketplace.

 

Totalplay

DIA-SIG Sin observaciones

 

Éxito

EnviosExito Permite a los vendedores externalizar la gestión de envíos, aprovechando la infraestructura y red logística de Éxito para mejorar la eficiencia y alcance de sus entregas.
Standar Es una modalidad logística que permite a los vendedores gestionar sus propios envíos sin utilizar el servicio EnviosExito. Esta opción es adecuada para quienes desean tener control total sobre el proceso de entrega, ya sea utilizando su propia infraestructura o mediante acuerdos con transportadoras externas.

 

Consideraciones para ventas con modalidad Fulfillment

Las ventas de tipo fulfillment pueden ser registradas en Multivende y leerse mediante la integración a través del endpoint de Get checkout, no hay diferencia entre el formato de estas ventas y otras modalidades.

Los canales de venta que tienen disponible esta modalidad son: Mercado LibreParis, Falabella.com, Amazon, Ripley y Walmart MX.

  • Para activar el registro de las órdenes con esta modalidad logística debes habilitar la opción en la configuración de la conexión del canal como lo indica el artículo según el canal.
  • Debido a que se crea una bodega especial para asociar las ventas fulfillment del marketplace, el stock de tus bodegas no se verá afectado.
  • Para este tipo de órdenes el shippingMode trae el valor “fulfillment”, de esta manera se pueden identificar.
  • Para Mercado Libre en Argentina, Colombia y México, el vendedor puede generar la factura.
  • Para Mercado Libre Brasil y Chile, la factura es generada por Mercado Libre y el vendedor puede descargarla.

 

 

Equipo Integraciones API Multivende

 
Más información
¿Cómo generar y consultar etiquetas de los Marketplace?

Conoce el flujo mediante el cual puedes consultar las etiquetas de despacho via API.

El proceso de generación/consultas de etiquetas, debe realizarse consultado por cada Marketplace.

¿Cómo generar / consultar etiquetas de los Marketplace?

Te dejamos el paso a paso para que puedas obtener los documentos de despachos vía API:

1. Consultar las conexiones de los Marketplaces

Primero se debe consultar las conexiones de los Marketplaces que tiene habilitadas el Merchant por el endpoint Get Marketplace connections . El cual retorna un array con todas las conexiones, en el campo "_name" se indica el Marketplace al cual pertenece la conexión, los cuales pueden ser los siguientes:
 

 

Marketplace / Tienda online Estado para poder generar etiquetas
Mercadolibre Disponible
Linio Disponible
Dafiti Disponible
Ripley Disponible
Paris Disponible
Falabella (FCOM) Disponible
Amazon Disponible
Walmart Disponible sólo Chile
Coppel Disponible
Totalplay Disponible
Liverpool Disponible
Vtex No disponible
Magento No disponible
Shopify No disponible
Prestashop No disponible
Woocommerce No disponible

Nota: Se deben descartar las conexiones de los Marketplace / Tiendas online que no están disponibles.

 

2. Consultar las órdenes disponibles para generar etiquetas

Con el "_Id" obtenido del respuesta anterior (Get Marketplace connections), se debe consultar por cada uno al Endpoint Get delivery orders with available labels. Enviando de forma predeterminada los siguientes parámetros:

  • _delivery_statuses = "completed".
  • _delivery_statuses = "pending".
  • _shipping_label_print_statuses = "not_printed"
  • _shipping_label_status = "ready"
  • _include_only_delivery_order_with_traking_number = true
     

El response es un array paginado de 50 órdenes por página. Se debe iterar por cuantas paginas contenga.

CONSIDERACIONES ESPECIALES:

  • Para generar las etiquetas de Linio y Dafiti es necesario cambiar el estado de la orden a "Listo para envío" previo a consultar las órdenes disponibles para generar etiquetas; por el endpoint Update delivery order status.
    • Para el caso de Falabella se puede generar la etiqueta sin previamente cambiar el estado a Listo para envío, pero se debe informar este estado al canal de venta para indicar que el despacho está listo.
  • Para generar las etiquetas de Ripley debes realizar previamente la configuración indicada en el articulo Generación de etiquetas para Mercado Ripley hasta el paso 2, ya que los siguientes pasos son automatizados.
  • Para generar las etiquetas de Walmart es necesario cambiar el estado de la orden a "En Manejo" previo a consultar las órdenes disponibles para generar etiquetas; por el endpoint Update delivery order status.
  • Para generar las etiquetas de Liverpool es necesario cambiar el estado de la orden a "En Manejo" previo a consultar las órdenes disponibles para generar etiquetas; por el endpoint Update delivery order status.
Solo podrás generar etiquetas de las órdenes que no están despachadas ni canceladas. Para modalidad Fullfilment no se genera documento de despacho ya que la logística es administrada por los marketplaces que admiten esta modalidad.

3. Crear solicitud de generación de etiquetas

Con los _Id del response anterior (Get delivery orders with available labels), los cuales se pueden agrupar en un array de máximo 50 para consultar al endpoint PUT Generate delivery order tikets.

El cual crea una tarea asíncrona para procesar la solicitud de generar etiquetas.

 

Para verificar que la tarea esté procesada, consultar periódicamente al siguiente Endpoint Get bulk action task hasta que el campo "processStatus" sea ​​igual a:

  • "completed",
  • "completed_with_warnings"  
  • "failed". 

En caso que sea "completed_with_warnings" o "failed" se debe volver a procesar la solicitud. 

Adicionalmente, se debe validar el valor del campo “output” en el se indica el estado de las órdenes a las que se le solicitó generar las etiquetas.

  • "ordersWithAvailableDeliveryOrderTickets" es un array que contiene los id de las ordenes a las que se les puede generar etiqueta en la solicitud. Los campos que retorna son:
    •  
      •  "deliveryOrderId"
      • "deliveryOrderCode"
      • "checkoutId"
      • "checkoutCode"
      • "checkoutExternalId"
      • "deliveryOrderLinkId"
      • "deliveryOrderLinkExternalId"
  • "ordersWithUnavailableDeliveryOrderTickets" es un array que contiene los id de las ordenes a las que no se les puede generar etiqueta en la solicitud.
  • "failedDeliveryOrders" es un array que contiene los id de las ordenes a las que falló la generación de  etiquetas en la solicitud.
  • "successfulDeliveryOrderDocuments" es un array que contiene los id de las ordenes a las que se les generó etiqueta en la solicitud. Los campos que retorna son:
    •  
      • "deliveryOrder"
      • "deliveryOrderId"
      • "deliveryOrderCode"
      • "checkoutId"
      • "checkoutCode"
      • "checkoutExternalId"
      • "deliveryOrderLinkId"
      • "deliveryOrderLinkExternalId"
      • "deliveryOrderDocumentId"
  • "totalOrderProcessed" total de ordenes a las que se generó etiquetas en la solicitud.

Apartado especial para Multiboxing ( Disponible para Walmart y Liverpool) :

Cuando un pedido requiere varias cajas, Multivende permite generar múltiples guías de envío para un mismo despacho. A esta función se le llama Multiboxing.

Flujo recomendado para configurar tus cajas y generar múltiples etiquetas desde Multivende:

1. Obtén las dimensiones de los productos en tu despacho (opcional, si necesitas calcular manualmente tus cajas)

Puedes consultar las dimensiones de los productos incluidos en tu pedido usando el endpoint: 

Get Delivery Order in Checkout Items

Con esta información podrás aplicar la lógica que prefieras para determinar cuántas cajas necesitas y qué producto irá en cada una.

Este paso es opcional si ya cuentas con configuraciones previas o deseas usar cajas por defecto.

2. Consulta las cajas configuradas o las cajas por defecto (opcional) 

Multivende ofrece la opción de revisar las cajas que ya tengas registradas, o bien visualizar las cajas por defecto que aplicaremos cuando no edites la configuración, puedes hacer esta consulta mediente el endpoint Get Boxes

Si una caja corresponde a la configuración por defecto, verás el campo "default": true

3. Configura las cajas que utilizarás para este despacho

Una vez que tengas claro cómo vas a distribuir los productos, debes registrar las cajas necesarias para tu envío mediante el endpoint Post Boxes

Este endpoint recibe un array en el que debes indicar:

  • Las dimensiones de cada caja (alto, ancho, largo, peso).

  • Los productos asignados a cada caja.

Con esto, Multivende podrá generar las guías correspondientes de forma individual.

4. Cambia el estado de la orden para continuar con el proceso de despacho

Una vez configuradas las cajas, debes mover la orden al estado En manejo, lo que confirma que estás listo para generar las etiquetas. Esto lo hacemos actualizando el estado a la orden.

5. Genera las etiquetas de envío

Finalmente, puedes solicitar la generación de etiquetas tus cajas utilizando el flujo estándar de etiquetas en Multivende.

 

Consideraciones generales:

  • Si hay órdenes que están en ""failedDeliveryOrders" o ""ordersWithUnavailableDeliveryOrderTickets" se deben volver a reprocesar.
  • Si el valor de "totalOrderProcessed" no coincide con la cantidad de órdenes enviadas en la solicitud se debe a que hay ids de órdenes que no existen en Multivende enviadas para generar etiquetas.
  • En caso de que alguna venta quede con error, se debe revisar con el Marketplace. 
  • Se recomienda generar las etiquetas al apenas la integración validar que existe el stock y almacenar el PDF para su impresión, así disminuirán los tiempos en el proceso de packing.
  • Por cada etiqueta los marketplace demorar aprox 1 min en poderla liberar.
  • Para Amazon desde el momento en que se genere la url de los documentos de despacho desde el Get bulk action task, tienes 15 minutos para realizar la descarga y almacenarlo, la url caducará pasado el tiempo mencionado.
  • En caso de que necesites descargar tus documentos de despacho de Amazon, si lo haces desde  Get delivery order consultando la url desde el deliveryOrderDocuments, esta url también tiene un tiempo de 15 minutos, pasado este tiempo la url caducará y deberás hacer nuevamente el llamado del endpoint para habilitar una nueva url.
  • El proceso de generación masiva de etiquetas ha sido optimizado y estandarizado con el fin de controlar mayor cantidad de errores a la hora de generar etiquetas de despacho para los canales que utilizan esta función, el primer canal que ha implementado este funcionalidad estándar es Mercadolibre y próximamente lo hará Dafiti:
  1.  
    1. La implementación de esta optimización no significa ni debiera significar cambio alguno en el proceso normal de generación de etiquetas para los canales, es decir no debiera haber diferencia en cómo el usuario veía antes las etiquetas y cómo las ve ahora. No obstante sí debiera notar un cambio a la hora de generar etiquetas que habían sido previamente generadas puesto que en el antiguo proceso no generábamos estas etiquetas.
    2. Actualmente cuando recibimos la solicitud para generar etiquetas previamente generadas (para el caso de Mercadolibre) lo que hacemos es tomarlas directamente desde el storage de Multivende (puesto que ya existen) generar el archivo consolidado y luego comprimirlas. Dichas etiquetas estarán disponibles con los mismos nombres de archivo pero, con la palabra “_old” al final de estos, esto con el fin de señalar que corresponden a etiquetas antiguas.
    3. Las etiquetas denominadas “_old” no contaran con archivos de control puesto que Multivende no genera este recurso por ser un recurso propio de Mercadolibre y por ser etiquetas antiguas el archivo de control ya estará asociado a otra generación masiva de etiquetas realizada previamente.
    4. Para este último caso el usuario podrá encontrar el archivo de control asociado a cada despacho individualmente.

El .zip contiene los siguientes archivos, según el formato que estableció el Marketplace:

  • etiquetas para la impresora Zebra (SOLO MERCADO LIBRE - PARIS y FCOM*)
  • manifiesto (SOLO MERCADO LIBRE, 1 manifiesto por solicitud)
  • etiquetas en PDF
  • Packing (agrupa los ítems por orden, formato Excel)
  • Picking (agrupa todos los ítems de las órdenes, formato Excel)

*La activación del ZPL de FCOM se solicita directamente al canal de venta.

 

Documentos según canal de venta:

Canales Tipos de documentos "externalOrderNumber" "PackageId" ("externalContent) "shipping"."id" ("externalContent")
Amazon 1 PDF por cada orden de la solicitud. "Oder ID" No disponible No disponible
Coppel

1 PDF por cada orden de la solicitud.

Nota de entrega.

"PO" No disponible "TN"
Dafiti

1 PDF por cada orden de la solicitud.

El formato es compatible con impresora zebra.

"Referencia" No disponible No disponible
Falabella

1 PDF por cada orden de la solicitud.

O de lo contrario: 1 ZPL por cada orden de solicitud.

Esto se modifica desde el canal, si desean recibir PDF no llegará el archivo ZPL y al contrario, si desean recibir el ZPL no llegará el PDF dentro del .ZIP

No disponible "REF" No disponible
Linio

1 PDF por cada orden de la solicitud.

El formato es compatible con impresora zebra.

No disponible "REF" No disponible
Liverpool

1 PDF por cada orden de la solicitud.

 

Courier UPS entrega el documento en formato .gif

No disponible No disponible "Código de rastreo"
Mercado Libre

1 PDF por solicitud.

1 ZPL por cada orden de la solicitud.

"Venta" "Pack ID" "Envío"
Paris

1 PDF por cada orden de la solicitud.

1 ZPL por cada orden de la solicitud.

1 PDF con todas las órdenes cada orden separada en 1 página.

El formato es compatible con impresora zebra.

"Referencia" No disponible "subOrderNumber"
Ripley

1 PDF por cada orden de la solicitud.

1 PDF con todas las órdenes cada orden separada en 1 página.

El formato es compatible con impresora zebra.

"Referencia" No disponible "Folio"
Totalplay 1 PDF por cada orden de la solicitud. "Número de pedido logístico" No disponible No disponible
Walmart

1 PDF por cada orden de la solicitud.

"Referencia" No disponible No disponible

 

NOTA: si el Marketplace es Mercado Libre, automáticamente procesa la orden a lista, lo cual bloquea que se pueda cancelar por parte del cliente o Merchant.

No se registra que pueden pasar a buscar el pedido, esto se debe coordinar con el courier.

¿Cómo consultar las etiquetas de una orden?

A través del endpoint Get delivery order se puede consultar el detalle de entregas con despacho de una orden. El campo "DeliveryOrderDocuments" contiene un array con los documentos referentes a la entrega con despacho de la orden consultada.

 

Diagrama de Flujo 

A continuación, se encuentra el diagrama de flujo para las consultas.

Flujos_de_integracio_n-Generar_etiquetas__1_-1.png

 

 

Equipo Integraciones API Multivende

Más información
¿Cómo actualizar los estados de un despacho?

Los cambios de estados lo puedes realizar mediante tu integración vía API, te explicamos a continuación. 

Puedes obtener el campo _id del endpoint Get checkout dentro del arreglo de DeliveryOrder, el cual es necesario para actualizar el estado de la entrega.

La actualización del estado se debe realizar según el tipo de entrega.

 

Despachos

Los siguientes datos pueden actualizarse por el endpoint Update delivery order status:

  • "DeliveryOrderStatusId” = actualizar el estado del despacho según el _id correspondiente del endpoint Get Delivery Order Status
  • "comment" = un comentario al despacho
  • Para actualizar el número y url de tracking debes usar el endpoint Update delivery order
    • Los canales que permiten actualizar el número de tracking son los siguientes:
      • Mercadolibre (Esto aplica para envíos ME1, custom y not_specified).
      • Vtex (Aplica tanto para ordenes tipo "despacho" como "retiro en tienda").
      • Dafiti (Aplica para la modalidad "Dropshipping").
      • Amazon (Aplica para ventas de tipo Fulfillment - Channel == 'MFN').
      • Liverpool.

Tener en consideración que al enviar el cambio de estado a "Listo para envío" verificar posteriormente que este se haya sincronizado de forma correcta, esto lo pueden hacer consultando el Endpoint Get Delivery Order, el campo "DeliveryOrderStatusLink" verificando dentro de  "synchronizationStatus" el cual puede contener los siguientes estados:

 

"pending" Pendiente de sincronizar
"requesting" Empezando la ejecución
"changed" Cambio de estado correcto
"not_requested" El estado no genera sincronización al canal
"failed_fatal" Fallo cambio de estado en el canal

 

Consideraciones Importantes:

  • Si al pasar 10 minutos y se visualiza que no se ha realizado el cambio de estado, por favor enviar nuevamente la actualización de estado.
  • Cuando se crea una tarea de cambio de estado, los campos del "DeliveryOrderStatusLink" serán informados en "null", cuando este cambio comience a ser procesado desde Multivende, el estado del campo "synchronizationStatus" informará uno de los 4 estados detallados en la tabla de arriba.
  • En el caso de ME2 para los productos que registran tiempo de manufactura o fabricación, se debe actualizar el estado del despacho a "Listo para envío" posterior a la fecha en que se indicó que estaría el producto disponible.
Más información
Estados de una orden con despacho

Conoce la información de los estados de una de orden de acuerdo al tipo de entrega que maneje el vendedor.

Los estados de las órdenes dependen del tipo de entrega que haya seleccionado el cliente, por lo que puede variar según esta condición.

Tipos de entrega para una orden

Para obtener los diferentes tipos de entrega que puede tener una orden se debe consultar el Endpoint Get delivery types. Actualmente contamos con dos tipos de entrega posibles, las cuales, en el response de la solicitud se obtiene el campo code, que puede tener los siguientes valores:

  1. “_delivery_type_delivery” = Despacho (el producto se envía a una dirección dada por el comprador).
  2. "_delivery_type_store_pickup" = Retiro (el producto lo retira el comprador en la dirección de la bodega asociada al stock del producto).
  3. "_delivery_type_mix" = Mixto (La orden está compuesta por varios productos de los cuales tiene retiro en tienda y despacho).

Entregas con despacho

En el endpoint Get Checkout entregamos información general del despacho, pero si necesitas información adicional como los documentos o logs de cambio de estado, consulta el endpoint Get delivery order.

Para realizar la integración con los sistemas, se debe hacer un mapeo de los estados de las órdenes en Multivende y el sistema con el que se va a integrar. Para ello, se consulta al endpoint Get Delivery Order Status el cual retorna un array con todos los estados posibles de una orden en Multivende. 

Del response se deben guardar los campos _id y code, que deben ser mapeados con los estados del sistema.

A continuación, se detallan los posibles estados de las ventas en Multivende y su relación con los estados de las ventas en los canales.

  • Multivende
Estado en Multivende campo code Descripción
_delivery_order_status_pending_ La orden ingresó en el sistema.
_delivery_order_status_handling_ Se está preparando la orden para el envío.
_delivery_order_status_ready_to_ship_ La orden está lista para el despacho.
_delivery_order_reschedule_ La orden se re agendó.
_delivery_order_status_shipped_ La orden se ha enviado.
_delivery_order_status_delivered_ La orden se ha entregado.
_delivery_order_status_not_delivered_ La orden no se entregó.
_delivery_order_status_cancelled_ La orden se ha cancelado.
_delivery_order_status_under_review_ La orden está en revisión.
_delivery_order_status_partial_cancelled_ Uno o algunos de los items de la orden fue cancelado
  • Multivende - Amazon
    • Relación de estados entre Multivende y Amazon
Multivende Amazon
_delivery_order_status_pending_ unshipped
_delivery_order_status_handling_ partiallyShipped
_delivery_order_status_ready_to_ship_ closed_summary
 _delivery_order_status_shipped_ shipped
_delivery_order_status_delivered_ delivered
_delivery_order_status_not_delivered_ not_delivered
_delivery_order_status_cancelled_ cancelled
  • Multivende - Linio, Dafiti, Falabella
    • Relación de estados entre Multivende y Linio, Dafiti, Falabella
Multivende Linio, Dafiti, Falabella
_delivery_order_status_handling_

"PackedByMarketplace" 

(Se informa items y courier para el despacho)

_delivery_order_status_ready_to_ship_
ready_to_ship
_delivery_order_status_shipped_
shipped
_delivery_order_status_delivered_ delivered
_delivery_order_status_not_delivered_ returned
_delivery_order_status_cancelled_ canceled
  • Multivende - Mercado Libre 
    • Relación de estados entre Multivende y Mercado Libre
Multivende Mercado Libre
_delivery_order_status_pending_ pending
_delivery_order_status_handling_ handling
delivery_order_status_ready_to_ship_ ready_to_ship
_delivery_order_status_shipped_ shipped
_delivery_order_status_delivered_ delivered
_delivery_order_status_not_delivered_ not_delivered
_delivery_order_status_cancelled_ cancelled

El estado solo se cambia en Mercadolibre para los pedidos que no son ME2 excepto el estado cancelado.

  • Multivende - Paris
    • Relación de estados entre Multivende y Paris
Multivende Paris
_delivery_order_status_pending_
null
_delivery_order_status_handling_
confirmed
_delivery_order_status_shipped_
in_transit
_delivery_order_status_delivered_ delivered
_delivery_order_status_not_delivered_ failure
_delivery_order_status_cancelled_ failure
  • Multivende - Ripley
    • Relación de estados entre Multivende y Ripley
Multivende Ripley
_delivery_order_status_pending_
shipping
_delivery_order_status_shipped_
shipped
_delivery_order_status_delivered_
received
_delivery_order_status_cancelled_ cancelled
  • Multivende - Walmart Chile
    • Relación de estados entre Multivende y Walmart Chile
Multivende Walmart Chile
_delivery_order_status_pending_ Created
_delivery_order_status_handling_ Acknowledged
 _delivery_order_status_shipped_ Shipped
_delivery_order_status_delivered_ Delivered
_delivery_order_status_cancelled_ Cancelled
  • Multivende - Walmart México
    • Relación de estados entre Multivende y Walmart México 
Multivende Walmart México
_delivery_order_status_pending_ On Hold
_delivery_order_status_pending_ Created
_delivery_order_status_ready_to_ship_ Acknowledged
_delivery_order_status_shipped_ Shipped
_delivery_order_status_delivered_ Delivered
_delivery_order_status_cancelled_ Cancelled
  • Multivende - Magento
    • Relación de estados entre Multivende y Magento
Multivende Magento
_delivery_order_status_pending_
pending, new, pending payment, pending payPal 
_delivery_order_status_handling_
processing, on hold, payment review 
_delivery_order_status_delivered_ invoiced
_delivery_order_status_cancelled_ closed, canceled 
  • Multivende - Shopify
    • Relación de estados entre Multivende y Shopify
Multivende Shopify
_delivery_order_status_pending_
null
delivery_order_status_ready_to_ship_
confirmed
_delivery_order_status_shipped_
in_transit
_delivery_order_status_delivered_ delivered
_delivery_order_status_not_delivered_ failure
  • Multivende - VTEX 
    • Relación de estados entre Multivende y VTEX
Multivende VTEX
_delivery_order_status_under_review_
window-to-cancel
_delivery_order_status_pending_
ready-for-handling
_delivery_order_status_handling_ handling
_delivery_order_status_shipped_
invoiced (Solo si esta el DTE cargado)
_delivery_order_status_cancelled_ cancelled

 

Consideraciones especiales para la información logística por canal de venta

Cancelaciones parciales para el canal Paris:

Identificar los items cancelados: Para determinar qué artículo o artículos han sido cancelados en una orden de despacho, les instamos a buscar en el campo:

"checkoutLink" -> "externalContent" -> "subOrders "-> items al consultar la venta con Get checkout.

Dentro items, por cada uno de los items, en el campo “status” encontrarán la información detallada sobre la cancelación parcial en caso de que el ítem haya sido cancelado.

  • Ejemplo:
"status": {
  "id": 31,
  "name": "stock_shortage_refunded",
  "description": "Reembolsado por falta de stock en la db",
  "translate": "Problema con stock",
  "cancelable": false
}

Estas indicaciones solo aplican para el caso del marketplace Paris. 

 

Equipo Integraciones API Multivende

Más información
Estados de una orden con retiro en tienda

Conoce la información de los estados de una orden de acuerdo al tipo de entrega “Retiro en tienda”.

Los estados de las órdenes pueden variar según el tipo de entrega seleccionado por el cliente.
En el caso de retiro en tienda, el flujo de la orden se ajusta a las etapas propias de este método, que van desde la preparación del pedido hasta su retiro en el punto de venta.

Tipos de entrega para una orden

Para obtener los diferentes tipos de entrega que puede tener una orden se debe consultar el Endpoint Get delivery types. Actualmente contamos con dos tipos de entrega posibles, las cuales, en el response de la solicitud se obtiene el campo code, que puede tener los siguientes valores:

  1. “_delivery_type_delivery” = Despacho (el producto se envía a una dirección dada por el comprador).
  2. "_delivery_type_store_pickup" = Retiro (el producto lo retira el comprador en la dirección de la bodega asociada al stock del producto).
  3. "_delivery_type_mix" = Mixto (La orden está compuesta por varios productos de los cuales tiene retiro en tienda y despacho).

Entregas con retiro en tienda

En el endpoint Get Checkout entregamos información general del retiro en tienda, pero si necesitas información adicional como los documentos o logs de cambio de estado, consulta el endpoint Get pick up order.

Para realizar la integración con los sistemas, se debe hacer un mapeo de los estados de las órdenes en Multivende y el sistema con el que se va a integrar. Para ello, se consulta al endpoint Get pick up order statuses el cual retorna un array con todos los estados posibles de una orden en Multivende. 

Del response se deben guardar los campos _id y code, que deben ser mapeados con los estados del sistema.

A continuación, se detallan los posibles estados de las ventas en Multivende y su relación con los estados de las ventas en los canales.

  • Multivende
Estado en Multivende campo code Descripción
_pick_up_order_status_pending_
La orden ingresó en el sistema.
_pick_up_order_status_handling_
Se está preparando la orden para el retiro.
_pick_up_order_status_received_by_store_
La orden ha sido recibida por la tienda.
_pick_up_order_status_shipped_
La orden ha sido enviada a la tienda.
_pick_up_order_status_completed_
La orden se ha completado.
_pick_up_order_status_cancelled_
La orden se ha cancelado.
  • Multivende - Magento
    • Relación de estados entre Multivende y Magento
Multivende Magento
_pick_up_order_status_pending_
pending
_pick_up_order_status_pending_ new
_pick_up_order_status_pending_ pending payment
_pick_up_order_status_pending_ pending payPal
_pick_up_order_status_handling_ processing
_pick_up_order_status_handling_ on hold
_pick_up_order_status_handling_ payment review
_pick_up_order_status_cancelled_ closed
_pick_up_order_status_cancelled_
canceled
_pick_up_order_status_completed_
complete
  • Multivende - Mercado Libre 
    • Relación de estados entre Multivende y Mercadolibre
Multivende Mercadolibre
_pick_up_order_status_completed_ delivered

 

  • Multivende - Liverpool 
    • Relación de estados entre Multivende y Liverpool
Multivende Liverpool
_pick_up_order_status_pending_
waiting_acceptance
_pick_up_order_status_handling_
shipping
_pick_up_order_status_handling_
shipped
_pick_up_order_status_completed_
received
_pick_up_order_status_cancelled_
closed
_pick_up_order_status_cancelled_
canceled
_pick_up_order_status_cancelled_
refused
_pick_up_order_status_cancelled_ refunded
_pick_up_order_status_received_by_store_ to_collect

 

  • Multivende - Shopify
    • Relación de estados entre Multivende y Shopify
Multivende Shopify
_pick_up_order_status_cancelled_
Si existe cancelReason o la última fulfillment está CANCELLED
  • Si ya existe al menos un "fulfillment" (sin cancelación) el estado será: _pick_up_order_status_completed_

  • Si no hay fulfillments dentro del pedido aún:

    • último fulfillment open → pick_up_order_status_pending

    • último fulfillment in_progress → pick_up_order_status_received_by_store

  • Multivende - VTEX 
    • Relación de estados entre Multivende y VTEX
Multivende VTEX
_pick_up_order_status_handling_
handling
_pick_up_order_status_pending_
ready-for-handling
_pick_up_order_status_cancelled_
cancellation-requested
_pick_up_order_status_cancelled_
canceled
_pick_up_order_status_cancelled_
cancel
_pick_up_order_status_shipped_ invoiced
_pick_up_order_status_completed_ finished

 

Actualizar el estado de una orden con retiro en tienda

Para actualizar el estado de una orden con retiro en tienda, lo hacemos mediante el endpoint: PUT Update pick up order status. 

Enviando en el body los siguientes parámetros:

"PickUpOrderStatusId": "{{pick_up_order_status_pending_id}}",
"comment": "test comment",
"pickUpClosingComment": "test Pick Up Closing Comment",
"estimatedPickUpDateFrom": "2019-09-08 16:19:06",
"estimatedPickUpDateTo": "2019-09-10 09:19:06",
"effectivePickUpClosingDate": "2019-09-11 16:19:06"

 

 

Equipo Integraciones API Multivende

Más información
Implementación de multiboxing con la API de Multivende

Cuando un pedido requiere varias cajas, Multivende permite generar múltiples guías de envío para un mismo despacho. A esta función se le llama Multiboxing.

 

¿Cuándo es útil Multiboxing?

Multiboxing te permite dividir un pedido en varias cajas, asignando a cada una su propia guía de rastreo. Así puedes dar seguimiento individual a cada paquete, tanto tú como tu cliente.
Esta opción es especialmente útil cuando:

  • El producto no cabe en una sola caja.
  • El pedido incluye varias piezas grandes o voluminosas.
  • La paquetería exige separar los productos por peso o dimensiones.
  • Deseas optimizar costos o tiempos de entrega distribuyendo mejor el contenido.
     

¿Cómo configurar Multiboxing paso a paso?

A continuación te mostramos el flujo recomendado para configurar tus cajas y generar múltiples etiquetas desde Multivende.

 

1. Obtén las dimensiones de los productos en tu despacho (opcional, si necesitas calcular manualmente tus cajas)

Puedes consultar las dimensiones de los productos incluidos en tu pedido usando el endpoint:

👉 Get Delivery Order in Checkout Items
GET /delivery-order/checkout-items - Ver endpoint en Postman

Con esta información podrás aplicar la lógica que prefieras para determinar cuántas cajas necesitas y qué producto irá en cada una.

Este paso es opcional si ya cuentas con configuraciones previas o deseas usar cajas por defecto.

2. Consulta las cajas configuradas o las cajas por defecto

Multivende ofrece la opción de revisar las cajas que ya tengas registradas, o bien visualizar las cajas por defecto que aplicaremos cuando no edites la configuración.

👉 Get Boxes
GET /boxes - Ver endpoint en Postman

Si una caja corresponde a la configuración por defecto, verás el campo:

"default": true

 

3. Configura las cajas que utilizarás para este despacho

Una vez que tengas claro cómo vas a distribuir los productos, debes registrar las cajas necesarias para tu envío.

👉 Post Boxes
POST /boxes - Ver endpoint en Postman

Este endpoint recibe un array en el que debes indicar:

  • Las dimensiones de cada caja (alto, ancho, largo, peso).
  • Los productos asignados a cada caja.
     

Con esto, Multivende podrá generar las guías correspondientes de forma individual.

 

4. Cambia el estado de la orden para continuar con el proceso de despacho

Una vez configuradas las cajas, debes mover la orden al estado En manejo, lo que confirma que estás listo para generar las etiquetas.

Guía relacionada:
🔗 Estados de una orden con despacho

ℹ️ Información: 
Una vez que confirmes tu orden, el canal de venta ya no permitirá la edición de tus cajas.

 

5. Genera las etiquetas de envío

Finalmente, puedes solicitar la generación de etiquetas tus cajas utilizando el flujo estándar de etiquetas en Multivende.

Guía relacionada:
🔗 Cómo generar y consultar etiquetas de los Marketplace

 

 

Equipo Integraciones API Multivende

 
Más información

Seguridad

Ver los artículos
Certificación ISO 27001: Sistema de Gestión de Seguridad de la Información

Certificación ISO 27001 - Conoce más sobre la certificación de Multivende.

 

Multivende ha obtenido la certificación ISO 27001, la norma internacional que garantiza las mejores prácticas en gestión de la seguridad de la información. Esta certificación reconoce nuestro compromiso con la protección de los datos y la gestión de la seguridad en todos nuestros procesos.

La ISO 27001 se centra en identificar y gestionar los riesgos relacionados con la información, estableciendo un marco robusto para proteger la confidencialidad, integridad y disponibilidad de los datos. Con esta certificación, aseguramos que nuestros sistemas y procedimientos cumplen con los más altos estándares de seguridad, brindando confianza tanto a nuestros clientes como a nuestros socios comerciales.

Nuestro equipo trabaja continuamente para mantener estos estándares, implementando políticas y controles que garantizan la seguridad en cada etapa de nuestro trabajo.

 

 

 

Equipo Integraciones API Multivende

Más información
Privacidad e Integridad de los Datos

Consulta la información asociada a los procesos de privacidad e integridad de los datos de nuestra API.

  • Todas las interacciones con la API de Multivende deben realizarse usando https.
  • Será responsabilidad de Multivende actualizar el certificado correspondiente cuando este vaya a expirar.
  • Será responsabilidad de quién consuma la API realizar todas las llamadas utilizando https con la versión de TLS> = 1.2. Para detalles del certificado se puede usar openssl en el terminal: 
echo | openssl s_client -showcerts -servername app.multivende.com 
-connect app.multivende.com:443 2/dev/null | openssl x509 -inform pem -noout –text

 

¿Cuál es el algoritmo de cifrado que utilizamos?

Los algoritmos de cifrado que utilizamos son los siguientes:

Transport Layer Security (TLS) el cual es un protocolo criptográfico que protege las comunicaciones por Internet y Secure Hash Algorithm (SHA).

  • TLS 1.2
  • TLS 1.3  
  • SHA-256

¿Utilizamos Server Name Indication (SNI)?

Si, dado que Cloudflare utiliza SNI por defecto.

 

 

 

Equipo Integraciones API Multivende

 
Más información
Rangos de IPs en Multivende

Conoce los rangos de IPs utilizados por Multivende en esta información detallada.

Multivende opera sobre instancias de Amazon con la IP estática 3.15.93.102 la cual puedes registrar en el white list de IP's dentro de tu sistema.

Multivende notificará sobre cambios en la región en la que se encuentre operando a todos quienes estén consumiendo sus servicios.

 

 

Equipo Integraciones API Multivende

 
Más información
Recomendaciones a nivel de seguridad para las integraciones

Sigue nuestras recomendaciones para garantizar la seguridad de tu integración.

Encriptación de datos:

Ventajas del uso de una IP estática a nivel de seguridad:

  • Identificación confiable: Una IP estática te permite identificar de manera consistente a tu contraparte porque siempre tendrá la misma dirección IP. Esto puede facilitar la implementación de controles de acceso basados en IP (por ejemplo, listas blancas).
  • Mayor control sobre la seguridad de la red: Como puedes predecir de dónde vendrán las peticiones, es posible configurar firewalls y reglas específicas para esa IP, lo que añade una capa adicional de seguridad.
  • Riesgo de exposición: Si alguien malintencionado descubre esa IP estática, podría intentar atacarla directamente. Sin embargo, si la comunicación está protegida por HTTPS, el cifrado de la conexión protegerá los datos en tránsito.

 

 

 

Equipo Integraciones API Multivende

 

Más información

Preguntas Frecuentes

Ver los artículos
¿Eres un Partner de Multivende? : Sigue nuestras recomendaciones para realizar integraciones vía API.

En este artículo, te compartimos algunas recomendaciones para realizar tu integración vía API con Multivende.

Si debes crear una integración porque formas parte de nuestro Developers Partners Program o si ya te encuentras trabajando en una integración para un merchant de Multivende, debes seguir las siguientes recomendaciones para que puedas brindar la mejor experiencia de trabajo al merchant y para que tus procesos también sean más optimizados.

Desarrollo de integraciones como Partner de Multivende

Si eres miembro de nuestro Developers Partners Program como desarrollador de integraciones con Multivende, debes tomar en cuenta las siguientes recomendaciones:

Consideraciones como desarrollador:

  • Debes asegurarte de que tu equipo de desarrollo asista al onboarding de TI, ya que en este se dejará configurada la cuenta test del merchant para las pruebas en ambiente QA de la integración.

  • Como integrador debes asistir a las reuniones semanales pautadas durante el proyecto de integración.

  • Te pedimos que seas muy claro en las funcionalidades que cubre tu integración, las cuáles debes notificarnos en el Go Live y dejar definido si es factible realizar algún desarrollo customizado que el merchant requiera.

Consideraciones de parte de Multivende:

  • Nuestro equipo de API hará seguimiento para confirmar la finalización del proyecto, es importante que des respuesta a nuestros emails y realizar una reunión para validar que la integración finalizó con éxito.
  • Recuerda que ante cualquier duda o inconveniente en la conexión con nuestro servicio de integraciones, puedes consultarnos a través del correo electrónico api@multivende.com.

Desarrollo de integraciones para clientes

Si ya te encuentras desarrollado una integración específica para un merchant de Multivende, debes tomar en cuenta las siguientes recomendaciones

Consideraciones como desarrollador:

  • Una vez cerrado tu acuerdo comercial, mantén en todo momento la comunicación, es importante que vayas dando estatus de los avances de la integración y asistir a todas a las reuniones pautadas.
    Recuerda que si requieres apoyo del equipo de API de Multivende puedes avisarnos y sumarnos a la comunicación.
  • Debes ser claro en las funcionalidades que cubre tu integración y deja definido si es factible realizar algún desarrollo customizado que el merchant requiera.
  • Debes llenar el formulario de integraciones en conjunto con el merchant cuando el equipo de Onboarding lo solicite para definir el alcance de la integración previo al kickoff.
  • Como integrador, debes asistir a las reuniones semanales pautadas durante el proyecto de integración.

  • Debes solicitar al merchant directamente los accesos a sus cuentas productivas en Multivende y gestionar las pruebas y recursos necesarios para validar la integración.

  • Debes asegurarte de que tu equipo de desarrollo asista al onboarding de TI donde se deja configurada la cuenta test de merchant para las pruebas en ambiente QA de la integración. 
  • Como integrador, debes garantizar que la integración cumpla con las necesidades del merchant.

Consideraciones de parte de Multivende:

  • Multivende es responsable de realizar el kickoff inicial del proyecto para un merchant en conjunto. Como integrador, debes asistir a esta reunión con los miembros de tu equipo de TI que realizará la integración, ya que en el kickoff se debe dejar claro el alcance del proyecto.

  • Nuestro equipo de API hará seguimiento para confirmar la finalización del proyecto, es importante que des respuesta a nuestros emails y realizar una reunión para validar que la integración finalizó con éxito.

  • Recuerda que ante cualquier duda o inconveniente en la conexión con nuestro servicio de integraciones puedes consultarnos a través del correo electrónico api@multivende.com.

¡Manténte atento a las comunicaciones API!

Te aconsejamos estar atento a las comunicaciones de nuestro equipo de desarrollo ante cualquier comunicación que enviemos referente a la actualización en nuestra API, esto con el fin de garantizar que tu desarrollo no se vea afectado ante algún cambio.

 

 

 

Equipo Integraciones API Multivende

 
Más información
¿Dónde puedo ver mi Client ID y Client Secret?

Necesitas el Client ID y Secret para obtener un token y acceder a los servicios de nuestra API.

 

Debes ingresar en tu cuenta previamente creada realizando login a través de:

Tanto el Client ID como el Client Secret los puedes encontrar ingresando a tu lista de aplicaciones.

Haz click en el botón de acciones como se muestra en la siguiente imagen:

Al darle click al botón de acciones podrás editar los datos de tu aplicación, además, en la parte superior del formulario encontrarás el Client ID y el Client Secret resaltado en color azul.

 

 

 

Equipo Integraciones API Multivende

Más información
¿Dónde puedo ver el Merchant ID de mi cuenta?

El Merchant ID es clave para consultas en la API. Aquí aprenderás a ubicarlo en la interfaz.

 

  • Para consultar tu ID de comerciante, debes seguir los pasos a continuación:

1.- Debes hacer clic en el ícono del lápiz que aparece al lado del nombre de la cuenta. Este enlace te llevará a visualizar/editar los datos de la cuenta.

 

2.- Toma de la URL el ID, este es el identificador de la cuenta (Merchant_id).

 

 

¡Listo! Ya obtuviste tu Merchant ID.

 

 

 

Equipo Integraciones API Multivende

 
Más información
¿Dónde puedo ver los ID de los recursos en la plataforma?

Aprende a consultar los ID de recursos en la interfaz de la plataforma Multivende.

 

Para facilitar la visibilidad entre los ID entregados vía API y la plataforma, en la URL de Multivende puedes verificar el ID del ítem seleccionado.

Por ejemplo, al seleccionar "editar" una bodega la URL será:

https://app.multivende.com/stores-and-warehouses/XXXXXXXX-3639-4c28-9e1c-XXXXXXXXXXXX/edit

Donde el ID correspondiente a la bodega es: XXXXXXXX-3639-4c28-9e1c-XXXXXXXXXXXX.

 

 

 

Equipo Integraciones API Multivende

Más información
¿Cómo identifico el Marketplace Connection Id para un canal de venta via API?

Este campo es el identificador único de una conexión con un canal de venta de la cuenta de un merchant.

 

Puedes consultar la información de este Id para las conexiones de las cuentas de un merchant mediante el endpoint Get Marketplace connections  , la api retornará un array con todas las conexiones disponibles en la cuenta del merchant:

{
  "entries": [
    {
      "_name": "Mercadolibre",
      "_id": "a58xxxe-1fb6-4bd2-80xx-1b795xxxa39a",
      "name": null,
      "country": "cl",
      "pictureUrl": "https://s3.amazonaws.com/im-shared/mercadolibre.png",
      "provider": "mercadolibre",
      "allowPickUpInStore": null
    }
  ],
  "pagination": {
    "offset": 0,
    "limit": 50,
    "total_pages": 1,
    "current_page": 1,
    "next_page": 0,
    "previous_page": 0,
    "total_items": 1
  }
}

 

En el request de la solicitud se debe identificar el canal de venta al que estamos consultando las conexiones.

Marketplace

  • mercadolibre
  • linio
  • dafiti
  • ripley
  • paris
  • fcom
  • amazon
  • walmart
  • coppel

Online Store:

  • vtex
  • magento
  • shopify
  • prestashop
  • wocommerce
  • jumpseller
  • bigcommerce

 

 

Equipo Integraciones API Multivende

 

 

 

Más información
¿Por qué no recibo los Webhooks? Diagnóstico y pasos a seguir

Si tienes problemas con Webhooks, revisa varios factores que pueden afectar su funcionamiento.

 

A continuación, se detallan algunas posibles causas y soluciones para que puedas realizar las validaciones necesarias.

1. Enviar CallbackURL para realizar validaciones internas

  • Una de las primeras acciones que debes tomar es asegurarte de que la URL de devolución (CallbackURL) esté correctamente configurada. Esta URL es crucial para que el servidor receptor pueda validar las solicitudes de Webhook. Asegúrate de que la CallbackURL esté configurada correctamente en tu aplicación y que esté preparada para recibir y procesar los Webhooks de manera adecuada.

2. El problema puede ser porque no está permitiendo la IP de Multivende

  • Otro posible motivo por el que no recibes los Webhooks es que tu servidor no esté permitiendo la IP de Multivende (o el servidor que está enviando los Webhooks).
  • Si tu firewall o configuración de red bloquea estas direcciones IP, los Webhooks no podrán llegar correctamente.
  • Verifica que las direcciones IP de origen estén permitidas en tu servidor para asegurarte de que el tráfico de los Webhooks no sea bloqueado.

3. CallbackURL sin certificado SSL válido

  • Una de las razones más comunes por las cuales los Webhooks no se reciben es un problema con el certificado SSL de la CallbackURL. Si la URL de destino no tiene un certificado SSL válido o si no está configurada para aceptar conexiones seguras (https), los Webhooks pueden ser rechazados por motivos de seguridad.
  • Asegúrate de que tu servidor tenga un certificado SSL válido y que la URL de Callback sea accesible a través de HTTPS.

4. Tiempo de procesamiento de la solicitud muy alto (> 2 segundos)

  • El tiempo de procesamiento de la solicitud también puede ser un factor importante. Si el procesamiento de la solicitud que recibes en el Webhook demora más de 2 segundos, es posible que el sistema de Webhooks no lo registre correctamente o que el Webhook se agote por tiempo de espera.
  • Revisa el rendimiento de tu servidor y asegúrate de que las solicitudes se procesen de manera eficiente y en tiempos adecuados para evitar problemas.

Conclusión

Si estás experimentando problemas con la recepción de Webhooks, asegúrate de validar cada uno de los puntos mencionados anteriormente. Revisar la configuración de la CallbackURL, permitir las IPs correctas, contar con un certificado SSL válido y optimizar el tiempo de procesamiento de las solicitudes te ayudará a resolver los inconvenientes y mejorar el flujo de trabajo con Webhooks.

Si después de verificar estos puntos el problema persiste, puede ser útil realizar pruebas adicionales y revisar los logs de tu servidor para obtener más información sobre el origen del problema.

Más información
¿Cómo crear un ticket para contactar al Equipo de Integraciones vía API?

¿Necesitas ayuda con la API? Crea un ticket y el equipo de Integraciones te asistirá pronto.

 

Paso 1: Accede a la Plataforma de Soporte

Lo primero que debes hacer es ingresar a la plataforma de soporte o al sistema de tickets de Multivende. Este acceso se encuentra en la sección de Soporte o Ayuda de nuestro sitio web o dentro de la misma aplicación.

  • Desde la web: Dirígete a la página de soporte, encontrarás la opción "Enviar una solicitud"

 

  • Desde la aplicación: Si estás trabajando en nuestra plataforma, busca la opción "Crear ticket de ayuda" en el menú principal.

Paso 2: Selecciona la Categoría Correcta

Una vez que hayas ingresado al sistema de soporte, deberás elegir la categoría adecuada para tu solicitud. En este caso, selecciona "Necesito crear un ticket de soporte para integraciones API" que te llevará directamente al formulario de tickets relacionado con este tema.

Paso 3: Completa el Formulario de Ticket

El siguiente paso es completar el formulario con los detalles de tu solicitud. Asegúrate de proporcionar la mayor cantidad de información posible para que el equipo de Integraciones pueda ayudarte de manera eficiente.

Los campos más comunes en el formulario incluyen:

  • Correo electrónico: Escribe el correo en donde te enviaremos la confirmación de la creación de tu solicitud y en donde podrás realizar el seguimiento.
  • Nombre y Apellido: De la persona que está creando la solicitud.
  • Asunto del ticket: Escribe un resumen breve y claro de tu solicitud o problema.
  • Nombre de la empresa: Nombre de la empresa que realiza la integración más el nombre del equipo integrador.
  • Sistema que estás integrando: Indicados el sistema, ya sea ERP, OMS, etc...
  • Descripción detallada: Explica detalladamente el problema que estás enfrentando, la duda que tienes o el tipo de asistencia que necesitas. Incluye cualquier error o mensaje que hayas recibido, así como el contexto de tu integración (por ejemplo, versión de la API, pasos que seguiste, etc.).
  • Información adicional: Podrás adjuntar archivos como capturas de pantalla, logs de errores, ejemplos de código, etc. Estos detalles ayudarán al equipo a entender mejor el problema.

Paso 4: Enviar el Ticket

Una vez que hayas completado el formulario y revisado toda la información, haz clic en el botón de Enviar para crear el ticket. Esto enviará tu solicitud directamente al equipo de Integraciones vía API.

Paso 5: Espera la Confirmación y Respuesta

Después de enviar el ticket, recibirás un correo de confirmación con el número de seguimiento del ticket. El equipo de Integraciones comenzará a trabajar en tu solicitud y se pondrá en contacto contigo para proporcionarte una solución o más detalles si fuera necesario.

  • Tiempo de respuesta: El tiempo de respuesta puede variar dependiendo de la complejidad de la solicitud, pero el equipo de Integraciones se compromete a responder lo antes posible.

Paso 6: Cerrar el Ticket

Una vez que se haya resuelto tu solicitud y estés satisfecho con la solución, se procederá a cerrar el ticket. Si en algún momento tienes más preguntas o problemas adicionales, puedes abrir un nuevo ticket en cualquier momento.


Consejos para Crear un Ticket Eficaz

  • Sé claro y preciso: Cuanto más detallada sea la información que proporciones, más fácil será para el equipo de Integraciones ayudarte.
  • Incluye ejemplos y código: Si estás enfrentando un problema técnico, incluir fragmentos de código, logs o capturas de pantalla puede ayudar a que se resuelva más rápidamente.
  • Prioriza la solicitud: Si el problema es urgente, asegúrate de marcarlo con la prioridad más alta para que el equipo pueda darle atención inmediata.

 

Equipo de integraciones API Multivende.

Más información