### Environment Configuration Source: https://github.com/cloud-dfe/sdk-nodejs/blob/master/_autodocs/QUICK_REFERENCE.md Example of how to configure the SDK for different environments (Development and Production) by setting environment variables. ```APIDOC ## Configuração por Ambiente ```typescript // Desenvolvimento const devConfig = { ambiente: 2, // HOMOLOGAÇÃO token: process.env.API_TOKEN_DEV, timeout: 120, debug: true }; // Produção const prodConfig = { ambiente: 1, // PRODUÇÃO token: process.env.API_TOKEN_PROD, timeout: 90, debug: false }; const config = process.env.NODE_ENV === "production" ? prodConfig : devConfig; ``` ``` -------------------------------- ### Example: Read File Content Source: https://github.com/cloud-dfe/sdk-nodejs/blob/master/_autodocs/api-reference/Util.md Demonstrates reading the content of a local file using Util.readFile. ```typescript import { Util } from "sdk-cloud-dfe/dist"; const conteudo = Util.readFile("./documento.xml"); console.log(conteudo); ``` -------------------------------- ### Issuing an NFe Source: https://github.com/cloud-dfe/sdk-nodejs/blob/master/_autodocs/QUICK_REFERENCE.md A complete example of how to initialize the NFe module, prepare data, and issue an NFe using the SDK. ```APIDOC ## Padrão Completo de Requisição ```typescript import { Nfe, AMBIENTE_HOMOLOGACAO } from "sdk-cloud-dfe/dist"; async function emitirNFe() { try { // 1. Configurar const config = { ambiente: AMBIENTE_HOMOLOGACAO, token: "seu_token", timeout: 120 }; // 2. Inicializar módulo const nfe = new Nfe(config); // 3. Preparar dados const payload = { // dados da NF-e }; // 4. Executar operação const response = await nfe.cria(payload); // 5. Verificar resposta if (response.error) { console.error("Erro:", response.error); } else { console.log("Sucesso:", response); // Usar response.chave, response.status, etc } } catch (error) { // 6. Tratar exceções console.error("Erro crítico:", error.message); } } emitirNFe(); ``` ``` -------------------------------- ### Example: Encode String to Base64 Source: https://github.com/cloud-dfe/sdk-nodejs/blob/master/_autodocs/api-reference/Util.md Demonstrates how to use the Util.encode method to convert a string to base64. ```typescript import { Util } from "sdk-cloud-dfe/dist"; const encoded = Util.encode("Olá Mundo"); console.log(encoded); // "T2zDoSBNdW5kbw==" ``` -------------------------------- ### Example: Decode Base64 String Source: https://github.com/cloud-dfe/sdk-nodejs/blob/master/_autodocs/api-reference/Util.md Shows how to decode both simple base64 strings and base64 encoded gzip data using Util.decode. ```typescript import { Util } from "sdk-cloud-dfe/dist"; // Decodificar base64 simples const decoded1 = Util.decode("T2zDoSBNdW5kbw=="); console.log(decoded1); // "Olá Mundo" // Decodificar base64 com gzip const decoded2 = Util.decode("H4sIAA..."); // base64 de dados gzip console.log(decoded2); // dados descompactados ``` -------------------------------- ### Basic SDK Initialization Source: https://github.com/cloud-dfe/sdk-nodejs/blob/master/_autodocs/configuration.md Initializes the NFe class with essential configuration parameters: environment and token. Use this for standard production setups. ```typescript import { Nfe, AMBIENTE_PRODUCAO } from "sdk-cloud-dfe/dist"; const config = { ambiente: AMBIENTE_PRODUCAO, token: "seu_token_jwt_aqui" }; const nfe = new Nfe(config); ``` -------------------------------- ### Configure SDK with Environment Variables Source: https://github.com/cloud-dfe/sdk-nodejs/blob/master/_autodocs/configuration.md Configure the SDK by reading environment variables for API tokens. This example sets the environment to '2' and uses the homologation token, falling back to an empty string if not found. ```typescript const config = { ambiente: 2, token: process.env.API_TOKEN_HOM || "", timeout: 120 }; ``` -------------------------------- ### Instantiate Cte Class Source: https://github.com/cloud-dfe/sdk-nodejs/blob/master/_autodocs/api-reference/Cte.md Instantiate the Cte class with environment and token configuration. This is the initial setup required before using any Cte methods. ```typescript import { Cte, AMBIENTE_HOMOLOGACAO } from "sdk-cloud-dfe/dist"; const cte = new Cte({ ambiente: AMBIENTE_HOMOLOGACAO, token: "seu_token_jwt" }); ``` -------------------------------- ### Emit NFe Request Source: https://github.com/cloud-dfe/sdk-nodejs/blob/master/_autodocs/QUICK_REFERENCE.md Example of how to initialize the NFe module, prepare data, and emit an NFe. Includes error handling for both API responses and critical exceptions. ```typescript import { Nfe, AMBIENTE_HOMOLOGACAO } from "sdk-cloud-dfe/dist"; async function emitirNFe() { try { // 1. Configurar const config = { ambiente: AMBIENTE_HOMOLOGACAO, token: "seu_token", timeout: 120 }; // 2. Inicializar módulo const nfe = new Nfe(config); // 3. Preparar dados const payload = { // dados da NF-e }; // 4. Executar operação const response = await nfe.cria(payload); // 5. Verificar resposta if (response.error) { console.error("Erro:", response.error); } else { console.log("Sucesso:", response); // Usar response.chave, response.status, etc } } catch (error) { // 6. Tratar exceções console.error("Erro crítico:", error.message); } } emitirNFe(); ``` -------------------------------- ### Get Open MDF-e List Source: https://github.com/cloud-dfe/sdk-nodejs/blob/master/_autodocs/api-reference/Mdfe.md Retrieves a list of all open MDF-e documents. ```APIDOC ## GET /mdfe/abertos ### Description Gets a list of open MDF-e documents. ### Method GET ### Endpoint /mdfe/abertos ``` -------------------------------- ### Timeout via Options Configuration Source: https://github.com/cloud-dfe/sdk-nodejs/blob/master/_autodocs/configuration.md Demonstrates how to override the default or custom timeout using the 'options' object. This example sets a timeout of 180 seconds. ```typescript // Timeout via options (sobrescreve) const config3 = { ambiente: 2, token: "seu_token", timeout: 60, options: { timeout: 180 // Usa 180 em vez de 60 } }; ``` -------------------------------- ### Handle Configuration Validation Errors Source: https://github.com/cloud-dfe/sdk-nodejs/blob/master/_autodocs/configuration.md Catch and handle potential errors during NFe instantiation. This example specifically checks for missing tokens or invalid environments. ```typescript try { const nfe = new Nfe(config); } catch (error) { if (error.message.includes("TOKEN")) { console.error("Token não configurado"); } else if (error.message.includes("AMBIENTE")) { console.error("Ambiente inválido (use 1 ou 2)"); } } ``` -------------------------------- ### Common Module Imports Source: https://github.com/cloud-dfe/sdk-nodejs/blob/master/_autodocs/QUICK_REFERENCE.md Import common modules from the SDK. Ensure you have the 'sdk-cloud-dfe' package installed. ```typescript import { Nfe, Nfce, Cte, CteOs, Mdfe, Nfse, Nfcom, Dfe, Averbacao, Certificado, Emitente, Gnre, Softhouse, Util, Webhook, AMBIENTE_PRODUCAO, AMBIENTE_HOMOLOGACAO } from "sdk-cloud-dfe/dist"; ``` -------------------------------- ### CT-e OS (Outros Serviços) Operations Source: https://github.com/cloud-dfe/sdk-nodejs/blob/master/_autodocs/MANIFEST.txt This section details the operations available for CT-e OS, covering 10 methods and 12 documented HTTP routes with standard examples. ```APIDOC ## CT-e OS (Outros Serviços) ### Description Provides methods for managing Transport Documents for Other Services (CT-e OS), including creation, consultation, and other standard operations. ### Methods - **create**: Creates a new CT-e OS. - **consult**: Consults an existing CT-e OS. - ... (8 additional operations) ### Endpoints - **POST /cte-os**: Endpoint for creating a CT-e OS. - **GET /cte-os/{id}**: Endpoint for consulting a CT-e OS by ID. - ... (10 additional endpoints) ### Examples Standard examples are provided for CT-e OS operations. ``` -------------------------------- ### MDF-e (Manifesto Eletrônico) Operations Source: https://github.com/cloud-dfe/sdk-nodejs/blob/master/_autodocs/MANIFEST.txt This section details the operations available for MDF-e, covering 13 methods and 14 documented HTTP routes with examples for multimodal transport operations. ```APIDOC ## MDF-e (Manifesto Eletrônico) ### Description Provides methods for managing Electronic Manifests (MDF-e), including operations related to multimodal transport. ### Methods - **create**: Creates a new MDF-e. - **consult**: Consults an existing MDF-e. - **cancel**: Cancels an MDF-e. - ... (10 additional operations) ### Endpoints - **POST /mdfe**: Endpoint for creating an MDF-e. - **GET /mdfe/{id}**: Endpoint for consulting an MDF-e by ID. - **DELETE /mdfe/{id}**: Endpoint for canceling an MDF-e by ID. - ... (11 additional endpoints) ### Examples Examples for multimodal transport operations are provided for MDF-e. ``` -------------------------------- ### DF-e (Gerenciamento Agregado) Operations Source: https://github.com/cloud-dfe/sdk-nodejs/blob/master/_autodocs/MANIFEST.txt This section details the operations available for DFe, covering 8 methods and 8 documented HTTP routes with examples for search and download. ```APIDOC ## DF-e (Gerenciamento Agregado) ### Description Provides methods for managing aggregated Electronic Document Flows (DF-e), including search and download operations. ### Methods - **search**: Searches for DF-e documents. - **download**: Downloads DF-e documents. - ... (6 additional operations) ### Endpoints - **GET /dfe/search**: Endpoint for searching DF-e documents. - **GET /dfe/download/{id}**: Endpoint for downloading a specific DF-e document. - ... (6 additional endpoints) ### Examples Examples for search and download operations are provided for DFe. ``` -------------------------------- ### NF-e (Nota Fiscal Eletrônica) Operations Source: https://github.com/cloud-dfe/sdk-nodejs/blob/master/_autodocs/MANIFEST.txt This section details the operations available for NF-e, including creating, consulting, canceling, and other related actions. It covers 18 methods and 19 documented HTTP routes with full simulation examples. ```APIDOC ## NF-e (Nota Fiscal Eletrônica) ### Description Provides methods for managing Electronic Invoices (NF-e), including creation, consultation, cancellation, and other related operations. ### Methods - **create**: Creates a new NF-e. - **consult**: Consults an existing NF-e. - **cancel**: Cancels an NF-e. - ... (15 additional operations) ### Endpoints - **POST /nfe**: Endpoint for creating an NF-e. - **GET /nfe/{id}**: Endpoint for consulting an NF-e by ID. - **DELETE /nfe/{id}**: Endpoint for canceling an NF-e by ID. - ... (16 additional endpoints) ### Examples Full simulation examples are provided for NF-e operations. ``` -------------------------------- ### Instalar SDK com npm Source: https://github.com/cloud-dfe/sdk-nodejs/blob/master/README.md Use este comando para instalar o SDK via npm. ```bash npm i sdk-cloud-dfe ``` -------------------------------- ### Webhook Validation Example Source: https://github.com/cloud-dfe/sdk-nodejs/blob/master/_autodocs/api-reference/Webhook.md Example of how to use the `Webhook.isValid` method within an Express.js application to authenticate incoming webhooks. It handles valid and invalid webhook scenarios, as well as potential errors during validation. ```typescript import { Webhook } from "sdk-cloud-dfe/dist"; import express from "express"; const app = express(); app.post("/webhook", (req, res) => { const token = "seu_token_webhook"; const payload = JSON.stringify(req.body); try { if (Webhook.isValid(token, payload)) { // Webhook válido e autentico console.log("Webhook autenticado"); res.status(200).json({ success: true }); } else { res.status(401).json({ error: "Webhook inválido" }); } } catch (error) { console.error(error.message); res.status(400).json({ error: error.message }); } }); ``` -------------------------------- ### Get Municipality Info Source: https://github.com/cloud-dfe/sdk-nodejs/blob/master/_autodocs/api-reference/Nfse.md Obtains information about NFS-e for a municipality. ```APIDOC ## GET /nfse/info/{ibge} ### Description Obtém informações sobre NFS-e de um município. ### Method GET ### Endpoint /nfse/info/{ibge} ### Parameters #### Path Parameters - **ibge** (string) - Required - The IBGE code of the municipality #### Request Body - **payload** (any) - Required - Object with the `ibge` property (municipality code) ``` -------------------------------- ### Instalar SDK com yarn Source: https://github.com/cloud-dfe/sdk-nodejs/blob/master/README.md Use este comando para instalar o SDK via yarn. ```bash yarn add sdk-cloud-dfe ``` -------------------------------- ### Recommended Configuration for Development/Staging Source: https://github.com/cloud-dfe/sdk-nodejs/blob/master/_autodocs/configuration.md Set up configuration for development and staging environments. Imports `AMBIENTE_HOMOLOGACAO` and uses environment variables for tokens. ```typescript import { AMBIENTE_HOMOLOGACAO } from "sdk-cloud-dfe/dist"; export const devConfig = { ambiente: AMBIENTE_HOMOLOGACAO, token: process.env.API_TOKEN_HOM, timeout: 120, debug: true }; ``` -------------------------------- ### Check Offline Status Source: https://github.com/cloud-dfe/sdk-nodejs/blob/master/_autodocs/api-reference/Nfse.md Gets the offline availability status of the API. ```APIDOC ## GET /nfse/offline ### Description Obtém status de disponibilidade offline da API. ### Method GET ### Endpoint /nfse/offline ``` -------------------------------- ### Get Nfse PDF Source: https://github.com/cloud-dfe/sdk-nodejs/blob/master/_autodocs/api-reference/Nfse.md Retrieves the PDF of an NFS-e using its key. ```APIDOC ## GET /nfse/pdf/{chave} ### Description Obtém PDF de uma NFS-e. ### Method GET ### Endpoint /nfse/pdf/{chave} ### Parameters #### Path Parameters - **chave** (string) - Required - The key of the NFS-e #### Request Body - **payload** (any) - Required - Object with the `chave` property ``` -------------------------------- ### Get NFC-e PDF Source: https://github.com/cloud-dfe/sdk-nodejs/blob/master/_autodocs/api-reference/Nfce.md Retrieves the PDF representation of an NFC-e document. ```APIDOC ## GET /nfce/pdf/{chave} ### Description Gets the PDF of an NFC-e. ### Method GET ### Endpoint /nfce/pdf/{chave} ### Parameters #### Path Parameters - **chave** (string) - Required - The key of the NFC-e to get the PDF for ### Note Executes `checkKey()` validation. ``` -------------------------------- ### Initialize Client with Configuration Source: https://github.com/cloud-dfe/sdk-nodejs/blob/master/_autodocs/api-reference/Client.md Instantiate the Client class with necessary configuration parameters. Ensure 'token' is a valid JWT and 'ambiente' is either 1 (PRODUÇÃO) or 2 (HOMOLOGAÇÃO). ```typescript import { Client } from "sdk-cloud-dfe/dist"; const config = { token: "seu_token_jwt", ambiente: 2, version: "1", timeout: 90, port: 443 }; const client = new Client(config); ``` -------------------------------- ### Get MDF-e PDF Source: https://github.com/cloud-dfe/sdk-nodejs/blob/master/_autodocs/api-reference/Mdfe.md Retrieves the PDF document for a specific MDF-e. ```APIDOC ## GET /mdfe/{chave} ### Description Gets the PDF of an MDF-e. ### Method GET ### Endpoint /mdfe/{chave} ### Parameters #### Path Parameters - **chave** (string) - Required - The key of the MDF-e ### Validation Executes `checkKey()`. ``` -------------------------------- ### Client Constructor Source: https://github.com/cloud-dfe/sdk-nodejs/blob/master/_autodocs/api-reference/Client.md Initializes an HTTP client with environment, authentication, and timeout configurations. It validates essential configuration parameters like token and environment. ```APIDOC ## Constructor Client(config: ConfigClient) ### Description Initializes an HTTP client with environment, authentication, and timeout configurations. ### Parameters #### Path Parameters None #### Query Parameters None #### Request Body - **config** (ConfigClient) - Required - Client configuration object. - **config.token** (string) - Required - JWT token for authentication. - **config.ambiente** (number) - Required - Environment (1 for PRODUCTION, 2 for HOMOLOGATION). - **config.version** (string) - Optional - API version (defaults to "1"). - **config.timeout** (number) - Optional - Connection timeout in seconds (defaults to 60). - **config.port** (number) - Optional - Connection port (defaults to 443). - **config.debug** (boolean) - Optional - Debug mode (defaults to false). - **config.options** (object) - Optional - Alternative configurations. ### Request Example ```typescript import { Client } from "sdk-cloud-dfe/dist"; const config = { token: "seu_token_jwt", ambiente: 2, version: "1", timeout: 90, port: 443 }; const client = new Client(config); ``` ### Response None (constructor) ### Errors - Throws an error if `config` is not provided. - Throws an error if `ambiente` is not 1 or 2. - Throws an error if `token` is empty, null, or not a string. ``` -------------------------------- ### Recommended Configuration for Production Source: https://github.com/cloud-dfe/sdk-nodejs/blob/master/_autodocs/configuration.md Configure settings for the production environment. Imports `AMBIENTE_PRODUCAO` and utilizes environment variables for API tokens. ```typescript import { AMBIENTE_PRODUCAO } from "sdk-cloud-dfe/dist"; export const prodConfig = { ambiente: AMBIENTE_PRODUCAO, token: process.env.API_TOKEN_PROD, timeout: 90, debug: false }; ``` -------------------------------- ### Get NFC-e API Status Source: https://github.com/cloud-dfe/sdk-nodejs/blob/master/_autodocs/api-reference/Nfce.md Retrieves the current status of the NFC-e API. ```APIDOC ## GET /nfce/status ### Description Gets the status of the NFC-e API. ### Method GET ### Endpoint /nfce/status ``` -------------------------------- ### Get Offline API Status Source: https://github.com/cloud-dfe/sdk-nodejs/blob/master/_autodocs/api-reference/Mdfe.md Retrieves the offline availability status of the API. ```APIDOC ## GET /mdfe/offline ### Description Gets the offline availability status of the API. ### Method GET ### Endpoint /mdfe/offline ``` -------------------------------- ### Get MDF-e API Status Source: https://github.com/cloud-dfe/sdk-nodejs/blob/master/_autodocs/api-reference/Mdfe.md Retrieves the current status of the MDF-e API. ```APIDOC ## GET /mdfe/status ### Description Gets the status of the MDF-e API. ### Method GET ### Endpoint /mdfe/status ``` -------------------------------- ### Get NFC-e Offline Mode Status Source: https://github.com/cloud-dfe/sdk-nodejs/blob/master/_autodocs/api-reference/Nfce.md Retrieves the offline mode status of the NFC-e API. ```APIDOC ## GET /nfce/offline ### Description Gets the offline mode status of the NFC-e API. ### Method GET ### Endpoint /nfce/offline ``` -------------------------------- ### Constructor Source: https://github.com/cloud-dfe/sdk-nodejs/blob/master/_autodocs/api-reference/Cte.md Initializes the Cte class with configuration parameters. ```APIDOC ## Constructor Herda de [Base](./Base.md). ```typescript constructor(params: ConfigBase) ``` ### Exemplo ```typescript import { Cte, AMBIENTE_HOMOLOGACAO } from "sdk-cloud-dfe/dist"; const cte = new Cte({ ambiente: AMBIENTE_HOMOLOGACAO, token: "seu_token_jwt" }); ``` ``` -------------------------------- ### Get MDF-e API Status Source: https://github.com/cloud-dfe/sdk-nodejs/blob/master/_autodocs/api-reference/Mdfe.md Retrieves the current status of the MDF-e API. No payload is required. ```typescript async status(): Promise ``` -------------------------------- ### Instantiate Nfse Class Source: https://github.com/cloud-dfe/sdk-nodejs/blob/master/_autodocs/api-reference/Nfse.md Demonstrates how to create an instance of the Nfse class with production environment and JWT token. ```typescript import { Nfse, AMBIENTE_PRODUCAO } from "sdk-cloud-dfe/dist"; const nfse = new Nfse({ ambiente: AMBIENTE_PRODUCAO, token: "seu_token_jwt" }); ``` -------------------------------- ### Initialize Softhouse Client Source: https://github.com/cloud-dfe/sdk-nodejs/blob/master/_autodocs/api-reference/Softhouse.md Instantiate the Softhouse client with environment and JWT token. This is required before making any API calls. ```typescript import { Softhouse, AMBIENTE_HOMOLOGACAO } from "sdk-cloud-dfe/dist"; const softhouse = new Softhouse({ ambiente: AMBIENTE_HOMOLOGACAO, token: "seu_token_jwt" }); ``` -------------------------------- ### Get Open MDF-e List Source: https://github.com/cloud-dfe/sdk-nodejs/blob/master/_autodocs/api-reference/Mdfe.md Retrieves a list of all currently open MDF-e documents. No payload is required. ```typescript async abertos(): Promise ``` -------------------------------- ### Constructor Source: https://github.com/cloud-dfe/sdk-nodejs/blob/master/_autodocs/api-reference/Dfe.md Initializes the Dfe class with configuration parameters. It inherits from the Base class. ```APIDOC ## Constructor ```typescript constructor(params: ConfigBase) ``` ### Description Initializes the Dfe class with configuration parameters. ### Example ```typescript import { Dfe, AMBIENTE_PRODUCAO } from "sdk-cloud-dfe/dist"; const dfe = new Dfe({ ambiente: AMBIENTE_PRODUCAO, token: "seu_token_jwt" }); ``` ``` -------------------------------- ### Get MDF-e PDF Source: https://github.com/cloud-dfe/sdk-nodejs/blob/master/_autodocs/api-reference/Mdfe.md Retrieves the PDF document of an MDF-e. The payload must include the 'chave' property. ```typescript async pdf(payload: any): Promise ``` -------------------------------- ### Exemplo de ConfigBase Source: https://github.com/cloud-dfe/sdk-nodejs/blob/master/_autodocs/types.md Demonstra como instanciar a interface ConfigBase com valores específicos para ambiente, token, versão, timeout e opções de depuração. ```typescript const config: ConfigBase = { ambiente: 2, token: "seu_token_jwt", version: "1", timeout: 120, options: { debug: true } }; ``` -------------------------------- ### Create Multiple SDK Instances Source: https://github.com/cloud-dfe/sdk-nodejs/blob/master/_autodocs/configuration.md Instantiate multiple NFe or Cte objects with different configurations for testing and production environments. Imports include environment constants. ```typescript import { Nfe, Cte, AMBIENTE_HOMOLOGACAO, AMBIENTE_PRODUCAO } from "sdk-cloud-dfe/dist"; // Instância para testes const nfeTest = new Nfe({ ambiente: AMBIENTE_HOMOLOGACAO, token: "token_teste" }); // Instância para produção const nfeProd = new Nfe({ ambiente: AMBIENTE_PRODUCAO, token: "token_producao" }); // Instâncias de módulos diferentes const cte = new Cte({ ambiente: AMBIENTE_PRODUCAO, token: "token_producao" }); ``` -------------------------------- ### Get Municipal NFS-e Info Source: https://github.com/cloud-dfe/sdk-nodejs/blob/master/_autodocs/api-reference/Nfse.md Retrieves information about NFS-e for a specific municipality. Requires a payload with the municipality's IBGE code. ```typescript async info(payload: any): Promise ``` -------------------------------- ### Estrutura de Documentação para Tipos/Interfaces Source: https://github.com/cloud-dfe/sdk-nodejs/blob/master/_autodocs/README.md Documentação para tipos e interfaces exportadas, incluindo definição, campos e classes que os utilizam. ```markdown # Nome da Interface/Tipo Descrição ## Definição Código da interface ## Campos Tabela com tipos e descrições ## Usado por Classes que utilizam este tipo ``` -------------------------------- ### Get Nfce API Status Source: https://github.com/cloud-dfe/sdk-nodejs/blob/master/_autodocs/api-reference/Nfce.md Retrieve the current status of the NFC-e API. This is useful for checking service availability before performing operations. ```typescript const nfce = new Nfce(config); const apiStatus = await nfce.status(); ``` -------------------------------- ### Complete SDK Initialization Source: https://github.com/cloud-dfe/sdk-nodejs/blob/master/_autodocs/configuration.md Initializes the NFe class with all available configuration parameters, including optional settings and overrides via the 'options' object. Useful for testing or specific environment requirements. ```typescript import { Nfe, AMBIENTE_HOMOLOGACAO } from "sdk-cloud-dfe/dist"; const config = { ambiente: AMBIENTE_HOMOLOGACAO, token: "seu_token_jwt", version: "1", timeout: 120, port: 443, debug: true, options: { timeout: 180, // Sobrescreve timeout acima port: 443, debug: false } }; const nfe = new Nfe(config); ``` -------------------------------- ### Recommended Environment Variables Source: https://github.com/cloud-dfe/sdk-nodejs/blob/master/_autodocs/QUICK_REFERENCE.md Set these environment variables for API token, environment, and timeout configurations. Adjust API_TOKEN_DEV and API_TOKEN_PROD with your actual tokens. ```bash # .env API_TOKEN_DEV=seu_token_desenvolvimento API_TOKEN_PROD=seu_token_producao API_VERSION=1 API_TIMEOUT=120 API_DEBUG=false NODE_ENV=development ``` -------------------------------- ### Gnre Constructor Source: https://github.com/cloud-dfe/sdk-nodejs/blob/master/_autodocs/api-reference/Gnre.md Initializes the Gnre client with configuration parameters. ```APIDOC ## Constructor Herdado de [Base](./Base.md). ```typescript constructor(params: ConfigBase) ``` ### Exemplo ```typescript import { Gnre, AMBIENTE_PRODUCAO } from "sdk-cloud-dfe/dist"; const gnre = new Gnre({ ambiente: AMBIENTE_PRODUCAO, token: "seu_token_jwt" }); ``` ``` -------------------------------- ### Estrutura de Documentação para Classes de Módulo Source: https://github.com/cloud-dfe/sdk-nodejs/blob/master/_autodocs/README.md Cada documento de classe de módulo segue uma estrutura consistente, detalhando localização, construtor, e métodos públicos com exemplos de uso. ```markdown # Título da Classe Descrição breve do módulo ## Localização Caminho do arquivo ## Constructor Assinatura, parâmetros, erros, exemplo ## Métodos Públicos Para cada método: - Assinatura - Parâmetros em tabela - Retorno - Endpoint HTTP - Exemplo de uso ``` -------------------------------- ### Initialize NFCom Client Source: https://github.com/cloud-dfe/sdk-nodejs/blob/master/_autodocs/api-reference/Nfcom.md Instantiate the NFCom client with environment and token. Ensure you replace 'seu_token_jwt' with your actual JWT token. ```typescript import { Nfcom, AMBIENTE_HOMOLOGACAO } from "sdk-cloud-dfe/dist"; const nfcom = new Nfcom({ ambiente: AMBIENTE_HOMOLOGACAO, token: "seu_token_jwt" }); ``` -------------------------------- ### Production Environment Configuration Source: https://github.com/cloud-dfe/sdk-nodejs/blob/master/_autodocs/configuration.md Use this configuration for emitting real documents to the Federal Revenue. Ensure you use your production token. ```typescript import { AMBIENTE_PRODUCAO } from "sdk-cloud-dfe/dist"; const config = { ambiente: AMBIENTE_PRODUCAO, token: "seu_token_producao" }; ``` -------------------------------- ### NFCom (Comunicação) Operations Source: https://github.com/cloud-dfe/sdk-nodejs/blob/master/_autodocs/MANIFEST.txt This section details the operations available for NFCom, covering 9 methods and 9 documented HTTP routes with standard examples. ```APIDOC ## NFCom (Comunicação) ### Description Provides methods for managing Communication Invoices (NFCom). ### Methods - **create**: Creates a new NFCom. - **consult**: Consults an existing NFCom. - ... (7 additional operations) ### Endpoints - **POST /nfcom**: Endpoint for creating an NFCom. - **GET /nfcom/{id}**: Endpoint for consulting an NFCom by ID. - ... (7 additional endpoints) ### Examples Standard examples are provided for NFCom operations. ``` -------------------------------- ### preview(payload: any) Source: https://github.com/cloud-dfe/sdk-nodejs/blob/master/_autodocs/api-reference/Cte.md Gera pré-visualização de um CT-e. ```APIDOC ## preview(payload: any): Promise Gera pré-visualização de um CT-e. ```typescript async preview(payload: any): Promise ``` | Parâmetro | Tipo | Obrigatório | Descrição | |-----------|------|-----------|-----------| | payload | any | Sim | Dados do CT-e | **Retorna:** Promise com dados de pré-visualização. **Endpoint:** POST `/cte/preview` ``` -------------------------------- ### Instantiate CteOs Client Source: https://github.com/cloud-dfe/sdk-nodejs/blob/master/_autodocs/api-reference/CteOs.md Initializes the CteOs client with environment and token configuration. Ensure you replace 'seu_token_jwt' with your actual JWT token. ```typescript import { CteOs, AMBIENTE_PRODUCAO } from "sdk-cloud-dfe/dist"; const cteos = new CteOs({ ambiente: AMBIENTE_PRODUCAO, token: "seu_token_jwt" }); ``` -------------------------------- ### CT-e (Conhecimento de Transporte) Operations Source: https://github.com/cloud-dfe/sdk-nodejs/blob/master/_autodocs/MANIFEST.txt This section details the operations available for CT-e, covering 10 methods and 12 documented HTTP routes with simulation examples. ```APIDOC ## CT-e (Conhecimento de Transporte) ### Description Provides methods for managing Transport Documents (CT-e), including creation, consultation, and other standard operations. ### Methods - **create**: Creates a new CT-e. - **consult**: Consults an existing CT-e. - ... (8 additional operations) ### Endpoints - **POST /cte**: Endpoint for creating a CT-e. - **GET /cte/{id}**: Endpoint for consulting a CT-e by ID. - ... (10 additional endpoints) ### Examples Simulation examples are provided for CT-e operations. ``` -------------------------------- ### Initialize Gnre Client Source: https://github.com/cloud-dfe/sdk-nodejs/blob/master/_autodocs/api-reference/Gnre.md Instantiate the Gnre client with production environment and a JWT token. Ensure you replace 'seu_token_jwt' with your actual token. ```typescript import { Gnre, AMBIENTE_PRODUCAO } from "sdk-cloud-dfe/dist"; const gnre = new Gnre({ ambiente: AMBIENTE_PRODUCAO, token: "seu_token_jwt" }); ``` -------------------------------- ### Nfse Constructor Source: https://github.com/cloud-dfe/sdk-nodejs/blob/master/_autodocs/api-reference/Nfse.md Initializes the Nfse class with configuration parameters. This class inherits from Base and requires a configuration object including environment and token. ```APIDOC ## Constructor Inherited from [Base](./Base.md). ```typescript constructor(params: ConfigBase) ``` ### Example ```typescript import { Nfse, AMBIENTE_PRODUCAO } from "sdk-cloud-dfe/dist"; const nfse = new Nfse({ ambiente: AMBIENTE_PRODUCAO, token: "seu_token_jwt" }); ``` ``` -------------------------------- ### ConfigBase Interface Source: https://github.com/cloud-dfe/sdk-nodejs/blob/master/_autodocs/types.md Interface de configuração base utilizada por classes que herdam de Base. Define parâmetros como ambiente, token, versionamento, timeout, porta, modo de depuração e opções configuráveis. ```APIDOC ## Interface: ConfigBase ### Description Interface de configuração para classes que herdam de Base. Define parâmetros essenciais para a comunicação com a API. ### Fields - **ambiente** (number) - Required - 1 (PRODUÇÃO) ou 2 (HOMOLOGAÇÃO) - **token** (string) - Required - Token JWT para autenticação - **version** (string) - Optional - Versão da API (padrão: "1") - **timeout** (number) - Optional - Timeout em segundos (padrão: 60) - **port** (number) - Optional - Porta de conexão (padrão: 443) - **debug** (boolean) - Optional - Modo de depuração (padrão: false) - **options** (object) - Optional - Objeto com configurações alternativas - **options.timeout** (number) - Optional - Timeout em segundos (sobrescreve timeout direto) - **options.port** (number) - Optional - Porta (sobrescreve port direto) - **options.debug** (boolean) - Optional - Debug (sobrescreve debug direto) ### Example ```typescript const config: ConfigBase = { ambiente: 2, token: "seu_token_jwt", version: "1", timeout: 120, options: { debug: true } }; ``` ``` -------------------------------- ### NFS-e (Nota Fiscal de Serviço) Operations Source: https://github.com/cloud-dfe/sdk-nodejs/blob/master/_autodocs/MANIFEST.txt This section details the operations available for NFS-e, covering 10 methods and 13 documented HTTP routes with examples for municipal operations. ```APIDOC ## NFS-e (Nota Fiscal de Serviço) ### Description Provides methods for managing Service Invoices (NFS-e), including municipal operations. ### Methods - **create**: Creates a new NFS-e. - **consult**: Consults an existing NFS-e. - ... (8 additional operations) ### Endpoints - **POST /nfse**: Endpoint for creating an NFS-e. - **GET /nfse/{id}**: Endpoint for consulting an NFS-e by ID. - ... (11 additional endpoints) ### Examples Examples for municipal operations are provided for NFS-e. ``` -------------------------------- ### Exemplo de uso de AMBIENTE_PRODUCAO Source: https://github.com/cloud-dfe/sdk-nodejs/blob/master/_autodocs/types.md Mostra como importar e utilizar a constante AMBIENTE_PRODUCAO ao definir a configuração para o SDK. ```typescript import { AMBIENTE_PRODUCAO } from "sdk-cloud-dfe/dist"; const config = { ambiente: AMBIENTE_PRODUCAO, token: "seu_token" }; ``` -------------------------------- ### NFC-e (Nota Fiscal de Consumidor) Operations Source: https://github.com/cloud-dfe/sdk-nodejs/blob/master/_autodocs/MANIFEST.txt This section details the operations available for NFC-e, covering 10 methods and 12 documented HTTP routes with complete standard examples. ```APIDOC ## NFC-e (Nota Fiscal de Consumidor) ### Description Provides methods for managing Electronic Consumer Invoices (NFC-e), including creation, consultation, and other standard operations. ### Methods - **create**: Creates a new NFC-e. - **consult**: Consults an existing NFC-e. - ... (8 additional operations) ### Endpoints - **POST /nfce**: Endpoint for creating an NFC-e. - **GET /nfce/{id}**: Endpoint for consulting an NFC-e by ID. - ... (10 additional endpoints) ### Examples Complete standard examples are provided for NFC-e operations. ``` -------------------------------- ### send Method Source: https://github.com/cloud-dfe/sdk-nodejs/blob/master/_autodocs/api-reference/Client.md Sends an HTTP request to the API with standard authentication headers. Supports GET, POST, PUT, and DELETE methods. It returns a Promise with the API response in JSON format. ```APIDOC ## send(method: string, url: string, data?: any): Promise ### Description Sends an HTTP request to the API with standard authentication headers. Supports various HTTP methods and includes an optional data payload for methods like POST and PUT. ### Method - **GET** - **POST** - **PUT** - **DELETE** ### Endpoint [URL determined by the `url` parameter and client configuration] ### Parameters #### Path Parameters None #### Query Parameters None #### Request Body - **method** (string) - Required - HTTP method: "GET", "POST", "PUT", "DELETE". - **url** (string) - Required - API route (e.g., "/nfe", "/nfe/status"). - **data** (any) - Optional - Payload to send (required for POST/PUT). ### Request Example ```typescript const client = new Client(config); // GET request const status = await client.send("GET", "/nfe/status", []); // POST request const response = await client.send("POST", "/nfe", { // payload do documento }); ``` ### Response #### Success Response - **Promise** - Resolves with the API response in JSON format. #### Response Example ```json { "example": "response body" } ``` ### Errors - Throws an error if the HTTP request fails (message: "Erro ao enviar solicitação HTTP"). - Network or timeout errors will also throw exceptions. ``` -------------------------------- ### ConfigClient Interface Source: https://github.com/cloud-dfe/sdk-nodejs/blob/master/_autodocs/types.md Interface de configuração específica para a classe Client. Inclui os campos essenciais para a inicialização do cliente. ```APIDOC ## Interface: ConfigClient ### Description Interface de configuração para a classe Client. Define os parâmetros necessários para a inicialização e operação do cliente. ### Fields - **token** (string) - Required - Token JWT - **ambiente** (number) - Required - 1 (PRODUÇÃO) ou 2 (HOMOLOGAÇÃO) - **version** (string) - Optional - Versão da API - **timeout** (number) - Optional - Timeout em segundos - **port** (number) - Optional - Porta de conexão - **debug** (boolean) - Optional - Modo de depuração - **options** (object) - Optional - Configurações alternativas - **options.timeout** (number) - Optional - Timeout em segundos - **options.port** (number) - Optional - Porta - **options.debug** (boolean) - Optional - Debug ``` -------------------------------- ### Initialize Emitente Source: https://github.com/cloud-dfe/sdk-nodejs/blob/master/_autodocs/api-reference/Emitente.md Instantiate the Emitente class with configuration including environment and JWT token. ```typescript import { Emitente, AMBIENTE_HOMOLOGACAO } from "sdk-cloud-dfe/dist"; const emitente = new Emitente({ ambiente: AMBIENTE_HOMOLOGACAO, token: "seu_token_jwt" }); ``` -------------------------------- ### backup(payload: any) Source: https://github.com/cloud-dfe/sdk-nodejs/blob/master/_autodocs/api-reference/Cte.md Realiza backup de CT-e. ```APIDOC ## backup(payload: any): Promise Realiza backup de CT-e. ```typescript async backup(payload: any): Promise ``` | Parâmetro | Tipo | Obrigatório | Descrição | |-----------|------|-----------|-----------| | payload | any | Sim | Parâmetros do backup | **Retorna:** Promise com arquivo de backup. **Endpoint:** POST `/cte/backup` ``` -------------------------------- ### Get Document Events Source: https://github.com/cloud-dfe/sdk-nodejs/blob/master/_autodocs/api-reference/Dfe.md Use the `eventos` method to retrieve events associated with a fiscal document using its key. The payload must include the `chave` property. This method validates the key before fetching events and returns a promise with a list of events. ```typescript async eventos(payload: any): Promise ``` -------------------------------- ### Initialize Averbacao Class Source: https://github.com/cloud-dfe/sdk-nodejs/blob/master/_autodocs/api-reference/Averbacao.md Instantiate the Averbacao class with environment and JWT token for authentication. ```typescript import { Averbacao, AMBIENTE_HOMOLOGACAO } from "sdk-cloud-dfe/dist"; const averbacao = new Averbacao({ ambiente: AMBIENTE_HOMOLOGACAO, token: "seu_token_jwt" }); ``` -------------------------------- ### preview(payload) Source: https://github.com/cloud-dfe/sdk-nodejs/blob/master/_autodocs/api-reference/CteOs.md Gera pré-visualização de um CT-e OS. ```APIDOC ## POST /cteos/preview ### Description Gera pré-visualização de um CT-e OS. ### Method POST ### Endpoint /cteos/preview ### Parameters #### Request Body - **payload** (any) - Required - Dados do CT-e OS para gerar a pré-visualização. ### Response #### Success Response (200) - **dadosPrevisualizacao** (any) - Dados da pré-visualização do CT-e OS. ``` -------------------------------- ### Send HTTP Request using Client Source: https://github.com/cloud-dfe/sdk-nodejs/blob/master/_autodocs/api-reference/Client.md Utilize the `send` method for standard HTTP requests (GET, POST, PUT, DELETE). Provide the HTTP method, API route, and an optional payload for POST/PUT requests. Errors due to network issues or timeouts will be thrown. ```typescript const client = new Client(config); // GET request const status = await client.send("GET", "/nfe/status", []); // POST request const response = await client.send("POST", "/nfe", { // payload do documento }); ``` -------------------------------- ### importa(payload: any) Source: https://github.com/cloud-dfe/sdk-nodejs/blob/master/_autodocs/api-reference/Cte.md Importa CT-e para o sistema. ```APIDOC ## importa(payload: any): Promise Importa CT-e para o sistema. ```typescript async importa(payload: any): Promise ``` | Parâmetro | Tipo | Obrigatório | Descrição | |-----------|------|-----------|-----------| | payload | any | Sim | Dados para importação | **Retorna:** Promise com resultado da importação. **Endpoint:** POST `/cte/importa` ``` -------------------------------- ### backup(payload) Source: https://github.com/cloud-dfe/sdk-nodejs/blob/master/_autodocs/api-reference/CteOs.md Realiza backup de CT-e OS. ```APIDOC ## POST /cteos/backup ### Description Realiza backup de CT-e OS. ### Method POST ### Endpoint /cteos/backup ### Parameters #### Request Body - **payload** (any) - Required - Parâmetros para a realização do backup. ### Response #### Success Response (200) - **arquivoBackup** (any) - O arquivo de backup gerado. ``` -------------------------------- ### SDK Configuration Interface Source: https://github.com/cloud-dfe/sdk-nodejs/blob/master/_autodocs/configuration.md Defines the base configuration structure for SDK classes. Includes mandatory environment and token, with optional parameters for version, timeout, port, debug, and advanced options. ```typescript interface ConfigBase { ambiente: number; // Obrigatório token: string; // Obrigatório version?: "1" | "2" | string; // Opcional: padrão "1" timeout?: number; // Opcional: padrão 60 segundos port?: number; // Opcional: padrão 443 debug?: boolean; // Opcional: padrão false options?: { timeout?: number; port?: number; debug?: boolean; } // Opcional: sobrescreve acima } ``` -------------------------------- ### Configure Environments Source: https://github.com/cloud-dfe/sdk-nodejs/blob/master/_autodocs/QUICK_REFERENCE.md Define different configurations for development and production environments, including API tokens and timeouts. Select the appropriate configuration based on the NODE_ENV variable. ```typescript // Desenvolvimento const devConfig = { ambiente: 2, // HOMOLOGAÇÃO token: process.env.API_TOKEN_DEV, timeout: 120, debug: true }; // Produção const prodConfig = { ambiente: 1, // PRODUÇÃO token: process.env.API_TOKEN_PROD, timeout: 90, debug: false }; const config = process.env.NODE_ENV === "production" ? prodConfig : devConfig; ``` -------------------------------- ### comprovante Source: https://github.com/cloud-dfe/sdk-nodejs/blob/master/_autodocs/api-reference/Nfe.md Obtains proof of NF-e processing. ```APIDOC ## POST /nfe/comprovante ### Description Obtains proof of NF-e processing. ### Method POST ### Endpoint /nfe/comprovante ### Parameters #### Request Body - **payload** (any) - Required - Data for proof of processing query ``` -------------------------------- ### Exemplo de uso de AMBIENTE_HOMOLOGACAO Source: https://github.com/cloud-dfe/sdk-nodejs/blob/master/_autodocs/types.md Demonstra como importar e usar a constante AMBIENTE_HOMOLOGACAO na configuração do SDK para ambientes de homologação. ```typescript import { AMBIENTE_HOMOLOGACAO } from "sdk-cloud-dfe/dist"; const config = { ambiente: AMBIENTE_HOMOLOGACAO, token: "seu_token" }; ``` -------------------------------- ### consulta(payload: any) Source: https://github.com/cloud-dfe/sdk-nodejs/blob/master/_autodocs/api-reference/Cte.md Consulta um CT-e pela chave. ```APIDOC ## consulta(payload: any): Promise Consulta um CT-e pela chave. ```typescript async consulta(payload: any): Promise ``` | Parâmetro | Tipo | Obrigatório | Descrição | |-----------|------|-----------|-----------| | payload | any | Sim | Objeto com propriedade `chave` | **Retorna:** Promise com dados do CT-e. **Validação:** Executa `checkKey()`. **Endpoint:** GET `/cte/{chave}` ``` -------------------------------- ### Create Issuer Source: https://github.com/cloud-dfe/sdk-nodejs/blob/master/_autodocs/api-reference/Softhouse.md Creates a new issuer in the Softhouse account. ```APIDOC ## POST /soft/emitente ### Description Creates a new issuer in the Softhouse account. ### Method POST ### Endpoint /soft/emitente ### Parameters #### Request Body - **payload** (any) - Required - Data for the new issuer ### Request Example ```json { "example": "{\n // issuer data\n}" } ``` ### Response #### Success Response (200) - **result** (any) - Result of the issuer creation ### Response Example ```json { "example": "{\n // creation result\n}" } ``` ``` -------------------------------- ### Interface ConfigBase Source: https://github.com/cloud-dfe/sdk-nodejs/blob/master/_autodocs/types.md Define a estrutura de configuração base para classes que herdam de Base. Inclui configurações de ambiente, token, versão, timeout, porta, depuração e opções aninhadas. ```typescript interface ConfigBase { ambiente: number; token: string; version?: "1" | "2" | string; timeout?: number; port?: number; debug?: boolean; options?: { timeout?: number; port?: number; debug?: boolean; }; } ``` -------------------------------- ### Environment Table Source: https://github.com/cloud-dfe/sdk-nodejs/blob/master/_autodocs/QUICK_REFERENCE.md Reference table for environment constants, their values, and base URLs. ```APIDOC ## Tabela de Ambientes | Constante | Valor | URL Base | |-----------|-------|----------| | `AMBIENTE_PRODUCAO` | 1 | https://api.integranotas.com.br/v | | `AMBIENTE_HOMOLOGACAO` | 2 | https://hom-api.integranotas.com.br/v | ``` -------------------------------- ### status() Source: https://github.com/cloud-dfe/sdk-nodejs/blob/master/_autodocs/api-reference/CteOs.md Obtém status da API de CT-e OS. ```APIDOC ## GET /cteos/status ### Description Obtém status da API de CT-e OS. ### Method GET ### Endpoint /cteos/status ### Response #### Success Response (200) - **status** (any) - Status da API. ``` -------------------------------- ### consulta(payload: any): Promise Source: https://github.com/cloud-dfe/sdk-nodejs/blob/master/_autodocs/api-reference/Gnre.md Consults a GNR-e using its unique key. ```APIDOC ## consulta(payload: any): Promise Consulta uma GNR-e pela chave. ```typescript async consulta(payload: any): Promise ``` ### Parâmetros #### Query Parameters - **payload** (any) - Required - Objeto com propriedade `chave` ### Retorna Promise com dados da GNR-e consultada. ### Validação Executa `checkKey()`. ### Endpoint GET `/gnre/{chave}` ### Exemplo ```typescript const gnre = new Gnre(config); const response = await gnre.consulta({ chave: "seu_codigo_gnre_44_digitos" }); ``` ``` -------------------------------- ### Initialization Error: Invalid Environment Source: https://github.com/cloud-dfe/sdk-nodejs/blob/master/_autodocs/errors.md This error is raised when the provided environment value is not '1' (PRODUCTION) or '2' (HOMOLOGATION). It impacts the Base and Client classes. Catch this error using a try-catch block during class instantiation. ```APIDOC ## Initialization Error: Invalid Environment ### Description This error occurs when an invalid environment value is provided during class instantiation. ### Condition Environment provided is not 1 (PRODUCTION) or 2 (HOMOLOGATION). ### Affected Classes Base (all subclasses), Client ### Location `src/Base.ts:31`, `src/Client.ts:41` ### How to Catch Use a `try/catch` block when instantiating the class. ### Example ```typescript try { const nfe = new Nfe({ ambiente: 3, // Error! token: "your_token" }); } catch (error) { console.error(error.message); // "O AMBIENTE deve ser 1-PRODUÇÃO ou 2-HOMOLOGAÇÃO." } ``` ```