Logo PHP

Emita Nota Fiscal Eletrônica pelo seu sistema PHP utilizando a nossa API

Hoje o PHP é uma das linguagens mais utilizadas no Brasil para o desenvolvimento de aplicações Web, variando desde pequenos Web Sites até ERPs completos. Desenvolvedores utilizam o PHP puro ou, mais usualmente, em conjunto com frameworks.

A emissão de NFe, NFSe ou NFCe utilizando PHP pode ser feita de forma direta através da comunicação sem intermediários com as receitas estaduais ou prefeituras, porém existem inúmeras vantagens em utilizar uma API de terceiros para esta emissão

A Focus NFe possui uma API simples e completa para emissão destes documentos fiscais, abaixo você irá encontrar exemplos funcionais de código-fonte em PHP utilizando a nossa API. Os exemplos são divididos entre duas tecnologias (PECL e CURL). Utilizando PECL o código fica mais limpo e elegante, porém deve-se instalar esta biblioteca em seu servidor, saiba mais sobre o PECL clicando aqui . Já utilizando o CURL o código fica um pouco mais longo mas não é necessária qualquer instalação adicional.

                            
/* Você deve definir isso globalmente para sua aplicação.
Para ambiente de produção utilize e a variável abaixo:
$server = "https://api.focusnfe.com.br"; */
$server = "https://homologacao.focusnfe.com.br";
// Substituir a variável, ref, pela sua identificação interna de nota.
$ref = "12345";
$login = "token_enviado_pelo_suporte";
$password = "";
$nfe = array (
  "natureza_operacao" => "Remessa",
  "data_emissao" => "2017-11-30T12:00:00",
  "data_entrada_saida" => "2017-11-3012:00:00",
  "tipo_documento" => "1",
  "finalidade_emissao" => "1",
  "cnpj_emitente" => "51916585000125",
  "nome_emitente" => "ACME LTDA",
  "nome_fantasia_emitente" => "ACME LTDA",
  "logradouro_emitente" => "R. Padre Natal Pigato",
  "numero_emitente" => "100",
  "bairro_emitente" => "Santa Felicidade",
  "municipio_emitente" => "Curitiba",
  "uf_emitente" => "PR",
  "cep_emitente" => "82320030",
  "inscricao_estadual_emitente" => "101942171617",
  "nome_destinatario" => "NF-E EMITIDA EM AMBIENTE DE HOMOLOGACAO - SEM VALOR FISCAL",
  "cpf_destinatario" => "51966818092",
  "telefone_destinatario" => "1196185555",
  "logradouro_destinatario" => "Rua S\u00e3o Janu\u00e1rio",
  "numero_destinatario" => "99",
  "bairro_destinatario" => "Crespo",
  "municipio_destinatario" => "Manaus",
  "uf_destinatario" => "AM",
  "pais_destinatario" => "Brasil",
  "cep_destinatario" => "69073178",
  "valor_frete" => "0.0",
  "valor_seguro" => "0",
  "valor_total" => "47.23",
  "valor_produtos" => "47.23",
  "modalidade_frete" => "0",
  "items" => array(
    array(
      "numero_item" => "1",
      "codigo_produto" => "1232",
      "descricao" => "Cartu00f5es de Visita",
      "cfop" => "6923",
      "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" => "400",
      "icms_origem" => "0",
      "pis_situacao_tributaria" => "07",
      "cofins_situacao_tributaria" => "07"
    )
  ),
);
// Inicia o processo de envio das informações usando o cURL.
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $server."/v2/nfe?ref=" . $ref);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($nfe));
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt($ch, CURLOPT_USERPWD, "$login:$password");
$body = curl_exec($ch);
$http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
// As próximas três linhas são um exemplo de como imprimir as informações de retorno da API.
print($http_code."\n");
print($body."\n\n");
print("");
curl_close($ch);
                            
                          

                            
/* Você deve definir isso globalmente para sua aplicação.
Para ambiente de produção utilize e a variável abaixo:
$server = "https://api.focusnfe.com.br"; */
$server = "https://homologacao.focusnfe.com.br";
// Substituir a variável, ref, pela sua identificação interna de nota.
$ref = "12345";
$login = "token_enviado_pelo_suporte";
$password = "";
// Inicia o processo de envio das informações usando o cURL.
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $server."/v2/nfe/" . $ref);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, array());
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt($ch, CURLOPT_USERPWD, "$login:$password");
$body = curl_exec($ch);
$http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
// As próximas três linhas são um exemplo de como imprimir as informações de retorno da API.
print($http_code."\n");
print($body."\n\n");
print("");
curl_close($ch);
                            
                          

                            
/* Você deve definir isso globalmente para sua aplicação.
Para ambiente de produção utilize e a variável abaixo:
$server = "https://api.focusnfe.com.br"; */
$server = "https://homologacao.focusnfe.com.br";
// Substituir a variável, ref, pela sua identificação interna de nota.
$ref = "12345";
$login = "token_enviado_pelo_suporte";
$password = "";
$justificativa = array ("justificativa" => "Teste de cancelamento de nota");
// Inicia o processo de envio das informações usando o cURL.
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $server . "/v2/nfe/" . $ref);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "DELETE");
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($justificativa));
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt($ch, CURLOPT_USERPWD, "$login:$password");
$body = curl_exec($ch);
$result = curl_getinfo($ch, CURLINFO_HTTP_CODE);
// As próximas três linhas são um exemplo de como imprimir as informações de retorno da API.
print($http_code."\n");
print($body."\n\n");
print("");
curl_close($ch);
                            
                          

                            
// Você deve definir isso globalmente para sua aplicação
// Para ambiente de produção use a variável abaixo:
// $server = "https://api.focusnfe.com.br";
$server = "https://homologacao.focusnfe.com.br";
// Substituir pela sua identificação interna da nota
$ref = "12345";
$login = "token_enviado_pelo_suporte";
$password = "";
$nfse = array (
  "data_emissao" => "2017-12-27T17:43:14-3:00",
  "incentivador_cultural" => "false",
  "natureza_operacao" => "1",
  "optante_simples_nacional" => "false",
  "prestador" => array(
      "cnpj" => "51916585000125",
      "inscricao_municipal" => "12345",
      "codigo_municipio" => "4119905"
      ),
  "tomador" => array(
    "cnpj" => "07504505000132",
      "razao_social" => "Acras Tecnologia da Informação LTDA",
      "email" => "contato@acras.com.br",
      "endereco" => array(
        "bairro" => "Jardim America",
        "cep" => "81530900",
        "codigo_municipio" => "4119905",
        "logradouro" => "Rua ABC",
        "numero" => "16",
        "uf" => "PR"
       )
  ),
  "servico" => array(
         "discriminacao" => "Exemplo Servi\u00e7o",
         "iss_retido" => "false",
         "item_lista_servico" => "106",
         "codigo_cnae" => "6319400",
         "valor_servicos" => "1.00"
  ),
);
// Inicia o processo de envio das informações usando o cURL
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $server."/v2/nfse?ref=" . $ref);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($nfse));
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt($ch, CURLOPT_USERPWD, "$login:$password");
$body = curl_exec($ch);
$http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
//as três linhas abaixo imprimem as informações retornadas pela API, aqui o seu sistema deverá
//interpretar e lidar com o retorno
print($http_code."\n");
print($body."\n\n");
print("");
curl_close($ch);
                            
                          

                            
// Você deve definir isso globalmente para sua aplicação
//Substituir pela sua identificação interna da nota
$ref = "12345";
$login = "token_enviado_pelo_suporte";
$password = "";
// Para ambiente de produção use a variável abaixo:
// $server = "https://api.focusnfe.com.br";
$server = "https://homologacao.focusnfe.com.br"; // Servidor de homologação
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $server."/v2/nfse/" . $ref);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, array());
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt($ch, CURLOPT_USERPWD, "$login:$password");
$body = curl_exec($ch);
$http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
//as três linhas abaixo imprimem as informações retornadas pela API, aqui o seu sistema deverá
//interpretar e lidar com o retorno
print($http_code."\n");
print($body."\n\n");
print("");
curl_close($ch);
                            
                          

                            
// Você deve definir isso globalmente para sua aplicação
$ch = curl_init();
// Substituir pela sua identificação interna da nota
$ref   = "12345";
// Para ambiente de produção use a variável abaixo:
// $server = "https://api.focusnfe.com.br";
$server = "https://homologacao.focusnfe.com.br";
$justificativa = array ("justificativa" => "Teste de cancelamento de nota");
$login = "token_enviado_pelo_suporte";
$password = "";
curl_setopt($ch, CURLOPT_URL, $server . "/v2/nfse/" . $ref);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "DELETE");
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($justificativa));
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt($ch, CURLOPT_USERPWD, "$login:$password");
$body = curl_exec($ch);
$result = curl_getinfo($ch, CURLINFO_HTTP_CODE);
//as três linhas abaixo imprimem as informações retornadas pela API, aqui o seu sistema deverá
//interpretar e lidar com o retorno
print($result."\n");
print($body."\n\n");
print("");
curl_close($ch);
                            
                          

                            
/* Você deve definir isso globalmente para sua aplicação.
Para ambiente de produção utilize e a variável abaixo:
$server = "https://api.focusnfe.com.br"; */
$server = "https://homologacao.focusnfe.com.br";
// Substituir a variável, ref, pela sua identificação interna de nota.
$ref = "12345";
$login = "token_enviado_pelo_suporte";
$password = "";
$nfe = array (
   "cnpj_emitente" => "51916585000125",
   "data_emissao" => "2017-12-07T12:40:10",
   "indicador_inscricao_estadual_destinatario" => "9",
   "modalidade_frete" => "9",
   "local_destino" => "1",
   "presenca_comprador" => "1",
   "natureza_operacao" => "VENDA AO CONSUMIDOR",
  "itens" => array(
    array(
      "numero_item" => "1",
         "codigo_ncm" => "62044200",
         "quantidade_comercial" => "1.00",
         "quantidade_tributavel" => "1.00",
         "cfop" => "5102",
         "valor_unitario_tributavel" => "1.00",
         "valor_unitario_comercial" => "1.00",
         "valor_desconto" => "0.00",
         "descricao" => "NOTA FISCAL EMITIDA EM AMBIENTE DE HOMOLOGACAO - SEM VALOR FISCAL",
         "codigo_produto" => "251887",
         "icms_origem" => "0",
         "icms_situacao_tributaria" => "102",
         "unidade_comercial" => "un",
         "unidade_tributavel" => "un",
         "valor_total_tributos" => "1.00"
    )
  ),
  "formas_pagamento" => array(
    array(
         "forma_pagamento" => "03",
         "valor_pagamento" => "1.00",
         "nome_credenciadora" => "Cielo",
         "bandeira_operadora" => "02",
         "numero_autorizacao" => "R07242"
     )
  ),
);
// Inicia o processo de envio das informações usando o cURL.
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $server."/v2/nfce?ref=" . $ref);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($nfe));
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt($ch, CURLOPT_USERPWD, "$login:$password");
$body = curl_exec($ch);
$http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
// As próximas três linhas são um exemplo de como imprimir as informações de retorno da API.
print($http_code."\n");
print($body."\n\n");
print("");
curl_close($ch);
                            
                          

                            
/* Você deve definir isso globalmente para sua aplicação.
Para ambiente de produção utilize e a variável abaixo:
$server = "https://api.focusnfe.com.br"; */
$server = "https://homologacao.focusnfe.com.br";
// Substituir a variável, ref, pela sua identificação interna de nota.
$ref = "12345";
$login = "token_enviado_pelo_suporte";
$password = "";
// Inicia o processo de envio das informações usando o cURL.
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $server."/v2/nfce/" . $ref);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, array());
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt($ch, CURLOPT_USERPWD, "$login:$password");
$body = curl_exec($ch);
$http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
// As próximas três linhas são um exemplo de como imprimir as informações de retorno da API.
print($http_code."\n");
print($body."\n\n");
print("");
curl_close($ch);
                            
                          

                            
/* Você deve definir isso globalmente para sua aplicação.
Para ambiente de produção utilize e a variável abaixo:
$server = "https://api.focusnfe.com.br"; */
$server = "https://homologacao.focusnfe.com.br";
// Substituir a variável, ref, pela sua identificação interna de nota.
$ref = "12345";
$login = "token_enviado_pelo_suporte";
$password = "";
$justificativa = array ("justificativa" => "Teste de cancelamento de nota");
// Inicia o processo de envio das informações usando o cURL.
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $server . "/v2/nfce/" . $ref);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "DELETE");
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($justificativa));
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt($ch, CURLOPT_USERPWD, "$login:$password");
$body = curl_exec($ch);
$result = curl_getinfo($ch, CURLINFO_HTTP_CODE);
// As próximas três linhas são um exemplo de como imprimir as informações de retorno da API.
print($http_code."\n");
print($body."\n\n");
print("");
curl_close($ch);
                            
                          

                            
// Você deve definir isso globalmente para sua aplicação.
// Para ambiente de produção use a variável abaixo:
// $server = "https://api.focusnfe.com.br";
$server = "http://homologacao.acrasnfe.acras.com.br";
$token = "token_enviado_pelo_suporte";
// Substituir pela sua identificação interna da nota.
$ref = "12345";
$nfe = array (
    "natureza_operacao" => "Remessa de Produtos",
    "forma_pagamento" => "0",
    "data_emissao" => "2017-07-25T11:00:00-03:00",
    "tipo_documento" => "1",
    "finalidade_emissao" => "1",
    "cnpj_emitente" => "51916585000125",
    "inscricao_estadual_emitente" => "101942171617",
    "nome_destinatario" => "NF-E EMITIDA EM AMBIENTE DE HOMOLOGACAO - SEM VALOR FISCAL",
    "cnpj_destinatario" => "51916585000125",
    "inscricao_estadual_destinatario" => "101942171617",
    "logradouro_destinatario" => "SMAS 6580 PARKSHOPPING",
    "numero_destinatario" => "543",
    "bairro_destinatario" => "Zona Industrial",
    "municipio_destinatario" => "Brasilia",
    "uf_destinatario" => "DF",
    "pais_destinatario" => "Brasil",
    "cep_destinatario" => "71219900",
    "icms_base_calculo" => "0",
    "icms_valor_total" => "0",
    "icms_base_calculo_st" => "0",
    "icms_valor_total_st" => "0",
    "icms_modalidade_base_calculo" => "0",
    "icms_valor" => "0",
    "valor_frete" => "0.0000",
    "valor_seguro" => "0",
    "valor_total" => "2241.66",
    "valor_produtos" => "2241.66",
    "valor_ipi" => "0",
    "modalidade_frete" => "0",
    "informacoes_adicionais_contribuinte" => "Não Incidência ICMS conforme Decisão...",
    "nome_transportador" => "ACME LTDA",
    "cnpj_transportador" => "51916585000125",
    "endereco_transportador" => "RUA CORONEL MARQUES RIBEIRO, 225",
    "municipio_transportador" => "SÃO PAULO",
    "uf_transportador" => "SP",
    "inscricao_estadual_transportador" => "101942171617",
    "items" => array(
        array(
            "numero_item" => "1",
            "codigo_produto" => "9999999",
            "descricao" => "Perfume Polo Black",
            "cfop" => "6949",
            "unidade_comercial" => "un",
            "quantidade_comercial" => "5000",
            "valor_unitario_comercial" => "0.448332",
            "valor_unitario_tributavel" => "0.448332",
            "unidade_tributavel" => "un",
            "codigo_ncm" => "49111090",
            "quantidade_tributavel" => "5000",
            "valor_bruto" => "2241.66",
            "icms_situacao_tributaria" => "102",
            "icms_origem" => "0",
            "pis_situacao_tributaria" => "07",
            "cofins_situacao_tributaria" => "07",
            "ipi_situacao_tributaria" => "53",
            "ipi_codigo_enquadramento_legal" => "999"
            )
        ),
    "volumes" => array(
        array(
            "quantidade" => "2",
            "especie" => "Volumes",
            "peso_bruto" => "36",
            "peso_liquido" => "36"
            )
        ),
    "duplicatas" => array(
        array(
            "numero" => "Pagamento a vista",
            "valor" => "2241.66"
            )
        )
);
// Transforma a váriavel em objeto JSON.
$json = json_encode($nfe);
// Montamos a URL com os parametros globais e adicionamos o arquivo JSON a requisição.
$parametros = new http\QueryString("token=".$token."&ref=".$ref); 
$request = new http\Client\Request("POST", $server."/nfe2/autorizar"); 
$request -> setQuery($parametros); 
$request -> getBody()->append($json); 
// Recomendamos que veja os dados antes do envio e compare com os dados descritos em nossa documentação.
// print($request);
// Aqui fazemos o envio dos dados para API e pegamos os dados de retorno da API.
$client = new http\Client;
$client -> enqueue($request)->send(); 
$resposta = $client->getResponse($request);
// Variáveis de retorno.
$status = $resposta->getResponseStatus();
$http_code = $resposta->getResponseCode();
$mensagem_retorno = $resposta->getBody();
print ($http_code." ".$status."
"); // Mostramos aqui a mensagem de retorno decodificada de JSON para objeto PHP. var_dump (json_decode($mensagem_retorno));

                            
// Você deve definir isso globalmente para sua aplicação.
// Para ambiente de produção use a variável abaixo:
// $server = "https://api.focusnfe.com.br";
$server = "http://homologacao.acrasnfe.acras.com.br";
$token = "token_enviado_pelo_suporte";
// Substituir pela sua identificação interna da nota.
$ref = "12345";
// Montamos a URL com os parametros globais.
$parametros = new http\QueryString("token=".$token); 
$request = new http\Client\Request("GET", $server."/nfse/".$ref); 
$request -> setQuery($parametros); 
// Recomendamos que veja os dados antes do envio e compare com os dados descritos em nossa documentação.
// print($request);
// Aqui fazemos o envio dos dados para API e pegamos os dados de retorno da API.
$client = new http\Client;
$client -> enqueue($request)->send(); 
$resposta = $client->getResponse($request);
// Variáveis de retorno.
$status = $resposta->getResponseStatus();
$http_code = $resposta->getResponseCode();
$mensagem_retorno = $resposta->getBody();
print ($http_code." ".$status."
"); // Mostramos aqui a mensagem de retorno decodificada de JSON para objeto PHP. var_dump (json_decode($mensagem_retorno));

                            
// Você deve definir isso globalmente para sua aplicação.
// Para ambiente de produção use a variável abaixo:
// $server = "https://api.focusnfe.com.br";
$server = "http://homologacao.acrasnfe.acras.com.br";
$token = "token_enviado_pelo_suporte";
// Substituir pela sua identificação interna da nota.
$ref = "12345";
$justificativa = "Teste de justificativa";
// Montamos a URL com os parametros globais.
$parametros = new http\QueryString("token=".$token."&"."ref=".$ref."&"."justificativa=".$justificativa); 
$request = new http\Client\Request("POST", $server."/nfe2/cancelar"); 
$request -> setQuery($parametros); 
// Recomendamos que veja os dados antes do envio e compare com os dados descritos em nossa documentação.
// print($request);
// Aqui fazemos o envio dos dados para API e pegamos os dados de retorno da API.
$client = new http\Client;
$client -> enqueue($request)->send(); 
$resposta = $client->getResponse($request);
// Variáveis de retorno.
$status = $resposta->getResponseStatus();
$http_code = $resposta->getResponseCode();
$mensagem_retorno = $resposta->getBody();
print ($http_code." ".$status."
"); // Mostramos aqui a mensagem de retorno decodificada de JSON para objeto PHP. var_dump (json_decode($mensagem_retorno));

                            
// Você deve definir isso globalmente para sua aplicação.
// Para ambiente de produção use a variável abaixo:
// $server = "https://api.focusnfe.com.br";
$server = "http://homologacao.acrasnfe.acras.com.br";
$token = "token_enviado_pelo_suporte";
// Substituir pela sua identificação interna da nota.
$ref = "12345";
$nfse = array (
  "data_emissao" => "2017-07-25T15:10:00-03:00",
  "incentivador_cultural" => "false",
  "natureza_operacao" => "1",
  "optante_simples_nacional" => "false",
  "status" => "1",
  "prestador" => array (
    "cnpj" => "51916585000125",
    "inscricao_municipal" => "777777",
    "codigo_municipio" => "3518800"
    ),
  "servico" => array (
     "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"
    ),
  "tomador" => array (
    "cpf" => "51966818092",
    "razao_social" => "ACME LTDA",
    "endereco" => array (
      "bairro" => "Centro",
      "cep" => "07040010",
      "codigo_municipio" => "3518800",
      "logradouro" => "Rua Nove de Julho",
      "numero" => "582",
      "uf" => "SP"
      ),
    )
);
// Transforma a váriavel em objeto JSON.
$json = json_encode($nfse);
// Montamos a URL com os parametros globais e adicionamos o arquivo JSON a requisição.
$paramentros = new http\QueryString("token=".$token."&ref=".$ref); 
$request = new http\Client\Request("POST", $server."/nfse"); 
$request -> setQuery($paramentros); 
$request -> getBody()->append($json); 
// Recomendamos que veja os dados antes do envio e compare com os dados descritos em nossa documentação.
// print($request);
// Aqui fazemos o envio dos dados para API e pegamos os dados de retorno da API.
$client = new http\Client;
$client -> enqueue($request)->send(); 
$resposta = $client->getResponse($request);
// Variáveis de retorno.
$status = $resposta->getResponseStatus();
$http_code = $resposta->getResponseCode();
$mensagem_retorno = $resposta->getBody();
print ($http_code." ".$status."
"); // Mostramos aqui a mensagem de retorno decodificada de JSON para objeto PHP. var_dump (json_decode($mensagem_retorno));

                            
// Você deve definir isso globalmente para sua aplicação.
// Para ambiente de produção use a variável abaixo:
// $server = "https://api.focusnfe.com.br";
$server = "http://homologacao.acrasnfe.acras.com.br";
$token = "token_enviado_pelo_suporte";
// Substituir pela sua identificação interna da nota.
$ref = "12345";
// Montamos a URL com os parametros globais.
$parametros = new http\QueryString("token=".$token); 
$request = new http\Client\Request("GET", $server."/nfse/".$ref); 
$request -> setQuery($parametros); 
// Recomendamos que veja os dados antes do envio e compare com os dados descritos em nossa documentação.
// print($request);
// Aqui fazemos o envio dos dados para API e pegamos os dados de retorno da API.
$client = new http\Client;
$client -> enqueue($request)->send(); 
$resposta = $client->getResponse($request);
// Variáveis de retorno.
$status = $resposta->getResponseStatus();
$http_code = $resposta->getResponseCode();
$mensagem_retorno = $resposta->getBody();
print ($http_code." ".$status."
"); // Mostramos aqui a mensagem de retorno decodificada de JSON para objeto PHP. var_dump (json_decode($mensagem_retorno));

                            
// Você deve definir isso globalmente para sua aplicação.
// Para ambiente de produção use a variável abaixo:
// $server = "https://api.focusnfe.com.br";
$server = "http://homologacao.acrasnfe.acras.com.br";
$token = "token_enviado_pelo_suporte";
// Substituir pela sua identificação interna da nota.
$ref = "12345";
$justificativa = "Teste de justificativa";
// Montamos a URL com os parametros globais.
$parametros = new http\QueryString("token=".$token."&"."justificativa=".$justificativa); 
$request = new http\Client\Request("DELETE", $server."/nfse/".$ref); 
$request -> setQuery($parametros); 
// Recomendamos que veja os dados antes do envio e compare com os dados descritos em nossa documentação.
// print($request);
// Aqui fazemos o envio dos dados para API e pegamos os dados de retorno da API.
$client = new http\Client;
$client -> enqueue($request)->send(); 
$resposta = $client->getResponse($request);
// Variáveis de retorno.
$status = $resposta->getResponseStatus();
$http_code = $resposta->getResponseCode();
$mensagem_retorno = $resposta->getBody();
print ($http_code." ".$status."
"); // Mostramos aqui a mensagem de retorno decodificada de JSON para objeto PHP. var_dump (json_decode($mensagem_retorno));

                            
// Você deve definir isso globalmente para sua aplicação.
// Para ambiente de produção use a variável abaixo:
// $server = "https://api.focusnfe.com.br";
$server = "http://homologacao.acrasnfe.acras.com.br";
$token = "token_enviado_pelo_suporte";
// Substituir pela sua identificação interna da nota.
$ref = "12345";
$nfce = array (
    "natureza_operacao" => "Venda ao Consumidor",
    "formas_pagamento" => array(
               array(
               "forma_pagamento"=> "1",
               "valor_pagamento"=> "1.00"
                    )
         ),
    "forma_pagamento" => "0",
    "tipo_documento" => "1",
    "consumidor_final" => "1",
    "finalidade_emissao" => "1",
    "presenca_comprador" => "1",
    "cnpj_emitente" => "51916585000125",
    "cpf_destinatario" => "51966818092",
    "nome_destinatario" => "NF-E EMITIDA EM AMBIENTE DE HOMOLOGACAO - SEM VALOR FISCAL",
    "items"=> array(
		array(
		"numero_item"=> "1",
		"codigo_produto"=> "293656",
		"descricao"=> "NOTA FISCAL EMITIDA EM AMBIENTE DE HOMOLOGACAO - SEM VALOR FISCAL",
		"codigo_ncm"=> "39269090",
		"cfop"=> "5101",
		"unidade_comercial"=> "PC",
		"valor_unitario_comercial"=> "1.00",
		"valor_bruto"=> "1.00",
		"unidade_tributavel"=> "PC",
		"quantidade_tributavel"=> "1.00",
		"quantidade_comercial"=> "1.00",
		"valor_unitario_tributavel"=> "1.00",
		"icms_origem"=> "0",
		"icms_situacao_tributaria"=> "102"
		)
        ),
     "valor_produtos" => "1.00",
     "valor_total" => "1.00",
     "data_emissao" => "2017-07-25T17:28:22-03:00",
     "modalidade_frete" => "9"
);
// Transforma a váriavel em objeto JSON.
$json = json_encode($nfce); 
// Montamos a URL com os parametros globais e adicionamos o arquivo JSON a requisição.
$parametros = new http\QueryString("token=".$token."&ref=".$ref); 
$request = new http\Client\Request("POST", $server."/nfce.json");
$request -> setQuery($parametros); 
$request -> getBody()->append($json); 
// Recomendamos que veja os dados antes do envio e compare com os dados descritos em nossa documentação.
// print($request);
// Aqui fazemos o envio dos dados para API e pegamos os dados de retorno da API. 
$client = new http\Client;
$client -> enqueue($request)->send(); 
$resposta = $client->getResponse($request);
// Variáveis de retorno.
$status = $resposta->getResponseStatus();
$http_code = $resposta->getResponseCode();
$mensagem_retorno = $resposta->getBody();
print ($http_code." ".$status."
"); // Mostramos aqui a mensagem de retorno decodificada de JSON para objeto PHP. var_dump (json_decode($mensagem_retorno));

                            
// Você deve definir isso globalmente para sua aplicação.
// Para ambiente de produção use a variável abaixo:
// $server = "https://api.focusnfe.com.br";
$server = "http://homologacao.acrasnfe.acras.com.br";
$token = "token_enviado_pelo_suporte";
// Substituir pela sua identificação interna da nota.
$ref = "12345";
// Montamos a URL com os parametros globais.
$parametros = new http\QueryString("token=".$token); 
$request = new http\Client\Request("GET", $server."/nfce/".$ref.".json");
$request -> setQuery($parametros); 
// Recomendamos que veja os dados antes do envio e compare com os dados descritos em nossa documentação.
// print($request);
// Aqui fazemos o envio dos dados para API e pegamos os dados de retorno da API.
$client = new http\Client;
$client -> enqueue($request)->send(); 
$resposta = $client->getResponse($request);
// Variáveis de retorno.
$status = $resposta->getResponseStatus();
$http_code = $resposta->getResponseCode();
$mensagem_retorno = $resposta->getBody();
print ($http_code." ".$status."
"); // Mostramos aqui a mensagem de retorno decodificada de JSON para objeto PHP. var_dump (json_decode($mensagem_retorno));

                            
// Você deve definir isso globalmente para sua aplicação.
// Para ambiente de produção use a variável abaixo:
// $server = "https://api.focusnfe.com.br";
$server = "http://homologacao.acrasnfe.acras.com.br";
$token = "token_enviado_pelo_suporte";
// Substituir pela sua identificação interna da nota.
$ref = "12345";
$justificativa = "Teste de justificativa";
// Montamos a URL com os parametros globais.
$parametros = new http\QueryString("token=".$token."&"."justificativa=".$justificativa); 
$request = new http\Client\Request("DELETE", $server."/nfce/".$ref); 
$request -> setQuery($parametros); 
// Recomendamos que veja os dados antes do envio e compare com os dados descritos em nossa documentação.
// print($request);
// Aqui fazemos o envio dos dados para API e pegamos os dados de retorno da API. 
$client = new http\Client;
$client -> enqueue($request)->send(); 
$resposta = $client->getResponse($request);
// Variáveis de retorno.
$status = $resposta->getResponseStatus();
$http_code = $resposta->getResponseCode();
$mensagem_retorno = $resposta->getBody();
print ($http_code." ".$status."
"); // Mostramos aqui a mensagem de retorno decodificada de JSON para objeto PHP. var_dump (json_decode($mensagem_retorno));

Documentação

Nós oferecemos uma REST API com integração em formato JSON para você integrar seu sistema de forma rápida e fácil, independente da linguagem que utiliza.

Todos os dias mais de 1600 empresas contam com a Focus NFe para emitir seus documentos fiscais, conheça algumas delas.

Logo da Magazine Luiza Marketing Place, um Cliente Focus NFe
Logo da ifood, um Cliente Focus NFe
Logo da Survey Monkey, um Cliente Focus NFe
Logo da Printi, um Cliente Focus NFe
Logo da Editora Europa, um Cliente Focus  NFe
Logo da NHS, um Cliente Focus NFe
Logo da Guichê Virtual, um Cliente Focus NFe
Logo da Wpensar, um Cliente Focus NFe
Logo da BierHeld, um Cliente Focus NFe
Logo da Liv Up, um Cliente Focus NFe
Logo da Dress e Go, um Cliente Focus NFe
Logo da Impact Hub, um Cliente Focus NFe

Quer saber mais sobre nossas APIs? Entre em contato conosco!

Entrar em Contato