La referencia oficial del endpoint POST /transactions (estructura de respuesta, errores, campos) está en:Crear transacción (API Reference → Transacciones)En esa página encontrarás la respuesta actual: transaction es un objeto (la transacción creada) y, cuando se ejecutan reglas, rulesExecutionSummary va en la raíz de la respuesta (ver Resumen de Ejecución de Reglas).Esta página añade contexto de uso para monitoreo: conversión de moneda, ejemplos por método de pago (PIX, tarjeta, multi-moneda) y campos detallados.
Crea una nueva transacción. Los montos se convierten a USD cuando la moneda no es USD. Con executeRules: true (por defecto), se ejecuta el motor de reglas y la respuesta incluye rulesExecutionSummary en la raíz cuando se ejecutan las reglas.
Estado de la transacción. Sigue un modelo de máquina de estados con estados abiertos y cerrados.Estados Abiertos (pueden transicionar a otros estados):
CREATED - Transacción creada (por defecto)
PROCESSING - Transacción en proceso
SUSPENDED - Transacción temporalmente suspendida
Estados Cerrados (finales, no pueden volver a estados abiertos):
SENT - Transacción enviada/transmitida
EXPIRED - Transacción expirada
DECLINED - Transacción rechazada/declinada
REFUNDED - Transacción reembolsada/reversada
SUCCESSFUL - Transacción completada exitosamente
Tipo: enum - 'CREATED' | 'PROCESSING' | 'SUSPENDED' | 'SENT' | 'EXPIRED' | 'DECLINED' | 'REFUNDED' | 'SUCCESSFUL' (por defecto: ‘CREATED’)Importante: Una vez que una transacción alcanza un estado cerrado, no puede volver a un estado abierto. Esto garantiza la integridad de la transacción y un rastro de auditoría apropiado.
CUIT o documento del origen en el cuerpo raíz. Tercer criterio de vinculación (tras originEntityId y originExternalId); match normalizado con entity.taxId. Si hay coincidencia, se rellenan enlace, nombre y país. Máx. 50 caracteres. Tipo: string (opcional)
Información contextual sobre el origen de la transacción (dispositivo, geolocalización, cuenta, flags de seguridad). Estos campos coinciden con el schema de la API; también puedes enviar campos custom adicionales (ej. paymentDetails anidado u otras claves) y se almacenarán.Tipo: object (opcional, estructura validada; claves extra permitidas)Diferencia Clave:
originCountry (campo directo) = País de la entidad
originDetails.country = País del dispositivo/IP al momento de la transacción (puede diferir si está viajando)
Campos Soportados:Dispositivo/Técnico:
deviceId (string) - Identificador del dispositivo
deviceFingerprint (string) - Hash de huella digital del dispositivo
ipAddress (string) - Dirección IP (formato validado)
Geolocalización:
country (string) - Código ISO de 2 letras
city (string) - Nombre de la ciudad
region (string) - Estado/provincia
latitude (number) - Latitud (-90 a 90)
longitude (number) - Longitud (-180 a 180)
timezone (string) - Identificador de zona horaria
Detalles de Pago (objeto anidado):
paymentDetails (object) - Información específica de pago para el origen. Puede enviar cualquier campo relacionado con el pago:
Detalles Bancarios/Cuenta:
accountNumber (string) - Número de cuenta
accountType (enum) - checking | savings | business | personal
bankCode (string) - Código del banco
bankName (string) - Nombre del banco
routingNumber (string) - Routing number (US)
swiftCode (string) - Código SWIFT/BIC
iban (string) - IBAN (International Bank Account Number)
Detalles PIX (Brasil):
pixKey (string) - Clave PIX
pixType (enum) - Tipo de clave PIX: email | phone | cpf | cnpj | random
Detalles de Tarjeta:
cardLast4 (string) - Últimos 4 dígitos de la tarjeta
cardBrand (string) - Marca de tarjeta (Visa, Mastercard, Amex, etc.)
cardholderName (string) - Nombre en la tarjeta
cardBin (string) - Primeros 6 dígitos de la tarjeta (BIN)
cardType (enum) - credit | debit | prepaid
cardCountry (string) - País emisor de la tarjeta (ISO 2 letras)
cardExpiry (string) - Fecha de vencimiento (MM/YY)
cardFingerprint (string) - Huella digital única de la tarjeta para seguimiento
Detalles Crypto:
walletAddress (string) - Dirección de wallet de criptomoneda
walletType (string) - Tipo de wallet (ej: “metamask”, “coinbase”)
blockchain (string) - Red blockchain (ej: “ethereum”, “bitcoin”)
tokenSymbol (string) - Símbolo del token (ej: “ETH”, “BTC”, “USDT”)
Wallet/Pago Digital:
walletId (string) - Identificador de wallet digital
walletProvider (string) - Proveedor de wallet (ej: “paypal”, “venmo”, “cashapp”)
walletEmail (string) - Email asociado con el wallet
Y cualquier otro campo relacionado con el pago que necesite
Referencia: Para estructuras sugeridas por método de pago (tarjeta, PIX, CBU/CVU, SPEI, PSE, DEBIN, cripto, wallet, efectivo, cheque, etc.) ver Payment Details Schema. Nada se exige; se permiten campos custom.Banderas de Seguridad:
isVpn (boolean) - VPN detectado
isTor (boolean) - Red Tor detectada
isProxy (boolean) - Proxy detectado
governmentAccount (boolean) - Bandera de cuenta gubernamental
Información contextual sobre el destino de la transacción (comerciante, dispositivo, geolocalización, cuenta, flags de riesgo). Estos campos coinciden con el schema de la API; también puedes enviar campos custom adicionales (ej. paymentDetails anidado u otras claves) y se almacenarán.Tipo: object (opcional, estructura validada; claves extra permitidas)Campos Soportados:Información de Comerciante:
mcc (string) - Merchant Category Code (4 dígitos, ISO 18245)
mccDescription (string) - Descripción del MCC (ej: “Restaurants”)
merchantId (string) - Identificador del comerciante
merchantName (string) - Nombre del comerciante
merchantType (string) - Tipo/categoría del comerciante
Dispositivo/Técnico:
deviceId (string) - Identificador del dispositivo
deviceType (enum) - pos | online | mobile | atm
ipAddress (string) - Dirección IP (formato validado)
Geolocalización:
country (string) - Código ISO de 2 letras
city (string) - Nombre de la ciudad
region (string) - Estado/provincia
Detalles de Pago (objeto anidado):
paymentDetails (object) - Información específica de pago para el destino. Puede enviar cualquier campo relacionado con el pago:
Detalles Bancarios/Cuenta:
accountNumber (string) - Número de cuenta destino
accountType (enum) - checking | savings | business | merchant
bankCode (string) - Código del banco
bankName (string) - Nombre del banco
routingNumber (string) - Routing number (US)
swiftCode (string) - Código SWIFT/BIC
iban (string) - IBAN (International Bank Account Number)
Detalles PIX (Brasil):
pixKey (string) - Clave PIX
pixType (enum) - Tipo de clave PIX: email | phone | cpf | cnpj | random
Detalles de Tarjeta:
cardLast4 (string) - Últimos 4 dígitos de la tarjeta
cardBrand (string) - Marca de tarjeta (Visa, Mastercard, Amex, etc.)
cardholderName (string) - Nombre en la tarjeta
cardBin (string) - Primeros 6 dígitos de la tarjeta (BIN)
cardType (enum) - credit | debit | prepaid
cardCountry (string) - País emisor de la tarjeta (ISO 2 letras)
cardExpiry (string) - Fecha de vencimiento (MM/YY)
cardFingerprint (string) - Huella digital única de la tarjeta para seguimiento
Detalles Crypto:
walletAddress (string) - Dirección de wallet de criptomoneda
walletType (string) - Tipo de wallet (ej: “metamask”, “coinbase”)
blockchain (string) - Red blockchain (ej: “ethereum”, “bitcoin”)
tokenSymbol (string) - Símbolo del token (ej: “ETH”, “BTC”, “USDT”)
Wallet/Pago Digital:
walletId (string) - Identificador de wallet digital
walletProvider (string) - Proveedor de wallet (ej: “paypal”, “venmo”, “cashapp”)
walletEmail (string) - Email asociado con el wallet
Y cualquier otro campo relacionado con el pago que necesite
Referencia: Para estructuras sugeridas por método de pago ver Payment Details Schema. Nada se exige; se permiten campos custom.Banderas de Riesgo:
cryptoExchange (boolean) - Es exchange de criptomonedas
highRisk (boolean) - Bandera de comerciante de alto riesgo
privateSector (boolean) - Bandera de sector privado
Razón opcional del resultado de la transacción (ej. rechazo, fallo, límite excedido). El cliente puede enviar cualquier valor del enum transaction_reason_type. Si se omite, el sistema usa WITHOUT_REASON. No es obligatorio — las integraciones actuales siguen siendo válidas.Tipo: string (enum, opcional, valor por defecto: WITHOUT_REASON)Valores comunes (el enum completo tiene 60+ valores):
WITHOUT_REASON - Sin razón específica (por defecto si se omite)
Información de ubicación geográfica donde ocurrió la transacción. Útil para detección de fraude, análisis de riesgo geográfico y reportes de cumplimiento.Tipo: object (opcional)Campos Soportados:Información de Dirección:
country (string) - Código de país ISO 3166-1 alpha-2 (ej: “US”, “BR”, “AR”)
countryName (string) - Nombre completo del país
city (string) - Nombre de la ciudad
region (string) - Estado o provincia
address (string) - Dirección completa
street (string) - Nombre de la calle
streetNumber (string) - Número de calle
postalCode (string) - Código postal
neighborhood (string) - Barrio o distrito
Coordenadas (para visualización en mapas):
latitude (number) - Coordenada de latitud (-90 a 90)
longitude (number) - Coordenada de longitud (-180 a 180)
Información Adicional:
timezone (string) - Zona horaria IANA (ej: “America/Sao_Paulo”)
placeId (string) - ID de Google Places o identificador similar
Información del dispositivo para la transacción. Crítico para detección de fraude, fingerprinting de dispositivos y análisis de seguridad.Tipo: object (opcional)Campos Soportados:Identificación de Dispositivo:
deviceId (string) - Identificador único del dispositivo
externalId (string) - Su ID externo del dispositivo
Plataforma y Sistema Operativo:
platform (enum) - Plataforma del dispositivo: android, ios, web, desktop, mobile, tablet, pos, atm
osName (string) - Nombre del sistema operativo (ej: “Android”, “iOS”, “Windows”, “macOS”)
osVersion (string) - Versión del SO (ej: “13.0”, “16.4”)
Información del Dispositivo:
manufacturer (string) - Fabricante del dispositivo (ej: “Samsung”, “Apple”)
model (string) - Modelo del dispositivo (ej: “Galaxy S22”, “iPhone 14”)
brand (string) - Marca del dispositivo
deviceName (string) - Nombre asignado por el usuario al dispositivo
Información del Navegador (para plataforma web):
browser (string) - Nombre del navegador (ej: “Chrome”, “Safari”, “Firefox”)
browserVersion (string) - Versión del navegador
userAgent (string) - String completo del user agent
Banderas de Seguridad:
isEmulator (boolean) - Si el dispositivo es un emulador
isRooted (boolean) - Si el dispositivo está rooteado (Android)
isJailbroken (boolean) - Si el dispositivo está jailbreakeado (iOS)
Información de Red:
ipAddress (string) - Dirección IP (formato validado)
isVpn (boolean) - Si la conexión es a través de VPN
isTor (boolean) - Si la conexión es a través de Tor
isProxy (boolean) - Si la conexión es a través de proxy
Fingerprinting de Dispositivo:
deviceFingerprint (string) - Hash único de huella digital del dispositivo para rastreo
Detalles Adicionales:
screenResolution (string) - Resolución de pantalla (ej: “1920x1080”)
Metadatos personalizados para almacenar información adicional de la transacción.Tipo: object (opcional, estructura validada)Campos Estándar Soportados:
tags (object) - Sistema de Categorización Clave-Valor
El campo tags le permite agregar pares clave-valor personalizados para categorización flexible, filtrado y gestión de flujos de trabajo. Esto es particularmente útil para:
Filtrado personalizado en dashboards y reportes
Activar lógica de negocio específica
Seguimiento del estado de revisión
Categorización por nivel de riesgo o fuente
Estados de flujo de trabajo personalizados
Formato: { "clave1": "valor1", "clave2": "valor2" }Patrones Comunes de Tags:
gu1 proporciona conversión automática de moneda para todas las transacciones. Cada organización tiene una moneda base configurada (por defecto: USD), y todas las transacciones se convierten automáticamente a esta moneda base para una evaluación de reglas y reportes consistentes.
En la raíz de la respuesta.Solo presente cuando executeRules es true y se ejecutó el motor de reglas. Resumen de qué reglas hicieron match (hit) y cuáles no (no hit), acciones ejecutadas y puntuación total. No se incluye cuando executeRules es false. Estructura completa y ejemplo: Resumen de Ejecución de Reglas.
rulesHit (array) - Reglas cuyas condiciones se cumplieron. Cada ítem: name, description, score, priority, category, status (ej. active, shadow), conditions (array de { field, value, operator? }), actions (alerts, suggestion, status, assignedUser).
rulesNoHit (array) - Reglas evaluadas cuyas condiciones no se cumplieron. Misma estructura que rulesHit (incluye acciones configuradas, no ejecutadas).
actionsExecuted (object) - Acciones ejecutadas agregadas de todas las reglas que hicieron hit: alerts (array de { name?, type?, severity?, description? }), suggestion (BLOCK | SUSPEND | FLAG, la de mayor peso), status (estado de entidad aplicado, si hubo), assignedUser ({ userId }, si hubo), customKeys (array de strings, opcional) — claves de acciones personalizadas de las reglas que hicieron match (ej. require_kyc, flag_for_review). Presente cuando alguna regla que hizo match tiene una acción personalizada con clave; para integraciones/workflows.
totalScore (number) - Suma del score de todas las reglas que hicieron hit y no están en estado shadow.
Importante: Una vez que una transacción alcanza un estado cerrado, no puede volver a un estado abierto. Esto asegura la integridad de la transacción y rastros de auditoría apropiados.