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.

  • Casos de uso: Pagos, Modernización

  • Industrias: Servicios financieros

  • Productos y herramientas: MongoDB Atlas, MongoDB Enterprise Advanced, Clústeres Atlas, Flujos de cambios deMongoDB, Búsquedaen Atlas, Gráficos Atlas, Auditoría y seguridad empresarialde Atlas, ConectorMongoDB Kafka, Cifradoconsultable, Series temporales

  • Socios: Confluent(para integración con Apache Kafka), AWS (para infraestructura y servicios en 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 impulsan 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 la PSD2 en Europa, fomentan sistemas de pago más abiertos y flexibles.

  • Expectativas del cliente: la gente quiere 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 nuevasempresas Fintech 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 antigua: Los sistemas obsoletos ralentizan la innovación y dificultan el cumplimiento de los estándares actuales.

  • Costos elevados: Actualizar sistemas antiguos puede ser costoso y consumir mucho tiempo.

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

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 impulsado por el dominio: al alinear el desarrollo del sistema con las necesidades comerciales, el diseño impulsado por el dominio garantiza que los cambios tecnológicos sirvan a los objetivos comerciales.

  • 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 características 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 operativa: MongoDB presenta una capa de datos unificada que simplifica el acceso a los datos en varios servicios, lo que es crucial para crear soluciones de pago integradas.

  • Compatibilidad con las mejores prácticas: MongoDB proporciona a las empresas las herramientas que necesitan 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 la 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 de cada entidad.

Una arquitectura de microservicios fragmenta grandes aplicaciones monolíticas en partes 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 proceso de creación de cuentas.

El diagrama involucra las siguientes entidades:

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

  • Permisos: Lectura/escritura en cuenta de 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 cuenta

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 involucra las siguientes entidades:

  • Entidades de datos: Transacción, Cuenta bancaria

  • Permisos: Lectura/escritura en transacciones, lectura en cuentas bancarias

  • Entradas: Detalles de la transacción, como monto, 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 se encarga de gestionar las transacciones de proveedores externos. Por ejemplo, la solución incluye una demostración de un usuario que recibe un pago de PayPal. El esquema flexible de MongoDB permite la variación en los documentos que representan las 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. Involucra a las siguientes entidades:

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

  • Permisos: Leer el historial de transacciones, Leer la cuenta de usuario

  • Entradas: Número de cuenta de usuario

  • Salidas: Datos del historial de transacciones

Puedes ver una aplicación de estas entidades en este repositorio de 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/escritura en 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

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

Este servicio procesa el inicio de una transacción. El diagrama a continuación muestra los pasos del procesamiento de pagos, desde que el servicio reacciona a un pago hasta que notifica al usuario si este fue aprobado o rechazado.

Este servicio involucra a las siguientes entidades:

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

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

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

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

Flujo de procesamiento de pagos

Figura 5. Flujo de procesamiento de pagos

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

Para crear una vista de sus datos de pago, puede utilizar gráficos de MongoDB.

Esto involucra a las siguientes entidades:

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

  • Permisos: Leer el historial de transacciones, Leer la cuenta de usuario

  • Entradas: Número de cuenta de usuario,criterios del 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 involucra a las siguientes entidades:

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

  • Permisos: Leer en cuenta de usuario, Leer en transacción

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

  • Salidas: Notificaciones y alertas a los usuarios

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

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

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 de 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 de 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 de 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 de este tutorial se encuentra en este repositorio de GitHub. Para empezar, sigue las README instrucciones.

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

  • Indexación y escalabilidad

  • JSON schema validation

  • Permisos y segregación de datos

  • Auditoría

  • Gráficos Atlas: utilice gráficos Atlas para preprocesar y visualizar sus datos.

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

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

  • Escalabilidad y rendimiento: garantice un procesamiento eficiente de consultas y manejo de datos.

  • Auditoría y registro: registro completo de pagos para respaldar 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 industriales, MongoDB

  • Raj Jain, arquitecto de soluciones, MongoDB

  • Jack Yallop, Marketing Industrial, MongoDB

Volver

Interfaz unificada para aplicaciones RAG

En esta página