Los webhooks son una herramienta para recuperar y almacenar datos de un evento determinado. Te permiten registrar una URL https:// a la cual Ventiapp estaría llamando cuando el evento registrado se dispare. Estos son los eventos que contamos con webhook:
Creación de Webhook, aquí debemos enviar los siguientes datos para que se cree un webhook en Ventiapp. Es obligatorio que la url sea en https://
Este responderá con el ID del webhook, importante para poder eliminarlo.
{"webhook": {"topic":"orders/created",//REQUIRED"address":"https://whatever.hostname.com/",//REQUIRED"authorization":{ //OPTIONAL "headers": [{"header1":"value1"}, {"header2":"value2"}],// CUSTOM HEADERS"params": [{"param1":"value1"} , {"param2":"value2"}],//CUSTOM URL PARAMS"addressLogin":"https://whatever.hostname.com/token",//CUSTOM URL ADDRESS LOGIN"body":{"customKey1":"value1", },//CUSTOM BODY "tokenKey":"auth_token",//OBJECT MAPPING FOR RESULT TOKEN"expiresKey":"expires_in",//OBJECT MAPPING FOR RESULT TOKEN"authType":"oauth",// TYPE OF TOKEN TO BE USED, CAN BE OAUTH OR API KEY"tokenType":"Bearer" } }}
Funcionamiento de Authorization (beta)
Actualmente el body de authorization tiene dos maneras distintas de operar, este campo se define en authType
oauth:
Esta funcionalidad generará un token contra el endpoint deseado, el token obtenido se utilizará para el posteo de todos los topics en el webhook definido
Headers: Contiene la información requerida para hacer login contra el endpoint OAuth que generará el token.
Params: Contiene los parámetros que deben ir a nivel de URL en el endpoint definido.
AddressLogin: URL del endpoint definido para generar tokens
Body: Cuerpo de la llamada que se enviará como POST al endpoint definido
TokenKey: Clave (nombre del objeto) donde se retornará el token OAUTH. Ej: "access_token"
ExpiresKey: Clave (nombre del objeto) donde se retornará la duración de vida en segundos del token
TokenType: Tipo de token y como se consumirá, ej: Bearer, Token, Basic.
Esta funcionalidad utilizará un set de API-KEYs definido en el nivel Headers, estos mismos se almacenarán y utilizarán para consumir al webhook definido
Headers: Contiene la información requerida para autenticarse contra el URL definido.
La información que viaja por los webhooks es completamente dinánica, es decir, es posible que varios campos cambien de información, inclusive los carritos de compra. Esto depende de la información que nos informa cada canal de ventas.
Es MUY RECOMENDADO que se implementen los webhooks de actualización de ordenes ya que en estos la información puede que tenga mucha variación.
Ejemplos de cambios de información:
Cambios de información de Shipping
Cambios en el carrito (items)
Cambios en costos de envío
Cambios de estado de orden
Cambios de estado de shipping
Otro ejemplo muy importante, es cuando se generra la orden en primera instancia, es probable que no tenga guía de shipping ni información de shipping hasta unos varios minutos luego, en los cuales se disparará una actualización de orden.
Carrito de Mercado Libre
Mercado Libre hace separación de ordenes del mismo carrito en varias llamadas. Es por eso que viene el campo cartId para que se pueda adaptar una agrupación desde el lado del desarrollo.
Compras de Linio
Linio tiene 2 tipos de ID, uno que es el campo Id de la orden dentro de su canal, y otro que se llama Número de la orden. El que figura dentro de Linio Seller Center es el campo Número de la orden, en la API de Ventiapp este campo es externalNumber
Digital Orders
Este tipo de orden solamente aplica para productos digitales, en caso de que el usuario visite la URL que se le envía luego de utilizar el método AddDigitalRedeems se disparará el webhook de orders/redeemed
Orders/Returned
Este webhook actualmente se encuentra habilitado para Mercado Libre en caso de una devolución express. Cuando sucede este tipo de devolución ? Aquí podrás ver Devoluciones Express
Orders/Shipment
Este webhook actualmente se encuentra habilitado en caso de asignación de un envío, al popularse la información del envío este webhook se dispara por única vez. Las órdenes que contengan el estado buffered también se notificarán.
Orders/Tracking
Este webhook actualmente se encuentra habilitado en caso de que la información de tracking de una órden esté completa. En el caso de envíos que tengan información retrasada (ej. Mercado Libre con estado buffered) la notificación se disparará hasta que se complete dicha información. Es recomendable utilizar este webhook para saber en que momento la guía de envío se encuentra disponible para impresión
Invoice/Created
Este webhook se encuentra habilitado para los casos donde se genera un documento fiscal relacionado con la orden.