Documente Academic
Documente Profesional
Documente Cultură
dll
DLL de funes para integrao de sistemas de informao de emis-
sores RPS e o Sistema de Nota Fiscal de Servios Eletrnica(NFS-e)
1. Apresentao
Nota Fiscal de Servios Eletrnica (NFS-e) o documento emitido e armazenado eletroni-
camente em sistema prprio da Prefeitura, com o objetivo de registrar as operaes relati-
vas prestao de servios.
Para os contribuintes que emitem uma grande quantidade de notas, foi criado o Regime
Especial de entrega em lote, no qual o contribuinte pode emitir Registros Provisrios de
Servios(RPS) atravs de seus prprios sistemas e estes em um determinado momento,
sero convertidos em notas fiscais. Para converter estes RPS em NFS-e o
sistema do con- tribuinte deve se conectar ao Web Service da prefeitura e enviar as
informaes de RPS gerados no formato XML, gerando um lote de entrega.
O Recibo Provisrio de Servios (RPS) um documento que dever ser usado por emi-
tentes da NFS-e no eventual impedimento da emisso on-line da Nota. Tambm poder
ser utilizado pelos prestadores sujeitos emisso de grande quantidade de NFS-e (exem-
plo: estacionamentos). Nesse caso, o prestador emitir o RPS para cada transao e provi-
denciar sua converso em NFS-e mediante o envio de lotes (processamento em lote). No
anexo 5 deste manual pode se obter o modelo de RPS a ser seguido.
Para facilitar o processo de integrao foi desenvolvido uma biblioteca de funes para
acessar o Web Service da NFS-e. A lotenfse.dll pode ser utilizada para integrao do siste-
ma de informao dos contribuintes e o sistema WebService do portal da Nota Fiscal de
Servios Eletrnica(NFS-e).
O contribuinte que esta no Regime Especial de entrega em lote deve se credenciar no site
da NFSe para liberar a entrega em lote atravs do Web Service da prefeitura. Foi disponibili-
zado um ambiente de homologao e testes, onde o contribuinte pode realizar testes de en-
trega em lote enquanto esta em processo de integrao. Estes testes simulam o ambiente
de produo, porm os testes realizados neste ambiente no tm validade. Para utilizar o
ambiente de homologao o contribuinte deve se credenciar para este ambiente no site de
homologao. O endereo para acessar o ambiente de produo e homologao esto no
tpico Anexo 7 deste manual.
A seguir esto resumidas os mtodos disponveis na DLL da NFS-e bem como suas fun-
cionalidades:
Consulta de Lote
Permite consultar as NFS-e emitidas pelo prestador atravs do nmero de lote informado.
Aps o envio bem sucedido de um Lote de RPS, a DLL retorna diversas informaes,
entre elas o nmero do lote processado, NFS-e geradas neste lote.
Consulta de Notas
Permite a consulta das NFS-e emitidas pelo prestador.
Cancelamento de Notas
Permite o cancelamento das NFS-e emitidas pelo prestador.
3. Funcionamento da Dll
Parmetros de Envio:
CAMPO TIPO CONTEDO OBRIG.
CodCidade N Cdigo da Cidade de Declarao do Contri- S
buinte segundo padro SIAFI
CPFCNPJRemetente A CPF ou CNPJ do Remetente S
RazaoSocialRemetente A Razo social do remetente. S
Funo: AdicionarRPS
Declarao: function AdicionarRPS( InscricaoMunicipalPrestador: PChar ;
RazaoSocialPrestador: PChar ;
TipoRPS : PChar ; SerieRPS:
PChar ; NumeroRPS : Integer
; DataEmissaoRPS : PChar ;
SituacaoRPS : PChar ;
SerieRPSSubstituido: PChar ;
NumeroRPSSubstituido : Integer ;
NumeroNFSeSubstituida : Integer ;
DataEmissaoNFSeSubstituida : PChar ;
SeriePrestacao: PChar ;
InscricaoMunicipalTomador : PChar ;
CPFCNPJTomador : PChar ;
RazaoSocialTomador : PChar ;
TipoLogradouroTomador : PChar ;
LogradouroTomador : PChar ;
NumeroEnderecoTomador : PChar ;
ComplementoTomador : PChar ;
Parmetros de Envio:
CAMPO TIPO TAM. CONTEDO OBRIG.
InscricaoMunicipalPrestador A 11 Inscrio Municipal do Prestador. S
Verificar regra de
preenchimento do campo no
RazaoSocialPrestador A 120 Anexo
Razo 01.
Social do Prestador S
TipoRPS A 20 Tipo de RPS S
Padro RPS
SerieRPS A 2 Srie do RPS - Padro NF S
NumeroRPS N 12 Nmero do RPS S
DataEmissaoRPS D Data de Emisso do RPS S
No formato DD/MM/YYYY
8
campo CidadeTomadorDescricao informar o nome do pas, no campo CepTomador infor-
mar 00000000.
Caso o municpio de prestao for no exterior informar no campo MunicipioPrestacao o
valor 9999 e no campo MunicipioPrestacaoDescricao informar o nome do pas.
Quando a situao do RPS for cancelada, deve se informar o motivo do cancelamento no
campo MotCancelamento.
Funo: AdicionarItemServicoRPS
Declarao: function AdicionarItemServicoRPS( DiscriminacaoServico: PChar ;
Quantidade: Double ;
ValorUnitario: Double ;
Tributavel:PChar ): Integer;
Parmetros de Envio:
CAMPO TIPO TAM. CONTEDO OBRIG.
DiscriminacaoServico A 80 Discriminao do Servio S
Quantidade N 10,4 Quantidade do servio tomado S
ValorUnitario N 15,4 Valor Unitrio S
Tributvel A 1 Tributvel, S Item tributvel N
N No tributvel
Apenas as ativades de CNAE
652020002, 655030002,
661340000 e 869099902. Per-
mitem itens no tributveis,
As demais atividades devem
ser informado o item como
tributvel.
Funo: AdicionarDeducaoRPS
Declarao: function AdicionarDeducaoRPS ( DeducaoPor: PChar ;
TipoDeducao: PChar ;
CPFCNPJReferencia: PChar ;
NumeroNFReferencia: Integer ;
ValorTotalReferencia: Double ;
PercentualDeduzir: Double ;
ValorDeduzir: Double ): Integer;
Aps criar o lote de remessa e gravar os dados dos RPS a serem enviados o prximo
passo enviar a declarao. Caso tenha ocorrido algum erro na validao dos dados de
envio ser retornado valor false no parmetro Sucesso. O processamento do lote pelo
servidor pote ser sncrono ou assncrono, por padro o processamento esta sendo feito
assncrono. Mais abaixo explicaremos melhor o processamento sncrono e assncrono.
Funo: Enviar
Declarao: function Enviar( pDocAssinatura: PChar;
var pAssincrono : PChar;
var pSucesso : PChar ;
var pNumeroLote: Integer ;
var pQtdNotasProcessadas : Integer ;
var pValorTotalServicos: Double ;
var pValorTotalDeducoes:Double;
var pErros: Integer;
var pAlertas: Integer): Integer ;
Parmetros de Retorno:
CAMPO TIPO TAM. CONTEDO OBRIG
pAssincrono A 1 Tipo de processamento do Servio: S- N
Assincrono
N-Sincrono.
Caso o retorno do processamento seja
Assincrono sera retornado o nmero de
lote e as demais informaes estaro
zeradas. Deve se fazer chamada a fun-
o de Consulta de Lote para obter o re-
sultado o processamento.
pSucesso A 5 Declarao entregue com sucesso N
Valores possveis: true ou false
pNumeroLote N 15 Numero do lote gerado pelo portal da N
NFSe para a remessa.
pQtdNotasProcessadas N 15 Quantidade de notas processadas no N
lote.
pValorTotalServicos N 15,2 Valor total dos servios das notas pro- N
cessadas no lote
pValorTotalDeducoes N 15,2 Valor total dos servios das notas pro- N
cessadas no lote
pErros N 15 Caso tenha ocorrido algum erro no pro- N
cessamento do lote. Ser retornado o
nmero de erros gerados e o lote ser
recusado.
pAlertas N 15 Caso tenha ocorrido algum alerta no N
processamento do lote, ser retornado
o nmero de alertas gerados.
Processamento Sincrono :
O resultado do processamento e retornado na mesma conexo, ou seja no momento de
chamada da funo Enviar realizado o processamento do lote e as notas geradas ou erros
so retornados;
Processamento Assincrono :
O lote gravado numa fila de espera para processamento, para obter o
resultado do pro- cessamento necessrio uma segunda conexo ao web service
fazendo chamada a con- sulta de lote.
Caso o parmetro pErros da funo enviar retornar um valor diferente de zero deve-se fazer
chamada a funo abaixo para obter os erros do processamento.
Funo: ObterErroLote
Declarao: function ObterErroLote( ErroItem:Integer;
var Codigo: Integer;
var Descricao: PChar;
var InscricaoPrestador : PChar;
var SerieRPS: PChar ;
var NumeroRPS: Integer;
var DataEmissaoRPS:PChar;
var RazaoSocialPrestador: PChar ):Integer;
Parmetros de Envio:
CAMPO TIPO TAM. CONTEDO OBRIG.
ErroItem N 15 Posio do erro retornado na remessa. Por exemplo, S
se a remessa retornou dois erros. O ErrosItem de valor
Zero pega o primeiro erro e assim por diante.
Parmetros de Retorno:
CAMPO TIPO TAM. CONTEDO OBRIG.
Codigo N 15 Cdigo do erro gerado N
Descrio A 2000 Descrio do erro gerado N
InscricaoPrestador A 11 Inscrio do Prestador do RPS que ger- N
ou o erro
SerieRPS A 10 Srie do RPS que gerou o erro N
NFSE - Nota Fiscal de Servios Eletrnica
1
1
NumeroRPS N 12 Nmero do RPS que gerou o erro N
DataEmissaoRPS D Data Emissao RPS N
Formato : DD/MM/YYYY
RazaoSocialPrestador A 120 Razao Social do Prestador do RPS que N
gerou o erro.
*Obs: Caso tenha ocorrido erros no processamento o lote ser recusado e o contribuinte
deve reenviar o lote com os RPS novamente.
Caso o parmetro pAlertas da funo enviar retornar um valor diferente de zero deve-se
fazer chamada a funo abaixo para obter os alertas do processamento;
Funo: ObterAlertaLote
Declarao: function ObterAlertaLote( AlertaItem:Integer;
var Codigo: Integer;
var Descricao: PChar;
var InscricaoPrestador : PChar;
var SerieRPS: PChar ;
var NumeroRPS: Integer;
var DataEmissaoRPS:PChar;
var RazaoSocialPrestador: PChar ):Integer;
Parmetros de Envio:
CAMPO TIPO TAM. CONTEDO OBRIG.
AlertaItem N 15 Posio do alerta retornado na remessa. Por exemplo S
se a remessa retornou dois alertas. O AlertaItem de
valor Zero pega o primeiro alerta e assim por diante.
Parmetros de Retorno:
CAMPO TIPO TAM. CONTEDO OBRIG.
Codigo N 15 Cdigo do alerta gerado N
Descrio A 2000 Descrio do alerta gerado N
InscricaoPrestador A 11 Inscrio do Prestador do RPS que ger- N
ou o alerta
SerieRPS A 2 Srie do RPS que gerou o alerta N
NumeroRPS N 12 Nmero do RPS que gerou o alerta N
DataEmissaoRPS D Data Emisso RPS N
Formato: DD/MM/YYYY
RazaoSocialPrestador A 120 Razo Social do Prestador do RPS que N
gerou o alerta.
Funo: ObterNotaRetorno
Declarao: function ObterNotaRetorno( RetornoItem : Integer ;
var InscricaoPrestador: PChar ;
var NumeroNFe: Integer ;
NFSE - Nota Fiscal de Servios Eletrnica
12
var CodigoVerificacao: PChar ;
var RazaoSocialPrestador: PChar ;
var SerieRPS : PChar ;
var NumeroRPS: Integer ;
var DataEmissaoRPS : PChar ):Integer;
Parmetros de Envio:
CAMPO TIPO TAM. CONTEDO OBRIG.
RetornoItem N 15 Posio do Nota retornada no processamento. Por S
exemplo, se a remessa retornou quatro notas. O
RetornoItem de valor Zero pega a primeira nota e
assim por diante.
Parmetros de Retorno:
CAMPO TIPO TAM. CONTEDO OBRIG.
InscricaoPrestador A 11 Inscrio do Prestador do RPS N
NumeroNFe N 12 Nmero da Nota Fiscal Gerada N
CodigoVerificacao A 255 Cdigo de Verificao N
RazaoSocialPrestador A 120 Razo social do prestador N
SerieRPS A 2 Srie do RPS N
NumeroRPS N 12 Nmero do RPS N
DataEmissaoRPS D Data de Emisso da RPS N
Formato: DD/MM/YYYY
Funo: ConsultarLote
Declarao: function ConsultarLote( CodCidade: Integer ;
CPFCNPJRemetente: PChar ;
NumeroLote: Integer ;
var Sucesso: PChar;
var DataEnvioLote: PChar;
var QtdNotasProcessadas: Integer;
var TempoProcessamento: PChar;
var ValorTotalServicos: Double;
var ValotTotalDeducoes: Double ;
var Alertas: Integer;
var Erros: Integer):Integer;
Parmetros de Envio:
CAMPO TIPO TAM. CONTEDO OBRIG.
CodCidade N 10 Codigo da Cidade de Declarao padro S
SIAFI.
CPFCNPJRemetente A 14 CPF ou CNPJ Remetente S
NumeroLote N 10 Nmero do Lote a ser consultado S
Parmetros de Retorno:
CAMPO TIPO TAM. CONTEDO OBRIG.
Sucesso A 5 true Consulta realizada com sucesso N
false Erro na consulta
DataEnvioLote D Data de Envio do Lote N
Formato DD/MM/YYYY
QtdNotasProcessadas N 10 Quantidade de Notas Processadas no N
Lote
TempoProcessamento N 10 Tempo total de processamento N
ValorTotalServicos N 15,2 Valor Total dos Servios N
ValorTotalDeducoes N 15,2 Valor total das Dedues N
Alertas N 10 Quantidade de alertas ocorridos N
Erros N 10 Quantidade de erros ocorridos N
Funo: ObterNotaDoConsultarLote
Declarao: function ObterNotaDoConsultarLote( NrItem:Integer;
var InscricaoPrestador: PChar;
var NumeroNFe: Integer ;
var CodigoVerificacao:PChar ;
var SerieRPS:PChar ;
var NumeroRPS: Integer;
var DataEmissaoRPS: PChar ;
var RazaoSocialPrestador: PChar ;
var TipoRecolhimento: PChar ;
var ValorDeduzir :Double;
var ValorTotal : Double;
var Aliquota : Double ):Integer;
Parmetros de Envio:
CAMPO TIPO TAM. CONTEDO OBRIG.
NrItem N 10 Posico da Nota retornada na consulta de lote. Por ex- S
emplo se a consulta retornou quatro notas. O NrItem de
valor Zero pega a primeira nota.
Parmetros de Retorno:
CAMPO TIPO TAM. CONTEDO OBRIG.
InscricaoPrestador A 11 Inscrio Municipal do Contribuinte N
NumeroNFe N 12 Numero da Nota Fiscal de Servios N
CodigoVerificacao A 255 Cdigo de Verificao N
SerieRPS A 2 Serie do RPS N
Padro NF Nota Fiscal de Servios
NumeroRPS N 12 Nmero do RPS N
DataEmissaoRPS D Data de Emisso do RPS N
Formato: DD/MM/YYYY
RazaoSocialPrestador A 120 Razo Social do Contribuinte N
TipoRecolhimento A 1 Tipo de Recolhimento N
A A Recolher
R - Retido na Fonte
ValorDeduzir N 15,2 Valor a Deduzir N
ValorTotal N 15,2 Valor total N
Aliquota N 15,2 Alquota N
3.3 Consulta de Notas
O Web service pode retornar apenas uma quantidade limitada de notas de no maximo 100
notas por requizio. Com isso necessrio realizar mais de uma consulta para obter as
notas de determinado periodo. Por exemplo se o web service retorna no maximo 100 notas
no periodo a ser consultado existem mais de 100 notas, na primeira consulta deve-se
passar a nota inicial como zendo a numero 0, assim o web service ira retornar as notas do
periodo onde o nmero da nota for maior ou igual a 0(zero), sendo retornado at 100 notas
no mximo, ento pega-se o nmero da ltima nota retornada acrescentando mais 1(um) e
reliza novamente a consulta, o web service ir retornar as prximas 100 notas a partir desta.
A consulta deve ser repetida at que o retorno da quantidade de notas seja igual a zero.
Indicando que j foram retornados todos as notas do perido.
Funo: ConsultarNotasConvertidas
Declarao: function ConsultarNotasConvertidas( pDocAssinatura : PChar;
CodCidade: Integer ;
CPFCNPJRemetente: PChar ;
InscricaoMunicipalPrestador: PChar ;
DataInicio: PChar;
DataTermino: PChar;
NotaInicial: Integer;
var QtdNotas, Erros : Integer ):Integer;
Parmetros de Envio:
CAMPO TIPO TAM. CONTEDO OBRIG.
CodCidade N 10 Cdigo da Cidade de Declarao S
padro SIAFI.
CPFCNPJRemetente A 14 CPF ou CNPJ Remetente S
InscricaoMunicipalPrestador A 11 Inscrio Municipal do Prestador S
DataInicio D Data inicial do perodo a ser consul- S
tado
Formato: DD/MM/YYYY
DataTermino Data Final do perodo a ser consul- S
tado.
Formato: DD/MM/YYYY.
NotaInicial N 10 Informe o nmero da primeira nota, S
sero retornados as notas onde o
numero seja maior ou igual ao valor
informado neste campo.
Caso o campo QtdNotas retornar valor diferente de zero deve se fazer chamadas na funo
abaixo para obter os dados de cada nota.
Funo: ObterNotaDoConsultarNotas
Declarao: function ObterNotaDoConsultarNotas( PosNotaConsulta:Integer;
var NumeroNota: Integer;
var DataProcessamento: PChar ;
var NumeroLote : Integer ;
var CodigoVerificacao : PChar ;
var Assinatura : PChar ;
var InscricaoMunicipalPrestador: PChar ;
var RazaoSocialPrestador: PChar ;
var TipoRPS: PChar ;
var SerieRPS : PChar ;
var NumeroRPS : Integer ;
var DataEmissaoRPS : PChar ;
var SituacaoRPS : PChar ;
var SerieRPSSubstituido :PChar ;
var NumeroRPSSubstituido : Integer ;
var NumeroNFSeSubstituida :Integer ;
var DataEmissaoNFSeSubstituida : PChar ;
var SeriePrestacao :PChar ;
var InscricaoMunicipalTomador : PChar ;
var CPFCNPJTomador : PChar ;
var RazaoSocialTomador :PChar ;
var TipoLogradouroTomador :PChar ;
var LogradouroTomador :PChar;
var NumeroEnderecoTomador :PChar ;
var ComplementoEnderecoTomador :PChar ;
var TipoBairroTomador: PChar ;
var BairroTomador: PChar ;
var CidadeTomador:PChar ;
var CidadeTomadorDescricao: PChar ;
var CEPTomador:PChar ; var
EmailTomador:PChar ; var
CodigoAtividade: PChar ;
var AliquotaAtividade: Double ;
var TipoRecolhimento :PChar ;
var MunicipioPrestacao: Integer ;
var MunicipioPrestacaoDescricao: PChar ;
var Operacao: PChar ;
var Tributacao: PChar ;
NFSE - Nota Fiscal de Servios Eletrnica
17
var ValorPIS : Double ;
var ValorCOFINS:Double ;
var ValorINSS : Double ;
var ValorIR : Double ;
var ValorCSLL : Double ;
var AliquotaPIS : Double ;
var AliquotaCOFINS : Double;
var AliquotaINSS : Double ;
var AliquotaIR : Double ;
var AliquotaCSLL : Double ;
var DescricaoRPS : PChar ;
var DDDPrestador : PChar ;
var TelefonePrestador : PChar ;
var DDDTomador : PChar ;
var TelefoneTomador : PChar ;
var MotCancelamento : PChar ;
var CpfCnpjIntermediario : PChar ;
var Deducoes : Integer ;
var Itens : Integer ):Integer
Parmetros de Envio:
CAMPO TIPO TAM. CONTEDO OBRIG.
PosNo - N 15 Posio na lista de nota obtidas com a funo Consul- S
t aCon - tarNotas. Por exemplo se retornou 5 notas, deve-se
sulta fazer um loop de 0 a 4 passando a posio.
Parmetros de Retorno:
CAMPO TIPO TAM. CONTEDO OBRIG.
NumeroNota N 12 Nmero da Nota N
DataProcessamento D Data de Processamento N
NumeroLote N 12 Nmero do Lote N
CodigoVerificacao A 255 Cdigo de Verificao N
Assinatura A 255 Assinatura N
InscricaoMunicipal- A 11 Inscrio Municipal do Prestador N
Prestador
RazaoSocialPrestador A 120 Razo Social do Prestador N
TipoRPS A 20 Tipo do RPS N
SerieRPS A 2 Srie do RPS N
NumeroRPS N 12 Nmero do RPS N
DataEmissaoRPS D Data de Emisso do RPS N
No formato DD/MM/YYYY
SituacaoRPS A 1 Situao da RPS N
N-Normal
C-Cancelada
Caso na funo anterior o parmetro Deducoes retornar um valor diferente de zero, deve-
se fazer chamada a funo abaixo para obter os itens de deduo da nota.
Funo: ObterDecucaoNota
Declarao: function ObterDecucaoNota( PosNotaConsulta: Integer ;
PosDeducaoNotaConsulta: Integer ;
var DeducaoPor :PChar ;
var TipoDeducao: PChar ;
var CPFCNPJReferencia: PChar ;
var NumeroNFReferencia: Integer ;
var ValorTotalReferencia : Double ;
var PercentualDeduzir: Double ;
var ValorDeduzir: Double): Integer;
Parmetros de Retorno:
CAMPO TIPO TAM. CONTEDO OBRIG.
DeducaoPor A 20 Valores Possveis: S
Percentual
Valor
TipoDeducao A 255 Caso a deduo for por Valor os S
valores possveis so :
Despesas com Materiais ou
Despesas com Sub-empreitada
Caso a deduo for por Percen-
tual informar o campo com valor
vazio.
CPFCNPJReferencia A 14 CPF ou CNPJ do Fornecedor ou N
Prestador do Servio.
NumeroNFReferencia N 10 Nmero da Nota Fiscal de Refern- N
cia
ValorTotalReferencia N 15,2 Valor total da Nota Fiscal de Refer- N
ncia
PercentualDeduzir N 15,2 Percentual a Deduzir S
ValorDeduzir N 15,2 Valor a ser Deduzido S
Funo: ObterItemServicoNota
Declarao: function ObterItemServicoNota( PosNotaConsulta: Integer ;
PosItemNotaConsulta: Integer ;
var DiscriminacaoServico: PChar ;
var Quantidade: Double ;
var ValorUnitario: Double ;
var ValorTotal: Double): Integer;
var Tributavel:PChar): Integer;
Parmetros de Retorno:
CAMPO TIPO TAM. CONTEDO OBRIG.
DiscriminacaoServico A 80 Discriminao do Servio S
Quantidade N 10,4 Quantidade do servio tomado S
ValorUnitario N 15,4 Valor Unitrio S
ValorTotal N 15,2 Valor total do servio S
Tributvel A 1 Tributvel S- Item Tributvel , N- S
NoTributvel.
Parmetros de envio:
Parmetros de envio:
Parmetros de retorno:
Parmetros de retorno:
Parmetros de envio:
CAMPO TIPO TAM. CONTEDO OBRIG.
Deve ter o mesmo valor do
PosNotaConsulta N 10 par- metro PosNotaConsulta S
passado na funo anterior
Item, por exemplo se a consul-
ta de notas retornou 5 itens
PosDeducaoNota-
N 10 de servio. Deve-se fazer um S
Consulta
loop de 0 a 4 pas- sando a po-
sio.
Parmetros de retorno:
CAMPO TIPO TAM. CONTEDO OBRIG.
Valores Possveis:
pDeducaoPor A 20 Percentual N
Valor
Caso a deduo for por Valor os valo-
res possveis so :
Parmetros de envio:
Parmetros de retorno:
CAMPO TIPO TAM. CONTEDO OBRIG.
pDiscriminacaoSer-
A 80 Discriminao do Servio N
vico
pQuantidade N 10,4 Quantidade N
pValorUnitario N 10,4 Valor Unitario N
pValorTotal N 10,2 Valor Total N
S Item tributvel
pTributavel A 1 N
N Item no tributavel
Caso na funo EnviarConsultaNFSeRPS o parmetro pErros retornar um valor dife-
rente de zero, deve-se fazer chamada a funo abaixo para obter os erros retor-
nados.
Parmetros de envio:
CAMPO TIPO TAM. CONTEDO OBRIG.
Posio do erro retornada na fun-
o EnviarConsultaNFSeRPS. Por
exemplo se o parmetro
ErroItem N 10 S
pErros retornou o valor 2. A posi-
o 0 retorna os dados do primeiro
erro e assim por diante.
Parmetros de retorno:
CAMPO TIPO TAM. CONTEDO OBRIG.
pCodigo N 10 Cdigo do Erro N
pDescricao A 2000 Descrio do Erro N
Funo: ObterAlertaConsultaNFSeRPS
Declarao: ObterAlertaConsultaNFSeRPS( AlertaItem:Integer;
var pCodigo: Integer;
var pDescricao: PChar):Integer
Parmetros de envio:
CAMPO TIPO TAM. CONTEDO OBRIG.
AlertaItem N 10 Posio do alerta retornado na funo EnviarConsul- S
taNFSeRPS. Por exemplo se o parmetro
pAlertas retornou o valor 2. A posio 0 retorna os da-
dos do primeiro erro e assim por diante.
Parmetros de retorno:
CAMPO TIPO TAM. CONTEDO OBRIG.
pCodigo N 10 Cdigo do Alerta N
pDescricao A 2000 Descrio do Alerta N
Parmetros de Envio:
CAMPO TIPO TAM. CONTEDO OBRIG.
CodCidade N 10 Cdigo da Cidade de Declarao S
padro SIAF.
CPFCNPJRemetente A 14 CPF ou CNPJ Remetente S
InscricaoMunicipalPrestador A 11 Inscrio Municipal do Prestador S
SeriePrestacao A 5 Srie de Prestao. Preencher
com: 99 - Modelo nico
Parmetros de Retorno:
CAMPO TIPO TAM. CONTEDO OBRIG.
NroUltimoRps N 10 Nmero do ltimo RPS convertido N
Para cancelar um Nota Fiscal deve ser um enviado uma requisio de cancelamento, para
isso deve-se gerar um lote de cancelamento atravz de funes especficas
da DLL. A seguir iremos descrever essas funes. Um lote de cancelamento de NFS-e
pode conter vrias notas a serem canceladas, desde que estas sejam do mesmo
prestador. As notas que ainda no foram emitidas Guias de Recolhimento sero
canceladas. O cancelamento de nota fiscal um processo sincrono, ou seja
obtm-se o retorno do processo na mesma conexo com o web service.
Funo: CriarLoteCancelamento
Declarao: function CriarLoteCancelamento( CodCidade: Integer ;
CPFCNPJRemetente: PChar;
RazaoSocialRemetente: PChar ): Integer
Parmetros de
Envio:
CAMPO TIPO TAM. CONTEDO OBRIG.
CodCidade N 10 Cdigo da cidade da declarao padro SIAFI. S
CPFCNPJRemetente A 14 CPF /CNPJ do remetente autorizado a transmitir S
RazaoSocialRemetente A 120 Razo social do remetente do lote S
Funo: AdicionarNotaCancelamento
Declarao: function AdicionarNotaCancelamento(InscricaoMunicipalPrestador: PChar ;
NumeroNota : Integer ;
CodigoVerificacao : PChar;
MotivoCancelamento : PChar ) : Integer ;
Parmetros de Envio:
CAMPO TIPO TAM. CONTEDO OBRIG.
InscricaoMunicipalPrest N 11 Inscrio Municipal do Prestador S
a- dor formata- do seguindo anexo 03 deste
NumeroNota N 12 manual da nota a ser cancelada
Nmero S
CodigoVerificacao A 255 Cdigo de verificao da nota. S
MotivoCancelamento A 80 Motivo do cancelamento S
Obs: Deve-se tomar cuidado para no confundir nmero da nota fiscal com o nmero
do RPS, o nmero da nota fiscal pode ser diferente do nmero do RPS do qual ela
originou.
A funo abaixo gera o lote de cancelo a partir das informaes passadas nas funes ante-
riores e envia para o web service. Em seguida o web service ir processor o lote e retornar
o resultado do processamento.
Parmetros de Envio:
CAMPO TIPO TAM. CONTEDO OBRIG.
pDocAssinatura A 14 Informar S caso queira que a DLL realize S
a assinatura digital. Caso contrrio deixar
vazio.
Parmetros de Retorno:
CAMPO TIPO TAM. CONTEDO OBRIG
pSucesso A 5 Declarao entregue com sucesso N
Valores possveis: true ou false
pQtdNotasCanceladas N 15 Retorna a quantidade de notas cancel- N
adas com sucesso. Para obter os dados
de cada nota cancelada deve-se fazer
chamada a funo
ObterNotaRetornoCancelamento
pErros N 15 Quantidade de erros que ocorreram N
no cancelamento. Para obter os dados
de cada erro deve se fazer chamada a
funo ObterErroLoteCancelamento
pAlertas N 15 Quantidade de alertas que ocorreram N
no cancelamento. Para obter os dados
de cada erro deve se fazer chamada a
funo ObterAlertaLoteCancelamento
Funo: ObterNotaRetornoCancelamento
Declarao: function ObterNotaRetornoCancelamento( RetornoItem : Integer ;
var pInscricaoPrestador: PChar ;
var pNumeroNota: Integer ;
var pCodigoVerificacao: PChar ) :Integer ;
Parmetros de Retorno:
CAMPO TIPO TAM. CONTEDO OBRIG
pInscricaoPrestador A 11 Inscrio municipal do prestador N
pNumeroNota N 12 Nmero da nota cancelada N
pCodigoVerificacao A 255 Cdigo de verificao da NFS-e N
pAlertas N 15 Quantidade de alertas que ocorreram N
no cancelamento. Para obter os dados
de cada erro deve se fazer chamada a
funo ObterAlertaLoteCancelamento
Funo: ObterErroLoteCancelamento
Declarao: function ObterErroLoteCancelamento( ErroItem:Integer;
var pCodigo: Integer;
var pDescricao: PChar;
var pInscricaoPrestador : PChar;
var pNumeroNFe: Integer;
var pCodigoVerificacao: PChar ):Integer;
Parmetros de
Envio:
CAMPO TIPO TAM. CONTEDO OBRIG.
ErroItem N 10 Posio do erro retornada na funo S
En- viarCancelamento. Por exemplo se
o par- metro pErros retornou o valor
2. A posio
0 retorna os dados do primeiro erro e
as- sim por diante
Parmetros de Retorno:
CAMPO TIPO TAM. CONTEDO OBRIG
pCodigo A 11 Cdigo N
pDescricao A 2000 Descrio N
pInscricaoPrestador A 11 Inscrio Municipal do Prestador N
pNumeroNFe N 12 Nmero da NFS-e N
Parmetros de Envio:
CAMPO TIPO TAM. CONTEDO OBRIG.
AlertaItem N 10 Posio do alerta retornada na funo S
En- viarCancelamento. Por exemplo se
o par- metro pAlertas retornou o
valor 2. A posi- o 0 retorna os dados
do primeiro alerta e assim por diante
Parmetros de Retorno:
CAMPO TIPO TAM. CONTEDO OBRIG
pCodigo A 11 Cdigo N
pDescricao A 2000 Descrio N
pInscricaoPrestador A 11 Inscrio Municipal do Prestador N
pNumeroNFe N 12 Nmero da NFS-e N
pCodigoVerificacao A 255 Cdigo de verificao da NFS-e N
4.1.Procedimento de
Configurao
4.3.Atualizao de Verso
Quando houver uma nova verso da lotenfse.dll disponvel ao consultar o lote de envio ser
retornado o alerta 1406 - Versao da DLL de conversao de RPS desatualizada. Baixe a ul-
tima versao no site da NFSe.
Baixe o arquivo lotenfse.zip e descompacte, faa uma copia da verso da lotenfse.dll que
esta sendo utilizada e substitua pela nova verso.
Dentro do arquivo lotenfse.zip encontra-se o arquivo Atualizacao.txt com as orientaes
sobre as mudanas ocorridas nas verses disponibilizadas. Podem ocorrer mudanas na
assinatura das funes de uma verso para outra. Com isso antes de disponibilizar uma
nova verso deve-se verificar as mudanas ocorridas e implement-las no
sistema.
5 - ANEXOS
Obs : Preencher sempre com zeros a esquerda para completar o tamanho do campo.
Avenida
Rua
Rodovia
Ruela
Rio
Stio
Sup Quadra
Travessa
Vale
Via
Viaduto
Viela
Vila
Vargem
Bairro
Bosque
Chcara
Conjunto
Desmembramento
Distrito
Favela
Fazenda
Gleba
Horto
Jardim
Loteamento
Ncleo
Parque
Residencial
Stio
Tropical
Vila
Zona
As funes da DLL retornam um valor inteiro, caso este valor seja diferente de zero indica
que houve um erro interno da DLL. Abaixo segue uma lista de erros possveis:
Funo: ObterErroInterno
Declarao: function ObterErroInterno(CodErro: Integer ): PChar
Parmetros de Envio:
CAMPO TIPO TAM. CONTEDO OBRIG.
CodErro N 10 Cdigo do erro S
Parmetros de Envio:
A funo ir retornar a descrio do erro ocorrido.
Caso no momento de enviar um lote com assinatura digital esteja ocorrendo o seguinte erro
: Erro ao Enviar Declarao. Descrio: Erro inesperado: Erro na certificao digital.
Classe
no registrada, ClassID:{25567DA7-17E9-46D5-BFA8-8AE4CC7DA6E1}
NFSE - Nota Fiscal de Servios Eletrnica
42
Este erro ocorre quando as DLLs necessrias para assinar o XML com o
certificado digital no esto registradas ou no esto na mesma pasta que o
executvel(.exe) da apliao. Verifique o procedimento descrito no arquivo Leia-me.txt
que entra-se junto aos demais ar- quivos da lotenfse.dll.
ANEXO 5
Erros de
Retorno
Abaixo seguem as mensagens de erro de processamento que podem ser retornadas
pelo servio.
Alertas Retornados
CDIGO DESCRIO
203 Lote no processado ainda
211 A inscrio municipal do tomador no foi encontrada na
base de dados de CMM.
214 Cidade/UF informada no foi encontrada na base de da-
dos.
216 RPS j foi convertido individualmente em NF-E atravs do
site e no ser processado novamente.
217 RPS reenviado. A NFS-E referente ao RPS foi cancelada
e uma nova NFS-e foi emitida.
221 O CNPJ informado possui inscrio municipal dentro do
municpio, porem foi informado endereo fora do mu-
nicpio.
1301 NFSe j cancelada.
1302 NFSe em duplicidade na mensagem XML enviada.
1304 NFSe no localizada na base de dados para cancelamen-
to.
1405 No existe nenhuma inscrio municipal vinculada ao
CPF/CNPJ informado.
NFSE - Nota Fiscal de Servios Eletrnica
48
1406 Versao da DLL de conversao de RPS desatualizada. Baixe
a ultima versao no site da NFSe.
1407 NFSe nao localizada na base de dados
1408 RPS nao localizado na base de dados
1409 Lote no assinado.