# NFSe Curitiba/PR - Integração com Webservice em Php e Certificado Digital

**URL:** <https://comunidade.opendfe.com.br/t/nfse-curitiba-pr-integracao-com-webservice-em-php-e-certificado-digital/658>\
**Category:** Paraná\
**Tags:** curitiba, php, 4106902\
**Created:** [Novembro 25, 2021, 4:29am UTC](https://comunidade.opendfe.com.br/t/nfse-curitiba-pr-integracao-com-webservice-em-php-e-certificado-digital/658 "2021-11-25T04:29:34Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![axxe](https://comunidade.opendfe.com.br/user_avatar/comunidade.opendfe.com.br/axxe/32/310_2.png) [@axxe](https://comunidade.opendfe.com.br/u/axxe)\
**Post date:** [Novembro 25, 2021, 4:29am UTC](https://comunidade.opendfe.com.br/t/nfse-curitiba-pr-integracao-com-webservice-em-php-e-certificado-digital/658/1 "2021-11-25T04:29:34Z")

</div>

Olá devs.

Tenho um projeto que faz a integração via Web service utilizando PHP com um código base que eles disponibilizaram, o Blueprint (procedural) com a prefeitura de Curitiba. A empresa a qual estamos fazendo a conexão possui dois ambientes, sendo um de testes (piloto) e outro de produção. No ambiente piloto não necessita conectar utilizando certificado digital e está funcionando normalmente, ou seja, conseguimos criar as RPS, consultar, ter todos os retornos, porém, no ambiente de produção é necessário realizar a conexão utilizando certificado digital e assinar os arquivos XML’s a serem enviados na integração para criação de RPS e é justamente nesta parte que o projeto parou, pois não sei como fazer isso.

Tentei seguir as orientações do site, tenho todos os arquivos de certificado, porém, ao realizar o envio ele retorna Erro 403.

**Detalhes:**  
A Conexão é via SOAP;

Manuais De integração, De utilização e envio de arquivos XML, Cadeia de certificação - Servidor Produção e Modelo em PHP (startup)

> **[ISS - Manuais e Orientações](https://www.curitiba.pr.gov.br/conteudo/iss-manuais-e-orientacoes/3094)**
>
> ISS - Manuais e Orientações

Alguém consegue me ajudar?

Qualquer coisa posso disponibilizar meu código junto com os arquivos de certificado aqui, pois preciso muito dessa ajuda.

Agradeço desde já.

---

<div class="post-metadata">

**Author:** ![luizvaz](https://comunidade.opendfe.com.br/user_avatar/comunidade.opendfe.com.br/luizvaz/32/4_2.png) [@luizvaz](https://comunidade.opendfe.com.br/u/luizvaz)\
**Post date:** [Novembro 26, 2021, 6:57am UTC](https://comunidade.opendfe.com.br/t/nfse-curitiba-pr-integracao-com-webservice-em-php-e-certificado-digital/658/2 "2021-11-26T06:57:36Z")

</div>

Não tem segredo.

Você converteu o certificado A1 de PFX para o padrão PEM?  
Caso não tenha feito, use esse site:  
[https://www.sslshopper.com/ssl-converter.html](https://www.sslshopper.com/ssl-converter.html)

Depois separe o conteúdo dentro dele em dois arquivos cert.pem e key.pem.

Sobre a assinatura do XML, você pode conferir nesse post:  
[Como assinar o XML em um nó específico (Nota Fiscal)](https://comunidade.opennfse.com.br/t/como-assinar-o-xml-em-um-no-especifico-nota-fiscal/640)

---

<div class="post-metadata">

**Author:** ![axxe](https://comunidade.opendfe.com.br/user_avatar/comunidade.opendfe.com.br/axxe/32/310_2.png) [@axxe](https://comunidade.opendfe.com.br/u/axxe)\
**Post date:** [Novembro 26, 2021, 12:56pm UTC](https://comunidade.opendfe.com.br/t/nfse-curitiba-pr-integracao-com-webservice-em-php-e-certificado-digital/658/3 "2021-11-26T12:56:14Z")

</div>

Bom dia, obrigado pela resposta.

Fiz isso, porém, ele gerou um arquivo PEM com várias keys e certs como pode ser visto neste link [https://pastebin.com/fYnD0SYd](https://pastebin.com/fYnD0SYd). Sabe me dizer como eu separo eles?

Quanto ao assinar, estou usando esse plugin do PHP que você menciona, porém, vou tentar seguir suas orientações na postagem mencionada.

---

<div class="post-metadata">

**Author:** ![luizvaz](https://comunidade.opendfe.com.br/user_avatar/comunidade.opendfe.com.br/luizvaz/32/4_2.png) [@luizvaz](https://comunidade.opendfe.com.br/u/luizvaz)\
**Post date:** [Dezembro 2, 2021, 12:13pm UTC](https://comunidade.opendfe.com.br/t/nfse-curitiba-pr-integracao-com-webservice-em-php-e-certificado-digital/658/4 "2021-12-02T12:13:52Z")

</div>

É assim mesmo.  
É tudo salvo em um único arquivo, mas cada parte está separada pelos delimitadores.  
Copie os delimitadores e o conteúdo e salve em arquivos separados.

A chave privada tem os seguintes delimitadores:

```auto
-----BEGIN PRIVATE KEY-----
-----END PRIVATE KEY-----

```

A chave publica, ou certificado tem os seguintes delimitadores:

```auto
-----BEGIN CERTIFICATE-----
-----END CERTIFICATE-----

```

---

<div class="post-metadata">

**Author:** ![axxe](https://comunidade.opendfe.com.br/user_avatar/comunidade.opendfe.com.br/axxe/32/310_2.png) [@axxe](https://comunidade.opendfe.com.br/u/axxe)\
**Post date:** [Dezembro 8, 2021, 2:54pm UTC](https://comunidade.opendfe.com.br/t/nfse-curitiba-pr-integracao-com-webservice-em-php-e-certificado-digital/658/5 "2021-12-08T14:54:29Z")

</div>

Deu tudo certo. Para quem estiver passando as mesmas dificuldades, utilizei este link citado pelo nosso colega @luizvaz para gerar os arquivos PEM. E por mais que na documentação diz que é para assinar os arquivos XML, não precisei fazer isso, apenas enviei os arquivos PEM na conexão e criou a RPS. Obrigado pela ajuda!

---

<div class="post-metadata">

**Author:** ![system](https://comunidade.opendfe.com.br/uploads/default/original/1X/20b19a0ebccca67297d62e1f7d90c347e0761163.png) [@system](https://comunidade.opendfe.com.br/u/system)\
**Post date:** [Janeiro 7, 2022, 2:55pm UTC](https://comunidade.opendfe.com.br/t/nfse-curitiba-pr-integracao-com-webservice-em-php-e-certificado-digital/658/6 "2022-01-07T14:55:11Z")

</div>

Este tópico foi fechado automaticamente 30 dias depois da última resposta. Novas respostas não são mais permitidas.
