Arquitectura pensada para operar dinero de terceros.

Un core modular sobre un modelo de datos común, contratos explícitos hacia afuera y hacia la capa de adaptación local, y controles que hacen parte del flujo. Lo que sigue es cómo está construida la plataforma.

Arquitectura

Integra se organiza en módulos que comparten un modelo de datos y un bus de eventos. Cada módulo expone su API y sus eventos; la capa de adaptación local se conecta a través de contratos definidos y no toca el core.

CoreModelo de datos común: clientes, cuentas, operaciones, transacciones, archivos, periodos de conciliación.
MódulosServicios por dominio con su propia API y su catálogo de eventos, sobre el mismo modelo.
Bus de eventosCada cambio de estado se publica una vez y lo consumen la interfaz, los webhooks y los adaptadores.
Integration pointsContratos hacia los adaptadores del PSP: envío, consulta de estado, importación de extractos.
InterfazAplicación web de operación y administración sobre las mismas APIs.
DespliegueAmbientes de pruebas y producción separados; configuración por ambiente.

APIs

REST sobre HTTPS con JSON. Un modelo consistente en toda la plataforma.

AutenticaciónClaves de API por ambiente con alcances (lectura, escritura, administración). Rotación sin interrupción.
IdempotenciaCabecera Idempotency-Key en toda operación de escritura. Reintentar nunca duplica.
Estadosreceived → validated → processing → confirmed | rejected | returned. Los mismos para operaciones y transacciones.
ErroresCódigo, mensaje y detalle por campo. Errores de validación antes de mover cualquier recurso.
PaginaciónPor cursor, con filtros por fecha, estado, cliente y referencia.
VersionadoVersión en la ruta (/v1). Cambios incompatibles solo en versiones nuevas, con convivencia.
Crear una operación de pagoIlustrativo · solicitud
POST /v1/operations
Authorization: Bearer sk_test_••••••••
Idempotency-Key: cust-7781-payroll-2026-09

{
  "customer_id": "cus_01J9K2",
  "type": "payout",
  "currency": "COP",
  "items": [
    { "beneficiary": { "id_type": "CC", "id": "1020304050" },
      "destination": { "rail": "psp-local:bank-transfer", "account": "4581••••••" },
      "amount": 1850000, "reference": "Servicios septiembre" }
  ],
  "workflow": "two-step-approval"
}
RespuestaIlustrativo · respuesta
{
  "id": "op_01J9K3Q8X2",
  "state": "received",
  "workflow": { "name": "two-step-approval", "step": "validation" },
  "items": { "total": 1, "valid": 0, "rejected": 0 },
  "created_at": "2026-09-15T14:02:11-05:00"
}

Webhooks

Eventos firmados con HMAC y marca de tiempo, entregados con reintentos y registro. El PSP y sus clientes se suscriben por tipo de evento.

FirmaCabecera X-Integra-Signature con marca de tiempo y HMAC sobre el cuerpo.
EntregaReintentos con espera creciente ante respuestas distintas de 2xx; cada intento queda registrado.
OrdenIdentificador único y marca de tiempo por evento; los consumidores se diseñan idempotentes.
ReenvíoDesde la interfaz o por API.
Evento: transacción confirmadaIlustrativo · evento
POST https://psp.example/webhooks/integra
X-Integra-Signature: t=1758037331,v1=6d1f…

{
  "id": "evt_01J9K5",
  "type": "transaction.confirmed",
  "data": {
    "transaction_id": "txn_01J9K4",
    "operation_id": "op_01J9K3Q8X2",
    "rail": "psp-local:bank-transfer",
    "rail_reference": "…",
    "amount": 1850000, "currency": "COP"
  }
}

Seguridad

Cifrado

TLS en tránsito; cifrado en reposo de credenciales, datos de cuentas y datos personales.

Acceso

Permisos por rol y por acción; segregación de funciones; autenticación reforzada en la interfaz.

Credenciales

Claves con alcances por ambiente e integración; rotación sin interrupción.

Integridad

Idempotencia, validación por registro y eventos firmados.

Auditoría

Registro inmutable de acciones humanas y de sistema con antes y después.

Datos

Datos de beneficiarios tratados solo para ejecutar la instrucción que los originó.

Escalabilidad

La plataforma procesa por evento y por lote. Las colas absorben picos, la validación por registro aísla errores y el procesamiento asíncrono mantiene la API rápida mientras la ejecución avanza.

  • Validación por registro: un rechazo no detiene el lote.
  • Procesamiento asíncrono: la API responde de inmediato; la ejecución y la confirmación llegan por evento.
  • Consultas por cursor para reconciliar grandes volúmenes sin descargar todo.
  • Límites y ventanas configurables por cliente, por riel y por ambiente.

Integration Framework

El punto donde la plataforma termina y la conectividad local del PSP empieza. Contratos pequeños y explícitos para enviar instrucciones, consultar estados e importar extractos; todo lo específico del riel vive en el adaptador del PSP.

Observabilidad

  • Estados consultables por interfaz y por API para cada operación, transacción, archivo y periodo.
  • Registro de entregas de webhooks y de llamadas a adaptadores, con reintentos visibles.
  • Métricas operativas: volúmenes, tiempos por etapa, rechazos por causa, diferencias abiertas.
  • Alertas configurables por umbral (por ejemplo, rechazos por encima de lo esperado en un riel).

No publicamos certificaciones, cifras de disponibilidad ni volúmenes que no podamos sostener con evidencia. Los parámetros aplicables a cada PSP se definen por escrito antes de producción.

Construye y opera tu PSP sobre Integra.

Cuéntanos qué operas hoy y qué rieles necesitas conectar. Te mostramos la plataforma sobre tu caso.