API de ventas V4

Conecta Bunker DB con tus formularios online y recibe todos los datos de tus consumidores en tiempo real

Marcelo Ayala avatar
Escrito por Marcelo Ayala
Actualizado hace más de una semana

POST: /api/v4/sales

La información requerida para registrar cada venta es, por un lado, el dato match_key que refiere al modelo de búsqueda y asignación a un correspondiente registro preexistente.

Por otro lado, tenemos la información de la venta:

  • event_time: (requerido) - día y hora en formato YYYY-MM-DD HH:MM:SS.

  • order_id: (string) - Nro de orden para asociar con el sistema de ventas externo.

  • external_sale_id: (string) - Identificador de la venta en el sistema externo.

  • value - Monto de la venta.

  • currency - Moneda usada en la transacción, si no es provista, se utilizará la moneda definida para la marca. Se sigue el estándar internacional ISO 4217.

Ejemplo de venta:

[

{

"match_key": {

"phone": "4692023332"

},

"event_time": "2019-07-13 12:34:21",

"order_id": "12332223421"

}

]

Como se muestra, el match_key es un elemento que contiene la expresión de búsqueda para resolver el registro posible.
Los campos disponibles son:

  • id

  • document

  • email

  • phone

  • cellphone

La asignación es directa y puede producir los siguientes resultados:

  • created/updated: Venta creada o actualizada correctamente para el registro.

  • not found: No se encontró el registro según id, email, phone, cellphone, documento - Estos campos refieren al modelo de atribución implementado en Bunker DB analytics donde pueden devolver los mismos estados que el anterior caso, sí se pudo detectar con exactitud el registro relacionado. O bien devolver:

  • not unique: En este caso no se pudo identificar un registro único, y se incluyen las coincidencias en la respuesta para que el operador pueda seleccionar el que más se ajuste (volviendo a registrar la venta pero en este caso usando el id correspondiente).

Estados de respuesta

Created, updated, not_found y not_unique a los que se les suma invalid, que solo aplica cuando la fecha de event_time está mal formada o no se pudo reconocer.

La respuesta mantiene el mismo orden que la información de entrada, agregando:

  • sale_id: Identificador de la venta solo para los estados created/updated.

  • status: Refiere a uno de los estados previamente citados (created, updated, not found, not unique, invalid).

  • reason: Información complementaria al estado, en caso que lo requiera.

  • matches: Solo para el estado not unique y es donde se proporciona la lista de registros que corresponde con el macheo por atribución y para los que no se pudo identificar un único registro.

  • userdata_id: Se retorna el identificador del registro matcheado, solo para los estados: created/updated.

Respuesta de ejemplo para caso: not_unique

[

{

"match_key": {

"email": "[email protected]"

},

"event_time": "2016-08-10 11:14:13",

"value": 2200,

"response": {

"status": "not unique",

"reason": "Can't resolve unique registry by attribution",

"matches": [

{

"BunkerID": "41369",

"CampaignRefID": null,

"First Name": "Mateo",

"Last Name": "Menestrina",

"Email": "[email protected](opens in new tab)",

"Record created at": "2015-12-03 00:00:00",

"Document": null,

"Document Type": null,

"Document Country": null,

"Phone": null,

"Cellphone": null,

"Gender": null,

"Birthday": null,

"Address": null,

"City": null,

"State": null,

"Country": null,

"Postal Code": null,

"Device": null

},

{

"BunkerID": "41370",

"CampaignRefID": null,

"First Name": "Joe",

"Last Name": "Doe",

"Email": "[email protected]",

"Record created at": "",

"Document": null,

"Document Type": null,

"Document Country": null,

"Phone": null,

"Cellphone": null,

"Gender": null,

"Birthday": null,

"Address": null,

"City": null,

"State": null,

"Country": null,

"Postal Code": null,

"Device": null

}

]

}

}

]

Respuesta de ejemplo para caso: created y updated

[

{

"match_key": {

"id": "41367"

},

"event_time": "2019-07-13 12:34:21",

"order_id": "12332223421",

"response": {

"sale_id": 5,

"status": "created",

"userdata_id": "41367"

}

},

{

"match_key": {

"email": "[email protected]"

},

"event_time": "2016-02-10 11:14:13",

"order_id": "3325-uy",

"response": {

"sale_id": 3,

"status": "updated",

"userdata_id": "41367"

}

}

]

Respuesta de ejemplo para caso: not_found

[

{

"match_key": {

"id": "4136799999"

},

"event_time": "2019-07-13 12:34:21",

"order_id": "12332223421",

"response": {

"status": "not_found",

"reason": "Userdata not found",

"userdata_id": "4136799999"

}

}

]


Respuesta de ejemplo para caso: invalid

[

{

"match_key": {

"id": "4136799999"

},

"event_time": "30-02-2020",

"value": 545.5,

"response": {

"status": "invalid",

"reason": "The parsed event_time was invalid",

"userdata_id": "4136799999"

}

}

]

👉🏽Los datos creados con la dirección [email protected] se guardarán en la instalación durante una semana.

¿Ha quedado contestada tu pregunta?