Integración de POLi en aplicaciones de casino móviles


1) Contexto y limitaciones

Funcionalidad POLi: solo depósitos; retirada - a través de otros métodos (banco-transferencia/tarjeta/billetera).
Jurisdicciones:
  • Australia: se han interrumpido las operaciones de POLi (septiembre de 2023); Los casinos en línea/ranuras para residentes de AU están prohibidos (IGA 2001).
  • Nueva Zelanda: POLi está disponible en sitios con licencia; la integración móvil es relevante.
  • Conclusión: a continuación, un esquema técnico para los mercados donde se permite el uso (NZ y otras jurisdicciones legales).

2) Opciones de conexión arquitectónica

A. Redamb/Hosted Payment Page (HPP) - Estándar básico

El cliente → la caja crea una sesión de pago → redirecciona al banco (navegador/banco-aplicación) → devuelve por 'return _ url' → confirmación a través de webhook/polling.
Pros: requisitos mínimos de PCI, modelo sostenible, menos riesgos.
Contras: depende del correcto manejo de la aplicación-switch y el devuelto deeplink.

B. Server-to-Server + redaprox (híbrido)

El servidor crea el pago con el proveedor POLi, el cliente móvil sólo inicia el redireccionamiento; el estado final viene por webhook.
Pros: reconciliación clara, retraídas cómodas, idempotencia en el backend.
Contras: más lógica de servidor.

💡La «API neta» completa sin redirigir es poco práctica: la autenticación bancaria requiere ir al banco.

3) Flujo personalizado (mobile UX)

1. Caja registradora → selección de POLi.
2. Introducir un importe → crear una sesión de pago (txn\_ id, state/nonce, vida útil).
3. App-switch: abrimos un banco (o un navegador con un banco de Internet).
4. Inicio de sesión/2FA en el banco → confirmación de transferencia.
5. Devuelve por 'return _ url'/deeplink a la aplicación → la pantalla de resultados.
6. Backend consigue el webhook y finaliza el depósito; el cliente solicita el estado por 'txn _ id' (confirmación de pulso) en caso de retrasos en el webhook.

4) iOS-especificidad

Utilice ASWebAuthenticationSession o SFSafariViewController para el paso del navegador; WKWebView directo es menos común debido a las cookies/redirecciones.
Universal Links для `return_url`; procesamiento en 'scene (_: continue:)'.
Los tiempos de espera de la sesión ≥ 10 minutos, el régimen de fondo no es obligatorio, pero mantener el estado de la caja registradora es obligatorio.
Si el banco se abre como una aplicación independiente, asegúrese de que el script back-to-app sea amigable y vuelva a obtener el estado cuando se devuelva.

5) Características de Android

Preferiblemente Tabs personalizados para el flujo Web; para aplicaciones bancarias: filtros intent y enlaces de aplicación validados para 'return _ url'.
Procesamiento de resultados - a través de Activity deeplink; volver a solicitar el estado cuando 'onResume ()'.
No guarde el estado de pago en 'Activity'; utilice ViewModel/repositorio que experimente cambios de configuración.
Folback en el navegador del sistema si el banco/aplicación no está disponible.

6) Seguridad de integración

TLS en todas partes, prohibición de protocolos sin protección. iOS ATS/Android Network Security Config - habilitado.
CSRF/Replay-protection: desechable 'state '/' nonce', conciliación en el retorno.
Idempotencia: idempotency-key para crear el pago; volver a procesar webhooks es seguro.
Webhooks: firma, IP de salida fija (si está disponible), retrases con pausa exponencial, deduplicación por event\_ id.
Logs: No lógica los logins bancarios/OTR; enmascarar PII; almacena: 'txn _ id', tiempo de redirección/devolución, códigos de estado.
Señales Root/Jailbreak: advertencia suave y un bloque de operaciones de alto riesgo bajo reglas de negocio.
Protección de URL de retorno: lista blanca de 'return _ url' en el lado del proveedor y la aplicación.

7) Manejo de estados y resistencia al error

Статусы: `processing` → `succeeded`/`failed`/`unknown`.
Si el usuario ha cerrado el banco/navegador - mostrar la pantalla «Continuar pago/Seleccionar otro método».
Con 'unknown': no bloquee al jugador - mantenga el pedido «pendiente», vuelva a entrevistar el backend, espere a que el webhook.
Estandarizar códigos de error (banco no disponible, límite, autenticación, cancelación por parte del usuario, tiempo de espera).
Tenga en cuenta las confirmaciones fraccionarias (banco cargado, merchant aún no actualizado) - explíquelo en IU.

8) Reconciliación y finanzas

Cotejo diario: informes del proveedor POLi ↔ su DB (por 'merchant _ ref', suma, moneda, tiempo).
Una cola separada en los «rassincrones»; Casos de mano - en el back office tulling.
Para los bonos «en depósito» - cobrar después de 'succeeded'; para 'processing '/' unknown' - poner hold.

9) Prácticas de caja registradora UX (mobile-first)

La banda de progreso visible y el temporizador «La sesión del banco expirará»....
Copia clara en los botones: «Ir al banco», «Confirmado - volver a la aplicación».
Cantidades claras/moneda, validación instantánea de los límites antes del redireccionamiento.
Guardar el borrador del depósito; volver a abrir la sesión mientras se restaura la aplicación.
Disponibilidad: etiquetas VoiceOver/TalkBack, suficiente contraste, Dynamic Type/FontScale.

10) Límites, KYC/AML, responsabilidad

Los límites establecen el banco y el operador, no POLi; muestre el rango disponible antes de comenzar el pago.
KYC/AML son independientes del método - las comprobaciones de volumen/frecuencia se activan de la misma manera; altos riesgos - verificación manual.
Política de juego responsable: los límites de depósito/pausa también están disponibles en POLi; agregue vínculos rápidos a la administración de límites en la caja registradora.

11) Características regionales y fichflags

AU: desactive POLi a nivel de flejes/bild; mostrar el disclamer (el servicio no está disponible; los casinos en línea están prohibidos).
NZ: permitir POLi; la lista de bancos/límites apretar de la configuración (config remote).
Geofensing, localización de monedas/formatos, servidores allow-lists merchant por país.

12) Matriz de prueba y QA

Bancos: mínimo de un caso por banco grande y por tipo 2FA (SMS, push, token).
Plataformas: iOS/Android, versiones mayores actuales, tema oscuro/ligero, diferentes localies/idiomas.
Escenarios de fallos: cancelación en el banco, sesión vencida, ruptura de la red, cierre de webview, deeplink incorrecto, repetición de webhook.
Carga: horas punta, retardos de webhooks, retraídas masivas.

13) Monitoreo y operación

Métricas: conversión de caja registradora, CTR «Ir al banco», media 'time-to-funds', fracción' unknown ', frecuencia de retraídas del webhook, fallo del banco por razones.
Alertas: timaut webhooks, estallido 'failed' un frasco cada uno, crecimiento 'unknown'> umbral.
Incidente Ranbook: cambiar la prioridad de los métodos, informar a los usuarios, force polling status, post mortem.

14) Lo que la integración no hace

No agrega retiros.
No elude los límites del banco o del operador.
No reemplaza los procedimientos KYC/AML y juego responsable.

Resultado

La integración de POLi en las aplicaciones móviles se construye en torno a un redireccionamiento/HPP seguro con aplicación-switch correcta, procesamiento confiable de devoluciones deeplink, confirmación a través de webhooks y estricta idempotencia. La clave de la estabilidad son los estados transparentes, los escenarios de recuperación amigables y la reconcilación completa. En Australia, POLi no está disponible y no es aplicable a ranuras en línea; en Nueva Zelanda, el método permanece operativo y da a los usuarios depósitos rápidos con una correcta configuración técnica y legal.