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
1000o99.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.01y0.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"]