Sistema de Eventos

Recibe notificaciones en tiempo real vía Azure Service Bus sobre movimientos bancarios, Shinkansen y validaciones KYC.

Recibe notificaciones automáticas de movimientos bancarios, ejecuciones de pagos y validaciones KYC mediante una cola de Azure Service Bus.

Eventos disponibles


Conexión

La conexión se realiza mediante una cadena de conexión a Service Bus:

sb://voultech.servicebus.windows.net/{NombreCola}
⚠️

El nombre de la cola es entregado por Voultech a cada fintech. Solicítalo al equipo de soporte.

Ver horarios de procesamiento

Horarios de procesamiento:

  • Los mensajes de aportes automáticos se reciben entre 09:00 y 14:55 hrs
  • Los aportes realizados fuera de este horario se encolan para el día siguiente

Resultado esperado: contarás con la cadena de conexión y el nombre de la cola necesarios para consumir los eventos asignados a tu integración.


Suscripción a eventos

Ejemplo en C# para suscribirte a la cola y procesar mensajes:

using Azure.Messaging.ServiceBus;
using System;
using System.Threading.Tasks;

class Program
{
    static async Task Main()
    {
        string connectionString = "<cadena_de_conexión>";
        string queueName = "<nombre_de_cola>";

        ServiceBusClient client = new ServiceBusClient(connectionString);
        ServiceBusProcessor processor = client.CreateProcessor(queueName);

        processor.ProcessMessageAsync += MessageHandler;
        processor.ProcessErrorAsync += ErrorHandler;

        await processor.StartProcessingAsync();
        Console.WriteLine("Presiona ENTER para detener...");
        Console.ReadLine();

        await processor.StopProcessingAsync();
        await processor.DisposeAsync();
        await client.DisposeAsync();
    }

    static async Task MessageHandler(ProcessMessageEventArgs args)
    {
        string body = args.Message.Body.ToString();
        Console.WriteLine($"Recibido: {body}");
        await args.CompleteMessageAsync(args.Message);
    }

    static Task ErrorHandler(ProcessErrorEventArgs args)
    {
        Console.WriteLine($"Error: {args.Exception.Message}");
        return Task.CompletedTask;
    }
}

Resultado esperado: tu integracion quedará suscrita a la cola y podrá procesar mensajes entrantes en formato JSON.


Mensajes

Los mensajes se envían en formato JSON con una frecuencia de 1 minuto. Cada mensaje contiene un campo Topic que identifica el tipo de evento.

Ver estructura general de los mensajes
  • Todos los mensajes se entregan en formato JSON.
  • El campo Topic identifica el tipo de evento recibido.
  • Debes procesar cada mensaje según su Topic y su estructura específica.

Movimiento bancario

Topic: MOVBANCO

{
  "Topic": "MOVBANCO",
  "TransactionId": "236",
  "Banco": "",
  "BookingDate": "2024-01-16T00:00:00",
  "TransactionTime": "2024-01-15T14:15:39.527",
  "AbonoCargo": "A",
  "DebtorUserId": "151837115",
  "TransactionInformation": "TRANSFERENCIA DESDE Security DE RAMIRO JOSE EXEQUIEL GAR | Fondo de liquidez",
  "Amount": 250000.0,
  "IdMovCaja": "0",
  "TransactionIdCartola": "123",
  "Result": ""
}

Resultado esperado: podrás identificar el movimiento bancario informado y asociarlo a tu proceso de conciliación o trazabilidad.

Reversa de movimiento bancario

Topic: REVERSAMOVBANCO

{
  "Topic": "REVERSAMOVBANCO",
  "TransactionId": "236",
  "Banco": "",
  "BookingDate": "2024-01-16T00:00:00",
  "TransactionTime": "2024-01-15T14:15:39.527",
  "AbonoCargo": "A",
  "DebtorUserId": "151837115",
  "TransactionInformation": "TRANSFERENCIA DESDE Security DE RAMIRO JOSE EXEQUIEL GAR | Fondo de liquidez",
  "Amount": 250000.0,
  "IdMovCaja": "0",
  "TransactionIdCartola": "123",
  "Result": ""
}

Resultado esperado: podrás detectar que un movimiento bancario previamente informado fue revertido.

Movimiento Shinkansen

Topic: MOVSHINKANSEN

{
  "Topic": "MOVSHINKANSEN",
  "TransactionId": "4",
  "MovId": 10811975,
  "Date": "2024-09-09T12:04:30.757",
  "State": "OK",
  "Information": ""
}

Resultado esperado: podrás consultar el estado del movimiento procesado por Shinkansen mediante su identificador y estado devuelto.

Validación de KYC

Topic: KYCVALIDATION

{
  "Topic": "KYCVALIDATION",
  "Date": "{fecha}",
  "State": "OK",
  "Code": "001",
  "UserId": "{identificador}",
  "Information": "AML OK",
  "Detail": {}
}

Códigos de error KYC:

CodeInformationDescripción
002AML High RiskCliente de riesgo alto en listas de vigilancia
003Cannot get document dataNo se puede extraer la información del documento de identidad
004Missing dataFalta información del cliente (RUT, codDocumento, etc.)
005Document rejectedDocumento rechazado por proveedor
006Code not foundNo se encuentra codIdentificación

Resultado esperado: podrás determinar si la validación KYC fue aprobada o rechazada y actuar según el código informado.

💡

El sistema de eventos está diseñado para notificaciones en tiempo real (pub/sub). Si pierdes un mensaje, deberás consultar el estado manualmente vía API (por ejemplo: consultar saldo o estado KYC directamente).