9. Gerar Lote de RPS [18-03-12]
9.5. RPS PMSP nova versao [28-01-15]
9.4. RPS PMSP [28-01-15]
« Anterior
10. Web Services
Próximo »

9.5. RPS PMSP nova versao [28-01-15]

Gerar Lote de RPS padrão da Prefeitura Municipal de São Paulo, versão com suporte para:

. novas situações do RPS . Carga Tributária a ser informada na NFS-e para atendimento à Lei Federal nº. 12.741/2012 . Cadastro Específico do INSS - CEI . Município onde o serviço foi prestado

Assinatura

string geraLoteRPSSP2(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:

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:

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 2653 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

    Download do Manual da CAIXA

    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:

    1. instalar o certificado digital conforme orientação da CEF;
    2. verificar o funcionamento do certificado e que o certificado consta da lista de certificados no Internet Explorer;
    3. exportar o certificado digital pelo Internet Explorer;
    4. desinstalar o aplicativo da CAIXA;
    5. verificar se a DLL não ficou na pasta da aplicação da CAIXA;
    6. 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.
StatusRPS 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).
A - Tributado em São Paulo, porém Isento
B - Tributado Fora de São Paulo, porém Isento
M - Tributado em São Paulo, porém Imune
N - Tributado Fora de São Paulo, porém Imune
P - Exportação de Serviços
X - Tributado em São Paulo, porém Exigibilidade Suspensa
V - Tributado Fora de São Paulo, porém Exigibilidade Suspensa[28-01-15]</sup
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 à esquerda e complementado 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.
IndCPFCNPJIntermediario N 2491 2491 1 Este campo indica o tipo de dados que será fornecido no campo CPF/CNPJ do Intermediário
1 - para CPF.
2 - para CNPJ.
3 - Intermediário não-informado.
CPFCNPJIntermediario C 2492 2505 14 Informe o CNPJ do Intermediário com 14 dígitos [12345678901234] ou CPF do Intermediário com 11 dígitos [12345678901 ].
O conteúdo deve ser ajustado à esquerda e complementado com brancos
O conteúdo deste campo será ignorado quando IndCPFCNPJIntermediario = 3.
FILLER C 2506 2506 1 deixar em branco para uso futuro
InscricaoMunicipaIntermediario C 2507 2514 8 Informe a Inscrição Municipal do Intermediario, com 8 posições.
O conteúdo deste campo será ignorado quando IndCPFCNPJIntermediario = 3.
ISSRetidoIntermediario C 2515 2515 1 1 - para ISS Retido pelo intermediário.
2 - para Nota Fiscal sem ISS Retido pelo intermediário.
O conteúdo deste campo será ignorado quando IndCPFCNPJIntermediario = 3.
EmailIntermediario C 2516 2590 75 Campo contendo o e-mail do Intermediario.
O conteúdo deste campo será ignorado quando IndCPFCNPJIntermediario = 3 ou quando informado com brancos.
ValorCargaTributaria N 2591 2605 15,2 Informe o valor da Carga Tributária Total com 15 posições.
Exemplo:
R$ 500,85 - 000000000050085
R$ 500,00 - 000000000050000
PercentualCargaTributaria N 2606 2612 7,4 Informe o Valor da Percentual da Carga Tributária com 7 posições (4 decimais).
Exemplo:
5,00% - 0050000
2,75% - 0027500
FonteCargaTributaria C 2613 2622 10 Informe a Fonte de informação da Carga Tributária.
O conteúdo deste campo será ignorado quando informado com brancos.
CodigoCEI C 2623 2634 12 Informe a Matricula CEI - Cadastro específico do INSS.
O conteúdo deste campo será ignorado quando informado com brancos.
MatriculaObra C 2635 2646 12 Informe a Matricula da Obra no sistema de cadastro da prefeitura.
O conteúdo deste campo será ignorado quando informado com brancos.
MunicipioPrestacao C 2647 2653 7 Código IBGE da cidade do município da prestação do serviço.
O conteúdo deste campo será ignorado quando informado com brancos.


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:

9.5. RPS PMSP nova versao [28-01-15]
9. Gerar Lote de RPS [18-03-12]
« Anterior
9.4. RPS PMSP [28-01-15]
Próximo »
10. Web Services