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
tedOperationtambé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_idindica. Sem essa configuração, a estimativa é zero. - A tarifa que o Midaz cobrou do remetente aparece no
feeAmountda 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 emfeeAmounte o valor creditado emcreditedAmount. - Em uma TED recebida ou em um reembolso, o Midaz cobra de
@external/BRLuma 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.feeRefundedmostra 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 recebe409 TED-0060. X-TTLdefine 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,metadataincluído, também repete a resposta depois doX-TTL. A resposta é201comX-Idempotency-Replayed: truee a transferência no estado atual. - Uma requisição com a mesma chave e outro corpo recebe
422 TED-0012. NoPOST /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-0013comRetry-After. - Com uma chave nova,
POST /v1/transfersrecusa uma requisição materialmente idêntica na mesma janela antiduplicidade (5 minutos por padrão) com409 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.
