Skip to main content

Janela de funcionamento


A janela efetiva de um dia combina três fontes. GET /v1/policy/window retorna qual delas decidiu (source).
  • A grade oficial do STR, publicada pelo Lerian SPB. As mudanças de grade que o STR anuncia durante o dia valem sem reinício.
  • O cut-off da instituição, opcional, sempre igual ou anterior ao fechamento oficial. O TED Lerian recusa um horário posterior com TED-0081.
  • O calendário de feriados nacionais, mantido por ano. Um ano carregado cobre todas as datas dele. Carregue o próximo ano antes de 1º de dezembro. Repetir a carga com as mesmas datas é inofensivo.

Limites de uso


  • Por conta de origem: um máximo por transferência, um total por dia e um total por mês, por dia e mês do calendário no horário de Brasília (America/Sao_Paulo). Os tetos seguem a ordem transferência ≤ dia ≤ mês. Um teto ausente significa sem teto.
  • O TED Lerian confere os tetos contra o valor mais a estimativa de tarifa. Depois da reserva, os limites contam o valor mais a tarifa que o Midaz cobrou.
  • Uma instituição deve configurar os seus limites antes da primeira TED. Sem eles, o TED Lerian recusa cada envio com 503 TED-0080.
  • Acima de um limite, o TED Lerian recusa a TED antes da reserva com 422 TED-0030. A resposta indica o limite.
  • Uma transferência rejeitada ou cancelada os libera de novo.
  • Com enabled=false, os limites não contam nada e não recusam nada.
  • Apenas o administrador os altera. Cada alteração registra quem a fez e quando.

Tarifas


  • Os pacotes de tarifas do Midaz do seu ledger precificam cada TED, exceto uma TED que uma conta com um plano de tarifas ativo envia. O plano cobra essa conta, não os pacotes de tarifas, e só quando uma tarifa do plano corresponde à TED.
  • O TED Lerian marca cada lançamento que faz no Midaz com chaves de metadados. Um pacote de tarifas seleciona por elas com metadataSelector:
    • tedOperation, uma de:
      • ted_sent: uma TED que você envia.
      • ted_internal: uma transferência interna.
      • ted_received: uma TED recebida.
      • ted_refund: o valor creditado de volta quando outra instituição devolve a sua TED, se a tarifa não for reembolsada.
    • tedPurposeCode: o código de finalidade da TED.
  • Um pacote que não seleciona por tedOperation também pode precificar TEDs recebidas e reembolsos.
  • Em uma TED que você envia, o pacote deve cobrar toda tarifa do remetente. Se o pacote aplicado tirar alguma tarifa do valor enviado, o TED Lerian cancela a reserva e recusa a TED com 503 TED-0080. Ele faz o mesmo quando não consegue ler esse pacote. Nada vai para o STR.
  • A cotação de tarifa é uma estimativa. O TED Lerian a calcula a partir do pacote de tarifas que a configuração de runtime fee.package_id indica. Sem essa configuração, a estimativa é zero.
  • A tarifa que o Midaz cobrou do remetente aparece no feeAmount da transferência, depois da reserva ou depois da liquidação de uma transferência interna.
  • Se o TED Lerian não consegue obter a estimativa, ele recusa a cotação e o envio com 503 TED-0040.
  • Em uma TED recebida, o TED Lerian credita o valor integral. Um pacote de tarifas que a precifica deve deduzir a tarifa do crédito (isDeductibleFrom: true). A tarifa então aparece em feeAmount e o valor creditado em creditedAmount.
  • Em uma TED recebida ou em um reembolso, o Midaz cobra de @external/BRL uma tarifa que não é dedutível, e o cliente recebe o valor integral.
  • Quando outra instituição devolve uma TED, o TED Lerian não reembolsa a tarifa de envio por padrão. A instituição pode ligar o reembolso, e returned.feeRefunded mostra o que aconteceu.

Idempotência e requisições duplicadas


  • Toda escrita precisa do header X-Idempotency: de 1 a 128 caracteres ASCII imprimíveis. Sem ele, a resposta é 400 TED-0011.
  • A mesma chave com o mesmo corpo retorna a resposta original com X-Idempotency-Replayed: true. O TED Lerian não cria nenhuma transferência nova. Uma chave nova em uma devolução ou em uma decisão de revisão já aplicada recebe 409 TED-0060.
  • X-TTL define por quantos segundos o TED Lerian repete a resposta (padrão 300). Apenas o TTL da primeira requisição vale.
  • No POST /v1/transfers, a mesma chave com a mesma requisição, metadata incluído, também repete a resposta depois do X-TTL. A resposta é 201 com X-Idempotency-Replayed: true e a transferência no estado atual.
  • Uma requisição com a mesma chave e outro corpo recebe 422 TED-0012. No POST /v1/transfers, uma requisição posterior com a mesma chave nunca cria uma segunda transferência.
  • Uma requisição com a mesma chave ainda em andamento recebe 409 TED-0013 com Retry-After.
  • Com uma chave nova, POST /v1/transfers recusa uma requisição materialmente idêntica na mesma janela antiduplicidade (5 minutos por padrão) com 409 TED-0014.

Prazos regulatórios


GET /v1/operations/sla mostra p50, p95 e p99 de cada prazo, os estouros do dia e os itens em risco.

Dados pessoais


  • Respostas da API: o nome e o CPF ou CNPJ do remetente e do recebedor vêm completos, para os papéis com permissão de lê-los.
  • Logs: o TED Lerian mascara documentos e nomes.
  • Eventos de TEDs enviadas (transfer.*) não trazem dados da contraparte.
  • Eventos de TEDs recebidas (incoming_transfer.*) trazem o recebedor, cliente da própria instituição, completo. O remetente, cliente de outra instituição, vem mascarado.
  • A descrição em texto livre de uma TED recebida é publicada como a instituição remetente a escreveu.

Isolamento entre instituições


Cada registro pertence a uma instituição. A instituição sempre vem do token autenticado, nunca de um campo da requisição. Um identificador de outra instituição responde como não encontrado (404), sem revelar que existe.

Auditoria


Cada transferência tem uma linha do tempo que nunca é editada. Ela registra cada mudança de status com a data e a hora, a origem (API, RAIL, STR, LEDGER, WORKER, OPERATOR, SYSTEM), o motivo oficial e, nas ações de operador, quem agiu. O TED Lerian não apaga nenhum registro de negócio.