*** Kit de Sobrevivência *** Caminho das Pedras

208 views
Skip to first unread message

Aurelio de Souza Ribeiro Neto

unread,
Mar 28, 2025, 7:20:42 AMMar 28
to wsnfsecampinas
Pessoal, bom dia!

Tive e estou tendo muita dificuldade para converter o meu sistema antigo por questão de informações desencontradas, incompletas ou falta de suporte!

O início de tudo foi com relação a parte de assinatura, onde aqui deixo registrada a boa vontade e ajuda do desenvolvedor Flavio Araldi, que participa aquii da lista e prontamente me deu dicas preciosas.

Dada toda dificuldade, decidi compartilhar com vocês este documento e arquivos exemplo em anexo, afinal de contas acho que a comunidade precisa disso, principalmente quando consegue sucesso com a ajuda de terceiros!

Aí vai, lembrando que não sou o dono da verdade e que alguma coisa pode não funcionar no seu sistema, mas pelo menos dará um "norte" para vocês!!

Outro ponto! Muitos erros realmente dependem do suporte da prefeitura.

** Reforço! **

Isso é um "norte", uma base. Pode ser que tenham particularidades nos sistemas de vocês que no meu caso não tive problemas, portanto se necessitarem de suporte neste sentido recomendo que falem com eles.

# Kit de Sobrevivência NFS-e (Prefeitura de Campinas)

## Relatório de Dicas e Boas Práticas

### XML ###

### ⚠️ Campos Opcionais
NÃO declarar tags vazias! Exemplo:

❌ Errado:
```
<Complemento></Complemento>
```

✅ Certo:
```
<!-- Tag omitida totalmente -->
```

### Tags opcionais mais comuns:
- `<Complemento>`
- `<NumeroProcesso>`
- `<CodigoPais>`
- `<ConstrucaoCivil>`
- `<Intermediario>`
- `<RpsSubstituido>`
- `<ValorPis>`, `<ValorCofins>`, `<ValorInss>`, etc.


### 🧱 Estrutura XML Base (Neste exemplo para o Envio do Lote Assíncrono)
- Raiz deve ser `<EnviarLoteRpsEnvio>` sem namespace
- Evite `ns0:`, `ns2:`, etc. Use tags limpas
- Tag `<LoteRps>` com `versao="2.03"` e `Id`
- Cada RPS dentro de `<ListaRps>` com `InfDeclaracaoPrestacaoServico` contendo `Id`

---

### 🔐 Assinatura Digital
- Assinar cada `<InfDeclaracaoPrestacaoServico>` individualmente
- Assinar também o `<LoteRps>`
- Algoritmos exigidos:
  - Digest: `SHA1`
  - Assinatura: `RSA-SHA1`
  - Transforms:

---

### 📤 Envio
- Headers:
  - `Content-Type: text/xml; charset=utf-8`
  - `SOAPAction: ""` (string vazia)

  Teste no SoapUI! Crie um novo projeto SOAP e coloque esta URL acima! Ele vai montar todos os métodos para você testar!!

---

### ✅ Resposta de Sucesso (também para o exemplo do Envio de Lote)
```
<soap:Body>
  <ns4:RecepcionarLoteRpsResponse>
    <EnviarLoteRpsResposta>
      <NumeroLote>...</NumeroLote>
      <DataRecebimento>...</DataRecebimento>
      <Protocolo>...</Protocolo>
      <ListaMensagemRetorno/>
    </EnviarLoteRpsResposta>
  </ns4:RecepcionarLoteRpsResponse>
</soap:Body>
```

---

O pacote ZIP contém exemplos práticos e comentados para integração com o WebService da NFS-e Campinas (Abrasf 2.03)

## Conteúdo


### 1. `consulta_lote.xml`
Exemplo de requisição SOAP para o método `ConsultarLoteRps`. Não requer assinatura digital. Campos obrigatórios:
- CNPJ do prestador
- Inscrição Municipal
- Protocolo

### 2. `envio_lote_assinado.xml`
Exemplo de estrutura de envio de lote de RPS (requere assinatura digital). Campos obrigatórios:
- `<LoteRps Id="" versao="2.03">`
- Cada `<InfDeclaracaoPrestacaoServico Id="">` deve ser assinado
- Campo `Discriminacao` com `&#xD;&#xA;` para quebra de linha
- **Assinar o XML antes de envelopar com SOAP**

### 3. `cancelamento_nfse.xml`
Exemplo do método `CancelarNfse`. Requer assinatura digital na tag `<Pedido>` (a assinatura deve ser incluída manualmente).

### 4. `sincronizar_periodo.xml`
Consulta notas emitidas em um período de datas. Método: `ConsultarNfse`. Requer apenas dados do prestador e intervalo de datas.

---

Este kit foi preparado com base em testes reais realizados com a Prefeitura de Campinas (SP) e pode ser adaptado para outras cidades com base no padrão ABRASF 2.03.



Um abraço e boa sorte :)

Aurélio de S Ribeiro Neto

kit_exemplos_nfse_CAMPINAS_abrasf203.zip
Reply all
Reply to author
Forward
0 new messages