post
https://payment-backend-sandbox.milio.com.co/sdk-company-key/test-data
Este endpoint permite validar la correcta configuración de las llaves asimétricas entre Milio y la empresa cliente, garantizando que ambas partes puedan cifrar y descifrar información de forma segura.
Proceso de validación
1. El cliente cifra datos de prueba con la llave pública de Milio
- La empresa cliente toma la llave pública de Milio y la usa para cifrar una json cadena de prueba.
- Envía la data cifrada en el body de la solicitud junto con un webhook.
2. Milio descifra la data recibida
- Milio usa su llave privada para descifrar la información enviada por el cliente.
- Si la data es descifrada exitosamente, el proceso continúa.
3. Milio cifra datos de prueba con la llave pública del cliente
- Milio genera una cadena json aleatoria de prueba.
- La cifra con la llave pública de la empresa cliente y la envía en la respuesta.
4. El cliente descifra la data con su llave privada
- La empresa cliente debe usar su llave privada para descifrar la data recibida.
- Si la descifra correctamente, el proceso de validación se completa con éxito.
Body Requerido
{
"data": "...",
"encryptionType": "HYBRID", //'RSA_SHA256', 'RSA_SHA1', 'HYBRID'
"webhook": "https://"
}
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
webhook | string | Sí | URL donde Milio enviará la respuesta con los datos de prueba cifrados.. |
| encryptionType | string | No | Tipo de cifrado utilizado para la comunicación. Si no se envía, se utilizará el configurado para la compañía. |
| data | string | Sí | Información de prueba cifrada por el cliente utilizando la llave pública de Milio. |
Tipos de cifrado soportados
RSA_SHA256
- Utiliza RSA con padding OAEP y hash SHA-256.
- Toda la información se cifra directamente con la llave pública de Milio.
- Es más seguro que SHA1 y es el método recomendado cuando se usa RSA puro.
Flujo:
- El cliente cifra el payload usando la llave pública de Milio.
- Milio descifra con su llave privada.
- Milio responde cifrando con la llave pública del cliente.
RSA_SHA1
- Utiliza RSA con padding OAEP y hash SHA-1.
- Funciona igual que RSA_SHA256, pero usando SHA-1 como algoritmo de hash.
Nota:
Se mantiene principalmente por compatibilidad con implementaciones existentes.
HYBRID
- Utiliza encriptación híbrida (AES + RSA).
- Es más eficiente para payloads grandes.
Cómo funciona:
- Se genera una clave AES aleatoria.
- La data se cifra con AES.
- La clave AES se cifra con RSA usando la llave pública del receptor.
- Se envía un envelope que contiene:
- data cifrada con AES
- clave AES cifrada con RSA
Ventaja:
Mucho más eficiente que cifrar todo con RSA.
Respuesta
{
"error": 0,
"code": "ML000",
"category": "GENERAL",
"message": "Operación completada con éxito.",
"data": {
"decrypt": {
"message": "Información desencriptada correctamente.",
"data": {
"amount": 3000,
"type": "OUT",
"card": {
"cardName": "B***** L****",
"cardNumber": "43************12",
"cardCVV": "123",
"cardExpiryDate": "12/26"
},
"phone": "3*********",
"third": "B***** F****** L**** S*****",
"qr": true
}
},
"encrypt": {
"message": "Información encriptada correctamente.",
"data": "..."
}
}
}
