Autenticar solicitudes
La seguridad en Get Smart API Cloud se garantiza mediante una firma digital incluida en cada solicitud y respuesta. Esta guía explica cómo generar esta firma utilizando tu clave del comercio y cómo verificar las respuestas enviadas por el servidor.
La lógica de la firma
La API no utiliza un Bearer token estándar ni Basic Auth. En su lugar, utiliza un mecanismo de firma personalizado basado en el algoritmo de hash SHA256.
Cada envolvente de mensaje JSON contiene dos campos de nivel superior:
info: El payload de datos real.signature: El hash criptográfico que verifica el payloadinfo.
El algoritmo
Para generar una firma válida, sigue esta secuencia específica:
- Extraer el payload: Toma todo el contenido del objeto JSON
info. - Minimizar el JSON: Asegúrate de que la cadena JSON esté “minimizada” (elimina todos los espacios en blanco adicionales, tabulaciones y saltos de línea). Debe comenzar con
{y terminar con}. - Añadir el secreto: Añade tu clave del comercio directamente al final de la cadena JSON minimizada.
- Hash: Calcula el hash SHA256 de esta cadena combinada.
- Formato: El hash resultante (cadena hexadecimal) es tu firma.
Ejemplo paso a paso
Vamos a repasar el proceso de generación utilizando los datos de ejemplo proporcionados en el manual de integración.
Credenciales:
- Código de comercio:
777888991 - Clave del comercio:
AAABBB
Paso 1: Construir el objeto info
{
"comercio": "777888991",
"timestamp": "20250428 111217",
"terminal": 1,
"notificacion": {
"urlNotificacion": "[http://www.miservicio.es/servicio/notificaciones/tpvpc](http://www.miservicio.es/servicio/notificaciones/tpvpc)",
"correoNotificacion": "email@comercio.es"
},
"datosOperacion": {
"importe": "15.00",
"factura": "FACTURA1"
}
}Paso 2: Minimizar la cadena JSON
Serializa el objeto en una cadena sin espacios:
{"comercio":"777888991","timestamp":"20250428 111217","terminal":1,"notificacion":{"urlNotificacion":"[http://www.miservicio.es/servicio/notificaciones/tpvpc](http://www.miservicio.es/servicio/notificaciones/tpvpc)","correoNotificacion":"email@comercio.es"},"datosOperacion":{"importe":"15.00","factura":"FACTURA1"}}Paso 3: Añadir la clave del comercio
Añade la clave AAABBB al final:
{"comercio":"777888991","timestamp":"20250428 111217","terminal":1,"notificacion":{"urlNotificacion":"[http://www.miservicio.es/servicio/notificaciones/tpvpc](http://www.miservicio.es/servicio/notificaciones/tpvpc)","correoNotificacion":"email@comercio.es"},"datosOperacion":{"importe":"15.00","factura":"FACTURA1"}}AAABBBPaso 4: Calcular el hash SHA256
Al pasar la cadena anterior por una calculadora SHA256 se obtiene: 0ED5D16230C0E2683CF304A713154B90D887D592EF72437AA214CBA305B00646
Paso 5: Formar la solicitud final
Coloca el hash en el campo signature:
{
"info": {
... (the JSON object from Step 1) ...
},
"signature": "0ED5D16230C0E2683CF304A713154B90D887D592EF72437AA214CBA305B00646"
}Verificar respuestas
Cuando la API responde, incluye una signature calculada utilizando la misma clave del comercio. Para verificar que la respuesta es auténtica y no ha sido alterada:
- Extrae el objeto
infode la respuesta. - Realiza exactamente los mismos pasos de generación de firma (Minimizar -> Añadir clave -> Hash).
- Compara el hash calculado con la
signaturerecibida en la respuesta.
Verifica siempre la firma de la respuesta antes de confiar en los códigos de estado o los resultados de la transacción dentro del bloque info.
Solución de problemas de firma
El error más común es TPC0101: Firma Incorrecta (Incorrect Signature).
| Causa común | Solución |
|---|---|
| Formato JSON | Asegúrate de que estás calculando el hash de la cadena exacta que estás enviando. Algunas bibliotecas JSON añaden espacios o reordenan claves. La firma es sensible a la representación específica a nivel de bytes. |
| Codificación de caracteres | Asegúrate de que la cadena esté codificada en UTF-8 antes de calcular el hash. |
| Confusión de claves | Verifica que estás utilizando la clave correcta para el entorno (Clave de test para la URL de Sandbox, Clave de producción para la URL de Producción). |
Próximos pasos
Ahora que puedes autenticarte, estás listo para explorar la arquitectura principal o implementar flujos de pago específicos.
- Arquitectura de API Cloud: Comprende la naturaleza síncrona frente a la asíncrona del sistema.
- Procesar un pago: Aplica esta lógica de firma a una transacción de pago real.