Isox.Camt025 (Isox v0.2.0)

Copy Markdown View Source

Recibo: a resposta a uma ou mais Isox.Trck002.

Versão 1.0. Um recibo responde até 500 reportes de uma vez, cada um aceito ou rejeitado por conta própria: o mesmo recibo pode ter aceite e rejeição misturados. A correlação de cada item é por orgnl_msg_id e orgnl_pmt_id.

O motivo da rejeição

O bloco StsRsn existe quando sts é "RJCT". Quem decide se ele aparece é rsn_prtry, porque Rsn é obrigatório dentro dele e AddtlInf é que é opcional. Por isso addtl_inf sem rsn_prtry é rejeitado em encode/3: não haveria como montar um StsRsn válido.

Summary

Functions

Decodifica um XML de camt.025 de volta para a struct.

Monta o XML (envelope completo, AppHdr + Document) para a versão dada.

Types

confirmation()

@type confirmation() :: %{
  orgnl_msg_id: String.t(),
  orgnl_pmt_id: String.t(),
  sts: String.t(),
  rsn_prtry: String.t() | nil,
  addtl_inf: String.t() | nil
}

t()

@type t() :: %Isox.Camt025{
  confirmations: [confirmation()],
  created_at: DateTime.t(),
  msg_id: String.t()
}

version()

@type version() :: :v1_0

Functions

decode(xml)

@spec decode(binary()) :: {:ok, t(), version()} | {:error, term()}

Decodifica um XML de camt.025 de volta para a struct.

encode(message, header, version)

@spec encode(t(), Isox.AppHdr.t(), version()) ::
  {:ok, binary()} | {:error, String.t()}

Monta o XML (envelope completo, AppHdr + Document) para a versão dada.