# Isox v0.2.0 - Table of Contents > Codec ISO 20022 do catálogo de mensagens do SPI (Pix): encode e decode genéricos por envelope, dicionário de campos com o nome de cada um no catálogo do BCB, e assinatura XMLDSig no perfil do Manual de Segurança do SFN. ## Pages - [Isox](readme.md) - [Changelog](changelog.md) - [LICENSE](license.md) ## Modules - [Isox](Isox.md): Codec das mensagens ISO 20022 do catálogo do SPI (Pix). - Modelos - [Isox.AppHdr](Isox.AppHdr.md): BAH (`head.001`): o cabeçalho que toda mensagem do catálogo carrega (Manual VIII). - [Isox.Envelope](Isox.Envelope.md): Cabeçalho mais mensagem: o par que `Isox.encode/2` recebe e `Isox.decode/1` devolve. - Dicionário de campos - [Isox.Dictionary](Isox.Dictionary.md): O que cada campo de cada mensagem quer dizer. - [Isox.Dictionary.Entry](Isox.Dictionary.Entry.md): Uma entrada do dicionário: tudo que se sabe sobre um campo de uma mensagem. - Mensagens (API de baixo nível) - [Isox.Admi002](Isox.Admi002.md): Recusa de mensagem: o que o SPI responde quando nem chegou a entender o que recebeu. - [Isox.Admi004](Isox.Admi004.md): Evento de sistema: o aviso que o SPI manda a todos os participantes, sem relação com transação nenhuma. - [Isox.Camt014](Isox.Camt014.md): Identificação de participante: quem é o dono de um ISPB e em que situação ele está. - [Isox.Camt025](Isox.Camt025.md): Recibo: a resposta a uma ou mais `Isox.Trck002`. - [Isox.Camt029](Isox.Camt029.md): Resposta ao pedido de cancelamento de Pix Agendado: aceita ou recusa a `Isox.Camt055`. - [Isox.Camt052](Isox.Camt052.md): Relação de lançamentos da Conta PI: a resposta a uma `Isox.Camt060` que pediu `REL`, `TRD` ou `TRT`. - [Isox.Camt053](Isox.Camt053.md): Saldo da Conta PI: a resposta a uma `Isox.Camt060` que pediu `CSA` ou `CRE`. - [Isox.Camt054](Isox.Camt054.md): Detalhe de um lançamento da Conta PI: a contrapartida contábil de cada pagamento liquidado. - [Isox.Camt055](Isox.Camt055.md): Pedido de cancelamento de Pix Agendado. - [Isox.Camt060](Isox.Camt060.md): Consulta à Conta PI: saldo, extrato, relação de lançamentos ou detalhe de um lançamento. - [Isox.Pacs002](Isox.Pacs002.md): Relatório de status: a resposta a uma `Isox.Pacs008` ou a uma `Isox.Pacs004`. - [Isox.Pacs004](Isox.Pacs004.md): Devolução: a ordem que faz o dinheiro de um Pix já liquidado voltar. - [Isox.Pacs008](Isox.Pacs008.md): Ordem de crédito: a mensagem que move o dinheiro de um Pix. - [Isox.Pain009](Isox.Pain009.md): Solicitação de recorrência do Pix Automático: pede ao participante do pagador que autorize uma série de cobranças. - [Isox.Pain011](Isox.Pain011.md): Cancelamento de recorrência do Pix Automático. - [Isox.Pain012](Isox.Pain012.md): Resposta sobre uma recorrência do Pix Automático: aceita ou recusa uma `Isox.Pain009` ou uma `Isox.Pain011`. - [Isox.Pain013](Isox.Pain013.md): Instrução de pagamento agendada, vinculada a uma recorrência ativa do Pix Automático. - [Isox.Pain014](Isox.Pain014.md): Resposta a uma instrução agendada: o participante do pagador aceita ou recusa a `Isox.Pain013`. - [Isox.Pibr001](Isox.Pibr001.md): Eco: o ping do SPI. - [Isox.Pibr002](Isox.Pibr002.md): Eco: o pong do SPI. - [Isox.Reda014](Isox.Reda014.md): Pedido de registro de participante indireto sob um direto. - [Isox.Reda016](Isox.Reda016.md): Resposta a um pedido de cadastro: o desfecho de uma `Isox.Reda014`, `Isox.Reda022` ou `Isox.Reda031`. - [Isox.Reda017](Isox.Reda017.md): Relatório de dados de participante. - [Isox.Reda022](Isox.Reda022.md): Alteração do cadastro de um participante direto: contatos, diretor responsável, palavra-chave e CPF do diretor. - [Isox.Reda031](Isox.Reda031.md): Pedido de encerramento do serviço de liquidação para um participante indireto. - [Isox.Reda041](Isox.Reda041.md): Aviso de mudança no cadastro de um participante. - [Isox.Registry](Isox.Registry.md): Descobre os módulos `Isox.Generated..` já carregados e despacha o parse pela combinação namespace + `MsgDefIdr` (ADR 0002). Os dois precisam concordar, ou é erro. - [Isox.Trck002](Isox.Trck002.md): Autorrelato de transferência interna: o participante avisa ao BC um pagamento que ele liquidou por dentro, sem passar pelo SPI. - Assinatura digital (avançado) - [Isox.Xmldsig.Signer](Isox.Xmldsig.Signer.md): Núcleo do XMLDSig do Pix (Manual de Segurança do SFN Vol. II §3), comum aos dois perfis que o manual define: SPI, com três `` (tabela 3), e DICT, com duas (tabela 4). Hoje só o perfil SPI está implementado, em `sign/4`. `sign_references/3` e `key_info_xml/2` já bastam para montar o do DICT quando existir um simulador para ele, já que a diferença entre os dois é só a lista de referências, não o resto do mecanismo (§3.2 do manual: os passos são os mesmos). - [Isox.Xmldsig.TestCA](Isox.Xmldsig.TestCA.md): Gera, em memória, um par de chave privada + certificado autoassinado RSA-2048, para uso em testes e exemplos de `Isox.Xmldsig.Signer` e `Isox.Xmldsig.Verifier`. - [Isox.Xmldsig.Verifier](Isox.Xmldsig.Verifier.md): Verificação do perfil de assinatura SPI (Manual de Segurança do SFN Vol. II §3.3): recalcula os três digests com canonicalização real, porque os bytes vêm de terceiro, então, diferente da assinatura na saída, não dá pra não dá para supor que já chegaram canônicos, e confere a assinatura RSA-SHA256 sobre o `SignedInfo`. ## Mix Tasks - [mix catalog.gen](Mix.Tasks.Catalog.Gen.md): Lê todos os `.xsd` de mensagem em `--xsd-dir` (exceto `xmldsig`, que não é mensagem) e gera, em `--out`, um módulo `Isox.Generated..` por arquivo, mais um módulo interno com o BAH (`head.001`), compartilhado entre todas as mensagens (ADR 0004). - [mix xmldsig.spike](Mix.Tasks.Xmldsig.Spike.md): Mede o throughput de assinar e verificar uma pacs.008 realista, sem servidor HTTP no caminho