Sintaxe para expressões
As expressões usadas em regras seguem uma sintaxe enxuta inspirada em fórmulas de planilhas. Cada expressão é composta por, no mínimo, uma variável, uma operação e um valor.
$merchant_id == "XYZ"
A expressão acima é verdadeira quando o ID do estabelecimento é igual a "XYZ".
Variáveis
Toda variável começa com $. As variáveis disponíveis dependem do tipo de evento avaliado.
| Variável | Conteúdo | Tipo | Exemplo |
|---|---|---|---|
$amount | Valor total do pagamento | Decimal | 100.12 |
$card_bin | Primeiros 6 a 8 dígitos do PAN (BIN/IIN) | Texto | "44332211" |
$card_issuer_country | País do emissor do cartão (ISO 3166-1 alfa-2) | Texto | "BR" |
$card_last_four | Últimos quatro dígitos do cartão | Texto | "1234" |
$device_fingerprint_id | Fingerprint do dispositivo | Texto | "xyz" |
$device_ip_address | Endereço IP do dispositivo | Endereço IP | "200.123.10.2" |
$device_user_agent | User-Agent do dispositivo | Texto | "Mozilla/5.0" |
$merchant_id | ID do estabelecimento | Texto | "loja-1234" |
$metadata_[chave] | Metadado enviado via API | Texto | "valor" |
$score | Score de risco calculado pela plataforma (0,00 a 1,00) | Decimal | 0.75 |
$user_email_domain | Domínio do email do usuário | Texto | "gmail.com" |
$user_id | ID do usuário | Texto | "cliente-1234" |
$user_profiles | Perfis de pagamento do usuário (apenas com a função count) | Coleção | N/A |
Operações
| Operação | Significado |
|---|---|
== | Igualdade |
!= | Desigualdade |
> | Maior que |
>= | Maior ou igual |
< | Menor que |
<= | Menor ou igual |
in | Pertence a uma coleção |
not in | Não pertence a uma coleção |
Valores
O valor comparado com uma variável pode ser um texto ou um número:
- Texto: sempre entre aspas duplas, como
"XYZ". Aspas simples e textos sem aspas não são aceitos. - Número: escrito sem aspas, usando ponto como separador decimal, como
1000ou99.01.
Como todo texto fica entre aspas duplas, valores como um IP, uma data ou uma palavra usada na própria sintaxe (por exemplo, in) também precisam das aspas para serem tratados como texto.
Para verificar se uma variável está vazia, compare-a com null (sem aspas) usando == ou !=:
$device_fingerprint_id == null
A expressão acima é verdadeira quando o evento não tem fingerprint do dispositivo. Use != para o caso contrário, quando a variável tem algum valor.
Funções
concat
A função concat junta vários valores em um único texto, que pode ser comparado com um valor. Cada argumento é uma variável ($variável) ou um texto fixo, separados por vírgula:
concat($user_id, "-", $merchant_id) == "cliente-1234-loja-1234"
A expressão acima é verdadeira quando a combinação do ID do usuário e do ID do estabelecimento, unidos por um hífen, resulta em "cliente-1234-loja-1234".
Considerações sobre os valores juntados:
- Variáveis sem valor são tratadas como texto vazio.
- Valores numéricos são convertidos para texto na forma original (por exemplo,
99.01e0.9).
Combinando expressões
Use and e or para combinar expressões. O and tem precedência sobre o or: em uma combinação sem parênteses, as partes ligadas por and são avaliadas primeiro. Assim, A and B or C equivale a (A and B) or C.
Use parênteses para agrupar expressões e alterar essa precedência:
($amount > 1000 and $user_email_domain == "gmail.com") or $card_issuer_country != "BR"
Listas
Listas configuradas em Configurações > Listas ficam disponíveis como coleções. Por exemplo, para verificar se um cliente está em uma lista de quarentena:
$user_id in @clientes_quarentena
Também é possível escrever a coleção diretamente na expressão, entre colchetes e com os valores separados por vírgula. Por exemplo, para verificar se o país do emissor do cartão não está entre os países atendidos:
$card_issuer_country not in ["BR", "AR", "CL"]