Equipo Integraciones API Multivende
Para registrar las ventas desde Multivende hacia un sistema tenemos a disposición dos herramientas:
Se debe consultar las ventas de un rango de fechas cada M (Frecuencia de ejecución) horas, estableciendo lo siguiente:
Deberas usar el endpoint Get checkouts light para realizar el sondeo de las órdenes desde Multivende.
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 marketplace 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, es decir: "YYYY-mm-dd hh:mm:ss".
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/p1?_updated_at_from=2020-03-18%2018%3A30&_updated_at_to=2020-03-18%2020%3A30' \
--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" } ], "paginación": { "desplazamiento": 0, "limit": 50, "total_pages": 1, "current_page": 1, "next_page": 0, "previous_page": 0, "total_items": 11 } }
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.
Una vez se tenga el "_id" de la venta (response anterior), se consulta su detalle con el endpoint Get Checkout.
Cuando el response tiene el campo:
Importante:
Los campos DeliveryOrdersInCheckouts y PickUpOrders son arrays dado que una venta puede tener más de un despacho o retiro en tienda asociado.
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.
Podemos consultar el detalle de la orden para tomar la data relevante para la operación logística mediante el endpoint delivery order.
Podemos consultar el detalle de la orden para tomar la data relevante para la operación logística mediante el endpoint pickup order.
Se consultan ambos endpoints de acuerdo al tipo de entrega de cada producto.
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" } ] }
Si se consultan los id's asociados a las ventas con error en la api de Get checkout esta dará un 404 debido a que las ventas con error no quedan guardadas en Multivende.
Equipo Integraciones API Multivende
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" } ] }
"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", "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" } ]
Dafiti y Falabella
Esta se informa dentro del campo "InvoiceRequired"
{ "InvoiceRequired: "false", }
{
"InvoiceRequired: "false",
}
Mercadolibre
Se informa dentro de "remote_order_extra_billing_information --> "billing_info" --> "additional_info"
Si la orden de compra en una boleta llegará de la siguiente manera:
{ "type": "INVOICE_TYPE", "value": "Boleta" },
Y en caso de ser factura:
{ "type": "INVOICE_TYPE", "value": "Factura" },
Paris
Se informa dentro del campo "originInvoiceType".
{ "originInvoiceType: "boleta, }
{ "originInvoiceType: "factura, }
Ripley
Se informa dentro del campo "has_invoice"
{ "has_invoice: "false, }
{ "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
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:
A continuación te detallamos algunas consideraciones a tener en cuenta en la carga de los documentos tributarios para los siguientes canales de ventas:
De lo contrario el documento quedará con error de sincronización.
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:
Response:
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.
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:
Multivende genera el código y lo informa de vuelta en el correo de la solitud.
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:
*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:
Puedes consultar el _id del emisor de documento asociado a la cuenta de un merchant mediante el endpoint: Get electronic billing document emitters
Para consultar los documentos electrónicos de una orden puedes consultar al siguiente endpoint Get electronic billing documents of a checkout
Si se trata de una orden de tipo Fulfillment, recuerda que para verificar el tipo de envío debes consultar el campo "shippingMode".
Paris:
Mercadolibre:
Falabella
Ripley
Equipo Integraciones API Multivende
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.
Ejemplo Response:
Ejemplo Response:
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:
Ejemplo Response:
Equipo Integraciones API Multivende
Para poder registrar una venta se deben cumplir las siguientes condiciones:
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:
A continuación, te detallamos los valores válidos para los campos
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
Actualización del estado del pago
Actualización del estado de verificación de la orden
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
Conoce cómo configurar atributos personalizados a una venta a través de la API.
Grupos de atributos personalizados para las ventas: A través de la API de Multivende puedes crear, editar o consultar estos grupos de atributos personalizados.
Atributos personalizados para las ventas: los atributos se crean dentro un grupo. A través de la API de Multivende puedes crear, editar o consultar estos atributos personalizados.
Equipo Integraciones API Multivende