Skip to content

Instantly share code, notes, and snippets.

@acras
Created September 6, 2016 02:31
Show Gist options
  • Save acras/5dc6d2bb5f3b8d5cc7c0f690aa531bff to your computer and use it in GitHub Desktop.
Save acras/5dc6d2bb5f3b8d5cc7c0f690aa531bff to your computer and use it in GitHub Desktop.
Exemplo de emissão de NFSe pela API do Focus NFe
<?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;
}
?>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment