Sintaxis para expresiones

Las expresiones usadas en reglas siguen una sintaxis sencilla inspirada en fórmulas de hojas de cálculo. Cada expresión está compuesta por, como mínimo, una variable, una operación y un valor.

$merchant_id == "XYZ"

La expresión anterior es verdadera cuando el ID del comercio es igual a "XYZ".

Variables

Toda variable comienza con $. Las variables disponibles dependen del tipo de evento evaluado.

Variable Contenido Tipo Ejemplo
$amount Valor total del pago Decimal 100.12
$card_bin Primeros 6 a 8 dígitos del PAN (BIN/IIN) Texto "44332211"
$card_issuer_country País del emisor de la tarjeta (ISO 3166-1 alfa-2) Texto "BR"
$card_last_four Últimos cuatro dígitos de la tarjeta Texto "1234"
$device_fingerprint_id Fingerprint del dispositivo Texto "xyz"
$device_ip_address Dirección IP del dispositivo Dirección IP "200.123.10.2"
$device_user_agent User-Agent del dispositivo Texto "Mozilla/5.0"
$merchant_id ID del comercio Texto "tienda-1234"
$metadata_[clave] Metadato enviado vía API Texto "valor"
$score Puntuación de riesgo calculada por la plataforma (0,00 a 1,00) Decimal 0.75
$user_email_domain Dominio del correo del usuario Texto "gmail.com"
$user_id ID del usuario Texto "cliente-1234"
$user_profiles Perfiles de pago del usuario (solo con la función count) Colección N/A

Operaciones

Operación Significado
== Igualdad
!= Desigualdad
> Mayor que
>= Mayor o igual
< Menor que
<= Menor o igual
in Pertenece a una colección
not in No pertenece a una colección

Valores

El valor comparado con una variable puede ser un texto o un número:

  • Texto: siempre entre comillas dobles, como "XYZ". No se aceptan comillas simples ni textos sin comillas.
  • Número: escrito sin comillas, usando punto como separador decimal, como 1000 o 99.01.

Como todo texto va entre comillas dobles, valores como una IP, una fecha o una palabra usada en la propia sintaxis (por ejemplo, in) también necesitan las comillas para tratarse como texto.

Para verificar si una variable está vacía, compárela con null (sin comillas) usando == o !=:

$device_fingerprint_id == null

La expresión anterior es verdadera cuando el evento no tiene fingerprint del dispositivo. Use != para el caso contrario, cuando la variable tiene algún valor.

Funciones

concat

La función concat une varios valores en un único texto, que puede compararse con un valor. Cada argumento es una variable ($variable) o un texto fijo, separados por comas:

concat($user_id, "-", $merchant_id) == "cliente-1234-tienda-1234"

La expresión anterior es verdadera cuando la combinación del ID del usuario y el ID del comercio, unidos por un guion, resulta en "cliente-1234-tienda-1234".

Consideraciones sobre los valores unidos:

  • Las variables sin valor se tratan como texto vacío.
  • Los valores numéricos se convierten a texto en su forma original (por ejemplo, 99.01 y 0.9).

Combinando expresiones

Use and y or para combinar expresiones. and tiene precedencia sobre or: en una combinación sin paréntesis, las partes unidas por and se evalúan primero. Así, A and B or C equivale a (A and B) or C.

Use paréntesis para agrupar expresiones y cambiar esa precedencia:

($amount > 1000 and $user_email_domain == "gmail.com") or $card_issuer_country != "BR"

Listas

Las listas configuradas en Configuración > Listas quedan disponibles como colecciones. Por ejemplo, para verificar si un cliente está en una lista de cuarentena:

$user_id in @clientes_cuarentena

También es posible escribir la colección directamente en la expresión, entre corchetes y con los valores separados por comas. Por ejemplo, para verificar si el país del emisor de la tarjeta no está entre los países atendidos:

$card_issuer_country not in ["BR", "AR", "CL"]