- 10. Funcionalidades
10.8. GeraLoteRPSSP - 10.7. GeraLoteRPSDSF
« Anterior - 10.9. Envia e-mail
Próximo »
10.8. GeraLoteRPSSP
Gerar Lote de RPS padrão da Prefeitura Municipal de São Paulo
Assinatura
string geraLoteRPSSP(string LoteRPSTXT, string nroLote, string CNPJRemetente, string nomeCertificado, string cMunicipio, out int resultado, out string msgResultado, out string erros, string licenca);
Descrição:
Funcionalidade para gerar um lote de RPS da Prefeitura Municipal de São Paulo a partir de um TXT, é a forma mais simples e rápida de gerar um Lote de RPS.
Esta funcionalidade:
- gera o XML do RPS a partir do TXT;
- assina o XML do RPS se necessário;
- forma o lote de RPS;
- assina o lote de RPS.
Preenchimento do nomeCertificado
informar o Nome do titular (campo Assunto) do certificado digital a ser utlizado na conexão SSL. Ex.: "CN=NFe - Associacao NF-e:99999090910270, C=BR, L=PORTO ALEGRE, O=Teste Projeto NFe RS, OU=Teste Projeto NFe RS, S=RS"
Parâmetros:
geraLoteRPSSP(string LoteRPSTXT, string nroLote, string CNPJRemetente, string nomeCertificado, string cMunicipio, out int resultado, out string msgResultado, out string erros, string licenca)
| nome | tipo | fluxo | descrição |
|---|---|---|---|
| loteRPSTXT | string | entrada | informar a string com o TXT gerado de acordo com o leiaute da string TXT de entrada da DLL desta página, existem exemplos de arquivos TXT no pasta ..\NFSe_Util\ExemploXML do demo. |
| nroLote | string | entrada | informar a string com o número do lote |
| CNPJRemetente | string | entrada | informar o CNPJ do Remetente |
| nomeCertificado | string | entrada | informar o Nome do titular (campo Assunto) do certificado digital a ser utlizado na conexão SSL. Ex.: "CN=NFe - Associacao NF-e:99999090910270, C=BR, L=PORTO ALEGRE, O=Teste Projeto NFe RS, OU=Teste Projeto NFe RS, S=RS" |
| cMunicipio | string | entrada | informar o código do IBGE do Município para o qual será enviado o lote de RPS. Obs: Esta funcionalidade é compatível com o padrão de RPS da Prefeitura Municipal de São Paulo. |
| resultado | inteiro | saída | retorna o resultado da chamada da funcionalidade |
| msgResultado | string | saída | retorna a literal do resultado da chamada da DLL |
| erros | string | saída | retorna a lista de erros ocorridos na conversão |
| licenca | string | entrada | informar a chave da licença de uso, deixar em branco para uso em ambiente de homologação |
Leiaute da string TXT de entrada:
Orientação de preenchimento
padrão do string de entrada - o string TXT pode ter até 50 registro RPS de tamanho fixo de 2490 caracteres separados por CR/LF.
preenchimento dos campos - Os registros são posicionais e os campos tem tamanho fixo que devem ser preenchidos da seguinte forma:
- C - campo caractere, preechimento da esquerda para a direita, acrescentar brancos até completar o tamanho do campo;
- D - campo data, com o seguinte formato: AAAA-MM-DD;
- N - campo numérico, prenchimento da direita para a esquerda, acrescentar zeros à esquerda até completar o tamanho do campo. Os campos de valores devem ser informados sem o ponto decimal, respeitando a quantidade de casas decimais previstas: 2 para valor e 4 para alíquota.
preenchimento de campos ou grupos opcionais - nem todos os RPS têm os grupos e/ou campos destacados na cor verde, quando não existir a informação o campo deve ser preechido com:
- zeros, quando o campo for numérico;
- brancos, quando o campo for caractere
Solicitamos que entre em contato sempre que identificar alguma informação incorreta ou equívocada.
IMPORTANTE: A DLL somente oferece a funcionalidade para converter os dados informados no TXT para o XML do RPS, os esclarecimentos de como cada campo do RPS deve ser preenchido e quais seriam os valores válidos devem ser obtidos na documentação da prefeitura.
Falha na Assinatura
O certificado digital é responsável pela falha na assinatura, as principais causas são:
Uso de Certificado Digital sem chave privada - é comum o desenvolvedoer receber o arquivo de certificado digital de seu cliente sem a chave privada, este tipo de arquivo tem extensão cer, se este for o caso solicite o arquivo novamente e peça para exportar a chave privada. o arquivo gerado deve ter a extensão pfx e será protegido por senha.
Certificado Digital do tipo A3 ausente - o certificado digital do tipo A3 pode estar com mal contato ou ausente, tente reconectar o dispositivo e verifique o status do certificado digital no aplicativo de administração do certificado digital.
Certificado Digital do tipo A1 da CEF
Existe um "macete" para utilizar o certificado digital da CAIXA:
O problema deste certificado é que apesar de ser um certificado digital A1, ele age como se fosse um certificado digital A3 e utiliza o CSP próprio (cefcert.dll que fica na pasta csp da aplicação da caixa), que não tem suporte para o tipo de assinatura do projeto (só funciona para autenticação).
Assim, é necessário fazer com que o certificado utilize o CSP do Windows.
Os passos são:
- instalar o certificado digital conforme orientação da CEF;
- verificar o funcionamento do certificado e que o certificado consta da lista de certificados no Internet Explorer;
- exportar o certificado digital pelo Internet Explorer;
- desinstalar o aplicativo da CAIXA;
- verificar se a DLL não ficou na pasta da aplicação da CAIXA;
- importar o certificado digital exportado no item 3.
Os passos acima funcionam para windows XP e vista, mas não existe garantia de funcionamento para o windows 7, assim se o equipamento tiver windows 7, tente fazer o processo em um equipamento que tenha windows XP, o certificado gerado no item 3 deve funcionar no windows 7.
Reinstale o Certificado Digital - se não for nenhum dos casos acima, tente reinstalar o certificado digital novamente.
Leiaute do registro tipo RPS
| Campo | tipo | posição inicial |
posição final |
tam. | observação |
|---|---|---|---|---|---|
| InscricaoPrestador | C | 1 | 8 | 8 | Inscrição municipal do prestador |
| SerieRPS | C | 9 | 13 | 5 | Informe a Série do RPS com 05 posições. |
| NumeroRPS | N | 14 | 25 | 12 | Informe o Número do RPS com 12 posições |
| TipoRPS | C | 26 | 30 | 5 | Informe o Tipo do RPS emitido com 05 posições. Tipos Válidos: RPS - Recibo Provisório de Serviços RPS-M - Recibo Provisório de Serviços proveniente de Nota Fiscal Conjugada (Mista) |
| DataEmissao | C | 31 | 40 | 10 | Informe a Data de emissão do RPS no formato AAAA-MM-DD. |
| SatutsRPS | C | 41 | 41 | 1 | Informe a Situação do RPS com 01 posição, de acordo com o tipo do RPS. N - Normal C - Cancelado E - Extraviado |
| TributacaoRPS | C | 42 | 42 | 1 | Informe a Tributação do RPS com 01 posição, de acordo com o tipo do RPS. T - Operação normal (tributação conforme documento emitido) I - Operação isenta ou não tributável, executadas no Município de São Paulo F - Operação isenta ou não tributável pelo Município de São Paulo, executada em outro Município J - ISS Suspenso por Decisão Judicial (neste caso, informar no campo Discriminação dos Serviços, o número do processo judicial na 1a. instância). |
| ValorServicos | N | 43 | 57 | 15,2 | Informe o Valor dos Serviços com 15 posições. Campo obrigatório caso a situação do RPS seja diferente de "C" (Cancelado) e "E" (Extraviado). Exemplo: R$ 500,85 - 000000000050085 R$ 500,00 - 000000000050000 |
| ValorDeducoes | N | 58 | 72 | 15,2 | Informe o Valor das Deduções com 15 posições. Exemplo: R$ 500,85 - 000000000050085 R$ 500,00 - 000000000050000 |
| ValorPIS | N | 73 | 87 | 15,2 | Informe o valor da retenção do PIS com 15 posições. Exemplo: R$ 500,85 - 000000000050085 R$ 500,00 - 000000000050000 |
| ValorCOFINS | N | 88 | 102 | 15,2 | Informe o valor da retenção do COFINS com 15 posições. Exemplo: R$ 500,85 - 000000000050085 R$ 500,00 - 000000000050000 |
| ValorINSS | N | 103 | 117 | 15,2 | Informe o valor da retenção do INSS com 15 posições. Exemplo: R$ 500,85 - 000000000050085 R$ 500,00 - 000000000050000 |
| ValorIR | N | 118 | 132 | 15,2 | Informe o valor da retenção do IR com 15 posições. Exemplo: R$ 500,85 - 000000000050085 R$ 500,00 - 000000000050000 |
| ValorCSLL | N | 133 | 147 | 15,2 | Informe o valor da retenção do CSLL com 15 posições. Exemplo: R$ 500,85 - 000000000050085 R$ 500,00 - 000000000050000 |
| CodigoServico | C | 148 | 152 | 5 | Informe o Código do Serviço do RPS com 05 posições. Este código deve pertencer à tabela de códigos de serviços. |
| AliquotaServico | N | 153 | 157 | 5,4 | Informe o Valor da Alíquota com 5 posições. Exemplo: 5,00% - 00500 2,75% - 00275 Obs.: O conteúdo deste campo será ignorado pela prefeitura caso a tributação ocorra no município (Situação do RPS = "T" ) |
| ISSRetido | C | 158 | 158 | 1 | 1 - para ISS Retido. 2 - para Nota Fiscal sem ISS Retido |
| IndCPFCNPJTomador | N | 159 | 159 | 1 | Este campo indica o tipo de dados que será fornecido no campo CPF/CNPJ do Tomador 1 - para CPF. 2 - para CNPJ. 3 - para CPF não-informado. |
| CPFCNPJTomador | C | 160 | 173 | 14 | Informe o CNPJ do tomador com 14 dígitos [12345678901234] ou CPF do tomador com 11 dígitos [ 12345678901]. O conteúdo deve ser ajustado à direita e complentados com brancos O conteúdo deste campo será ignorado pela prefeitura caso a Inscrição Municipal do Tomador esteja preenchido. |
| InscricaoMunicipalTomador | C | 174 | 181 | 8 | Informe a Inscrição Municipal do Tomador, com 8 posições. ATENÇÃO!!! Este campo só deverá ser preenchido para tomadores estabelecidos no município de São Paulo (CCM). Quando este campo for preenchido, seu conteúdo será considerado como prioritário com relação ao campo de CPF/CNPJ do Tomador, sendo utilizado para identificar o Tomador e recuperar seus dados da base de dados da Prefeitura |
| InscricaoEstadualTomador | C | 182 | 200 | 19 | Este campo será ignorado pela prefeitura caso seja fornecido um CPF/CNPJ ou a Inscrição Municipal do tomador pertença ao município de São Paulo. |
| RazaosocialTomador | C | 201 | 275 | 75 | (*) Este campo é obrigatório apenas para tomadores Pessoa Jurídica (CNPJ) Este campo será ignorado pela prefeitura caso seja fornecido um CPF/CNPJ ou a Inscrição Municipal do tomador pertença ao município de São Paulo. |
| TipoLogradouro | C | 276 | 278 | 3 | (*) Estes campos são obrigatórios apenas para tomadores pessoa jurídica (CNPJ informado) O conteúdo destes campos será ignorado pela prefeitura caso seja fornecido um CPF/CNPJ ou a Inscrição Municipal do tomador pertença ao município de São Paulo. |
| Logradouro | C | 279 | 328 | 50 | |
| NumeroEndereco | C | 329 | 338 | 10 | |
| ComplementoEndereco | C | 339 | 368 | 30 | |
| Bairro | C | 369 | 398 | 30 | |
| Cidade | N | 399 | 405 | 7 | (*) Estes campos são obrigatórios apenas para tomadores pessoa jurídica (CNPJ informado). Se a Cidade/UF forem preenchidos e não forem encontrados na base de dados da Prefeitura, o sistema irá pesquisar a cidade correspondente ao CEP (se este for informado). Note que apenas tomadores cuja Cidade / UF seja igual a SÃO PAULO / SP, irão receber créditos. |
| UF | C | 406 | 407 | 2 | |
| CEP | N | 408 | 415 | 8 | |
| EmailTomador | C | 416 | 490 | 75 | Campo contendo o e-mail do tomador |
| Discriminacao | C | 491 | 2490 | 2000 | Texto contínuo descritivo dos serviços. ORIENTAÇÃO DA PMSP PARA PREENCHIMENTO DESTE CAMPO: O conjunto de caracteres correspondentes ao código ASCII 13 e ASCII 10 deverá ser substituído pelo caracter | (pipe ou barra vertical. ASCII 124). Exemplo: Digitado na NF "Lavagem de carro com lavagem de motor" Preenchimento do arquivo: "Lavagem de carro|com lavagem de motor" (*) Este campo é impresso num retângulo com 95 caracteres (largura) e 24 linhas (altura). É permitido (não recomendável), o uso de mais de 1000 caracteres. Caso seja ultrapassado o limite de 24 linhas, o conteúdo será truncado durante a impressão da Nota. A DLL substitui dois pipes seguidos (||) por CR/LF. |
Retorno:
O resultado da chamada do geraLoteRPSSP é o XML de lote de RPS.
O parâmetro resultado retorna um código numérico com os seguintes significados:
| código | Mensagem | origem | regra |
|---|---|---|---|
| 5800 | Lote de RPS gerado com sucesso! | DLL | - |
| 5801 | Erro: O parâmetro LoteRPSTXT sem conteúdo | DLL | - |
| 5802 | Erro: O parâmetro nroLote não contém um valor numérico: [{0:0}] | DLL | - |
| 5803 | Erro: O parâmetro nroLote contém um valor fora do intervalo válido (1-999999999999999): [{0:0}] | DLL | - |
| 5804 | Erro: O parâmetro nomeCertificado sem conteúdo | DLL | - |
| 5805 | Erro: O parâmetro LoteRPSTXT com conteúdo inválido, veja os erros: [{0:0}] | DLL | - |
| 5806 | Erro: O parâmetro LoteRPSTXT informado com erro de preenchimento, analise o log de erros | DLL | - |
| 5807 | Erro: Erro inesperado no tratamento da leitura do LoteRPSTXT: [{0:0}] | DLL | - |
| 5808 | Erro: A quantidade de RPS existente no lote: [{0:0}] fora do intervadlo válido (1-50) | DLL | - |
| 5809 | Erro: O parâmetro LoteRPSTXT informado com erro de preenchimento, analise o log de erros | DLL | - |
| 5810 | Erro: A DLL ainda não foi customizada para gerar o LoteRPS para o Município: [{0:0}], contate o suporte (www.flexdocs.com.br/suporte) para outras informações | DLL | - |
| 5811 | Erro: Falha na assinatura do lote | DLL | - |
| 5812 | Erro: O parâmetro CNPJRemetente sem conteúdo | DLL | - |
| 5813 | Erro: O parâmetro CNPJRemetente conteúdo inválido: [{0:0}] | DLL | - |
| 5814 | Erro: O parâmetro RazaoSocialRemetente sem conteúdo | DLL | - |
| 5815 | Erro: Utilize a funcionalidade geraRPSTXT | DLL | - |
| 5816 | Erro: Utilize a funcionalidade geraRPSTXTDSF | DLL | - |
| 5817 | Erro: Utilize a funcionalidade geraRPSTXTSP | DLL | - |
Histórico de atualização:
- 2011-03-15 - 1.1 - Versão beta preliminar.
- 10.8. GeraLoteRPSSP
10. Funcionalidades - « Anterior
10.7. GeraLoteRPSDSF - Próximo »
10.9. Envia e-mail
Download do Manual da CAIXA