Modelo ISO 20022 do camt.029 (resposta ao camt.055 — aceite
ACCR ou rejeição RJCR), versões 1.1 e 1.2 coexistindo (enums de
rsn_prtry diferem entre as duas: v1_1 tem 4 códigos a mais que
v1_2). Correlaciona com o PmtCxlId do camt.055 original (aqui
OrgnlPmtInfCxlId).
Sts.Conf (enum de valor único "INFO") fica fixo.
Regra da planilha do catálogo, sem contrapartida no XSD (que não
expressa regra cruzada entre campos): pmt_inf_cxl_sts == "ACCR"
exige rsn_prtry ausente e cxl_prcg_tp == "DHAC";
pmt_inf_cxl_sts == "RJCR" exige rsn_prtry presente e
cxl_prcg_tp == "DHRC". encode/3 valida isso explicitamente.
Summary
Functions
Decodifica um XML de camt.029 de volta para a struct.
Monta o XML (envelope completo, AppHdr + Document) para a versão dada.
Types
@type t() :: %Isox.Camt029{ assgne_ispb: String.t(), assgnmt_id: String.t(), assgnr_ispb: String.t(), created_at: DateTime.t(), cxl_prcg_tp: String.t(), orgnl_end_to_end_id: String.t(), orgnl_pmt_inf_cxl_id: String.t(), orgnl_pmt_inf_id: String.t(), pmt_inf_cxl_sts: String.t(), prcg_dt_tm: DateTime.t(), rsn_prtry: String.t() | nil }
@type version() :: :v1_1 | :v1_2
Functions
Decodifica um XML de camt.029 de volta para a struct.
@spec encode(t(), Isox.AppHdr.t(), version()) :: {:ok, binary()} | {:error, String.t()}
Monta o XML (envelope completo, AppHdr + Document) para a versão dada.