Modelo ISO 20022 do camt.052 (relação de lançamentos da Conta PI, resposta a camt.060), versão 1.3.
Rpt é max: ilimitado no schema — camt.060 sempre pede o relatório
de uma conta por vez, então o caminho comum é 1, mas encode/3 aceita
1 mensagem ou uma lista (lote: vários Rpt na mesma Document) e
decode/1 devolve 1 struct ou uma lista de volta, mesmo padrão do
Pacs002/Pacs004/Pacs008 (que têm exemplo oficial de lote real).
Este perfil do BCB é resumido: só conta de lançamentos
(NbOfNtries) e text livre (AddtlRptInf) — o detalhamento por
lançamento é o camt.054, não este.
Summary
Functions
Decodifica um XML de camt.052 de volta para a struct — ou, quando a
mensagem traz mais de um Rpt (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
Rpt na mesma Document).
Types
@type t() :: %Isox.Camt052{ acct_ispb: String.t(), addtl_rpt_inf: String.t(), created_at: DateTime.t(), msg_id: String.t(), nb_of_ntries: String.t() | non_neg_integer(), rpt_id: String.t() }
@type version() :: :v1_3
Functions
Decodifica um XML de camt.052 de volta para a struct — ou, quando a
mensagem traz mais de um Rpt (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
Rpt 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.