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"
}
]
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
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."
]
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
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."
]
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
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."
]
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
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"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
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."
]
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
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."
]
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
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."
]
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
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."
]
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
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."
]
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
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."
]
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
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."
]
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
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."
]
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
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."
]
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
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."
]
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
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."
]
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
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."
]
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
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"
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.