Todos os posts de egon

Controle Financeiro e de Estoque

O sistema Focus NFe agora conta com duas novas funcionalidades que você pode solicitar para sua empresa: controle financeiro e controle de estoque.

Controle de estoque

É possível atribuir uma quantidade em estoque para os produtos cadastrados, de forma que aconteça a baixa de estoque automática através da emissão de uma NFe de saída.

Entrando no menu em Operações -> Entrada/Saída manual onde você pode incluir (ou remover) uma quantidade dos produtos já cadastrados.

Entrada manual

O relatório Balanço de Estoque mostra a posição em estoque atual  de todos os produtos. Esta informação pode ser consultada também no cadastro de produtos,  assim como o histórico de todas as operações de movimentação em estoque.

Movimentações em estoque

Controle Financeiro

Outra funcionalidade disponível agora é o controle de lançamentos de contas a pagar e a receber. Cada lançamento pode ter uma ou mais parcelas. Por exemplo, uma nota fiscal pode ter seu pagamento dividido em 3 duplicatas, esta informação consta na aba “Cobrança” da emissão da NFe

Duplicatas

Os lançamentos de contas a receber são feitos automaticamente quando você define as duplicatas de cobrança na NFe. Note que você pode parcelar os recebimentos como quiser. Depois de criado você pode visualizar os lançamentos mais importantes no menu Financeiro -> Lançamentos onde você também pode criar manualmente lançamentos de contas a pagar e a receber.

Lançamentos

Além disso, é possível emitir boletos de cobrança para o seu cliente apenas com um clique a partir dos lançamentos gerados pela sua NFe. Consulte as opções de bancos e carteiras já disponíveis. Implementamos o banco/carteira que sua empresa precisa em um prazo de 30 dias.

Você pode opcionalmente classificar suas despesas/receitas por plano de contas. Feito isso, todas as informações serão consolidadas no relatório DRE Gerencial, onde você pode apurar o lucro de sua empresa.

DRE

Por R$ 30,00 adicionais na sua mensalidade você pode adquirir estas duas funcionalidades para a sua empresa . Contrate através do nosso canal de vendas pelo e-mail contato@acras.com.br.

 

API para envio de NFe usando o formato de arquivo do SEFAZ-SP

Além de usar o nosso formato YAML para autorização de Nota Fiscal eletrônica você pode agora optar pelo formato reconhecido pelo emissor do SEFAZ-SP.

As URLs de comunicação continuam as mesmas, basta alterar o conteúdo enviado que o sistema reconhece automaticamente o formato enviado. Consulte a API para envio de NFe para consultar as URLs disponíveis.

O arquivo TXT segue uma estrutura hierárquica de grupos, que são determinados por letras (conforme o Manual de Integração do Contribuinte) e a delimitação dos campos de cada grupo pelo caractere “|” , denominado coloquialmente como pipe. Para entender a organização dos arquivos e saber como preencher os dados, você deverá consultar dois manuais:

  1. Manual do Layout TXT do SEFAZ-SP
  2. Manual de Integração do contribuinte

A descrição dos campos se encontra na página 7 do manual do layout TXT, e você deve comparar com a descrição do manual de integração do contribuinte, onde os campos são detalhados no Anexo I, a partir da página 148, do manual do contribuinte. Por exemplo, os dados do emitente são descritos na seguinte linha no layout TXT:

C|XNome|XFant|IE|IEST|IM|CNAE|CRT|

No manual do contribuinte você encontra a seção com a mesma letra “C – Identificação do Emitente da Nota Fiscal eletrônica” na página 153 onde você encontra a descrição de cada campo (xNome, xFant, IE, IEST, IM, CNAE e CRT). Faça o mesmo com o restante dos campos (veja que você pode omitir vários campos) e você poderá submeter o arquivo para autorização.

No momento a API está preparada para aceitar uma NFe por arquivo. Para submeter várias NFes basta realizar uma chamada na API para cada arquivo.

API para envio de NFSe: exemplo em PHP

Para poder emitir uma NFSe usando a linguagem PHP você precisa de apenas duas extensões PECL, que são:

  1. Parser do formato YAML: http://www.php.net/manual/en/book.yaml.php. Você irá precisar de apenas duas funções:
    yaml_emit($arr) – Devolve $arr convertido em uma string no formato YAML
    yaml_parse($str) – Devolve um array PHP a partir de uma string $str que está no formato YAML
  2. Biblioteca para envio de requisições HTTP:  http://www.php.net/manual/en/book.http.php

Abaixo segue um exemplo de envio e consulta de NFSe usando estas bibliotecas. O formato do arquivo é único para todas as cidades. Algumas cidades podem exigir mais ou menos campos (consulte documentação). No exemplo abaixo consideramos os campos necessários para a cidade de São Paulo.

Para executar o exemplo, salve em um arquivo “exemplo.php” no seu computador, instale as bibliotecas acima e altere o token de acesso no programa (variável $TOKEN). Em seguida, execute:

 
php exemplo.php
<?php

# Você deve definir isso globalmente para sua aplicação
$SERVER = "http://producao.acrasnfe.acras.com.br";
$TOKEN = "token_recebido_do_suporte";

$nfse = array(
  "data_emissao" => '2013-05-31,',
  "prestador" => array(
    "cnpj" => '06901848000133',
    "inscricao_municipal" => '080204613599',
    "codigo_municipio" => '4106902'
  ),
  "servico" => array(
    "aliquota" => '0.05',
    "base_calculo" => '1.0',
    "discriminacao" => "Servico de hospedagem de sites",
    "iss_retido" => "2",
    "item_lista_servico" => "06939",
    "valor_iss" => '0.5',
    "valor_liquido" => '1.0',
    "valor_servicos" => '1.0'
  ),
  "tomador" => array(
    "cpf" => '03055054912',
    "endereco" => array(
      "bairro" => 'Centro',
      "cep" => "80000000",
      "codigo_municipio" => "4106902",
      "logradouro" => "Rua Emiliano Perneta",
      "numero" => "845",
      "uf" => 'PR',
    ),
    "razao_social" => "Egon Hilgenstieler"
  )
);

print("=> Teste de envio\n");

$r = new HttpRequest($SERVER."/nfse", HttpRequest::METH_POST);
$r->addQueryData(array('token' => $TOKEN));
# A referência é uma string que identifica univocamente uma NFSe e
# será usada para consultas posteriores
$r->addQueryData(array('ref' => '1234'));
$yaml = yaml_emit($nfse);
$r->addRawPostData($yaml);

try {
    $r->send();
    $status = $r->getResponseCode();
    $body = $r->getResponseBody();
    print("Status = $status\n");
    print("Body = $body\n");
} catch (HttpException $ex) {
    echo $ex;
}

print("=> Teste de consulta\n");

# O processo de envio de NFSe é assíncrono, e pode ser necessário
# aguardar até que a nota seja processada
sleep(10);

$r = new HttpRequest($SERVER."/nfse/1234", HttpRequest::METH_GET);
$r->addQueryData(array('token' => $TOKEN));

try {
    $r->send();
    $status = $r->getResponseCode();
    $body = $r->getResponseBody();
    print("Status = $status\n");
    print("Body = $body\n");
    $result = yaml_parse($body);
    var_dump($result);

} catch (HttpException $ex) {
    echo $ex;
}

?>

API para envio de CCe – Carta de Correção eletrônica

Para integrar as operações de emissão e consulta de uma CCe (Carta de Correção eletrônica) de uma NFe à sua aplicação você pode utilizar nossa API web. Aqui assumimos que você emitiu a NFe usando nossa API de envio de NFe.

Emissão de CCe

Utilize o seguinte serviço:

POST /nfe2/emitir_cce?token=TOKEN&ref=REFERENCIA

Onde TOKEN e REFERENCIA são o token de acesso e a referência utilizada para criar a NFe. Este serviço aceita os seguintes parâmetros adicionais:

  • correcao – Contem a correção a ser aplicada à NFe (mínimo de 15 e máximo de 1000 caracteres). É o único campo obrigatório.
  • data_evento – Data no formato ISO (exemplo ‘2012-03-30T14:35:00-03:00’) com a data da correção. Caso este campo não seja informado será usado a data atual
  • numero_sequencial_evento – Uma NFe pode conter 20 cartas de correções (sendo que a última substitui todas as outras) sendo que cada uma possui um número sequencial. Este campo força a utilização do respectivo número. Caso este campo não seja informado, o sistema irá calcular automaticamente a próxima sequência

O serviço é assíncrono assim como a emissão de NFe, ou seja, a solicitação será enfileirada e sua aplicação deverá posteriormente consultar o status da CCe.

Consulta de CCe

Utilize o seguinte serviço:

GET /nfe2/consultar_cce?token=TOKEN&ref=REFERENCIA

Onde TOKEN e REFERENCIA são o token de acesso e a referência utilizada para criar a NFe. Este serviço aceita os seguintes parâmetros adicionais:

  • numero_sequencial_evento – Este campo consulta apenas a CCe indicada pelo seu número sequencial. Caso este campo não seja informado, o sistema irá informar a situação da última CCe desta NFe

O sistema irá devolver a situação da CCe em formato YAML, abaixo um exemplo de uma CCe emitida em duplicidade:

---
status: erro_autorizacao
chave_nfe: NFe41131006059934000185550010000027751019556666
status_sefaz: "573"
numero_sequencial_evento: 1
mensagem_sefaz: Duplicidade de Evento. ID1101104113100605993400018555001000002775101955776666

Abaixo um exemplo de uma CCe autorizada corretamente:

---
status: autorizado
chave_nfe: NFe41131006059934000185550010000027751019556666
numero_sequencial_evento: 1
caminho_xml: /arquivos/99999999000199/201310/XMLs/41131006059934000185550010000027751019556666-cce-01.xml
caminho_pdf: /notas_fiscais/NFe41131006059934000185550010000027751019556666/cartas_correcao/1.pdf

 

 

Entendendo a Redução Z – Desconto e Cancelamento de ICMS

Em sistemas que utilizam a impressora fiscal, quando é feita a emissão da Redução Z, diversos campos com nomes incomuns são impressos, isto pode gerar algumas confusões.z

É o caso do Desconto de ICMS e do Cancelamento de ICMS. Estes nomes podem gerar a impressão de que se trata de um desconto ou cancelamento de imposto a se pagar. A confusão fica ainda maior quando trata-se de uma loja optante pelo Simples Nacional, onde não há destaque de imposto no Cupom Fiscal. Ora, se não há destaque do imposto, como pode haver desconto ou cancelamento?

Pois bem, o campo Desconto de ICMS refere-se aos descontos das vendas em si e não do imposto, da mesma forma que Cancelamento de ICMS refere-se às vendas canceladas. Os nomes corretos desses campos talvez pudessem ser Desconto nas Vendas onde há incidência de ICMS e Cancelamento de Vendas onde há incidência de ICMS, mas seriam nomes muito longos.

Na prática, se ocorrer uma venda de R$100,00 e for aplicado um desconto de R$10,00, os 10 reais serão adicionados ao Desconto de ICMS. Se ocorrer uma venda de R$ 100 que é posteriormente cancelada, os R$ 100 serão adicionados ao Cancelamento de ICMS.

API v3 para emissão de Nota Fiscal de Serviço Eletrônica (NFSe)

Infelizmente as prefeituras não adotam um padrão único para emissão de Notas Fiscais de Serviço (NFSe), apesar de existir uma recomendação da ABRASF, cada cidade é livre para decidir o padrão que achar melhor, tornando difícil o trabalho de quem precisa fazer a integração de seu cidade com múltiplas cidades. Para contornar este problema, estamos desenvolvendo a versão 3 de nossa API para emissão de NFSe, que tentará ser o mais homogênea possível, atendendo ao maior número de cidades com um mínimo de mudanças. Abaixo descrevemos o formato de comunicação desta API. A API irá utilizar o padrão REST de comunicação via HTTP, as 3 chamadas possíveis da API são exemplificadas abaixo:

  • POST /nfse?ref=REFERENCIA&token=TOKEN – Submete uma nova NFSe para autorização
  • GET /nfse/REFERENCIA?token=TOKEN – Recupera informações sobre a NFSe
  • DELETE /nfse/REFERENCIA?token=TOKEN  – Cancela uma NFSe

Onde REFERENCIA é a referência do objeto do sistema original (por exemplo, o identificador do banco de dados) e TOKEN é o token de acesso fornecido na contratação do sistema. O token é utilizado para identificar a empresa prestadora do serviço.

Submissão de NFSe

A submissão de uma NFSe irá conter no seu corpo um arquivo YAML descrevendo os dados da nota. Todos os campos são descritos abaixo e as diferenças entre as cidades comentadas. Os campos denotados com (*) são obrigatórios.

  • data_emissao (*): Data/hora de emissão da NFSe. Alguns municípios como São Paulo não utilizam hora e ela será descartada caso seja fornecida.
  • status: Status da NFS-e, informar 1 – Normal ou 2 – Cancelado. (Valor padrão: 1).
  • natureza_operacao: Natureza da operação. Informar um dos códigos abaixo. Campo ignorado para o município de São Paulo. 1 – Tributação no município 2 – Tributação fora do município 3 – Isenção 4 – Imune 5 – Exigibilidade suspensa por decisão judicial 6 – Exigibilidade suspensa por procedimento administrativo (Valor padrão: 1)
  • regime_especial_tributacao: Informar o código de identificação do regime especial de tributação conforme abaixo. Campo ignorado para o município de São Paulo. 1 – Microempresa municipal 2 – Estimativa 3 – Sociedade de profissionais 4 – Cooperativa 5 – MEI – Simples Nacional 6 – ME EPP – Simples Nacional
  • optante_simples_nacional(*): Informar verdadeiro ou falso se a empresa for optante pelo Simples Nacional. Campo ignorado pelo município de São Paulo.
  • incentivador_cultural: Informe verdadeiro ou falso. Valor padrão: falso. Campo ignorado para o município de São Paulo.
  • tributacao_rps: Usado apenas pelo município de São Paulo. Informe o tipo de tributação: 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). (Valor padrão “T”)
  • servico:
    • valor_servicos(*): Valor dos serviços.
    • valor_deducoes: Valor das deduções.
    • valor_pis: Valor do PIS.
    • valor_cofins: Valor do COFINS.
    • valor_inss: Valor do INSS.
    • valor_ir: Valor do IS.
    • valor_csll: Valor do CSLL
    • iss_retido(*): Informar verdadeiro ou falso se o ISS foi retido.
    • valor_iss: Valor do ISS. Campo ignorado pelo município de São Paulo.
    • valor_iss_retido: Valor do ISS Retido. Campo ignorado pelo município de São Paulo.
    • outras_retencoes: Valor de outras retenções.  Campo ignorado pelo município de São Paulo.
    • base_calculo: Base de cálculo do ISS, valor padrão igual ao valor_servicos. Campo ignorado pelo município de São Paulo.
    • aliquota: Aliquota do ISS.
    • desconto_incondicionado: Valor do desconto incondicionado. Campo ignorado pelo município de São Paulo.
    • desconto_condicionado: Valor do desconto incondicionado. Campo ignorado pelo município de São Paulo.
    • item_lista_servico(*): informar o código da lista de serviços, de acordo com a Lei Complementar 116/2003. Utilize outra tabela para o município de São Paulo.
    • codigo_cnae: Informar o código CNAE. Campo ignorado pelo município de São Paulo.
    • codigo_tributario_municipio: Informar o código tributário de acordo com a tabela de cada município (não há um padrão). Campo ignorado pelo município de São Paulo.
    • discriminacao(*): Discriminação dos serviços.
    • codigo_municipio(*): Informar o código IBGE do município de prestação do serviço.
  • prestador:
    • cnpj(*): CNPJ do prestador de serviços.
    • codigo_municipio(*): Código IBGE do município do prestador (consulte lista aqui)
    • inscricao_municipal: Inscrição municipal do prestador de serviços.
  • tomador:
    • cpf(*): CPF do tomador, se aplicável.
    • cnpj(*): CNPJ do tomador, se aplicável.
    • inscricao_municipal: Inscrição municipal do tomador
    • razao_social: Razão social ou nome do tomador
    • endereco:
      • logradouro: Nome do logradouro.
      • tipo_logradouro: Tipo do logradouro. Usado apenas para o município de São Paulo. Valor padrão: os 3 primeiros caracteres do logradouro.
      • numero: Número do endereço.
      • complemento: Complemento do endereço.
      • bairro: Bairro
      • codigo_municipio: código IBGE do município.
      • uf: UF do endereço.
      • cep: CEP do endereço.
    • telefone: Telefone do tomador. Campo ignorado para o município de São Paulo.
    • email: Email do tomador.
  • intermediario (esta seção é ignorada pelo município de São Paulo)
    • razao_social: Razão social do intermediário do serviço.
    • cpf: CPF  do intermediário do serviço, se aplicável.
    • cnpj: CNPJ  do intermediário do serviço, se aplicável.
    • inscricao_municipal: Inscrição municipal  do intermediário do serviço, se aplicável.
  • codigo_obra: Código da obra quando construção civil. Este campo é ignorado pelo município de São Paulo.
  • art: Código ART quando construção civil. Este campo é ignorado pelo município de São Paulo.

Exemplo de um arquivo YAML:

data_emissao: 2013-05-31T12:00:00-03:00
incentivador_cultural: false
natureza_operacao: "1"
optante_simples_nacional: false
prestador: 
 cnpj: 06901848000133
 inscricao_municipal: 080204613599
 codigo_municipio: 4106902
servico: 
 aliquota: 0.05
 base_calculo: 200.0
 discriminacao: "Servico de hospedagem de sites"
 iss_retido: "2"
 item_lista_servico: "801"
 valor_iss: 10.0
 valor_liquido: 200.0
 valor_servicos: 200.0
status: "1"
tomador: 
 cpf: 03055054912
 endereco: 
   bairro: Centro
   cep: "80000000"
   codigo_municipio: "4106902"
   logradouro: "Rua Emiliano Perneta"
   numero: "845"
   uf: PR
 razao_social: "Egon Hilgenstieler"

Consulte o suporte técnico para possíveis exceções no seu município.

Consulta

Após a emissão, a consulta da situação do processamento poderá ser feita em um segundo momento para obter as informações da NFSe gerada ou dos erros de processamento. O retorno é também em formato YAML. Parâmetros:

  • token: O token secreto de sua empresa
  • ref: Número da referência

Exemplo de chamada e retorno:

GET /nfse/<REFERECIA>?token=<seu_token>

uri: https://nfe.prefeitura.sp.gov.br/contribuinte/notaprint.aspx?inscricao=112312&nf=14&verificacao=P2UJ4QGT
codigo_verificacao: P2UJ4QGT
data_emissao: 2012-08-12 03:00:00 Z
numero: "14"
status: autorizado

Retorno: HTTP status 200 (Ok) ou HTTP status 404 (Not Found) se não encontrada NFSe associada a referência Campos de retorno:

  • uri: Endereço disponibilizado pela prefeitura para visualização da NFSe
  • codigo_verificacao: Código de verificação da NFSe
  • data_emissao: Data de emissão
  • numero: Número da NFSe
  • status: “autorizado” se a NFSe foi emitida com sucesso ou “erro_autorizacao” caso contrário
  • erros: Array de mensagens de erro caso a nota fiscal não tenha sido emitida com sucesso.

API para envio de NFe

Para integrar as operações de autorização, consulta e cancelamento de NFe à sua aplicação você pode utilizar nossa API web. Caso você esteja desenvolvendo uma aplicação desktop em ambiente Windows, o comunicador por arquivo pode ser uma solução mais natural. Em outros casos a API descrita neste post poderá ser utilizada.

Para testar todas as operações envolvendo a NFe, não é necessário implementar nenhuma linha de código, todos os testes podem ser efetuados com o programa cURL que pode ser baixado em plataformas Linux, Windows ou MacOS. O comando cURL serve para efetuar chamadas HTTP GET ou POST, necessários para esta API. Neste post demonstraremos o uso da API com este comando.

Autenticação

A autenticação para os comandos da API será feita através de um token, que será fornecido pelo nosso suporte. Esse token deverá ser enviado em todas as solicitações da API. Será utilizado um token diferente para o ambiente de homologação e de produção.

Referência

Para identificar uma NFe no sistema, deverá ser fornecida uma referência única que irá representar a NFe no seu sistema. Esta referência pode ser qualquer cadeia de caracteres, como por exemplo o identificador da chave primária de seu banco de dados. Não recomendamos que você utilize a numeração da NFe, pois isto nosso sistema irá controlar automaticamente.

Operação Envio de NFe

Para enviar uma NFe, você deverá utilizar as seguintes URLs, para os ambientes de homologação e produção, respectivamente:

POST http://homologacao.acrasnfe.acras.com.br/nfe2/autorizar?token=TOKEN&ref=REFERENCIA

POST http://producao.acrasnfe.acras.com.br/nfe2/autorizar?token=TOKEN&ref=REFERENCIA

Onde REFERENCIA e TOKEN devem ser substituídos pelo identificador único da NFe e pelo seu token de acesso. Como conteúdo do POST deve ser enviado um texto contendo uma representação da NFe a ser autorizada no formato YAML que tem suporte a diversas linguagens de programação.

Consulte a documentação do arquivo de envio de NFe para referência dos campos da NFe. Talvez seja necessário um auxílio do departamento contábil de sua empresa para que você determine a natureza de operação, CFOP e cálculos de impostos de acordo com as operações usuais de sua empresa. Se o seu sistema já estava integrado com o emissor de NFe do SEFAZ de SP, você poderá aproveitar e usar o mesmo formato.

Abaixo mostramos um exemplo de arquivo, em uma operação remessa:

---
natureza_operacao: Remessa
forma_pagamento: 0
data_emissao: 2013-04-15
data_entrada_saida: 2013-04-15
tipo_documento: 1
finalidade_emissao: 1
cnpj_emitente: SEU_CNPJ
nome_emitente: Sua Razão Social Ltda
nome_fantasia_emitente: Fantasia do Emitente
logradouro_emitente: Rua Quinze de Abril
numero_emitente: 999
bairro_emitente: Jd Paulistano
municipio_emitente: São Paulo
uf_emitente: SP
cep_emitente: 01454-600
inscricao_estadual_emitente: SUA_INSCRICAO_ESTADUAL
nome_destinatario: NF-E EMITIDA EM AMBIENTE DE HOMOLOGACAO - SEM VALOR FISCAL
cpf_destinatario: 03055054911
inscricao_estadual_destinatario:
telefone_destinatario: 1196185555
logradouro_destinatario: Rua São Januário
numero_destinatario: 99
bairro_destinatario: Crespo
municipio_destinatario: Manaus
uf_destinatario: AM
pais_destinatario: Brasil
cep_destinatario: 69073178
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: 47.23
valor_produtos: 47.23
valor_ipi: 0
modalidade_frete: 0
items:
- numero_item: 1
  codigo_produto: 1232
  descricao: Cartões de Visita
  cfop: 5923
  unidade_comercial: un
  quantidade_comercial: 100
  valor_unitario_comercial: 0.4723
  valor_unitario_tributavel: 0.4723
  unidade_tributavel: un
  codigo_ncm: 49111090
  quantidade_tributavel: 100
  valor_bruto: 47.23
  icms_situacao_tributaria: 41
  icms_origem: 0
  pis_situacao_tributaria: 07
  cofins_situacao_tributaria: 07

Em ambiente de homologação, o campo nome_destinatario deve ser obrigatoriamente NF-E EMITIDA EM AMBIENTE DE HOMOLOGACAO – SEM VALOR FISCAL. Caso contrário a nota será rejeitada pelo SEFAZ.

Para testar a autorização da NFe, você pode salvar o arquivo de exemplo com o nome remessa.yml e executar o seguinte comando em seu computador:

curl -T remessa.yml 'http://homologacao.acrasnfe.acras.com.br/fe2/autorizar?token=TOKEN&ref=1'

Substituindo o campo TOKEN e lembrando de incrementar a referência caso deseje fazer mais de um teste. Caso o comando seja executado com sucesso, o comando curl não irá gerar nenhuma saída.

Após o envio da NFe, ela irá ser processada de forma assíncrona, ou seja, as requisições serão aceitas imediatamente e enfileiradas para processamento. A NFe poderá ser autorizada em poucos segundos, dependendo da quantidade de requisições.

Operação de Consulta

Após o envio, você poderá consultar o status do processamento, que poderá informar algum erro de validação ou as informações referente a autorização da NFe. As URLs dos ambientes de homologação e produção são:

GET http://homologacao.acrasnfe.acras.com.br/nfe2/consultar?token=TOKEN&ref=REFERENCIA
GET http://producao.acrasnfe.acras.com.br/nfe2/consultar?token=TOKEN&ref=REFERENCIA

Por exemplo, se substituirmos no arquivo remessa.yml o campo “data_emissao” para o ano de 2012, podemos testar uma rejeição de NFe usando o comando abaixo, supondo que a referência tenha sido enviada anteriormente como ‘1’:

curl 'http://producao.acrasnfe.acras.com.br/nfe2/consultar?token=TOKEN&ref=1'

O resultado de uma chamada desta URL também virá no formato YAML, conforme abaixo:

---
mensagem_sefaz: "Rejeição: Data de Emissão muito atrasada"
status_sefaz: "228"
status: erro_autorizacao

Para testar uma autorização de NFe, devemos alterar o campo data_emissao e data_entrada_saida para o dia atual e em seguida enviar a NFe:

curl -T remessa.yml 'http://homologacao.acrasnfe.acras.com.br/fe2/autorizar?token=TOKEN&ref=2'

Se consultarmos o status imediatamente depois do envio:

curl 'http://producao.acrasnfe.acras.com.br/nfe2/consultar?token=TOKEN&ref=2'

Podemos obter o resultado:

---
status: processando_autorizacao

Que significa que a nota ainda não foi processada completamente. Após a autorização receberemos uma saída conforme o exemplo abaixo:

---
serie: "1"
chave_nfe: NFe35130413555994000154550010000000021150496225
numero: "2"
mensagem_sefaz: Autorizado o uso da NF-e
status_sefaz: "100"
caminho_xml_nota_fiscal: /arquivos_development/SEU_CNPJ/201304/XMLs/35130413555994000154550010000000021150496225-nfe.xml
caminho_danfe: /arquivos_development/SEU_CNPJ/201304/DANFEs/35130413555994000154550010000000021150496225.pdf
status: autorizado

O caminho do XML e da DANFE são relativos a partir do endereço do servidor utilizado. No exemplo acima a DANFE poderá ser acessada no endereço:

http://homologacao.acrasnfe.acras.com.br/arquivos_development/SEU_CNPJ/201304/DANFEs/35130413555994000154550010000000021150496225.pdf

Operação de Cancelamento

A NFe poderá ser cancelada até 24 horas depois da emissão. Alguns estados permitem um prazo maior para o cancelamento, verifique os detalhes junto com o SEFAZ do seu estado. Para cancelar uma NFe, utilize os seguintes endereços de homologação e produção:

POST http://homologacao.acrasnfe.acras.com.br/nfe2/cancelar?token=TOKEN&ref=REFERENCIA
POST http://producao.acrasnfe.acras.com.br/nfe2/cancelar?token=TOKEN&ref=REFERENCIA

Sendo necessário informar a justificativa do cancelamento no campo “justificativa” do POST. Para testar o cancelamento da referência “2” do exemplo anterior podemos executar:

curl -F 'justificativa=CNPJ do destinatario incorreto' 'http://homologacao.acrasnfe.acras.com.br/nfe2/cancelar?token=TOKEN&ref=2'

Este comando irá colocar o cancelamento na fila de processamento, após alguns segundos você poderá consultar se o cancelamento foi efetuado corretamente com a mesma operação “Consultar”:

curl 'http://producao.acrasnfe.acras.com.br/nfe2/consultar?token=TOKEN&ref=2'

Que fornecerá um resultado como abaixo:

---
chave_nfe: NFe35130413555994000154550010000000021150496225
status_sefaz: "135"
status: cancelado
caminho_xml_cancelamento: /arquivos_development/SEU_CNPJ/201304/XMLs/35130413555994000154550010000000021150496225-can.xml
mensagem_sefaz: Evento registrado e vinculado a NF-e
caminho_xml_nota_fiscal: /arquivos_development/SEU_CNPJ/201304/XMLs/35130413555994000154550010000000021150496225-nfe.xml

Note que após o cancelamento a DANFE deixa de existir e não poderá mais ser salva.

Operação de Envio e Consula de Carta de Correção eletrônica

Uma Carta de Correção eletrônica (CCe) pode ser utilizada para corrigir eventuais erros na NFe. As seguintes informações não podem ser corrigidas:

  1. As variáveis que determinam o valor do imposto tais como: base de cálculo, aliquota, diferença de preço, quantidade, valor da operação ou da prestação;
  2. A correção de dados cadastrais que implique mudança do remetente ou do destinatário;
  3. A data de emissão ou de saída.

Não existe prazo especificado para emissão de cartas de correção. É possível enviar até 20 correções diferentes, sendo que será válido sempre a última correção enviada. Os endereços são:

Envio:

POST http://homologacao.acrasnfe.acras.com.br/nfe2/emitir_cce?token=TOKEN&ref=REFERENCIA
POST http://producao.acrasnfe.acras.com.br/nfe2/emitir_cce?token=TOKEN&ref=REFERENCIA

Sendo necessário informar a correção da NFe no campo “correcao” do POST. A correção é um texto livre, sem quebras de linha. Exemplo:

curl -F 'correcao=O CEP correto do destinatario é 80210200' 'http://homologacao.acrasnfe.acras.com.br/nfe2/emitir_cce?token=TOKEN&ref=1'

Para consultar o resultado do processamento, utilizamos outras URLs:

GET http://homologacao.acrasnfe.acras.com.br/nfe2/consultar_cce?token=TOKEN&ref=REFERENCIA
GET http://producao.acrasnfe.acras.com.br/nfe2/consultar_cce?token=TOKEN&ref=REFERENCIA

Exemplo:

curl 'http://homologacao.acrasnfe.acras.com.br/nfe2/consultar_cce?token=TOKEN&ref=1'

Cujo resultado será algo como:

---
chave_nfe: NFe35130413555994000154550010000000011319749231
status: autorizado
caminho_xml: /arquivos_development/SEU_CNPJ/201304/XMLs/35130413555994000154550010000000011319749231-cce-01.xml
caminho_pdf: /notas_fiscais/NFe35130413555994000154550010000000011319749231/cartas_correcao/1.pdf
numero_sequencial_evento: 1

Operação de Envio e Consula de Inutilização de Numeração

Em uma situação normal você não precisará informar ao SEFAZ a inutilização de um número da NFe pois a API controla automaticamente a numeração das notas. Porém, se por alguma situação específica for necessário a inutilização de alguma faixa de números você poderá chamar as seguintes operações:

Envio de inutilização de faixa de numeração:

POST http://homologacao.acrasnfe.acras.com.br/nfe2/inutilizar_numeracao?token=TOKEN
POST http://producao.acrasnfe.acras.com.br/nfe2/inutilizar_numeracao?token=TOKEN

A inutilização precisa dos seguintes parâmetros obrigatórios:

  • cnpj – CNPJ da empresa emitente
  • serie –  Série da numeração da NFe que terá uma faixa de numeração inutilizada
  • numero_inicial – Número inicial a ser inutilizado
  • numero_final – Número final a ser inutilizado
  • justificativa – Justificativa da inutilização (mínimo 15 caracteres)

Exemplo:

curl -F 'justificativa=Erro no envio para o SEFAZ' -F cnpj=SEU_CNPJ -F serie=1 -F numero_inicial=231 -F numero_final=231 'http://homologacao.acrasnfe.acras.com.br/nfe2/emitir_cce?token=TOKEN&ref=1'

Para consultar o resultado do processamento, utilizamos outras URLs:

GET http://homologacao.acrasnfe.acras.com.br/nfe2/consultar_inutilizacao_numeracao?token=TOKEN
GET http://producao.acrasnfe.acras.com.br/nfe2/consultar_inutilizacao_numeracao?token=TOKEN&ref=REFERENCIA

A consulta precisa dos mesmos parâmetros utilizados para inutilização, com exceção do campo ‘justificativa’.

Exemplo:

curl -F cnpj=SEU_CNPJ -F serie=1 -F numero_inicial=231 -F numero_final=231 'http://homologacao.acrasnfe.acras.com.br/nfe2/consultar_inutilizacao_numeracao?token=TOKEN'

Cujo resultado será algo como:

--- 
serie: "1"
numero_inicial: "231"
status: autorizado
caminho_xml: /arquivos_development/SEU_CNPJ/201404/XMLs/147762335300017255001000000901000000902-inu.xml
numero_final: "902"

Com isso finalizamos uma visão geral de todas as operações envolvendo a NFe, caso tenha alguma dúvida, não hesite em contatar nosso suporte no e-mail suporte@acras.com.br

 

Como emitir NFe pelo Focus Lojas

Sua loja também pode emitir NFe  (Nota Fiscal Eletrônica) das vendas emitidas pelo Focus Lojas. Para contratar o serviço, entre em contato com o nosso departamento comercial no e-mail contato@acras.com.br.

A configuração do serviço é fácil, basta entrar no PDV no menu Configurações -> Sistema -> Fiscal.

Ali você deverá marcar a opção “Utiliza módulo NFe” e preencher os campos:

  • Token para acesso: É como você se identificará no sistema, este campo será fornecido pelo suporte após a habilitação do sistema
  • URL: Preencha com http://producao.acrasnfe.acras.com.br
  • NCM – Capítulo padrão: Caso você utilize um capítulo NCM que seja compartilhado com todos os produtos, você pode preencher aqui (são apenas 2 dígitos)
  • CFOP: Preencha cada código fiscal de operação que você precisa utilizar para cada operação. Caso tenha dúvidas, seu contador poderá lhe informar os dados corretos.
Caso você tenha algum produto que fuja a regra, você poderá configurar CFOP’s e NCM’s específicos no cadastro de produto do retaguarda, na aba “Configurações”.
A NFe pode ser emitida no PDV após a realização da venda. Entre em Vendas -> Editar Vendas e busque a venda desejada. Selecionando a venda e clicando em “Ações” você visualiza as opções da NFe, para enviar uma nota, selecione “Emitir NFe” e pronto!

 

Qual certificado digital comprar?

Uma dúvida muito frequente entre nossos clientes é a escolha do certificado digital para emissão de NFe. Existem várias empresas (ex: Certisign e Serasa) que podem realizar a venda deste certificado, o que torna difícil saber qual critério usar para a escolha.

Acreditamos que o melhor critério para escolha do produto seja o preço, uma vez que os produtos entre as empresas são praticamente idênticos.

Neste post, gostaria de listar todos os produtos das empresas Certisign e Serasa que são compatíveis com o Focus NFe. Devemos lembrar que aceitamos apenas o certificado do tipo A1 (que fica instalado no computador e é válido por 1 ano). Nós não suportamos o certificado A3 (que vem instalado em um pendrive ou cartão, válido por 3 anos).

Os produtos são esses, com preços praticados em janeiro/2013:

Certisign:

  • Certificado e-CNPJ A1: R$ 165,00/ano
  • Certificado NFe A1: R$ 250,00/ano

Serasa:

  • Certificado e-CNPJ A1: R$ 187,00/ano
  • Certificado NFe A1: R$ 273,00/ano

É importante notar aqui que, apesar do nome, os certificados chamados de NFe não são de uso obrigatório para emitir NFe. Você pode usar o certificado do tipo e-CNPJ sem problema algum, o produto chamado “Certificado NFe” não tem nenhuma vantagem significativa.

Desta forma, o produto mais vantajoso é o certificado e-CNPJ A1 da Certisign, por R$ 165,00 /ano. Temos contatos com representantes da Certisign, caso precise comprar ou renovar seu certificado, entre em contato conosco.

Devemos realçar que a Acras não possui filiação com nenhuma empresa certificadora e que não recebe nenhuma comissão por indicar qualquer empresa. Temos o compromisso de recomendar apenas os produtos que acreditamos ser o ideal para os nossos clientes. Sempre.

Bem vinda a bordo Lu Namur!

Temos o prazer de receber nossa mais nova integrante da equipe de suporte: Luciana Namur. Trabalhou recentemente na unidade da IBM no Brasil, em Hortolândia, atendendo clientes e parceiros e ajudando na solução de problemas nas 3 Américas. Irá operar a partir da cidade de Ponta Grossa e  irá trabalhar exclusivamente no atendimento a nossos usuários. Seja bem vinda a bordo!

Nossa equipe atual é formada ainda por:

Ricardo Acras: Formado em Ciência da Computação pela UFPR e com MBA em gestão empresarial pela FGV, é o sócio fundador da Acras e o arquiteto por trás dos produtos Focus Lojas e Focus NFe.

 

Egon Hilgenstieler: Mestre em Ciência da Computação pela UFPR, trabalhou durante 8 anos como professor universitário, incluindo na UFPR e hoje aplica seus conhecimentos na área de inovação tecnológica dentro da Acras.