MENU navbar-image

Introduction

API for issuing and canceling service invoices, providing efficient and secure integration.

This documentation aims to provide all the information you need to work with our API.

Authenticating requests

To authenticate requests, include an Authorization header with the value "Bearer {YOUR_AUTH_KEY}".

All authenticated endpoints are marked with a requires authentication badge in the documentation below.

You can retrieve your token by visiting your dashboard and clicking Generate API token.

Company management

APIs for managing companies

GET api/companies

requires authentication

Example request:
$client = new \GuzzleHttp\Client();
$url = 'https://devnota.com.br/api/companies';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://devnota.com.br/api/companies"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
import requests
import json

url = 'https://devnota.com.br/api/companies'
headers = {
  'Authorization': 'Bearer {YOUR_AUTH_KEY}',
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('GET', url, headers=headers)
response.json()
curl --request GET \
    --get "https://devnota.com.br/api/companies" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"

Example response (200):


[
    {
        "id": 1,
        "name": "Company A",
        "cnpj": "12345678000100",
        "im": "12345"
    },
    {
        "id": 2,
        "name": "Company B",
        "cnpj": "98765432000100",
        "im": "67890"
    },
    {
        "id": 3,
        "name": "Company C",
        "cnpj": "11223344000100",
        "im": "54321"
    }
]
 

Request      

GET api/companies

Headers

Authorization        

Example: Bearer {YOUR_AUTH_KEY}

Content-Type        

Example: application/json

Accept        

Example: application/json

POST api/companies

requires authentication

Example request:
$client = new \GuzzleHttp\Client();
$url = 'https://devnota.com.br/api/companies';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'name' => 'Acme Corporation',
            'ibge_code' => '2611606',
            'state_id' => 'quia',
            'fantasy_name' => 'Acme',
            'cnpj' => '12345678000195',
            'im' => 1428873.0,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://devnota.com.br/api/companies"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "name": "Acme Corporation",
    "ibge_code": "2611606",
    "state_id": "quia",
    "fantasy_name": "Acme",
    "cnpj": "12345678000195",
    "im": 1428873
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
import requests
import json

url = 'https://devnota.com.br/api/companies'
payload = {
    "name": "Acme Corporation",
    "ibge_code": "2611606",
    "state_id": "quia",
    "fantasy_name": "Acme",
    "cnpj": "12345678000195",
    "im": 1428873
}
headers = {
  'Authorization': 'Bearer {YOUR_AUTH_KEY}',
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('POST', url, headers=headers, json=payload)
response.json()
curl --request POST \
    "https://devnota.com.br/api/companies" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": \"Acme Corporation\",
    \"ibge_code\": \"2611606\",
    \"state_id\": \"quia\",
    \"fantasy_name\": \"Acme\",
    \"cnpj\": \"12345678000195\",
    \"im\": 1428873
}"

Example response (201):


{
    "id": 1,
    "name": "Company A",
    "cnpj": "12345678000100",
    "im": "12345"
}
 

Example response (422):


{
    "message": "The name field is required. (and 1 more error)",
    "errors": {
        "name": [
            "The name field is required."
        ],
        "cert_file": [
            "The cert file field is required."
        ]
    }
}
 

Request      

POST api/companies

Headers

Authorization        

Example: Bearer {YOUR_AUTH_KEY}

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

name   string     

The name of the company. Example: Acme Corporation

ibge_code   string     

The IBGE code of the city. Example: 2611606

state_id   string     

The id of an existing record in the states table. Example: quia

fantasy_name   string  optional    

The fantasy name of the company. Example: Acme

cnpj   string     

The CNPJ of the company. Must be 14 digits. Example: 12345678000195

im   number     

The municipal registration number of the company. Example: 1428873

emission_types   object  optional    

PUT api/companies/{cnpj}

requires authentication

Example request:
$client = new \GuzzleHttp\Client();
$url = 'https://devnota.com.br/api/companies/sed';
$response = $client->put(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'name' => 'Acme Corporation',
            'ibge_code' => '2611606',
            'state_id' => 'repellendus',
            'fantasy_name' => 'Acme',
            'cnpj' => '12345678000195',
            'im' => 1428873.0,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://devnota.com.br/api/companies/sed"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "name": "Acme Corporation",
    "ibge_code": "2611606",
    "state_id": "repellendus",
    "fantasy_name": "Acme",
    "cnpj": "12345678000195",
    "im": 1428873
};

fetch(url, {
    method: "PUT",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
import requests
import json

url = 'https://devnota.com.br/api/companies/sed'
payload = {
    "name": "Acme Corporation",
    "ibge_code": "2611606",
    "state_id": "repellendus",
    "fantasy_name": "Acme",
    "cnpj": "12345678000195",
    "im": 1428873
}
headers = {
  'Authorization': 'Bearer {YOUR_AUTH_KEY}',
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('PUT', url, headers=headers, json=payload)
response.json()
curl --request PUT \
    "https://devnota.com.br/api/companies/sed" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": \"Acme Corporation\",
    \"ibge_code\": \"2611606\",
    \"state_id\": \"repellendus\",
    \"fantasy_name\": \"Acme\",
    \"cnpj\": \"12345678000195\",
    \"im\": 1428873
}"

Example response (201):


{
    "id": 1,
    "name": "Company A",
    "cnpj": "12345678000100",
    "im": "12345"
}
 

Example response (422):


{
    "message": "The name field is required. (and 1 more error)",
    "errors": {
        "name": [
            "The name field is required."
        ],
        "cert_file": [
            "The cert file field is required."
        ]
    }
}
 

Request      

PUT api/companies/{cnpj}

Headers

Authorization        

Example: Bearer {YOUR_AUTH_KEY}

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

cnpj   string     

Example: sed

Body Parameters

name   string     

The name of the company. Example: Acme Corporation

ibge_code   string     

The IBGE code of the city. Example: 2611606

state_id   string     

The id of an existing record in the states table. Example: repellendus

fantasy_name   string  optional    

The fantasy name of the company. Example: Acme

cnpj   string     

The CNPJ of the company. Must be 14 digits. Example: 12345678000195

im   number     

The municipal registration number of the company. Example: 1428873

emission_types   object  optional    

POST api/companies/{cnpj}/certificate

requires authentication

Example request:
$client = new \GuzzleHttp\Client();
$url = 'https://devnota.com.br/api/companies/nostrum/certificate';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'cert_file' => 'MIIC... (base64 encoded certificate)',
            'cert_pass' => 'password123',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://devnota.com.br/api/companies/nostrum/certificate"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "cert_file": "MIIC... (base64 encoded certificate)",
    "cert_pass": "password123"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
import requests
import json

url = 'https://devnota.com.br/api/companies/nostrum/certificate'
payload = {
    "cert_file": "MIIC... (base64 encoded certificate)",
    "cert_pass": "password123"
}
headers = {
  'Authorization': 'Bearer {YOUR_AUTH_KEY}',
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('POST', url, headers=headers, json=payload)
response.json()
curl --request POST \
    "https://devnota.com.br/api/companies/nostrum/certificate" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"cert_file\": \"MIIC... (base64 encoded certificate)\",
    \"cert_pass\": \"password123\"
}"

Example response (201):


{
    "id": 1,
    "cert_file": "Company A",
    "cnpj": "12345678000100",
    "im": "12345"
}
 

Example response (422):


{
    "message": "The cert file field is required.",
    "errors": {
        "cert_file": [
            "The cert file field is required."
        ]
    }
}
 

Request      

POST api/companies/{cnpj}/certificate

Headers

Authorization        

Example: Bearer {YOUR_AUTH_KEY}

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

cnpj   string     

Example: nostrum

Body Parameters

cert_file   string     

The certificate file in base64 format. Example: MIIC... (base64 encoded certificate)

cert_pass   string     

The password for the certificate file. Example: password123

Endpoints

GET api/consultar/protocolo/{protocolo}

requires authentication

Example request:
$client = new \GuzzleHttp\Client();
$url = 'https://devnota.com.br/api/consultar/protocolo/eos';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Company' => '{YOUR_COMPANY_CNPJ}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://devnota.com.br/api/consultar/protocolo/eos"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Company": "{YOUR_COMPANY_CNPJ}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
import requests
import json

url = 'https://devnota.com.br/api/consultar/protocolo/eos'
headers = {
  'Authorization': 'Bearer {YOUR_AUTH_KEY}',
  'Company': '{YOUR_COMPANY_CNPJ}',
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('GET', url, headers=headers)
response.json()
curl --request GET \
    --get "https://devnota.com.br/api/consultar/protocolo/eos" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Company: {YOUR_COMPANY_CNPJ}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"

Example response (200):


{
    "protocolo": 2948,
    "status": "processado",
    "response": [
        {
            "rps": "20",
            "link": "https://nfse.recife.pe.gov.br/nfse.aspx?ccm=4305116&nf=5661&cod=CJJYPZEV",
            "numero": "5661",
            "data_emissao": "2025-04-14T17:47:08",
            "codigo_verificacao": "CJJY-PZEV"
        }
    ],
    "xml": "https://nfse.civis.com.br/xml/2948"
}
 

Request      

GET api/consultar/protocolo/{protocolo}

Headers

Authorization        

Example: Bearer {YOUR_AUTH_KEY}

Company        

Example: {YOUR_COMPANY_CNPJ}

Content-Type        

Example: application/json

Accept        

Example: application/json

URL Parameters

protocolo   string     

The protocolo. Example: eos

NFCe management

APIs for managing product invoices (NFCe)

Generate NFe

requires authentication

Create a new electronic invoice (NFe)

Example request:
$client = new \GuzzleHttp\Client();
$url = 'https://devnota.com.br/api/nfc/gerar';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Company' => '{YOUR_COMPANY_CNPJ}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'callback' => 'http://hahn.com/veniam-esse-sed-nemo-impedit-sunt-aut',
            'ambiente' => 'developer',
            'ide' => [
                'cUF' => 7,
                'cNF' => 'laudantium',
                'natOp' => 'vba',
                'serie' => 19,
                'nNF' => 18,
                'dhEmi' => '2026-03-12T23:18:22+00:00',
                'dhSaiEnt' => '2026-03-12T23:18:22+00:00',
                'tpNF' => 0,
                'idDest' => 1,
                'cMunFG' => 17,
                'tpImp' => 4,
                'tpEmis' => 4,
                'cDV' => 5,
                'finNFe' => 1,
                'indFinal' => 0,
                'indPres' => 9,
                'procEmi' => 1,
                'verProc' => 'vgxhzssgdvn',
                'dhCont' => '2026-03-12T23:18:22+00:00',
                'xJust' => 'iwnnmugs',
                'NFref' => [
                    'refNFe' => 'donuoztbcsmiqmjqfvufdrplqaqljaromczusbwsaclu',
                ],
            ],
            'emit' => [
                'CNPJ' => 'ahruiugznbevbu',
                'CPF' => 'qwlsyaizwod',
                'xNome' => 'fazsxhwxkrzbjkr',
                'xFant' => 'kyg',
                'IE' => 'tw',
                'IEST' => 'mukhujvkidpfoz',
                'IM' => 'gw',
                'CNAE' => 'tstuvln',
                'CRT' => 1,
            ],
            'enderEmit' => [
                'xLgr' => 'carygesptdmfl',
                'nro' => 'ghvcfzxafznmopv',
                'xCpl' => 'pcvkhtttwhqufyw',
                'xBairro' => 'epwquibamjsjvdboxkpuiqf',
                'cMun' => 6,
                'xMun' => 'dgeanyhbdcu',
                'UF' => 'xa',
                'CEP' => 'xaixhwbv',
                'cPais' => 3,
                'xPais' => 'se',
                'fone' => 'jdliminnoydomq',
            ],
            'dest' => [
                'CNPJ' => 'bucnlnfjytfzre',
                'CPF' => 'vavruvrpicd',
                'idEstrangeiro' => 'ivtvs',
                'xNome' => 'eenmgqgabwpvueht',
                'indIEDest' => 9,
                'IE' => 'pqlqwdjyumu',
                'ISUF' => 'bqhaxyakx',
                'IM' => 'djmk',
                'email' => '[email protected]',
            ],
            'enderDest' => [
                'xLgr' => 'uhe',
                'nro' => 'ngejkqnji',
                'xCpl' => 'xkrshvfkdmnbzcabajaiu',
                'xBairro' => 'drtg',
                'cMun' => 20,
                'xMun' => 'ukjfrubqxhkrwdbzwkaawytpq',
                'UF' => 'nx',
                'CEP' => 'kncraxhy',
                'cPais' => 10,
                'xPais' => 'ancefcicntvlejzziheurdvgc',
                'fone' => 'outww',
            ],
            'retirada' => [
                'CNPJ' => 'tehxanzjgzsows',
                'CPF' => 'voenxeggqcn',
                'xNome' => 'ablwhgdcw',
                'xLgr' => 'ghvwdojofixjegx',
                'nro' => 'rzfzi',
                'xCpl' => 'vgmypjpbaudtnixr',
                'xBairro' => 'f',
                'cMun' => 20,
                'xMun' => 'plwalkmanmzymxxbe',
                'UF' => 'kz',
                'CEP' => 'qfnqnxta',
                'cPais' => 5,
                'xPais' => 'eeruqku',
                'fone' => 'ffmk',
            ],
            'entrega' => [
                'CNPJ' => 'gisxuyjfbjwyfu',
                'CPF' => 'pbhgswtkdxf',
                'xNome' => 'vglmjspwsdheydoxowubs',
                'xLgr' => 'gbkbxlgxiddnvpexbtoixlj',
                'nro' => 'qwtmrqxlgj',
                'xCpl' => 'rrzyckfuunlxcfpam',
                'xBairro' => 'fwaujdp',
                'cMun' => 19,
                'xMun' => 'aupslahht',
                'UF' => 'ol',
                'CEP' => 'vcyvxlxp',
                'cPais' => 19,
                'xPais' => 'lbmyjorugpxhshybauyk',
                'fone' => 'frhjjfbdo',
            ],
            'det' => [
                [
                    'nItem' => 72,
                    'prod' => [
                        'cProd' => 'emxpulrbppir',
                        'cEAN' => 'kjylygrxkm',
                        'xProd' => 's',
                        'NCM' => 'fhvjutcp',
                        'CEST' => 'dqjfeoq',
                        'CFOP' => 'ekbg',
                        'uCom' => 'h',
                        'qCom' => 72914015.466367,
                        'vUnCom' => 3859.8195304,
                        'vProd' => 319292.9,
                        'cEANTrib' => 'poekb',
                        'uTrib' => 'uvsm',
                        'qTrib' => 95128580.0,
                        'vUnTrib' => 3.26,
                        'indTot' => 1,
                    ],
                    'imposto' => [
                        'vTotTrib' => 30921798.078547,
                        'ICMS' => [
                            [
                                'orig' => 2,
                                'CST' => 20,
                                'CSOSN' => 300,
                                'modBC' => 2,
                                'vBC' => 19319868.66820404,
                                'pICMS' => 195069.57896557,
                                'vICMS' => 0.8490213,
                            ],
                        ],
                        'PIS' => [
                            [
                                'CST' => 65,
                                'vBC' => 3391.116112,
                                'pPIS' => 38554312.0,
                                'vPIS' => 4667358.7,
                            ],
                        ],
                        'COFINS' => [
                            [
                                'CST' => 98,
                                'vBC' => 61604.62449,
                                'pCOFINS' => 27488.1,
                                'vCOFINS' => 4.309,
                            ],
                        ],
                    ],
                ],
            ],
            'total' => [
                'ICMSTot' => [
                    'vBC' => 37.2249,
                    'vICMS' => 40652.19361042,
                    'vICMSDeson' => 368196.9,
                    'vFCP' => 5753950.687,
                    'vBCST' => 1.0,
                    'vST' => 714604700.147621,
                    'vFCPST' => 4.2,
                    'vFCPSTRet' => 5975008.78562211,
                    'vProd' => 1412.54,
                    'vFrete' => 1472.2,
                    'vSeg' => 0.01573469,
                    'vDesc' => 26656842.023658566,
                    'vII' => 17.671111732,
                    'vIPI' => 9339.77684,
                    'vIPIDevol' => 4105.2,
                    'vPIS' => 25811416.0,
                    'vCOFINS' => 51211721.602850415,
                    'vOutro' => 630.673,
                    'vNF' => 713.472942,
                    'vTotTrib' => 6159.0,
                ],
            ],
            'transp' => [
                'modFrete' => 4,
            ],
            'pag' => [
                'vTroco' => 4319774.258168883,
                'detPag' => [
                    [
                        'indPag' => 0,
                        'tPag' => 'vm',
                        'vPag' => 833.48,
                        'tpIntegra' => 2,
                        'CNPJ' => 'huspvvqlcvvsep',
                        'tBand' => 6,
                        'cAut' => 'ms',
                    ],
                ],
            ],
            'infAdic' => [
                'infAdFisco' => 'lfghqg',
                'infCpl' => 'xonyvli',
            ],
            'infRespTec' => [
                'CNPJ' => 'qquiekrefcsuzf',
                'xContato' => 'xgi',
                'email' => '[email protected]',
                'fone' => 'ihpivqvcnh',
            ],
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://devnota.com.br/api/nfc/gerar"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Company": "{YOUR_COMPANY_CNPJ}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "callback": "http:\/\/hahn.com\/veniam-esse-sed-nemo-impedit-sunt-aut",
    "ambiente": "developer",
    "ide": {
        "cUF": 7,
        "cNF": "laudantium",
        "natOp": "vba",
        "serie": 19,
        "nNF": 18,
        "dhEmi": "2026-03-12T23:18:22+00:00",
        "dhSaiEnt": "2026-03-12T23:18:22+00:00",
        "tpNF": 0,
        "idDest": 1,
        "cMunFG": 17,
        "tpImp": 4,
        "tpEmis": 4,
        "cDV": 5,
        "finNFe": 1,
        "indFinal": 0,
        "indPres": 9,
        "procEmi": 1,
        "verProc": "vgxhzssgdvn",
        "dhCont": "2026-03-12T23:18:22+00:00",
        "xJust": "iwnnmugs",
        "NFref": {
            "refNFe": "donuoztbcsmiqmjqfvufdrplqaqljaromczusbwsaclu"
        }
    },
    "emit": {
        "CNPJ": "ahruiugznbevbu",
        "CPF": "qwlsyaizwod",
        "xNome": "fazsxhwxkrzbjkr",
        "xFant": "kyg",
        "IE": "tw",
        "IEST": "mukhujvkidpfoz",
        "IM": "gw",
        "CNAE": "tstuvln",
        "CRT": 1
    },
    "enderEmit": {
        "xLgr": "carygesptdmfl",
        "nro": "ghvcfzxafznmopv",
        "xCpl": "pcvkhtttwhqufyw",
        "xBairro": "epwquibamjsjvdboxkpuiqf",
        "cMun": 6,
        "xMun": "dgeanyhbdcu",
        "UF": "xa",
        "CEP": "xaixhwbv",
        "cPais": 3,
        "xPais": "se",
        "fone": "jdliminnoydomq"
    },
    "dest": {
        "CNPJ": "bucnlnfjytfzre",
        "CPF": "vavruvrpicd",
        "idEstrangeiro": "ivtvs",
        "xNome": "eenmgqgabwpvueht",
        "indIEDest": 9,
        "IE": "pqlqwdjyumu",
        "ISUF": "bqhaxyakx",
        "IM": "djmk",
        "email": "[email protected]"
    },
    "enderDest": {
        "xLgr": "uhe",
        "nro": "ngejkqnji",
        "xCpl": "xkrshvfkdmnbzcabajaiu",
        "xBairro": "drtg",
        "cMun": 20,
        "xMun": "ukjfrubqxhkrwdbzwkaawytpq",
        "UF": "nx",
        "CEP": "kncraxhy",
        "cPais": 10,
        "xPais": "ancefcicntvlejzziheurdvgc",
        "fone": "outww"
    },
    "retirada": {
        "CNPJ": "tehxanzjgzsows",
        "CPF": "voenxeggqcn",
        "xNome": "ablwhgdcw",
        "xLgr": "ghvwdojofixjegx",
        "nro": "rzfzi",
        "xCpl": "vgmypjpbaudtnixr",
        "xBairro": "f",
        "cMun": 20,
        "xMun": "plwalkmanmzymxxbe",
        "UF": "kz",
        "CEP": "qfnqnxta",
        "cPais": 5,
        "xPais": "eeruqku",
        "fone": "ffmk"
    },
    "entrega": {
        "CNPJ": "gisxuyjfbjwyfu",
        "CPF": "pbhgswtkdxf",
        "xNome": "vglmjspwsdheydoxowubs",
        "xLgr": "gbkbxlgxiddnvpexbtoixlj",
        "nro": "qwtmrqxlgj",
        "xCpl": "rrzyckfuunlxcfpam",
        "xBairro": "fwaujdp",
        "cMun": 19,
        "xMun": "aupslahht",
        "UF": "ol",
        "CEP": "vcyvxlxp",
        "cPais": 19,
        "xPais": "lbmyjorugpxhshybauyk",
        "fone": "frhjjfbdo"
    },
    "det": [
        {
            "nItem": 72,
            "prod": {
                "cProd": "emxpulrbppir",
                "cEAN": "kjylygrxkm",
                "xProd": "s",
                "NCM": "fhvjutcp",
                "CEST": "dqjfeoq",
                "CFOP": "ekbg",
                "uCom": "h",
                "qCom": 72914015.466367,
                "vUnCom": 3859.8195304,
                "vProd": 319292.9,
                "cEANTrib": "poekb",
                "uTrib": "uvsm",
                "qTrib": 95128580,
                "vUnTrib": 3.26,
                "indTot": 1
            },
            "imposto": {
                "vTotTrib": 30921798.078547,
                "ICMS": [
                    {
                        "orig": 2,
                        "CST": 20,
                        "CSOSN": 300,
                        "modBC": 2,
                        "vBC": 19319868.66820404,
                        "pICMS": 195069.57896557,
                        "vICMS": 0.8490213
                    }
                ],
                "PIS": [
                    {
                        "CST": 65,
                        "vBC": 3391.116112,
                        "pPIS": 38554312,
                        "vPIS": 4667358.7
                    }
                ],
                "COFINS": [
                    {
                        "CST": 98,
                        "vBC": 61604.62449,
                        "pCOFINS": 27488.1,
                        "vCOFINS": 4.309
                    }
                ]
            }
        }
    ],
    "total": {
        "ICMSTot": {
            "vBC": 37.2249,
            "vICMS": 40652.19361042,
            "vICMSDeson": 368196.9,
            "vFCP": 5753950.687,
            "vBCST": 1,
            "vST": 714604700.147621,
            "vFCPST": 4.2,
            "vFCPSTRet": 5975008.78562211,
            "vProd": 1412.54,
            "vFrete": 1472.2,
            "vSeg": 0.01573469,
            "vDesc": 26656842.023658566,
            "vII": 17.671111732,
            "vIPI": 9339.77684,
            "vIPIDevol": 4105.2,
            "vPIS": 25811416,
            "vCOFINS": 51211721.602850415,
            "vOutro": 630.673,
            "vNF": 713.472942,
            "vTotTrib": 6159
        }
    },
    "transp": {
        "modFrete": 4
    },
    "pag": {
        "vTroco": 4319774.258168883,
        "detPag": [
            {
                "indPag": 0,
                "tPag": "vm",
                "vPag": 833.48,
                "tpIntegra": 2,
                "CNPJ": "huspvvqlcvvsep",
                "tBand": 6,
                "cAut": "ms"
            }
        ]
    },
    "infAdic": {
        "infAdFisco": "lfghqg",
        "infCpl": "xonyvli"
    },
    "infRespTec": {
        "CNPJ": "qquiekrefcsuzf",
        "xContato": "xgi",
        "email": "[email protected]",
        "fone": "ihpivqvcnh"
    }
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
import requests
import json

url = 'https://devnota.com.br/api/nfc/gerar'
payload = {
    "callback": "http:\/\/hahn.com\/veniam-esse-sed-nemo-impedit-sunt-aut",
    "ambiente": "developer",
    "ide": {
        "cUF": 7,
        "cNF": "laudantium",
        "natOp": "vba",
        "serie": 19,
        "nNF": 18,
        "dhEmi": "2026-03-12T23:18:22+00:00",
        "dhSaiEnt": "2026-03-12T23:18:22+00:00",
        "tpNF": 0,
        "idDest": 1,
        "cMunFG": 17,
        "tpImp": 4,
        "tpEmis": 4,
        "cDV": 5,
        "finNFe": 1,
        "indFinal": 0,
        "indPres": 9,
        "procEmi": 1,
        "verProc": "vgxhzssgdvn",
        "dhCont": "2026-03-12T23:18:22+00:00",
        "xJust": "iwnnmugs",
        "NFref": {
            "refNFe": "donuoztbcsmiqmjqfvufdrplqaqljaromczusbwsaclu"
        }
    },
    "emit": {
        "CNPJ": "ahruiugznbevbu",
        "CPF": "qwlsyaizwod",
        "xNome": "fazsxhwxkrzbjkr",
        "xFant": "kyg",
        "IE": "tw",
        "IEST": "mukhujvkidpfoz",
        "IM": "gw",
        "CNAE": "tstuvln",
        "CRT": 1
    },
    "enderEmit": {
        "xLgr": "carygesptdmfl",
        "nro": "ghvcfzxafznmopv",
        "xCpl": "pcvkhtttwhqufyw",
        "xBairro": "epwquibamjsjvdboxkpuiqf",
        "cMun": 6,
        "xMun": "dgeanyhbdcu",
        "UF": "xa",
        "CEP": "xaixhwbv",
        "cPais": 3,
        "xPais": "se",
        "fone": "jdliminnoydomq"
    },
    "dest": {
        "CNPJ": "bucnlnfjytfzre",
        "CPF": "vavruvrpicd",
        "idEstrangeiro": "ivtvs",
        "xNome": "eenmgqgabwpvueht",
        "indIEDest": 9,
        "IE": "pqlqwdjyumu",
        "ISUF": "bqhaxyakx",
        "IM": "djmk",
        "email": "[email protected]"
    },
    "enderDest": {
        "xLgr": "uhe",
        "nro": "ngejkqnji",
        "xCpl": "xkrshvfkdmnbzcabajaiu",
        "xBairro": "drtg",
        "cMun": 20,
        "xMun": "ukjfrubqxhkrwdbzwkaawytpq",
        "UF": "nx",
        "CEP": "kncraxhy",
        "cPais": 10,
        "xPais": "ancefcicntvlejzziheurdvgc",
        "fone": "outww"
    },
    "retirada": {
        "CNPJ": "tehxanzjgzsows",
        "CPF": "voenxeggqcn",
        "xNome": "ablwhgdcw",
        "xLgr": "ghvwdojofixjegx",
        "nro": "rzfzi",
        "xCpl": "vgmypjpbaudtnixr",
        "xBairro": "f",
        "cMun": 20,
        "xMun": "plwalkmanmzymxxbe",
        "UF": "kz",
        "CEP": "qfnqnxta",
        "cPais": 5,
        "xPais": "eeruqku",
        "fone": "ffmk"
    },
    "entrega": {
        "CNPJ": "gisxuyjfbjwyfu",
        "CPF": "pbhgswtkdxf",
        "xNome": "vglmjspwsdheydoxowubs",
        "xLgr": "gbkbxlgxiddnvpexbtoixlj",
        "nro": "qwtmrqxlgj",
        "xCpl": "rrzyckfuunlxcfpam",
        "xBairro": "fwaujdp",
        "cMun": 19,
        "xMun": "aupslahht",
        "UF": "ol",
        "CEP": "vcyvxlxp",
        "cPais": 19,
        "xPais": "lbmyjorugpxhshybauyk",
        "fone": "frhjjfbdo"
    },
    "det": [
        {
            "nItem": 72,
            "prod": {
                "cProd": "emxpulrbppir",
                "cEAN": "kjylygrxkm",
                "xProd": "s",
                "NCM": "fhvjutcp",
                "CEST": "dqjfeoq",
                "CFOP": "ekbg",
                "uCom": "h",
                "qCom": 72914015.466367,
                "vUnCom": 3859.8195304,
                "vProd": 319292.9,
                "cEANTrib": "poekb",
                "uTrib": "uvsm",
                "qTrib": 95128580,
                "vUnTrib": 3.26,
                "indTot": 1
            },
            "imposto": {
                "vTotTrib": 30921798.078547,
                "ICMS": [
                    {
                        "orig": 2,
                        "CST": 20,
                        "CSOSN": 300,
                        "modBC": 2,
                        "vBC": 19319868.66820404,
                        "pICMS": 195069.57896557,
                        "vICMS": 0.8490213
                    }
                ],
                "PIS": [
                    {
                        "CST": 65,
                        "vBC": 3391.116112,
                        "pPIS": 38554312,
                        "vPIS": 4667358.7
                    }
                ],
                "COFINS": [
                    {
                        "CST": 98,
                        "vBC": 61604.62449,
                        "pCOFINS": 27488.1,
                        "vCOFINS": 4.309
                    }
                ]
            }
        }
    ],
    "total": {
        "ICMSTot": {
            "vBC": 37.2249,
            "vICMS": 40652.19361042,
            "vICMSDeson": 368196.9,
            "vFCP": 5753950.687,
            "vBCST": 1,
            "vST": 714604700.147621,
            "vFCPST": 4.2,
            "vFCPSTRet": 5975008.78562211,
            "vProd": 1412.54,
            "vFrete": 1472.2,
            "vSeg": 0.01573469,
            "vDesc": 26656842.023658566,
            "vII": 17.671111732,
            "vIPI": 9339.77684,
            "vIPIDevol": 4105.2,
            "vPIS": 25811416,
            "vCOFINS": 51211721.602850415,
            "vOutro": 630.673,
            "vNF": 713.472942,
            "vTotTrib": 6159
        }
    },
    "transp": {
        "modFrete": 4
    },
    "pag": {
        "vTroco": 4319774.258168883,
        "detPag": [
            {
                "indPag": 0,
                "tPag": "vm",
                "vPag": 833.48,
                "tpIntegra": 2,
                "CNPJ": "huspvvqlcvvsep",
                "tBand": 6,
                "cAut": "ms"
            }
        ]
    },
    "infAdic": {
        "infAdFisco": "lfghqg",
        "infCpl": "xonyvli"
    },
    "infRespTec": {
        "CNPJ": "qquiekrefcsuzf",
        "xContato": "xgi",
        "email": "[email protected]",
        "fone": "ihpivqvcnh"
    }
}
headers = {
  'Authorization': 'Bearer {YOUR_AUTH_KEY}',
  'Company': '{YOUR_COMPANY_CNPJ}',
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('POST', url, headers=headers, json=payload)
response.json()
curl --request POST \
    "https://devnota.com.br/api/nfc/gerar" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Company: {YOUR_COMPANY_CNPJ}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"callback\": \"http:\\/\\/hahn.com\\/veniam-esse-sed-nemo-impedit-sunt-aut\",
    \"ambiente\": \"developer\",
    \"ide\": {
        \"cUF\": 7,
        \"cNF\": \"laudantium\",
        \"natOp\": \"vba\",
        \"serie\": 19,
        \"nNF\": 18,
        \"dhEmi\": \"2026-03-12T23:18:22+00:00\",
        \"dhSaiEnt\": \"2026-03-12T23:18:22+00:00\",
        \"tpNF\": 0,
        \"idDest\": 1,
        \"cMunFG\": 17,
        \"tpImp\": 4,
        \"tpEmis\": 4,
        \"cDV\": 5,
        \"finNFe\": 1,
        \"indFinal\": 0,
        \"indPres\": 9,
        \"procEmi\": 1,
        \"verProc\": \"vgxhzssgdvn\",
        \"dhCont\": \"2026-03-12T23:18:22+00:00\",
        \"xJust\": \"iwnnmugs\",
        \"NFref\": {
            \"refNFe\": \"donuoztbcsmiqmjqfvufdrplqaqljaromczusbwsaclu\"
        }
    },
    \"emit\": {
        \"CNPJ\": \"ahruiugznbevbu\",
        \"CPF\": \"qwlsyaizwod\",
        \"xNome\": \"fazsxhwxkrzbjkr\",
        \"xFant\": \"kyg\",
        \"IE\": \"tw\",
        \"IEST\": \"mukhujvkidpfoz\",
        \"IM\": \"gw\",
        \"CNAE\": \"tstuvln\",
        \"CRT\": 1
    },
    \"enderEmit\": {
        \"xLgr\": \"carygesptdmfl\",
        \"nro\": \"ghvcfzxafznmopv\",
        \"xCpl\": \"pcvkhtttwhqufyw\",
        \"xBairro\": \"epwquibamjsjvdboxkpuiqf\",
        \"cMun\": 6,
        \"xMun\": \"dgeanyhbdcu\",
        \"UF\": \"xa\",
        \"CEP\": \"xaixhwbv\",
        \"cPais\": 3,
        \"xPais\": \"se\",
        \"fone\": \"jdliminnoydomq\"
    },
    \"dest\": {
        \"CNPJ\": \"bucnlnfjytfzre\",
        \"CPF\": \"vavruvrpicd\",
        \"idEstrangeiro\": \"ivtvs\",
        \"xNome\": \"eenmgqgabwpvueht\",
        \"indIEDest\": 9,
        \"IE\": \"pqlqwdjyumu\",
        \"ISUF\": \"bqhaxyakx\",
        \"IM\": \"djmk\",
        \"email\": \"[email protected]\"
    },
    \"enderDest\": {
        \"xLgr\": \"uhe\",
        \"nro\": \"ngejkqnji\",
        \"xCpl\": \"xkrshvfkdmnbzcabajaiu\",
        \"xBairro\": \"drtg\",
        \"cMun\": 20,
        \"xMun\": \"ukjfrubqxhkrwdbzwkaawytpq\",
        \"UF\": \"nx\",
        \"CEP\": \"kncraxhy\",
        \"cPais\": 10,
        \"xPais\": \"ancefcicntvlejzziheurdvgc\",
        \"fone\": \"outww\"
    },
    \"retirada\": {
        \"CNPJ\": \"tehxanzjgzsows\",
        \"CPF\": \"voenxeggqcn\",
        \"xNome\": \"ablwhgdcw\",
        \"xLgr\": \"ghvwdojofixjegx\",
        \"nro\": \"rzfzi\",
        \"xCpl\": \"vgmypjpbaudtnixr\",
        \"xBairro\": \"f\",
        \"cMun\": 20,
        \"xMun\": \"plwalkmanmzymxxbe\",
        \"UF\": \"kz\",
        \"CEP\": \"qfnqnxta\",
        \"cPais\": 5,
        \"xPais\": \"eeruqku\",
        \"fone\": \"ffmk\"
    },
    \"entrega\": {
        \"CNPJ\": \"gisxuyjfbjwyfu\",
        \"CPF\": \"pbhgswtkdxf\",
        \"xNome\": \"vglmjspwsdheydoxowubs\",
        \"xLgr\": \"gbkbxlgxiddnvpexbtoixlj\",
        \"nro\": \"qwtmrqxlgj\",
        \"xCpl\": \"rrzyckfuunlxcfpam\",
        \"xBairro\": \"fwaujdp\",
        \"cMun\": 19,
        \"xMun\": \"aupslahht\",
        \"UF\": \"ol\",
        \"CEP\": \"vcyvxlxp\",
        \"cPais\": 19,
        \"xPais\": \"lbmyjorugpxhshybauyk\",
        \"fone\": \"frhjjfbdo\"
    },
    \"det\": [
        {
            \"nItem\": 72,
            \"prod\": {
                \"cProd\": \"emxpulrbppir\",
                \"cEAN\": \"kjylygrxkm\",
                \"xProd\": \"s\",
                \"NCM\": \"fhvjutcp\",
                \"CEST\": \"dqjfeoq\",
                \"CFOP\": \"ekbg\",
                \"uCom\": \"h\",
                \"qCom\": 72914015.466367,
                \"vUnCom\": 3859.8195304,
                \"vProd\": 319292.9,
                \"cEANTrib\": \"poekb\",
                \"uTrib\": \"uvsm\",
                \"qTrib\": 95128580,
                \"vUnTrib\": 3.26,
                \"indTot\": 1
            },
            \"imposto\": {
                \"vTotTrib\": 30921798.078547,
                \"ICMS\": [
                    {
                        \"orig\": 2,
                        \"CST\": 20,
                        \"CSOSN\": 300,
                        \"modBC\": 2,
                        \"vBC\": 19319868.66820404,
                        \"pICMS\": 195069.57896557,
                        \"vICMS\": 0.8490213
                    }
                ],
                \"PIS\": [
                    {
                        \"CST\": 65,
                        \"vBC\": 3391.116112,
                        \"pPIS\": 38554312,
                        \"vPIS\": 4667358.7
                    }
                ],
                \"COFINS\": [
                    {
                        \"CST\": 98,
                        \"vBC\": 61604.62449,
                        \"pCOFINS\": 27488.1,
                        \"vCOFINS\": 4.309
                    }
                ]
            }
        }
    ],
    \"total\": {
        \"ICMSTot\": {
            \"vBC\": 37.2249,
            \"vICMS\": 40652.19361042,
            \"vICMSDeson\": 368196.9,
            \"vFCP\": 5753950.687,
            \"vBCST\": 1,
            \"vST\": 714604700.147621,
            \"vFCPST\": 4.2,
            \"vFCPSTRet\": 5975008.78562211,
            \"vProd\": 1412.54,
            \"vFrete\": 1472.2,
            \"vSeg\": 0.01573469,
            \"vDesc\": 26656842.023658566,
            \"vII\": 17.671111732,
            \"vIPI\": 9339.77684,
            \"vIPIDevol\": 4105.2,
            \"vPIS\": 25811416,
            \"vCOFINS\": 51211721.602850415,
            \"vOutro\": 630.673,
            \"vNF\": 713.472942,
            \"vTotTrib\": 6159
        }
    },
    \"transp\": {
        \"modFrete\": 4
    },
    \"pag\": {
        \"vTroco\": 4319774.258168883,
        \"detPag\": [
            {
                \"indPag\": 0,
                \"tPag\": \"vm\",
                \"vPag\": 833.48,
                \"tpIntegra\": 2,
                \"CNPJ\": \"huspvvqlcvvsep\",
                \"tBand\": 6,
                \"cAut\": \"ms\"
            }
        ]
    },
    \"infAdic\": {
        \"infAdFisco\": \"lfghqg\",
        \"infCpl\": \"xonyvli\"
    },
    \"infRespTec\": {
        \"CNPJ\": \"qquiekrefcsuzf\",
        \"xContato\": \"xgi\",
        \"email\": \"[email protected]\",
        \"fone\": \"ihpivqvcnh\"
    }
}"

Example response (201):


{
    "protocolo": 3050,
    "status": "processando"
}
 

Example response (422):


{
    "message": "The notaFiscal field is required.",
    "errors": {
        "notaFiscal": [
            "The notaFiscal field is required."
        ]
    }
}
 

Request      

POST api/nfc/gerar

Headers

Authorization        

Example: Bearer {YOUR_AUTH_KEY}

Company        

Example: {YOUR_COMPANY_CNPJ}

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

callback   string  optional    

Must be a valid URL. Example: http://hahn.com/veniam-esse-sed-nemo-impedit-sunt-aut

ambiente   string     

Example: developer

Must be one of:
  • production
  • developer
ide   object  optional    
cUF   integer     

Example: 7

cNF   string     

Example: laudantium

natOp   string     

Must not be greater than 60 characters. Example: vba

serie   integer     

Example: 19

nNF   integer     

Example: 18

dhEmi   string     

Must be a valid date in the format Y-m-d\TH:i:sP. Example: 2026-03-12T23:18:22+00:00

dhSaiEnt   string  optional    

Must be a valid date in the format Y-m-d\TH:i:sP. Example: 2026-03-12T23:18:22+00:00

tpNF   string     

Example: 0

Must be one of:
  • 0
  • 1
idDest   string     

Example: 1

Must be one of:
  • 1
  • 2
  • 3
cMunFG   integer     

Example: 17

tpImp   string     

Example: 4

Must be one of:
  • 0
  • 1
  • 2
  • 3
  • 4
  • 5
tpEmis   string     

Example: 4

Must be one of:
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
cDV   integer  optional    

Example: 5

finNFe   string     

Example: 1

Must be one of:
  • 1
  • 2
  • 3
  • 4
indFinal   string     

Example: 0

Must be one of:
  • 0
  • 1
indPres   string     

Example: 9

Must be one of:
  • 0
  • 1
  • 2
  • 3
  • 4
  • 5
  • 9
procEmi   string     

Example: 1

Must be one of:
  • 0
  • 1
  • 2
  • 3
verProc   string     

Must not be greater than 20 characters. Example: vgxhzssgdvn

dhCont   string  optional    

Must be a valid date in the format Y-m-d\TH:i:sP. Example: 2026-03-12T23:18:22+00:00

xJust   string  optional    

Must be at least 20 characters. Must not be greater than 256 characters. Example: iwnnmugs

NFref   object  optional    
refNFe   string  optional    

Must be 44 characters. Example: donuoztbcsmiqmjqfvufdrplqaqljaromczusbwsaclu

emit   object  optional    
CNPJ   string  optional    

This field is required when emit.CPF is not present. Must be 14 characters. Example: ahruiugznbevbu

CPF   string  optional    

This field is required when emit.CNPJ is not present. Must be 11 characters. Example: qwlsyaizwod

xNome   string     

Must not be greater than 60 characters. Example: fazsxhwxkrzbjkr

xFant   string  optional    

Must not be greater than 60 characters. Example: kyg

IE   string     

Must not be greater than 14 characters. Example: tw

IEST   string  optional    

Must not be greater than 14 characters. Example: mukhujvkidpfoz

IM   string  optional    

Must not be greater than 15 characters. Example: gw

CNAE   string  optional    

Must be 7 characters. Example: tstuvln

CRT   string     

Example: 1

Must be one of:
  • 1
  • 2
  • 3
enderEmit   object  optional    
xLgr   string     

Must not be greater than 60 characters. Example: carygesptdmfl

nro   string     

Must not be greater than 60 characters. Example: ghvcfzxafznmopv

xCpl   string  optional    

Must not be greater than 60 characters. Example: pcvkhtttwhqufyw

xBairro   string     

Must not be greater than 60 characters. Example: epwquibamjsjvdboxkpuiqf

cMun   integer     

Example: 6

xMun   string     

Must not be greater than 60 characters. Example: dgeanyhbdcu

UF   string     

Must be 2 characters. Example: xa

CEP   string     

Must be 8 characters. Example: xaixhwbv

cPais   integer  optional    

Example: 3

xPais   string  optional    

Must not be greater than 60 characters. Example: se

fone   string  optional    

Must not be greater than 14 characters. Example: jdliminnoydomq

dest   object  optional    
CNPJ   string  optional    

Must be 14 characters. Example: bucnlnfjytfzre

CPF   string  optional    

Must be 11 characters. Example: vavruvrpicd

idEstrangeiro   string  optional    

Must not be greater than 20 characters. Example: ivtvs

xNome   string  optional    

Must not be greater than 60 characters. Example: eenmgqgabwpvueht

indIEDest   string  optional    

Example: 9

Must be one of:
  • 1
  • 2
  • 9
IE   string  optional    

Must not be greater than 14 characters. Example: pqlqwdjyumu

ISUF   string  optional    

Must not be greater than 9 characters. Example: bqhaxyakx

IM   string  optional    

Must not be greater than 15 characters. Example: djmk

email   string  optional    

Must be a valid email address. Must not be greater than 60 characters. Example: [email protected]

enderDest   object  optional    
xLgr   string  optional    

Must not be greater than 60 characters. Example: uhe

nro   string  optional    

Must not be greater than 60 characters. Example: ngejkqnji

xCpl   string  optional    

Must not be greater than 60 characters. Example: xkrshvfkdmnbzcabajaiu

xBairro   string  optional    

Must not be greater than 60 characters. Example: drtg

cMun   integer  optional    

Example: 20

xMun   string  optional    

Must not be greater than 60 characters. Example: ukjfrubqxhkrwdbzwkaawytpq

UF   string  optional    

Must be 2 characters. Example: nx

CEP   string  optional    

Must be 8 characters. Example: kncraxhy

cPais   integer  optional    

Example: 10

xPais   string  optional    

Must not be greater than 60 characters. Example: ancefcicntvlejzziheurdvgc

fone   string  optional    

Must not be greater than 14 characters. Example: outww

retirada   object  optional    
CNPJ   string  optional    

Must be 14 characters. Example: tehxanzjgzsows

CPF   string  optional    

Must be 11 characters. Example: voenxeggqcn

xNome   string  optional    

Must not be greater than 60 characters. Example: ablwhgdcw

xLgr   string  optional    

Must not be greater than 60 characters. Example: ghvwdojofixjegx

nro   string  optional    

Must not be greater than 60 characters. Example: rzfzi

xCpl   string  optional    

Must not be greater than 60 characters. Example: vgmypjpbaudtnixr

xBairro   string  optional    

Must not be greater than 60 characters. Example: f

cMun   integer  optional    

Example: 20

xMun   string  optional    

Must not be greater than 60 characters. Example: plwalkmanmzymxxbe

UF   string  optional    

Must be 2 characters. Example: kz

CEP   string  optional    

Must be 8 characters. Example: qfnqnxta

cPais   integer  optional    

Example: 5

xPais   string  optional    

Must not be greater than 60 characters. Example: eeruqku

fone   string  optional    

Must not be greater than 14 characters. Example: ffmk

entrega   object  optional    
CNPJ   string  optional    

Must be 14 characters. Example: gisxuyjfbjwyfu

CPF   string  optional    

Must be 11 characters. Example: pbhgswtkdxf

xNome   string  optional    

Must not be greater than 60 characters. Example: vglmjspwsdheydoxowubs

xLgr   string  optional    

Must not be greater than 60 characters. Example: gbkbxlgxiddnvpexbtoixlj

nro   string  optional    

Must not be greater than 60 characters. Example: qwtmrqxlgj

xCpl   string  optional    

Must not be greater than 60 characters. Example: rrzyckfuunlxcfpam

xBairro   string  optional    

Must not be greater than 60 characters. Example: fwaujdp

cMun   integer  optional    

Example: 19

xMun   string  optional    

Must not be greater than 60 characters. Example: aupslahht

UF   string  optional    

Must be 2 characters. Example: ol

CEP   string  optional    

Must be 8 characters. Example: vcyvxlxp

cPais   integer  optional    

Example: 19

xPais   string  optional    

Must not be greater than 60 characters. Example: lbmyjorugpxhshybauyk

fone   string  optional    

Must not be greater than 14 characters. Example: frhjjfbdo

det   object[]     

Must have at least 1 items.

nItem   integer     

Must be at least 1. Example: 72

prod   object  optional    
cProd   string     

Must not be greater than 60 characters. Example: emxpulrbppir

cEAN   string     

Must not be greater than 14 characters. Example: kjylygrxkm

xProd   string     

Must not be greater than 120 characters. Example: s

NCM   string     

Must be 8 characters. Example: fhvjutcp

CEST   string  optional    

Must be 7 characters. Example: dqjfeoq

CFOP   string     

Must be 4 characters. Example: ekbg

uCom   string     

Must not be greater than 6 characters. Example: h

qCom   number     

Example: 72914015.466367

vUnCom   number     

Example: 3859.8195304

vProd   number     

Example: 319292.9

cEANTrib   string     

Must not be greater than 14 characters. Example: poekb

uTrib   string     

Must not be greater than 6 characters. Example: uvsm

qTrib   number     

Example: 95128580

vUnTrib   number     

Example: 3.26

indTot   string     

Example: 1

Must be one of:
  • 0
  • 1
imposto   object  optional    
vTotTrib   number  optional    

Example: 30921798.078547

ICMS   object[]  optional    
orig   string     

Example: 2

Must be one of:
  • 0
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
CST   string  optional    

This field is required when det..imposto.ICMS..CSOSN is not present. Example: 20

Must be one of:
  • 0
  • 10
  • 20
  • 30
  • 40
  • 41
  • 50
  • 51
  • 60
  • 70
  • 90
CSOSN   string  optional    

This field is required when det..imposto.ICMS..CST is not present. Example: 300

Must be one of:
  • 101
  • 102
  • 103
  • 201
  • 202
  • 203
  • 300
  • 400
  • 500
  • 900
modBC   string  optional    

Example: 2

Must be one of:
  • 0
  • 1
  • 2
  • 3
vBC   number  optional    

Example: 19319868.668204

pICMS   number  optional    

Example: 195069.57896557

vICMS   number  optional    

Example: 0.8490213

PIS   object[]  optional    
CST   string     

Example: 65

Must be one of:
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 98
  • 99
vBC   number  optional    

Example: 3391.116112

pPIS   number  optional    

Example: 38554312

vPIS   number  optional    

Example: 4667358.7

COFINS   object[]  optional    
CST   string     

Example: 98

Must be one of:
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 98
  • 99
vBC   number  optional    

Example: 61604.62449

pCOFINS   number  optional    

Example: 27488.1

vCOFINS   number  optional    

Example: 4.309

total   object  optional    
ICMSTot   object  optional    
vBC   number  optional    

Example: 37.2249

vICMS   number  optional    

Example: 40652.19361042

vICMSDeson   number  optional    

Example: 368196.9

vFCP   number  optional    

Example: 5753950.687

vBCST   number  optional    

Example: 1

vST   number  optional    

Example: 714604700.14762

vFCPST   number  optional    

Example: 4.2

vFCPSTRet   number  optional    

Example: 5975008.7856221

vProd   number  optional    

Example: 1412.54

vFrete   number  optional    

Example: 1472.2

vSeg   number  optional    

Example: 0.01573469

vDesc   number  optional    

Example: 26656842.023659

vII   number  optional    

Example: 17.671111732

vIPI   number  optional    

Example: 9339.77684

vIPIDevol   number  optional    

Example: 4105.2

vPIS   number  optional    

Example: 25811416

vCOFINS   number  optional    

Example: 51211721.60285

vOutro   number  optional    

Example: 630.673

vNF   number  optional    

Example: 713.472942

vTotTrib   number  optional    

Example: 6159

transp   object  optional    
modFrete   string     

Example: 4

Must be one of:
  • 0
  • 1
  • 2
  • 3
  • 4
  • 9
pag   object  optional    
detPag   object[]  optional    
indPag   string  optional    

Example: 0

Must be one of:
  • 0
  • 1
  • 2
tPag   string  optional    

Must not be greater than 2 characters. Example: vm

vPag   number  optional    

Example: 833.48

tpIntegra   string  optional    

Example: 2

Must be one of:
  • 1
  • 2
CNPJ   string  optional    

Must be 14 characters. Example: huspvvqlcvvsep

tBand   string  optional    

Example: 6

Must be one of:
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 99
cAut   string  optional    

Must not be greater than 128 characters. Example: ms

vTroco   number  optional    

Example: 4319774.2581689

infAdic   object  optional    
infAdFisco   string  optional    

Must not be greater than 2000 characters. Example: lfghqg

infCpl   string  optional    

Must not be greater than 5000 characters. Example: xonyvli

infRespTec   object  optional    
CNPJ   string  optional    

Must be 14 characters. Example: qquiekrefcsuzf

xContato   string  optional    

Must not be greater than 60 characters. Example: xgi

email   string  optional    

Must be a valid email address. Must not be greater than 60 characters. Example: [email protected]

fone   string  optional    

Must not be greater than 14 characters. Example: ihpivqvcnh

Cancel NFe

requires authentication

Cancel an existing electronic invoice (NFe)

Example request:
$client = new \GuzzleHttp\Client();
$url = 'https://devnota.com.br/api/nfc/cancelar';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Company' => '{YOUR_COMPANY_CNPJ}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'ambiente' => 'developer',
            'chave' => 'kvwvhmgcwktwbllcgbgreshljebbulydqlrnzplzqeha',
            'protocolo' => 'molestias',
            'justificativa' => 'gnclvm',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://devnota.com.br/api/nfc/cancelar"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Company": "{YOUR_COMPANY_CNPJ}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "ambiente": "developer",
    "chave": "kvwvhmgcwktwbllcgbgreshljebbulydqlrnzplzqeha",
    "protocolo": "molestias",
    "justificativa": "gnclvm"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
import requests
import json

url = 'https://devnota.com.br/api/nfc/cancelar'
payload = {
    "ambiente": "developer",
    "chave": "kvwvhmgcwktwbllcgbgreshljebbulydqlrnzplzqeha",
    "protocolo": "molestias",
    "justificativa": "gnclvm"
}
headers = {
  'Authorization': 'Bearer {YOUR_AUTH_KEY}',
  'Company': '{YOUR_COMPANY_CNPJ}',
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('POST', url, headers=headers, json=payload)
response.json()
curl --request POST \
    "https://devnota.com.br/api/nfc/cancelar" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Company: {YOUR_COMPANY_CNPJ}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"ambiente\": \"developer\",
    \"chave\": \"kvwvhmgcwktwbllcgbgreshljebbulydqlrnzplzqeha\",
    \"protocolo\": \"molestias\",
    \"justificativa\": \"gnclvm\"
}"

Example response (201):


{
    "protocolo": 3051,
    "status": "processando"
}
 

Example response (422):


{
    "message": "The chave field is required.",
    "errors": {
        "chave": [
            "The chave field is required."
        ]
    }
}
 

Request      

POST api/nfc/cancelar

Headers

Authorization        

Example: Bearer {YOUR_AUTH_KEY}

Company        

Example: {YOUR_COMPANY_CNPJ}

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

callback   string  optional    
ambiente   string     

Example: developer

Must be one of:
  • production
  • developer
chave   string     

Must be 44 characters. Example: kvwvhmgcwktwbllcgbgreshljebbulydqlrnzplzqeha

protocolo   string     

Example: molestias

justificativa   string     

Must be at least 15 characters. Must not be greater than 255 characters. Example: gnclvm

Correction Letter NFCe

requires authentication

Correct an existing electronic invoice (NFCe)

Example request:
$client = new \GuzzleHttp\Client();
$url = 'https://devnota.com.br/api/nfc/cce';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Company' => '{YOUR_COMPANY_CNPJ}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'callback' => 'https://example.com/callback',
            'ambiente' => 'production or developer',
            'chave' => '43190512345678000123550010000000011000000011',
            'correcao' => 'Correction of the invoice data as per agreement.',
            'sequencial' => 1,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://devnota.com.br/api/nfc/cce"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Company": "{YOUR_COMPANY_CNPJ}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "callback": "https:\/\/example.com\/callback",
    "ambiente": "production or developer",
    "chave": "43190512345678000123550010000000011000000011",
    "correcao": "Correction of the invoice data as per agreement.",
    "sequencial": 1
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
import requests
import json

url = 'https://devnota.com.br/api/nfc/cce'
payload = {
    "callback": "https:\/\/example.com\/callback",
    "ambiente": "production or developer",
    "chave": "43190512345678000123550010000000011000000011",
    "correcao": "Correction of the invoice data as per agreement.",
    "sequencial": 1
}
headers = {
  'Authorization': 'Bearer {YOUR_AUTH_KEY}',
  'Company': '{YOUR_COMPANY_CNPJ}',
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('POST', url, headers=headers, json=payload)
response.json()
curl --request POST \
    "https://devnota.com.br/api/nfc/cce" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Company: {YOUR_COMPANY_CNPJ}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"callback\": \"https:\\/\\/example.com\\/callback\",
    \"ambiente\": \"production or developer\",
    \"chave\": \"43190512345678000123550010000000011000000011\",
    \"correcao\": \"Correction of the invoice data as per agreement.\",
    \"sequencial\": 1
}"

Example response (201):


{
    "protocolo": 3051,
    "status": "processando"
}
 

Example response (422):


{
    "message": "The chave field is required.",
    "errors": {
        "chave": [
            "The chave field is required."
        ]
    }
}
 

Request      

POST api/nfc/cce

Headers

Authorization        

Example: Bearer {YOUR_AUTH_KEY}

Company        

Example: {YOUR_COMPANY_CNPJ}

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

callback   string  optional    

Callback URL to receive the response. Example: https://example.com/callback

ambiente   string     

Environment to use. Example: production or developer

Must be one of:
  • production
  • developer
chave   string     

NFe key to be corrected. Must be 44 characters. Example: 43190512345678000123550010000000011000000011

correcao   string     

Correction text for the CCe. Must not be greater than 1000 characters. Must be at least 15 characters. Example: Correction of the invoice data as per agreement.

sequencial   integer     

Sequential number of the CCe (1-99). Must be at least 1. Must not be greater than 99. Example: 1

NFSe management

APIs for managing services invoices (NFSe)

POST api/nfse/gerar

requires authentication

Example request:
$client = new \GuzzleHttp\Client();
$url = 'https://devnota.com.br/api/nfse/gerar';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Company' => '{YOUR_COMPANY_CNPJ}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'callback' => 'https://example.com/callback',
            'ambiente' => 'production or developer',
            'rps' => [
                'identificacao' => [
                    'numero' => 123456,
                    'serie' => 1,
                    'tipo' => 1,
                ],
                'data_emissao' => '2023-10-01T12:00:00',
                'data_competencia' => '2026-03-12',
                'natureza_operacao' => 1,
                'optante_simples_nacional' => 1,
                'regime_especial_tributacao_sn' => 1,
                'incentivador_cultural' => 1,
                'status' => 1,
                'servico' => [
                    'valores' => [
                        'valor_servicos' => 100.0,
                        'iss_retido' => 1,
                        'aliquota' => 5.0,
                        'aliquota_fed' => 3.0,
                        'aliquota_est' => 0.0906476,
                        'aliquota_mun' => 3585.88,
                        'valor_deducoes' => 10.0,
                        'valor_total_recebido' => 90.0,
                        'valor_pis' => 1.0,
                        'valor_cofins' => 1.0,
                        'valor_inss' => 1.0,
                        'valor_ir' => 1.0,
                        'valor_csll' => 1.0,
                        'valor_iss' => 1.0,
                        'valor_iss_retido' => 1.0,
                        'outras_retencoes' => 1.0,
                        'base_calculo' => 100.0,
                        'valor_liquido_nfse' => 90.0,
                        'desconto_incondicionado' => 0.0,
                        'desconto_condicionado' => 0.0,
                        'cst' => '01',
                        'pis_cofins_retido' => 1,
                    ],
                    'item_lista_servico' => 123456,
                    'codigo_cnae' => 12345678,
                    'nbs' => 12345678,
                    'codigo_tributacao_municipio' => 123456,
                    'discriminacao' => 'Service description',
                    'codigo_municipio' => 123456,
                    'regime_especial_tributacao' => 1.0,
                    'exigibilidade_iss' => 1.0,
                    'municipio_incidencia' => 123456.0,
                    'informacoes_complementares' => 'voluptatem',
                ],
                'tomador' => [
                    'nome' => 'John Doe',
                    'cpf' => '12345678901',
                    'cnpj' => '12345678901234',
                    'endereco' => '123 Main St',
                    'numero' => '123',
                    'complemento' => 'Apt 1',
                    'bairro' => 'Downtown',
                    'codigo_municipio' => 123456,
                    'uf' => 'SP',
                    'cep' => '12345678',
                    'telefone' => '38665465',
                    'email' => '[email protected]',
                ],
                'obra' => [
                    'cep' => '12345678',
                    'endereco' => '456 Elm St',
                    'numero' => '456',
                    'bairro' => 'Uptown',
                    'codigo_obra' => 123456,
                    'art' => '123456789',
                ],
            ],
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://devnota.com.br/api/nfse/gerar"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Company": "{YOUR_COMPANY_CNPJ}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "callback": "https:\/\/example.com\/callback",
    "ambiente": "production or developer",
    "rps": {
        "identificacao": {
            "numero": 123456,
            "serie": 1,
            "tipo": 1
        },
        "data_emissao": "2023-10-01T12:00:00",
        "data_competencia": "2026-03-12",
        "natureza_operacao": 1,
        "optante_simples_nacional": 1,
        "regime_especial_tributacao_sn": 1,
        "incentivador_cultural": 1,
        "status": 1,
        "servico": {
            "valores": {
                "valor_servicos": 100,
                "iss_retido": 1,
                "aliquota": 5,
                "aliquota_fed": 3,
                "aliquota_est": 0.0906476,
                "aliquota_mun": 3585.88,
                "valor_deducoes": 10,
                "valor_total_recebido": 90,
                "valor_pis": 1,
                "valor_cofins": 1,
                "valor_inss": 1,
                "valor_ir": 1,
                "valor_csll": 1,
                "valor_iss": 1,
                "valor_iss_retido": 1,
                "outras_retencoes": 1,
                "base_calculo": 100,
                "valor_liquido_nfse": 90,
                "desconto_incondicionado": 0,
                "desconto_condicionado": 0,
                "cst": "01",
                "pis_cofins_retido": 1
            },
            "item_lista_servico": 123456,
            "codigo_cnae": 12345678,
            "nbs": 12345678,
            "codigo_tributacao_municipio": 123456,
            "discriminacao": "Service description",
            "codigo_municipio": 123456,
            "regime_especial_tributacao": 1,
            "exigibilidade_iss": 1,
            "municipio_incidencia": 123456,
            "informacoes_complementares": "voluptatem"
        },
        "tomador": {
            "nome": "John Doe",
            "cpf": "12345678901",
            "cnpj": "12345678901234",
            "endereco": "123 Main St",
            "numero": "123",
            "complemento": "Apt 1",
            "bairro": "Downtown",
            "codigo_municipio": 123456,
            "uf": "SP",
            "cep": "12345678",
            "telefone": "38665465",
            "email": "[email protected]"
        },
        "obra": {
            "cep": "12345678",
            "endereco": "456 Elm St",
            "numero": "456",
            "bairro": "Uptown",
            "codigo_obra": 123456,
            "art": "123456789"
        }
    }
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
import requests
import json

url = 'https://devnota.com.br/api/nfse/gerar'
payload = {
    "callback": "https:\/\/example.com\/callback",
    "ambiente": "production or developer",
    "rps": {
        "identificacao": {
            "numero": 123456,
            "serie": 1,
            "tipo": 1
        },
        "data_emissao": "2023-10-01T12:00:00",
        "data_competencia": "2026-03-12",
        "natureza_operacao": 1,
        "optante_simples_nacional": 1,
        "regime_especial_tributacao_sn": 1,
        "incentivador_cultural": 1,
        "status": 1,
        "servico": {
            "valores": {
                "valor_servicos": 100,
                "iss_retido": 1,
                "aliquota": 5,
                "aliquota_fed": 3,
                "aliquota_est": 0.0906476,
                "aliquota_mun": 3585.88,
                "valor_deducoes": 10,
                "valor_total_recebido": 90,
                "valor_pis": 1,
                "valor_cofins": 1,
                "valor_inss": 1,
                "valor_ir": 1,
                "valor_csll": 1,
                "valor_iss": 1,
                "valor_iss_retido": 1,
                "outras_retencoes": 1,
                "base_calculo": 100,
                "valor_liquido_nfse": 90,
                "desconto_incondicionado": 0,
                "desconto_condicionado": 0,
                "cst": "01",
                "pis_cofins_retido": 1
            },
            "item_lista_servico": 123456,
            "codigo_cnae": 12345678,
            "nbs": 12345678,
            "codigo_tributacao_municipio": 123456,
            "discriminacao": "Service description",
            "codigo_municipio": 123456,
            "regime_especial_tributacao": 1,
            "exigibilidade_iss": 1,
            "municipio_incidencia": 123456,
            "informacoes_complementares": "voluptatem"
        },
        "tomador": {
            "nome": "John Doe",
            "cpf": "12345678901",
            "cnpj": "12345678901234",
            "endereco": "123 Main St",
            "numero": "123",
            "complemento": "Apt 1",
            "bairro": "Downtown",
            "codigo_municipio": 123456,
            "uf": "SP",
            "cep": "12345678",
            "telefone": "38665465",
            "email": "[email protected]"
        },
        "obra": {
            "cep": "12345678",
            "endereco": "456 Elm St",
            "numero": "456",
            "bairro": "Uptown",
            "codigo_obra": 123456,
            "art": "123456789"
        }
    }
}
headers = {
  'Authorization': 'Bearer {YOUR_AUTH_KEY}',
  'Company': '{YOUR_COMPANY_CNPJ}',
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('POST', url, headers=headers, json=payload)
response.json()
curl --request POST \
    "https://devnota.com.br/api/nfse/gerar" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Company: {YOUR_COMPANY_CNPJ}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"callback\": \"https:\\/\\/example.com\\/callback\",
    \"ambiente\": \"production or developer\",
    \"rps\": {
        \"identificacao\": {
            \"numero\": 123456,
            \"serie\": 1,
            \"tipo\": 1
        },
        \"data_emissao\": \"2023-10-01T12:00:00\",
        \"data_competencia\": \"2026-03-12\",
        \"natureza_operacao\": 1,
        \"optante_simples_nacional\": 1,
        \"regime_especial_tributacao_sn\": 1,
        \"incentivador_cultural\": 1,
        \"status\": 1,
        \"servico\": {
            \"valores\": {
                \"valor_servicos\": 100,
                \"iss_retido\": 1,
                \"aliquota\": 5,
                \"aliquota_fed\": 3,
                \"aliquota_est\": 0.0906476,
                \"aliquota_mun\": 3585.88,
                \"valor_deducoes\": 10,
                \"valor_total_recebido\": 90,
                \"valor_pis\": 1,
                \"valor_cofins\": 1,
                \"valor_inss\": 1,
                \"valor_ir\": 1,
                \"valor_csll\": 1,
                \"valor_iss\": 1,
                \"valor_iss_retido\": 1,
                \"outras_retencoes\": 1,
                \"base_calculo\": 100,
                \"valor_liquido_nfse\": 90,
                \"desconto_incondicionado\": 0,
                \"desconto_condicionado\": 0,
                \"cst\": \"01\",
                \"pis_cofins_retido\": 1
            },
            \"item_lista_servico\": 123456,
            \"codigo_cnae\": 12345678,
            \"nbs\": 12345678,
            \"codigo_tributacao_municipio\": 123456,
            \"discriminacao\": \"Service description\",
            \"codigo_municipio\": 123456,
            \"regime_especial_tributacao\": 1,
            \"exigibilidade_iss\": 1,
            \"municipio_incidencia\": 123456,
            \"informacoes_complementares\": \"voluptatem\"
        },
        \"tomador\": {
            \"nome\": \"John Doe\",
            \"cpf\": \"12345678901\",
            \"cnpj\": \"12345678901234\",
            \"endereco\": \"123 Main St\",
            \"numero\": \"123\",
            \"complemento\": \"Apt 1\",
            \"bairro\": \"Downtown\",
            \"codigo_municipio\": 123456,
            \"uf\": \"SP\",
            \"cep\": \"12345678\",
            \"telefone\": \"38665465\",
            \"email\": \"[email protected]\"
        },
        \"obra\": {
            \"cep\": \"12345678\",
            \"endereco\": \"456 Elm St\",
            \"numero\": \"456\",
            \"bairro\": \"Uptown\",
            \"codigo_obra\": 123456,
            \"art\": \"123456789\"
        }
    }
}"

Example response (201):


{
    "protocolo": 2950,
    "status": "processando"
}
 

Example response (422):


{
    "message": "The rps.identificacao.numero field is required.",
    "errors": {
        "rps.identificacao.numero": [
            "The rps.identificacao.numero field is required."
        ]
    }
}
 

Request      

POST api/nfse/gerar

Headers

Authorization        

Example: Bearer {YOUR_AUTH_KEY}

Company        

Example: {YOUR_COMPANY_CNPJ}

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

callback   string  optional    

Callback URL to receive the response. Example: https://example.com/callback

ambiente   string     

Environment to use. Example: production or developer

Must be one of:
  • production
  • developer
rps   object  optional    
identificacao   object  optional    
numero   string     

The number of the RPS. Example: 123456

serie   string     

The series of the RPS. Example: 1

tipo   string     

The type of the RPS. Example: 1

data_emissao   string     

The emission date of the RPS. Must be a valid date in the format Y-m-d\TH:i:s. Example: 2023-10-01T12:00:00

data_competencia   string  optional    

Must be a valid date in the format Y-m-d. Example: 2026-03-12

natureza_operacao   string     

The nature of the operation. Example: 1

optante_simples_nacional   string     

Whether the service provider is a Simple National taxpayer. Example: 1

Must be one of:
  • 1
  • 2
  • 3
regime_especial_tributacao_sn   string  optional    

Whether the service provider is a Simple National taxpayer. Example: 1

Must be one of:
  • 1
  • 2
  • 3
incentivador_cultural   string     

Whether the service provider is a cultural incentive. Example: 1

Must be one of:
  • 1
  • 2
status   string     

The status of the RPS. Example: 1

servico   object  optional    
valores   object  optional    
valor_servicos   number     

The value of the services. Example: 100

iss_retido   string     

Whether the ISS is withheld. Example: 1

Must be one of:
  • 1
  • 2
aliquota   string  optional    

The tax rate. Example: 5

aliquota_fed   number  optional    

Example: 3

aliquota_est   number  optional    

Example: 0.0906476

aliquota_mun   number  optional    

Example: 3585.88

valor_deducoes   number  optional    

The value of deductions. Example: 10

valor_total_recebido   number  optional    

The total value received. Example: 90

valor_pis   number  optional    

The value of PIS. Example: 1

valor_cofins   number  optional    

The value of COFINS. Example: 1

valor_inss   number  optional    

The value of INSS. Example: 1

valor_ir   number  optional    

The value of IR. Example: 1

valor_csll   number  optional    

The value of CSLL. Example: 1

valor_iss   number  optional    

The value of ISS. Example: 1

valor_iss_retido   number  optional    

The value of withheld ISS. Example: 1

outras_retencoes   number  optional    

The value of other withholdings. Example: 1

base_calculo   number  optional    

The calculation base. Example: 100

valor_liquido_nfse   number  optional    

The net value of the NFSe. Example: 90

desconto_incondicionado   number  optional    

The value of unconditional discount. Example: 0

desconto_condicionado   number  optional    

The value of conditioned discount. Example: 0

cst   string  optional    

The CST code. Example: 01

Must be one of:
  • 0
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 99
pis_cofins_retido   string  optional    

Whether PIS/COFINS is withheld. Example: 1

Must be one of:
  • 0
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
item_lista_servico   string     

The item list service code. Example: 123456

codigo_servico_nacional   string  optional    
codigo_cnae   string  optional    

The CNAE code. Example: 12345678

nbs   string  optional    

The NBS code. Example: 12345678

codigo_tributacao_municipio   string  optional    

The municipal taxation code. Example: 123456

discriminacao   string     

The service description. Example: Service description

codigo_municipio   string     

The municipality code. Example: 123456

regime_especial_tributacao   number  optional    

The special tax regime. Example: 1

exigibilidade_iss   number  optional    

The ISS requirement. Example: 1

municipio_incidencia   number  optional    

The municipality of incidence. Example: 123456

informacoes_complementares   string  optional    

Example: voluptatem

tomador   object  optional    
nome   string  optional    

The name of the taker. Example: John Doe

cpf   string  optional    

The CPF of the taker. Must be 11 digits. Example: 12345678901

cnpj   string  optional    

The CNPJ of the taker. Must be 14 digits. Example: 12345678901234

endereco   string  optional    

The address of the taker. Example: 123 Main St

numero   string  optional    

The number of the taker's address. This field is required when rps.tomador.endereco is present. Example: 123

complemento   string  optional    

The address complement of the taker. Example: Apt 1

bairro   string  optional    

The neighborhood of the taker. This field is required when rps.tomador.endereco is present. Example: Downtown

codigo_municipio   string  optional    

The municipality code of the taker. Example: 123456

uf   string  optional    

The state of the taker. Example: SP

cep   string  optional    

The postal code of the taker. Must be 8 digits. Example: 12345678

telefone   string  optional    

Must be between 6 and 20 digits. Example: 38665465

email   string  optional    

Must be a valid email address. Example: [email protected]

obra   object  optional    
cep   string  optional    

The postal code of the work. Must be 8 digits. Example: 12345678

endereco   string  optional    

The address of the work. Example: 456 Elm St

numero   string  optional    

The number of the work's address. Example: 456

bairro   string  optional    

The neighborhood of the work. Example: Uptown

codigo_obra   string  optional    

The code of the work. Example: 123456

art   string  optional    

The ART of the work. Example: 123456789

POST api/nfse/gerar/lote

requires authentication

Example request:
$client = new \GuzzleHttp\Client();
$url = 'https://devnota.com.br/api/nfse/gerar/lote';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Company' => '{YOUR_COMPANY_CNPJ}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'callback' => 'https://example.com/callback',
            'ambiente' => 'production or developer',
            'lote' => 123456.0,
            'rps' => [
                [
                    'identificacao' => [
                        'numero' => 123456,
                        'serie' => 1,
                        'tipo' => 1,
                    ],
                    'data_emissao' => '2023-10-01T12:00:00',
                    'natureza_operacao' => 1,
                    'optante_simples_nacional' => 1,
                    'incentivador_cultural' => 1,
                    'status' => 1,
                    'servico' => [
                        'valores' => [
                            'valor_servicos' => 100.0,
                            'iss_retido' => 1,
                            'aliquota' => 5.0,
                            'valor_deducoes' => 10.0,
                            'valor_total_recebido' => 90.0,
                            'valor_pis' => 1.0,
                            'valor_cofins' => 1.0,
                            'valor_inss' => 1.0,
                            'valor_ir' => 1.0,
                            'valor_csll' => 1.0,
                            'valor_iss_retido' => 1.0,
                            'outras_retencoes' => 1.0,
                            'base_calculo' => 100.0,
                            'valor_liquido_nfse' => 90.0,
                            'desconto_incondicionado' => 0.0,
                            'desconto_condicionado' => 0.0,
                            'cst' => '01',
                            'pis_cofins_retido' => 1,
                        ],
                        'item_lista_servico' => 123456,
                        'codigo_cnae' => 12345678,
                        'codigo_tributacao_municipio' => 123456,
                        'discriminacao' => 'Service description',
                        'codigo_municipio' => 123456,
                        'regime_especial_tributacao' => 1.0,
                        'exigibilidade_iss' => 1.0,
                        'municipio_incidencia' => 123456.0,
                    ],
                    'tomador' => [
                        'nome' => 'John Doe',
                        'cpf' => '12345678901',
                        'cnpj' => '12345678901234',
                        'endereco' => '123 Main St',
                        'numero' => '123',
                        'complemento' => 'Apt 1',
                        'bairro' => 'Downtown',
                        'codigo_municipio' => 123456,
                        'uf' => 'SP',
                        'cep' => '12345678',
                    ],
                    'obra' => [
                        'cep' => '12345678',
                        'endereco' => '456 Elm St',
                        'numero' => '456',
                        'bairro' => 'Uptown',
                        'codigo_obra' => 123456,
                        'art' => '123456789',
                    ],
                ],
            ],
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://devnota.com.br/api/nfse/gerar/lote"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Company": "{YOUR_COMPANY_CNPJ}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "callback": "https:\/\/example.com\/callback",
    "ambiente": "production or developer",
    "lote": 123456,
    "rps": [
        {
            "identificacao": {
                "numero": 123456,
                "serie": 1,
                "tipo": 1
            },
            "data_emissao": "2023-10-01T12:00:00",
            "natureza_operacao": 1,
            "optante_simples_nacional": 1,
            "incentivador_cultural": 1,
            "status": 1,
            "servico": {
                "valores": {
                    "valor_servicos": 100,
                    "iss_retido": 1,
                    "aliquota": 5,
                    "valor_deducoes": 10,
                    "valor_total_recebido": 90,
                    "valor_pis": 1,
                    "valor_cofins": 1,
                    "valor_inss": 1,
                    "valor_ir": 1,
                    "valor_csll": 1,
                    "valor_iss_retido": 1,
                    "outras_retencoes": 1,
                    "base_calculo": 100,
                    "valor_liquido_nfse": 90,
                    "desconto_incondicionado": 0,
                    "desconto_condicionado": 0,
                    "cst": "01",
                    "pis_cofins_retido": 1
                },
                "item_lista_servico": 123456,
                "codigo_cnae": 12345678,
                "codigo_tributacao_municipio": 123456,
                "discriminacao": "Service description",
                "codigo_municipio": 123456,
                "regime_especial_tributacao": 1,
                "exigibilidade_iss": 1,
                "municipio_incidencia": 123456
            },
            "tomador": {
                "nome": "John Doe",
                "cpf": "12345678901",
                "cnpj": "12345678901234",
                "endereco": "123 Main St",
                "numero": "123",
                "complemento": "Apt 1",
                "bairro": "Downtown",
                "codigo_municipio": 123456,
                "uf": "SP",
                "cep": "12345678"
            },
            "obra": {
                "cep": "12345678",
                "endereco": "456 Elm St",
                "numero": "456",
                "bairro": "Uptown",
                "codigo_obra": 123456,
                "art": "123456789"
            }
        }
    ]
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
import requests
import json

url = 'https://devnota.com.br/api/nfse/gerar/lote'
payload = {
    "callback": "https:\/\/example.com\/callback",
    "ambiente": "production or developer",
    "lote": 123456,
    "rps": [
        {
            "identificacao": {
                "numero": 123456,
                "serie": 1,
                "tipo": 1
            },
            "data_emissao": "2023-10-01T12:00:00",
            "natureza_operacao": 1,
            "optante_simples_nacional": 1,
            "incentivador_cultural": 1,
            "status": 1,
            "servico": {
                "valores": {
                    "valor_servicos": 100,
                    "iss_retido": 1,
                    "aliquota": 5,
                    "valor_deducoes": 10,
                    "valor_total_recebido": 90,
                    "valor_pis": 1,
                    "valor_cofins": 1,
                    "valor_inss": 1,
                    "valor_ir": 1,
                    "valor_csll": 1,
                    "valor_iss_retido": 1,
                    "outras_retencoes": 1,
                    "base_calculo": 100,
                    "valor_liquido_nfse": 90,
                    "desconto_incondicionado": 0,
                    "desconto_condicionado": 0,
                    "cst": "01",
                    "pis_cofins_retido": 1
                },
                "item_lista_servico": 123456,
                "codigo_cnae": 12345678,
                "codigo_tributacao_municipio": 123456,
                "discriminacao": "Service description",
                "codigo_municipio": 123456,
                "regime_especial_tributacao": 1,
                "exigibilidade_iss": 1,
                "municipio_incidencia": 123456
            },
            "tomador": {
                "nome": "John Doe",
                "cpf": "12345678901",
                "cnpj": "12345678901234",
                "endereco": "123 Main St",
                "numero": "123",
                "complemento": "Apt 1",
                "bairro": "Downtown",
                "codigo_municipio": 123456,
                "uf": "SP",
                "cep": "12345678"
            },
            "obra": {
                "cep": "12345678",
                "endereco": "456 Elm St",
                "numero": "456",
                "bairro": "Uptown",
                "codigo_obra": 123456,
                "art": "123456789"
            }
        }
    ]
}
headers = {
  'Authorization': 'Bearer {YOUR_AUTH_KEY}',
  'Company': '{YOUR_COMPANY_CNPJ}',
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('POST', url, headers=headers, json=payload)
response.json()
curl --request POST \
    "https://devnota.com.br/api/nfse/gerar/lote" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Company: {YOUR_COMPANY_CNPJ}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"callback\": \"https:\\/\\/example.com\\/callback\",
    \"ambiente\": \"production or developer\",
    \"lote\": 123456,
    \"rps\": [
        {
            \"identificacao\": {
                \"numero\": 123456,
                \"serie\": 1,
                \"tipo\": 1
            },
            \"data_emissao\": \"2023-10-01T12:00:00\",
            \"natureza_operacao\": 1,
            \"optante_simples_nacional\": 1,
            \"incentivador_cultural\": 1,
            \"status\": 1,
            \"servico\": {
                \"valores\": {
                    \"valor_servicos\": 100,
                    \"iss_retido\": 1,
                    \"aliquota\": 5,
                    \"valor_deducoes\": 10,
                    \"valor_total_recebido\": 90,
                    \"valor_pis\": 1,
                    \"valor_cofins\": 1,
                    \"valor_inss\": 1,
                    \"valor_ir\": 1,
                    \"valor_csll\": 1,
                    \"valor_iss_retido\": 1,
                    \"outras_retencoes\": 1,
                    \"base_calculo\": 100,
                    \"valor_liquido_nfse\": 90,
                    \"desconto_incondicionado\": 0,
                    \"desconto_condicionado\": 0,
                    \"cst\": \"01\",
                    \"pis_cofins_retido\": 1
                },
                \"item_lista_servico\": 123456,
                \"codigo_cnae\": 12345678,
                \"codigo_tributacao_municipio\": 123456,
                \"discriminacao\": \"Service description\",
                \"codigo_municipio\": 123456,
                \"regime_especial_tributacao\": 1,
                \"exigibilidade_iss\": 1,
                \"municipio_incidencia\": 123456
            },
            \"tomador\": {
                \"nome\": \"John Doe\",
                \"cpf\": \"12345678901\",
                \"cnpj\": \"12345678901234\",
                \"endereco\": \"123 Main St\",
                \"numero\": \"123\",
                \"complemento\": \"Apt 1\",
                \"bairro\": \"Downtown\",
                \"codigo_municipio\": 123456,
                \"uf\": \"SP\",
                \"cep\": \"12345678\"
            },
            \"obra\": {
                \"cep\": \"12345678\",
                \"endereco\": \"456 Elm St\",
                \"numero\": \"456\",
                \"bairro\": \"Uptown\",
                \"codigo_obra\": 123456,
                \"art\": \"123456789\"
            }
        }
    ]
}"

Example response (201):


{
    "protocolo": 2950,
    "status": "processando"
}
 

Example response (422):


{
    "message": "The rps.0.identificacao.numero field is required.",
    "errors": {
        "rps.identificacao.0.numero": [
            "The rps.0.identificacao.numero field is required."
        ]
    }
}
 

Request      

POST api/nfse/gerar/lote

Headers

Authorization        

Example: Bearer {YOUR_AUTH_KEY}

Company        

Example: {YOUR_COMPANY_CNPJ}

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

callback   string  optional    

Callback URL to receive the response. Example: https://example.com/callback

ambiente   string     

Environment to use. Example: production or developer

Must be one of:
  • production
  • developer
lote   number     

The batch number for the NFSe. Example: 123456

rps   object[]  optional    
identificacao   object  optional    
numero   string     

The number of the RPS. Example: 123456

serie   string     

The series of the RPS. Example: 1

tipo   string     

The type of the RPS. Example: 1

data_emissao   string     

The emission date of the RPS. Must be a valid date in the format Y-m-d\TH:i:s. Example: 2023-10-01T12:00:00

natureza_operacao   string     

The nature of the operation. Example: 1

optante_simples_nacional   string     

Whether the service provider is a Simple National taxpayer. Example: 1

Must be one of:
  • 1
  • 2
incentivador_cultural   string     

Whether the service provider is a cultural incentive. Example: 1

Must be one of:
  • 1
  • 2
status   string     

The status of the RPS. Example: 1

servico   object  optional    
valores   object  optional    
valor_servicos   number     

The value of the services. Example: 100

iss_retido   string     

Whether the ISS is withheld. Example: 1

Must be one of:
  • 1
  • 2
aliquota   number  optional    

The tax rate. Example: 5

valor_deducoes   number  optional    

The value of deductions. Example: 10

valor_total_recebido   number  optional    

The total value received. Example: 90

valor_pis   number  optional    

The value of PIS. Example: 1

valor_cofins   number  optional    

The value of COFINS. Example: 1

valor_inss   number  optional    

The value of INSS. Example: 1

valor_ir   number  optional    

The value of IR. Example: 1

valor_csll   number  optional    

The value of CSLL. Example: 1

valor_iss_retido   number  optional    

The value of withheld ISS. Example: 1

outras_retencoes   number  optional    

The value of other withholdings. Example: 1

base_calculo   number  optional    

The calculation base. Example: 100

valor_liquido_nfse   number  optional    

The net value of the NFSe. Example: 90

desconto_incondicionado   number  optional    

The value of unconditional discount. Example: 0

desconto_condicionado   number  optional    

The value of conditioned discount. Example: 0

cst   string  optional    

The CST code. Example: 01

Must be one of:
  • 0
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
pis_cofins_retido   string  optional    

Whether PIS/COFINS is withheld. Example: 1

Must be one of:
  • 0
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
item_lista_servico   string     

The item list service code. Example: 123456

codigo_servico_nacional   string  optional    
codigo_cnae   string  optional    

The CNAE code. Example: 12345678

codigo_tributacao_municipio   string     

The municipal taxation code. Example: 123456

discriminacao   string     

The service description. Example: Service description

codigo_municipio   string     

The municipality code. Example: 123456

regime_especial_tributacao   number  optional    

The special tax regime. Example: 1

exigibilidade_iss   number  optional    

The ISS requirement. Example: 1

municipio_incidencia   number  optional    

The municipality of incidence. Example: 123456

tomador   object  optional    
nome   string     

The name of the taker. Example: John Doe

cpf   string  optional    

The CPF of the taker. This field is required when rps.*.tomador.cnpj is not present. Must be 11 digits. Example: 12345678901

cnpj   string  optional    

The CNPJ of the taker. This field is required when rps.*.tomador.cpf is not present. Must be 14 digits. Example: 12345678901234

endereco   string  optional    

The address of the taker. Example: 123 Main St

numero   string  optional    

The number of the taker's address. Example: 123

complemento   string  optional    

The address complement of the taker. Example: Apt 1

bairro   string  optional    

The neighborhood of the taker. Example: Downtown

codigo_municipio   string  optional    

The municipality code of the taker. Example: 123456

uf   string  optional    

The state of the taker. Example: SP

cep   string  optional    

The postal code of the taker. Must be 8 digits. Example: 12345678

obra   object  optional    
cep   string  optional    

The postal code of the work. Must be 8 digits. Example: 12345678

endereco   string  optional    

The address of the work. Example: 456 Elm St

numero   string  optional    

The number of the work's address. Example: 456

bairro   string  optional    

The neighborhood of the work. Example: Uptown

codigo_obra   string  optional    

The code of the work. Example: 123456

art   string  optional    

The ART of the work. Example: 123456789

POST api/nfse/cancelar

requires authentication

Example request:
$client = new \GuzzleHttp\Client();
$url = 'https://devnota.com.br/api/nfse/cancelar';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Company' => '{YOUR_COMPANY_CNPJ}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'callback' => 'https://example.com/callback',
            'ambiente' => 'production or developer',
            'numero' => 123456,
            'codigo_cancelamento' => 1,
            'motivo' => 'sapiente',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://devnota.com.br/api/nfse/cancelar"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Company": "{YOUR_COMPANY_CNPJ}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "callback": "https:\/\/example.com\/callback",
    "ambiente": "production or developer",
    "numero": 123456,
    "codigo_cancelamento": 1,
    "motivo": "sapiente"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
import requests
import json

url = 'https://devnota.com.br/api/nfse/cancelar'
payload = {
    "callback": "https:\/\/example.com\/callback",
    "ambiente": "production or developer",
    "numero": 123456,
    "codigo_cancelamento": 1,
    "motivo": "sapiente"
}
headers = {
  'Authorization': 'Bearer {YOUR_AUTH_KEY}',
  'Company': '{YOUR_COMPANY_CNPJ}',
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('POST', url, headers=headers, json=payload)
response.json()
curl --request POST \
    "https://devnota.com.br/api/nfse/cancelar" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Company: {YOUR_COMPANY_CNPJ}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"callback\": \"https:\\/\\/example.com\\/callback\",
    \"ambiente\": \"production or developer\",
    \"numero\": 123456,
    \"codigo_cancelamento\": 1,
    \"motivo\": \"sapiente\"
}"

Example response (201):


{
    "protocolo": 2950,
    "status": "processando"
}
 

Example response (422):


{
    "message": "The numero field is required.",
    "errors": {
        "numero": [
            "The numero field is required."
        ]
    }
}
 

Request      

POST api/nfse/cancelar

Headers

Authorization        

Example: Bearer {YOUR_AUTH_KEY}

Company        

Example: {YOUR_COMPANY_CNPJ}

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

callback   string  optional    

Callback URL to receive the response. Example: https://example.com/callback

ambiente   string     

Environment to use. Example: production or developer

Must be one of:
  • production
  • developer
numero   string     

The number of the NFSe. Example: 123456

codigo_cancelamento   string     

The cancellation code (1: Cancelamento, 2: Inutilização, 3: Substituição, 9: Outros). Example: 1

Must be one of:
  • 1
  • 2
  • 3
  • 9
motivo   string  optional    

Example: sapiente

NFSe v2 management

APIs for managing services invoices (NFSe)

POST api/v2/nfse/gerar

requires authentication

Example request:
$client = new \GuzzleHttp\Client();
$url = 'https://devnota.com.br/api/v2/nfse/gerar';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Company' => '{YOUR_COMPANY_CNPJ}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://devnota.com.br/api/v2/nfse/gerar"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Company": "{YOUR_COMPANY_CNPJ}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());
import requests
import json

url = 'https://devnota.com.br/api/v2/nfse/gerar'
headers = {
  'Authorization': 'Bearer {YOUR_AUTH_KEY}',
  'Company': '{YOUR_COMPANY_CNPJ}',
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('POST', url, headers=headers)
response.json()
curl --request POST \
    "https://devnota.com.br/api/v2/nfse/gerar" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Company: {YOUR_COMPANY_CNPJ}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"

Example response (201):


{
    "protocolo": 2950,
    "status": "processando"
}
 

Example response (422):


{
    "message": "The rps.identificacao.numero field is required.",
    "errors": {
        "rps.identificacao.numero": [
            "The rps.identificacao.numero field is required."
        ]
    }
}
 

Request      

POST api/v2/nfse/gerar

Headers

Authorization        

Example: Bearer {YOUR_AUTH_KEY}

Company        

Example: {YOUR_COMPANY_CNPJ}

Content-Type        

Example: application/json

Accept        

Example: application/json

POST api/v2/nfse/gerar/lote

requires authentication

Example request:
$client = new \GuzzleHttp\Client();
$url = 'https://devnota.com.br/api/v2/nfse/gerar/lote';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Company' => '{YOUR_COMPANY_CNPJ}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://devnota.com.br/api/v2/nfse/gerar/lote"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Company": "{YOUR_COMPANY_CNPJ}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());
import requests
import json

url = 'https://devnota.com.br/api/v2/nfse/gerar/lote'
headers = {
  'Authorization': 'Bearer {YOUR_AUTH_KEY}',
  'Company': '{YOUR_COMPANY_CNPJ}',
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('POST', url, headers=headers)
response.json()
curl --request POST \
    "https://devnota.com.br/api/v2/nfse/gerar/lote" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Company: {YOUR_COMPANY_CNPJ}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"

Example response (201):


{
    "protocolo": 2950,
    "status": "processando"
}
 

Example response (422):


{
    "message": "The rps.0.identificacao.numero field is required.",
    "errors": {
        "rps.identificacao.0.numero": [
            "The rps.0.identificacao.numero field is required."
        ]
    }
}
 

Request      

POST api/v2/nfse/gerar/lote

Headers

Authorization        

Example: Bearer {YOUR_AUTH_KEY}

Company        

Example: {YOUR_COMPANY_CNPJ}

Content-Type        

Example: application/json

Accept        

Example: application/json

POST api/v2/nfse/cancelar

requires authentication

Example request:
$client = new \GuzzleHttp\Client();
$url = 'https://devnota.com.br/api/v2/nfse/cancelar';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Company' => '{YOUR_COMPANY_CNPJ}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://devnota.com.br/api/v2/nfse/cancelar"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Company": "{YOUR_COMPANY_CNPJ}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());
import requests
import json

url = 'https://devnota.com.br/api/v2/nfse/cancelar'
headers = {
  'Authorization': 'Bearer {YOUR_AUTH_KEY}',
  'Company': '{YOUR_COMPANY_CNPJ}',
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('POST', url, headers=headers)
response.json()
curl --request POST \
    "https://devnota.com.br/api/v2/nfse/cancelar" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Company: {YOUR_COMPANY_CNPJ}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"

Example response (201):


{
    "protocolo": 2950,
    "status": "processando"
}
 

Example response (422):


{
    "message": "The numero field is required.",
    "errors": {
        "numero": [
            "The numero field is required."
        ]
    }
}
 

Request      

POST api/v2/nfse/cancelar

Headers

Authorization        

Example: Bearer {YOUR_AUTH_KEY}

Company        

Example: {YOUR_COMPANY_CNPJ}

Content-Type        

Example: application/json

Accept        

Example: application/json

NFe management

APIs for managing product invoices (NFe)

Generate NFe

requires authentication

Create a new electronic invoice (NFe)

Example request:
$client = new \GuzzleHttp\Client();
$url = 'https://devnota.com.br/api/nfe/gerar';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Company' => '{YOUR_COMPANY_CNPJ}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'callback' => 'https://exemplo.com/webhook',
            'ambiente' => 'production',
            'ide' => [
                'cUF' => 26,
                'cNF' => '83319433',
                'natOp' => 'VENDA FORA DO ESTADO',
                'serie' => 1,
                'nNF' => 15233,
                'dhEmi' => '2025-06-02T08:38:53-03:00',
                'dhSaiEnt' => '2025-06-02T08:38:53-03:00',
                'tpNF' => 1,
                'idDest' => 2,
                'cMunFG' => 2611101,
                'tpImp' => 1,
                'tpEmis' => 1,
                'cDV' => 0,
                'finNFe' => 1,
                'indFinal' => 1,
                'indPres' => 0,
                'procEmi' => 0,
                'verProc' => '2.1.4 - 1.046.4',
                'dhCont' => '2025-06-02T08:38:53-03:00',
                'xJust' => 'Justificativa para entrada em contingência',
                'NFref' => [
                    'refNFe' => '35220608339483000120550010001523341000123345',
                ],
            ],
            'emit' => [
                'CNPJ' => '00000000000000',
                'CPF' => '12345678901',
                'xNome' => 'DEVNOTA LTDA',
                'xFant' => 'DEVNOTA LTDA',
                'IE' => '027840417',
                'IEST' => '123456789',
                'IM' => '123456789012345',
                'CNAE' => '4530703',
                'CRT' => 1,
            ],
            'enderEmit' => [
                'xLgr' => 'AV SETE DE SETEMBRO',
                'nro' => '690',
                'xCpl' => 'SALA 01',
                'xBairro' => 'OURO PRETO',
                'cMun' => 2611101,
                'xMun' => 'PETROLINA',
                'UF' => 'PE',
                'CEP' => '56306610',
                'cPais' => 1058,
                'xPais' => 'BRASIL',
                'fone' => '8738636050',
            ],
            'dest' => [
                'CNPJ' => '00000000000000',
                'CPF' => '00000000000',
                'idEstrangeiro' => 'ID123456789',
                'xNome' => 'JOAO SILVA',
                'indIEDest' => 1,
                'IE' => '081054726',
                'ISUF' => '123456789',
                'IM' => '123456789012345',
                'email' => '[email protected]',
            ],
            'enderDest' => [
                'xLgr' => 'AVENIDA TRANSNORDESTINA',
                'nro' => '71',
                'xCpl' => 'APTO 101',
                'xBairro' => 'JARDIM AMAZONAS',
                'cMun' => 2611101,
                'xMun' => 'PETROLINA',
                'UF' => 'PE',
                'CEP' => '56318750',
                'cPais' => 1058,
                'xPais' => 'BRASIL',
                'fone' => '8738636050',
            ],
            'retirada' => [
                'CNPJ' => '00000000000000',
                'CPF' => '00000000000',
                'xNome' => 'JOAO SILVA',
                'xLgr' => 'AVENIDA TRANSNORDESTINA',
                'nro' => '71',
                'xCpl' => 'APTO 101',
                'xBairro' => 'JARDIM AMAZONAS',
                'cMun' => 2611101,
                'xMun' => 'PETROLINA',
                'UF' => 'PE',
                'CEP' => '56318750',
                'cPais' => 1058,
                'xPais' => 'BRASIL',
                'fone' => '8738636050',
            ],
            'entrega' => [
                'CNPJ' => '00000000000000',
                'CPF' => '00000000000',
                'xNome' => 'JOAO SILVA',
                'xLgr' => 'AVENIDA TRANSNORDESTINA',
                'nro' => '71',
                'xCpl' => 'APTO 101',
                'xBairro' => 'JARDIM AMAZONAS',
                'cMun' => 2611101,
                'xMun' => 'PETROLINA',
                'UF' => 'PE',
                'CEP' => '56318750',
                'cPais' => 1058,
                'xPais' => 'BRASIL',
                'fone' => '8738636050',
            ],
            'det' => [
                [
                    'nItem' => 1,
                    'prod' => [
                        'cProd' => 'BR50320C',
                        'cEAN' => 'SEM GTIN',
                        'xProd' => 'REGULADOR FREIO S-10 12/.. TRAS/ESQ',
                        'NCM' => '87083019',
                        'NVE' => 'AB0001',
                        'CEST' => '0100100',
                        'indEscala' => 'N',
                        'CNPJFab' => '00000000000000',
                        'cBenef' => 'PE123456',
                        'EXTIPI' => '001',
                        'CFOP' => '5405',
                        'uCom' => 'PC',
                        'qCom' => 1.0,
                        'vUnCom' => 130.0,
                        'vProd' => 130.0,
                        'cEANTrib' => 'SEM GTIN',
                        'uTrib' => 'PC',
                        'qTrib' => 1.0,
                        'vUnTrib' => 130.0,
                        'vFrete' => 0.0,
                        'vSeg' => 0.0,
                        'vDesc' => 0.0,
                        'vOutro' => 0.0,
                        'indTot' => 1,
                        'xPed' => '43728',
                        'nItemPed' => 1,
                        'nFCI' => '12345678-1234-1234-1234-123456789012',
                        'comb' => [
                            'cProdANP' => '210203001',
                            'descANP' => 'GLP ENVASADO',
                            'pGLP' => 0.5,
                            'pGNn' => 0.3,
                            'pGNi' => 0.2,
                            'vPart' => 100.25,
                            'CODIF' => 'ABC123456789',
                            'qTemp' => 12.1234,
                            'UFCons' => 'PE',
                            'qBCProd' => 10.0,
                            'vAliqProd' => 1.25,
                            'vCIDE' => 12.5,
                            'encerrante' => [
                                'nBico' => 1,
                                'nBomba' => 2,
                                'nTanque' => 3,
                                'vEncIni' => 100.123,
                                'vEncFin' => 110.123,
                            ],
                        ],
                    ],
                    'imposto' => [
                        'vTotTrib' => 42.63,
                        'ICMS' => [
                            [
                                'orig' => 0,
                                'CST' => '00',
                                'CSOSN' => '500',
                                'modBC' => 3,
                                'vBC' => 130.0,
                                'pICMS' => 18.0,
                                'vICMS' => 23.4,
                                'vBCSTRet' => 0.0,
                                'pST' => 17.0,
                                'vICMSSubstituto' => 0.0,
                                'vICMSSTRet' => 0.0,
                            ],
                        ],
                        'PIS' => [
                            [
                                'CST' => '04',
                                'vBC' => 130.0,
                                'pPIS' => 1.65,
                                'vPIS' => 2.15,
                            ],
                        ],
                        'COFINS' => [
                            [
                                'CST' => '04',
                                'vBC' => 130.0,
                                'pCOFINS' => 7.6,
                                'vCOFINS' => 9.88,
                            ],
                        ],
                        'IBSCBS' => [
                            [
                                'vBC' => 6257.8,
                                'CST' => 2332486.85,
                                'cClassTrib' => 1.0,
                            ],
                        ],
                        'IPI' => [
                            'clEnq' => '12345',
                            'CNPJProd' => '00000000000000',
                            'cSelo' => 'SELO123456',
                            'qSelo' => 1,
                            'cEnq' => '999',
                            'CST' => '50',
                            'vBC' => 130.0,
                            'pIPI' => 10.0,
                            'qUnid' => 1.0,
                            'vUnid' => 13.0,
                            'vIPI' => 13.0,
                        ],
                        'II' => [
                            'vBC' => 130.0,
                            'vDespAdu' => 5.0,
                            'vII' => 15.0,
                            'vIOF' => 2.0,
                        ],
                    ],
                ],
            ],
            'total' => [
                'ICMSTot' => [
                    'vBC' => 0.0,
                    'vICMS' => 0.0,
                    'vICMSDeson' => 0.0,
                    'vFCP' => 0.0,
                    'vBCST' => 0.0,
                    'vST' => 0.0,
                    'vFCPST' => 0.0,
                    'vFCPSTRet' => 0.0,
                    'vProd' => 130.0,
                    'vFrete' => 0.0,
                    'vSeg' => 0.0,
                    'vDesc' => 0.0,
                    'vII' => 0.0,
                    'vIPI' => 0.0,
                    'vIPIDevol' => 0.0,
                    'vPIS' => 0.0,
                    'vCOFINS' => 0.0,
                    'vOutro' => 0.0,
                    'vNF' => 130.0,
                    'vTotTrib' => 42.63,
                ],
            ],
            'transp' => [
                'modFrete' => 0,
                'transporta' => [
                    'CNPJ' => '00000000000000',
                    'CPF' => '12345678901',
                    'xNome' => 'Transportadora Exemplo Ltda',
                    'IE' => '123456789',
                    'xEnder' => 'Rua das Flores, 123, Centro',
                    'xMun' => 'São Paulo',
                    'UF' => 'SP',
                ],
                'retTransp' => [
                    'vServ' => 150.0,
                    'vBCRet' => 150.0,
                    'pICMSRet' => 12.0,
                    'vICMSRet' => 18.0,
                    'CFOP' => '5353',
                    'cMunFG' => 3550308,
                ],
                'veicTransp' => [
                    'placa' => 'ABC1234',
                    'UF' => 'SP',
                    'RNTC' => '12345678',
                ],
                'vol' => [
                    'qVol' => 19,
                    'esp' => 'snwjtfpgzvnvttrd',
                    'marca' => 'wivgkaaquvnkm',
                    'nVol' => 'brwfgiyxehclnuzhluwikrxn',
                    'pesoL' => 261980.38,
                    'pesoB' => 3035926.0,
                ],
                'reboque' => [
                    [
                        'placa' => 'DEF5678',
                        'UF' => 'SP',
                        'RNTC' => '87654321',
                    ],
                ],
            ],
            'pag' => [
                'detPag' => [
                    [
                        'indPag' => 0,
                        'tPag' => '01',
                        'vPag' => 130.0,
                        'tpIntegra' => 1,
                        'CNPJ' => 'xjutnspslnhvnw',
                        'tBand' => 13,
                        'cAut' => 'rkduoebpwteqibvpatomllymk',
                    ],
                ],
                'vTroco' => 5.0,
            ],
            'infAdic' => [
                'infAdFisco' => 'Informações adicionais do fisco',
                'infCpl' => 'MD-5: .ICMS PAGO ANTERIORMENTE POR SUBST. TRIBUTARIA CONF. DECRETO N: 35.679/2010 E 33.205 DE 27/03/2009',
            ],
            'infRespTec' => [
                'CNPJ' => '00000000000000',
                'xContato' => 'Programador',
                'email' => '[email protected]',
                'fone' => '1937553000',
            ],
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://devnota.com.br/api/nfe/gerar"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Company": "{YOUR_COMPANY_CNPJ}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "callback": "https:\/\/exemplo.com\/webhook",
    "ambiente": "production",
    "ide": {
        "cUF": 26,
        "cNF": "83319433",
        "natOp": "VENDA FORA DO ESTADO",
        "serie": 1,
        "nNF": 15233,
        "dhEmi": "2025-06-02T08:38:53-03:00",
        "dhSaiEnt": "2025-06-02T08:38:53-03:00",
        "tpNF": 1,
        "idDest": 2,
        "cMunFG": 2611101,
        "tpImp": 1,
        "tpEmis": 1,
        "cDV": 0,
        "finNFe": 1,
        "indFinal": 1,
        "indPres": 0,
        "procEmi": 0,
        "verProc": "2.1.4 - 1.046.4",
        "dhCont": "2025-06-02T08:38:53-03:00",
        "xJust": "Justificativa para entrada em contingência",
        "NFref": {
            "refNFe": "35220608339483000120550010001523341000123345"
        }
    },
    "emit": {
        "CNPJ": "00000000000000",
        "CPF": "12345678901",
        "xNome": "DEVNOTA LTDA",
        "xFant": "DEVNOTA LTDA",
        "IE": "027840417",
        "IEST": "123456789",
        "IM": "123456789012345",
        "CNAE": "4530703",
        "CRT": 1
    },
    "enderEmit": {
        "xLgr": "AV SETE DE SETEMBRO",
        "nro": "690",
        "xCpl": "SALA 01",
        "xBairro": "OURO PRETO",
        "cMun": 2611101,
        "xMun": "PETROLINA",
        "UF": "PE",
        "CEP": "56306610",
        "cPais": 1058,
        "xPais": "BRASIL",
        "fone": "8738636050"
    },
    "dest": {
        "CNPJ": "00000000000000",
        "CPF": "00000000000",
        "idEstrangeiro": "ID123456789",
        "xNome": "JOAO SILVA",
        "indIEDest": 1,
        "IE": "081054726",
        "ISUF": "123456789",
        "IM": "123456789012345",
        "email": "[email protected]"
    },
    "enderDest": {
        "xLgr": "AVENIDA TRANSNORDESTINA",
        "nro": "71",
        "xCpl": "APTO 101",
        "xBairro": "JARDIM AMAZONAS",
        "cMun": 2611101,
        "xMun": "PETROLINA",
        "UF": "PE",
        "CEP": "56318750",
        "cPais": 1058,
        "xPais": "BRASIL",
        "fone": "8738636050"
    },
    "retirada": {
        "CNPJ": "00000000000000",
        "CPF": "00000000000",
        "xNome": "JOAO SILVA",
        "xLgr": "AVENIDA TRANSNORDESTINA",
        "nro": "71",
        "xCpl": "APTO 101",
        "xBairro": "JARDIM AMAZONAS",
        "cMun": 2611101,
        "xMun": "PETROLINA",
        "UF": "PE",
        "CEP": "56318750",
        "cPais": 1058,
        "xPais": "BRASIL",
        "fone": "8738636050"
    },
    "entrega": {
        "CNPJ": "00000000000000",
        "CPF": "00000000000",
        "xNome": "JOAO SILVA",
        "xLgr": "AVENIDA TRANSNORDESTINA",
        "nro": "71",
        "xCpl": "APTO 101",
        "xBairro": "JARDIM AMAZONAS",
        "cMun": 2611101,
        "xMun": "PETROLINA",
        "UF": "PE",
        "CEP": "56318750",
        "cPais": 1058,
        "xPais": "BRASIL",
        "fone": "8738636050"
    },
    "det": [
        {
            "nItem": 1,
            "prod": {
                "cProd": "BR50320C",
                "cEAN": "SEM GTIN",
                "xProd": "REGULADOR FREIO S-10 12\/.. TRAS\/ESQ",
                "NCM": "87083019",
                "NVE": "AB0001",
                "CEST": "0100100",
                "indEscala": "N",
                "CNPJFab": "00000000000000",
                "cBenef": "PE123456",
                "EXTIPI": "001",
                "CFOP": "5405",
                "uCom": "PC",
                "qCom": 1,
                "vUnCom": 130,
                "vProd": 130,
                "cEANTrib": "SEM GTIN",
                "uTrib": "PC",
                "qTrib": 1,
                "vUnTrib": 130,
                "vFrete": 0,
                "vSeg": 0,
                "vDesc": 0,
                "vOutro": 0,
                "indTot": 1,
                "xPed": "43728",
                "nItemPed": 1,
                "nFCI": "12345678-1234-1234-1234-123456789012",
                "comb": {
                    "cProdANP": "210203001",
                    "descANP": "GLP ENVASADO",
                    "pGLP": 0.5,
                    "pGNn": 0.3,
                    "pGNi": 0.2,
                    "vPart": 100.25,
                    "CODIF": "ABC123456789",
                    "qTemp": 12.1234,
                    "UFCons": "PE",
                    "qBCProd": 10,
                    "vAliqProd": 1.25,
                    "vCIDE": 12.5,
                    "encerrante": {
                        "nBico": 1,
                        "nBomba": 2,
                        "nTanque": 3,
                        "vEncIni": 100.123,
                        "vEncFin": 110.123
                    }
                }
            },
            "imposto": {
                "vTotTrib": 42.63,
                "ICMS": [
                    {
                        "orig": 0,
                        "CST": "00",
                        "CSOSN": "500",
                        "modBC": 3,
                        "vBC": 130,
                        "pICMS": 18,
                        "vICMS": 23.4,
                        "vBCSTRet": 0,
                        "pST": 17,
                        "vICMSSubstituto": 0,
                        "vICMSSTRet": 0
                    }
                ],
                "PIS": [
                    {
                        "CST": "04",
                        "vBC": 130,
                        "pPIS": 1.65,
                        "vPIS": 2.15
                    }
                ],
                "COFINS": [
                    {
                        "CST": "04",
                        "vBC": 130,
                        "pCOFINS": 7.6,
                        "vCOFINS": 9.88
                    }
                ],
                "IBSCBS": [
                    {
                        "vBC": 6257.8,
                        "CST": 2332486.85,
                        "cClassTrib": 1
                    }
                ],
                "IPI": {
                    "clEnq": "12345",
                    "CNPJProd": "00000000000000",
                    "cSelo": "SELO123456",
                    "qSelo": 1,
                    "cEnq": "999",
                    "CST": "50",
                    "vBC": 130,
                    "pIPI": 10,
                    "qUnid": 1,
                    "vUnid": 13,
                    "vIPI": 13
                },
                "II": {
                    "vBC": 130,
                    "vDespAdu": 5,
                    "vII": 15,
                    "vIOF": 2
                }
            }
        }
    ],
    "total": {
        "ICMSTot": {
            "vBC": 0,
            "vICMS": 0,
            "vICMSDeson": 0,
            "vFCP": 0,
            "vBCST": 0,
            "vST": 0,
            "vFCPST": 0,
            "vFCPSTRet": 0,
            "vProd": 130,
            "vFrete": 0,
            "vSeg": 0,
            "vDesc": 0,
            "vII": 0,
            "vIPI": 0,
            "vIPIDevol": 0,
            "vPIS": 0,
            "vCOFINS": 0,
            "vOutro": 0,
            "vNF": 130,
            "vTotTrib": 42.63
        }
    },
    "transp": {
        "modFrete": 0,
        "transporta": {
            "CNPJ": "00000000000000",
            "CPF": "12345678901",
            "xNome": "Transportadora Exemplo Ltda",
            "IE": "123456789",
            "xEnder": "Rua das Flores, 123, Centro",
            "xMun": "São Paulo",
            "UF": "SP"
        },
        "retTransp": {
            "vServ": 150,
            "vBCRet": 150,
            "pICMSRet": 12,
            "vICMSRet": 18,
            "CFOP": "5353",
            "cMunFG": 3550308
        },
        "veicTransp": {
            "placa": "ABC1234",
            "UF": "SP",
            "RNTC": "12345678"
        },
        "vol": {
            "qVol": 19,
            "esp": "snwjtfpgzvnvttrd",
            "marca": "wivgkaaquvnkm",
            "nVol": "brwfgiyxehclnuzhluwikrxn",
            "pesoL": 261980.38,
            "pesoB": 3035926
        },
        "reboque": [
            {
                "placa": "DEF5678",
                "UF": "SP",
                "RNTC": "87654321"
            }
        ]
    },
    "pag": {
        "detPag": [
            {
                "indPag": 0,
                "tPag": "01",
                "vPag": 130,
                "tpIntegra": 1,
                "CNPJ": "xjutnspslnhvnw",
                "tBand": 13,
                "cAut": "rkduoebpwteqibvpatomllymk"
            }
        ],
        "vTroco": 5
    },
    "infAdic": {
        "infAdFisco": "Informações adicionais do fisco",
        "infCpl": "MD-5: .ICMS PAGO ANTERIORMENTE POR SUBST. TRIBUTARIA CONF. DECRETO N: 35.679\/2010 E 33.205 DE 27\/03\/2009"
    },
    "infRespTec": {
        "CNPJ": "00000000000000",
        "xContato": "Programador",
        "email": "[email protected]",
        "fone": "1937553000"
    }
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
import requests
import json

url = 'https://devnota.com.br/api/nfe/gerar'
payload = {
    "callback": "https:\/\/exemplo.com\/webhook",
    "ambiente": "production",
    "ide": {
        "cUF": 26,
        "cNF": "83319433",
        "natOp": "VENDA FORA DO ESTADO",
        "serie": 1,
        "nNF": 15233,
        "dhEmi": "2025-06-02T08:38:53-03:00",
        "dhSaiEnt": "2025-06-02T08:38:53-03:00",
        "tpNF": 1,
        "idDest": 2,
        "cMunFG": 2611101,
        "tpImp": 1,
        "tpEmis": 1,
        "cDV": 0,
        "finNFe": 1,
        "indFinal": 1,
        "indPres": 0,
        "procEmi": 0,
        "verProc": "2.1.4 - 1.046.4",
        "dhCont": "2025-06-02T08:38:53-03:00",
        "xJust": "Justificativa para entrada em contingência",
        "NFref": {
            "refNFe": "35220608339483000120550010001523341000123345"
        }
    },
    "emit": {
        "CNPJ": "00000000000000",
        "CPF": "12345678901",
        "xNome": "DEVNOTA LTDA",
        "xFant": "DEVNOTA LTDA",
        "IE": "027840417",
        "IEST": "123456789",
        "IM": "123456789012345",
        "CNAE": "4530703",
        "CRT": 1
    },
    "enderEmit": {
        "xLgr": "AV SETE DE SETEMBRO",
        "nro": "690",
        "xCpl": "SALA 01",
        "xBairro": "OURO PRETO",
        "cMun": 2611101,
        "xMun": "PETROLINA",
        "UF": "PE",
        "CEP": "56306610",
        "cPais": 1058,
        "xPais": "BRASIL",
        "fone": "8738636050"
    },
    "dest": {
        "CNPJ": "00000000000000",
        "CPF": "00000000000",
        "idEstrangeiro": "ID123456789",
        "xNome": "JOAO SILVA",
        "indIEDest": 1,
        "IE": "081054726",
        "ISUF": "123456789",
        "IM": "123456789012345",
        "email": "[email protected]"
    },
    "enderDest": {
        "xLgr": "AVENIDA TRANSNORDESTINA",
        "nro": "71",
        "xCpl": "APTO 101",
        "xBairro": "JARDIM AMAZONAS",
        "cMun": 2611101,
        "xMun": "PETROLINA",
        "UF": "PE",
        "CEP": "56318750",
        "cPais": 1058,
        "xPais": "BRASIL",
        "fone": "8738636050"
    },
    "retirada": {
        "CNPJ": "00000000000000",
        "CPF": "00000000000",
        "xNome": "JOAO SILVA",
        "xLgr": "AVENIDA TRANSNORDESTINA",
        "nro": "71",
        "xCpl": "APTO 101",
        "xBairro": "JARDIM AMAZONAS",
        "cMun": 2611101,
        "xMun": "PETROLINA",
        "UF": "PE",
        "CEP": "56318750",
        "cPais": 1058,
        "xPais": "BRASIL",
        "fone": "8738636050"
    },
    "entrega": {
        "CNPJ": "00000000000000",
        "CPF": "00000000000",
        "xNome": "JOAO SILVA",
        "xLgr": "AVENIDA TRANSNORDESTINA",
        "nro": "71",
        "xCpl": "APTO 101",
        "xBairro": "JARDIM AMAZONAS",
        "cMun": 2611101,
        "xMun": "PETROLINA",
        "UF": "PE",
        "CEP": "56318750",
        "cPais": 1058,
        "xPais": "BRASIL",
        "fone": "8738636050"
    },
    "det": [
        {
            "nItem": 1,
            "prod": {
                "cProd": "BR50320C",
                "cEAN": "SEM GTIN",
                "xProd": "REGULADOR FREIO S-10 12\/.. TRAS\/ESQ",
                "NCM": "87083019",
                "NVE": "AB0001",
                "CEST": "0100100",
                "indEscala": "N",
                "CNPJFab": "00000000000000",
                "cBenef": "PE123456",
                "EXTIPI": "001",
                "CFOP": "5405",
                "uCom": "PC",
                "qCom": 1,
                "vUnCom": 130,
                "vProd": 130,
                "cEANTrib": "SEM GTIN",
                "uTrib": "PC",
                "qTrib": 1,
                "vUnTrib": 130,
                "vFrete": 0,
                "vSeg": 0,
                "vDesc": 0,
                "vOutro": 0,
                "indTot": 1,
                "xPed": "43728",
                "nItemPed": 1,
                "nFCI": "12345678-1234-1234-1234-123456789012",
                "comb": {
                    "cProdANP": "210203001",
                    "descANP": "GLP ENVASADO",
                    "pGLP": 0.5,
                    "pGNn": 0.3,
                    "pGNi": 0.2,
                    "vPart": 100.25,
                    "CODIF": "ABC123456789",
                    "qTemp": 12.1234,
                    "UFCons": "PE",
                    "qBCProd": 10,
                    "vAliqProd": 1.25,
                    "vCIDE": 12.5,
                    "encerrante": {
                        "nBico": 1,
                        "nBomba": 2,
                        "nTanque": 3,
                        "vEncIni": 100.123,
                        "vEncFin": 110.123
                    }
                }
            },
            "imposto": {
                "vTotTrib": 42.63,
                "ICMS": [
                    {
                        "orig": 0,
                        "CST": "00",
                        "CSOSN": "500",
                        "modBC": 3,
                        "vBC": 130,
                        "pICMS": 18,
                        "vICMS": 23.4,
                        "vBCSTRet": 0,
                        "pST": 17,
                        "vICMSSubstituto": 0,
                        "vICMSSTRet": 0
                    }
                ],
                "PIS": [
                    {
                        "CST": "04",
                        "vBC": 130,
                        "pPIS": 1.65,
                        "vPIS": 2.15
                    }
                ],
                "COFINS": [
                    {
                        "CST": "04",
                        "vBC": 130,
                        "pCOFINS": 7.6,
                        "vCOFINS": 9.88
                    }
                ],
                "IBSCBS": [
                    {
                        "vBC": 6257.8,
                        "CST": 2332486.85,
                        "cClassTrib": 1
                    }
                ],
                "IPI": {
                    "clEnq": "12345",
                    "CNPJProd": "00000000000000",
                    "cSelo": "SELO123456",
                    "qSelo": 1,
                    "cEnq": "999",
                    "CST": "50",
                    "vBC": 130,
                    "pIPI": 10,
                    "qUnid": 1,
                    "vUnid": 13,
                    "vIPI": 13
                },
                "II": {
                    "vBC": 130,
                    "vDespAdu": 5,
                    "vII": 15,
                    "vIOF": 2
                }
            }
        }
    ],
    "total": {
        "ICMSTot": {
            "vBC": 0,
            "vICMS": 0,
            "vICMSDeson": 0,
            "vFCP": 0,
            "vBCST": 0,
            "vST": 0,
            "vFCPST": 0,
            "vFCPSTRet": 0,
            "vProd": 130,
            "vFrete": 0,
            "vSeg": 0,
            "vDesc": 0,
            "vII": 0,
            "vIPI": 0,
            "vIPIDevol": 0,
            "vPIS": 0,
            "vCOFINS": 0,
            "vOutro": 0,
            "vNF": 130,
            "vTotTrib": 42.63
        }
    },
    "transp": {
        "modFrete": 0,
        "transporta": {
            "CNPJ": "00000000000000",
            "CPF": "12345678901",
            "xNome": "Transportadora Exemplo Ltda",
            "IE": "123456789",
            "xEnder": "Rua das Flores, 123, Centro",
            "xMun": "São Paulo",
            "UF": "SP"
        },
        "retTransp": {
            "vServ": 150,
            "vBCRet": 150,
            "pICMSRet": 12,
            "vICMSRet": 18,
            "CFOP": "5353",
            "cMunFG": 3550308
        },
        "veicTransp": {
            "placa": "ABC1234",
            "UF": "SP",
            "RNTC": "12345678"
        },
        "vol": {
            "qVol": 19,
            "esp": "snwjtfpgzvnvttrd",
            "marca": "wivgkaaquvnkm",
            "nVol": "brwfgiyxehclnuzhluwikrxn",
            "pesoL": 261980.38,
            "pesoB": 3035926
        },
        "reboque": [
            {
                "placa": "DEF5678",
                "UF": "SP",
                "RNTC": "87654321"
            }
        ]
    },
    "pag": {
        "detPag": [
            {
                "indPag": 0,
                "tPag": "01",
                "vPag": 130,
                "tpIntegra": 1,
                "CNPJ": "xjutnspslnhvnw",
                "tBand": 13,
                "cAut": "rkduoebpwteqibvpatomllymk"
            }
        ],
        "vTroco": 5
    },
    "infAdic": {
        "infAdFisco": "Informações adicionais do fisco",
        "infCpl": "MD-5: .ICMS PAGO ANTERIORMENTE POR SUBST. TRIBUTARIA CONF. DECRETO N: 35.679\/2010 E 33.205 DE 27\/03\/2009"
    },
    "infRespTec": {
        "CNPJ": "00000000000000",
        "xContato": "Programador",
        "email": "[email protected]",
        "fone": "1937553000"
    }
}
headers = {
  'Authorization': 'Bearer {YOUR_AUTH_KEY}',
  'Company': '{YOUR_COMPANY_CNPJ}',
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('POST', url, headers=headers, json=payload)
response.json()
curl --request POST \
    "https://devnota.com.br/api/nfe/gerar" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Company: {YOUR_COMPANY_CNPJ}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"callback\": \"https:\\/\\/exemplo.com\\/webhook\",
    \"ambiente\": \"production\",
    \"ide\": {
        \"cUF\": 26,
        \"cNF\": \"83319433\",
        \"natOp\": \"VENDA FORA DO ESTADO\",
        \"serie\": 1,
        \"nNF\": 15233,
        \"dhEmi\": \"2025-06-02T08:38:53-03:00\",
        \"dhSaiEnt\": \"2025-06-02T08:38:53-03:00\",
        \"tpNF\": 1,
        \"idDest\": 2,
        \"cMunFG\": 2611101,
        \"tpImp\": 1,
        \"tpEmis\": 1,
        \"cDV\": 0,
        \"finNFe\": 1,
        \"indFinal\": 1,
        \"indPres\": 0,
        \"procEmi\": 0,
        \"verProc\": \"2.1.4 - 1.046.4\",
        \"dhCont\": \"2025-06-02T08:38:53-03:00\",
        \"xJust\": \"Justificativa para entrada em contingência\",
        \"NFref\": {
            \"refNFe\": \"35220608339483000120550010001523341000123345\"
        }
    },
    \"emit\": {
        \"CNPJ\": \"00000000000000\",
        \"CPF\": \"12345678901\",
        \"xNome\": \"DEVNOTA LTDA\",
        \"xFant\": \"DEVNOTA LTDA\",
        \"IE\": \"027840417\",
        \"IEST\": \"123456789\",
        \"IM\": \"123456789012345\",
        \"CNAE\": \"4530703\",
        \"CRT\": 1
    },
    \"enderEmit\": {
        \"xLgr\": \"AV SETE DE SETEMBRO\",
        \"nro\": \"690\",
        \"xCpl\": \"SALA 01\",
        \"xBairro\": \"OURO PRETO\",
        \"cMun\": 2611101,
        \"xMun\": \"PETROLINA\",
        \"UF\": \"PE\",
        \"CEP\": \"56306610\",
        \"cPais\": 1058,
        \"xPais\": \"BRASIL\",
        \"fone\": \"8738636050\"
    },
    \"dest\": {
        \"CNPJ\": \"00000000000000\",
        \"CPF\": \"00000000000\",
        \"idEstrangeiro\": \"ID123456789\",
        \"xNome\": \"JOAO SILVA\",
        \"indIEDest\": 1,
        \"IE\": \"081054726\",
        \"ISUF\": \"123456789\",
        \"IM\": \"123456789012345\",
        \"email\": \"[email protected]\"
    },
    \"enderDest\": {
        \"xLgr\": \"AVENIDA TRANSNORDESTINA\",
        \"nro\": \"71\",
        \"xCpl\": \"APTO 101\",
        \"xBairro\": \"JARDIM AMAZONAS\",
        \"cMun\": 2611101,
        \"xMun\": \"PETROLINA\",
        \"UF\": \"PE\",
        \"CEP\": \"56318750\",
        \"cPais\": 1058,
        \"xPais\": \"BRASIL\",
        \"fone\": \"8738636050\"
    },
    \"retirada\": {
        \"CNPJ\": \"00000000000000\",
        \"CPF\": \"00000000000\",
        \"xNome\": \"JOAO SILVA\",
        \"xLgr\": \"AVENIDA TRANSNORDESTINA\",
        \"nro\": \"71\",
        \"xCpl\": \"APTO 101\",
        \"xBairro\": \"JARDIM AMAZONAS\",
        \"cMun\": 2611101,
        \"xMun\": \"PETROLINA\",
        \"UF\": \"PE\",
        \"CEP\": \"56318750\",
        \"cPais\": 1058,
        \"xPais\": \"BRASIL\",
        \"fone\": \"8738636050\"
    },
    \"entrega\": {
        \"CNPJ\": \"00000000000000\",
        \"CPF\": \"00000000000\",
        \"xNome\": \"JOAO SILVA\",
        \"xLgr\": \"AVENIDA TRANSNORDESTINA\",
        \"nro\": \"71\",
        \"xCpl\": \"APTO 101\",
        \"xBairro\": \"JARDIM AMAZONAS\",
        \"cMun\": 2611101,
        \"xMun\": \"PETROLINA\",
        \"UF\": \"PE\",
        \"CEP\": \"56318750\",
        \"cPais\": 1058,
        \"xPais\": \"BRASIL\",
        \"fone\": \"8738636050\"
    },
    \"det\": [
        {
            \"nItem\": 1,
            \"prod\": {
                \"cProd\": \"BR50320C\",
                \"cEAN\": \"SEM GTIN\",
                \"xProd\": \"REGULADOR FREIO S-10 12\\/.. TRAS\\/ESQ\",
                \"NCM\": \"87083019\",
                \"NVE\": \"AB0001\",
                \"CEST\": \"0100100\",
                \"indEscala\": \"N\",
                \"CNPJFab\": \"00000000000000\",
                \"cBenef\": \"PE123456\",
                \"EXTIPI\": \"001\",
                \"CFOP\": \"5405\",
                \"uCom\": \"PC\",
                \"qCom\": 1,
                \"vUnCom\": 130,
                \"vProd\": 130,
                \"cEANTrib\": \"SEM GTIN\",
                \"uTrib\": \"PC\",
                \"qTrib\": 1,
                \"vUnTrib\": 130,
                \"vFrete\": 0,
                \"vSeg\": 0,
                \"vDesc\": 0,
                \"vOutro\": 0,
                \"indTot\": 1,
                \"xPed\": \"43728\",
                \"nItemPed\": 1,
                \"nFCI\": \"12345678-1234-1234-1234-123456789012\",
                \"comb\": {
                    \"cProdANP\": \"210203001\",
                    \"descANP\": \"GLP ENVASADO\",
                    \"pGLP\": 0.5,
                    \"pGNn\": 0.3,
                    \"pGNi\": 0.2,
                    \"vPart\": 100.25,
                    \"CODIF\": \"ABC123456789\",
                    \"qTemp\": 12.1234,
                    \"UFCons\": \"PE\",
                    \"qBCProd\": 10,
                    \"vAliqProd\": 1.25,
                    \"vCIDE\": 12.5,
                    \"encerrante\": {
                        \"nBico\": 1,
                        \"nBomba\": 2,
                        \"nTanque\": 3,
                        \"vEncIni\": 100.123,
                        \"vEncFin\": 110.123
                    }
                }
            },
            \"imposto\": {
                \"vTotTrib\": 42.63,
                \"ICMS\": [
                    {
                        \"orig\": 0,
                        \"CST\": \"00\",
                        \"CSOSN\": \"500\",
                        \"modBC\": 3,
                        \"vBC\": 130,
                        \"pICMS\": 18,
                        \"vICMS\": 23.4,
                        \"vBCSTRet\": 0,
                        \"pST\": 17,
                        \"vICMSSubstituto\": 0,
                        \"vICMSSTRet\": 0
                    }
                ],
                \"PIS\": [
                    {
                        \"CST\": \"04\",
                        \"vBC\": 130,
                        \"pPIS\": 1.65,
                        \"vPIS\": 2.15
                    }
                ],
                \"COFINS\": [
                    {
                        \"CST\": \"04\",
                        \"vBC\": 130,
                        \"pCOFINS\": 7.6,
                        \"vCOFINS\": 9.88
                    }
                ],
                \"IBSCBS\": [
                    {
                        \"vBC\": 6257.8,
                        \"CST\": 2332486.85,
                        \"cClassTrib\": 1
                    }
                ],
                \"IPI\": {
                    \"clEnq\": \"12345\",
                    \"CNPJProd\": \"00000000000000\",
                    \"cSelo\": \"SELO123456\",
                    \"qSelo\": 1,
                    \"cEnq\": \"999\",
                    \"CST\": \"50\",
                    \"vBC\": 130,
                    \"pIPI\": 10,
                    \"qUnid\": 1,
                    \"vUnid\": 13,
                    \"vIPI\": 13
                },
                \"II\": {
                    \"vBC\": 130,
                    \"vDespAdu\": 5,
                    \"vII\": 15,
                    \"vIOF\": 2
                }
            }
        }
    ],
    \"total\": {
        \"ICMSTot\": {
            \"vBC\": 0,
            \"vICMS\": 0,
            \"vICMSDeson\": 0,
            \"vFCP\": 0,
            \"vBCST\": 0,
            \"vST\": 0,
            \"vFCPST\": 0,
            \"vFCPSTRet\": 0,
            \"vProd\": 130,
            \"vFrete\": 0,
            \"vSeg\": 0,
            \"vDesc\": 0,
            \"vII\": 0,
            \"vIPI\": 0,
            \"vIPIDevol\": 0,
            \"vPIS\": 0,
            \"vCOFINS\": 0,
            \"vOutro\": 0,
            \"vNF\": 130,
            \"vTotTrib\": 42.63
        }
    },
    \"transp\": {
        \"modFrete\": 0,
        \"transporta\": {
            \"CNPJ\": \"00000000000000\",
            \"CPF\": \"12345678901\",
            \"xNome\": \"Transportadora Exemplo Ltda\",
            \"IE\": \"123456789\",
            \"xEnder\": \"Rua das Flores, 123, Centro\",
            \"xMun\": \"São Paulo\",
            \"UF\": \"SP\"
        },
        \"retTransp\": {
            \"vServ\": 150,
            \"vBCRet\": 150,
            \"pICMSRet\": 12,
            \"vICMSRet\": 18,
            \"CFOP\": \"5353\",
            \"cMunFG\": 3550308
        },
        \"veicTransp\": {
            \"placa\": \"ABC1234\",
            \"UF\": \"SP\",
            \"RNTC\": \"12345678\"
        },
        \"vol\": {
            \"qVol\": 19,
            \"esp\": \"snwjtfpgzvnvttrd\",
            \"marca\": \"wivgkaaquvnkm\",
            \"nVol\": \"brwfgiyxehclnuzhluwikrxn\",
            \"pesoL\": 261980.38,
            \"pesoB\": 3035926
        },
        \"reboque\": [
            {
                \"placa\": \"DEF5678\",
                \"UF\": \"SP\",
                \"RNTC\": \"87654321\"
            }
        ]
    },
    \"pag\": {
        \"detPag\": [
            {
                \"indPag\": 0,
                \"tPag\": \"01\",
                \"vPag\": 130,
                \"tpIntegra\": 1,
                \"CNPJ\": \"xjutnspslnhvnw\",
                \"tBand\": 13,
                \"cAut\": \"rkduoebpwteqibvpatomllymk\"
            }
        ],
        \"vTroco\": 5
    },
    \"infAdic\": {
        \"infAdFisco\": \"Informações adicionais do fisco\",
        \"infCpl\": \"MD-5: .ICMS PAGO ANTERIORMENTE POR SUBST. TRIBUTARIA CONF. DECRETO N: 35.679\\/2010 E 33.205 DE 27\\/03\\/2009\"
    },
    \"infRespTec\": {
        \"CNPJ\": \"00000000000000\",
        \"xContato\": \"Programador\",
        \"email\": \"[email protected]\",
        \"fone\": \"1937553000\"
    }
}"

Example response (201):


{
    "protocolo": 3050,
    "status": "processando"
}
 

Example response (422):


{
    "message": "The notaFiscal field is required.",
    "errors": {
        "notaFiscal": [
            "The notaFiscal field is required."
        ]
    }
}
 

Request      

POST api/nfe/gerar

Headers

Authorization        

Example: Bearer {YOUR_AUTH_KEY}

Company        

Example: {YOUR_COMPANY_CNPJ}

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

callback   string  optional    

URL de callback para notificação do resultado. Must be a valid URL. Example: https://exemplo.com/webhook

ambiente   string     

Ambiente de emissão da NFe. Allowed: production, developer. Example: production

Must be one of:
  • production
  • developer
ide   object  optional    
cUF   integer  optional    

Código numérico da UF do emitente (conforme tabela do IBGE). Example: 26

cNF   string  optional    

Código numérico que compõe a chave de acesso (8 dígitos). Example: 83319433

natOp   string  optional    

Descrição da natureza da operação (máx 60 caracteres). Ex: "VENDA FORA DO ESTADO", "VENDA DENTRO DO ESTADO". Must not be greater than 60 characters. Example: VENDA FORA DO ESTADO

serie   integer  optional    

Série do documento fiscal (1-999). Example: 1

nNF   integer  optional    

Número do documento fiscal (1-999999999). Example: 15233

dhEmi   string  optional    

Data e hora de emissão no formato ISO 8601 (AAAA-MM-DDTHH:MM:SS-03:00). Must be a valid date in the format Y-m-d\TH:i:sP. Example: 2025-06-02T08:38:53-03:00

dhSaiEnt   string  optional    

Data e hora de saída/entrada da mercadoria no formato ISO 8601. Must be a valid date in the format Y-m-d\TH:i:sP. Example: 2025-06-02T08:38:53-03:00

tpNF   string  optional    

Tipo de operação: 0 = Entrada, 1 = Saída. Example: 1

Must be one of:
  • 0
  • 1
idDest   string  optional    

Identificador de local de destino: 1 = Operação interna, 2 = Operação interestadual, 3 = Operação com exterior. Example: 2

Must be one of:
  • 1
  • 2
  • 3
cMunFG   integer  optional    

Código do município de ocorrência do fato gerador (conforme tabela do IBGE). Example: 2611101

tpImp   string  optional    

Formato de impressão do DANFE: 0 = Sem geração de DANFE, 1 = DANFE normal retrato, 2 = DANFE normal paisagem, 3 = DANFE simplificado, 4 = DANFE NFCe, 5 = DANFE NFCe mensagem eletrônica. Example: 1

Must be one of:
  • 0
  • 1
  • 2
  • 3
  • 4
  • 5
tpEmis   string  optional    

Tipo de emissão: 1 = Normal, 2 = Contingência FS-IA, 3 = Contingência SCAN, 4 = Contingência DPEC, 5 = Contingência FS-DA, 6 = Contingência SVC-AN, 7 = Contingência SVC-RS, 8 = Contingência offline da NFCe, 9 = Contingência offline da NFCe. Example: 1

Must be one of:
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
cDV   integer  optional    

Dígito verificador da chave de acesso (calculado automaticamente). Example: 0

finNFe   string  optional    

Finalidade de emissão: 1 = Normal, 2 = Complementar, 3 = Ajuste, 4 = Devolução/Retorno. Example: 1

Must be one of:
  • 1
  • 2
  • 3
  • 4
indFinal   string  optional    

Indica se é consumidor final: 0 = Normal, 1 = Consumidor final. Example: 1

Must be one of:
  • 0
  • 1
indPres   string  optional    

Indicador de presença do comprador: 0 = Não se aplica, 1 = Operação presencial, 2 = Operação não presencial pela internet, 3 = Operação não presencial teleatendimento, 4 = NFCe em operação com entrega em domicílio, 5 = Operação presencial fora do estabelecimento, 9 = Operação não presencial outros. Example: 0

Must be one of:
  • 0
  • 1
  • 2
  • 3
  • 4
  • 5
  • 9
procEmi   string  optional    

Processo de emissão: 0 = Emissão própria, 1 = Avulsa pela Fisco, 2 = Avulsa terceiros, 3 = Própria terceiros. Example: 0

Must be one of:
  • 0
  • 1
  • 2
  • 3
verProc   string  optional    

Versão do processo de emissão (máx 20 caracteres). Must not be greater than 20 characters. Example: 2.1.4 - 1.046.4

dhCont   string  optional    

Data e hora da entrada em contingência no formato ISO 8601. Must be a valid date in the format Y-m-d\TH:i:sP. Example: 2025-06-02T08:38:53-03:00

xJust   string  optional    

Justificativa da entrada em contingência (mín 20, máx 256 caracteres). Must be at least 20 characters. Must not be greater than 256 characters. Example: Justificativa para entrada em contingência

NFref   object  optional    
refNFe   string  optional    

Chave de acesso da NF-e referenciada (44 dígitos). Must be 44 characters. Example: 35220608339483000120550010001523341000123345

emit   object  optional    
CNPJ   string  optional    

Número do CNPJ do emitente (14 dígitos) - obrigatório quando não informado CPF. Must be 14 characters. Example: 00000000000000

CPF   string  optional    

Número do CPF do emitente (11 dígitos) - obrigatório quando não informado CNPJ. Must be 11 characters. Example: 12345678901

xNome   string  optional    

Nome/Razão social do emitente (máx 60 caracteres). Must not be greater than 60 characters. Example: DEVNOTA LTDA

xFant   string  optional    

Nome fantasia do emitente (máx 60 caracteres). Must not be greater than 60 characters. Example: DEVNOTA LTDA

IE   string  optional    

Inscrição estadual do emitente (máx 14 caracteres). Must not be greater than 14 characters. Example: 027840417

IEST   string  optional    

Inscrição estadual do substituto tributário (máx 14 caracteres). Must not be greater than 14 characters. Example: 123456789

IM   string  optional    

Inscrição municipal do emitente (máx 15 caracteres). Must not be greater than 15 characters. Example: 123456789012345

CNAE   string  optional    

Código de atividade econômica do emitente (7 dígitos). Must be 7 characters. Example: 4530703

CRT   string  optional    

Código de regime tributário: 1 = Simples Nacional, 2 = Simples Nacional - excesso de sublimite, 3 = Regime Normal. Example: 1

Must be one of:
  • 1
  • 2
  • 3
enderEmit   object  optional    
xLgr   string  optional    

Logradouro (máx 60 caracteres). Must not be greater than 60 characters. Example: AV SETE DE SETEMBRO

nro   string  optional    

Número (máx 60 caracteres). Must not be greater than 60 characters. Example: 690

xCpl   string  optional    

Complemento (máx 60 caracteres). Must not be greater than 60 characters. Example: SALA 01

xBairro   string  optional    

Bairro (máx 60 caracteres). Must not be greater than 60 characters. Example: OURO PRETO

cMun   integer  optional    

Código do município (conforme tabela do IBGE). Example: 2611101

xMun   string  optional    

Nome do município (máx 60 caracteres). Must not be greater than 60 characters. Example: PETROLINA

UF   string  optional    

Sigla da UF (2 caracteres). Must be 2 characters. Example: PE

CEP   string  optional    

Código do CEP (8 dígitos). Must be 8 characters. Example: 56306610

cPais   integer  optional    

Código do país (conforme tabela do BACEN). Default: 1058 (Brasil). Example: 1058

xPais   string  optional    

Nome do país (máx 60 caracteres). Default: BRASIL. Must not be greater than 60 characters. Example: BRASIL

fone   string  optional    

Telefone (máx 14 caracteres). Must not be greater than 14 characters. Example: 8738636050

dest   object  optional    
CNPJ   string  optional    

Número do CNPJ do destinatário (14 dígitos) - obrigatório quando não informado CPF ou idEstrangeiro. Must be 14 characters. Example: 00000000000000

CPF   string  optional    

Número do CPF do destinatário (11 dígitos) - obrigatório quando não informado CNPJ ou idEstrangeiro. Must be 11 characters. Example: 00000000000

idEstrangeiro   string  optional    

Identificador do destinatário no caso de comprador estrangeiro (máx 20 caracteres) - obrigatório quando não informado CNPJ ou CPF. Must not be greater than 20 characters. Example: ID123456789

xNome   string  optional    

Nome/Razão social do destinatário (máx 60 caracteres). Must not be greater than 60 characters. Example: JOAO SILVA

indIEDest   string  optional    

Indicador da IE do destinatário: 1 = Contribuinte ICMS, 2 = Contribuinte isento de IE, 9 = Não contribuinte. Example: 1

Must be one of:
  • 1
  • 2
  • 9
IE   string  optional    

Inscrição estadual do destinatário (máx 14 caracteres). Must not be greater than 14 characters. Example: 081054726

ISUF   string  optional    

Inscrição na SUFRAMA (máx 9 caracteres). Must not be greater than 9 characters. Example: 123456789

IM   string  optional    

Inscrição municipal do destinatário (máx 15 caracteres). Must not be greater than 15 characters. Example: 123456789012345

email   string  optional    

Email do destinatário (máx 60 caracteres). Must be a valid email address. Must not be greater than 60 characters. Example: [email protected]

enderDest   object  optional    
xLgr   string  optional    

Logradouro (máx 60 caracteres). Must not be greater than 60 characters. Example: AVENIDA TRANSNORDESTINA

nro   string  optional    

Número (máx 60 caracteres). Must not be greater than 60 characters. Example: 71

xCpl   string  optional    

Complemento (máx 60 caracteres). Must not be greater than 60 characters. Example: APTO 101

xBairro   string  optional    

Bairro (máx 60 caracteres). Must not be greater than 60 characters. Example: JARDIM AMAZONAS

cMun   integer  optional    

Código do município (conforme tabela do IBGE). Example: 2611101

xMun   string  optional    

Nome do município (máx 60 caracteres). Must not be greater than 60 characters. Example: PETROLINA

UF   string  optional    

Sigla da UF (2 caracteres). Must be 2 characters. Example: PE

CEP   string  optional    

Código do CEP (8 dígitos). Must be 8 characters. Example: 56318750

cPais   integer  optional    

Código do país (conforme tabela do BACEN). Default: 1058 (Brasil). Example: 1058

xPais   string  optional    

Nome do país (máx 60 caracteres). Default: BRASIL. Must not be greater than 60 characters. Example: BRASIL

fone   string  optional    

Telefone (máx 14 caracteres). Must not be greater than 14 characters. Example: 8738636050

retirada   object  optional    

Endereço de retirada da mercadoria (quando diferente do emitente).

CNPJ   string  optional    

CNPJ do local de retirada (14 dígitos) - obrigatório quando não informado CPF. Must be 14 characters. Example: 00000000000000

CPF   string  optional    

CPF do local de retirada (11 dígitos) - obrigatório quando não informado CNPJ. Must be 11 characters. Example: 00000000000

xNome   string  optional    

Nome/Razão social do local de retirada (máx 60 caracteres). Must not be greater than 60 characters. Example: JOAO SILVA

xLgr   string  optional    

Logradouro (máx 60 caracteres). Must not be greater than 60 characters. Example: AVENIDA TRANSNORDESTINA

nro   string  optional    

Número (máx 60 caracteres). Must not be greater than 60 characters. Example: 71

xCpl   string  optional    

Complemento (máx 60 caracteres). Must not be greater than 60 characters. Example: APTO 101

xBairro   string  optional    

Bairro (máx 60 caracteres). Must not be greater than 60 characters. Example: JARDIM AMAZONAS

cMun   integer  optional    

Código do município (conforme tabela do IBGE). Example: 2611101

xMun   string  optional    

Nome do município (máx 60 caracteres). Must not be greater than 60 characters. Example: PETROLINA

UF   string  optional    

Sigla da UF (2 caracteres). Must be 2 characters. Example: PE

CEP   string  optional    

Código do CEP (8 dígitos). Must be 8 characters. Example: 56318750

cPais   integer  optional    

Código do país (conforme tabela do BACEN). Example: 1058

xPais   string  optional    

Nome do país (máx 60 caracteres). Must not be greater than 60 characters. Example: BRASIL

fone   string  optional    

Telefone (máx 14 caracteres). Must not be greater than 14 characters. Example: 8738636050

entrega   object  optional    

Endereço de entrega da mercadoria (quando diferente do destinatário).

CNPJ   string  optional    

CNPJ do local de entrega (14 dígitos) - obrigatório quando não informado CPF. Must be 14 characters. Example: 00000000000000

CPF   string  optional    

CPF do local de entrega (11 dígitos) - obrigatório quando não informado CNPJ. Must be 11 characters. Example: 00000000000

xNome   string  optional    

Nome/Razão social do local de entrega (máx 60 caracteres). Must not be greater than 60 characters. Example: JOAO SILVA

xLgr   string  optional    

Logradouro (máx 60 caracteres). Must not be greater than 60 characters. Example: AVENIDA TRANSNORDESTINA

nro   string  optional    

Número (máx 60 caracteres). Must not be greater than 60 characters. Example: 71

xCpl   string  optional    

Complemento (máx 60 caracteres). Must not be greater than 60 characters. Example: APTO 101

xBairro   string  optional    

Bairro (máx 60 caracteres). Must not be greater than 60 characters. Example: JARDIM AMAZONAS

cMun   integer  optional    

Código do município (conforme tabela do IBGE). Example: 2611101

xMun   string  optional    

Nome do município (máx 60 caracteres). Must not be greater than 60 characters. Example: PETROLINA

UF   string  optional    

Sigla da UF (2 caracteres). Must be 2 characters. Example: PE

CEP   string  optional    

Código do CEP (8 dígitos). Must be 8 characters. Example: 56318750

cPais   integer  optional    

Código do país (conforme tabela do BACEN). Example: 1058

xPais   string  optional    

Nome do país (máx 60 caracteres). Must not be greater than 60 characters. Example: BRASIL

fone   string  optional    

Telefone (máx 14 caracteres). Must not be greater than 14 characters. Example: 8738636050

det   object[]  optional    

Detalhamento dos produtos e serviços da NFe (mínimo 1 item).

nItem   integer  optional    

Número sequencial do item (1, 2, 3...). Must be at least 1. Example: 1

prod   object  optional    
cProd   string  optional    

Código do produto ou serviço (máx 60 caracteres). Must not be greater than 60 characters. Example: BR50320C

cEAN   string  optional    

Código GTIN (Global Trade Item Number) ou "SEM GTIN" (máx 14 caracteres). Must not be greater than 14 characters. Example: SEM GTIN

xProd   string  optional    

Descrição do produto ou serviço (máx 120 caracteres). Must not be greater than 120 characters. Example: REGULADOR FREIO S-10 12/.. TRAS/ESQ

NCM   string  optional    

Código NCM (Nomenclatura Comum do Mercosul) - 8 dígitos. Must be 8 characters. Example: 87083019

NVE   string  optional    

Nomenclatura de Valor aduaneiro e Estatística (máx 6 caracteres). Must not be greater than 6 characters. Example: AB0001

CEST   string  optional    

Código Especificador da Substituição Tributária (7 dígitos). Must be 7 characters. Example: 0100100

indEscala   string  optional    

Indicador de produção em escala: S = Sim, N = Não. Example: N

Must be one of:
  • S
  • N
CNPJFab   string  optional    

CNPJ do fabricante da mercadoria (14 dígitos). Must be 14 characters. Example: 00000000000000

cBenef   string  optional    

Código de benefício fiscal na UF aplicado ao item (máx 10 caracteres). Must not be greater than 10 characters. Example: PE123456

EXTIPI   string  optional    

Código EX TIPI (máx 3 caracteres). Must not be greater than 3 characters. Example: 001

CFOP   string  optional    

Código Fiscal de Operações e Prestações (4 dígitos). Must be 4 characters. Example: 5405

uCom   string  optional    

Unidade comercial (máx 6 caracteres). Ex: UN, KG, MT, PC. Must not be greater than 6 characters. Example: PC

qCom   number  optional    

Quantidade comercial do produto. Example: 1

vUnCom   number  optional    

Valor unitário comercial. Example: 130

vProd   number  optional    

Valor total bruto dos produtos ou serviços. Example: 130

cEANTrib   string  optional    

Código GTIN da unidade tributável ou "SEM GTIN" (máx 14 caracteres). Must not be greater than 14 characters. Example: SEM GTIN

uTrib   string  optional    

Unidade tributável (máx 6 caracteres). Must not be greater than 6 characters. Example: PC

qTrib   number  optional    

Quantidade tributável. Example: 1

vUnTrib   number  optional    

Valor unitário de tributação. Example: 130

vFrete   number  optional    

Valor total do frete. Example: 0

vSeg   number  optional    

Valor total do seguro. Example: 0

vDesc   number  optional    

Valor do desconto. Example: 0

vOutro   number  optional    

Outras despesas acessórias. Example: 0

indTot   string  optional    

Indica se valor do item compõe valor total da NFe: 0 = Não, 1 = Sim. Example: 1

Must be one of:
  • 0
  • 1
xPed   string  optional    

Número do pedido de compra (máx 15 caracteres). Must not be greater than 15 characters. Example: 43728

nItemPed   integer  optional    

Número do item do pedido de compra. Example: 1

nFCI   string  optional    

Número de controle da FCI (Ficha de Conteúdo de Importação) (36 caracteres). Must be 36 characters. Example: 12345678-1234-1234-1234-123456789012

comb   object  optional    

Grupo de informações específicas para combustíveis.

cProdANP   string  optional    

Código do produto da ANP (9 dígitos) - obrigatório quando a tag comb for informada. Must be 9 characters. Example: 210203001

descANP   string  optional    

Descrição do produto conforme cadastro ANP/SIMP (mín 2, máx 95 caracteres) - obrigatória quando a tag comb for informada. Must be at least 2 characters. Must not be greater than 95 characters. Example: GLP ENVASADO

pGLP   number  optional    

Percentual do GLP derivado do petróleo no produto GLP. Informar valor decimal entre 0 e 1. Must be between 0 and 1. Example: 0.5

pGNn   number  optional    

Percentual de Gás Natural Nacional (GLGNn) no produto GLP. Informar valor decimal entre 0 e 1. Must be between 0 and 1. Example: 0.3

pGNi   number  optional    

Percentual de Gás Natural Importado (GLGNi) no produto GLP. Informar valor decimal entre 0 e 1. Must be between 0 and 1. Example: 0.2

vPart   number  optional    

Valor de partida por quilograma sem ICMS para GLP, quando aplicável. Example: 100.25

CODIF   string  optional    

Código de autorização ou registro do CODIF, quando exigido pela UF. Must not be greater than 21 characters. Example: ABC123456789

qTemp   number  optional    

Quantidade de combustível faturada à temperatura ambiente, quando a quantidade comercial tiver sido ajustada. Example: 12.1234

UFCons   string  optional    

Sigla da UF de consumo do combustível (2 caracteres) - obrigatória quando a tag comb for informada. Must be 2 characters. Example: PE

qBCProd   number  optional    

Base de cálculo da CIDE em quantidade. Se um campo de CIDE for informado, os três devem ser enviados juntos. Example: 10

vAliqProd   number  optional    

Valor da alíquota da CIDE por unidade. Se um campo de CIDE for informado, os três devem ser enviados juntos. Example: 1.25

vCIDE   number  optional    

Valor total da CIDE. Se um campo de CIDE for informado, os três devem ser enviados juntos. Example: 12.5

encerrante   object  optional    

Grupo de encerrante para operações de abastecimento.

nBico   integer  optional    

Número de identificação do bico utilizado no abastecimento - obrigatório quando a tag encerrante for informada. Example: 1

nBomba   integer  optional    

Número de identificação da bomba à qual o bico está interligado. Example: 2

nTanque   integer  optional    

Número de identificação do tanque ao qual o bico está interligado - obrigatório quando a tag encerrante for informada. Example: 3

vEncIni   number  optional    

Valor do encerrante no início do abastecimento - obrigatório quando a tag encerrante for informada. Example: 100.123

vEncFin   number  optional    

Valor do encerrante no final do abastecimento - obrigatório quando a tag encerrante for informada. Example: 110.123

imposto   object  optional    
vTotTrib   number  optional    

Valor aproximado total de tributos federais, estaduais e municipais. Example: 42.63

ICMS   object[]  optional    
orig   string  optional    

Origem da mercadoria: 0 = Nacional, 1 = Estrangeira - Importação direta, 2 = Estrangeira - Adquirida no mercado interno, 3 = Nacional - mercadoria ou bem com conteúdo de importação superior a 40% e inferior ou igual a 70%, 4 = Nacional - cuja produção tenha sido feita em conformidade com os processos produtivos básicos de que tratam as legislações citadas nos Ajustes, 5 = Nacional - mercadoria ou bem com conteúdo de importação inferior ou igual a 40%, 6 = Estrangeira - Importação direta, sem similar nacional, constante em lista da CAMEX e gás natural, 7 = Estrangeira - Adquirida no mercado interno, sem similar nacional, constante em lista da CAMEX e gás natural, 8 = Nacional - mercadoria ou bem com conteúdo de importação superior a 70%. Example: 0

Must be one of:
  • 0
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
CST   string  optional    

Código de Situação Tributária do ICMS. Example: 00

Must be one of:
  • 0
  • 10
  • 20
  • 30
  • 40
  • 41
  • 50
  • 51
  • 60
  • 70
  • 90
CSOSN   string  optional    

Código de Situação da Operação no Simples Nacional: 101 = Tributada pelo Simples Nacional com permissão de crédito, 102 = Tributada pelo Simples Nacional sem permissão de crédito, 103 = Isenção do ICMS no Simples Nacional para faixa de receita bruta, 201 = Tributada pelo Simples Nacional com permissão de crédito e com cobrança do ICMS por substituição tributária, 202 = Tributada pelo Simples Nacional sem permissão de crédito e com cobrança do ICMS por substituição tributária, 203 = Isenção do ICMS no Simples Nacional para faixa de receita bruta e com cobrança do ICMS por substituição tributária, 300 = Imune, 400 = Não tributada pelo Simples Nacional, 500 = ICMS cobrado anteriormente por substituição tributária (substituído) ou por antecipação, 900 = Outros. Example: 500

Must be one of:
  • 101
  • 102
  • 103
  • 201
  • 202
  • 203
  • 300
  • 400
  • 500
  • 900
modBC   string  optional    

Modalidade de determinação da BC do ICMS: 0 = Margem Valor Agregado (%), 1 = Pauta (Valor), 2 = Preço Tabelado Máx. (valor), 3 = Valor da operação. Example: 3

Must be one of:
  • 0
  • 1
  • 2
  • 3
vBC   number  optional    

Valor da BC do ICMS. Example: 130

pICMS   number  optional    

Alíquota do imposto. Example: 18

vICMS   number  optional    

Valor do ICMS. Example: 23.4

vBCSTRet   number  optional    

Valor da BC do ICMS ST retido. Example: 0

pST   number  optional    

Alíquota suportada pelo Consumidor Final (%). Example: 17

vICMSSubstituto   number  optional    

Valor do ICMS Próprio do Substituto cobrado em operação anterior. Example: 0

vICMSSTRet   number  optional    

Valor do ICMS ST retido. Example: 0

PIS   object[]  optional    
CST   string  optional    

Código de Situação Tributária do PIS: 01 = Operação Tributável (base de cálculo = valor da operação alíquota normal - cumulativo/não cumulativo), 02 = Operação Tributável (base de cálculo = valor da operação (alíquota diferenciada)), 03 = Operação Tributável (base de cálculo = quantidade vendida x alíquota por unidade de produto), 04 = Operação Tributável (tributação monofásica (alíquota zero)), 05 = Operação Tributável (Substituição Tributária), 06 = Operação Tributável (alíquota zero), 07 = Operação Isenta da Contribuição, 08 = Operação Sem Incidência da Contribuição, 09 = Operação com Suspensão da Contribuição, 49 = Outras Operações de Saída, 50 = Operação com Direito a Crédito - Vinculada Exclusivamente a Receita Tributada no Mercado Interno, 51 = Operação com Direito a Crédito - Vinculada Exclusivamente a Receita Não Tributada no Mercado Interno, 52 = Operação com Direito a Crédito - Vinculada Exclusivamente a Receita de Exportação, 53 = Operação com Direito a Crédito - Vinculada a Receitas Tributadas e Não-Tributadas no Mercado Interno, 54 = Operação com Direito a Crédito - Vinculada a Receitas Tributadas no Mercado Interno e de Exportação, 55 = Operação com Direito a Crédito - Vinculada a Receitas Não-Tributadas no Mercado Interno e de Exportação, 56 = Operação com Direito a Crédito - Vinculada a Receitas Tributadas e Não-Tributadas no Mercado Interno, e de Exportação, 60 = Crédito Presumido - Operação de Aquisição Vinculada Exclusivamente a Receita Tributada no Mercado Interno, 61 = Crédito Presumido - Operação de Aquisição Vinculada Exclusivamente a Receita Não-Tributada no Mercado Interno, 62 = Crédito Presumido - Operação de Aquisição Vinculada Exclusivamente a Receita de Exportação, 63 = Crédito Presumido - Operação de Aquisição Vinculada a Receitas Tributadas e Não-Tributadas no Mercado Interno, 64 = Crédito Presumido - Operação de Aquisição Vinculada a Receitas Tributadas no Mercado Interno e de Exportação, 65 = Crédito Presumido - Operação de Aquisição Vinculada a Receitas Não-Tributadas no Mercado Interno e de Exportação, 66 = Crédito Presumido - Operação de Aquisição Vinculada a Receitas Tributadas e Não-Tributadas no Mercado Interno, e de Exportação, 67 = Crédito Presumido - Outras Operações, 70 = Operação de Aquisição sem Direito a Crédito, 71 = Operação de Aquisição com Isenção, 72 = Operação de Aquisição com Suspensão, 73 = Operação de Aquisição a Alíquota Zero, 74 = Operação de Aquisição sem Incidência da Contribuição, 75 = Operação de Aquisição por Substituição Tributária, 98 = Outras Operações de Entrada, 99 = Outras Operações. Example: 04

Must be one of:
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 98
  • 99
vBC   number  optional    

Valor da BC do PIS. Example: 130

pPIS   number  optional    

Alíquota do PIS (em percentual). Example: 1.65

vPIS   number  optional    

Valor do PIS. Example: 2.15

COFINS   object[]  optional    
CST   string  optional    

Código de Situação Tributária da COFINS (mesmos códigos do PIS). Example: 04

Must be one of:
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 98
  • 99
vBC   number  optional    

Valor da BC da COFINS. Example: 130

pCOFINS   number  optional    

Alíquota da COFINS (em percentual). Example: 7.6

vCOFINS   number  optional    

Valor da COFINS. Example: 9.88

IBSCBS   object[]  optional    
vBC   number  optional    

Example: 6257.8

CST   number  optional    

Example: 2332486.85

cClassTrib   number  optional    

Example: 1

IPI   object  optional    
clEnq   string  optional    

Classe de enquadramento do IPI para Cigarros e Bebidas (5 dígitos). Must be 5 characters. Example: 12345

CNPJProd   string  optional    

CNPJ do produtor da mercadoria, quando diferente do emitente (14 dígitos). Must be 14 characters. Example: 00000000000000

cSelo   string  optional    

Código do selo de controle IPI (máx 60 caracteres). Must not be greater than 60 characters. Example: SELO123456

qSelo   integer  optional    

Quantidade de selo de controle IPI. Example: 1

cEnq   string  optional    

Código de Enquadramento Legal do IPI (3 dígitos). Must be 3 characters. Example: 999

CST   string  optional    

Código da Situação Tributária do IPI: 00 = Entrada com recuperação de crédito, 01 = Entrada tributada com alíquota zero, 02 = Entrada isenta, 03 = Entrada não-tributada, 04 = Entrada imune, 05 = Entrada com suspensão, 49 = Outras entradas, 50 = Saída tributada, 51 = Saída tributada com alíquota zero, 52 = Saída isenta, 53 = Saída não-tributada, 54 = Saída imune, 55 = Saída com suspensão, 99 = Outras saídas. Example: 50

Must be one of:
  • 0
  • 1
  • 2
  • 3
  • 4
  • 5
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 99
vBC   number  optional    

Valor da BC do IPI. Example: 130

pIPI   number  optional    

Alíquota do IPI. Example: 10

qUnid   number  optional    

Quantidade total na unidade padrão para tributação (somente para os produtos tributados por unidade). Example: 1

vUnid   number  optional    

Valor por Unidade Tributável (somente para os produtos tributados por unidade). Example: 13

vIPI   number  optional    

Valor do IPI. Example: 13

II   object  optional    
vBC   number  optional    

Valor da BC do Imposto de Importação. Example: 130

vDespAdu   number  optional    

Valor das despesas aduaneiras. Example: 5

vII   number  optional    

Valor do Imposto de Importação. Example: 15

vIOF   number  optional    

Valor do IOF (Imposto sobre Operações Financeiras). Example: 2

total   object  optional    
ICMSTot   object  optional    
vBC   number  optional    

BC do ICMS. Example: 0

vICMS   number  optional    

Valor Total do ICMS. Example: 0

vICMSDeson   number  optional    

Valor Total do ICMS desonerado. Example: 0

vFCP   number  optional    

Valor Total do FCP (Fundo de Combate à Pobreza). Example: 0

vBCST   number  optional    

BC do ICMS ST. Example: 0

vST   number  optional    

Valor Total do ICMS ST. Example: 0

vFCPST   number  optional    

Valor Total do FCP (Fundo de Combate à Pobreza) retido por substituição tributária. Example: 0

vFCPSTRet   number  optional    

Valor Total do FCP retido anteriormente por Substituição Tributária. Example: 0

vProd   number  optional    

Valor Total dos produtos e serviços. Example: 130

vFrete   number  optional    

Valor Total do Frete. Example: 0

vSeg   number  optional    

Valor Total do Seguro. Example: 0

vDesc   number  optional    

Valor Total do Desconto. Example: 0

vII   number  optional    

Valor Total do II (Imposto de Importação). Example: 0

vIPI   number  optional    

Valor Total do IPI. Example: 0

vIPIDevol   number  optional    

Valor Total do IPI devolvido. Example: 0

vPIS   number  optional    

Valor do PIS. Example: 0

vCOFINS   number  optional    

Valor da COFINS. Example: 0

vOutro   number  optional    

Outras Despesas acessórias. Example: 0

vNF   number  optional    

Valor Total da NFe. Example: 130

vTotTrib   number  optional    

Valor aproximado total de tributos federais, estaduais e municipais. Example: 42.63

transp   object  optional    
modFrete   string  optional    

Modalidade do frete: 0 = Por conta do emitente, 1 = Por conta do destinatário/remetente, 2 = Por conta de terceiros, 3 = Transporte próprio por conta do remetente, 4 = Transporte próprio por conta do destinatário, 9 = Sem Ocorrência de Transporte. Example: 0

Must be one of:
  • 0
  • 1
  • 2
  • 3
  • 4
  • 9
transporta   object  optional    
CNPJ   string  optional    

CNPJ da transportadora (14 dígitos). Must be 14 characters. Example: 00000000000000

CPF   string  optional    

CPF da transportadora (11 dígitos). Must be 11 characters. Example: 12345678901

xNome   string  optional    

Razão Social ou nome da transportadora. Must not be greater than 60 characters. Example: Transportadora Exemplo Ltda

IE   string  optional    

Inscrição Estadual da transportadora. Must not be greater than 14 characters. Example: 123456789

xEnder   string  optional    

Endereço completo da transportadora. Must not be greater than 60 characters. Example: Rua das Flores, 123, Centro

xMun   string  optional    

Nome do município da transportadora. Must not be greater than 60 characters. Example: São Paulo

UF   string  optional    

Sigla da UF da transportadora. Must be 2 characters. Example: SP

retTransp   object  optional    
vServ   number  optional    

Valor do Serviço. Example: 150

vBCRet   number  optional    

BC da Retenção do ICMS. Example: 150

pICMSRet   number  optional    

Alíquota da Retenção. Example: 12

vICMSRet   number  optional    

Valor do ICMS Retido. Example: 18

CFOP   string  optional    

Código Fiscal de Operações e Prestações. Must be 4 characters. Example: 5353

cMunFG   integer  optional    

Código do município de ocorrência do fato gerador (IBGE). Example: 3550308

veicTransp   object  optional    
placa   string  optional    

Placa do veículo. Must not be greater than 8 characters. Example: ABC1234

UF   string  optional    

UF em que veículo está licenciado. Must be 2 characters. Example: SP

RNTC   string  optional    

Registro Nacional de Transportador de Carga (ANTT). Must not be greater than 20 characters. Example: 12345678

reboque   object[]  optional    
placa   string  optional    

Placa do reboque. Must not be greater than 8 characters. Example: DEF5678

UF   string  optional    

UF em que reboque está licenciado. Must be 2 characters. Example: SP

RNTC   string  optional    

Registro Nacional de Transportador de Carga do reboque. Must not be greater than 20 characters. Example: 87654321

vol   object  optional    
qVol   integer  optional    

Example: 19

esp   string  optional    

Must not be greater than 60 characters. Example: snwjtfpgzvnvttrd

marca   string  optional    

Must not be greater than 60 characters. Example: wivgkaaquvnkm

nVol   string  optional    

Must not be greater than 60 characters. Example: brwfgiyxehclnuzhluwikrxn

pesoL   number  optional    

Example: 261980.38

pesoB   number  optional    

Example: 3035926

pag   object  optional    
detPag   object[]  optional    

Grupo de detalhamento da forma de pagamento.

indPag   string  optional    

Indicador da Forma de Pagamento: 0 = Pagamento à vista, 1 = Pagamento à prazo, 2 = Outros. Example: 0

Must be one of:
  • 0
  • 1
  • 2
tPag   string  optional    

Forma de pagamento: 01 = Dinheiro, 02 = Cheque, 03 = Cartão de Crédito, 04 = Cartão de Débito, 05 = Crédito Loja, 10 = Vale Alimentação, 11 = Vale Refeição, 12 = Vale Presente, 13 = Vale Combustível, 14 = Duplicata Mercantil, 15 = Boleto Bancário, 16 = Depósito Bancário, 17 = Pagamento Instantâneo (PIX), 18 = Transferência bancária, Carteira Digital, 19 = Programa de fidelidade, Cashback, Crédito Virtual, 90 = Sem pagamento, 99 = Outros. Must not be greater than 2 characters. Example: 01

vPag   number  optional    

Valor do Pagamento. Example: 130

tpIntegra   string  optional    

Example: 1

Must be one of:
  • 1
  • 2
CNPJ   string  optional    

Must be 14 characters. Example: xjutnspslnhvnw

tBand   string  optional    

Example: 13

Must be one of:
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 99
cAut   string  optional    

Must not be greater than 128 characters. Example: rkduoebpwteqibvpatomllymk

vTroco   number  optional    

Valor do troco. Example: 5

infAdic   object  optional    
infAdFisco   string  optional    

Informações adicionais de interesse do Fisco (máx 2000 caracteres). Must not be greater than 2000 characters. Example: Informações adicionais do fisco

infCpl   string  optional    

Informações complementares de interesse do Contribuinte (máx 5000 caracteres). Must not be greater than 5000 characters. Example: MD-5: .ICMS PAGO ANTERIORMENTE POR SUBST. TRIBUTARIA CONF. DECRETO N: 35.679/2010 E 33.205 DE 27/03/2009

infRespTec   object  optional    
CNPJ   string  optional    

CNPJ da pessoa jurídica responsável pelo sistema utilizado na emissão do documento fiscal eletrônico (14 dígitos). Must be 14 characters. Example: 00000000000000

xContato   string  optional    

Nome da pessoa a ser contatada (máx 60 caracteres). Must not be greater than 60 characters. Example: Programador

email   string  optional    

E-mail da pessoa jurídica a ser contatada (máx 60 caracteres). Must be a valid email address. Must not be greater than 60 characters. Example: [email protected]

fone   string  optional    

Telefone da pessoa jurídica/física a ser contatada (máx 14 caracteres). Must not be greater than 14 characters. Example: 1937553000

Cancel NFe

requires authentication

Cancel an existing electronic invoice (NFe)

Example request:
$client = new \GuzzleHttp\Client();
$url = 'https://devnota.com.br/api/nfe/cancelar';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Company' => '{YOUR_COMPANY_CNPJ}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'ambiente' => 'production',
            'chave' => 'tvtgyeayclovvzirzciyudoouibgefrlqmlukxczdkjy',
            'protocolo' => 'rerum',
            'justificativa' => 'oqyburzadbyxks',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://devnota.com.br/api/nfe/cancelar"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Company": "{YOUR_COMPANY_CNPJ}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "ambiente": "production",
    "chave": "tvtgyeayclovvzirzciyudoouibgefrlqmlukxczdkjy",
    "protocolo": "rerum",
    "justificativa": "oqyburzadbyxks"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
import requests
import json

url = 'https://devnota.com.br/api/nfe/cancelar'
payload = {
    "ambiente": "production",
    "chave": "tvtgyeayclovvzirzciyudoouibgefrlqmlukxczdkjy",
    "protocolo": "rerum",
    "justificativa": "oqyburzadbyxks"
}
headers = {
  'Authorization': 'Bearer {YOUR_AUTH_KEY}',
  'Company': '{YOUR_COMPANY_CNPJ}',
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('POST', url, headers=headers, json=payload)
response.json()
curl --request POST \
    "https://devnota.com.br/api/nfe/cancelar" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Company: {YOUR_COMPANY_CNPJ}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"ambiente\": \"production\",
    \"chave\": \"tvtgyeayclovvzirzciyudoouibgefrlqmlukxczdkjy\",
    \"protocolo\": \"rerum\",
    \"justificativa\": \"oqyburzadbyxks\"
}"

Example response (201):


{
    "protocolo": 3051,
    "status": "processando"
}
 

Example response (422):


{
    "message": "The chave field is required.",
    "errors": {
        "chave": [
            "The chave field is required."
        ]
    }
}
 

Request      

POST api/nfe/cancelar

Headers

Authorization        

Example: Bearer {YOUR_AUTH_KEY}

Company        

Example: {YOUR_COMPANY_CNPJ}

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

callback   string  optional    
ambiente   string     

Example: production

Must be one of:
  • production
  • developer
chave   string     

Must be 44 characters. Example: tvtgyeayclovvzirzciyudoouibgefrlqmlukxczdkjy

protocolo   string     

Example: rerum

justificativa   string     

Must be at least 15 characters. Must not be greater than 255 characters. Example: oqyburzadbyxks

Correction Letter NFe

requires authentication

Correct an existing electronic invoice (NFe)

Example request:
$client = new \GuzzleHttp\Client();
$url = 'https://devnota.com.br/api/nfe/cce';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Company' => '{YOUR_COMPANY_CNPJ}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'callback' => 'https://example.com/callback',
            'ambiente' => 'production or developer',
            'chave' => '43190512345678000123550010000000011000000011',
            'correcao' => 'Correction of the invoice data as per agreement.',
            'sequencial' => 1,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://devnota.com.br/api/nfe/cce"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Company": "{YOUR_COMPANY_CNPJ}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "callback": "https:\/\/example.com\/callback",
    "ambiente": "production or developer",
    "chave": "43190512345678000123550010000000011000000011",
    "correcao": "Correction of the invoice data as per agreement.",
    "sequencial": 1
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
import requests
import json

url = 'https://devnota.com.br/api/nfe/cce'
payload = {
    "callback": "https:\/\/example.com\/callback",
    "ambiente": "production or developer",
    "chave": "43190512345678000123550010000000011000000011",
    "correcao": "Correction of the invoice data as per agreement.",
    "sequencial": 1
}
headers = {
  'Authorization': 'Bearer {YOUR_AUTH_KEY}',
  'Company': '{YOUR_COMPANY_CNPJ}',
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('POST', url, headers=headers, json=payload)
response.json()
curl --request POST \
    "https://devnota.com.br/api/nfe/cce" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Company: {YOUR_COMPANY_CNPJ}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"callback\": \"https:\\/\\/example.com\\/callback\",
    \"ambiente\": \"production or developer\",
    \"chave\": \"43190512345678000123550010000000011000000011\",
    \"correcao\": \"Correction of the invoice data as per agreement.\",
    \"sequencial\": 1
}"

Example response (201):


{
    "protocolo": 3051,
    "status": "processando"
}
 

Example response (422):


{
    "message": "The chave field is required.",
    "errors": {
        "chave": [
            "The chave field is required."
        ]
    }
}
 

Request      

POST api/nfe/cce

Headers

Authorization        

Example: Bearer {YOUR_AUTH_KEY}

Company        

Example: {YOUR_COMPANY_CNPJ}

Content-Type        

Example: application/json

Accept        

Example: application/json

Body Parameters

callback   string  optional    

Callback URL to receive the response. Example: https://example.com/callback

ambiente   string     

Environment to use. Example: production or developer

Must be one of:
  • production
  • developer
chave   string     

NFe key to be corrected. Must be 44 characters. Example: 43190512345678000123550010000000011000000011

correcao   string     

Correction text for the CCe. Must not be greater than 1000 characters. Must be at least 15 characters. Example: Correction of the invoice data as per agreement.

sequencial   integer     

Sequential number of the CCe (1-99). Must be at least 1. Must not be greater than 99. Example: 1

Distribution NFe

requires authentication

Retrieve distributed electronic invoices (NFe)

Example request:
$client = new \GuzzleHttp\Client();
$url = 'https://devnota.com.br/api/nfe/dist';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Company' => '{YOUR_COMPANY_CNPJ}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://devnota.com.br/api/nfe/dist"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Company": "{YOUR_COMPANY_CNPJ}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};


fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
import requests
import json

url = 'https://devnota.com.br/api/nfe/dist'
headers = {
  'Authorization': 'Bearer {YOUR_AUTH_KEY}',
  'Company': '{YOUR_COMPANY_CNPJ}',
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('GET', url, headers=headers)
response.json()
curl --request GET \
    --get "https://devnota.com.br/api/nfe/dist" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Company: {YOUR_COMPANY_CNPJ}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"

Example response (500):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "success": false,
    "message": "Unauthenticated.",
    "error": "AuthenticationException"
}
 

Request      

GET api/nfe/dist

Headers

Authorization        

Example: Bearer {YOUR_AUTH_KEY}

Company        

Example: {YOUR_COMPANY_CNPJ}

Content-Type        

Example: application/json

Accept        

Example: application/json