Saltar al contenido principal

Ciclo de vida de la sesión

Una sesión de cobro nace en tu servidor y termina con un veredicto. Conocer sus estados evita los dos errores más caros de una integración: entregar un pedido que no se cobró y cobrar dos veces el mismo pedido.

Estados​

EstadoSignificaQué hace tu sistema
CREADALa sesión existe y el cliente todavía no eligió medio.Esperar.
EN_CURSOHay un cobro en vuelo: autorización en línea u orden viva en el terminal.Esperar; no crear otra sesión para el mismo pedido.
APROBADAEl banco aprobó. Es final.Entregar el pedido cuando llegue el webhook firmado.
RECHAZADAEl banco rechazó (codigo = DE 39, por ejemplo 51). Es final.Si el cliente quiere intentar con otro medio, crear otra sesión.
EN_DUDAEl banco no confirmó. Final para el cliente, pero FINORA la sigue.No entregar ni volver a cobrar. Esperar el segundo webhook con APROBADA o RECHAZADA.
CANCELADAEl cliente o el comercio la retiraron (CANCELADA_POR_CLIENTE, CANCELADA_POR_COMERCIO).Sin cobro.
EXPIRADAVenció el plazo (ttlSegundos) sin veredicto.Sin cobro.
Un rechazo no se reintenta en la misma sesión

RECHAZADA cierra la sesión. Lo único que la devuelve a CREADA es un terminal que no tomó la orden a tiempo (TERMINAL_SIN_RESPUESTA) o que el operador canceló en el terminal (CANCELADA_EN_TERMINAL): entonces el cliente puede elegir otro medio mientras la sesión no venza.

Consultar una sesión desde tu servidor​

El webhook es el aviso; la consulta es la verdad. Antes de mostrar «pedido confirmado» o al conciliar, consulta la sesión con tu clave:

curl -s https://pos.finoracore.com/api/v1/checkout/sesiones/CSAgkpH6tSLSO-58tneFeBaw \
-H "X-API-Key: $FINORA_API_KEY"
{
"sesionId": "CSAgkpH6tSLSO-58tneFeBaw",
"estado": "APROBADA",
"monto": 227.00,
"moneda": "VES",
"referencia": "PED-1042",
"merchantCode": "COM00042",
"riel": "PAGO_MOVIL",
"terminalId": null,
"sandbox": true,
"creadaEn": "2026-09-13T15:05:00.000+00:00",
"expiraEn": "2026-09-13T15:20:00.000+00:00",
"cerradaEn": "2026-09-13T15:05:12.000+00:00",
"resultado": {
"sesionId": "CSAgkpH6tSLSO-58tneFeBaw",
"estado": "APROBADA",
"riel": "PAGO_MOVIL",
"codigo": "00",
"mensaje": "Aprobada"
}
}

Con la clave API recibes la vista completa (pagador, intentos, URL de retorno y de webhook). Con el token de sesión, el navegador recibe solo lo necesario para pagar.

Listar sesiones para conciliar​

GET /api/v1/checkout/sesiones filtra por fecha y estado. Úsalo al cierre del día para encontrar sesiones EN_DUDA o pedidos sin webhook procesado:

curl -s "https://pos.finoracore.com/api/v1/checkout/sesiones?estado=EN_DUDA&desde=2026-09-13T00:00:00Z&max=100" \
-H "X-API-Key: $FINORA_API_KEY"
ParámetroNotas
desde, hastaFecha y hora ISO 8601.
estadoUno de los estados de la tabla anterior.
maxPor defecto 100; máximo 500.

Cancelar una sesión​

Si el cliente abandona el pedido en tu sistema, cancela la sesión para que la página de pago deje de aceptarlo:

curl -s -X POST https://pos.finoracore.com/api/v1/checkout/sesiones/CSAgkpH6tSLSO-58tneFeBaw/cancelar \
-H "X-API-Key: $FINORA_API_KEY"

La respuesta trae el estado resultante. Si ya hay dinero en vuelo responde 409 COBRO_EN_CURSO (la autorización está en curso o el terminal ya aceptó la orden); si la sesión ya terminó, 409 SESION_CERRADA. En ambos casos, consulta la sesión y actúa según su estado.

Plazos​

  • ttlSegundos va de 60 a 3600; por defecto, 900.
  • Si el plazo vence con un cobro en vuelo, el veredicto lo decide el servidor según lo que ocurrió en el banco o en el terminal (que pudo haber aceptado la orden). No asumas EXPIRADA: espera el webhook o consulta la sesión.

Lo que sigue​