pain.001 é a mensagem ISO 20022 que uma empresa envia ao seu banco para ordenar uma ou mais transferências. O nome completo é Customer Credit Transfer Initiation: "pain" é a família de mensagens de iniciação de pagamentos, .001 é o número da mensagem e o sufixo, como pain.001.001.09, é a versão. É XML, é validada contra um esquema oficial (XSD) e substitui formatos CSV específicos de cada banco e a mensagem de texto SWIFT MT101.
pain.001 em um minuto#
- Quem envia: uma empresa (o devedor, ou um agente que atua em seu nome) envia ao próprio banco (o banco do devedor).
- O que contém: um ou mais lotes de transferências, cada um com uma conta do devedor, uma data de execução solicitada e qualquer número de pagamentos a credores.
- O que volta: o banco responde com pain.002, o Customer Payment Status Report, aceitando ou rejeitando o arquivo ou transações individuais com códigos de motivo ISO.
- O que acontece depois: uma vez aceita, o banco transforma cada instrução em mensagens interbancárias como pacs.008, que a empresa nunca vê.
- Onde é usada: transferências SEPA segundo os rulebooks do EPC, pagamentos internacionais na rede Swift sob o CBPR+ (
pain.001.001.09) e muitos esquemas domésticos. O corpus de exemplos do Pain001 cobre 42 cenários em 17 mercados.
Como uma mensagem pain.001 é estruturada#
Todas as versões compartilham o mesmo esqueleto de três níveis dentro de um elemento <CstmrCdtTrfInitn>.
| Nível | Elemento | O que contém |
|---|---|---|
| 1 | <GrpHdr> Group Header (cabeçalho do grupo) | ID da mensagem, data e hora de criação, número de transações (NbOfTxs), soma de controle (CtrlSum), parte iniciadora |
| 2 | <PmtInf> Payment Information (informações de pagamento) | Um lote: método de pagamento, data de execução solicitada, devedor, conta e banco do devedor, responsável pelas tarifas |
| 3 | <CdtTrfTxInf> Credit Transfer Transaction (transação de transferência) | Um pagamento: referência ponta a ponta, valor e moeda, credor, conta e banco do credor, informações de remessa |
Um arquivo pode conter vários lotes <PmtInf>, e cada lote muitos pagamentos <CdtTrfTxInf>. NbOfTxs e CtrlSum aparecem tanto no nível do arquivo quanto no do lote e precisam bater com os pagamentos que contam, um dos motivos mais comuns para um banco rejeitar um arquivo.
Um exemplo completo de pain.001#
Esta é uma única transferência SEPA em pain.001.001.09, extraída sem alterações do corpus de exemplos do Pain001. Ela valida contra o XSD oficial do ISO 20022. As partes, os IBANs e os BICs são fictícios.
OML-SCT-20260921
2026-09-21T12:00:00
1
2200.00
Officine Meccaniche Lombarde SpA
20123
Milano
IT
Via Torino 15
SCT-20260921-IT-01
TRF
false
1
2200.00
SEPA
2026-09-22
Officine Meccaniche Lombarde SpA
20123
Milano
IT
Via Torino 15
IT48T78971134594OGDKY5VXE41
TLAOIT60
SLEV
OML-2026-0921-01
2200.00
MHXHITI0
Fonderia Bresciana Srl
25121
Brescia
IT
IT23J14887404856NF3794IGWXN
Fattura 117/2026
Teste seus próprios dados na demonstração no navegador: ela gera um arquivo pain.001 a partir de um CSV e o valida contra o esquema oficial sem que os dados saiam do seu computador.
Versões do pain.001#
A ISO publica uma nova versão quando o modelo da mensagem muda. Bancos e esquemas aceitam versões específicas, então a versão que você envia é a indicada na documentação do canal do seu banco.
| Versão | Observações |
|---|---|
| pain.001.001.03 | O padrão consolidado de SEPA e CGI; identifica bancos com <BIC> |
| .04, .05, .06, .07, .08 | Versões de manutenção usadas por canais específicos |
| pain.001.001.09 | A versão de 2019 escolhida pelo CBPR+ para a rede Swift; identifica bancos com <BICFI> e acrescenta suporte a LEI e UETR |
| .10, .11, .12 | Refinamentos posteriores a 2019 |
| pain.001.001.13 | Publicada pela ISO em 19 de março de 2026; acrescenta um identificador único de transação opcional (UnqTxIdr) |
A matriz de compatibilidade mostra quais versões o Pain001 gera, valida e entre quais migra dados.
pain.001 comparado a mensagens relacionadas#
| Mensagem | Direção | Finalidade |
|---|---|---|
| pain.001 | Empresa para o seu banco | Ordena transferências (o dinheiro sai) |
| pain.002 | Banco para a empresa | Informa o status de um pain.001 ou pain.008: aceito, parcialmente aceito ou rejeitado, com códigos de motivo |
| pain.008 | Empresa para o seu banco | Ordena débitos diretos (cobra valores com base em um mandato) |
| pacs.008 | Banco para banco | A transferência interbancária em que uma instrução pain.001 se transforma |
| MT101 | Empresa ou banco, via Swift | A antiga mensagem de texto "Request for Transfer" que o pain.001 substitui. Em agosto de 2026 a Swift adiou a desativação do relay interbancário de MT101 (Swift); veja MT101 para pain.001 |
O glossário define o restante do vocabulário ISO 20022 em linguagem simples.
Por que os bancos rejeitam arquivos pain.001#
Um arquivo pode ser um XML bem formado e mesmo assim ser rejeitado. As verificações se acumulam em camadas:
- Esquema: o arquivo precisa validar contra o XSD oficial da sua versão.
- Qualidade dos dados: os IBANs passam nos dígitos verificadores, os BICs estão bem formados, datas e valores são válidos, e
NbOfTxseCtrlSumbatem com os pagamentos. - Regras do esquema: SEPA, CBPR+ e esquemas domésticos acrescentam restrições próprias, como o conjunto de caracteres permitido ou um endereço postal estruturado.
- Perfil e canal do seu banco: cada banco publica suas próprias diretrizes de uso além das regras do esquema.
O Pain001 verifica as três primeiras camadas antes que o arquivo chegue ao banco e deixa claro que a quarta cabe ao banco confirmar.
Como criar um arquivo pain.001#
- A partir de uma planilha: Excel para pain.001 transforma uma lista de pagamentos em Excel ou CSV em um arquivo validado.
- No navegador: a demonstração gera e valida um arquivo localmente, sem upload.
- Por código ou linha de comando: instale a biblioteca pain001 de código aberto e execute:
A referência técnica cobre todas as opções, e as perguntas frequentes respondem ao que as equipes de tesouraria, operações e engenharia mais perguntam.
Fontes#
- Definições e arquivo de mensagens ISO 20022: iso20022.org
- Rulebook de transferências SEPA: European Payments Council
- CBPR+ e o relay de MT101: Swift