Properties
| Name | Type | Description |
|---|---|---|
| competencia | string | |
| cnpj_prestador | string | |
| inscricao_municipal | string | |
| razao_social_prestador | stringnull | |
| descricao_servico | string | |
| cnae | stringnull | |
| codigo_tributacao_nacional | stringnull | Obrigatório na ausência de cnae. |
| codigo_tributacao_municipal | stringnull | Obrigatório na ausência de cnae. |
| aliquota_iss | numbernull | Obrigatório na ausência de cnae. |
| codigo_municipio_prestacao | string | |
| codigo_nbs | stringnull | Obrigatório quando rtc.incluir,true. |
| valor_servico | number | |
| valor_deducoes | numbernull | |
| informacoes_adicionais | stringnull | |
| tomador | object | |
| rtc | objectnull | |
| prestador | object |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://artifacts.apis.io/foxnfe-com-br/json-schema/foxnfe-com-br-post-api-v1-nfse-emit-request-schema.json",
"title": "post_api_v1_nfse_emitRequest",
"x-generated": "2026-11-08",
"x-method": "derived",
"x-generator": "derive-json-schema.py",
"x-source": [
"app/app/Modules/Fiscal/Nfse/Http/Requests/EmitNfseRequest.php:17"
],
"type": "object",
"properties": {
"competencia": {
"x-laravel-rules": [
"required",
"string",
"regex:/^\\d{4}-\\d{2}$/"
],
"type": "string",
"pattern": "^\\d{4}-\\d{2}$"
},
"cnpj_prestador": {
"x-laravel-rules": [
"required",
"string",
"regex:/^\\d{14}$/"
],
"type": "string",
"pattern": "^\\d{14}$"
},
"inscricao_municipal": {
"x-laravel-rules": [
"required",
"string",
"max:20"
],
"type": "string",
"maxLength": 20
},
"razao_social_prestador": {
"x-laravel-rules": [
"nullable",
"string",
"max:255"
],
"type": [
"string",
"null"
],
"maxLength": 255
},
"descricao_servico": {
"x-laravel-rules": [
"required",
"string",
"min:5",
"max:2000"
],
"type": "string",
"minLength": 5,
"maxLength": 2000
},
"cnae": {
"x-laravel-rules": [
"nullable",
"string",
"regex:/^\\d{4}[-.]?\\d{1}[\\/.]?\\d{2}$|^\\d{7}$/"
],
"type": [
"string",
"null"
],
"pattern": "^\\d{4}[-.]?\\d{1}[/.]?\\d{2}$|^\\d{7}$"
},
"codigo_tributacao_nacional": {
"x-laravel-rules": [
"required_without:cnae",
"nullable",
"string",
"regex:/^\\d{2}\\.\\d{2}\\.\\d{2}\\.\\d{2}$/"
],
"type": [
"string",
"null"
],
"description": "Obrigatório na ausência de cnae.",
"pattern": "^\\d{2}\\.\\d{2}\\.\\d{2}\\.\\d{2}$"
},
"codigo_tributacao_municipal": {
"x-laravel-rules": [
"required_without:cnae",
"nullable",
"string",
"max:20"
],
"type": [
"string",
"null"
],
"description": "Obrigatório na ausência de cnae.",
"maxLength": 20
},
"aliquota_iss": {
"x-laravel-rules": [
"required_without:cnae",
"nullable",
"numeric",
"min:0",
"max:100"
],
"type": [
"number",
"null"
],
"description": "Obrigatório na ausência de cnae.",
"minimum": 0,
"maximum": 100
},
"codigo_municipio_prestacao": {
"x-laravel-rules": [
"required",
"string",
"size:7",
"regex:/^\\d{7}$/"
],
"type": "string",
"minLength": 7,
"maxLength": 7,
"pattern": "^\\d{7}$"
},
"codigo_nbs": {
"x-laravel-rules": [
"required_if:rtc.incluir,true",
"nullable",
"string",
"regex:/^\\d{9}$/"
],
"type": [
"string",
"null"
],
"description": "Obrigatório quando rtc.incluir,true.",
"pattern": "^\\d{9}$"
},
"valor_servico": {
"x-laravel-rules": [
"required",
"numeric",
"min:0.01"
],
"type": "number",
"minimum": 0.01
},
"valor_deducoes": {
"x-laravel-rules": [
"nullable",
"numeric",
"min:0"
],
"type": [
"number",
"null"
],
"minimum": 0
},
"informacoes_adicionais": {
"x-laravel-rules": [
"nullable",
"string",
"max:255"
],
"type": [
"string",
"null"
],
"maxLength": 255
},
"tomador": {
"x-laravel-rules": [
"required",
"array"
],
"type": "object",
"properties": {
"cnpj": {
"x-laravel-rules": [
"required_without:tomador.cpf",
"nullable",
"string",
"regex:/^\\d{14}$/"
],
"x-laravel-custom-validation": true,
"description": "Validação adicional de domínio é aplicada pelo servidor (por exemplo dígitos verificadores e autorização). Obrigatório na ausência de tomador.cpf.",
"type": [
"string",
"null"
],
"pattern": "^\\d{14}$"
},
"cpf": {
"x-laravel-rules": [
"required_without:tomador.cnpj",
"nullable",
"string"
],
"x-laravel-custom-validation": true,
"description": "Validação adicional de domínio é aplicada pelo servidor (por exemplo dígitos verificadores e autorização). Obrigatório na ausência de tomador.cnpj.",
"type": [
"string",
"null"
]
},
"nome": {
"x-laravel-rules": [
"required",
"string",
"max:255"
],
"type": "string",
"maxLength": 255
},
"endereco": {
"x-laravel-rules": [
"nullable",
"array"
],
"type": [
"array",
"object",
"null"
],
"items": {},
"additionalProperties": true
}
},
"required": [
"nome"
]
},
"rtc": {
"x-laravel-rules": [
"nullable",
"array"
],
"type": [
"object",
"null"
],
"properties": {
"incluir": {
"x-laravel-rules": [
"sometimes",
"boolean"
],
"type": "boolean"
},
"resolution_id": {
"x-laravel-rules": [
"required_if:rtc.incluir,true",
"string",
"max:64"
],
"type": "string",
"description": "Obrigatório quando rtc.incluir,true.",
"maxLength": 64
},
"sku": {
"x-laravel-rules": [
"required_if:rtc.incluir,true",
"string",
"max:80"
],
"type": "string",
"description": "Obrigatório quando rtc.incluir,true.",
"maxLength": 80
},
"cind_op": {
"x-laravel-rules": [
"required_if:rtc.incluir,true",
"string",
"regex:/^\\d{6}$/"
],
"type": "string",
"description": "Obrigatório quando rtc.incluir,true.",
"pattern": "^\\d{6}$"
},
"fin_nfse": {
"x-laravel-rules": [
"required_if:rtc.incluir,true",
"string",
"in:0,1,2"
],
"type": "string",
"description": "Obrigatório quando rtc.incluir,true.",
"enum": [
"0",
"1",
"2"
]
},
"ind_dest": {
"x-laravel-rules": [
"required_if:rtc.incluir,true",
"string",
"in:0,1"
],
"type": "string",
"description": "Obrigatório quando rtc.incluir,true.",
"enum": [
"0",
"1"
]
}
},
"x-prohibited-fields": [
"cst",
"cclass_trib",
"source_version",
"valor_ibs",
"valor_cbs"
]
},
"prestador": {
"x-laravel-rules": [
"required",
"array"
],
"type": "object",
"properties": {
"endereco": {
"x-laravel-rules": [
"required",
"array"
],
"type": "object",
"properties": {
"logradouro": {
"x-laravel-rules": [
"required",
"string",
"max:255"
],
"type": "string",
"maxLength": 255
},
"numero": {
"x-laravel-rules": [
"required",
"string",
"max:10"
],
"type": "string",
"maxLength": 10
},
"bairro": {
"x-laravel-rules": [
"required",
"string",
"max:100"
],
"type": "string",
"maxLength": 100
},
"codigo_municipio": {
"x-laravel-rules": [
"required",
"string",
"size:7"
],
"type": "string",
"minLength": 7,
"maxLength": 7
},
"uf": {
"x-laravel-rules": [
"required",
"string",
"size:2"
],
"type": "string",
"minLength": 2,
"maxLength": 2
},
"cep": {
"x-laravel-rules": [
"required",
"string",
"regex:/^\\d{8}$/"
],
"type": "string",
"pattern": "^\\d{8}$"
}
},
"required": [
"logradouro",
"numero",
"bairro",
"codigo_municipio",
"uf",
"cep"
]
}
},
"required": [
"endereco"
]
}
},
"required": [
"competencia",
"cnpj_prestador",
"inscricao_municipal",
"descricao_servico",
"codigo_municipio_prestacao",
"valor_servico",
"tomador",
"prestador"
]
}
Work with this as data
Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for schemas
4 MCP tools reach this
find_json_schemasBrowse and filter every JSON Schema in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/foxnfe-com-br-post-api-v1-nfse-emit-request"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.