Skip to content
FINORA Academy
SistemaFINORA Pago

FINORA Pago · Reference

API local de FINORA Pago

ImplementedImplemented

This content is not available in your language yet.

Referencia de la API local de FINORA Pago para Windows, transcrita de su documentación técnica y contrastada con las rutas del código de la versión 1.9. Para aprender a usarla, empieza por el tutorial Tu primer cobro desde tu sistema.

TemaRegla
Direcciónhttp://127.0.0.1:9810/v1/…. Solo escucha en el propio equipo (loopback): nadie de la red la ve. El puerto se cambia en Configuración
AutenticaciónSi configuraste un token local, cada petición lo trae en X-Pago-Token: <token> o Authorization: Bearer <token>. Sin él: 401 TOKEN_LOCAL_INVALIDO
FormatoJSON en UTF-8. Los errores siempre tienen la forma {"codigo": "…", "mensaje": "…"}
CORSCerrado por defecto. Una caja que corre en un navegador del mismo equipo lo abre para su origen exacto (PAGO_CORS_ORIGENES=http://localhost:5173). Nunca uses *: cualquier página web podría pedir cobros
Una ventana a la vezUn segundo cobro con ventana mientras hay otro en curso recibe 409 COBRO_EN_CURSO. Los cobros sin ventana pueden convivir
Método y rutaPara qué
GET /v1/saludEstado de la aplicación, del comercio y de la conexión con FINORA Merchant
POST /v1/cobrosCrear un cobro
GET /v1/cobros/{cobroId}Consultar un cobro; con ?esperar=1&plazo=60, esperar su veredicto
POST /v1/cobros/{cobroId}/cancelarCancelar un cobro en curso
GET /v1/cobros?desde=&hasta=&max=Historial local (los últimos 5.000 cobros, el más reciente primero)
POST /v1/ventana/mostrarTraer al frente la ventana del cobro en curso. Cuerpo: {"cobroId": "…"}
POST /v1/ventana/ocultarEsconder la ventana sin cancelar nada

FINORA Pago tiene además dos rutas internas (/v1/actualizar y /v1/recargar-conf) que usa FINORA Toolbox para instalar versiones y recargar la configuración. Tu caja no las necesita.

Responde aunque falte la configuración. Úsala al arrancar tu caja, no antes de cada cobro: merchantAlcanzable consulta a FINORA Merchant en ese momento y puede tardar hasta 15 segundos sin red.

CampoQué dice
versionVersión instalada de FINORA Pago
comercioRIF, nombre y código del comercio configurado; null si falta configurar
merchantAlcanzabletrue si FINORA Merchant respondió y aceptó la clave
ventanaAbierta, cobroEnCursoSi hay una ventana de pago abierta y qué cobro atiende
puertoPuerto de la API local
sandboxPorDefectoSi los cobros que no dicen sandbox van al banco simulado
bloqueadotrue si FINORA Merchant suspendió esta instalación; los cobros responden 503 TERMINAL_SUSPENDIDO
actualizacionSi hay una versión nueva y en qué fase está (al-dia, descargando, lista…)
CampoObligatorioQué es
montoSíMayor que 0, hasta 2 decimales. Acepta 227.50 o "227,50"
referenciaSíTu pedido o factura, hasta 64 caracteres. Sin ella no hay forma de conciliar
monedaNoCódigo ISO 4217. Por defecto, la del comercio
descripcionNoTexto que se muestra en la ventana
itemsNoLista libre de productos, solo para mostrar
pagadorNotipoDocumento, documento, nombre, telefono: precargan los campos del cliente
rielSin ventana, síTARJETA, PAGO_MOVIL, TRANSFERENCIA, QR o CRIPTO. Con ventana y sin riel, el cliente elige
camposSegún el rielLos datos que pide ese medio (ver Medios y sus campos)
terminalIdPara TARJETAEl terminal físico al que se envía la tarjeta, si no hay uno configurado
tipoCuentaNoPara tarjeta de débito: 10 ahorro, 20 corriente, 30 crédito (o AHORRO, CORRIENTE, CREDITO). Si la caja ya lo sabe, el terminal no lo vuelve a preguntar
mostrarNotrue abre la ventana de pago. Por defecto, lo configurado
modoNoINMERSIVO (pantalla del cliente) o FORMAL (pantalla del cajero). Por defecto, lo configurado
esperarNotrue: la respuesta es el veredicto final y la llamada se bloquea hasta entonces
ttlSegundosNoPlazo del cobro, de 60 a 3.600 segundos. Por defecto, 900
callbackUrlNoDirección de tu caja que recibe el aviso firmado al terminar
sandboxNotrue envía el cobro al banco simulado: sin dinero real
  • 201, sin esperar: el cobro recién creado, en EN_CURSO, con su cobroId, su sesionId y urlPago (la página de pago alojada en pago.finoracore.com, por si quieres mostrarla como QR o abrirla en otro sitio).
  • 200, con esperar: true: el cobro completo con su veredicto.

Campos principales del cobro:

CampoQué es
cobroIdIdentificador del cobro en FINORA Pago. Guárdalo junto a la venta
estadoEN_CURSO, RECHAZO_PARCIAL, APROBADA, RECHAZADA, EN_DUDA, CANCELADA o EXPIRADA
codigo, mensajeCódigo de respuesta del banco (00, 51, 05…) o un código técnico, y su texto
autorizacionestado, codigo, referenciaBanco, autorizador y resueltoEn, tal como los dio el autorizador
reciboReferencia FINORA, referencia del comercio, monto, moneda, medio, referencia del banco y fecha
intentosCada intento del cobro con su resultado. Un cobro aprobado al segundo intento trae dos
ultimoRechazoCon RECHAZO_PARCIAL, el intento rechazado que el cliente está viendo
sandbox, mostrar, origenCómo se pidió el cobro (origen: api, uri o cli)
creadoEn, actualizadoEn, cerradoEnMarcas de tiempo ISO 8601

Qué significa cada estado y qué debe hacer tu caja: Aprobado, en duda y rechazado.

Devuelve el cobro tal como esté. Con ?esperar=1&plazo=60 espera hasta el veredicto o hasta plazo segundos. Vuelve antes si el cobro cambia a RECHAZO_PARCIAL (o regresa a EN_CURSO porque el cliente reintenta). Si vence el plazo sin veredicto, devuelve el cobro como esté: vuelve a preguntar.

Es la forma de recuperarte si se perdió la respuesta del POST, o de aclarar un cobro EN_DUDA.

Cancela el cobro en FINORA Merchant y lo devuelve como CANCELADA con codigo: CANCELADA_POR_COMERCIO. Responde 409 COBRO_EN_CURSO si el banco ya está respondiendo o el terminal ya aceptó la orden: en ese punto no se puede cancelar; espera el veredicto.

Si el cobro trae callbackUrl, al terminar FINORA Pago le hace a esa dirección un POST con el mismo JSON del cobro y estas cabeceras:

CabeceraValor
X-Pago-Eventopago.cobro
X-Pago-CobroEl cobroId
X-Pago-Firmasha256= seguido del HMAC-SHA256, en hexadecimal, del cuerpo crudo, con el token local como clave
  • Sin token local configurado, la clave del HMAC es la cadena vacía.
  • Reintenta tres veces (a los 0, 2 y 8 segundos). Responde 2xx rápido.
  • Si tu caja estaba apagada, el veredicto sigue disponible en GET /v1/cobros/{cobroId}.

Cómo verificar la firma, con un vector de prueba: Verificar el aviso firmado.

Los campos de cada medio los define FINORA Merchant para cada comercio. Estos son los del comercio de pruebas. La cédula puede ir en pagador.documento y pagador.tipoDocumento, o en campos.cedula.

rielCamposNotas
TARJETAcedulaNecesita terminalId o un terminal configurado. La orden viaja al terminal físico y el cobro queda EN_CURSO hasta que el cliente paga allí o vence el plazo. El número de la tarjeta nunca pasa por tu caja ni por FINORA Pago
PAGO_MOVILcedula, telefono (0412, 0414, 0416, 0424 o 0426 más 7 dígitos), banco (código de 4 dígitos), clave (de 4 a 8 dígitos) y, opcional, referencia si el cliente ya pagóLa clave viaja al banco y no se guarda
TRANSFERENCIAcedula, banco, cuenta (20 dígitos)
QRcedula, telefono
CRIPTOcedula, wallet (de 20 a 64 caracteres alfanuméricos)
HTTPcodigoCuándo
400PETICION_INVALIDAUn campo no es válido: monto, referencia, riel, campos, modo, callbackUrl… El mensaje dice cuál
400DATOS_INCOMPLETOS, MEDIO_NO_DISPONIBLE, TERMINAL_NO_ENCONTRADO…FINORA Merchant rechazó el medio fijado. El cobro se cancela y te llega el motivo
401TOKEN_LOCAL_INVALIDOFalta X-Pago-Token o no coincide
404COBRO_NO_ENCONTRADO, SIN_VENTANA, NO_ENCONTRADONo existe ese cobro, esa ventana o esa ruta
405METODO_NO_ADMITIDOMétodo HTTP equivocado para la ruta
409COBRO_EN_CURSOYa hay una ventana de cobro abierta (trae su cobroId), o el cobro no se puede cancelar todavía
503MERCHANT_INALCANZABLENo se llegó a FINORA Merchant o no respondió en 15 s. El cobro queda RECHAZADA con ese código
503SIN_CONFIGURARFalta el RIF o la clave de API del comercio
503TERMINAL_SUSPENDIDOFINORA Merchant suspendió esta instalación

Además de los códigos del banco, un cobro puede terminar con uno de estos motivos en codigo:

codigoQué pasó
MERCHANT_INALCANZABLENo hubo conexión con FINORA Merchant
DATOS_INCOMPLETOSFaltaron datos del medio de pago
MEDIO_NO_DISPONIBLEEl comercio no tiene activo ese medio
SESION_NO_ENCONTRADAFINORA Merchant no reconoce la sesión de cobro
SIN_VEREDICTOEl cobro cerró sin una respuesta clara
CANCELADA_POR_COMERCIOLo canceló el cajero o tu caja
CANCELADA_POR_CLIENTELo canceló el cliente en la ventana
TERMINAL_SIN_RESPUESTAEl terminal de tarjeta no respondió