Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
Docs Menu
Docs Home
/

Acelerador de soluciones de modernización de pagos

Aprenda a construir una capa de datos operativos (ODL) para desbloquear datos de pago aislados y así potenciar aplicaciones modernas.

  • caso de uso: Pagos, Modernización

  • Industrias: Servicios financieros

  • Productos y herramientas: MongoDB Atlas, MongoDB Enterprise Advanced, Atlas Clusters, MongoDB Change Streams, Atlas Search, Atlas Charts, Atlas Auditing and Enterprise Security, MongoDB Kafka Connector, QueryablemEncryption, Time Series

  • Socios: Confluent (para la integración con Apache Kafka), AWS (para la infraestructura y servicios de la nube)

La industria de pagos actual cambia rápidamente y las empresas se esfuerzan por ofrecer soluciones de pago seguras y fáciles de usar. Esta necesidad se ve impulsada por factores como las nuevas regulaciones, las expectativas de los clientes y la competencia en el mercado. Las organizaciones de servicios financieros pueden usar MongoDB para modernizar sus sistemas de pago.

Esta solución muestra cómo usar MongoDB para crear un ODL. Puede implementar un ODL sobre sistemas heredados para modernizar su arquitectura sin la dificultad ni el riesgo que conlleva reemplazar completamente los sistemas heredados.

Varios factores están impulsando la modernización de los sistemas de pago:

  • Pagos en tiempo real: Los clientes y las empresas esperan que los pagos se procesen de inmediato.

  • Cambios regulatorios: Nuevas leyes y regulaciones, como PSD2 en Europa, fomentan sistemas de pago más abiertos y flexibles.

  • Expectativas del cliente: Las personas quieren que los procesos de pago sean fluidos e integrados en diferentes plataformas.

  • Banca abierta: La banca abierta hace que el sector financiero sea más competitivo e innovador, permitiendo el desarrollo de nuevos servicios de pago.

  • Competencia: Las fintech empresas emergentes ofrecen nuevas soluciones de pago, desafiando a las instituciones financieras tradicionales a actualizar sus sistemas.

Actualizar los sistemas de pago es un desafío debido a:

  • Sistemas complejos: Los sistemas de pago involucran muchas partes y regulaciones diferentes, lo que hace que los cambios sean complicados.

  • Tecnología obsoleta: los sistemas obsoletos ralentizan la innovación y dificultan el cumplimiento de los estándares actuales.

  • Altos costos: Actualizar los sistemas antiguos puede ser costoso y requerir mucho tiempo.

  • Deuda técnica: Los atajos previos en el diseño del sistema pueden limitar el crecimiento futuro y la adaptabilidad.

En esta solución de ejemplo, puede aprender cómo utilizar MongoDB para modernizar los sistemas de pago.

Las empresas están adoptando las siguientes estrategias al actualizar sus sistemas:

  • Diseño orientado al dominio: Al alinear el desarrollo del sistema con las necesidades del negocio, el diseño orientado al dominio asegura que los cambios tecnológicos sirvan a los objetivos empresariales.

  • Arquitectura de microservicios: al pasar de una arquitectura monolítica a una arquitectura de microservicios, puede actualizar y escalar su sistema de manera más eficiente.

Las siguientes funcionalidades de MongoDB respaldan los esfuerzos de modernización de pagos:

  • Modelo de documento flexible: el modelo de documento de MongoDB le permite incorporar nuevos tipos de pago y estructuras de datos, lo que garantiza que su sistema pueda evolucionar con el mercado.

  • Capa de datos operativos: MongoDB introduce una capa de datos unificada que simplifica el acceso a los datos en varios servicios, lo cual es crucial para construir soluciones de pagos integradas.

  • Soporte para mejores prácticas: MongoDB equipa a las empresas con las herramientas necesarias para seguir las mejores prácticas de la industria, como transacciones seguras y análisis en tiempo real.

El siguiente diagrama detalla la arquitectura utilizada por esta solución de pagos. Para obtener más información sobre cómo funciona con MongoDB, visite nuestra Página de pagos en tiempo real.

Diagrama de arquitectura de la solución de pagos

Figura 1. Diagrama de arquitectura de la solución de pagos

Esta solución se centra en las relaciones entre entidades como cuentas de usuario, transacciones, cuentas bancarias y métodos de pago. Incluye atributos de datos e información detallada para cada entidad.

Una arquitectura de microservicios divide grandes aplicaciones monolíticas en piezas más pequeñas. Permite un desarrollo más rápido, modularidad, flexibilidad y escalabilidad, resiliencia, alineación organizacional y reducción de costos.

La arquitectura de microservicios utilizada en esta solución se divide en los siguientes servicios:

  • Gestión de usuarios

  • Procesamiento de transacciones

  • Historial de transacciones

  • Reconciliación de cuentas

  • Verificación de Pago

  • Presentación de informes

  • notificaciones

Este servicio facilita la interacción entre usuarios y cuentas. El diagrama a continuación muestra el flujo para la creación de cuentas.

El diagrama involucra las siguientes entidades:

  • Entidades de datos: Cuenta de usuario, método de pago, cuenta bancaria

  • Permisos: lectura/guardado en la cuenta del usuario, método de pago y cuenta bancaria.

  • Entradas: Detalles del usuario, detalles del método de pago, detalles de la cuenta bancaria

  • Salidas: Confirmación de creación de cuenta de usuario, Confirmación de adición de método de pago, Confirmación de adición de cuenta bancaria

Flujo de creación de cuenta

Figura 2. Flujo de creación de cuentas

Puedes ver una aplicación de este flujo en este repositorio de GitHub.

Este servicio gestiona operaciones relacionadas con transacciones, como iniciar, completar o reembolsar una transacción. En el siguiente diagrama, puedes ver el flujo principal para iniciar una transacción.

Este diagrama incluye las siguientes entidades:

  • Entidades de datos: Transacción, Cuenta bancaria

  • Permisos: Lectura/Escritura en transacciones, lectura en cuenta bancaria

  • Entradas: Detalles de la transacción, como cantidad, remitente y receptor

  • Salidas: Actualización del estado de la transacción, como pendiente, completada o fallida

Puedes ver una aplicación de este flujo en este repositorio de GitHub.

Flujo de transacciones

Figura 3. Flujo de transacciones

Este microservicio también es responsable de gestionar las transacciones de proveedores externos. Por ejemplo, la solución incluye una demostración de un usuario que recibe un pago a través de PayPal. El esquema flexible de MongoDB permite la variación en los documentos que representan transacciones.

El siguiente diagrama muestra el proceso para la transacción simulada de PayPal.

Flujo de transacciones externas

Figura 4. Flujo de transacciones externas

Este servicio se encarga del registro y archivo de transacciones. Incluye las siguientes entidades:

  • Entidades de datos: Historial de transacciones, cuenta de usuario

  • Permisos: Lectura sobre el Historial de transacciones, Lectura sobre la Cuenta de Usuario

  • Entradas: Número de cuenta de usuario

  • Salidas: Datos del historial de transacciones

Se puede ver una aplicación de estas entidades en este repositorio GitHub.

Este servicio verifica que los datos de la cuenta estén actualizados. Participan las siguientes entidades:

  • Entidades de datos: Cuenta bancaria, transacción

  • Permisos: Lectura/guardar en la cuenta bancaria, Lectura en Transacción

  • Entradas: Detalles de la transacción, Detalles de la cuenta bancaria

  • Salidas: Estado de conciliación, saldos de cuentas ajustados

Se puede ver una aplicación de estas entidades en este repositorio GitHub.

Este servicio procesa la iniciación de una transacción. El siguiente diagrama muestra los pasos para el procesamiento de pagos, comenzando desde que el servicio reacciona a un pago y terminando cuando notifica al usuario si el pago fue aprobado o rechazado.

Este servicio implica las siguientes entidades:

  • Entidades de datos: Transacción, Cuenta de usuario, Cuenta bancaria

  • Permisos: Lectura en transacción, lectura en cuenta de usuario, lectura en cuenta bancaria

  • Entradas: Detalles de la transacción, número de cuenta del usuario, detalles de la cuenta bancaria

  • Salidas: Estado de verificación (éxito o fallo)

Flujo de procesamiento de pagos

Figura 5. Flujo de procesamiento de pagos

Se puede ver una aplicación de estas entidades en este repositorio GitHub.

Para crear una vista de los datos de tu pago, puedes utilizar MongoDB Charts.

Esto implica las siguientes entidades:

  • Entidades de datos: Historial de transacciones, Cuenta de usuario

  • Permisos: Lectura sobre el Historial de transacciones, Lectura sobre la Cuenta de Usuario

  • Entradas: Número de cuenta de usuario, Criterios de informe (rango de fechas, tipo de transacción)

  • Resultados: Informes financieros generados

Este servicio utiliza MongoDB Change Streams para notificar al usuario sobre cualquier cambio.

Esto implica las siguientes entidades:

  • Entidades de datos: Cuenta de usuario, Transacción

  • Permisos: Lectura en la Cuenta de usuario, Lectura en la Transacción

  • Entradas: Detalles de la cuenta de usuario, Detalles de la transacción

  • Resultados: Notificaciones y alertas para los usuarios

Se puede ver una aplicación de estas entidades en este repositorio GitHub.

Las siguientes estructuras de documentos y microservicios conforman la columna vertebral de la solución de pagos basada en MongoDB, garantizando escalabilidad, seguridad y gestión de datos eficiente.

Documentos en el users la colección tiene la siguiente estructura:

{
"_id": ObjectId,
"username": String,
"email": String,
"password": String, // hashed
"linkedAccounts": [
{
"accountId": String,
"accountType": String,
"externalDetails": {
"apiEndpoint": String,
"accessKey": String,
"additionalInfo": String
}
}
], "recentTransactions": [
{
"transactionId": String,
"date": Date,
"amount": Number,
"type": String, // e.g., 'debit', 'credit'
"status": String // e.g., 'completed', 'pending'
}
]
}

Los documentos en la colección accounts tienen la siguiente estructura:

{
"_id": ObjectId,
"userId": ObjectId,
"accountNumber": String, // Encrypted
"accountType": String,
"balance": Number,
"limitations": {
"withdrawalLimit": Number,
"transferLimit": Number,
"otherLimitations": String
},
"securityTags": [String],
"encryptedDetails": String
}

Los documentos en la colección transactions tienen la siguiente estructura:

{
"_id": ObjectId,
"account_id": ObjectId,
"amount": Number,
"date": Date,
"type": String, // e.g., 'debit', 'credit'
"status": String, // e.g., 'completed', 'pending', 'refund'
"details": String, // Encrypted if sensitive
"referenceData": {
"sender": { ... },
"receiver": { ... },
"steps": [{ ... }],
"relatedTransactions": [{ ... }],
"notes": String,
"reportingTags": [String]
}
}

Los documentos en la colección notifications tienen la siguiente estructura:

{
"_id": ObjectId,
"relatedEntityId": ObjectId,
"userIds": [ObjectId],
"message": String,
"createdAt": Date,
"statuses": [
{
"userId": ObjectId,
"status": String // e.g., 'unread', 'read'
}
]
}

El código para este tutorial se puede encontrar en este repositorio de GitHub. Para comenzar, sigue las README instrucciones.

El tutorial utiliza las siguientes características en los diferentes servicios:

  • Indexación y escalabilidad

  • JSON schema validation

  • Permiso y segregación de datos

  • Auditoría

  • Modelo de documento: utilice la flexibilidad de MongoDB para crear estructuras de usuarios y cuentas para diferentes cuentas y perfiles de usuario.

  • Kafka Sink Connector: Transmite datos desde fuentes externas.

  • Transacciones: Mantenga los datos de cuentas y usuarios compatibles con ACID.

  • Cifrado en uso: Protege tus datos durante todo su ciclo de vida.

  • Búsqueda de texto completo: busca ID de cuentas y nombres de usuario.

  • Flujos de cambio: los pagos están impulsados ​​por eventos.

  • Colección de series de tiempo: Utiliza una colección de series de tiempo para mantener el historial de pagos.

  • Cifrado en uso: Protege tus datos durante todo su ciclo de vida.

  • Apache Kafka fuente: Utiliza Kafka para transmitir notificaciones a sistemas externos y usuarios.

  • Flujos de cambio: los flujos de cambio capturan notificaciones, que luego son enviadas por Websockets.

  • Atlas Charts: Utiliza los Atlas Charts para preprocesar y visualizar tus datos.

Si utiliza esta solución, tenga en cuenta las siguientes consideraciones:

  • Seguridad y cumplimiento: Cumplir con el GDPR, PCI DSS y otras regulaciones financieras.

  • Escalabilidad y rendimiento: Garantiza un procesamiento eficiente de query y manejo de datos.

  • Auditoría y registros: Registro integral de pagos para respaldar las auditorías.

  • Copia de seguridad y recuperación: plan sólido para la recuperación de datos utilizando MongoDB Atlas.

  • Pavel Duchovny, Relaciones con desarrolladores, MongoDB

  • Shiv Pullepu, Soluciones para la Industria, MongoDB

  • Raj Jain, arquitecto de soluciones, MongoDB

  • Jack Yallop, Marketing en la industria, MongoDB

Volver

Orquestación de pagos con IA agéntica

En esta página