Saltar al contenido principal
POST
/
v1
/
validations
Validar una Transaccion
curl --request POST \
  --url https://tracer.lerian.io/v1/validations \
  --header 'Content-Type: <content-type>' \
  --header 'X-API-Key: <x-api-key>' \
  --data '
{
  "requestId": "550e8400-e29b-41d4-a716-446655440000",
  "transactionType": "CARD",
  "subType": "debit",
  "amount": 150000,
  "currency": "BRL",
  "transactionTimestamp": "2026-01-30T10:30:00Z",
  "account": {
    "accountId": "660e8400-e29b-41d4-a716-446655440001",
    "type": "checking",
    "status": "active"
  },
  "segment": {
    "segmentId": "770e8400-e29b-41d4-a716-446655440002",
    "name": "corporate"
  },
  "merchant": {
    "merchantId": "990e8400-e29b-41d4-a716-446655440004",
    "name": "Store ABC",
    "category": "5411",
    "country": "BR"
  },
  "metadata": {
    "channel": "MOBILE_APP",
    "deviceId": "device-abc123"
  }
}
'
{
  "requestId": "550e8400-e29b-41d4-a716-446655440000",
  "validationId": "ff0e8400-e29b-41d4-a716-446655440010",
  "decision": "ALLOW",
  "reason": "Transaccion aprobada",
  "matchedRuleIds": [],
  "evaluatedRuleIds": [
    "aa1e8400-e29b-41d4-a716-446655440011",
    "bb1e8400-e29b-41d4-a716-446655440012"
  ],
  "limitUsageDetails": [
    {
      "limitId": "cc1e8400-e29b-41d4-a716-446655440013",
      "limitAmount": 5000000,
      "currentUsage": 1650000,
      "exceeded": false,
      "period": "DAILY"
    }
  ],
  "processingTimeMs": 23
}

Encabezados

Content-Type
string
requerido

El tipo de medio del recurso. Debe ser application/json.

X-API-Key
string
requerido

La clave API para autenticacion. Este encabezado es requerido para todos los endpoints excepto verificaciones de salud.

X-Request-Id
string<uuid>

Un identificador unico usado para rastrear y seguir cada solicitud.

Cuerpo

application/json

Solicitud de validacion de transaccion. Todo el contexto requerido para la validacion debe ser incluido (Patron Payload-Complete).

requestId
string<uuid>
requerido

ID unico generado por el cliente para idempotencia y correlacion de rastro de auditoria.

transactionType
enum<string>
requerido

Tipo de transaccion (metodo de pago).

Opciones disponibles:
CARD,
WIRE,
PIX,
CRYPTO
amount
integer
requerido

Monto de la transaccion en centavos (unidad monetaria mas pequena). Debe ser entero positivo.

Rango requerido: x >= 1
currency
string
requerido

Codigo de moneda ISO 4217 (mayusculas). Los codigos en minusculas son rechazados.

Required string length: 3
transactionTimestamp
string<date-time>
requerido

Marca de tiempo de la transaccion en formato RFC3339 con zona horaria.

account
object
requerido

Contexto de cuenta para validacion.

subType
string

Subtipo de transaccion para contexto adicional (ej., debito, credito, prepago).

Maximum string length: 50
segment
object

Contexto de segmento (opcional). Si se proporciona, segmentId es requerido.

portfolio
object

Contexto de portafolio (opcional). Si se proporciona, portfolioId es requerido.

merchant
object

Contexto de comerciante (opcional, recomendado para transacciones con tarjeta). Si se proporciona, merchantId es requerido.

metadata
object

Pares clave-valor personalizados para expresiones de reglas.

Respuesta

Indica que la validacion fue procesada exitosamente y devuelve la decision.

Resultado de validacion de transaccion.

requestId
string<uuid>

Eco del identificador de solicitud proporcionado por el cliente.

validationId
string<uuid>

Identificador unico generado por el servidor para este registro de validacion.

decision
enum<string>

Decision de validacion (ALLOW, DENY o REVIEW).

Opciones disponibles:
ALLOW,
DENY,
REVIEW
reason
string

Razon legible para humanos de la decision.

matchedRuleIds
string<uuid>[]

IDs de reglas que coincidieron y activaron la decision.

evaluatedRuleIds
string<uuid>[]

IDs de todas las reglas que fueron evaluadas.

limitUsageDetails
object[]

Detalles sobre cada limite verificado durante la validacion.

processingTimeMs
integer

Tiempo de procesamiento en milisegundos (objetivo < 80ms p99).

totalRulesLoaded
integer

Numero total de reglas cargadas para evaluacion.

truncated
boolean

Si la respuesta fue truncada debido a limites de tamano.