Consultas unificadas
GET /payment/api/v1/{request_id}?key={key}&resource={resource}&mode=sha256&nonce={nonce}
Observación: al ser una petición GET y no tener cuerpo de petición, la forma de generar la firma cambia. Seguir las instrucciones que se dan en esta sección.
Sea cual sea el método de pago, desde este endpoint podrás hacer las consultas de operaciones tan solo con el número de referencia del cobro (request_id).
Firma
La firma que viajará en Content-Signature se genera con parte de la URL:
"/payment/api/v1/{request_id}?key={key}&resource={resource}&mode=sha256&nonce=123123123"
Con este ejemplo podría confirmarse si la firma está bien generada:
-
Endpoint completo de consulta:
https://sandbox.sipay.es/payment/api/v1/aaaabbbbcccc11112222?key=key-api-merchant&resource=resource-api-merchant&mode=sha256&nonce=123123123
-
Subcadena para realizar la firma:
/payment/api/v1/aaaabbbbcccc11112222?key=key-api-merchant&resource=resource-api-merchant&mode=sha256&nonce=123123123
Es decir, hemos quitado la base de la url que tiene el dominio con el protocolo.
Ejemplo firma
Para un secret: abc123, si aplicamos el algoritmo HMAC SHA256 sobre la subcadena, debería retornar la siguiente firma:
f3f4011662773146ee11b009ac338c24dd911b656580bb25284dfedf3ce40220
Como se puede observar, lo más importante siempre es ofrecer un valor muy variable de nonce.
Petición
Parámetros URL
- request_id: Identificador de la operación recibido en la generación del enlace.
Payload
Sin parámetros
Deberemos indicar el request_id en la url de la petición GET. Este identificador siempre se obtiene en la primera petición de generación de enlace de cobro.
Respuesta
Payload
- code: código de respuesta unificado de la operación. El valor 0 indica que se ha completado con éxito. Distinto de 0 quiere decir que ha habido algún problema.
- amount (interger, required): Importe de la operación en decimales. 140 según la moneda. En € serán 1,4€.
- currency (string): Moneda definida según el ISO_4217.
- order (string): Ticket de la operación.
- payment_method_name: Nombre del método de pago empleado.
- events: Todos los eventos que han sucedido con la operación. Hemos incluido una tabla con todos los eventos disponibles.
Ejemplos
Ejemplo-respuesta
Respuesta:
{
"type": "resource.status",
"code": "0",
"detail": "Operation status retrieved successfully",
"payload": {
"code": 0,
"amount": 15000,
"order": "6927d0555d014",
"currency": "EUR",
"payment_method_name": "fastpay",
"events": {
"create_session": [
{
"triggered_at": 1651144763.4668915,
"extra": {}
}
],
...
}
},
"request_id": "626a783ba72bfcb052598789",
"uuid": "626a783ba72bfcb052598789"
}