API para envio de NFSe: exemplo em PHP

Egon Hilgenstieler

Veja um exemplo em PHP para API para envio de NFSe. Como ele você pode emitir uma NFSe com duas extensões PECL.

Conteúdo

Integração NFe - Documentação

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-31T12:00:00-03:00',
  "natureza_operacao" => '1',
  "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;
}

?>

Quer integrar seu sistema para emissão de NF-e? Clique aqui, acesse nossa documentação e saiba tudo o que você para fazer a integração do seu sistema com a noss API.

Egon Hilgenstieler

Egon Hilgenstieler

CTO e cofundador do Focus NFe, desenvolvedor, professor de yoga e praticante de meditação. Enquanto não está programando, procura a resposta para a vida, para o universo e para tudo mais.

Inscreva-se em nossa newsletter​

Receba nossos conteúdos exclusivos em primeira mão.

Explore outros conteúdos:

Nota Fiscal Complementar: o que é e como fazer essa NF-e?
Nota Fiscal
João Vallim

Nota fiscal complementar: o que é e em quais casos usar

A Nota Fiscal Complementar é um documento utilizado para auxiliar a uma Nota Fiscal emitida que possui erros ou necessita de ajustes de informações.

No entanto, seja para corrigir valores, impostos ou produtos, a NF Complementar, por vezes, causa dúvidas quanto ao seu preenchimento e sua utilidade.

Acompanhe o artigo de hoje e saiba mais sobre como emitir esse documento, como utilizá-lo e outras informações relevantes para evitar confusões.

Leia mais »
CST
Nota Fiscal
Welker Zigante

CST: saiba o que é o Código de Situação Tributária e qual usar!

O termo CST (Código de Situação Tributária) gera muitas dúvidas sobre como aplicá-lo aos negócios. Devido à variedade de siglas, termos e códigos ligados à tributação empresarial, não é difícil que confusões aconteçam.

Por isso, entender o que é o CST e saber qual código usar em cada situação é fundamental para garantir uma gestão otimizada da emissão de notas e outros documentos fiscais.

Acompanhe o nosso artigo de hoje e esclareça suas dúvidas.
Boa leitura!

Leia mais »
nota-tecnica-2015-002
Nota Fiscal
Ludmila Ferreira

Nota Técnica 2015.002: Web Service de distribuição de DF-e

A Nota Técnica 2015.002, publicada em 11 de fevereiro de 2015, trata de alterações relacionadas ao âmbito do Sistema Público de Escrituração Digital (SPED) e da Nota Fiscal Eletrônica (NF-e).

Na prática, foram alteradas regras e erros foram corrigidos no lançamento das diversas versões da Nota Técnica, como abordaremos a seguir.

Leia mais »