Antes de começar
- Tracer em execução e acessível, com uma API key — veja Primeiros passos
- O id da conta, do portfólio ou do segmento a que o teto se aplica
- A moeda das transações que você quer limitar
- Familiaridade com os tipos de limite, as janelas de tempo e os períodos personalizados — veja Limites de gasto
X-API-Key e rodam contra http://localhost:4020.
Passo 1: Decida a que 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 ficam disponíveis dentro de um objeto:
Os campos dentro de um objeto se combinam com AND. Um campo que você deixa de fora é um curinga. Entre objetos a lista se combina com OR, então um limite com dois objetos se aplica quando qualquer um dos dois casa.
A escolha que decide a resposta para “R$ 20.000 por conta” é qual id você nomeia:
- Uma conta, o próprio orçamento
- Um segmento, um orçamento compartilhado
- Restrito a um único trilho
Um limite também carrega uma
currency, e o Tracer confere um limite contra uma transação apenas quando as duas coincidem. Um limite criado em BRL não é conferido contra uma transação em USD, então 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 ao CUSTOM e são recusados nos outros quatro tipos. Para restringir um teto a certas horas do dia, veja as janelas de tempo.
Passo 3: Crie o limite
POST /v1/limits armazena a definição. Ela nasce em DRAFT, o que significa que está armazenada mas ainda não é conferida.
201. O corpo é o limite armazenado; dois campos importam agora:
Os nomes são únicos entre limites, e o conjunto de caracteres é estreito.
name aceita letras e dígitos ASCII, espaços e -, _, ., (, ). Um acento ou um travessão é recusado com 0371. Um nome que outro limite vigente já ocupa é recusado com 0442; excluir um limite libera o nome dele de novo.Passo 4: Ative-o
Um limite em
DRAFT não é conferido. A ativação é o que o coloca no caminho:
status em ACTIVE. A partir daqui, todo POST /v1/validations cuja transação case com o escopo e a moeda é medido contra ele.
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, então o gasto que aconteceu enquanto o limite estava em
DRAFT não está na contagem. Um teto ativado no dia 20 governa o que acontece do dia 20 em diante.Passo 5: Leia quanto ainda resta
Toda resposta de
POST /v1/validations traz limitUsageDetails, com uma entrada por limite que o Tracer conferiu:
Na entrada acima, uma compra de R$ 1.500 levou um mês de 18.500 a exatamente 20.000 — o teto está esgotado, e a próxima transação daquela conta é negada até agosto.
Quando um limite é ultrapassado, a decisão é
DENY e reason é limit_exceeded; o valor que teria cruzado o teto não entra na contagem. Um limite produz uma negativa, não uma marcação para revisão. Para ir dessa negativa de volta ao limite que a causou, veja Revisar uma transação negada.
A outra leitura
GET /v1/limits/{limitId}/usage responde com um total do limite, não com o total de um período: ele soma os contadores de uso registrados contra o limite, entre os períodos e escopos que ele acumulou. Use para revisar quanto um limite absorveu no total — não para responder quanto sobra para um cliente neste mês.
Um contador é removido 90 dias após o fim do seu período, então em um limite de longa duração esse total cobre apenas os períodos ainda conservados, não a vida inteira do limite. Veja Rastreamento de uso.
Veja Recuperar o uso de um limite.
Passo 6: Mude, pause, remova
1
Suba ou baixe o teto
name, description, maxAmount e scopes são editáveis, e os campos de janela de tempo e de período personalizado também. limitType e currency não são — uma requisição que envia qualquer um dos dois é recusada com 0380, e um período ou uma moeda diferente significa um limite novo. Um corpo sem nada dentro é recusado com 0183. Veja Atualizar um limite.Mudar o teto não apaga a contagem em curso. Baixe-o abaixo do que o período atual já consumiu e a conta fica negada até o próximo período começar.2
Pare de aplicá-lo
INACTIVE e deixa de ser conferido. Ele mantém a definição e o lugar no , e POST /v1/limits/{limitId}/activate o devolve ao caminho. Veja Desativar um limite.3
Devolva para rascunho
INACTIVE para DRAFT. Veja Devolver um limite para rascunho.4
Remova
204. Um limite que está ACTIVE precisa ser desativado antes — o Tracer recusa a exclusão com 0363, que é o que impede um teto vigente de sumir por acidente. Veja Excluir um limite.Encontre os limites que você já tem
GET /v1/limits lista os limites 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 Recuperar um limite para um por id.
O que dá errado
Códigos de erro
A lista completa está na Lista de erros do Tracer.

