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 use a variável abaixo:
// $server = "http://producao.acrasnfe.acras.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-26T13:55: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" => "134",
  "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 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"
    )
  ),
);
// Inicia o processo de envio das informações usando o cURL
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $server."/nfe2/autorizar.json?ref=" . $ref . "&token=" . $token);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($nfe));
$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
$token = "token_enviado_pelo_suporte";
//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/nfe2/";
$server = "http://homologacao.acrasnfe.acras.com.br"; // Servidor de homologação
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $server."/nfe2/consultar.json?ref=" . $ref . "&token=" . $token);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, array());
$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
$token = "token_enviado_pelo_suporte";
//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/nfe2/";
$server = "http://homologacao.acrasnfe.acras.com.br";
$justificativa = "Teste_de_Cancelamento_de_nota";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $server. "/nfe2/cancelar?token=" . $token . "&ref=" . $ref . "&justificativa=" . $justificativa);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
$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
// 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-24T13:30:00-03:00",
	"incentivador_cultural" => "false",
	"natureza_operacao" => "1",
	"optante_simples_nacional" => "false",
	"status" => "1",
	"prestador" => array (
		"cnpj" => "51916585000125",
		"inscricao_municipal" => "777777",
		"codigo_municipio" => "4106902"
	),
	"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" => "19900070",
			"codigo_municipio" => "4106902",
			"logradouro" => "Rua Nove de Julho",
			"numero" => "582",
			"uf" => "SP"
		),
	),
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $server . "/nfse" . "?ref=" . $ref . "&token=" . $token);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST,           1);
curl_setopt($ch, CURLOPT_POSTFIELDS,     $nfse);
$http_code = 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($http_code."\n");
print($body."\n\n");
print("");
curl_close($ch);
                            
                          

                            
// Você deve definir isso globalmente para sua aplicação
$ch = curl_init();
$token = "token_enviado_pelo_suporte";
// 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 = "http://homologacao.acrasnfe.acras.com.br";
curl_setopt($ch, CURLOPT_URL, $server . "/nfse/" . $ref . "?token=" . $token);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$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
$ch = curl_init();
$token = "token_enviado_pelo_suporte";
// 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 = "http://homologacao.acrasnfe.acras.com.br";
$justificativa = "Teste de cancelamento de nota";
curl_setopt($ch, CURLOPT_URL, $server . "/nfse/" . $ref . "?token=" . $token . "&justificativa=" $justificativa);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "DELETE");
$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 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-25T13:28:22-03:00",
  "modalidade_frete" => "9"
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $server . "/nfce.json?token=" . $token . "&ref=" . $ref);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($nfce));
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type=> application/json'));
$body = curl_exec($ch);
$http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
print($http_code."\n");
print($body."\n\n");
print("");
$arr_body = json_decode($body, true);
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";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $server."/nfce/" . $ref . ".json?token=" . $token);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, array());
$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
// 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_cancelamento_de_nota";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $server . "/nfce/" . $ref . "?token=" . $token . "&justificativa=" . $justificativa);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "DELETE");
curl_setopt($ch, CURLOPT_HTTPHEADER,     array());
$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.
// 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 1000 empresas contam com a Focus NFe para emitir seus documentos fiscais, conheça algumas delas.

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

Entrar em Contato