NFS-e Barueri — Sistema operacional¶
Sistema de emissão NFS-e da AXIS (Barueri/SP). Inclui portal manual, WebService SOAP, MCP automatizado e skill local. Fonte da verdade operacional:
ClaudeCode/Finanças/CLAUDE.md.🚨 ATENÇÃO AO EMITIR — código de serviço (orientação Talissa, 17/06/2026): a empresa é tributada no DAS como treinamento (8599, ~6%). Ao emitir NF, usar o código alinhado ao DAS (treinamento) que a Talissa indicar — não usar 115013000 (TI) por padrão. Emitir como TI e declarar treinamento gera divergência que aciona fiscalização (e a reforma de set/2026 vai cruzar nota × DAS automaticamente). O código padrão GCI abaixo está sob revisão da contadora. Ver regra completa em
politica-fiscal.md→ "Regras vigentes (Talissa)".
Identidade emitente¶
| Campo | Valor |
|---|---|
| CNPJ | 62.650.127/0001-03 |
| Razão Social | AXIS CONSULTORIA & EMPRESARIAL LTDA |
| Inscrição Municipal | 4BR4009 |
| Município | Barueri/SP (IBGE 3505708) |
Caminhos de emissão (3 opções)¶
1. Portal manual (fallback)¶
- URL: https://www.barueri.sp.gov.br/nfe/
- Credencial: CPF responsável (consultar
ClaudeCode/Finanças/CLAUDE.md) - Fluxo: login → "Enviar RPS em Lote" → upload
.txtPMB004
2. WebService SOAP (integração direta)¶
- Endpoint:
https://www.barueri.sp.gov.br/nfeservice/wsrps.asmx - Namespace:
http://www.barueri.sp.gov.br/nfe(sem barra final) - Limite: 50 RPS por lote
- Autenticação: Certificado Digital A1 (PFX) — NÃO aceita login/senha
- Certificado:
ClaudeCode/Finanças/certificado digital/AXIS...pfx - Validade: 11/09/2026 (renovar até esta data)
- Senha PFX: consultar
Hub Projetos/Credenciais/mapa-1password.md(mover do CLAUDE.md original pro 1Password — pendência)
3. MCP barueri-nfse (recomendado)¶
- Instalado em:
ClaudeCode/Finanças/skill_gerar_rps/mcp/barueri_nfse_mcp.py - Configurado em:
~/.claude/.mcp.json - 10 ferramentas (
barueri_emitir_nfse,barueri_enviar_lote,barueri_status_lote,barueri_listar_lotes,barueri_baixar_retorno,barueri_processar_retorno,barueri_baixar_nfse_xml,barueri_enviar_nfse_email,barueri_enviar_lote_emails,barueri_testar_conexao)
Formato técnico (SOAP / RPS)¶
Campos obrigatórios no MensagemXML¶
NUNCA usar Login/Senha no XML — autenticação é via certificado SSL.
Schemas XSD oficiais¶
- Download:
C:/tmp/schemas_out/XML_RPS_Schemas_V01/ - Doc oficial: https://www.barueri.sp.gov.br/nfe/Manuais/XML_RPS_Versao_01.pdf
- Cópia no repo:
times/financeiro/context/fiscal/NFE_Manual.pdf+RPS_ListaErros.pdf
Formato PMB004 (arquivo manual)¶
Script: ClaudeCode/Finanças/skill_gerar_rps/scripts/gerar_rps.py
python3 gerar_rps.py \
--nfs nfs_lote.json \
--remessa 005 \
--data YYYYMMDD \
--template rps/enviados/RPS_AXIS_GCI_GO_20260325_v3.txt \
--out rps/enviados/RPS_AXIS_CLIENTE_YYYYMMDD_v1.txt
Regras críticas (não negociar): - Registros Tipo 2: exatamente 1970 bytes - Line endings: CRLF (\r\n) — LF causa rejeição (erros 900/901) - FIXED_BLOCK_478_503: exatamente 25 bytes
Sequência de remessas e RPS (estado atual)¶
| Remessa | RPS início | RPS fim | Data | Cliente |
|---|---|---|---|---|
| 001 | 1 | 5 | — | — |
| 002 | 6 | 10 | 25/03/2026 | GCI GO |
| 003 | 11 | 25 | 30/03/2026 | GCI GO (lote anterior) |
| 004 | 26 | 56 | 31/03/2026 | GCI GO (individual por mês) |
Próxima remessa: 005, próximo RPS: 57
⚠️ Atualizar ClaudeCode/Finanças/CLAUDE.md (fonte) após cada envio aprovado — remessa e RPS são únicos, nunca repetir.
Clientes recorrentes — Grupo GCI GO¶
| Apelido | CNPJ | Cidade/UF | IBGE | Email contábil |
|---|---|---|---|---|
| Oral Gold Ceilândia | 55.942.954/0001-05 | Brasília/DF | 5300108 | contabil@clinicasinteligentes.com.br |
| Parque Anhanguera | 56.045.279/0001-84 | Goiânia/GO | 5208707 | administracao@yacp.com.br |
| Escritório/Holding | 51.039.604/0001-82 | Goiânia/GO | 5208707 | legalizaqcao.go@gci.com.br |
| Plano Piloto | 57.993.993/0001-67 | Brasília/DF | 5300108 | contabil@clinicasinteligentes.com.br |
| Castelo Branco | 57.443.744/0001-06 | Goiânia/GO | 5208707 | contabil@clinicasinteligentes.com.br |
Valor mensal padrão: R$ 1.800,00 (180000 centavos) por clínica.
Clientes recorrentes — NoCode StartUp (Treinamentos IA)¶
| Apelido | CNPJ | Cidade/UF | IBGE | Email fiscal |
|---|---|---|---|---|
| NoCode StartUp | 49.612.202/0001-83 | Barueri/SP | 3505708 | fiscal@nocodestartup.io |
Razão social: No-Code Start-Up Negócios Digitais Ltda Decisor: Matheus Castelo Branco Monho · fiscal@nocodestartup.io · +55 48 99970-0506 Dados completos no 1Password: vault Clientes → "NoCode StartUp — Dados Fiscais [Cliente]" Valor: variável por emissão (treinamentos IA sob demanda — não recorrente fixo). Código serviço: ⚠️ aguardar definição da Talissa (treinamento, NÃO 115013000/TI).
Erros conhecidos — não repetir¶
| Erro | Causa | Fix |
|---|---|---|
| 900/901 | Registro Tipo 2 com tamanho ≠ 1970 bytes | Verificar FIXED_BLOCK_478_503 = 25 bytes exatos |
| 900/901 | Line endings LF | Usar b'\r\n'.join(linhas) no gerador |
| RPS duplicado | Remessa nova ausente do mapeamento | Adicionar entrada no dict antes de gerar |
| E0017 "Versão 0" | MCP usa Login/Senha direto sem VersaoSchema | Usar formato XSD: VersaoSchema=1 + MensagemXML com CDATA |
| E0018 "Schema incompatível" | Campos Login/Senha não existem no XSD | Usar InscricaoMunicipal + CPFCNPJContrib |
| E0001 "Certificado inválido" | SOAP chamado sem certificado A1 | Carregar PFX e montar ssl_ctx com cert+key PEM |
| HTTP 500 NFePDF.ashx | Endpoint PDF da Prefeitura instável | Gerar PDFs localmente com fpdf2 via gerar_pdf_nfse.py |
Fluxo completo testado (31/03/2026)¶
1. Gerar arquivo RPS → gerar_rps.py → .txt PMB004
2. Enviar lote → SOAP com certificado (ou portal manual)
3. Listar lotes → NFeLoteListarArquivos → pegar NomeArqRetorno
4. Baixar retorno → NFeLoteBaixarArquivo → salvar .TXT
5. Parse retorno → regex auth_code + nfse_num + cnpj_tomador
6. Gerar PDFs → gerar_pdf_nfse.py (fpdf2) → 1 PDF por NF
7. Copiar PDFs → pasta do cliente
8. Enviar emails → barueri_enviar_lote_emails (MCP) → tomadores
Atalho MCP (sem arquivo)¶
barueri_emitir_nfse(dados) → protocolo
barueri_status_lote(protocolo) → aguardar "Aprovado"
barueri_baixar_retorno(protocolo, salvar_em=".../retornos/Ret_YYYYMMDD.TXT")
barueri_processar_retorno(caminho_retorno) → lista de NFS-e com auth_code
barueri_enviar_nfse_email(auth_code, nfse_num, email, razao) → enviado
Pendências¶
- [ ] Mover senha do PFX do
Finanças/CLAUDE.mdpro 1Password (vaultdatabases) - [ ] Renovar certificado A1 até 11/09/2026
- [ ] Refatorar MCP
barueri_nfse_mcp.pyque ainda tinha bug Login/Senha (verificar se corrigido) - [ ] Onboarding de novos clientes não-GCI no fluxo (códigos serviço diferentes?)
Refs¶
politica-fiscal.md— regime + retenções../skills/emitir-nfse.md— skill que opera este sistema../context/fiscal/NFE_Manual.pdf— manual oficial Barueri (cópia)../context/fiscal/RPS_ListaErros.pdf— lista de erros oficial (cópia)- Fonte:
ClaudeCode/Finanças/CLAUDE.md+skill_gerar_rps/ - Script testado:
ClaudeCode/Finanças/skill_gerar_rps/scripts/barueri_soap.py