├── composer.json
├── exemplos
├── validadeCertificadoA1.php
├── statusSefaz.php
├── inutilizarNumeracao.php
├── cartaCorrecao.php
├── consultaNotaFiscal.php
├── listarClasseImposto.php
├── atualizarEmpresa.php
├── manifestacaoDestinatario.php
├── cancelarNotaFiscal.php
├── notificacoesNotaFiscal.php
├── exportarRelatorios.php
├── devolucaoNotaFiscal.php
├── ajusteNotaFiscal.php
├── complementarNotaFiscal.php
├── criarEditarClasseImposto.php
├── emissaoNotaFiscal-Armamentos.php
├── emissaoNotaFiscal-Medicamento.php
├── emissaoNotaFiscal-VeiculosNovos.php
├── emissaoNotaFiscal-Combustiveis.php
└── emissaoNotaFiscal.php
├── README.md
└── src
└── WebmaniaBR
└── NFe.php
/composer.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "webmaniabr/nfe",
3 | "type": "library",
4 | "version": "3.7.0",
5 | "license": "GPL-3.0-or-later",
6 | "description": "PHP SDK da REST API de Nota Fiscal Eletrônica da WebmaniaBR®",
7 | "keywords": ["notafiscal", "api", "nfe", "nfce", "nota fiscal", "nf-e", "nfc-e", "webmaniabr", "sefaz"],
8 | "homepage": "https://webmaniabr.com/docs/rest-api-nfe/",
9 | "prefer-stable": true,
10 | "require": {
11 | "php": ">=5.2.0"
12 | },
13 | "require-dev": {
14 | "php": ">=5.2.0"
15 | },
16 | "authors": [
17 | {
18 | "name": "Equipe WebmaniaBR",
19 | "email": "suporte@webmaniabr.com"
20 | }
21 | ],
22 | "autoload": {
23 | "psr-0": {
24 | "WebmaniaBR": "src/"
25 | }
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/exemplos/validadeCertificadoA1.php:
--------------------------------------------------------------------------------
1 | validadeCertificado();
8 |
9 | if (!isset($response->error)){
10 |
11 | if ($response > 45){
12 |
13 | echo '
Certificado Digital A1 válido por '.$response.' dias.
';
14 |
15 | } elseif ($response < 45 && $response >= 1){
16 |
17 | echo 'Emita um novo Certificado Digital A1 - vencerá em '.$response.' dias.
';
18 |
19 | } else {
20 |
21 | echo 'Certificado Digital A1 vencido. Emita um novo para continuar operando.
';
22 |
23 | }
24 |
25 | } else {
26 |
27 | echo 'Erro: '.$response->error.'
';
28 | exit();
29 |
30 | }
31 |
--------------------------------------------------------------------------------
/exemplos/statusSefaz.php:
--------------------------------------------------------------------------------
1 | statusSefaz();
16 |
17 | if (!isset($status->error)){
18 |
19 | if ($status){
20 |
21 | echo 'Sefaz: Online
';
22 |
23 | } else {
24 |
25 | echo 'Sefaz: Offline
';
26 |
27 | }
28 |
29 | } else {
30 |
31 | echo 'Erro: '.$status->error.'
';
32 | exit();
33 |
34 | }
35 |
--------------------------------------------------------------------------------
/exemplos/inutilizarNumeracao.php:
--------------------------------------------------------------------------------
1 | inutilizarNumeracao( $sequencia, $motivo, $ambiente, $serie, $modelo );
14 |
15 | if (!isset($response->error)){
16 |
17 | echo 'Resultado da Inutilização:
';
18 |
19 | $xml = (string) $response->xml;
20 | $log = $response->log;
21 |
22 | print_r($response);
23 | exit();
24 |
25 | } else {
26 |
27 | echo 'Erro: '.$response->error.'
';
28 |
29 | if (isset($response->log)){
30 |
31 | echo 'Log:
';
32 | echo '';
33 |
34 | foreach ($response->log as $erros){
35 | foreach ($erros as $erro) {
36 | echo '- '.$erro.'
';
37 | }
38 | }
39 |
40 | echo '
';
41 |
42 | }
43 |
44 | exit();
45 |
46 | }
47 |
--------------------------------------------------------------------------------
/exemplos/cartaCorrecao.php:
--------------------------------------------------------------------------------
1 | cartaCorrecao( $chave_uuid, $correcao, $ambiente, $evento, $url_notificacao );
23 |
24 | /**
25 | * Retorno
26 | */
27 | if (!isset($response->error)){
28 |
29 | echo 'Resultado da Carta de Correção:
';
30 |
31 | $status = (string) $response->status; // aprovado ou reprovado
32 | $xml = (string) $response->xml; // URL do XML
33 | $dacce = (string) $response->dacce; // URL do Danfe (PDF)
34 | $log = $response->log; // Log de retorno do SEFAZ
35 |
36 | print_r($response);
37 | exit();
38 |
39 | } else {
40 |
41 | echo 'Erro: '.$response->error.'
';
42 | exit();
43 |
44 | }
45 |
--------------------------------------------------------------------------------
/exemplos/consultaNotaFiscal.php:
--------------------------------------------------------------------------------
1 | consultaNotaFiscal( $chave_uuid );
20 |
21 | /**
22 | * Retorno
23 | */
24 | if (!isset($response->error)){
25 |
26 | echo 'Resultado da Consulta:
';
27 |
28 | $uuid = (string) $response->uuid; // Número único de identificação da Nota Fiscal
29 | $status = (string) $response->status; // aprovado, reprovado, cancelado, processamento ou contingencia
30 | $nfe = (int) $response->nfe; // Número da NF-e
31 | $serie = (int) $response->serie; // Número de série
32 | $recibo = (int) $response->recibo; // Número do recibo
33 | $chave = $response->chave; // Número da chave de acesso
34 | $xml = (string) $response->xml; // URL do XML
35 | $danfe = (string) $response->danfe; // URL do Danfe (PDF)
36 | $log = $response->log; // Log do Sefaz
37 |
38 | print_r($response);
39 | exit();
40 |
41 | } else {
42 |
43 | echo 'Erro: '.$response->error.'
';
44 | exit();
45 |
46 | }
47 |
--------------------------------------------------------------------------------
/exemplos/listarClasseImposto.php:
--------------------------------------------------------------------------------
1 | classeImposto( array(), 'GET' );
16 |
17 | if (!isset($response->error)){
18 |
19 | echo 'Classe de impostos
';
20 | echo 'Total encontrado: '.count($response).'
';
21 |
22 | if ( is_array($response) && count($response) > 0 ){
23 |
24 | foreach ($response as $classe_imposto){
25 |
26 | $referencia = (string) $classe_imposto->referencia; // Código de referência da Classe de Imposto
27 | $descricao = (string) $classe_imposto->descricao; // Descrição da Classe de Imposto
28 | $data = $classe_imposto->data; // Data da criação da Classe de Imposto
29 |
30 | }
31 |
32 | } else {
33 |
34 | echo 'Nenhuma classe de imposto cadastrada.
';
35 |
36 | }
37 |
38 | print_r($response);
39 | exit();
40 |
41 | } else {
42 |
43 | echo 'Erro: '.$response->error.'
';
44 | exit();
45 |
46 | }
47 |
--------------------------------------------------------------------------------
/exemplos/atualizarEmpresa.php:
--------------------------------------------------------------------------------
1 | '00.000.000/0000-00',
15 | 'razao_social' => 'Nome da empresa LTDA',
16 | 'nome_fantasia' => 'Nome da empresa',
17 | 'ie' => '0000000000',
18 | 'unidade_empresa' => 'matriz',
19 | 'email' => 'email',
20 | 'subdominio' => 'nfe.meudominio.com.br',
21 | 'url_notificacao' => 'http://meudominio.com/retorno.php',
22 | 'logomarca' => 'http://meudominio.com.br/logomarca.jpg'
23 | );
24 |
25 | // Solicita a atualização dos dados
26 | $webmaniabr = new NFe('SEU_CONSUMER_KEY', 'SEU_CONSUMER_SECRET', 'SEU_ACCESS_TOKEN', 'SEU_ACCESS_TOKEN_SECRET');
27 | $response = $webmaniabr->atualizarEmpresa( $data );
28 |
29 | // Retorno
30 | if (!isset($response->error)){
31 |
32 | $sucess = (string) $response->success;
33 |
34 | echo "Resultado da atualização: {$sucess}
";
35 |
36 | exit();
37 |
38 | } else {
39 |
40 | echo 'Erro: '.$response->error.'
';
41 |
42 | if (isset($response->log)){
43 |
44 | echo 'Log:
';
45 | echo '';
46 |
47 | foreach ($response->log as $erros){
48 | foreach ($erros as $erro) {
49 | echo '- '.$erro.'
';
50 | }
51 | }
52 |
53 | echo '
';
54 |
55 | }
56 |
57 | exit();
58 |
59 | }
60 |
--------------------------------------------------------------------------------
/exemplos/manifestacaoDestinatario.php:
--------------------------------------------------------------------------------
1 | manifestacaoDestinatario( $chave, $ambiente, $evento, $justificativa );
22 |
23 | /**
24 | * Retorno
25 | */
26 | if (!isset($response->error)){
27 |
28 | echo 'Resultado da Manifestação do Destinatário:
';
29 |
30 | $uuid = (string) $response->uuid; // // Número único de identificação
31 | $status = (string) $response->status; // aprovado ou reprovado
32 | $evento = (string) $response->evento; // Evento da MDe
33 | $modelo = (string) $response->modelo;
34 | $xml = (string) $response->xml; // URL do XML
35 | $log = $response->log; // Log de retorno do SEFAZ
36 |
37 | print_r($response);
38 | exit();
39 |
40 | } else {
41 |
42 | echo 'Erro: '.$response->error.'
';
43 | exit();
44 |
45 | }
46 |
--------------------------------------------------------------------------------
/exemplos/cancelarNotaFiscal.php:
--------------------------------------------------------------------------------
1 | cancelarNotaFiscal( $chave_uuid, $motivo );
24 |
25 | /**
26 | * Retorno
27 | */
28 | if (!isset($response->error)){
29 |
30 | echo 'Resultado do Cancelamento:
';
31 |
32 | $status = (string) $response->status;
33 | $xml = (string) $response->xml;
34 | $log = $response->log;
35 |
36 | print_r($response);
37 | exit();
38 |
39 | } else {
40 |
41 | echo 'Erro: '.$response->error.'
';
42 |
43 | if (isset($response->log)){
44 |
45 | echo 'Log:
';
46 | echo '';
47 |
48 | foreach ($response->log as $erros){
49 | foreach ($erros as $erro) {
50 | echo '- '.$erro.'
';
51 | }
52 | }
53 |
54 | echo '
';
55 |
56 | }
57 |
58 | exit();
59 |
60 | }
61 |
--------------------------------------------------------------------------------
/exemplos/notificacoesNotaFiscal.php:
--------------------------------------------------------------------------------
1 | '2020-01-01', // Data de início do relatório, formato americano: YYYY-MM-DD
12 | 'data_final' => '2020-01-31', // Data final do relatório, formato americano: YYYY-MM-DD
13 | 'modelo' => 'nfe', // Modelo da Nota Fiscal (nfe, nfce, cce)
14 | 'relatorio' => 'xml', // Relatório a ser exportado (csv, xml, danfe)
15 | 'status' => 'emitidas', // Filtrar status das Notas Fiscais (emitidas, canceladas, denegadas, inutilizadas)
16 | 'url_notificacao' => 'http://meudominio.com/retorno.php' // URL de notificação com retorno da URL para download do Relatório
17 | );
18 |
19 | // Solicita a exportação dos relatórios
20 | $webmaniabr = new NFe('SEU_CONSUMER_KEY', 'SEU_CONSUMER_SECRET', 'SEU_ACCESS_TOKEN', 'SEU_ACCESS_TOKEN_SECRET');
21 | $response = $webmaniabr->exportarRelatorios( $data );
22 |
23 | // Retorno
24 | if (!isset($response->error)){
25 |
26 | $uuid = (string) $response->uuid; // Número único de identificação da Nota Fiscal
27 | $status = (string) $response->status; // processando ou concluido
28 | $data_inicio = (string) $response->data_inicio;
29 | $data_final = (string) $response->data_final;
30 | $modelo = (string) $response->modelo;
31 | $relatorio = (string) $response->relatorio;
32 | $total = (string) $response->total; // Total de resultados encontrados
33 |
34 | if ($status === 'processando') {
35 |
36 | $processado = (string) $response->processado; // Progresso da exportação
37 |
38 | echo 'Relatórios solicitados. Exportação ainda não concluída.
';
39 |
40 | } else {
41 |
42 | $url = (string) $response->url; // URL de download
43 | $expira = (string) $response->expira; // Data de expiração do relatório
44 |
45 | echo 'Exportação concluída com sucesso.
';
46 |
47 | }
48 |
49 | print_r($response);
50 | exit();
51 |
52 | } else {
53 |
54 | echo 'Erro: '.$response->error.'
';
55 |
56 | if (isset($response->log)){
57 |
58 | echo 'Log:
';
59 | echo '';
60 |
61 | foreach ($response->log as $erros){
62 | foreach ($erros as $erro) {
63 | echo '- '.$erro.'
';
64 | }
65 | }
66 |
67 | echo '
';
68 |
69 | }
70 |
71 | exit();
72 |
73 | }
--------------------------------------------------------------------------------
/exemplos/devolucaoNotaFiscal.php:
--------------------------------------------------------------------------------
1 | devolucaoNotaFiscal( $chave_uuid, $natureza_operacao, $ambiente, $codigo_cfop, $classe_imposto, $produtos, $volume, $informacoes_fisco, $informacoes_complementares, $url_notificacao );
26 |
27 | /**
28 | * Retorno
29 | */
30 | if (!isset($response->error)){
31 |
32 | echo 'NF-e de devolução emitida com sucesso.
';
33 |
34 | $uuid = (string) $response->uuid; // Número único de identificação da Nota Fiscal
35 | $status = (string) $response->status; // aprovado, reprovado, cancelado, processamento ou contingencia
36 | $nfe = (int) $response->nfe; // Número da NF-e
37 | $serie = (int) $response->serie; // Número de série
38 | $recibo = (int) $response->recibo; // Número do recibo
39 | $chave = $response->chave; // Número da chave de acesso
40 | $xml = (string) $response->xml; // URL do XML
41 | $danfe = (string) $response->danfe; // URL do Danfe (PDF)
42 | $log = $response->log; // Log do Sefaz
43 |
44 | print_r($response);
45 | exit();
46 |
47 | } else {
48 |
49 | echo 'Erro: '.$response->error.'
';
50 |
51 | if (isset($response->log)){
52 |
53 | echo 'Log:
';
54 | echo '';
55 |
56 | foreach ($response->log as $erros){
57 | foreach ($erros as $erro) {
58 | echo '- '.$erro.'
';
59 | }
60 | }
61 |
62 | echo '
';
63 |
64 | }
65 |
66 | exit();
67 |
68 | }
69 |
--------------------------------------------------------------------------------
/exemplos/ajusteNotaFiscal.php:
--------------------------------------------------------------------------------
1 | 1, // Tipo de Operação da Nota Fiscal
17 | 'natureza_operacao' => 'CREDITO ICMS S/ ESTOQUE', // Natureza da Operação
18 | 'codigo_cfop' => 2.949, // Código CFOP de ajuste
19 | 'valor_icms' => 1000.00, // Valor do ICMS a ser ajustado
20 | 'ambiente' => 2, // Identificação do Ambiente do Sefaz
21 | 'cliente' => array( // Informações do cliente
22 | 'cpf' => '000.000.000-00', // Número do CPF
23 | 'nome_completo' => 'Nome completo', // Nome completo
24 | 'endereco' => 'Av. Brg. Faria Lima', // Endereço de entrega dos produtos
25 | 'complemento' => 'Escritório', // Complemento do endereço de entrega
26 | 'numero' => 1000, // Número do endereço de entrega
27 | 'bairro' => 'Itaim Bibi', // Número do endereço de entrega
28 | 'cidade' => 'São Paulo', // Cidade do endereço de entrega
29 | 'uf' => 'SP', // Estado do endereço de entrega
30 | 'cep' => '00000-000', // CEP do endereço de entrega
31 | 'telefone' => '(00) 0000-0000', //Telefone do cliente
32 | 'email' => 'nome@email.com' // E-mail do cliente para envio da NF-e
33 | )
34 | );
35 |
36 | //Emissão de Nota Fiscal de ajuste
37 | $webmaniabr = new NFe('SEU_CONSUMER_KEY', 'SEU_CONSUMER_SECRET', 'SEU_ACCESS_TOKEN', 'SEU_ACCESS_TOKEN_SECRET');
38 | $response = $webmaniabr->ajusteNotaFiscal( $data );
39 |
40 | // Retorno
41 | if (!isset($response->error)){
42 |
43 | echo 'Ajuste de Nota Fiscal Eletrônica.
';
44 |
45 | $uuid = (string) $response->uuid; // Número único de identificação
46 | $status = (string) $response->status; // aprovado, reprovado, cancelado, processamento ou contingencia
47 | $nfe = (int) $response->nfe; // Número da NF-e
48 | $serie = (int) $response->serie; // Número de série
49 | $recibo = (int) $response->recibo; // Número do recibo
50 | $chave = $response->chave; // Número da chave de acesso
51 | $xml = (string) $response->xml; // URL do XML
52 | $danfe = (string) $response->danfe; // URL do Danfe (PDF)
53 | $log = $response->log; // Log de retorno do SEFAZ
54 |
55 | print_r($response);
56 | exit();
57 |
58 | } else {
59 |
60 | echo ' Erro: '.$response->error.'
';
61 |
62 | if(isset($response->log)){
63 | echo 'Log:
';
64 | echo '';
65 |
66 | foreach($response->log as $errors){
67 | foreach($errors as $erro) {
68 | echo '- '.$erro.'
';
69 | }
70 | }
71 |
72 | echo '
';
73 | }
74 |
75 | exit();
76 |
77 | }
78 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | # NF-e PHP SDK
6 |
7 | Através do emissor de Nota Fiscal da Webmania®, você conta com a emissão e arquivamento das suas notas fiscais, cálculo automático de impostos, geração do Danfe para impressão e envio automático de e-mails para os clientes. Realize a integração com o seu sistema utilizando a nossa REST API.
8 |
9 | - Emissor de Nota Fiscal Webmania®: [Saiba mais](https://webmaniabr.com/nota-fiscal-eletronica/)
10 | - Documentação REST API: [Visualizar](https://webmaniabr.com/docs/rest-api-nfe/)
11 |
12 | ## Requisitos
13 |
14 | - Contrate um dos planos de Nota Fiscal Eletrônica da Webmania®: [Assine agora](https://webmaniabr.com/nota-fiscal-eletronica/#plans-section).
15 | - Instale o [Composer](https://getcomposer.org/)
16 | - Realize a integração com o seu sistema.
17 |
18 | ## Endpoints
19 |
20 | A SDK está disponível para todos os recursos da versão **3.7.0** da API de Nota Fiscal [(changelog)](https://ajuda.webmaniabr.com/hc/pt-br/articles/360013266171).
21 |
22 |
23 |
24 |
25 |
26 | ## Utilização
27 | Instale o módulo da Webmania® via composer ou baixe nosso repositório e utilize a classe NFe.php que se encontra dentro de src/WebmaniaBR/:
28 |
29 | ```php
30 | composer require webmaniabr/nfe
31 | ```
32 |
33 | Após executar o composer, adicione o require no topo do seu arquivo. Caso tenha baixado manualmente, importe o arquivo NFe.php diretamente na sua aplicação:
34 |
35 | ```php
36 | require_once __DIR__ . '/vendor/autoload.php';
37 | use WebmaniaBR\NFe;
38 | ```
39 |
40 | Caso esteja usando algum framework, como por exemplo o Laravel, instale o módulo da Webmania® via composer e referencie o seguinte namespace em seu controller:
41 |
42 | ```php
43 | use WebmaniaBR\NFe;
44 | ```
45 |
46 | Dessa forma, a classe NFe já pode ser instanciada e utilizada conforme a sua necessidade!
47 | Informe as suas credenciais de acesso diretamente no método construtor da classe NFe:
48 |
49 | ```php
50 | $this->webmaniabr = new NFe('SEU_CONSUMER_KEY', 'SEU_CONSUMER_SECRET', 'SEU_ACCESS_TOKEN', 'SEU_ACCESS_TOKEN_SECRET');
51 | ```
52 |
53 | E pronto, sua plataforma já está pronta para se comunicar com a API da Webmania®.
54 | Para emitir uma NF-e por exemplo, deve ser utilizado o método ``` emissaoNotaFiscal( $data ) ```:
55 |
56 | ```php
57 | $response = $this->webmaniabr->emissaoNotaFiscal( $data );
58 |
59 | if (!$response->error) {
60 |
61 | echo $response->uuid; // Número único de identificação da Nota Fiscal
62 | echo $response->status; // aprovado, reprovado, cancelado, processamento ou contingencia
63 | echo $response->nfe; // Número da NF-e
64 | echo $response->serie; // Número de série
65 | echo $response->recibo; // Número do recibo
66 | echo $response->chave; // Número da chave de acesso
67 | echo $response->xml; // URL do XML
68 | echo $response->danfe; // URL do Danfe (PDF)
69 | echo $response->log; // Log do Sefaz
70 |
71 | } else {
72 |
73 | echo 'Ocorreu um erro: ' . $resp->error;
74 |
75 | }
76 | ```
77 |
78 | ## Suporte
79 |
80 | Qualquer dúvida entre em contato na nossa [Central de Ajuda](https://ajuda.webmaniabr.com) ou acesse o [Painel de Controle](https://webmaniabr.com/painel/) para conversar em tempo real no Chat ou Abrir um chamado.
81 |
--------------------------------------------------------------------------------
/exemplos/complementarNotaFiscal.php:
--------------------------------------------------------------------------------
1 | '00000000000000000000000000000000000000000000',
18 | 'operacao' => 1,
19 | 'natureza_operacao' => 'COMPLEMENTAR',
20 | 'ambiente' => 2,
21 | 'cliente'=> array(
22 | 'cpf' => '000.000.000-00',
23 | 'nome_completo' => 'Nome completo',
24 | 'endereco' => 'Av. Brg. Faria Lima',
25 | 'complemento' => 'Escritorio',
26 | 'numero' => 1000,
27 | 'bairro' => 'Itaim Bibi',
28 | 'cidade' => 'São Paulo',
29 | 'uf' => 'SP',
30 | 'cep' => '00000-000',
31 | 'telefone' => '(00) 0000-0000',
32 | 'email' => 'nome@email.com',
33 | )
34 | );
35 |
36 | /**
37 | * Complementar Preço e/ou quantidade
38 | */
39 | $data['produtos'] = array(
40 | array(
41 | 'nome' => 'Nome do produto',
42 | 'codigo' => 'nome-do-produto',
43 | 'ncm' => '6109.10.00',
44 | 'cest' => '28.038.00',
45 | 'quantidade' => 1, // Complementar quantidade
46 | 'unidade' => 'UN',
47 | 'origem' => 0,
48 | 'subtotal' => '29.90', // Complementar preço
49 | 'total' => '29.90', // Complementar preço
50 | 'impostos' => array(
51 | 'icms' => array(
52 | 'codigo_cfop' => '6.102', // Código Fiscal de Operações e Prestações (CFOP)
53 | 'situacao_tributaria' => '102', // Código da situação tributária
54 | ),
55 | )
56 | )
57 | );
58 |
59 | /**
60 | * Complementar Impostos (ICMS, ICMS ST e/ou IPI)
61 | */
62 | $data['impostos'] = array(
63 | "codigo_cfop" => "6.102", // Código CFOP
64 | "situacao_tributaria" => "900", // Situação tributária do ICMS
65 | "bc_icms" => "100.00", // Complementar ICMS
66 | "valor_icms" => "18.00" // Complementar ICMS
67 | );
68 |
69 | //Emissão
70 | $webmaniabr = new NFe('SEU_CONSUMER_KEY', 'SEU_CONSUMER_SECRET', 'SEU_ACCESS_TOKEN', 'SEU_ACCESS_TOKEN_SECRET');
71 | $response = $webmaniabr->complementarNotaFiscal( $data );
72 |
73 | //Retorno
74 | if (!isset($response->error)){
75 |
76 | echo 'NF-e complementar enviada com sucesso.
';
77 |
78 | $uuid = (string) $response->uuid; // Número único de identificação da Nota Fiscal
79 | $status = (string) $response->status; // aprovado, reprovado, cancelado, processamento ou contingencia
80 | $nfe = (int) $response->nfe; // Número da NF-e
81 | $serie = (int) $response->serie; // Número de série
82 | $recibo = (int) $response->recibo; // Número do recibo
83 | $chave = $response->chave; // Número da chave de acesso
84 | $xml = (string) $response->xml; // URL do XML
85 | $danfe = (string) $response->danfe; // URL do Danfe (PDF)
86 | $log = $response->log; // Log do Sefaz
87 |
88 | print_r($response);
89 | exit();
90 |
91 | } else {
92 |
93 | echo 'Erro: '.$response->error.'
';
94 |
95 | if (isset($response->log)){
96 | echo 'Log:
';
97 | echo '';
98 |
99 | foreach ($response->log as $errors){
100 | foreach($errors as $erro){
101 | echo '- '.$erro.'
';
102 | }
103 | }
104 |
105 | echo '
';
106 | }
107 |
108 | exit();
109 |
110 | }
111 |
--------------------------------------------------------------------------------
/exemplos/criarEditarClasseImposto.php:
--------------------------------------------------------------------------------
1 | 'REF0000000', // Código de referência da Classe de Imposto (para editar)
18 | "descricao" => "Classe de impostos para Saída de produtos de revenda",
19 | "icms" => array(
20 | array(
21 | "tipo_tributacao" => "simples_nacional",
22 | "cenario" => "saida_dentro_estado",
23 | "tipo_pessoa" => "fisica",
24 | "codigo_cfop" => "5102",
25 | "situacao_tributaria" => "102"
26 | ),
27 | array(
28 | "tipo_tributacao" => "simples_nacional",
29 | "cenario" => "saida_fora_estado",
30 | "tipo_pessoa" => "fisica",
31 | "codigo_cfop" => "6102",
32 | "situacao_tributaria" => "102"
33 | ),
34 | array(
35 | "tipo_tributacao" => "simples_nacional",
36 | "cenario" => "saida_dentro_estado",
37 | "tipo_pessoa" => "juridica",
38 | "codigo_cfop" => "5102",
39 | "situacao_tributaria" => "102"
40 | ),
41 | array(
42 | "tipo_tributacao" => "simples_nacional",
43 | "cenario" => "saida_fora_estado",
44 | "tipo_pessoa" => "juridica",
45 | "codigo_cfop" => "6102",
46 | "situacao_tributaria" => "102"
47 | ),
48 | ),
49 | "ipi" => array(
50 | array(
51 | "cenario" => "padrao",
52 | "tipo_pessoa" => "fisica",
53 | "situacao_tributaria" => "99",
54 | "codigo_enquadramento" => "999",
55 | "aliquota" => "0.00"
56 | ),
57 | array(
58 | "cenario" => "padrao",
59 | "tipo_pessoa" => "juridica",
60 | "situacao_tributaria" => "99",
61 | "codigo_enquadramento" => "999",
62 | "aliquota" => "0.00"
63 | )
64 | ),
65 | "pis" => array(
66 | array(
67 | "cenario" => "padrao",
68 | "tipo_pessoa" => "fisica",
69 | "situacao_tributaria" => "99",
70 | "aliquota" => "0.00"
71 | ),
72 | array(
73 | "cenario" => "padrao",
74 | "tipo_pessoa" => "juridica",
75 | "situacao_tributaria" => "99",
76 | "aliquota" => "0.00"
77 | )
78 | ),
79 | "cofins" => array(
80 | array(
81 | "cenario" => "padrao",
82 | "tipo_pessoa" => "fisica",
83 | "situacao_tributaria" => "99",
84 | "aliquota" => "0.00"
85 | ),
86 | array(
87 | "cenario" => "padrao",
88 | "tipo_pessoa" => "juridica",
89 | "situacao_tributaria" => "99",
90 | "aliquota" => "0.00"
91 | )
92 | )
93 | );
94 |
95 | /**
96 | * Solicitação do cancelamento
97 | */
98 | $webmaniabr = new NFe('SEU_CONSUMER_KEY', 'SEU_CONSUMER_SECRET', 'SEU_ACCESS_TOKEN', 'SEU_ACCESS_TOKEN_SECRET');
99 | $response = $webmaniabr->classeImposto( $data, 'POST' );
100 |
101 | /**
102 | * Retorno
103 | */
104 | if (!isset($response->error)){
105 |
106 | echo 'Classe de imposto criada/editada com sucesso!
';
107 |
108 | $referencia = (string) $response->referencia; // Código de referência da Classe de Imposto
109 | $descricao = (string) $response->descricao; // Descrição da Classe de Imposto
110 | $data = $response->data; // Data da criação da Classe de Imposto
111 |
112 | print_r($response);
113 | exit();
114 |
115 | } else {
116 |
117 | echo 'Erro: '.$response->error.'
';
118 |
119 | if (isset($response->log)){
120 |
121 | echo 'Log:
';
122 | echo '';
123 |
124 | foreach ($response->log as $erros){
125 | foreach ($erros as $erro) {
126 | echo '- '.$erro.'
';
127 | }
128 | }
129 |
130 | echo '
';
131 |
132 | }
133 |
134 | exit();
135 |
136 | }
137 |
--------------------------------------------------------------------------------
/exemplos/emissaoNotaFiscal-Armamentos.php:
--------------------------------------------------------------------------------
1 | 'Nome do produto', // Nome do produto
20 | 'codigo' => 'nome-do-produto', // Código do produto
21 | 'ncm' => '6109.10.00', // Código NCM
22 | 'cest' => '28.038.00', // Código CEST
23 | 'quantidade' => 1, // Quantidade de itens
24 | 'unidade' => 'UN', // Unidade de medida da quantidade de itens
25 | 'peso' => '0.500', // Peso em KG. Ex: 800 gramas = 0.800 KG
26 | 'origem' => 0, // Origem do produto
27 | 'armamentos' => array(
28 | 'tipo' => '0', // Indicador do tipo de arma de fogo
29 | 'serie_arma' => '00000001', // Número de série da arma
30 | 'serie_cano' => '00000001', // Número de série do cano
31 | 'descricao' => 'Descrição completa da arma' // Descrição completa da arma
32 | ),
33 | 'subtotal' => '29.90', // Preço unitário do produto - sem descontos
34 | 'total' => '29.90', // Preço total (quantidade x preço unitário) - sem descontos
35 | 'tributos_federais' => '10.00', // Alíquota aproximada dos tributos federais
36 | 'tributos_estaduais' => '10.00', // Alíquota aproximada dos tributos estaduais
37 | 'impostos' => array(
38 | 'icms' => array(
39 | 'codigo_cfop' => '6.102', // Código Fiscal de Operações e Prestações (CFOP)
40 | 'situacao_tributaria' => '102', // Código da situação tributária
41 | ),
42 | 'ipi' => array(
43 | 'situacao_tributaria' => '99', // Código da situação tributária
44 | 'codigo_enquadramento' => '999', // Código de enquadramento
45 | 'aliquota' => '0.00', // Alíquota IPI
46 | ),
47 | 'pis' => array(
48 | 'situacao_tributaria' => '99', // Código da situação tributária
49 | 'aliquota' => '0.00', // Alíquota PIS
50 | ),
51 | 'cofins' => array(
52 | 'situacao_tributaria' => '99', // Código da situação tributária
53 | 'aliquota' => '0.00', // Alíquota COFINS
54 | )
55 | )
56 | )
57 | );
58 |
59 |
60 | /**
61 | * Informações do Pedido
62 | * Verificar emissaoNotaFiscal.php
63 | */
64 | $data['pedido'] = array();
65 |
66 | // Emissão
67 | $webmaniabr = new NFe('SEU_CONSUMER_KEY', 'SEU_CONSUMER_SECRET', 'SEU_ACCESS_TOKEN', 'SEU_ACCESS_TOKEN_SECRET');
68 | $response = $webmaniabr->emissaoNotaFiscal( $data );
69 |
70 | // Retorno
71 | if (!isset($response->error)){
72 |
73 | echo 'NF-e enviada com sucesso.
';
74 |
75 | $uuid = (string) $response->uuid; // Número único de identificação da Nota Fiscal
76 | $status = (string) $response->status; // aprovado, reprovado, cancelado, processamento ou contingencia
77 | $motivo = (string) $response->motivo; // Motivo do status
78 | $nfe = (int) $response->nfe; // Número da NF-e
79 | $serie = (int) $response->serie; // Número de série
80 | $modelo = (string) $response->modelo; // Modelo da Nota Fiscal (nfe, nfce, cce)
81 | $recibo = (int) $response->recibo; // Número do recibo
82 | $chave = (string)$response->chave; // Número da chave de acesso
83 | $xml = (string) $response->xml; // URL do XML
84 | $danfe = (string) $response->danfe; // URL do Danfe (PDF)
85 | $danfe_simples = (string) $response->danfe_simples; // URL do Danfe Simples (PDF)
86 | $danfe_etiqueta = (string) $response->danfe_etiqueta; // URL do Danfe Simplificada - Etiqueta (PDF)
87 | $log = $response->log; // Log do Sefaz
88 |
89 | print_r($response);
90 |
91 | exit();
92 |
93 | } else {
94 |
95 | echo 'Erro: '.$response->error.'
';
96 |
97 | if (isset($response->log)){
98 |
99 | echo 'Log:
';
100 | echo '';
101 |
102 | foreach ($response->log as $erros){
103 | foreach ($erros as $erro) {
104 | echo '- '.$erro.'
';
105 | }
106 | }
107 |
108 | echo '
';
109 |
110 | }
111 |
112 | exit();
113 |
114 | }
115 |
--------------------------------------------------------------------------------
/exemplos/emissaoNotaFiscal-Medicamento.php:
--------------------------------------------------------------------------------
1 | 'Nome do produto', // Nome do produto
20 | 'codigo' => 'nome-do-produto', // Código do produto
21 | 'ncm' => '6109.10.00', // Código NCM
22 | 'cest' => '28.038.00', // Código CEST
23 | 'quantidade' => 1, // Quantidade de itens
24 | 'unidade' => 'UN', // Unidade de medida da quantidade de itens
25 | 'peso' => '0.500', // Peso em KG. Ex: 800 gramas = 0.800 KG
26 | 'origem' => 0, // Origem do produto
27 | 'medicamento' => array(
28 | 'codigo_anvisa' => '1234567891234', // Código de Produto da ANVISA
29 | 'pmc' => '10.00' // Preço máximo consumidor
30 | ),
31 | 'rastro' => array(
32 | 'lote' => '0001', // Número do Lote do produto
33 | 'quantidade' => '1', // Quantidade de produto no Lote
34 | 'data_fabricacao' => '0000-00-00', // Data de fabricação/produção
35 | 'data_validade' => '0000-00-00', // Data de validade
36 | 'codigo_agregacao' => '00000' // Código de Agregação
37 | ),
38 | 'subtotal' => '29.90', // Preço unitário do produto - sem descontos
39 | 'total' => '29.90', // Preço total (quantidade x preço unitário) - sem descontos
40 | 'tributos_federais' => '10.00', // Alíquota aproximada dos tributos federais
41 | 'tributos_estaduais' => '10.00', // Alíquota aproximada dos tributos estaduais
42 | 'impostos' => array(
43 | 'icms' => array(
44 | 'codigo_cfop' => '6.102', // Código Fiscal de Operações e Prestações (CFOP)
45 | 'situacao_tributaria' => '102', // Código da situação tributária
46 | ),
47 | 'ipi' => array(
48 | 'situacao_tributaria' => '99', // Código da situação tributária
49 | 'codigo_enquadramento' => '999', // Código de enquadramento
50 | 'aliquota' => '0.00', // Alíquota IPI
51 | ),
52 | 'pis' => array(
53 | 'situacao_tributaria' => '99', // Código da situação tributária
54 | 'aliquota' => '0.00', // Alíquota PIS
55 | ),
56 | 'cofins' => array(
57 | 'situacao_tributaria' => '99', // Código da situação tributária
58 | 'aliquota' => '0.00', // Alíquota COFINS
59 | )
60 | )
61 | )
62 | );
63 |
64 | /**
65 | * Informações do Pedido
66 | * Verificar emissaoNotaFiscal.php
67 | */
68 | $data['pedido'] = array();
69 |
70 | // Emissão
71 | $webmaniabr = new NFe('SEU_CONSUMER_KEY', 'SEU_CONSUMER_SECRET', 'SEU_ACCESS_TOKEN', 'SEU_ACCESS_TOKEN_SECRET');
72 | $response = $webmaniabr->emissaoNotaFiscal( $data );
73 |
74 | // Retorno
75 | if (!isset($response->error)){
76 |
77 | echo 'NF-e enviada com sucesso.
';
78 |
79 | $uuid = (string) $response->uuid; // Número único de identificação da Nota Fiscal
80 | $status = (string) $response->status; // aprovado, reprovado, cancelado, processamento ou contingencia
81 | $motivo = (string) $response->motivo; // Motivo do status
82 | $nfe = (int) $response->nfe; // Número da NF-e
83 | $serie = (int) $response->serie; // Número de série
84 | $modelo = (string) $response->modelo; // Modelo da Nota Fiscal (nfe, nfce, cce)
85 | $recibo = (int) $response->recibo; // Número do recibo
86 | $chave = (string)$response->chave; // Número da chave de acesso
87 | $xml = (string) $response->xml; // URL do XML
88 | $danfe = (string) $response->danfe; // URL do Danfe (PDF)
89 | $danfe_simples = (string) $response->danfe_simples; // URL do Danfe Simples (PDF)
90 | $danfe_etiqueta = (string) $response->danfe_etiqueta; // URL do Danfe Simplificada - Etiqueta (PDF)
91 | $log = $response->log; // Log do Sefaz
92 |
93 | print_r($response);
94 |
95 | exit();
96 |
97 | } else {
98 |
99 | echo 'Erro: '.$response->error.'
';
100 |
101 | if (isset($response->log)){
102 |
103 | echo 'Log:
';
104 | echo '';
105 |
106 | foreach ($response->log as $erros){
107 | foreach ($erros as $erro) {
108 | echo '- '.$erro.'
';
109 | }
110 | }
111 |
112 | echo '
';
113 |
114 | }
115 |
116 | exit();
117 |
118 | }
119 |
--------------------------------------------------------------------------------
/exemplos/emissaoNotaFiscal-VeiculosNovos.php:
--------------------------------------------------------------------------------
1 | 'Nome do produto', // Nome do produto
20 | 'codigo' => 'nome-do-produto', // Código do produto
21 | 'ncm' => '6109.10.00', // Código NCM
22 | 'cest' => '28.038.00', // Código CEST
23 | 'quantidade' => 1, // Quantidade de itens
24 | 'unidade' => 'UN', // Unidade de medida da quantidade de itens
25 | 'peso' => '0.500', // Peso em KG. Ex: 800 gramas = 0.800 KG
26 | 'origem' => 0, // Origem do produto
27 | 'veiculos_novos' => array(
28 | 'tipo_operacao' => 1, // Tipo da operação
29 | 'chassi' => '0000000000000000000000', // Chassi do Veículo
30 | 'cor' => 'A1', // Cor
31 | 'cor_descricao' => 'Descrição da Cor', // Descrição da Cor
32 | 'cv' => '100', // Potência Motor (CV)
33 | 'cilindrada' => '1000', // Cilindradas
34 | 'peso_liquido' => '2.5000', // Peso líquido
35 | 'peso_bruto' => '2.5000', // Peso bruto total
36 | 'serie' => '00001', // Serial (série)
37 | 'tipo_combustivel' => '16', // Tipo de combustível
38 | 'numero_motor' => '00001', // Número de motor
39 | 'cmt' => '2.000', // Capacidade Máxima de Tração
40 | 'dist' => '150', // Distância entre eixos
41 | 'ano_modelo' => '2019', // Ano Modelo de Fabricação
42 | 'ano_fabricacao' => '2018', // Ano de Fabricação
43 | 'tipo_pintura' => '1', // Tipo de Pintura
44 | 'tipo_veiculo' => '06', // Tipo de Veículo
45 | 'especie_veiculo' => '1', // Espécie de Veículo
46 | 'vin' => 'N', // Condição do VIN
47 | 'condicao_veiculo' => '1', // Condição do veículo
48 | 'marca_modelo' => '00001', // Código Marca Modelo
49 | 'cor_denatran' => '04', // Código da Cor do DENETRAN
50 | 'lotacao' => '5', // Capacidade máxima de lotação
51 | 'restricao' => '0' // Restrição
52 | ),
53 | 'subtotal' => '29.90', // Preço unitário do produto - sem descontos
54 | 'total' => '29.90', // Preço total (quantidade x preço unitário) - sem descontos
55 | 'tributos_federais' => '10.00', // Alíquota aproximada dos tributos federais
56 | 'tributos_estaduais' => '10.00', // Alíquota aproximada dos tributos estaduais
57 | 'impostos' => array(
58 | 'icms' => array(
59 | 'codigo_cfop' => '6.102', // Código Fiscal de Operações e Prestações (CFOP)
60 | 'situacao_tributaria' => '102', // Código da situação tributária
61 | ),
62 | 'ipi' => array(
63 | 'situacao_tributaria' => '99', // Código da situação tributária
64 | 'codigo_enquadramento' => '999', // Código de enquadramento
65 | 'aliquota' => '0.00', // Alíquota IPI
66 | ),
67 | 'pis' => array(
68 | 'situacao_tributaria' => '99', // Código da situação tributária
69 | 'aliquota' => '0.00', // Alíquota PIS
70 | ),
71 | 'cofins' => array(
72 | 'situacao_tributaria' => '99', // Código da situação tributária
73 | 'aliquota' => '0.00', // Alíquota COFINS
74 | )
75 | )
76 | )
77 | );
78 |
79 | /**
80 | * Informações do Pedido
81 | * Verificar emissaoNotaFiscal.php
82 | */
83 | $data['pedido'] = array();
84 |
85 | // Emissão
86 | $webmaniabr = new NFe('SEU_CONSUMER_KEY', 'SEU_CONSUMER_SECRET', 'SEU_ACCESS_TOKEN', 'SEU_ACCESS_TOKEN_SECRET');
87 | $response = $webmaniabr->emissaoNotaFiscal( $data );
88 |
89 | // Retorno
90 | if (!isset($response->error)){
91 |
92 | echo 'NF-e enviada com sucesso.
';
93 |
94 | $uuid = (string) $response->uuid; // Número único de identificação da Nota Fiscal
95 | $status = (string) $response->status; // aprovado, reprovado, cancelado, processamento ou contingencia
96 | $motivo = (string) $response->motivo; // Motivo do status
97 | $nfe = (int) $response->nfe; // Número da NF-e
98 | $serie = (int) $response->serie; // Número de série
99 | $modelo = (string) $response->modelo; // Modelo da Nota Fiscal (nfe, nfce, cce)
100 | $recibo = (int) $response->recibo; // Número do recibo
101 | $chave = (string)$response->chave; // Número da chave de acesso
102 | $xml = (string) $response->xml; // URL do XML
103 | $danfe = (string) $response->danfe; // URL do Danfe (PDF)
104 | $danfe_simples = (string) $response->danfe_simples; // URL do Danfe Simples (PDF)
105 | $danfe_etiqueta = (string) $response->danfe_etiqueta; // URL do Danfe Simplificada - Etiqueta (PDF)
106 | $log = $response->log; // Log do Sefaz
107 |
108 | print_r($response);
109 |
110 | } else {
111 |
112 | echo 'Erro: '.$response->error.'
';
113 |
114 | if (isset($response->log)){
115 |
116 | echo 'Log:
';
117 | echo '';
118 |
119 | foreach ($response->log as $erros){
120 | foreach ($erros as $erro) {
121 | echo '- '.$erro.'
';
122 | }
123 | }
124 |
125 | echo '
';
126 |
127 | }
128 |
129 | exit();
130 |
131 | }
132 |
--------------------------------------------------------------------------------
/exemplos/emissaoNotaFiscal-Combustiveis.php:
--------------------------------------------------------------------------------
1 | 'Nome do produto', // Nome do produto
20 | 'codigo' => 'nome-do-produto', // Código do produto
21 | 'ncm' => '6109.10.00', // Código NCM
22 | 'cest' => '28.038.00', // Código CEST
23 | 'quantidade' => 1, // Quantidade de itens
24 | 'unidade' => 'UN', // Unidade de medida da quantidade de itens
25 | 'peso' => '0.500', // Peso em KG. Ex: 800 gramas = 0.800 KG
26 | 'origem' => 0, // Origem do produto
27 | 'combustiveis' => array(
28 | 'codigo_anp' => '740101005', // Código de produto da ANP
29 | 'descricao_anp' => 'ADITIVOS PARA BIODIESEL', // Descrição do produto conforme ANP
30 | 'uf_consumo' => 'SP', // Estado de consumo
31 | 'percentual_glp' => '0.00', // Opcional: Percentual do GLP derivado do petróleo no produto GLP
32 | 'percentual_gnn' => '0.00', // Opcional: Percentual de Gás Natural Nacional (GLGNn) para o produto GLP
33 | 'percentual_gni' => '0.00', // Opcional: Percentual de Gás Natural Importado (GLGNi) para o produto GLP
34 | 'partida' => '0.00', // Opcional: Valor de partida
35 | 'codif' => '00000', // Opcional: Código de autorização/registro do CODIF
36 | 'qtd_temperatura' => '0', // Opcional: Quantidade de combustível faturada à temperatura ambiente
37 | 'bc_cide' => '0.00', // Opcional: Base de cálculo da CIDE em quantidade
38 | 'valor_aliq_cide' => '0.00', // Opcional: Valor da alíquota em reais da CIDE
39 | 'bico' => '000', // Opcional: Número de identificação do bico utilizado no abastecimento
40 | 'bomba' => '000', // Opcional: Número de identificação da bomba ao qual o bico está interligado
41 | 'tanque' => '000', // Opcional: Número de identificação do tanque ao qual o bico está interligado
42 | 'encerrante_inicio' => '000', // Opcional: Valor do encerrante no início do abastecimento
43 | 'encerrante_final' => '000', // Opcional: Valor do encerrante no final do abastecimento
44 | ),
45 | 'subtotal' => '29.90', // Preço unitário do produto - sem descontos
46 | 'total' => '29.90', // Preço total (quantidade x preço unitário) - sem descontos
47 | 'tributos_federais' => '10.00', // Alíquota aproximada dos tributos federais
48 | 'tributos_estaduais' => '10.00', // Alíquota aproximada dos tributos estaduais
49 | 'impostos' => array(
50 | 'icms' => array(
51 | 'codigo_cfop' => '6.102', // Código Fiscal de Operações e Prestações (CFOP)
52 | 'situacao_tributaria' => '102', // Código da situação tributária
53 | ),
54 | 'ipi' => array(
55 | 'situacao_tributaria' => '99', // Código da situação tributária
56 | 'codigo_enquadramento' => '999', // Código de enquadramento
57 | 'aliquota' => '0.00', // Alíquota IPI
58 | ),
59 | 'pis' => array(
60 | 'situacao_tributaria' => '99', // Código da situação tributária
61 | 'aliquota' => '0.00', // Alíquota PIS
62 | ),
63 | 'cofins' => array(
64 | 'situacao_tributaria' => '99', // Código da situação tributária
65 | 'aliquota' => '0.00', // Alíquota COFINS
66 | )
67 | )
68 | )
69 | );
70 |
71 | /**
72 | * Informações do Pedido
73 | * Verificar emissaoNotaFiscal.php
74 | */
75 | $data['pedido'] = array();
76 |
77 | // Emissão
78 | $webmaniabr = new NFe('SEU_CONSUMER_KEY', 'SEU_CONSUMER_SECRET', 'SEU_ACCESS_TOKEN', 'SEU_ACCESS_TOKEN_SECRET');
79 | $response = $webmaniabr->emissaoNotaFiscal( $data );
80 |
81 | // Retorno
82 | if (!isset($response->error)){
83 |
84 | echo 'NF-e enviada com sucesso.
';
85 |
86 | $uuid = (string) $response->uuid; // Número único de identificação da Nota Fiscal
87 | $status = (string) $response->status; // aprovado, reprovado, cancelado, processamento ou contingencia
88 | $motivo = (string) $response->motivo; // Motivo do status
89 | $nfe = (int) $response->nfe; // Número da NF-e
90 | $serie = (int) $response->serie; // Número de série
91 | $modelo = (string) $response->modelo; // Modelo da Nota Fiscal (nfe, nfce, cce)
92 | $recibo = (int) $response->recibo; // Número do recibo
93 | $chave = (string)$response->chave; // Número da chave de acesso
94 | $xml = (string) $response->xml; // URL do XML
95 | $danfe = (string) $response->danfe; // URL do Danfe (PDF)
96 | $danfe_simples = (string) $response->danfe_simples; // URL do Danfe Simples (PDF)
97 | $danfe_etiqueta = (string) $response->danfe_etiqueta; // URL do Danfe Simplificada - Etiqueta (PDF)
98 | $log = $response->log; // Log do Sefaz
99 |
100 | print_r($response);
101 |
102 | exit();
103 |
104 | } else {
105 |
106 | echo 'Erro: '.$response->error.'
';
107 |
108 | if (isset($response->log)){
109 |
110 | echo 'Log:
';
111 | echo '';
112 |
113 | foreach ($response->log as $erros){
114 | foreach ($erros as $erro) {
115 | echo '- '.$erro.'
';
116 | }
117 | }
118 |
119 | echo '
';
120 |
121 | }
122 |
123 | exit();
124 |
125 | }
126 |
--------------------------------------------------------------------------------
/src/WebmaniaBR/NFe.php:
--------------------------------------------------------------------------------
1 | consumerKey = $consumer_key;
16 | $this->consumerSecret = $consumer_secret;
17 | $this->accessToken = $access_token;
18 | $this->accessTokenSecret = $acccess_token_secret;
19 |
20 | }
21 |
22 | function statusSefaz( $data = null ){
23 |
24 | $data = array();
25 | $response = $this->connectWebmaniaBR( 'GET', 'https://webmaniabr.com/api/1/nfe/sefaz/', $data );
26 | if (isset($response->error)) return $response;
27 | if ($response->status == 'online') return true;
28 | else return false;
29 |
30 | }
31 |
32 | function validadeCertificado( $data = null ){
33 |
34 | $data = array();
35 | $response = $this->connectWebmaniaBR( 'GET', 'https://webmaniabr.com/api/1/nfe/certificado/', $data );
36 | if (isset($response->error)) return $response;
37 | return $response->expiration;
38 |
39 | }
40 |
41 | function emissaoNotaFiscal( array $data ){
42 |
43 | $response = $this->connectWebmaniaBR( 'POST', 'https://webmaniabr.com/api/1/nfe/emissao/', $data );
44 | return $response;
45 |
46 | }
47 |
48 | function consultaNotaFiscal( $chave_uuid ){
49 |
50 | $data = $this->validate_key_uuid( $chave_uuid );
51 |
52 | if (is_object($data) && $data->error){
53 | return $data->error;
54 | }
55 |
56 | $response = $this->connectWebmaniaBR( 'GET', 'https://webmaniabr.com/api/1/nfe/consulta/', $data );
57 | return $response;
58 |
59 | }
60 |
61 | function cancelarNotaFiscal( $chave_uuid, $motivo ){
62 |
63 | $data = $this->validate_key_uuid( $chave_uuid );
64 |
65 | if (is_object($data) && $data->error){
66 | return $data->error;
67 | }
68 |
69 | $data = array(
70 | key($data) => $data[key($data)],
71 | 'motivo' => $motivo
72 | );
73 |
74 | $response = $this->connectWebmaniaBR( 'PUT', 'https://webmaniabr.com/api/1/nfe/cancelar/', $data );
75 | return $response;
76 |
77 | }
78 |
79 | function inutilizarNumeracao( $sequencia, $motivo, $ambiente, $serie = '', $modelo = '' ){
80 |
81 | $data = array(
82 | 'sequencia' => $sequencia,
83 | 'motivo' => $motivo,
84 | 'ambiente' => $ambiente,
85 | 'serie' => $serie,
86 | 'modelo' => $modelo
87 | );
88 |
89 | $response = $this->connectWebmaniaBR( 'PUT', 'https://webmaniabr.com/api/1/nfe/inutilizar/', $data );
90 | return $response;
91 |
92 | }
93 |
94 | function cartaCorrecao( $chave_uuid, $correcao, $ambiente = '', $evento = '', $url_notificacao = '' ){
95 |
96 | $data = $this->validate_key_uuid( $chave_uuid );
97 |
98 | if (is_object($data) && $data->error){
99 | return $data->error;
100 | }
101 |
102 | $data = array(
103 | key($data) => $data[key($data)],
104 | 'correcao' => $correcao,
105 | 'ambiente' => $ambiente,
106 | 'evento' => $evento,
107 | 'url_notificacao' => $url_notificacao
108 | );
109 |
110 | $response = $this->connectWebmaniaBR( 'POST', 'https://webmaniabr.com/api/1/nfe/cartacorrecao/', $data );
111 | return $response;
112 |
113 | }
114 |
115 | function devolucaoNotaFiscal( $chave_uuid, $natureza_operacao, $ambiente, $codigo_cfop = '', $classe_imposto = '', $produtos = array(), $volume = '', $informacoes_fisco = '', $informacoes_complementares = '', $url_notificacao = '' ){
116 |
117 | $data = $this->validate_key_uuid( $chave_uuid );
118 |
119 | if (is_object($data) && $data->error){
120 | return $data->error;
121 | }
122 |
123 | $data = array(
124 | key($data) => $data[key($data)],
125 | 'natureza_operacao' => $natureza_operacao,
126 | 'ambiente' => $ambiente,
127 | 'codigo_cfop' => $codigo_cfop,
128 | 'classe_imposto' => $classe_imposto,
129 | 'produtos' => $produtos,
130 | 'volume' => $volume,
131 | 'informacoes_fisco' => $informacoes_fisco,
132 | 'informacoes_complementares' => $informacoes_complementares,
133 | 'url_notificacao' => $url_notificacao
134 | );
135 |
136 | $response = $this->connectWebmaniaBR( 'POST', 'https://webmaniabr.com/api/1/nfe/devolucao/', $data );
137 | return $response;
138 |
139 | }
140 |
141 | function ajusteNotaFiscal( $data ){
142 |
143 | $response = $this->connectWebmaniaBR( 'POST', 'https://webmaniabr.com/api/1/nfe/ajuste/', $data );
144 | return $response;
145 |
146 | }
147 |
148 | function complementarNotaFiscal( $data ) {
149 |
150 | $response = $this->connectWebmaniaBR( 'POST', 'https://webmaniabr.com/api/1/nfe/complementar/', $data);
151 | return $response;
152 |
153 | }
154 |
155 | function atualizarEmpresa( $data ) {
156 |
157 | $response = $this->connectWebmaniaBR( 'POST', 'https://webmaniabr.com/api/1/nfe/empresa/', $data);
158 | return $response;
159 |
160 | }
161 |
162 | function exportarRelatorios( $data ) {
163 |
164 | $response = $this->connectWebmaniaBR( 'POST', 'https://webmaniabr.com/api/1/nfe/relatorios/', $data);
165 | return $response;
166 |
167 | }
168 |
169 | function manifestacaoDestinatario( $chave, $ambiente, $evento, $justificativa = '' ) {
170 |
171 | $data = array(
172 | 'chave' => $chave,
173 | 'ambiente' => $ambiente,
174 | 'evento' => $evento,
175 | 'justificativa' => $justificativa
176 | );
177 |
178 | $response = $this->connectWebmaniaBR( 'POST', 'https://webmaniabr.com/api/1/nfe/manifesta/', $data);
179 | return $response;
180 |
181 | }
182 |
183 | function classeImposto( $data = array(), $method = 'POST' ) {
184 |
185 | $response = $this->connectWebmaniaBR( $method, 'https://webmaniabr.com/api/1/nfe/classe-imposto/', $data);
186 | return $response;
187 |
188 | }
189 |
190 | function validate_key_uuid( $key_uuid ){
191 |
192 | $data = [];
193 |
194 | if (strlen(preg_replace("/[^0-9]/", '', $key_uuid)) == 44){
195 | $data['chave'] = preg_replace("/[^0-9]/", '', $key_uuid);
196 | } else if (strlen(trim($key_uuid)) == 36) {
197 | $data['uuid'] = trim($key_uuid);
198 | } else {
199 | $response = new StdClass;
200 | $response->error = 'Informado Chave ou UUID inválido.';
201 | }
202 |
203 | if ($data){
204 | return $data;
205 | } else {
206 | return $response;
207 | }
208 |
209 | }
210 |
211 | function connectWebmaniaBR( $request, $endpoint, $data ){
212 |
213 | // Verify cURL
214 | if (!function_exists('curl_version')){
215 |
216 | $curl_error = new StdClass;
217 | $curl_error->error = 'cURL não localizado! Não é possível obter conexão na API da WebmaniaBR®. Verifique junto ao programador e a sua hospedagem. (PHP: '.phpversion().')';
218 |
219 | return $curl_error;
220 |
221 | }
222 |
223 | // Set limits
224 | @set_time_limit( 300 );
225 | ini_set('max_execution_time', 300);
226 | ini_set('max_input_time', 300);
227 | ini_set('memory_limit', '256M');
228 | if (
229 | strpos($endpoint, '/sefaz/') !== false ||
230 | strpos($endpoint, '/certificado/') !== false
231 | ){
232 | $timeout = 5;
233 | } else {
234 | $timeout = 300;
235 | }
236 |
237 | // Header
238 | $headers = array(
239 | 'Cache-Control: no-cache',
240 | 'Content-Type:application/json',
241 | 'X-Consumer-Key: '.$this->consumerKey,
242 | 'X-Consumer-Secret: '.$this->consumerSecret,
243 | 'X-Access-Token: '.$this->accessToken,
244 | 'X-Access-Token-Secret: '.$this->accessTokenSecret
245 | );
246 |
247 | // Init connection
248 | $rest = curl_init();
249 | curl_setopt($rest, CURLOPT_CONNECTTIMEOUT , $timeout);
250 | curl_setopt($rest, CURLOPT_TIMEOUT, $timeout);
251 | curl_setopt($rest, CURLOPT_URL, $endpoint);
252 | curl_setopt($rest, CURLOPT_RETURNTRANSFER, true);
253 | curl_setopt($rest, CURLOPT_SSL_VERIFYPEER, false);
254 | curl_setopt($rest, CURLOPT_SSL_VERIFYHOST, false);
255 | curl_setopt($rest, CURLOPT_CUSTOMREQUEST, $request);
256 | curl_setopt($rest, CURLOPT_POSTFIELDS, json_encode( $data ));
257 | curl_setopt($rest, CURLOPT_HTTPHEADER, $headers);
258 | curl_setopt($rest, CURLOPT_FRESH_CONNECT, true);
259 | curl_setopt($rest, CURLOPT_FOLLOWLOCATION, 1);
260 | curl_setopt($rest, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
261 | curl_setopt($rest, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_NONE);
262 | curl_setopt($rest, CURLOPT_SSLVERSION, CURL_SSLVERSION_DEFAULT);
263 |
264 | // Connect to API
265 | $response = curl_exec($rest);
266 | $http_status = curl_getinfo($rest, CURLINFO_HTTP_CODE);
267 | $curl_errno = (int) curl_errno($rest);
268 | if ($curl_errno){
269 | $curl_strerror = curl_strerror($curl_errno);
270 | }
271 | curl_close($rest);
272 |
273 | // Get cURL errors
274 | $curl_error = new StdClass;
275 |
276 | if ($curl_errno){
277 |
278 | // Get User IP
279 | $ip = $_SERVER['CF-Connecting-IP']; // CloudFlare
280 |
281 | if (!$ip){
282 | $ip = $_SERVER['REMOTE_ADDR']; // Standard
283 | }
284 | if (is_array($ip)){
285 | $ip = $ip[0];
286 | }
287 |
288 | // cURL errors
289 | if (!$http_status){
290 | $curl_error->error = 'Não foi possível obter conexão na API da WebmaniaBR®, possível relação com bloqueio no Firewall ou versão antiga do PHP. Verifique junto ao programador e a sua hospedagem a comunicação na URL: https://webmaniabr.com/api/. (cURL: '.$curl_strerror.' | PHP: '.phpversion().' | cURL: '.curl_version()['version'].')';
291 | } elseif ($http_status == 500) {
292 | $curl_error->error = 'Ocorreu um erro ao processar a sua requisição. A nossa equipe já foi notificada, em caso de dúvidas entre em contato com o suporte da WebmaniaBR®. (cURL: '.$curl_strerror.' | HTTP Code: '.$http_status.' | IP: '.$ip.')';
293 | } elseif (!in_array($http_status, array(401, 403))) {
294 | $curl_error->error = 'Não foi possível se conectar na API da WebmaniaBR®. Em caso de dúvidas entre em contato com o suporte da WebmaniaBR®. (cURL: '.$curl_strerror.' | HTTP Code: '.$http_status.' | IP: '.$ip.')';
295 | }
296 | }
297 |
298 | // Return
299 | if ( isset($curl_error->error) ) {
300 | return $curl_error;
301 | } else {
302 | return json_decode($response);
303 | }
304 |
305 | }
306 |
307 | }
308 |
309 | ?>
310 |
--------------------------------------------------------------------------------
/exemplos/emissaoNotaFiscal.php:
--------------------------------------------------------------------------------
1 | 1137, // Número do pedido (opcional)
11 | 'operacao' => 1, // Tipo de Operação da Nota Fiscal
12 | 'natureza_operacao' => 'Venda de produção do estabelecimento', // Natureza da Operação
13 | 'modelo' => 1, // Modelo da Nota Fiscal
14 | 'finalidade' => 1, // Finalidade de emissão da Nota Fiscal
15 | 'ambiente' => 2, // Identificação do Ambiente do Sefaz
16 | 'url_notificacao' => 'http://meudominio.com/retorno.php' // URL de retorno
17 | );
18 |
19 | /**
20 | * Informações do Cliente
21 | * As informações do cliente são montados dentro da array cliente conforme
22 | * mostrado na tabela Informações da Nota Fiscal. Para notas fiscais de importação
23 | * e exportação é necessário informar o cliente estrangeiro, mais informações.
24 | */
25 | $data['cliente'] = array(
26 | 'cpf' => '000.000.000-00', // (pessoa fisica) Número do CPF
27 | 'nome_completo' => 'Nome do Cliente', // (pessoa fisica) Nome completo
28 | 'endereco' => 'Av. Brg. Faria Lima', // Endereço de entrega dos produtos
29 | 'complemento' => 'Escritório', // Complemento do endereço de entrega
30 | 'numero' => 1000, // Número do endereço de entrega
31 | 'bairro' => 'Itaim Bibi', // Bairro do endereço de entrega
32 | 'cidade' => 'São Paulo', // Cidade do endereço de entrega
33 | 'uf' => 'SP', // Estado do endereço de entrega
34 | 'cep' => '00000-000', // CEP do endereço de entrega
35 | 'telefone' => '(00) 0000-0000', // Telefone do cliente
36 | 'email' => 'nome@email.com' // E-mail do cliente para envio da NF-e
37 | );
38 |
39 | /**
40 | * Produtos
41 | * A array dos produtos devem ser montadas de acordo com as informações
42 | * do produto no Banco de Dados da sua plataforma, abaixo encontra-se
43 | * um exemplo de dois produtos com Classe de Imposto e Imposto Manual
44 | */
45 | $data['produtos'] = array(
46 | array(
47 | 'nome' => 'Nome do produto', // Nome do produto
48 | 'codigo' => 'nome-do-produto', // Código do produto (opcional)
49 | 'ncm' => '6109.10.00', // Código NCM
50 | 'cest' => '28.038.00', // Código CEST (opcional)
51 | 'quantidade' => 3, // Quantidade de itens
52 | 'unidade' => 'UN', // Unidade de medida da quantidade de itens
53 | 'peso' => '0.500', // Peso em KG. Ex: 800 gramas = 0.800 KG (opcional)
54 | 'origem' => 0, // Origem do produto
55 | 'subtotal' => '44.90', // Preço unitário do produto - sem descontos
56 | 'total' => '134.70', // Preço total (quantidade x preço unitário) - sem descontos
57 | 'classe_imposto' => 'REF1000' // Classe de Imposto cadastrado no painel WebmaniaBR ou via API no endpoint /1/nfe/classe-imposto/
58 | //'informacoes_adicionais' => '' // Características do produto (Cor, tamanho, etc)
59 | ),
60 | array(
61 | 'nome' => 'Nome do produto', // Nome do produto
62 | 'codigo' => 'nome-do-produto', // Código do produto (opcional)
63 | 'ncm' => '6109.10.00', // Código NCM
64 | 'cest' => '28.038.00', // Código CEST (opcional)
65 | 'quantidade' => 1, // Quantidade de itens
66 | 'unidade' => 'UN', // Unidade de medida da quantidade de itens
67 | 'peso' => '0.500', // Peso em KG. Ex: 800 gramas = 0.800 KG (opcional)
68 | 'origem' => 0, // Origem do produto
69 | 'subtotal' => '29.90', // Preço unitário do produto - sem descontos
70 | 'total' => '29.90', // Preço total (quantidade x preço unitário) - sem descontos
71 | 'tributos_federais' => '10.00', // Alíquota aproximada dos tributos federais
72 | 'tributos_estaduais' => '10.00', // Alíquota aproximada dos tributos estaduais
73 | 'impostos' => array( // Impostos na API
74 | 'icms' => array(
75 | 'codigo_cfop' => '6.102', // Código Fiscal de Operações e Prestações (CFOP)
76 | 'situacao_tributaria' => '102', // Código da situação tributária
77 | ),
78 | 'ipi' => array(
79 | 'situacao_tributaria' => '99', // Código da situação tributária
80 | 'codigo_enquadramento' => '999', // Código de enquadramento
81 | 'aliquota' => '0.00', // Alíquota IPI
82 | ),
83 | 'pis' => array(
84 | 'situacao_tributaria' => '99', // Código da situação tributária
85 | 'aliquota' => '0.00', // Alíquota PIS
86 | ),
87 | 'cofins' => array(
88 | 'situacao_tributaria' => '99', // Código da situação tributária
89 | 'aliquota' => '0.00', // Alíquota COFINS
90 | ),
91 | /*'issqn' => array(
92 | 'codigo_cfop' => '5.933', // Código Fiscal de Operações e Prestações (CFOP)
93 | 'exigibilidade' => '1', // Indicador da exigibilidade do ISS
94 | 'item_servico' => '00.00', // Item da lista de serviços em que se classifica o serviço no padrão ABRASF,
95 | 'incentivo_fiscal' => '2', // Indicador de incentivo Fiscal
96 | 'aliquota' => '5.00' // Alíquota do ISSQN
97 | )*/
98 | ),
99 | /*// Rastreabilidade de produto (opcional)
100 | 'rastro' => array(
101 | 'lote' => "000001", // Número do Lote do produto
102 | 'quantidade' => "100", // Quantidade de produto no Lote
103 | 'data_fabricacao' => "2018-01-01", // Data de fabricação/produção
104 | 'data_validade' => "2018-01-01" // Data de validade
105 | )*/
106 | )
107 | );
108 |
109 | /**
110 | * Informações do Pedido
111 | */
112 | $data['pedido'] = array(
113 | 'presenca' => 2, // Indicador de presença do comprador no estabelecimento comercial no momento da operação
114 | 'intermediador' => 0, // Indicador de intermediador/marketplace
115 | /*'cnpj_intermediador' => '03.499.243/0001-04', // CNPJ do Intermediador da Transação (opcional)
116 | 'id_intermediador' => 'Mercado Livre', // Identificador cadastrado no intermediador (opcional) */
117 | 'modalidade_frete' => 0, // Modalidade do frete
118 | 'frete' => '12.56', // Total do frete
119 | 'desconto' => '10.00', // Total do desconto
120 | 'total' => '174.60', // Valor total do pedido pago pelo cliente
121 | 'pagamento' => 0, // Indicador da forma de pagamento: 0 - Pagamento à vista ou 1 - Pagamento a prazo
122 | 'forma_pagamento' => [ 15 ], // Meio de pagamento
123 | 'pagamento' => 0, // Indicador da forma de pagamento
124 | 'forma_pagamento' => '15', // Meio de pagamento (15 - Boleto Bancário),
125 | //'desc_pagamento' => '', // Descrição do Meio de pagamento (Obrigatório para 99 - Outros)
126 | /*// Informações do pagamento (opcional)
127 | 'valor_pagamento' => '', // Valor do pagamento
128 | 'cnpj_credenciadora' => '', // // CNPJ da Credenciadora de cartão de crédito/débito
129 | 'bandeira' => "", // Bandeira da operadora do cartão de crédito/débito
130 | 'autorizacao' => "", // Número da autorização da operadora de cartão de crédito/débito (NSU)
131 | 'tipo_integracao' => 2 // Tipo de integração para pagamento*/
132 | //'informacoes_fisco' => '', // Informações ao Fisco
133 | //'informacoes_complementares' => ''/ // Informações Complementares ao Consumidor
134 | );
135 |
136 | /**
137 | * Informações do Transporte (opcional)
138 | * Volumes e pesos a serem transportados
139 | */
140 | /*$data['transporte'] = array(
141 | 'volume' => 2, // Quantidade de volumes transportados
142 | 'especie' => "CAIXA", // Espécie dos volumes transportados
143 | 'peso_bruto' => "2.500", // Peso bruto dos volumes transportados
144 | 'peso_liquido' => "2.500" // Peso líquido dos volumes transportados
145 | );*/
146 |
147 | /**
148 | * Informações do Transportadora (opcional)
149 | * Importante: não é necessário informar a transportadora para envio realizado pelos Correios.
150 | */
151 | /*$data['transporte'] = array(
152 | 'volume' => 2, // Quantidade de volumes transportados
153 | 'especie' => "CAIXA", // Espécie dos volumes transportados
154 | 'peso_bruto' => "2.500", // Peso bruto dos volumes transportados
155 | 'peso_liquido' => "2.500", // Peso líquido dos volumes transportados
156 | 'cnpj' => "00.000.000/0000-00", // CNPJ da transportadora
157 | 'razao_social' => "Nome da empresa LTDA", // Razão social da tranportadora
158 | 'ie' => "00000000", // Inscrição Estadual da transportadora
159 | 'endereco' => "Av. Brg. Faria Lima", // Endereço da transportadora
160 | 'uf' => "SP", // Estado da transportadora
161 | 'cidade' => "São Paulo", // Cidade da transportadora
162 | 'cep' => "00000-000" // CEP da transportadora
163 | );*/
164 |
165 | /**
166 | * Informações da Fatura (opcional)
167 | */
168 | /*$data['fatura'] = array(
169 | 'numero' => 2, // Número da Fatura
170 | 'valor' => "CAIXA", // Valor Original da Fatura
171 | 'desconto' => "2.500", // Valor do desconto
172 | 'valor_liquido' => "2.500" // Valor Líquido da Fatura
173 | );*/
174 |
175 | /**
176 | * Informações das Parcelas (opcional)
177 | */
178 | /*$data['parcelas'] = array(
179 | array(
180 | 'vencimento' => '2019-08-01', // Data de vencimento
181 | 'valor' => '87.30' // Valor da parcela
182 | ),
183 | array(
184 | 'vencimento' => '2019-08-01', // Data de vencimento
185 | 'valor' => '87.30' // Valor da parcela
186 | )
187 | );*/
188 |
189 | /**
190 | * Informação do Local de Entrega (opcional)
191 | * Somente informar quando o local de entrega
192 | * é diferente do endereço do cliente
193 | */
194 | /*$data['transporte']['entrega'] = array(
195 | 'cnpj' => "00.000.000/0000-00", // Número do CNPJ
196 | 'razao_social' => "", // Razão Social
197 | 'ie' => "", // Número da Inscrição Estadual
198 | 'uf' => "", // Estado do endereço de entrega
199 | 'cep' => "00000-000", // CEP do endereço de entrega
200 | 'endereco' => "", // Endereço de entrega dos produtos
201 | 'numero' => "", // Número de entrega dos produtos
202 | 'complemento' => "", // Complemento do endereço de entrega
203 | 'bairro' => "", // Bairro do endereço de entrega
204 | 'cidade' => "" // Cidade do endereço de entrega
205 | );*/
206 |
207 | /**
208 | * Informação do Local de Retirada (opcional)
209 | * Somente informar quando o local de retirada
210 | * é diferente do endereço do cliente
211 | */
212 | /*$data['transporte']['retirada'] = array(
213 | 'cnpj' => "00.000.000/0000-00", // Número do CNPJ
214 | 'razao_social' => "", // Razão Social
215 | 'ie' => "", // Número da Inscrição Estadual
216 | 'uf' => "", // Estado do endereço de entrega
217 | 'cep' => "00000-000", // CEP do endereço de entrega
218 | 'endereco' => "", // Endereço de entrega dos produtos
219 | 'numero' => "", // Número de entrega dos produtos
220 | 'complemento' => "", // Complemento do endereço de entrega
221 | 'bairro' => "", // Bairro do endereço de entrega
222 | 'cidade' => "" // Cidade do endereço de entrega
223 | );*/
224 |
225 | // Emissão
226 | $webmaniabr = new NFe('SEU_CONSUMER_KEY', 'SEU_CONSUMER_SECRET', 'SEU_ACCESS_TOKEN', 'SEU_ACCESS_TOKEN_SECRET');
227 | $response = $webmaniabr->emissaoNotaFiscal( $data );
228 |
229 | // Retorno
230 | if (!isset($response->error)){
231 |
232 | echo 'NF-e enviada com sucesso.
';
233 |
234 | $uuid = (string) $response->uuid; // Número único de identificação da Nota Fiscal
235 | $status = (string) $response->status; // aprovado, reprovado, cancelado, processamento ou contingencia
236 | $motivo = (string) $response->motivo; // Motivo do status
237 | $nfe = (int) $response->nfe; // Número da NF-e
238 | $serie = (int) $response->serie; // Número de série
239 | $modelo = (string) $response->modelo; // Modelo da Nota Fiscal (nfe, nfce, cce)
240 | $recibo = (int) $response->recibo; // Número do recibo
241 | $chave = (string)$response->chave; // Número da chave de acesso
242 | $xml = (string) $response->xml; // URL do XML
243 | $danfe = (string) $response->danfe; // URL do Danfe (PDF)
244 | $danfe_simples = (string) $response->danfe_simples; // URL do Danfe Simples (PDF)
245 | $danfe_etiqueta = (string) $response->danfe_etiqueta; // URL do Danfe Simplificada - Etiqueta (PDF)
246 | $log = $response->log; // Log do Sefaz
247 |
248 | print_r($response);
249 |
250 | exit();
251 |
252 | } else {
253 |
254 | echo 'Erro: '.$response->error.'
';
255 |
256 | if (isset($response->log)){
257 |
258 | echo 'Log:
';
259 | echo '';
260 |
261 | foreach ($response->log as $erros){
262 | foreach ($erros as $erro) {
263 | echo '- '.$erro.'
';
264 | }
265 | }
266 |
267 | echo '
';
268 |
269 | }
270 |
271 | exit();
272 |
273 | }
--------------------------------------------------------------------------------