Sucursal y conciliación
La atribución de la sucursal declarada por la app ya la aplica el servidor de FINORA. El SDK sigue en Beta: no lo uses con dinero real todavía.
La sucursal la declaras tú
Cada cobro lleva obligatoriamente una sucursal: sucursalCodigo("0001") (el código de la tienda en FINORA) o sucursalId(42). Una app de reparto sabe de qué tienda sale cada pedido, así que es ella quien lo dice; no se usa la asignación del día del terminal.
FINORA Pago ya comprueba en el teléfono que la sucursal está entre las permitidas a tu app en la lista de integradores. El servidor de FINORA comprueba además que:
- la sucursal existe y es del comercio del terminal (o, en una cadena, de una de sus agencias);
- si envías código e id, ambos están permitidos y son la misma tienda;
- tu app tiene permiso para cobrar en esa sucursal.
Si algo falla, recibes PETICION_INVALIDA (SUCURSAL_INVALIDA) o NO_AUTORIZADO, sin leer la tarjeta y sin crear nada en el servidor. Una sucursal que existe pero es de otro comercio también es SUCURSAL_INVALIDA. El resultado aprobado te devuelve la sucursal atribuida en sucursalCodigo y sucursalNombre.
La venta aparece en vivo en el Monitor de transacciones del portal del comercio con esa sucursal. Los resúmenes y filtros de Ventas del portal todavía agrupan por la sucursal fija del terminal; los reportes de ventas por tienda con la sucursal del pedido llegan en la próxima versión.
Qué guardar en tu sistema
Por cada pedido cobrado, guarda:
| Dato | Para qué |
|---|---|
referenciaExterna | Tu clave: une el pedido con el cobro |
referenciaFinora | La referencia del cobro en FINORA: con ella se consulta |
rrn, autorizacion, stan | Para reclamos y para cuadrar con el estado de cuenta |
terminalId, sucursalCodigo | Dónde se cobró |
ultimos4, marca | Para el recibo y la atención al cliente |
simulado | Para descartar cobros de prueba |
Consultar desde tu servidor
Con referenciaFinora, el servidor de tu empresa podrá consultar el estado del cobro en la API de pagos del Merchant con la clave de API del comercio:
curl -s https://pos.finoracore.com/api/v1/pagos/intenciones/FNRLZ3K9Q1 \
-H "X-API-Key: $FINORA_API_KEY"
Las intenciones creadas por el SDK quedan en la API de pagos como cualquier otra, con tu referencia externa y la sucursal atribuida. Es la forma recomendada de resolver un EN_DUDA sin depender del teléfono. La clave de API nunca debe ir dentro de la app Android.
- Consulta por
referenciaExterna. - Enlace al comprobante digital (
comprobanteUrl): construido detrás de un interruptor que aún no está activo. Cuando se active, en el primer cobro el enlace llegará a tu servidor por el webhookintencion.resultado; tu app solo lo obtendrá al consultar o repetir el cobro con la mismareferenciaExterna, no en el resultado inmediato.
Conciliación diaria
- Exporta los cobros del día desde el portal del comercio o consúltalos por API. Para ver la tienda del pedido usa el Monitor de transacciones o la API: los filtros de Ventas agrupan hoy por la sucursal fija del terminal.
- Cruza por
referenciaFinora(o porrrn+terminalId) con tus pedidos. - Revisa los pedidos que tu app dejó en
EN_DUDAoSIN_RESPUESTA: cada uno debe terminar como pagado o como no pagado, nunca quedar abierto. - Las anulaciones (
ANULADA) no aparecen en el lote liquidado.