Antes de começar
- Tracer em execução e acessível, com uma chave de API. Veja Primeiros passos
- O id da conta, do portfólio ou do segmento ao qual o teto se aplica
- O código do ativo das transações que você quer limitar
- Familiaridade com tipos de limite, janelas de tempo e períodos personalizados. Veja Limites de gastos
X-API-Key e rodam contra http://localhost:4020.
Passo 1: Decida a quem o teto se dirige
Um limite carrega uma lista de objetos de escopo, e cada objeto nomeia a que o limite se aplica. Estes campos estão disponíveis dentro de um objeto:
Campos dentro de um mesmo objeto se combinam com AND. Um campo que você omite funciona como curinga. Entre objetos, a lista se combina com OR, então um limite com dois objetos se aplica quando qualquer um deles corresponde.
A escolha que decide a resposta para “R$ 20.000 por conta” é qual id você nomeia:
- Uma conta, seu próprio orçamento
- Um segmento, um orçamento compartilhado
- Restrito a um trilho
Um limite também carrega um
asset, e o Tracer apenas confere um limite contra uma transação quando os dois correspondem. O Tracer não confere um limite criado em BRL contra uma transação em USD. Uma carteira que liquida em duas moedas precisa de um limite para cada uma.Passo 2: Escolha o período
limitType decide tanto o tamanho da janela do teto quanto quando uma nova contagem começa. O Tracer oferece cinco:
“por mês” é
MONTHLY.
CUSTOM recebe customStartDate e customEndDate e é o formato para uma campanha ou uma promoção. Esses dois campos pertencem a CUSTOM. O Tracer os rejeita nos outros quatro tipos. Para restringir um teto a certas horas do dia, veja janelas de tempo.
Passo 3: Crie o limite
POST /v1/limits armazena a definição. O Tracer a cria em DRAFT e ainda não a confere contra transações.
201. O corpo carrega o limite armazenado. Dois campos importam agora:
Os nomes são únicos entre limites, e o conjunto de caracteres é restrito.
name aceita letras ASCII e dígitos, espaços, e -, _, ., (, ). O Tracer rejeita um acento, ou um traço digitado como travessão, com 0371. O Tracer rejeita um nome que outro limite ativo já possui, com 0442. Excluir um limite libera o nome novamente.Passo 4: Ative-o
O Tracer não confere um limite em
DRAFT. A ativação é o que o coloca no caminho:
status definido como ACTIVE. A partir daqui, o Tracer confere contra este limite toda POST /v1/validations cuja transação corresponda ao escopo e ao ativo.
Ativar no meio do mês não importa o histórico do mês. O Tracer conta uma transação contra um limite no momento em que decide sobre ela. Gastos que aconteceram enquanto o limite estava em
DRAFT não entram na contagem. Um teto ativado no dia 20 rege o que acontece a partir do dia 20.Passo 5: Veja quanto resta
Toda resposta de
POST /v1/validations carrega limitUsageDetails, com uma entrada para cada limite que o Tracer conferiu:
No exemplo acima, uma compra de R$ 1.500 levou um mês que estava em 18.500 a exatamente 20.000 e esgotou o teto. O Tracer nega a próxima transação nessa conta até agosto.
Quando uma transação excede um limite, a decisão é
DENY e reason é limit_exceeded. O Tracer não soma à contagem o valor que teria cruzado o teto. Um limite produz uma negação, não um sinalizador para revisão. Para ir de uma negação dessas de volta ao limite que a causou, veja Revisando uma transação negada.
A outra leitura
GET /v1/limits/{limitId}/usage responde com um total do limite, não de um período. Ele soma os contadores de uso registrados contra ele, entre os períodos e escopos que acumulou. Use-o para revisar quanto um limite absorveu no total, não para responder quanto resta a um cliente este mês.
O Tracer exclui um contador 90 dias após o fim do seu período. Em um limite de longa duração, esse total cobre apenas os períodos ainda retidos, não o ciclo de vida completo do limite. Veja Rastreamento de uso.
Veja Obter um snapshot de uso de um limite.
Passo 6: Altere, pause ou remova
1
Aumente ou diminua o teto
name, description, maxAmount e scopes são editáveis, assim como os campos de janela de tempo e de período personalizado. limitType e asset não são. O Tracer rejeita uma requisição que envie qualquer um dos dois com 0380, e um período ou ativo diferente significa um novo limite. O Tracer rejeita um corpo vazio com 0183. Veja Atualizar um limite.Alterar o teto não limpa a contagem em andamento. Diminua-o abaixo do que o período atual já consumiu, e o Tracer nega a conta até o próximo período começar.2
Pare de aplicá-lo
INACTIVE e o Tracer para de conferi-lo. Ele mantém sua definição e seu lugar na , e POST /v1/limits/{limitId}/activate o coloca de volta no caminho. Veja Desativar um limite.3
Volte-o para rascunho
INACTIVE de volta para DRAFT. Veja Retornar um limite ao rascunho.4
Remova-o
204. Você precisa desativar antes um limite que está ACTIVE no momento. O Tracer rejeita a exclusão com 0363, que é o que evita que um teto ativo desapareça por acidente. Veja Excluir um limite.Encontre os limites que você já tem
GET /v1/limits os lista, e filtra pelos mesmos campos de escopo que você definiu no Passo 1:
name, status, limit_type, account_id, segment_id, portfolio_id, merchant_id, transaction_type e sub_type filtram. Os resultados são paginados por cursor. Veja Listar limites, e Obter um limite para um por id.
O que dá errado
Códigos de erro
A lista completa está em Lista de erros do Tracer.

