Palabra Clave

Contenidos

Introducción

Con el fin de garantizar entregas y reducir PNR contradictorios, se presenta la necesidad de implementar mecanismos que permitan validar la correcta entrega de los paquetes.

Esto requiere que, previo a la entrega de los paquetes, el sistema informe al driver que debe solicitar una Palabra Clave al receiver para poder corroborar la identidad del mismo.

Con el fin de subsanar posibles problemas de conectividad, se ha implementado adicionalmente al mecanismo de validación Online, un mecanismo para realizar la validación de manera Offline para permitir la normal entrega de los paquetes aun en zonas que no dispongan de buena conectividad.

Obtención de la Palabra Clave durante la autorización del envío

Proceso de entrega

Nota:
  • No todos los paquetes requieren del proceso de validación de Palabra Clave.
  • Para determinar si un paquete requiere de este proceso, deberá consultarse el valor del campo "keyword" del response enviado durante la Autorización del envío. La existencia del campo con algún valor implica la obligatoriedad de la validación.

Validación Online

Este es el principal mecanismo de validación que deberá ser utilizado.

Antes de realizar la entrega del paquete, el driver deberá solicitar la Palabra Clave al receiver e ingresar la misma en la aplicación para que ésta valide contra los servicios de Mercado Libre.

Ingreso de Palabra Clave Correcta

Ingreso de Palabra Clave Incorrecta

 

 

Importante:
  • Para seguridad se utilizará OAuth

Request:

POST 'https://api.mercadolibre.com/shipments/keyword_validation' \ --header 'Authorization: Bearer {accessToken}'

Formato Request

Dentro del body se enviará un objeto JSON con los campos listados a continuación:

NombreTipo de datoDescripciónTipo
keywordStringPalabra Clave informada por el receiverMandatorio
shipments_idsLong[]Identificador único del envío usado por Mercado Libre que se requiere validar. En aquellos casos en que se entreguen varios paquetes a un mismo receiver, es posible enviar la lista de shipment_id para validar con una única Palabra Clave.Mandatorio
methodStringIndica si la llamada está siendo realizada de forma online u offine.

Valores posibles:

  • online
  • offline
Opcional
driver_idStringIdentifica el driver que realiza la entrega del paqueteOpcional

Formato Response

Cuando la validación fuese satisfactoria, el resultado del POST retornará un código 200. En estos casos no se incluirá contenido dentro del body de la respuesta.

En aquellos casos en que la validación de la Palabra Clave fuese incorrecta, se incluirá dentro del body de la respuesta la siguiente información:

NombreTipo de datoDescripciónTipo
messageStringMensaje de respuestaMandatorio
errorStringCódigo de errorMandatorio

Status Codes

StatusCódigo HTTPDescripciónAcción
SUCCESS200La validación fue satisfactoriaEl paquete puede ser entregado.
FAILED400La validación no fue satisfactoriaSe deberá prestar atención al campo "error" dentro del body de la respuesta para analizar como continuar. Si el error es "keyword_invalid" se deberá solicitar una nueva Palabra Clave y validarla. Si el error es "too_many_request" ya no podrá volverse a validar la Palabra Clave hasta el próximo día.
ERROR500Cualquier error del lado del servidor. En este caso, "error" indicará la causa del error.Se podrá volver a intentar hasta obtener una respuesta satisfactoria de acuerdo al esquema de reintento definido. En caso de persistir, se deberá realizar el proceso de validación Offline

Ejemplos

Request:

POST 'https://api.mercadolibre.com/shipments/keyword_validation' 
\ --header 'Authorization: Bearer {accessToken}'
{
    "keyword": "manzana" ,
    "method": "online" ,
    "driver_id": "123" ,
    "shipments_ids": [10101033319242, 10101053419321]
}

Response:

SUCCESS (200 OK)

FAILED (400)

{
    "message": "The keyword is invalid",
    "error": "keyword_invalid",
}
{
    "message": "Too Many Requests",
    "error": "too_many_request",
}

ERROR (5xx)

{
        "message": "Internal Server Error",
        "error": "unexpected_error",
}

Validación Offline

En aquellos casos en los que por problemas de conexión a internet, se impida realizar la validación en forma online, se prevé un mecanismo para que la validación pueda ser llevada a cabo en forma local.

Importante:

Mecanismo de validación Offline

1. Obtener la Palabra Clave del shipment

Obtener el valor del campo "keyword" del response enviado durante la Autorización del envío.

En caso de no encontrarse este campo, o que el mismo estuviese vacío, no deberá realizarse esta validación.

{
...
"keyword": "3bc405c30cadb4e6eefdf0cff899abcf8234d761c9a3ea1b2f510601ae5fc504"
...
}

2. Generar el hash de la Palabra Clave del receiver

Concatenar el shipment_id y la Palabra Clave informada por el receiver (en minúscula y sin utilizar acentos).

Aplicar el algoritmo SHA256 a la concatenacion anterior

 


shipment_id = 10101033319242
palabraInformada = "Manzana"
textoAEncriptar = shipment_id + SinAcentosNiMayusculas(palabraInformada)  --> "10101033319242manzana"
nuevoHash = SHA256(textoAEncriptar) --> "3bc405c30cadb4e6eefdf0cff899abcf8234d761c9a3ea1b2f510601ae5fc504"

3. Comparar ambos hash

Realizar la comparación de los hash obtenidos en paso 1 y 2 utilizando una comparación Case-insensitive.

 

4. Repetir el proceso en caso de fallo

Este proceso podrá ser repetido hasta tanto la comparación sea exitosa o se cumpla la máxima cantidad de reintentos permitida.

De cumplirse la máxima cantidad de reintentos permitida no deberá continuar reintentando hasta el próximo día.

 

5. Enviar información a Mercadolibre

Todas las validaciones que se realicen en forma Offline deberán ser informadas a Mercadolibre a través del servicio de validación Online definido previamente.

Algunos ejemplos de hash

Shipment IdPalabra ClaveHash
90854907004galleta32b962a2a31ab288f49fb695cf87672f08d0da747177f7ddd0e0ad77a7d6d560
66151385909tierraabd231310284f7fd6a7e7cf162c37686032c301c6852a2d5fd7f06fd381d12ba
44094201961motoe9e810b19511c8d831bba1bae64b9a013857c59caa75acbe31e2e5c439c2d3f5
37312402307antena130b7f810e6f28d38c96d7b89f195594d527f4aebebadce63cce397664fd7736
19713911553sillaf1e7db0987c06540a8613411ce7c78b51d75b41f7d235dee799a0410446c0ad9
52362595220muro230b9d48b6556bdf96fea354a762a3c95e9b2b4c1f157e5b824aff7d1916afd2
70095070394camaac3b8f6306f596c410e0516de440c43b063829e0a95caa964e1de1ccbf603cc7
60013868181ventana224388a465eadfa3cee80b1eb6989a379758715d7dfee78b8933dd73af0287fe
53490772071foco092dba39afb9a1d51a456f51825caabbe5b6752369ea0c802b57016148a4446d
83088916183remerab2dcac1190371eb12c7e096b80f039183038becf52941f101dfd32c908e01767