Autenticación

La API de Yuno utiliza el esquema de seguridad ApiKey para autenticar las solicitudes HTTP. Estas claves son credenciales de acceso compuestas por caracteres alfanuméricos que autorizan el uso de funciones específicas de nuestra API.

Las solicitudes deben incluir headers de autorización como public-api-key, private-secret-key y X-idempotency-key. Puedes encontrar tus credenciales, public-api-key y private-secret-key, en la sección desarrolladores en el Panel de control del comerciante Yuno. Por otro lado, el X-idempotency-key se compone de hasta 64 caracteres. Comprueba la sección Idempotencia para obtener información adicional.

Consulta la descripción de la solicitud para obtener los detalles requeridos de los encabezados de autorización específicos.

El siguiente fragmento de código muestra un ejemplo de una solicitud, incluidos los encabezados de autenticación.

curl --request <Method> \
     --url <URL> \
     --header 'X-Idempotency-Key: <Your X-Idempotency-Key>' \
     --header 'accept: application/json' \
     --header 'content-type: application/json' \
     --header 'private-secret-key: <Your private-secret-key>' \
     --header 'public-api-key: <Your public-api-key>'
❗️

Mantenga sus llaves seguras

No comparta sus claves API secretas en lugares públicos como Github, Bitbucket, etc., [...] porque se abre una posibilidad de llamadas API maliciosas.

Idempotencia

Desde la perspectiva de un servicio RESTful, la idempotencia es la capacidad de realizar múltiples solicitudes y recibir siempre la misma respuesta. Esta funcionalidad puede ser útil cuando una solicitud falla debido a una falla de comunicación y no hay una respuesta concluyente. Simplemente puede volver a intentar una solicitud con la misma clave de idempotencia si hay un problema de conexión en una llamada específica. Nuestra API garantiza que la segunda llamada no fallará.

Es esencial para la idempotencia pasar un nonce a la solicitud de API requerida. Por lo tanto, al realizar una solicitud, el comercio debe generar un identificador único para ser enviado con la solicitud como encabezado. Este nonce también se puede utilizar para identificar una transacción específica.

El objeto X-Idempotency-Key de una transacción y el estado devuelto por hacer ese pedido son almacenados por el sistema de idempotencia de Yuno. Para garantizar que las solicitudes realizadas dentro de las 24 horas posteriores al establecimiento del primer pedido no se creen dos veces, guardamos estos datos independientemente del resultado de esta transacción (capturada, autorizada o fallida). Como resultado, las respuestas a las solicitudes recibidas con la misma clave consistirán en una sola transacción.

❗️

Solicitudes con la misma clave

Es crucial enfatizar que la API solo generará una solicitud, incluso si se envían dos solicitudes con la misma clave en el encabezado y diferentes contenidos en el cuerpo.

En algunas circunstancias, es posible que algunas solicitudes se envíen al mismo tiempo. Como resultado, es posible que la aplicación reciba una segunda solicitud antes de responder a la primera. Cuando esto suceda, la segunda solicitud se atenderá con el código 409 - Conflicto, indicando que existe una convocatoria abierta para la misma X-Idempotency-Key.

El comportamiento de la API de Yuno no registrará las claves en caso de que la solicitud falle por cualquier motivo, además, la API proporciona un tipo de error 400 que informa que hay un problema con la solicitud, lo que permite al comerciante corregir la solicitud y enviarla nuevamente. Lo mismo sigue siendo válido para situaciones en las que se devuelve cualquier código de error 500.