PHP code example of emitefy / sdk-php

1. Go to this page and download the library: Download emitefy/sdk-php library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

emitefy / sdk-php example snippets


use Emitefy\Sdk\Client;

$client = new Client(token: 'SEU_TOKEN_DE_INTEGRACAO');

$nota = $client->emitir([
    'tipo' => 'nfce', // opcional - "nfe" (padrão) | "nfce"
    'empresa_id' => 'b1e6c1b0-...',
    'natureza_operacao' => 'Venda no varejo',
    'forma_pagamento' => 'pix', // obrigatório só para tipo "nfce"
    'itens' => [
        [
            'codigo' => 'SKU001',
            'descricao' => 'Produto de exemplo',
            'ncm' => '84713012',
            'cfop' => '5102',
            'unidade' => 'UN',
            'quantidade' => 1,
            'valor_unitario' => 99.90,
            'icms' => ['situacao_tributaria' => '102'],
        ],
    ],
], idempotencyKey: 'um-uuid-gerado-pelo-seu-sistema');

// $nota['status'] === 'processando' - a transmissão à SEFAZ é assíncrona.
// Acompanhe via webhook ou consultando de novo mais tarde:
$nota = $client->consultar($nota['id']);

$client->consultar($id);
$client->consultarPorChaveAcesso($chaveDeAcesso); // 44 caracteres

$client->cancelar($id, 'Cliente desistiu da compra antes da entrega.');
$client->cartaCorrecao($id, 'Correção do CFOP do item 1, sem impacto no valor.');

file_put_contents('nota.xml', $client->baixarXml($id));
file_put_contents('danfe.pdf', $client->baixarDanfe($id));   // NFe
file_put_contents('danfce.pdf', $client->baixarDanfce($id)); // NFC-e

use Emitefy\Sdk\Exceptions\EmitefyValidationException;

try {
    $client->emitir($payload);
} catch (EmitefyValidationException $e) {
    // $e->errors: ['destinatario.documento' => ['O campo documento é obrigatório.']]
}

use Emitefy\Sdk\Webhooks\WebhookVerifier;

$rawBody = file_get_contents('php://input');
$signature = $_SERVER['HTTP_X_EMITEFY_SIGNATURE'] ?? '';

$payload = WebhookVerifier::verifyAndDecode($rawBody, $signature, $webhookSecret);
// lança Emitefy\Sdk\Exceptions\EmitefyWebhookSignatureException se a assinatura não conferir

match ($payload['evento']) {
    'nota.autorizada' => /* ... */,
    'nota.rejeitada' => /* ... */,
    default => null,
};

$client = new Client(token: '...', baseUrl: 'http://localhost:8000');
bash
composer