PHP – Como emitir NFe pelo Focus Lojas

Posted fevereiro 18th, 2012 in NFe by ricardo

O PHP é uma das linguagens mais utilizadas para sistemas na internet. Constantemente empresas de desenvolvimento integram seus sistemas feitos em PHP com o Focus NFe.

Para facilitar a integração de sistemas em PHP com o Focus NFe criamos um pequeno exemplo que mostra como a integração é simples. Basta montar o arquivo em nosso formato simplificado (clique aqui para conhecer) e mandar para nosso web service que nós fazemos o resto.

Faça o download do exemplo clicando aqui.

Para conhecer outras formas de integrar seu sistema com o Focus NFe visite os links abaixo:

API para integrar seu sistema com o módulo web do Focus NFe

Utilizando o comunicador por arquivo.

 

 

 

 

 

 

 

Questão fiscal: A troca de mercadorias

Posted janeiro 6th, 2012 in NFe, SGL by ricardo

Uma dúvida muito comum entre os usuários de nosso sistema de lojas, o Focus Lojas, é com relação à troca de mercadorias. Para lojistas que utilizam a versão fiscal de nosso sistema as vezes parece estranho que as trocas saem no Cupom Fiscal com o valor “cheio”, ou seja, sem descontar o valor dos produtos devolvidos.

Desta forma decidimos escrever um artigo dando a visão Fiscal de como deve ser uma troca em um estabelecimento comercial e os erros mais comuns entre sistemas comerciais.

Natureza técnica de uma impressora fiscal

As impressoras fiscais são equipamentos cercados de proteções contra sonegação fiscal, estes equipamentos seguem normas rígidas e passam por homologações bastante criteriosas antes de poderem ser vendidas como Emissor de Cupom Fiscal.

Uma das diversas regras implementadas em uma impressora fiscal diz que ela não pode, sob nenhuma hipótese, cancelar um cupom fiscal que não seja o último emitido.

Controle do estoque e descontos absurdos

É obrigação do lojista e, consequentemente de seu sistema, controlar o estoque, de forma que entradas de produtos por devolução devem ser informados ao sistema.

Outra regra trata da proibição de descontos absurdos em mercadorias. Não se pode dar desconto de 100% por exemplo sem um bom motivo, uma eventual fiscalização iria questionar descontos muito grandes e muito frequentes. Desta forma não se pode colocar os produtos devolvidos como forma de desconto.

Nota Fiscal de Entrada

Ora, se não é possível cancelar um cupom fiscal antigo e também não se pode inserir descontos de muito grandes, então a loja terá que pagar o imposto duas vezes quando houver troca? Não! A loja deverá emitir uma nota fiscal de entrada. Veja o que diz a lei:

“O artigo 148, inciso I do RICMS/PR traz que o contribuinte, exceto o produtor rural inscrito no CAD/PRO, deve emitir nota fiscal de entrada no momento em que entrarem em seu estabelecimento, real ou simbolicamente, bens ou mercadorias novos ou usados, remetidos a qualquer título por produtores agropecuários ou pessoas físicas ou jurídicas não obrigados à emissão de documentos fiscais.”

Ou seja, independente do motivo, da forma ou do volume, deve-se emitir nota fiscal de entrada quando receber mercadoria de quem não emite nota fiscal.

Como é o Focus Lojas

No Focus Lojas uma venda pode possuir itens devolvidos pelo seu cliente, porém, para contemplar todas as regras fiscais acima,  o sistema emite o cupom fiscal da saída normalmente, sem descontos e sem indicar os itens devolvidos. O sistema apenas informa que uma das formas de pagamento foi com créditos (aqueles conseguidos com a devolução de mercadorias).

A nota a ser emitida deve ser de modelo 1 ou 1-A e o CFOP a ser utilizado será o 1.202 (para mercadorias sem substituição tributária ) ou 1.411 (para mercadorias com substituição tributária). A emissão da nota de entrada é de obrigação do lojista e pode ser feita de várias formas:

  • Bloco de nota: Utilizando um bloco de papel para emissão manual da nota de entrada
  • Emissão de NFe avulsa: Através do site da receita estadual.
  • Emissão de NFe por meio de sistemas comerciais, pagos ou não: Existem diversos sistemas que se encarregam da emissão de NFe, inclusive um gratuito fornecido pela SEFAZ de São Paulo.
  • Emissão de NFe por integração com o sistema Focus NFe: A Acras Sistemas possui o Focus NFe, um sistema comercial para emissão de NFe pela internet. O Focus Lojas possui uma integração com este sistema e a emissão das NFe de entrada poderá ser feita de forma automática. Aguarde planos especiais para clientes Focus Lojas!

Novidades para 2012

Posted janeiro 3rd, 2012 in NFe by ricardo

Primeiramente queremos desejar um ótimo ano de 2012 a todos os nossos clientes!

Há alguns meses nossa equipe está preparando algumas novidades para os usuários do Focus NFe e elas serão disponibilizadas aos nossos usuários no decorrer deste ano. As principais novidades são:

Modelo de NFe

Para as operações mais comuns da sua empresa será possível criar modelos de NFe. Os modelos trarão consigo algumas configurações que irão agilizar o processo de emissão de uma nota. Por exemplo, podemos ter um modelo chamado “Venda sem frete e sem faturas”. Ao selecionar este modelo o sistema já irá preencher os campos a seguir de forma automática:

Natureza da Operação: Venda
Tipo de Documento: Saída
CFOP: 5101 quando o cliente for do mesmo estado da empresa, 5102 caso contrário
Frete e Duplicatas: Não serão mostradas ao cliente e terão suas informações preenchidas automaticamente

Emissão de Boletos

Será possível configurar o sistema para emitir boletos bancários a partir das duplicatas criadas em uma NFe. Desta forma os usuários que emitem boleto pelo sistema do banco poderão fazê-lo diretamente de nosso sistema, diminuindo o trabalho e aumentando a integração das informações.

Sistema Financeiro

Estamos desenvolvendo um sistema financeiro completo, com controle de contas a pagar e receber, integração com as duplicatas da emissão de NFe, criação de DRE para apuração de resultados e muito mais.

Este sistema está sendo desenvolvido em parceria com um consultor financeiro do SEBRAE e com recursos do MCT/CNPq.

O sistema será de contratação à parte, porém usuários Focus NFe terão condições especiais para aquisição do módulo.

Módulo básico de estoque

Para contemplar algumas exigências legais vamos introduzir um módulo básico de controle de estoque no sistema.

 

Com estas novidades demonstramos nosso compromisso em trabalhar para aumentar a produtividade e a competitividade de sua empresa.

Reduzido o prazo para cancelamento de NFe

Posted dezembro 28th, 2011 in NFe by ricardo

Fique atento! A partir do dia 02 de Janeiro de 2012 o prazo para cancelamento de Notas Fiscais Eletrônicas (NFe) será reduzido para 24 horas. A nova regra foi publicada através da NT2011/007.

API para integração com o módulo Web do Focus NFe

Posted dezembro 11th, 2011 in NFe by ricardo

O sistema Focus NFe é dividido em duas partes, o módulo Web e o Núcleo.

O núcleo é o responsável por toda a lógica puramente inerente à Nota Fiscal Eletrônica, ou seja, a geração dos arquivos XML e DANFe, a comunicação com a receita para autorização, cancelamento e outras operações, a escolha entre servidor normal ou SCAN (contingência) e por aí vai.

Já o Módulo Web é o responsável pela interação com o usuário do sistema, são telas desenhadas para funcionar dentro do navegador e destinadas aos cadastros básicos (pessoas, produtos, etc) e para o preenchimento da Nota Fiscal em si. É responsabilidade do módulo web também toda a lógica de cálculo automatizado de impostos, funcionalidade muito apreciada pelos nossos usuários pois evita a necessidade de preenchimento de dezenas de campos referentes aos vários tributos existentes no Brasil.

Além do uso comum do sistema, ou seja, o preenchimento da NFe nas telas web e envio das notas, existem hoje duas formas de integrar outros sistemas com o Focus NFe. A integração direta e a integração 2 (que nome dar?). Na integração direta é responsabilidade do sistema que está se integrando de preencher todos os dados da nota fiscal, enviar diretamente ao núcleo do Focus NFe e consultar o resultado um tempo depois. Esta integração é explicada aqui (link para um post que explique isso).

O Módulo Web também pode ser integrado com sistemas externos, desta forma o sistema que está se integrando não precisa fazer todos os cálculos de impostos, cadastrando via API os destinatários da nota, os produtos e a nota em si.

Conceitos básicos da API

A API se baseia em domínios e tokens de acesso. Ao contratar o Focus NFe na modalidade “Integração Módulo Web” o programador receberá um identificador de domínio e um token de acesso de nosso suporte técnico. Toda a comunicação deverá ser feita através da utilização destas informações. Veja o exemplo abaixo, ele faz uma busca por uma pessoa com cnpj 07.504.505/0001-32 no domínio 100.

https://app.acras.com.br/web_nfe/api/pessoas?domain=100&access_token=J8Lqxw81upY8m0oTyE30ubwh9Umin6wQ&cnpj=03693480614355

Veja que os dois primeiros parâmetros da URL são o domain e o access_token.

 

API de pessoas

Índice

sintaxe: [GET] /pessoas
parâmetros: cnpj ou cpf
retorno:
 -quando encontrar uma pessoa retorna um xml representando a pessoa e status 200
 -quando não encontrar uma pessoa retorna vazio e status 404

Não disponibilizamos uma listagem completa de todas as pessoas cadastradas para evitar solicitações que sobrecarreguem o serviço. Todo índice deverá conter filtragem por CNPJ ou CPF.

Criação

sintaxe: [POST] /pessoas
uso:
  -Todos os parâmetros devem ser enviados como sub-parâmetros de pessoa,
   ou seja pessoa['nome'], pessoa['cpf'], etc.
parâmetros:
 -nome: o nome da pessoa com até 60 caracteres
 -cpf ou cnpj: somente um dos dois sendo cpf com 11 ou cnpj com 14 caracteres
 -inscricao_estadual ou isento_inscricao_estadual: inscricao_estadual com até
  14 caracteres ou o isento_inscricao_estadual preenchido com o valor 1 para
  indicar que é isento.
 -telefone: 10 caracteres exatamente 
 -email: Endereço de e-mail da pessoa. Se for informado, o Focus NFe irá disparar
  um e-mail para esta pessoa sempre que uma NFe seja autorizada para ela.
 -habilita_emissao_nfe: 0 - Não, 1 - Sim. Se estiver desabilitado não será possível
  emitir NFe para esta pessoa e algumas validações serão desligadas
 -logradouro(obrigatório se habilita_nfe=1): nome do logradouro
 -numero(obrigatório se habilita_nfe=1): número do endereço
 -complemento: complemento do endereço
 -bairro(obrigatório se habilita_nfe=1): bairro da pessoa
 -municipio(obrigatório se habilita_nfe=1): verifique abaixo as duas formas de
  preencher o município, se for preenchido codigo_municipio os outros dois
  parâmetros serão ignorados
   -codigo_municipio: Código IBGE do município
   -nome_municipio e uf_municipio: Dois parâmetros, um contendo o nome e outro contendo a UF
 -cep(obrigatório se habilita_nfe=1): cep do endereçamento da pessoa
 -codigo_pais: Código de país conforme a tabela do
 SISBACEN (http://www.mdic.gov.br/arquivos/dwnl_1211380426.pdf).
  Se vazio será assumido código 1058 (Brasil)
retorno:
 -quando a pessoa for criada retorna um xml representando a pessoa e status 201 (created)
 -quando não criar a pessoa por alguma falha de validação são retornados os erros de
  validação e o status 200 (OK) 


Atualização

sintaxe: [PUT] /pessoas/{id}
parâmetros: são os mesmos parâmetros da criação, apenas repare como na URL utilizada
            deve ser passado o id do registro, pois é uma atualização

API de Produtos

 

Índice

sintaxe: [GET] /produtos
parâmetros: codigo
retorno:
 -quando encontrar um produto retorna um xml representando o produto e status 200
 -quando não encontrar um produto retorna vazio e status 404

Criação

sintaxe: [POST] /produtos
uso:
  -Todos os parâmetros devem ser enviados como sub-parâmetros de produto,
   ou seja produto['codigo'], produto['descricao'], etc.
parâmetros:
 -codio: código do produto contendo até 60 caracteres, para integração é obrigatório
 -descricao: descrição do produto contendo até 120 caracteres
 -codigo_ncm ou capitulo_ncm: um dos dois onde codigo deve conter exatamente 8 caracteres e capitulo exatamente 2. 
   Este parâmetro deve ser informado conforme a configuração
 -unidade_comercial: Unidade em que o produto é comercializado. Se for vazio será assumido 'un'
 -valor_unitario_comercial: Valor unitário do produto

Atualização

sintaxe: [PUT] /produtos/{id}

Aqui são aceitos os mesmos parâmetros da criação, observar que o método é o PUT e que deve ser passado o id do registro que está sendo atualizado.

API de Notas Fiscais

sintaxe: [POST] /notas_fiscais
parâmetros:
  -natureza_operacao: Descritivo com até 60 caracteres da natureza da operação desta nota fiscal
  -tipo_documento: ENTRADA | SAIDA
  -data_emissao: Data de emissão deste documento fiscal no formato aaaa-mm-dd se vazio é assumido como hoje
  -data_entrada_saida: Data de entrada ou saída das mercadorias no formato aaaa-mm-dd
  -hora_entrada_saida: Hora de entrada ou saída das mercadorias no formato hh:mm:ss
  -cnpj_emitente: CNPJ do emitente. Obrigatório somente para domínios que possuem mais de um emitente, se 
                  houver apenas um o Focus NFe irá escolher automaticamente.
  -destinatario_id: id do destinatario desta nota. Este id é adquirido quando se faz a criação ou busca de 
                    uma pessoa pela API.
  -enviar: se estiver com o valor 1 efetua o envio para a receita, senão somente grava a nota para envio manual. Este parâmetro deve ser enviado na raiz dos params, ou seja, não fica abaixo do nota_fiscal.

Arquivo de envio de NFe

Posted outubro 11th, 2011 in NFe by ricardo

Quem utiliza o sistema Focus NFe para integração possui à sua disposição duas formas de enviar as notas fiscais, a primeira é enviar diretamente as notas para o web service do sistema, a outra é gerando um arquivo localmente e utilizando o comunicador por arquivo que nós disponibilizamos.

Das duas formas, o arquivo a ser enviado deve ser um arquivo no formato YAML. A documentação detalhada de quais campos devem ser enviados e quais são opcionais você pode encontrar aqui e abaixo segue um exemplo de uma nfe representada em um arquivo yaml.

natureza_operacao: Venda de Mercadorias
forma_pagamento: 2
data_emissao: 2011-10-11
data_entrada_saida: 2011-10-11
tipo_documento: 1
finalidade_emissao: 1
cnpj_emitente: "10607261000162"
nome_emitente: Emitente LTDA
nome_fantasia_emitente: Fantasia do Emitente
logradouro_emitente: Rua Sete de Abril
numero_emitente: 127
bairro_emitente: Centro
municipio_emitente: Curitiba
uf_emitente: PR
cep_emitente: "84035440"
inscricao_estadual_emitente: "9054052682"
nome_destinatario: Farmacia Legal LTDA
cnpj_destinatario: "09171618000170"
inscricao_estadual_destinatario: "9042072416"
telefone_destinatario: "4123571642"
logradouro_destinatario: PR 412 KM 5
numero_destinatario: 5358
bairro_destinatario: Emiliano Perneta
municipio_destinatario: São José dos Pinhais
uf_destinatario: PR
pais_destinatario: Brasil
cep_destinatario: "83255000"
icms_base_calculo: 0
icms_valor_total: 0
icms_base_calculo_st: 0
icms_valor_total_st: 0
valor_frete: 0.0000
valor_seguro: 0
valor_total_ii: 0
valor_ipi: 0
modalidade_frete: 0
items:
- numero_item: 1
  codigo_produto: 7896214000010
  descricao: LOÇÃO BRLHANTE 150 ML
  cfop: 5102
  unidade_comercial: un
  quantidade_comercial: 2.0000
  valor_unitario_comercial: 9.9900
  valor_unitario_tributavel: 9.9900
  unidade_tributavel: un
  codigo_ncm: 96
  quantidade_tributavel: 2.0000
  valor_bruto: 19.9800
  icms_situacao_tributaria: 103
  icms_origem: 0
  pis_situacao_tributaria: 99
  cofins_situacao_tributaria: 99
- numero_item: 2
  codigo_produto: 7896054711244
  descricao: ACETONA CINCO VERDE 100 ML
  cfop: 5102
  unidade_comercial: un
  quantidade_comercial: 24.0000
  valor_unitario_comercial: 1.8900
  valor_unitario_tributavel: 1.8900
  unidade_tributavel: un
  codigo_ncm: 96
  quantidade_tributavel: 24.0000
  valor_bruto: 45.3600
  icms_situacao_tributaria: 103
  icms_origem: 0
  pis_situacao_tributaria: 99
  cofins_situacao_tributaria: 99

 

Utilizando o comunicador por arquivo

Posted agosto 31st, 2011 in NFe by ricardo

Uma das formas de se comunicar com o Focus NFe é gerando um arquivo texto no formato especificado.

Para sistemas desktop que não desejam implementar uma comunicação direta com nossos web services criamos um agente de comunicação que lê os arquivos gerados em uma pasta e envia para o Focus NFe. Em um segundo momento o próprio agente consulta o status da nota e faz o download dos arquivos do DANFe e XML da nota.

Para fazer o download do comunicador clique aqui.

Funcionamento

Sempre que o comunicador é chamado ele irá seguir os passos abaixo:

  1. Enviar os arquivos de nfe que estão no diretório de envio e criar uma pendência de retorno para esta nota.
  2. Enviar os arquivos de cancelamento que estão no diretório de envio e criar uma pendência de retorno para este cancelamento.
  3. Consultaros retornos pendentes.
    1. Havendo retorno o comunicador irá gravar o arquivo de retorno com o nome do identificador e a extensão ret. Por exemplo, para uma nfe com identificador único 99887766 será gravado o arquivo 99887766.ret no diretório de retorno.
    2. Se o retorno é referente a uma emissão de NFe e esta nota foi autorizada, o comunicador já irá fazer o download do DANFe e do XML gravando os dois arquivos em um subdiretório do diretório de retorno. Para o DANFe o nome do subdiretório será DANFEs e para o XML será XMLs.

Envio do arquivo para emissão da NFe

A aplicação do cliente deverá gravar um arquivo contendo o conteúdo da NFe e cujo nome é composto de um identificador único e com extensão nfe. Por exemplo, se o identificador único da nota no sistema cliente é 99887766 deverá ser gravado no diretório de envio com a extensão nfe, ou seja 99887766.nfe.

Envio do arquivo para cancelamento de NFe

A aplicação cliente deverá gravar um arquivo contendo um texto de justificativa de cancelamento. O arquivo deverá ser nomeado com o identificador único da nota e com extensão can. Em nosso exemplo acima o nome do arquivo seria 99887766.can. Este arquivo deverá ser gravado no diretório de envio de dados.

Reconsulta de nfe

O comunicador faz adiciona pendências de consulta automaticamente para todo envio e cancelamento comandado. Se por algum motivo houver a necessidade de comandar novamente uma consulta, basta acionar o comunicador com o parâmetro ref e o valor sendo o id único da nota. Por exemplo, para comandar a reconsulta da nota com id único 99887766 basta chamar o comunicador como na linha de comando a seguir:

$ focusNFeFileCommunicator ref=99887766

Importante

O comunicador possui uma execução linear e ao final é desativado. Isto quer dizer que ele não repete as consultas até que as notas estejam em estado final. É de responsabilidade da aplicação do cliente chamar o comunicador de tempos em tempos até que tenha as respostas para seus envios.

Configuração

Após rodar o comunicador pela primeira vez ele irá gerar um arquivo de configuração com informações padrão, como no exemplo abaixo.

[Diretorios]
envio=P:\envios\
retorno=P:\retornos\
logs=P:\logs
[Conexao]
url=http://producao.acrasnfe.acras.com.br/
token={token-enviado-pelo-suporte-focusnfe}

Na seção Diretorios são configurados os diretórios de comunicação (envio e retorno) onde a aplicação do cliente irá salvar e ler arquivos respectivamente. Também é configurado o diretório de logs, onde o comunicador irá gravar os logs das operações realizadas por ele.

A seção Conexao possui duas configurações cruciais para a correta comunicação com o Focus NFe. A url determina o endereço de comunicação que pode ser o de homologação (http://homologacao.acrasnfe.acras.com.br) e produção (http://producao.acrasnfe.acras.com.br). O token é a chave de acesso, fornecida pelo suporte, que irá garantir que a aplicação do cliente tem acesso ao Focus NFe.

Passo a passo para criação de usuário na receita do Paraná

Posted agosto 9th, 2011 in NFe by ricardo

O primeiro passo para a utilização de um sistema de NFe no estado do Paraná é a criação de um usuário no ReceitaPR. Este tutorial ensina como fazer este cadastro.

Passo 1: Em seu navegador acesse o link a seguir: http://www.receita.pr.gov.br/receitapr/usuarios

Passo 2: Nesta tela preencha os dados da pessoa que assina pela empresa (Deve ser o representante legal da empresa) e clique em Enviar.

A receita irá enviar um e-mail para seu endereço

Passo 3: Receba o e-mail da receita e clique no link enviado, você será levado à página da receita para imprimir o Termo de Adesão.

Passo 4: Conforme instruções do termo de adesão, deve-se imprimir, assinar e reconhecer firma e enviar por correio para o endereço da Receita contido no próprio Termo.

Passo 5: Feito isso a receita irá processar o pedido quando receber a carta enviada, para acompanhar seu pedido clique no link a seguir:http://www.receita.pr.gov.br/receitapr/consultas/processo_homologacao.

Uma vez liberado seu login será possível solicitar o uso do sistema FocusNFe.

Como exportar um certificado do tipo A1

Posted agosto 9th, 2011 in NFe by ricardo

Passo 1: Em seu navegador Internet Explorer, acesse o menu Ferramentas ˃ Opções da Internet.

 

Passo 2:Nesta tela acesse a aba Conteúdo. Na aba Conteúdo clique no botão Certificados.

Passo 3: Serão exibidos os certificados instalados em sua máquina. Clique sobre o nome da empresa cujo certificado deseja exportar. O nome deverá ficar com fundo azul. Em seguida clique no botão Exportar.

Passo 4: O assistente de exportação será iniciado. Clique em Avançar.

Passo 5: Selecione a opçãoSim, exportar a chave particular e clique em Avançar.

Passo 6: Na tela seguinte deixe as opções conforme a imagem abaixo e clique em Avançar.

Passo 7: Digite a senha do certificado, confirme e clique em Avançar.

Passo 8: Escolha um nome e um local para o arquivo a ser gravado e clique em Salvar. Depois clique em Avançar.

Passo 9: Confira o nome do arquivo escolhido e clique em Avançar.

Passo 10: Clique em Concluir e a exportação será realizada.

Passo 11: Envie o arquivo juntamente com a senha para suporte-nfe@acras.com.br.

Suporte sempre presente

Posted junho 1st, 2011 in NFe by admin

Agora no sistema Focus NFe o suporte está sempre presente.

Muitos usuários já perceberam e utilizam o botão “Solicitar Suporte” que encontra-se na parte superior direita da tela principal do sistema, como mostrado na imagem abaixo:

Ao clicar no botão, uma solicitação de suporte será aberta e se o suporte estiver disponível na hora (nosso suporte funciona no horário comercial) uma tela de chat ao vivo será aberta.

Esta forma de suporte é melhor do que o chat comum ou o telefone pois o analista de suporte receberá informações de quem está solicitando. Muitas vezes conseguimos descobrir o problema antes mesmo de o usuário relatá-lo.

Outro fator importante é que neste sistema de suporte temos textos prontos para explicar e orientar em diversas situações, diminuindo o tempo que o nosso cliente leva para ser atendido.

Por isso não hesite. Precisando de suporte clique no botão “Solicitar Suporte”.