Modelo ISO 20022 do trck.002 (autorrelato de transferência entre contas do mesmo participante — book transfer), versão 1.1. Independente de pacs.008/002; responde-se com camt.025.
TrckrStsAndTx/Tx é max: ilimitado no schema — encode/3 aceita 1
mensagem ou uma lista (lote: vários Tx na mesma Document) e
decode/1 devolve 1 struct ou uma lista de volta, mesmo padrão do
Pacs002/Pacs004/Pacs008. TxSts.Sts (enum de valor único
"ACCC") fica fixo — book transfer é sempre reportado como já
efetivado.
3 regras da planilha do catálogo (BCB) que o XSD sozinho não
expressa, validadas em encode/3:
cdtr_acct_proxy(chave Pix) é obrigatório quandolcl_instrmé"DICT"/"QRDN"/"QRES"/"APDN"/"APES"/"INIC", e proibido quando é"MANU"/"AUTO".cdtr_acct_typenunca pode ser"SLRY"(Conta-Salário não recebe pagamentos) — mesmo o XSD reusando o mesmo enum de 5 opções pros dois lados (devedor/credor).instr_idpresente (transação de devolução, análoga a umaPacs004) exigelcl_instrm == "MANU".
Summary
Functions
Decodifica um XML de trck.002 de volta para a struct — ou, quando a
mensagem traz mais de um Tx (lote), para uma lista de structs.
Monta o XML (envelope completo, AppHdr + Document) para a versão
dada. Aceita 1 mensagem ou uma lista de mensagens (lote — vira vários
Tx na mesma Document).
Types
@type t() :: %Isox.Trck002{ cdtr_acct_id: term(), cdtr_acct_issr: term(), cdtr_acct_proxy: term(), cdtr_acct_type: term(), cdtr_agt_ispb: term(), cdtr_cpf_cnpj: term(), created_at: term(), dbtr_acct_id: term(), dbtr_acct_issr: term(), dbtr_acct_type: term(), dbtr_agt_ispb: term(), dbtr_cpf_cnpj: term(), end_to_end_id: term(), instr_id: term(), lcl_instrm: term(), msg_id: term(), pmt_scnro_prtry: term(), reqd_exctn_dt: term(), value: term() }
@type version() :: :v1_1
Functions
Decodifica um XML de trck.002 de volta para a struct — ou, quando a
mensagem traz mais de um Tx (lote), para uma lista de structs.
@spec encode(t() | [t(), ...], Isox.AppHdr.t(), version()) :: {:ok, binary()} | {:error, String.t()}
Monta o XML (envelope completo, AppHdr + Document) para a versão
dada. Aceita 1 mensagem ou uma lista de mensagens (lote — vira vários
Tx na mesma Document).
msg_id/created_at são de GrpHdr (uma vez por mensagem XML) — em
lote, têm que ser iguais em todos os itens da lista.