Estados y errores
Contrato v1 del SDK 1.0.0-beta.3 (FINORA Pago 0.16.0). Desplegado en Beta: todavía no lo uses con dinero real.
Decide siempre por estado (y por codigoRespuesta cuando haga falta), nunca por el texto de mensaje.
Regla de oro
Solo APROBADA te autoriza a entregar. EN_DUDA y SIN_RESPUESTA no son rechazos: el emisor pudo aprobar y el cliente pudo pagar. Nunca vuelvas a cobrar sin consultar antes.
Estados del cobro
estado | ¿Hubo dinero? | reintentable | Qué hace tu app |
|---|---|---|---|
APROBADA | Sí | no | Entrega el pedido. Si es la repetición de una referencia y trae estadoVerificado = false, consulta antes la venta (ver abajo). Para deshacerlo, anula |
RECHAZADA | No | sí | Muestra el motivo. Si el cliente reintenta, usa una referencia nueva |
EN_DUDA | Posible | no | No cobres otra vez. Consulta por referenciaFinora o anula |
CANCELADA | No | sí | Si trae referenciaFinora, reintenta con referencia nueva; si no, con la misma |
NO_COBRADA | No | sí | No se llegó a leer la tarjeta (red, servidor). Reintenta con la misma referencia |
OCUPADO | No | sí | FINORA Pago atiende otro cobro. Espera y reintenta con la misma referencia |
NO_LISTO | No | según el código | FINORA Pago sin enrolar, suspendido, sin lector, sin el medio pedido o con un servidor sin soporte del SDK (MERCHANT_SIN_SOPORTE) |
NO_AUTORIZADO | No | no | Tu app, la acción, el monto o la sucursal no están autorizados por el comercio |
PETICION_INVALIDA | No | no | Corrige la solicitud |
CONFLICTO | No | no | La referencia ya se usó con otro monto o en un cobro terminado, o tu monto no coincide con el total de la orden |
SIN_RESPUESTA (solo SDK) | Posible | no | Igual que EN_DUDA |
NO_INSTALADO (solo SDK) | No | sí | Pide instalar o actualizar FINORA Pago (0.16.0 o superior) |
EstadoCobro.posibleDinero vale true para APROBADA, EN_DUDA y SIN_RESPUESTA; requiereConsulta, para los dos últimos.
APROBADA repetida y estadoVerificado
Cuando repites una referencia y FINORA Pago tiene una aprobación de ese cobro en el equipo, no te repite la APROBADA a ciegas: antes consulta la venta en el servidor con la misma referencia (sin volver a cobrar ni a leer la tarjeta). Vale para toda APROBADA repetida: la que ya te había respondido y, desde la 0.15.3, también la de un cobro que te respondió EN_DUDA (o que se interrumpió) y cuyo veredicto aprobado llegó después. Exige FINORA Pago 0.15.3 o superior; la 0.15.2 respondía este último caso sin consultar.
| Lo que dice el servidor de la venta | Resultado |
|---|---|
| Pagada | APROBADA con los datos de la aprobación original y estadoVerificado = true |
| Anulada (desde tu app, la caja, el portal o la consola), vencida, fallida, rechazada, cancelada o expirada | CONFLICTO con código REFERENCIA_USADA. No entregues: para cobrar otra vez usa una referencia nueva |
| No respondió (sin red, tiempo agotado, error del servidor), o todavía no da la venta por pagada | APROBADA con los datos guardados y estadoVerificado = false |
estadoVerificado = false no es una duda sobre el dinero: el emisor sí aprobó ese cobro. Significa que FINORA Pago no pudo comprobar que la venta siga pagada. Si en tu negocio una anulación hecha desde el portal o la consola puede ocurrir entre el cobro y la entrega, consulta la venta por referenciaFinora desde tu servidor antes de entregar. En cualquier otro resultado estadoVerificado vale true, y también cuando FINORA Pago es anterior a 0.15.2 y no envía el campo (por eso conviene exigir la 0.15.3: con una versión anterior, true no garantiza que se haya consultado la venta).
Códigos frecuentes
codigoRespuesta | Estado | Significado |
|---|---|---|
00 | APROBADA | Aprobada por el emisor |
51, 55… | RECHAZADA | Código del emisor (fondos, clave…) |
CONFLICTO_IDEMPOTENCIA | CONFLICTO | Misma referencia, otro monto o moneda |
REFERENCIA_USADA | CONFLICTO | La referencia ya terminó sin dinero o fue anulada: usa otra |
SUCURSAL_INVALIDA | PETICION_INVALIDA | (Del servidor) La sucursal no existe, no es del comercio o el código y el id no son la misma |
INTEGRADOR_NO_AUTORIZADO | NO_AUTORIZADO | (Del servidor) El servidor no reconoce tu app para ese terminal, en el cobro o en la anulación |
MONTO_FUERA_DE_LIMITE | NO_AUTORIZADO | Supera el tope del comercio |
MEDIO_NO_DISPONIBLE | NO_LISTO | El terminal no cobra ese medio (por ejemplo, la Tarjeta FINORA apagada), o el servidor no lo admite. No se creó nada |
SIN_ELECCION_DE_MEDIO | CANCELADA | El cliente no eligió cómo pagar (canceló o pasaron 120 s). No se creó nada: reintenta con la misma referencia |
MERCHANT_SIN_SOPORTE | NO_LISTO | El servidor con el que habla FINORA Pago no admite cobros por el SDK. No se leyó la tarjeta |
TOKEN_INVALIDO | NO_LISTO | FINORA Pago debe volver a enrolarse |
SIN_BACKEND | NO_COBRADA | No hubo respuesta del servidor; no se leyó tarjeta |
ORDEN_YA_PROCESADA | EN_DUDA | El cobro ya tenía un desenlace que este equipo no conoce |
SIN_RESPUESTA | SIN_RESPUESTA | FINORA Pago no devolvió nada |
Cómo salir de EN_DUDA
Repetir la solicitud con la misma referenciaExterna es seguro: FINORA Pago no vuelve a leer la tarjeta, te repite lo que sabe. Para la consulta desde tu servidor, ver Sucursal y conciliación.