Isox.Reda016 (Isox v0.1.0)

Copy Markdown View Source

Modelo ISO 20022 do reda.016 (aviso de status — resposta a reda.014/022/031), versão 1.5. Correlaciona com o pedido original por OrgnlBizInstr.MsgId.

sts tem 3 valores possíveis (Status6Code): "COMP" (sucesso), "QUED" (fila/pendência) e "REJT" (rejeição) — confirmado pelos 3 exemplos oficiais do BCB. rsn_prtry/StsRsn é obrigatório em "QUED"/"REJT" e proibido em "COMP"; sys_pty_ispb/SysPtyId é o inverso — obrigatório em "COMP" (regra explícita da planilha do catálogo) e proibido em "QUED"/"REJT". rspnsbl_pty_ispb só faz sentido dentro de SysPtyId, ou seja, exige sys_pty_ispb. encode/3 valida tudo isso.

Summary

Functions

Decodifica um XML de reda.016 de volta para a struct.

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

Types

t()

@type t() :: %Isox.Reda016{
  created_at: DateTime.t(),
  msg_id: String.t(),
  orgnl_msg_id: String.t(),
  rsn_prtry: String.t() | nil,
  rspnsbl_pty_ispb: String.t() | nil,
  sts: String.t(),
  sys_pty_ispb: String.t() | nil
}

version()

@type version() :: :v1_5

Functions

decode(xml)

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

Decodifica um XML de reda.016 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.