{
    "openapi": "3.0.3",
    "info": {
        "title": "Geranet NFe API",
        "version": "1.0.0",
        "description": "API de emissão de documentos fiscais (NFe, NFCe, CTe, MDFE e NFSe), boletos por APIs bancárias e cobranças PIX pelos PSPs suportados. Autenticação via API Key no header Authorization: Bearer SUA_API_KEY. É possível criar uma conta gratuita pela rota pública POST /api/v1/contas/criar, que retorna a chaveApi. Criar conta e emitir documentos fiscais em homologação/teste (ambiente = 2) não gera cobrança; a cobrança da plataforma ocorre somente por uso real de emissões fiscais autorizadas em produção."
    },
    "servers": [
        {
            "url": "https://nfe.geranet.net",
            "description": "Produção"
        },
        {
            "url": "http://localhost:8115",
            "description": "Desenvolvimento local"
        }
    ],
    "components": {
        "securitySchemes": {
            "ApiKeyAuth": {
                "type": "http",
                "scheme": "bearer",
                "bearerFormat": "API Key",
                "description": "API Key (prefixo gn_). Obtenha no Painel após login."
            }
        },
        "schemas": {
            "RespostaSucesso": {
                "type": "object",
                "properties": {
                    "situacao": {
                        "type": "string",
                        "example": "sucesso"
                    },
                    "mensagem": {
                        "type": "string"
                    },
                    "xml": {
                        "type": "string",
                        "description": "Conteúdo do XML em hexadecimal (ou string vazia)."
                    },
                    "pdf": {
                        "type": "string",
                        "description": "Conteúdo do PDF em hexadecimal (ou string vazia)."
                    },
                    "cstat": {
                        "type": "string",
                        "description": "Codigo de status retornado pela SEFAZ (quando disponivel)."
                    },
                    "numero": {
                        "type": "string"
                    },
                    "chave": {
                        "type": "string"
                    },
                    "protocolo": {
                        "type": "string"
                    }
                }
            },
            "RespostaErro": {
                "type": "object",
                "properties": {
                    "situacao": {
                        "type": "string",
                        "example": "erro"
                    },
                    "mensagem": {
                        "type": "string"
                    },
                    "cstat": {
                        "type": "string",
                        "example": "204"
                    },
                    "xml": {
                        "type": "string"
                    },
                    "pdf": {
                        "type": "string"
                    }
                }
            },
            "NfseServicoTributacaoIbscbs": {
                "type": "object",
                "description": "IBS/CBS (Reforma Tributária) em servico.tributacao.ibscbs. O payload é processado integralmente pelo motor de integração do Geranet NFe.",
                "properties": {
                    "finNFSe": {
                        "type": "string",
                        "description": "Finalidade da NFSe no RTC. Para NFSe regular, informe \"0\".",
                        "example": "0"
                    },
                    "cst": {
                        "type": "string",
                        "description": "CST do IBS/CBS.",
                        "example": "000"
                    },
                    "indFinal": {
                        "type": "string",
                        "description": "Indicador de consumidor final. Aceita \"1\"/\"0\" ou \"sim\"/\"nao\". No provedor Conam gera IndConsFin no XML.",
                        "example": "1"
                    },
                    "indDest": {
                        "type": "string",
                        "description": "Indicador de destinatário. Aceita \"0\"/\"1\" ou \"sim\"/\"nao\". No provedor Conam gera IndDest no XML.",
                        "example": "0"
                    },
                    "indOpeOne": {
                        "type": "string",
                        "description": "Indicador de operação onerosa. Aceita \"1\"/\"0\" ou \"sim\"/\"nao\". No provedor Conam gera IndOpeOne no XML. Mantenha coerência com cIndOp; por exemplo, ao enviar cIndOp = \"100401\", envie indOpeOne = \"0\".",
                        "example": "0"
                    },
                    "cIndOp": {
                        "type": "string",
                        "description": "Código de indicação de operação (6 dígitos numéricos, ex.: 050101, 030101 ou 100401). Obrigatório em diversos cenários do DPS/padrão nacional. Enviar em servico.tributacao.ibscbs.cIndOp. Conforme o provedor municipal, o campo pode ser omitido quando o schema não o aceitar. Em Conam/Etransparência, mantenha coerência com indOpeOne para evitar rejeição de protocolo.",
                        "pattern": "^[0-9]{6}$",
                        "example": "100401"
                    },
                    "ibsEstadual": {
                        "type": "object",
                        "properties": {
                            "percentualIbs": {
                                "type": "string"
                            },
                            "percentualReducaoAliquota": {
                                "type": "string"
                            }
                        }
                    },
                    "ibsMunicipal": {
                        "type": "object",
                        "properties": {
                            "percentualIbs": {
                                "type": "string"
                            },
                            "percentualReducaoAliquota": {
                                "type": "string"
                            }
                        }
                    },
                    "cbsFederal": {
                        "type": "object",
                        "properties": {
                            "percentualCbs": {
                                "type": "string"
                            },
                            "percentualReducaoAliquota": {
                                "type": "string"
                            }
                        }
                    }
                }
            },
            "RespostaConsultaDistribuicaoNfe": {
                "type": "object",
                "properties": {
                    "situacao": {
                        "type": "string",
                        "example": "sucesso"
                    },
                    "mensagem": {
                        "type": "string"
                    },
                    "xml": {
                        "type": "string",
                        "description": "Retorno bruto da SEFAZ em hexadecimal."
                    },
                    "pdf": {
                        "type": "string",
                        "example": ""
                    },
                    "cstat": {
                        "type": "string",
                        "example": "138"
                    },
                    "ultimoNsu": {
                        "type": "string",
                        "example": "000000000000123"
                    },
                    "maximoNsu": {
                        "type": "string",
                        "example": "000000000000125"
                    },
                    "quantidadeDocumentos": {
                        "type": "integer",
                        "example": 1
                    },
                    "registros": {
                        "type": "array",
                        "items": {
                            "type": "object",
                            "properties": {
                                "nsu": {
                                    "type": "string"
                                },
                                "schema": {
                                    "type": "string",
                                    "example": "resNFe"
                                },
                                "modelo": {
                                    "type": "string",
                                    "example": "55"
                                },
                                "tipoXml": {
                                    "type": "string",
                                    "example": "resumo"
                                },
                                "chave": {
                                    "type": "string"
                                },
                                "cnpjCpfEmitente": {
                                    "type": "string"
                                },
                                "nomeEmitente": {
                                    "type": "string"
                                },
                                "inscricaoEstadualEmitente": {
                                    "type": "string"
                                },
                                "dataEmissao": {
                                    "type": "string",
                                    "example": "2026-03-20 09:12:00"
                                },
                                "valor": {
                                    "type": "string",
                                    "example": "1500.45"
                                },
                                "xml": {
                                    "type": "string",
                                    "description": "XML resumido ou completo em hexadecimal."
                                },
                                "situacaoManifestacao": {
                                    "type": "string",
                                    "example": "210210"
                                }
                            }
                        }
                    }
                }
            },
            "RespostaConsultaDistribuicaoCte": {
                "type": "object",
                "properties": {
                    "situacao": {
                        "type": "string",
                        "example": "sucesso"
                    },
                    "mensagem": {
                        "type": "string"
                    },
                    "xml": {
                        "type": "string",
                        "description": "Retorno bruto da SEFAZ em hexadecimal."
                    },
                    "pdf": {
                        "type": "string",
                        "example": ""
                    },
                    "cstat": {
                        "type": "string",
                        "example": "138"
                    },
                    "ultimoNsu": {
                        "type": "string",
                        "example": "000000000000123"
                    },
                    "maximoNsu": {
                        "type": "string",
                        "example": "000000000000125"
                    },
                    "quantidadeDocumentos": {
                        "type": "integer",
                        "example": 1
                    },
                    "registros": {
                        "type": "array",
                        "items": {
                            "type": "object",
                            "properties": {
                                "nsu": {
                                    "type": "string"
                                },
                                "schema": {
                                    "type": "string",
                                    "example": "resCTe"
                                },
                                "modelo": {
                                    "type": "string",
                                    "example": "57"
                                },
                                "tipoXml": {
                                    "type": "string",
                                    "example": "resumo"
                                },
                                "chave": {
                                    "type": "string"
                                },
                                "cnpjCpfEmitente": {
                                    "type": "string"
                                },
                                "nomeEmitente": {
                                    "type": "string"
                                },
                                "inscricaoEstadualEmitente": {
                                    "type": "string"
                                },
                                "dataEmissao": {
                                    "type": "string",
                                    "example": "2026-03-20 09:12:00"
                                },
                                "valor": {
                                    "type": "string",
                                    "example": "1500.45"
                                },
                                "xml": {
                                    "type": "string",
                                    "description": "XML resumido ou completo em hexadecimal."
                                },
                                "identificadorEvento": {
                                    "type": "string"
                                },
                                "tipoEvento": {
                                    "type": "string"
                                },
                                "situacaoManifestacao": {
                                    "type": "string"
                                }
                            }
                        }
                    }
                }
            },
            "RespostaConsultaDfeNfse": {
                "type": "object",
                "properties": {
                    "situacao": {
                        "type": "string",
                        "example": "sucesso"
                    },
                    "mensagem": {
                        "type": "string",
                        "example": "Sucesso"
                    },
                    "cstat": {
                        "type": "string",
                        "example": ""
                    },
                    "ultimoNsu": {
                        "type": "string",
                        "example": "0"
                    },
                    "maximoNsu": {
                        "type": "string",
                        "example": "51"
                    },
                    "menorNsuRetornado": {
                        "type": "string",
                        "example": "2"
                    },
                    "maiorNsuRetornado": {
                        "type": "string",
                        "example": "51"
                    },
                    "proximoNsuSugerido": {
                        "type": "string",
                        "example": "52"
                    },
                    "temMaisRegistrosProvavelmente": {
                        "type": "string",
                        "example": "sim"
                    },
                    "quantidadeDocumentos": {
                        "type": "integer",
                        "example": 50
                    },
                    "registros": {
                        "type": "array",
                        "items": {
                            "type": "object",
                            "properties": {
                                "nsu": {
                                    "type": "integer",
                                    "example": 2
                                },
                                "chaveDfe": {
                                    "type": "string",
                                    "example": "35503082214361062000133000000000000123080509163099"
                                },
                                "tipoEvento": {
                                    "type": "string",
                                    "example": ""
                                },
                                "tipoDocumento": {
                                    "type": "string",
                                    "example": "NFSE"
                                },
                                "numeroNota": {
                                    "type": "string",
                                    "example": "1"
                                },
                                "serieNota": {
                                    "type": "string",
                                    "example": ""
                                },
                                "codigoVerificacao": {
                                    "type": "string",
                                    "example": "35503082214361062000133000000000000123080509163099"
                                },
                                "numeroRps": {
                                    "type": "string",
                                    "example": "1"
                                },
                                "serieRps": {
                                    "type": "string",
                                    "example": "900"
                                },
                                "idNota": {
                                    "type": "string",
                                    "example": ""
                                },
                                "idRps": {
                                    "type": "string",
                                    "example": ""
                                },
                                "data": {
                                    "type": "string",
                                    "example": "2023-08-09T15:40:48.253"
                                },
                                "link": {
                                    "type": "string",
                                    "example": "https://www.nfse.gov.br/ConsultaPublica/?tpc=1&chave=35503082214361062000133000000000000123080509163099"
                                },
                                "protocolo": {
                                    "type": "string",
                                    "example": ""
                                },
                                "situacao": {
                                    "type": "string",
                                    "example": "0"
                                },
                                "descricaoSituacao": {
                                    "type": "string",
                                    "example": "normal"
                                },
                                "tipoXml": {
                                    "type": "string",
                                    "example": "completo"
                                },
                                "xml": {
                                    "type": "string",
                                    "description": "XML da NFSe em hexadecimal quando o portal retornar o documento completo."
                                },
                                "dadosNota": {
                                    "type": "object",
                                    "description": "Dados estruturados extraídos do XML completo da NFSe. Só é retornado quando o registro vier com tipoXml = completo e o XML puder ser interpretado.",
                                    "properties": {
                                        "identificacao": {
                                            "type": "object",
                                            "properties": {
                                                "chaveDfe": {
                                                    "type": "string",
                                                    "example": "35503082214361062000133000000000000123080509163099"
                                                },
                                                "numeroNota": {
                                                    "type": "string",
                                                    "example": "1"
                                                },
                                                "serieNota": {
                                                    "type": "string",
                                                    "example": ""
                                                },
                                                "codigoVerificacao": {
                                                    "type": "string",
                                                    "example": "35503082214361062000133000000000000123080509163099"
                                                },
                                                "numeroLote": {
                                                    "type": "string",
                                                    "example": ""
                                                },
                                                "dataEmissao": {
                                                    "type": "string",
                                                    "example": "2023-08-09T15:40:30"
                                                },
                                                "competencia": {
                                                    "type": "string",
                                                    "example": "2023-08-09"
                                                },
                                                "situacao": {
                                                    "type": "integer",
                                                    "example": 0
                                                },
                                                "descricaoSituacao": {
                                                    "type": "string",
                                                    "example": "normal"
                                                },
                                                "link": {
                                                    "type": "string",
                                                    "example": "https://www.nfse.gov.br/ConsultaPublica/?tpc=1&chave=35503082214361062000133000000000000123080509163099"
                                                }
                                            }
                                        },
                                        "rps": {
                                            "type": "object",
                                            "properties": {
                                                "numero": {
                                                    "type": "string",
                                                    "example": "1"
                                                },
                                                "serie": {
                                                    "type": "string",
                                                    "example": "900"
                                                }
                                            }
                                        },
                                        "prestador": {
                                            "type": "object",
                                            "properties": {
                                                "cnpjCpf": {
                                                    "type": "string",
                                                    "example": "14361062000133"
                                                },
                                                "inscricaoMunicipal": {
                                                    "type": "string",
                                                    "example": ""
                                                },
                                                "razaoSocial": {
                                                    "type": "string",
                                                    "example": "PRESTADOR EXEMPLO LTDA"
                                                },
                                                "nomeFantasia": {
                                                    "type": "string",
                                                    "example": ""
                                                },
                                                "endereco": {
                                                    "type": "object",
                                                    "properties": {
                                                        "logradouro": {
                                                            "type": "string",
                                                            "example": "RUA EXEMPLO"
                                                        },
                                                        "numero": {
                                                            "type": "string",
                                                            "example": "100"
                                                        },
                                                        "complemento": {
                                                            "type": "string",
                                                            "example": ""
                                                        },
                                                        "bairro": {
                                                            "type": "string",
                                                            "example": "CENTRO"
                                                        },
                                                        "codigoMunicipio": {
                                                            "type": "string",
                                                            "example": "3550308"
                                                        },
                                                        "nomeMunicipio": {
                                                            "type": "string",
                                                            "description": "Nome do município do endereço. Alguns provedores validam esse campo além do código IBGE.",
                                                            "example": "Sao Paulo"
                                                        },
                                                        "uf": {
                                                            "type": "string",
                                                            "example": "SP"
                                                        },
                                                        "cep": {
                                                            "type": "string",
                                                            "example": "01000000"
                                                        }
                                                    }
                                                },
                                                "contato": {
                                                    "type": "object",
                                                    "properties": {
                                                        "telefone": {
                                                            "type": "string",
                                                            "example": "1130000000"
                                                        },
                                                        "email": {
                                                            "type": "string",
                                                            "example": "contato@prestador.com.br"
                                                        }
                                                    }
                                                }
                                            }
                                        },
                                        "tomador": {
                                            "type": "object",
                                            "properties": {
                                                "cpfCnpj": {
                                                    "type": "string",
                                                    "example": "18612608000132"
                                                },
                                                "inscricaoMunicipal": {
                                                    "type": "string",
                                                    "example": ""
                                                },
                                                "razaoSocial": {
                                                    "type": "string",
                                                    "example": "TOMADOR EXEMPLO LTDA"
                                                },
                                                "endereco": {
                                                    "type": "object",
                                                    "properties": {
                                                        "logradouro": {
                                                            "type": "string",
                                                            "example": "RUA CLIENTE"
                                                        },
                                                        "numero": {
                                                            "type": "string",
                                                            "example": "200"
                                                        },
                                                        "complemento": {
                                                            "type": "string",
                                                            "example": ""
                                                        },
                                                        "bairro": {
                                                            "type": "string",
                                                            "example": "CENTRO"
                                                        },
                                                        "codigoMunicipio": {
                                                            "type": "string",
                                                            "example": "3550308"
                                                        },
                                                        "nomeMunicipio": {
                                                            "type": "string",
                                                            "description": "Nome do município do tomador. Para provedores como Conam, envie este campo junto com municipio e uf.",
                                                            "example": "Sao Paulo"
                                                        },
                                                        "uf": {
                                                            "type": "string",
                                                            "example": "SP"
                                                        },
                                                        "cep": {
                                                            "type": "string",
                                                            "example": "02000000"
                                                        }
                                                    }
                                                },
                                                "contato": {
                                                    "type": "object",
                                                    "properties": {
                                                        "telefone": {
                                                            "type": "string",
                                                            "example": ""
                                                        },
                                                        "email": {
                                                            "type": "string",
                                                            "example": ""
                                                        }
                                                    }
                                                }
                                            }
                                        },
                                        "servico": {
                                            "type": "object",
                                            "properties": {
                                                "itemListaServico": {
                                                    "type": "string",
                                                    "example": "141301"
                                                },
                                                "codigoTributacaoMunicipio": {
                                                    "type": "string",
                                                    "example": ""
                                                },
                                                "codigoMunicipio": {
                                                    "type": "string",
                                                    "example": "3550308"
                                                },
                                                "codigoAnexoCnae": {
                                                    "type": "string",
                                                    "description": "Anexo do Simples Nacional vinculado ao CNAE do serviço. O Geranet NFe processa esse campo integralmente. Quando o provedor exigir esse dado, informe no formato esperado pelo município. No padrão Conam/Etransparência, normalmente são usados algarismos romanos como \"III\", \"IV\" ou \"V\".",
                                                    "example": "III"
                                                },
                                                "codigoNbs": {
                                                    "type": "string",
                                                    "example": ""
                                                },
                                                "discriminacao": {
                                                    "type": "string",
                                                    "example": "Servico prestado."
                                                },
                                                "municipioIncidencia": {
                                                    "type": "integer",
                                                    "example": 3550308
                                                },
                                                "valores": {
                                                    "type": "object",
                                                    "properties": {
                                                        "valorServicos": {
                                                            "type": "number",
                                                            "example": 7300
                                                        },
                                                        "valorDeducoes": {
                                                            "type": "number",
                                                            "example": 0
                                                        },
                                                        "descontoIncondicionado": {
                                                            "type": "number",
                                                            "example": 0
                                                        },
                                                        "descontoCondicionado": {
                                                            "type": "number",
                                                            "example": 0
                                                        },
                                                        "baseCalculo": {
                                                            "type": "number",
                                                            "example": 7300
                                                        },
                                                        "aliquotaIss": {
                                                            "type": "number",
                                                            "example": 0
                                                        },
                                                        "valorIss": {
                                                            "type": "number",
                                                            "example": 0
                                                        },
                                                        "valorIssRetido": {
                                                            "type": "number",
                                                            "example": 0
                                                        },
                                                        "valorPis": {
                                                            "type": "number",
                                                            "example": 0
                                                        },
                                                        "valorCofins": {
                                                            "type": "number",
                                                            "example": 0
                                                        },
                                                        "valorInss": {
                                                            "type": "number",
                                                            "example": 0
                                                        },
                                                        "valorIr": {
                                                            "type": "number",
                                                            "example": 0
                                                        },
                                                        "valorCsll": {
                                                            "type": "number",
                                                            "example": 0
                                                        },
                                                        "outrasRetencoes": {
                                                            "type": "number",
                                                            "example": 0
                                                        },
                                                        "aliquotaPis": {
                                                            "type": "number",
                                                            "example": 0
                                                        },
                                                        "aliquotaCofins": {
                                                            "type": "number",
                                                            "example": 0
                                                        },
                                                        "valorLiquidoNfse": {
                                                            "type": "number",
                                                            "example": 7300
                                                        }
                                                    }
                                                },
                                                "tributacao": {
                                                    "type": "object",
                                                    "properties": {
                                                        "issRetido": {
                                                            "type": "integer",
                                                            "example": 1
                                                        },
                                                        "tipoTributacaoIss": {
                                                            "type": "integer",
                                                            "example": 0
                                                        },
                                                        "tipoRetencaoIss": {
                                                            "type": "integer",
                                                            "example": 0
                                                        },
                                                        "tipoImunidade": {
                                                            "type": "integer",
                                                            "example": 0
                                                        },
                                                        "aliquotaMunicipal": {
                                                            "type": "number",
                                                            "example": 0
                                                        },
                                                        "baseCalculoPisCofins": {
                                                            "type": "number",
                                                            "example": 0
                                                        },
                                                        "valorRetencaoCp": {
                                                            "type": "number",
                                                            "example": 0
                                                        },
                                                        "valorRetencaoIrrf": {
                                                            "type": "number",
                                                            "example": 0
                                                        },
                                                        "valorRetencaoCsll": {
                                                            "type": "number",
                                                            "example": 0
                                                        },
                                                        "valorTributosFederais": {
                                                            "type": "number",
                                                            "example": 0
                                                        },
                                                        "valorTributosEstaduais": {
                                                            "type": "number",
                                                            "example": 0
                                                        },
                                                        "valorTributosMunicipais": {
                                                            "type": "number",
                                                            "example": 0
                                                        },
                                                        "percentualTributosSimplesNacional": {
                                                            "type": "number",
                                                            "example": 0
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            },
            "CredenciaisBancarias": {
                "type": "object",
                "description": "Credenciais fornecidas pelo banco ou PSP. Informe somente os campos exigidos pelo provedor escolhido.",
                "additionalProperties": true,
                "properties": {
                    "clienteId": { "type": "string" },
                    "clienteSegredo": { "type": "string", "format": "password" },
                    "chaveUsuario": { "type": "string", "format": "password", "description": "API Key ou chave do usuário. No Asaas, envie aqui o access_token." },
                    "chavePix": { "type": "string" },
                    "escopo": { "type": "string" },
                    "token": { "type": "string", "format": "password" },
                    "tokenAcesso": { "type": "string", "format": "password" },
                    "certificadoPemHexadecimal": { "type": "string", "format": "password" },
                    "chavePrivadaPemHexadecimal": { "type": "string", "format": "password" },
                    "certificadoPfxHexadecimal": { "type": "string", "format": "password" },
                    "senhaCertificadoPfx": { "type": "string", "format": "password" }
                }
            },
            "PayloadBoletoBancario": {
                "type": "object",
                "required": ["ambiente", "provedor", "bancoNumero", "cnpjcpf", "credenciais"],
                "properties": {
                    "ambiente": { "type": "string", "enum": ["1", "2"], "description": "1 para produção; 2 para homologação." },
                    "provedor": {
                        "type": "string",
                        "description": "Implementação bancária usada na comunicação.",
                        "enum": ["sicredi", "caixa", "bancodobrasilws", "bancodobrasilapi", "itau", "credisis", "pensebank", "santander", "inter", "sicoob", "safra", "c6bank", "cresol", "bradesco", "banrisul", "cora", "btgpactual", "asaas", "kobana"]
                    },
                    "bancoNumero": { "type": "integer", "example": 461 },
                    "cedenteNome": { "type": "string", "example": "Empresa Exemplo Ltda" },
                    "cnpjcpf": { "type": "string", "pattern": "^[0-9]{14}$", "example": "12345678000190", "description": "CNPJ do cedente usado para contabilizar o consumo mensal." },
                    "agencia": { "type": "string" },
                    "agenciaDigito": { "type": "string" },
                    "conta": { "type": "string" },
                    "contaDigito": { "type": "string" },
                    "codigoCedente": { "type": "string" },
                    "convenio": { "type": "string" },
                    "credenciais": { "$ref": "#/components/schemas/CredenciaisBancarias" },
                    "titulos": {
                        "type": "array",
                        "items": {
                            "type": "object",
                            "properties": {
                                "nossoNumeroCorrespondente": { "type": "string", "description": "Identificador devolvido pelo provedor. Obrigatório para consultar detalhes e cancelar." },
                                "numeroDocumento": { "type": "string" },
                                "dataVencimento": { "type": "string", "format": "date" },
                                "valor": { "type": "number", "format": "double" },
                                "sacadoNome": { "type": "string" },
                                "sacadoCnpjCpf": { "type": "string" },
                                "sacadoEmail": { "type": "string", "format": "email" },
                                "sacadoTelefone": { "type": "string" },
                                "sacadoLogradouro": { "type": "string" },
                                "sacadoNumero": { "type": "string" },
                                "sacadoComplemento": { "type": "string" },
                                "sacadoBairro": { "type": "string" },
                                "sacadoCidade": { "type": "string" },
                                "sacadoUf": { "type": "string" },
                                "sacadoCep": { "type": "string" },
                                "valorDesconto": { "type": "number" },
                                "percentualMulta": { "type": "number" },
                                "valorMoraJuros": { "type": "number" }
                            }
                        }
                    }
                }
            },
            "PayloadCobrancaPix": {
                "type": "object",
                "required": ["ambiente", "provedor", "cnpjcpf", "credenciais", "recebedor"],
                "properties": {
                    "ambiente": { "type": "string", "enum": ["1", "2"] },
                    "provedor": {
                        "type": "string",
                        "enum": ["shipay", "bancodobrasil", "itau", "santander", "sicredi", "sicoob", "pagseguro", "gerencianet", "efibank", "bradesco", "pixpdv", "inter", "ailos", "matera", "cielo", "mercadopago", "gate2all", "banrisul", "c6bank", "appless", "qqpag"]
                    },
                    "cnpjcpf": { "type": "string", "pattern": "^[0-9]{14}$", "example": "12345678000190", "description": "CNPJ do recebedor usado para contabilizar o consumo mensal." },
                    "txid": { "type": "string", "description": "Opcional ao emitir; obrigatório ao consultar ou cancelar." },
                    "tempoLimite": { "type": "integer", "default": 90000 },
                    "credenciais": { "$ref": "#/components/schemas/CredenciaisBancarias" },
                    "recebedor": {
                        "type": "object",
                        "required": ["nome", "cep", "cidade", "uf"],
                        "properties": {
                            "nome": { "type": "string" },
                            "cep": { "type": "string" },
                            "cidade": { "type": "string" },
                            "uf": { "type": "string" }
                        }
                    },
                    "devedor": {
                        "type": "object",
                        "properties": {
                            "nome": { "type": "string" },
                            "cpfCnpj": { "type": "string" }
                        }
                    },
                    "cobranca": {
                        "type": "object",
                        "properties": {
                            "valor": { "type": "number", "format": "double" },
                            "expiracaoSegundos": { "type": "integer", "default": 3600 },
                            "solicitacaoPagador": { "type": "string" },
                            "permitirAlterarValor": { "type": "boolean", "default": false },
                            "informacoesAdicionais": {
                                "type": "array",
                                "items": {
                                    "type": "object",
                                    "required": ["nome", "valor"],
                                    "properties": {
                                        "nome": { "type": "string" },
                                        "valor": { "type": "string" }
                                    }
                                }
                            }
                        }
                    }
                }
            },
            "RespostaOperacaoBancaria": {
                "type": "object",
                "properties": {
                    "situacao": { "type": "string", "enum": ["sucesso", "erro"] },
                    "mensagem": { "type": "string" },
                    "pdf": { "type": "string", "description": "Conteúdo do boleto em PDF codificado em hexadecimal. Retornado na emissão de boleto; não se aplica às operações PIX, consultas ou cancelamentos." },
                    "dados": { "type": "object", "additionalProperties": true }
                }
            }
        }
    },
    "security": [
        {
            "ApiKeyAuth": []
        }
    ],
    "paths": {
        "/api/v1/contas/criar": {
            "post": {
                "summary": "Criar conta gratuita e obter API Key",
                "description": "Cria uma conta gratuita para programadores e integrações assistidas por IA. Esta rota é pública e não usa Authorization. O retorno traz a chaveApi em texto puro apenas nesta resposta; guarde a chave em local seguro. Criar conta não gera cobrança. Emissões em homologação/teste (ambiente = 2) não são cobradas. A rota tem limite de tentativas por IP e por e-mail para evitar criação massiva de contas.",
                "security": [],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "nome",
                                    "email",
                                    "senha",
                                    "confirmacaoSenha"
                                ],
                                "properties": {
                                    "nome": {
                                        "type": "string",
                                        "description": "Nome do programador, responsável ou empresa.",
                                        "example": "Programador Exemplo"
                                    },
                                    "email": {
                                        "type": "string",
                                        "format": "email",
                                        "description": "E-mail único da conta.",
                                        "example": "programador@example.com"
                                    },
                                    "whatsapp": {
                                        "type": "string",
                                        "description": "WhatsApp opcional da conta, informado com DDD.",
                                        "example": "63999999999"
                                    },
                                    "senha": {
                                        "type": "string",
                                        "minLength": 8,
                                        "description": "Senha com no mínimo 8 caracteres.",
                                        "example": "uma-senha-segura-123"
                                    },
                                    "confirmacaoSenha": {
                                        "type": "string",
                                        "minLength": 8,
                                        "description": "Repita a mesma senha.",
                                        "example": "uma-senha-segura-123"
                                    }
                                }
                            },
                            "example": {
                                "nome": "Programador Exemplo",
                                "email": "programador@example.com",
                                "whatsapp": "63999999999",
                                "senha": "uma-senha-segura-123",
                                "confirmacaoSenha": "uma-senha-segura-123"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Conta criada gratuitamente e API Key gerada.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "situacao": {
                                            "type": "string",
                                            "example": "sucesso"
                                        },
                                        "mensagem": {
                                            "type": "string",
                                            "example": "Conta criada gratuitamente. Guarde a chaveApi em local seguro."
                                        },
                                        "usuario": {
                                            "type": "object",
                                            "properties": {
                                                "nome": {
                                                    "type": "string",
                                                    "example": "Programador Exemplo"
                                                },
                                                "email": {
                                                    "type": "string",
                                                    "example": "programador@example.com"
                                                }
                                            }
                                        },
                                        "chaveApi": {
                                            "type": "string",
                                            "description": "API Key no formato gn_. É exibida integralmente apenas na criação ou regeneração.",
                                            "example": "gn_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
                                        },
                                        "autenticacao": {
                                            "type": "object",
                                            "properties": {
                                                "tipo": {
                                                    "type": "string",
                                                    "example": "Bearer"
                                                },
                                                "cabecalho": {
                                                    "type": "string",
                                                    "example": "Authorization: Bearer gn_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
                                                }
                                            }
                                        },
                                        "cobranca": {
                                            "type": "object",
                                            "properties": {
                                                "cadastroGratis": {
                                                    "type": "boolean",
                                                    "example": true
                                                },
                                                "homologacaoGratis": {
                                                    "type": "boolean",
                                                    "example": true
                                                },
                                                "mensagem": {
                                                    "type": "string",
                                                    "example": "Não há cobrança para criar conta nem para emitir notas em homologação/teste. A cobrança ocorre somente por uso real de emissões autorizadas em produção."
                                                }
                                            }
                                        },
                                        "proximosPassos": {
                                            "type": "object",
                                            "properties": {
                                                "baseUrl": {
                                                    "type": "string",
                                                    "example": "https://nfe.geranet.net/api/v1"
                                                },
                                                "documentacao": {
                                                    "type": "string",
                                                    "example": "https://nfe.geranet.net/documentacao"
                                                },
                                                "openapi": {
                                                    "type": "string",
                                                    "example": "https://nfe.geranet.net/api-v1-openapi.json"
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "422": {
                        "description": "Erro de validação, como e-mail já existente, senha curta ou confirmação divergente."
                    },
                    "429": {
                        "description": "Limite de tentativas excedido para proteger contra criação massiva de contas."
                    }
                }
            }
        },
        "/api/v1/user": {
            "get": {
                "summary": "Dados do usuário",
                "description": "Retorna os dados do usuário autenticado pela API Key. Útil para validar se a chave está correta. Resposta: objeto com id, name, email, etc.",
                "responses": {
                    "200": {
                        "description": "Sucesso - objeto com id, name, email do usuário"
                    },
                    "401": {
                        "description": "API Key ausente ou inválida"
                    }
                }
            }
        },
        "/api/v1/uso": {
            "get": {
                "summary": "Consultar consumo e cobrança estimada",
                "description": "Retorna o consumo técnico, o consumo considerado na cobrança e a estimativa total da conta no período. O filtro cnpj detalha somente aquele CNPJ nos blocos de consumo; a cobrança estimada continua sendo o total da conta.",
                "parameters": [
                    { "name": "ano", "in": "query", "schema": { "type": "integer", "example": 2026 }, "description": "Ano do período. Padrão: ano atual." },
                    { "name": "mes", "in": "query", "schema": { "type": "integer", "minimum": 1, "maximum": 12, "example": 8 }, "description": "Mês do período. Padrão: mês atual." },
                    { "name": "cnpj", "in": "query", "schema": { "type": "string", "example": "12345678000190" }, "description": "Opcional. Filtra o detalhamento de consumo por CNPJ." }
                ],
                "responses": {
                    "200": {
                        "description": "Consumo e cobrança estimada do período.",
                        "content": {
                            "application/json": {
                                "example": {
                                    "periodo": { "ano": 2026, "mes": 8, "referencia": "202608" },
                                    "filtro": { "cnpj": "12345678000190" },
                                    "consumo": { "total_cnpjs": 1, "total_notas": 18, "total_boletos_emitidos": 2, "total_pix_emitidos": 1, "total_emissoes_cobraveis": 21, "total_consultas_nfe": 4, "total_consultas_boleto": 12, "total_consultas_pix": 9, "cnpjs": [{ "cnpj": "12345678000190", "notes_count": 18, "boletos_emitidos_count": 2, "pix_emitidos_count": 1, "emissoes_cobraveis_count": 21 }] },
                                    "consumo_considerado_na_cobranca": { "total_cnpjs": 1, "total_notas": 18, "total_emissoes_cobraveis": 21 },
                                    "cobranca_estimada": { "moeda": "BRL", "valor_centavos": 2500, "valor_reais": 25 },
                                    "cobranca_gerada": null
                                }
                            }
                        }
                    },
                    "401": { "description": "API Key ausente ou inválida." },
                    "422": { "description": "Parâmetro de período ou CNPJ inválido." }
                }
            }
        },
        "/api/v1/cobrancas": {
            "get": {
                "summary": "Listar mensalidades geradas",
                "description": "Lista somente as mensalidades da conta autenticada. Permite consultar mensalidades pendentes, pagas, vencidas ou canceladas.",
                "parameters": [
                    { "name": "ano", "in": "query", "schema": { "type": "integer", "example": 2026 } },
                    { "name": "mes", "in": "query", "schema": { "type": "integer", "minimum": 1, "maximum": 12, "example": 8 } },
                    { "name": "status", "in": "query", "schema": { "type": "string", "enum": ["pending", "paid", "overdue", "cancelled"], "example": "pending" } },
                    { "name": "por_pagina", "in": "query", "schema": { "type": "integer", "minimum": 1, "maximum": 100, "example": 20 } }
                ],
                "responses": {
                    "200": {
                        "description": "Mensalidades da conta.",
                        "content": {
                            "application/json": {
                                "example": {
                                    "cobrancas": [{ "id": 41, "referencia": "202608", "valor_centavos": 2500, "valor_reais": 25, "moeda": "BRL", "vencimento": "2026-09-10", "status": "pending", "forma_cobranca": "pix", "pix_disponivel": true, "boleto_disponivel": false }],
                                    "paginacao": { "pagina_atual": 1, "por_pagina": 20, "total": 1, "ultima_pagina": 1 }
                                }
                            }
                        }
                    },
                    "401": { "description": "API Key ausente ou inválida." }
                }
            }
        },
        "/api/v1/logs": {
            "get": {
                "summary": "Listar logs da API",
                "description": "Lista apenas os logs da conta autenticada. Use o detalhe do log para consultar o payload e a resposta com dados sensíveis ocultados, orientações de correção e anexos.",
                "parameters": [
                    { "name": "numero_log", "in": "query", "schema": { "type": "integer", "example": 12345 }, "description": "Número do log." },
                    { "name": "endpoint", "in": "query", "schema": { "type": "string", "example": "nfse/emitir" } },
                    { "name": "cnpj", "in": "query", "schema": { "type": "string", "example": "12345678000190" } },
                    { "name": "status", "in": "query", "schema": { "type": "string", "enum": ["sucesso", "erro"], "example": "erro" } },
                    { "name": "por_pagina", "in": "query", "schema": { "type": "integer", "minimum": 1, "maximum": 100, "example": 20 } }
                ],
                "responses": {
                    "200": {
                        "description": "Lista paginada de logs.",
                        "content": {
                            "application/json": {
                                "example": {
                                    "logs": [{ "id": 12345, "criado_em": "2026-08-02T12:00:00.000000Z", "cnpj": "12345678000190", "endpoint": "nfse/emitir", "http_status": 422, "sucesso": false, "tem_orientacao_correcao": true, "quantidade_anexos_orientacao": 2, "quantidade_anexos_emissao": 0, "url_detalhes": "https://nfe.geranet.net/api/v1/logs/12345" }],
                                    "paginacao": { "pagina_atual": 1, "por_pagina": 20, "total": 1, "ultima_pagina": 1 }
                                }
                            }
                        }
                    },
                    "401": { "description": "API Key ausente ou inválida." }
                }
            }
        },
        "/api/v1/logs/{log}": {
            "get": {
                "summary": "Consultar detalhes de um log",
                "description": "Retorna o payload e a resposta do log da própria conta. Certificados, senhas, tokens e conteúdos XML/PDF brutos são ocultados. Os anexos usam url_download autenticada.",
                "parameters": [
                    { "name": "log", "in": "path", "required": true, "schema": { "type": "integer", "example": 12345 } }
                ],
                "responses": {
                    "200": {
                        "description": "Detalhes do log.",
                        "content": {
                            "application/json": {
                                "example": {
                                    "log": {
                                        "id": 12345,
                                        "payload": { "certificadoDigital": "[oculto]" },
                                        "resposta": { "situacao": "erro", "xml": "[conteúdo omitido; consulte os anexos do log quando disponíveis]" },
                                        "anexos_emissao": [{ "id": 61, "categoria": "emissao", "nome": "nfse-12345.pdf", "tipo_conteudo": "application/pdf", "tamanho_bytes": 81234, "url_download": "https://nfe.geranet.net/api/v1/logs/12345/anexos/emissao/61" }],
                                        "orientacao_correcao": { "texto": "Confira os dados do prestador.", "anexos": [{ "id": 91, "categoria": "orientacao", "nome": "exemplo.xml", "url_download": "https://nfe.geranet.net/api/v1/logs/12345/anexos/orientacao/91" }] }
                                    }
                                }
                            }
                        }
                    },
                    "401": { "description": "API Key ausente ou inválida." },
                    "404": { "description": "Log inexistente ou não pertencente à conta autenticada." }
                }
            }
        },
        "/api/v1/logs/{log}/anexos/{categoria}/{anexo}": {
            "get": {
                "summary": "Baixar anexo de um log",
                "description": "Baixa um anexo de emissão ou de orientação de correção. A mesma API Key usada para consultar o log deve ser enviada no header Authorization.",
                "parameters": [
                    { "name": "log", "in": "path", "required": true, "schema": { "type": "integer", "example": 12345 } },
                    { "name": "categoria", "in": "path", "required": true, "schema": { "type": "string", "enum": ["emissao", "orientacao"], "example": "emissao" } },
                    { "name": "anexo", "in": "path", "required": true, "schema": { "type": "integer", "example": 61 } }
                ],
                "responses": {
                    "200": { "description": "Conteúdo binário do anexo (por exemplo, application/pdf ou application/xml)." },
                    "401": { "description": "API Key ausente ou inválida." },
                    "404": { "description": "Anexo inexistente ou não pertencente à conta autenticada." }
                }
            }
        },
        "/api/v1/nfe/emitir": {
            "post": {
                "summary": "Emitir NFe / NFCe",
                "description": "Emite NFe (modelo 55) ou NFCe (modelo 65). Corpo: acao, modeloDocumento, certificadoDigital (hex), senhaCertificadoDigital, ambiente, modelo, ufEmitente, nfe (objeto com empresa, cliente, itens, etc.). Para NFCe (modelo 65), envie idCsc e csc para gerar o QR Code. Quando a SEFAZ exigir responsável técnico, envie nfe.responsavelTecnico com cnpj, contato, email, fone, idCSRT e CSRT. Para venda a prazo, envie nfe.pagamento.detalhamento[].tipo, valor e indicadorPagamento, além de nfe.fatura.numero, valor, desconto, valorLiquido e nfe.fatura.duplicatas[] com numero, dataVencimento, valor e, se desejar, codigoPagamento. Para IBS/CBS (Reforma Tributária), preencha os campos no item: cstIbscbs, cClassTribIbscbs, aliquotaIbsUf, aliquotaIbsMun, aliquotaCbs e ibscbsManual. Opcionalmente, informe baseCalculoIbscbs, valorIbsUf, valorIbsMun e valorCbs para controlar a base e os valores gravados no XML. Para NFe de crédito use nfe.finalidade=5 e tipoNotaCredito; para NFe de débito use nfe.finalidade=6 e tipoNotaDebito.",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "description": "Payload de emissão. Os campos de IBS/CBS da NFe/NFCe ficam em cada item de nfe.itens. Para cobrança/pagamento a prazo, envie nfe.pagamento.detalhamento[].tipo, valor e indicadorPagamento, junto com nfe.fatura.numero, valor, desconto, valorLiquido e nfe.fatura.duplicatas[] com numero, dataVencimento, valor e, se desejar, codigoPagamento. Notas de crédito e débito são NFe modelo 55 e usam finalidade 5 ou 6.",
                                "properties": {
                                    "nfe": {
                                        "type": "object",
                                        "properties": {
                                            "finalidade": {
                                                "type": "string",
                                                "enum": ["1", "2", "3", "4", "5", "6"],
                                                "description": "Finalidade da NFe: 1 normal, 2 complementar, 3 ajuste, 4 devolução, 5 nota de crédito e 6 nota de débito.",
                                                "example": "1"
                                            },
                                            "tipoNotaCredito": {
                                                "type": "string",
                                                "enum": ["01", "02", "03", "04", "05", "06"],
                                                "description": "Obrigatório quando finalidade=5. 01 multa/juros; 02 crédito presumido; 03 retorno por recusa ou não localização; 04 redução de valores; 05 transferência por sucessão; 06 retorno por recusa parcial.",
                                                "example": "04"
                                            },
                                            "tipoNotaDebito": {
                                                "type": "string",
                                                "enum": ["01", "02", "03", "04", "05", "06", "07", "08"],
                                                "description": "Obrigatório quando finalidade=6. 01 transferência de crédito de cooperativas; 02 anulação; 03 débitos não processados; 04 multa/juros; 05 transferência por sucessão; 06 pagamento antecipado; 07 perda em estoque; 08 desenquadramento do Simples Nacional.",
                                                "example": "06"
                                            },
                                            "notaFiscalReferencia": {
                                                "type": "string",
                                                "pattern": "^[0-9]{44}$",
                                                "description": "Chave de acesso da NFe referenciada, com 44 dígitos.",
                                                "example": "35260700000000000191550010000000011000000010"
                                            },
                                            "notasFiscaisPagamentoAntecipado": {
                                                "type": "array",
                                                "description": "Chaves de NFe relacionadas ao pagamento antecipado. Use em nota de débito.",
                                                "items": {
                                                    "type": "string",
                                                    "pattern": "^[0-9]{44}$"
                                                }
                                            },
                                            "itens": {
                                                "type": "array",
                                                "items": {
                                                    "type": "object",
                                                    "properties": {
                                                        "cstIbscbs": {
                                                            "type": "string",
                                                            "description": "CST do IBS/CBS.",
                                                            "example": "000"
                                                        },
                                                        "cClassTribIbscbs": {
                                                            "type": "string",
                                                            "description": "Código de classificação tributária do IBS/CBS.",
                                                            "example": "000001"
                                                        },
                                                        "aliquotaIbsUf": {
                                                            "type": "string",
                                                            "description": "Alíquota do IBS estadual/UF.",
                                                            "example": "0.1000"
                                                        },
                                                        "aliquotaIbsMun": {
                                                            "type": "string",
                                                            "description": "Alíquota do IBS municipal.",
                                                            "example": "0.0000"
                                                        },
                                                        "aliquotaCbs": {
                                                            "type": "string",
                                                            "description": "Alíquota da CBS federal.",
                                                            "example": "0.9000"
                                                        },
                                                        "baseCalculoIbscbs": {
                                                            "type": "string",
                                                            "description": "Base de cálculo do IBS/CBS no item. Quando omitida, é usado o valor total do produto.",
                                                            "example": "20.00"
                                                        },
                                                        "valorIbsUf": {
                                                            "type": "string",
                                                            "description": "Valor do IBS estadual/UF. Quando omitido, é calculado pela base e aliquotaIbsUf.",
                                                            "example": "0.02"
                                                        },
                                                        "valorIbsMun": {
                                                            "type": "string",
                                                            "description": "Valor do IBS municipal. Quando omitido, é calculado pela base e aliquotaIbsMun.",
                                                            "example": "0.00"
                                                        },
                                                        "valorCbs": {
                                                            "type": "string",
                                                            "description": "Valor da CBS. Quando omitido, é calculado pela base e aliquotaCbs.",
                                                            "example": "0.18"
                                                        },
                                                        "ibscbsManual": {
                                                            "type": "string",
                                                            "description": "Use \"1\" para informar manualmente os campos de IBS/CBS do item; use \"0\" para seguir o cálculo/regra padrão do emissor.",
                                                            "example": "0"
                                                        },
                                                        "documentoFiscalReferenciado": {
                                                            "type": "object",
                                                            "description": "Documento fiscal vinculado especificamente ao item.",
                                                            "properties": {
                                                                "chaveAcesso": {
                                                                    "type": "string",
                                                                    "pattern": "^[0-9]{44}$",
                                                                    "description": "Chave de acesso do documento fiscal, com 44 dígitos."
                                                                },
                                                                "numeroItem": {
                                                                    "type": "integer",
                                                                    "minimum": 1,
                                                                    "description": "Número do item referenciado no documento fiscal."
                                                                }
                                                            }
                                                        }
                                                    },
                                                    "additionalProperties": true
                                                }
                                            }
                                        }
                                    }
                                },
                                "additionalProperties": true
                            },
                            "examples": {
                                "nfeSimples": {
                                    "summary": "Exemplo simples de NFe",
                                    "value": {
                                        "acao": "emitir",
                                        "modeloDocumento": "nfe",
                                        "certificadoDigital": "conteudo_do_certificado_a1_em_hexadecimal",
                                        "senhaCertificadoDigital": "sua_senha",
                                        "ambiente": "2",
                                        "modelo": "55",
                                        "ufEmitente": "TO",
                                        "nfe": {
                                            "empresa": {
                                                "cnpj": "00000000000191",
                                                "inscricaoEstadual": "123456789",
                                                "razaoSocial": "COMERCIAL EXEMPLO LTDA",
                                                "nomeFantasia": "COMERCIAL EXEMPLO",
                                                "telefone": "63900000000",
                                                "email": "financeiro@exemplo.com.br",
                                                "logradouro": "Rua das Flores",
                                                "numero": "100",
                                                "complemento": "",
                                                "bairro": "Centro",
                                                "municipio": "ARAGUAINA - TO",
                                                "codigoMunicipio": "170210",
                                                "uf": "TO",
                                                "cep": "77800000",
                                                "codigoRegimeTributario": "1",
                                                "tipoAtividade": "3",
                                                "serie": "2",
                                                "idCodigoSegurancaContribuinte": "",
                                                "codigoSegurancaContribuinte": "",
                                                "contingencia": "nao",
                                                "informacaoComplementar": ""
                                            },
                                            "cliente": {
                                                "cnpj": "",
                                                "cpf": "12345678909",
                                                "inscricaoEstadual": "",
                                                "razaoSocial": "João da Silva",
                                                "nomeFantasia": "",
                                                "consumidorFinal": "1",
                                                "indicadorIEdestinatario": "9",
                                                "telefone": "11900000000",
                                                "email": "cliente@exemplo.com.br",
                                                "logradouro": "Av. Brasil",
                                                "numero": "500",
                                                "complemento": "",
                                                "bairro": "Vila Nova",
                                                "municipio": "ARAGUAINA - TO",
                                                "codigoMunicipio": "170210",
                                                "codigoPais": "1058",
                                                "nomePais": "Brasil",
                                                "uf": "TO",
                                                "cep": "77800001"
                                            },
                                            "indicativoIntermediador": "0",
                                            "numeroNotaEmitir": "55",
                                            "codigoNumerico": "68158475",
                                            "dataSaida": "2026-03-27 12:00:00",
                                            "dataEmissao": "2026-03-27 12:00:00",
                                            "modelo": "55",
                                            "ambiente": "2",
                                            "tipo": "1",
                                            "frete": "9",
                                            "finalidade": "1",
                                            "informacaoComplementar": "teste de informacoes complementares (cadastro da empresa...)",
                                            "notaFiscalReferencia": "",
                                            "naturezaOperacao": "Venda de Produtos ou Servicos",
                                            "numeroVenda": "",
                                            "fatura": {
                                                "numero": "1",
                                                "valor": "20.00",
                                                "desconto": "0.00",
                                                "valorLiquido": "20.00",
                                                "duplicatas": [
                                                    {
                                                        "numero": "001",
                                                        "dataVencimento": "2026-04-10",
                                                        "valor": "20.00",
                                                        "codigoPagamento": "15"
                                                    }
                                                ]
                                            },
                                            "pagamento": {
                                                "troco": 0,
                                                "detalhamento": [
                                                    {
                                                        "tipo": "15",
                                                        "valor": 20,
                                                        "indicadorPagamento": "1"
                                                    }
                                                ]
                                            },
                                            "responsavelTecnico": {
                                                "cnpj": "",
                                                "contato": "",
                                                "email": "",
                                                "fone": "",
                                                "idCSRT": "",
                                                "CSRT": ""
                                            },
                                            "itens": [
                                                {
                                                    "numeroPedido": null,
                                                    "numeroItemPedido": null,
                                                    "desconto": "0.00000000",
                                                    "frete": "0.00000000",
                                                    "seguro": "0.00000000",
                                                    "outro": "0.00000000",
                                                    "quantidade": "1.00000000",
                                                    "valorUnitario": "20.00000000",
                                                    "valorTotal": "20.00",
                                                    "informacaoAdicional": "",
                                                    "ncmProduto": "07099911",
                                                    "cest": "",
                                                    "tipoItem": "00",
                                                    "eanProduto": "2005965311527",
                                                    "codigoProduto": "1",
                                                    "nomeProduto": "Produto",
                                                    "cfop": "5102",
                                                    "unidadeMedidaProduto": "UNID",
                                                    "origemProduto": "0",
                                                    "icmsCst": "102",
                                                    "pisCst": "8",
                                                    "pisAliquota": "0.65",
                                                    "cofinsCst": "8",
                                                    "cofinsAliquota": "3.0",
                                                    "cstIbscbs": "000",
                                                    "cClassTribIbscbs": "000001",
                                                    "aliquotaIbsUf": "0.1000",
                                                    "aliquotaIbsMun": "0.0000",
                                                    "aliquotaCbs": "0.9000",
                                                    "baseCalculoIbscbs": "20.00",
                                                    "valorIbsUf": "0.02",
                                                    "valorIbsMun": "0.00",
                                                    "valorCbs": "0.18",
                                                    "ibscbsManual": "0",
                                                    "federaisRetido": "nao",
                                                    "aliquotaInss": "0.0000",
                                                    "aliquotaIrrf": "0.0000",
                                                    "aliquotaCsll": "0.0000",
                                                    "codigoAnp": "",
                                                    "pGLP": "0.0000",
                                                    "pGNn": "0.0000",
                                                    "pGNi": "0.0000",
                                                    "vPart": "0.00",
                                                    "ufAnp": "",
                                                    "indicadorImportacaoOrigemCombustivel": "",
                                                    "codigoUfOrigemCombustivel": "",
                                                    "percentualOrigemCombustivel": "0.0000"
                                                }
                                            ]
                                        }
                                    }
                                },
                                "nfceSimples": {
                                    "summary": "Exemplo simples de NFCe",
                                    "value": {
                                        "acao": "emitir",
                                        "modeloDocumento": "nfe",
                                        "certificadoDigital": "conteudo_do_certificado_a1_em_hexadecimal",
                                        "senhaCertificadoDigital": "sua_senha",
                                        "ambiente": "2",
                                        "modelo": "65",
                                        "ufEmitente": "TO",
                                        "idCsc": "1",
                                        "csc": "SEU_CODIGO_DE_SEGURANCA_DO_CONTRIBUINTE",
                                        "nfe": {
                                            "empresa": {
                                                "cnpj": "00000000000191",
                                                "inscricaoEstadual": "123456789",
                                                "telefone": "63900000000",
                                                "email": "financeiro@exemplo.com.br",
                                                "municipio": "ARAGUAINA - TO",
                                                "codigoMunicipio": "170210",
                                                "uf": "TO",
                                                "tipoAtividade": "3",
                                                "serie": "2",
                                                "idCodigoSegurancaContribuinte": "00001",
                                                "codigoSegurancaContribuinte": "234134234124123423412344123",
                                                "contingencia": "nao",
                                                "razaoSocial": "COMERCIAL EXEMPLO LTDA",
                                                "nomeFantasia": "COMERCIAL EXEMPLO",
                                                "logradouro": "Rua das Flores",
                                                "numero": "100",
                                                "complemento": "",
                                                "bairro": "Centro",
                                                "cep": "77800000",
                                                "codigoRegimeTributario": "1",
                                                "informacaoComplementar": "",
                                                "logomarca": ""
                                            },
                                            "cliente": {
                                                "cnpj": "",
                                                "cpf": "12345678909",
                                                "inscricaoEstadual": "",
                                                "consumidorFinal": "1",
                                                "indicadorIEdestinatario": "9",
                                                "telefone": "11900000000",
                                                "email": "cliente@exemplo.com.br",
                                                "logradouro": "Av. Brasil",
                                                "numero": "500",
                                                "complemento": "",
                                                "bairro": "Vila Nova",
                                                "codigoMunicipio": "170210",
                                                "municipio": "ARAGUAINA - TO",
                                                "codigoPais": "1058",
                                                "nomePais": "Brasil",
                                                "uf": "TO",
                                                "razaoSocial": "João da Silva",
                                                "nomeFantasia": "",
                                                "cep": "77800001"
                                            },
                                            "indicativoIntermediador": "0",
                                            "numeroNotaEmitir": "55",
                                            "codigoNumerico": "68158475",
                                            "dataSaida": "2026-03-27 12:00:00",
                                            "dataEmissao": "2026-03-27 12:00:00",
                                            "modelo": "65",
                                            "ambiente": "2",
                                            "tipo": "1",
                                            "frete": "9",
                                            "finalidade": "1",
                                            "informacaoComplementar": "teste de informacoes complementares (cadastro da empresa...)",
                                            "notaFiscalReferencia": "",
                                            "naturezaOperacao": "Venda de Produtos ou Servicos",
                                            "numeroVenda": "",
                                            "responsavelTecnico": {
                                                "cnpj": "",
                                                "contato": "",
                                                "email": "",
                                                "fone": "",
                                                "idCSRT": "",
                                                "CSRT": ""
                                            },
                                            "itens": [
                                                {
                                                    "numeroPedido": null,
                                                    "numeroItemPedido": null,
                                                    "desconto": "0.00000000",
                                                    "frete": "0.00000000",
                                                    "outro": "0.00000000",
                                                    "quantidade": "1.00000000",
                                                    "valorUnitario": "20.00000000",
                                                    "valorTotal": "20.00",
                                                    "informacaoAdicional": "",
                                                    "ncmProduto": "07099911",
                                                    "cest": "",
                                                    "tipoItem": "00",
                                                    "eanProduto": "2005965311527",
                                                    "codigoProduto": "1",
                                                    "nomeProduto": "Produto",
                                                    "cfop": "5102",
                                                    "unidadeMedidaProduto": "UNID",
                                                    "origemProduto": "0",
                                                    "icmsCst": "102",
                                                    "pisCst": "8",
                                                    "pisAliquota": "0.65",
                                                    "cofinsCst": "8",
                                                    "cofinsAliquota": "3.0",
                                                    "cstIbscbs": "000",
                                                    "cClassTribIbscbs": "000001",
                                                    "aliquotaIbsUf": "0.1000",
                                                    "aliquotaIbsMun": "0.0000",
                                                    "aliquotaCbs": "0.9000",
                                                    "baseCalculoIbscbs": "20.00",
                                                    "valorIbsUf": "0.02",
                                                    "valorIbsMun": "0.00",
                                                    "valorCbs": "0.18",
                                                    "ibscbsManual": "0",
                                                    "federaisRetido": "nao",
                                                    "aliquotaInss": "0.0000",
                                                    "aliquotaIrrf": "0.0000",
                                                    "aliquotaCsll": "0.0000"
                                                }
                                            ]
                                        }
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Sucesso",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/RespostaSucesso"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "API Key ausente ou inválida"
                    },
                    "422": {
                        "description": "Erro",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/RespostaErro"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/api/v1/nfe/gerar-pdf": {
            "post": {
                "summary": "Gerar PDF da NFe/NFCe",
                "description": "Gera o PDF (DANFE) a partir do XML autorizado da NFe ou NFCe. Envie xml em hexadecimal ou como XML texto. Opcionalmente informe modelo = \"55\" para NFe ou \"65\" para NFCe. Esta ação não incrementa quantidade de notas emitidas e não consome franquia de emissão; quando houver sucesso, apenas ativa o CNPJ emitente no mês para a cobrança mensal configurada por CNPJ.",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "xml"
                                ],
                                "properties": {
                                    "xml": {
                                        "type": "string",
                                        "description": "Conteúdo do XML autorizado em hexadecimal ou XML texto."
                                    },
                                    "modelo": {
                                        "type": "string",
                                        "description": "Modelo opcional do documento: 55 para NFe ou 65 para NFCe.",
                                        "enum": [
                                            "55",
                                            "65"
                                        ]
                                    }
                                }
                            },
                            "example": {
                                "xml": "3C3F786D6C2076657273696F6E3D22312E3022...",
                                "modelo": "55"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "PDF gerado com sucesso",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/RespostaSucesso"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "API Key ausente ou inválida"
                    },
                    "422": {
                        "description": "Erro",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/RespostaErro"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/api/v1/nfe/consultar-notas": {
            "post": {
                "summary": "Consultar NFe recebidas",
                "description": "Consulta a distribuicao de NFes destinadas ao CNPJ informado via DF-e. Esta consulta usa producao por padrao. Campos: cnpj, certificadoDigital, senhaCertificadoDigital, ufAutor e ultimoNsu opcional.",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object"
                            },
                            "example": {
                                "cnpj": "00000000000191",
                                "certificadoDigital": "conteudo_do_certificado_a1_em_hexadecimal",
                                "senhaCertificadoDigital": "sua_senha",
                                "ufAutor": "TO",
                                "ultimoNsu": "0"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Sucesso",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/RespostaConsultaDistribuicaoNfe"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "API Key ausente ou inválida"
                    },
                    "422": {
                        "description": "Erro",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/RespostaErro"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/api/v1/nfe/cancelar": {
            "post": {
                "summary": "Cancelar NFe / NFCe",
                "description": "Cancela NFe ou NFCe já autorizada. Campos: chave, protocolo, justificativa (mín. 15 caracteres), certificadoDigital, senhaCertificadoDigital, ambiente, modelo, ufEmitente.",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object"
                            },
                            "example": {
                                "acao": "cancelar",
                                "modeloDocumento": "nfe",
                                "chave": "35260218612608000132550020000000031369409922",
                                "protocolo": "135260000368176",
                                "justificativa": "Nota fiscal emitida com erro nos valores",
                                "certificadoDigital": "conteudo_hex_certificado_a1",
                                "senhaCertificadoDigital": "sua_senha",
                                "ambiente": "2",
                                "modelo": "55",
                                "ufEmitente": "SP"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Sucesso",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/RespostaSucesso"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "API Key ausente ou inválida"
                    },
                    "422": {
                        "description": "Erro",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/RespostaErro"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/api/v1/nfe/carta-correcao": {
            "post": {
                "summary": "Carta de correção (CCe)",
                "description": "Registra carta de correção eletrônica para NFe. Campos: chave, numeroCorrecao, textoCorrecao, certificadoDigital, senhaCertificadoDigital, ambiente, modelo, ufEmitente.",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object"
                            },
                            "example": {
                                "acao": "cartaCorrecao",
                                "modeloDocumento": "nfe",
                                "chave": "35260118612608000132550020000000011121595597",
                                "numeroCorrecao": "1",
                                "textoCorrecao": "Correção do valor do frete informado na nota fiscal.",
                                "certificadoDigital": "conteudo_hex_certificado_a1",
                                "senhaCertificadoDigital": "sua_senha",
                                "ambiente": "2",
                                "modelo": "55",
                                "ufEmitente": "SP"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Sucesso",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/RespostaSucesso"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "API Key ausente ou inválida"
                    },
                    "422": {
                        "description": "Erro",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/RespostaErro"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/api/v1/nfe/inutilizar-numeracao": {
            "post": {
                "summary": "Inutilizar numeração",
                "description": "Inutiliza faixa de numeração de NFe/NFCe. Campos: cnpj, serie, ano, numeroInicial, numeroFinal, justificativa (mín. 15), certificadoDigital, senhaCertificadoDigital, ambiente, modelo, ufEmitente.",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object"
                            },
                            "example": {
                                "acao": "inutilizarNumeracao",
                                "modeloDocumento": "nfe",
                                "cnpj": "00000000000191",
                                "serie": "2",
                                "ano": "2026",
                                "numeroInicial": "4",
                                "numeroFinal": "4",
                                "justificativa": "Números não utilizados na emissão",
                                "certificadoDigital": "conteudo_hex_certificado_a1",
                                "senhaCertificadoDigital": "sua_senha",
                                "ambiente": "2",
                                "modelo": "55",
                                "ufEmitente": "SP"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Sucesso",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/RespostaSucesso"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "API Key ausente ou inválida"
                    },
                    "422": {
                        "description": "Erro",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/RespostaErro"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/api/v1/cte/emitir": {
            "post": {
                "summary": "Emitir CTe",
                "description": "Emite CTe a partir de payload estruturado, no mesmo padrão usado para NFe/NFCe. Envie cte com empresa, cliente, remetente, destinatário, valores, documentos referenciados e dados fiscais; o motor de integração do Geranet NFe gera o XML e transmite o documento.",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object"
                            },
                            "example": {
                                "acao": "emitir",
                                "modeloDocumento": "cte",
                                "certificadoDigital": "conteudo_do_certificado_a1_em_hexadecimal",
                                "senhaCertificadoDigital": "sua_senha",
                                "ambiente": "2",
                                "ufEmitente": "MG",
                                "cte": {
                                    "empresa": {
                                        "cnpj": "12345678000190",
                                        "cpf": "",
                                        "inscricaoEstadual": "0035523040053",
                                        "telefone": "3491657777",
                                        "email": "contato@empresaexemplo.com.br",
                                        "municipio": "UBERABA - MG",
                                        "codigoMunicipio": "3170107",
                                        "uf": "MG",
                                        "rntrc": "53960444",
                                        "cteSerie": "1",
                                        "serie": "1",
                                        "versaoNfe": "4.0",
                                        "razaoSocial": "EXEMPLO TRANSPORTES LTDA",
                                        "nomeFantasia": "EXEMPLO TRANSPORTES",
                                        "logradouro": "Rua Artur Machado",
                                        "numero": "40",
                                        "complemento": "",
                                        "bairro": "Centro",
                                        "cep": "38010020",
                                        "codigoRegimeTributario": "1"
                                    },
                                    "cliente": {
                                        "cnpj": "98765432000198",
                                        "cpf": "",
                                        "inscricaoEstadual": "083675558",
                                        "indicadorIE": "1",
                                        "telefone": "2799932364",
                                        "email": "comercial@clienteexemplo.com",
                                        "logradouro": "Rua Alecrim",
                                        "numero": "312",
                                        "complemento": "GALPAO",
                                        "bairro": "Jardim Asteca",
                                        "codigoMunicipio": "3205200",
                                        "municipio": "VILA VELHA - ES",
                                        "codigoPais": "1058",
                                        "nomePais": "Brasil",
                                        "uf": "ES",
                                        "razaoSocial": "CLIENTE EXEMPLO COMERCIO E SERVICOS LTDA",
                                        "nomeFantasia": "CLIENTE EXEMPLO",
                                        "cep": "29104455"
                                    },
                                    "remetente": {
                                        "cnpj": "45678912000134",
                                        "cpf": "",
                                        "inscricaoEstadual": "0010812110951",
                                        "telefone": "3433261900",
                                        "email": "fiscal@remetenteexemplo.com.br",
                                        "logradouro": "Area Rural",
                                        "numero": "S/N",
                                        "complemento": "KM 151 FAZENDA EXEMPLO",
                                        "bairro": "Area Rural de Uberaba",
                                        "codigoMunicipio": "3170107",
                                        "municipio": "UBERABA - MG",
                                        "codigoPais": "1058",
                                        "nomePais": "Brasil",
                                        "uf": "MG",
                                        "razaoSocial": "REMETENTE AGROINDUSTRIA LTDA",
                                        "nomeFantasia": "",
                                        "cep": "38099899"
                                    },
                                    "destinatario": {
                                        "cnpj": "45678912000134",
                                        "cpf": "",
                                        "inscricaoEstadual": "0010812110951",
                                        "telefone": "3433191300",
                                        "email": "contabilidade@remetenteexemplo.com.br",
                                        "logradouro": "Area Rural",
                                        "numero": "S/N",
                                        "complemento": "",
                                        "bairro": "Area Rural de Uberaba",
                                        "codigoMunicipio": "3170206",
                                        "municipio": "UBERLANDIA - MG",
                                        "codigoPais": "1058",
                                        "nomePais": "Brasil",
                                        "uf": "MG",
                                        "razaoSocial": "DESTINATARIO EXEMPLO LTDA",
                                        "nomeFantasia": "",
                                        "cep": "38400000"
                                    },
                                    "codigoMunicipioFim": "3170206",
                                    "municipioFim": "UBERLANDIA - MG",
                                    "cfopPrincipal": "5353",
                                    "nomeProdutoPredominante": "AGUA MINERAL",
                                    "tomador": "0",
                                    "numeroNotaEmitir": "128",
                                    "codigoNumerico": "65703069",
                                    "dataSaida": "2026-06-16 08:00:00",
                                    "dataEntrega": "2026-06-16 18:00:00",
                                    "dataEmissao": "2026-06-16 08:00:00",
                                    "modelo": "57",
                                    "ambiente": "2",
                                    "tipo": "1",
                                    "tipoServico": "0",
                                    "finalidade": "0",
                                    "informacaoAdicionalFisco": "",
                                    "informacaoComplementar": "Transporte de carga conforme documentos referenciados.",
                                    "naturezaOperacao": "Prestacao de servico de transporte",
                                    "valorCarga": "2400.00",
                                    "quantidadeCarga": "2400.0000",
                                    "unidadeMedida": "01",
                                    "valorTotal": "800.00",
                                    "itensFrete": [
                                        {
                                            "descricao": "Frete",
                                            "valorUnitario": "800.00"
                                        }
                                    ],
                                    "documentos": [
                                        {
                                            "chave": "31250410208566001139550010000175421189805510",
                                            "tipo": "55",
                                            "descricao": "NFe",
                                            "numero": "17542",
                                            "dataEmissao": "2026-06-16",
                                            "valor": "2400.00"
                                        }
                                    ],
                                    "impostos": {
                                        "situacaoTributaria": "102",
                                        "reducaoBaseCalculoIcms": "0.0000",
                                        "aliquotaICMS": "0.0000"
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Sucesso",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/RespostaSucesso"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "API Key ausente ou inválida"
                    },
                    "422": {
                        "description": "Erro",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/RespostaErro"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/api/v1/cte/consultar-notas": {
            "post": {
                "summary": "Consultar CTe recebidos",
                "description": "Consulta a distribuicao de CTes destinados ao CNPJ informado via DF-e. Esta consulta usa producao por padrao. Campos: cnpj, certificadoDigital, senhaCertificadoDigital, ufAutor e ultimoNsu opcional.",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object"
                            },
                            "example": {
                                "cnpj": "00000000000191",
                                "certificadoDigital": "conteudo_do_certificado_a1_em_hexadecimal",
                                "senhaCertificadoDigital": "sua_senha",
                                "ufAutor": "TO",
                                "ultimoNsu": "0"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Sucesso",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/RespostaConsultaDistribuicaoCte"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "API Key ausente ou inválida"
                    },
                    "422": {
                        "description": "Erro",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/RespostaErro"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/api/v1/cte/cancelar": {
            "post": {
                "summary": "Cancelar CTe",
                "description": "Cancela um CTe autorizado. Campos obrigatórios: chave, protocolo, justificativa, certificadoDigital, senhaCertificadoDigital, ambiente e ufEmitente.",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object"
                            },
                            "example": {
                                "acao": "cancelar",
                                "modeloDocumento": "cte",
                                "certificadoDigital": "conteudo_do_certificado_a1_em_hexadecimal",
                                "senhaCertificadoDigital": "sua_senha",
                                "ambiente": "2",
                                "ufEmitente": "TO",
                                "chave": "17260612345678000123570010000076351000076350",
                                "protocolo": "317260000123456",
                                "justificativa": "Cancelamento por emissão em duplicidade."
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Sucesso",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/RespostaSucesso"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "API Key ausente ou inválida"
                    },
                    "422": {
                        "description": "Erro",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/RespostaErro"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/api/v1/mdfe/emitir": {
            "post": {
                "summary": "Emitir MDFE",
                "description": "Emite MDF-e a partir de payload estruturado, no mesmo padrão usado para NFe/NFCe. Envie mdfe com empresa, carregamento, descarga, veículos, motorista, documentos transportados, carga e dados de pagamento; o motor de integração do Geranet NFe gera o XML e transmite o manifesto.",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object"
                            },
                            "example": {
                                "acao": "emitir",
                                "modeloDocumento": "mdfe",
                                "certificadoDigital": "conteudo_do_certificado_a1_em_hexadecimal",
                                "senhaCertificadoDigital": "sua_senha",
                                "ambiente": "2",
                                "ufEmitente": "MT",
                                "mdfe": {
                                    "motorista": {
                                        "nome": "MAURIVAN GABRIEL ROPKE SCHUSTER",
                                        "cpf": "12345678901"
                                    },
                                    "veiculo1": {
                                        "codigo": "1",
                                        "placa": "LWX2466",
                                        "renavam": "00635837854",
                                        "tara": "0",
                                        "capacidadeKg": "0",
                                        "capacidadeM3": "0",
                                        "tipoRodado": "6",
                                        "tipoCarroceria": "0",
                                        "uf": "MT"
                                    },
                                    "veiculo2": {
                                        "codigo": "2",
                                        "placa": "JZI8187",
                                        "renavam": "",
                                        "tara": "0",
                                        "capacidadeKg": "0",
                                        "capacidadeM3": "0",
                                        "tipoCarroceria": "0",
                                        "uf": "MT"
                                    },
                                    "empresa": {
                                        "cnpj": "",
                                        "cpf": "42543460187",
                                        "inscricaoEstadual": "137407700",
                                        "telefone": "66999076428",
                                        "email": "empresa@exemplo.com.br",
                                        "municipio": "ITAUBA - MT",
                                        "codigoMunicipio": "5104559",
                                        "uf": "MT",
                                        "rntrc": "",
                                        "mdfeSerie": "1",
                                        "serie": "1",
                                        "versaoNfe": "4.0",
                                        "razaoSocial": "GERSON GENIR SCHUSTER",
                                        "nomeFantasia": "FAZENDA ARARA AZUL",
                                        "logradouro": "GLEBA ITAUBA",
                                        "numero": "S/N",
                                        "complemento": "FAZENDA ARARA AZUL",
                                        "bairro": "ZONA RURAL",
                                        "cep": "78510000",
                                        "codigoRegimeTributario": "3"
                                    },
                                    "cliente": {
                                        "cnpj": "",
                                        "cpf": "",
                                        "inscricaoEstadual": "",
                                        "razaoSocial": "",
                                        "nomeFantasia": "",
                                        "telefone": "",
                                        "email": "",
                                        "logradouro": "",
                                        "numero": "",
                                        "complemento": "",
                                        "bairro": "",
                                        "codigoMunicipio": "",
                                        "municipio": "",
                                        "codigoPais": "1058",
                                        "nomePais": "Brasil",
                                        "uf": "",
                                        "cep": ""
                                    },
                                    "carregamento": {
                                        "codigoMunicipio": "5104559",
                                        "municipio": "ITAUBA - MT",
                                        "uf": "MT"
                                    },
                                    "descarga": {
                                        "codigoMunicipio": "5106190",
                                        "municipio": "NOVA SANTA HELENA - MT",
                                        "uf": "MT"
                                    },
                                    "tipoEmitenteMdfe": "2",
                                    "numeroNotaEmitir": "1",
                                    "codigoNumerico": "92261144",
                                    "dataEmissao": "2026-06-16 08:00:00",
                                    "modelo": "58",
                                    "ambiente": "2",
                                    "informacaoAdicionalFisco": "",
                                    "informacaoComplementar": "Manifesto emitido para transporte de carga propria.",
                                    "valorCarga": "1.00",
                                    "quantidadeCarga": "1000.0000",
                                    "unidadeMedida": "01",
                                    "valorTotal": "1.00",
                                    "nomeProdutoPredominante": "PRODUTO AGROPECUARIO",
                                    "ncmProdutoPredominante": "01010101",
                                    "itens": [
                                        {
                                            "numero": "160",
                                            "modelo": "55",
                                            "ufDescargaItem": "5106190",
                                            "valor": "1.00",
                                            "peso": "1000.0000",
                                            "numeroAverbacao": "",
                                            "chave": "51210100042543460187559200000001601706702637"
                                        }
                                    ],
                                    "percursos": [
                                        {
                                            "estado": "MT"
                                        }
                                    ],
                                    "dadosPagamento": {
                                        "xNome": "GERSON GENIR SCHUSTER",
                                        "CNPJ": "",
                                        "CPF": "42543460187",
                                        "Comp": [
                                            {
                                                "tpComp": "04",
                                                "vComp": "1.00"
                                            }
                                        ],
                                        "vContrato": "1.00",
                                        "indPag": "0",
                                        "vAdiant": "0.00",
                                        "infPrazo": [
                                            {
                                                "nParcela": "1",
                                                "dVenc": "2026-06-16",
                                                "vParcela": "1.00"
                                            }
                                        ],
                                        "infBanc": {
                                            "CNPJIPEF": "",
                                            "codAgencia": "",
                                            "codBanco": ""
                                        }
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Sucesso",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/RespostaSucesso"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "API Key ausente ou inválida"
                    },
                    "422": {
                        "description": "Erro",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/RespostaErro"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/api/v1/mdfe/cancelar": {
            "post": {
                "summary": "Cancelar MDFE",
                "description": "Cancela um MDF-e autorizado. Campos obrigatórios: chave, protocolo, justificativa, certificadoDigital, senhaCertificadoDigital, ambiente e ufEmitente.",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object"
                            },
                            "example": {
                                "acao": "cancelar",
                                "modeloDocumento": "mdfe",
                                "certificadoDigital": "conteudo_do_certificado_a1_em_hexadecimal",
                                "senhaCertificadoDigital": "sua_senha",
                                "ambiente": "2",
                                "ufEmitente": "TO",
                                "chave": "17260612345678000123580010000076351000076350",
                                "protocolo": "317260000123456",
                                "justificativa": "Cancelamento por erro operacional na montagem."
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Sucesso",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/RespostaSucesso"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "API Key ausente ou inválida"
                    },
                    "422": {
                        "description": "Erro",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/RespostaErro"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/api/v1/mdfe/encerrar": {
            "post": {
                "summary": "Encerrar MDFE",
                "description": "Encerra um MDF-e autorizado. Campos obrigatórios: chave, protocolo, certificadoDigital, senhaCertificadoDigital, ambiente, ufEmitente, ufEncerramento, codigoMunicipioEncerramento e dataHora.",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object"
                            },
                            "example": {
                                "acao": "encerrar",
                                "modeloDocumento": "mdfe",
                                "certificadoDigital": "conteudo_do_certificado_a1_em_hexadecimal",
                                "senhaCertificadoDigital": "sua_senha",
                                "ambiente": "2",
                                "ufEmitente": "TO",
                                "ufEncerramento": "TO",
                                "codigoMunicipioEncerramento": "1702109",
                                "dataHora": "2026-06-15 14:30:00",
                                "chave": "17260612345678000123580010000076351000076350",
                                "protocolo": "317260000123456"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Sucesso",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/RespostaSucesso"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "API Key ausente ou inválida"
                    },
                    "422": {
                        "description": "Erro",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/RespostaErro"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/api/v1/nfse/emitir": {
            "post": {
                "summary": "Emitir NFSe",
                "description": "Emite Nota Fiscal de Serviço. Corpo: acao, modeloDocumento, certificadoDigital (hex), senhaCertificadoDigital, prestador, tomador, servico (e demais campos conforme provedor do município). Em servico, itemListaServico, codigoServicoNacional e codigoTributacaoMunicipio representam códigos diferentes e devem ser informados separadamente quando o município exigir. Para Petrolina/PE (provedor EL 2.04), use itemListaServico com 4 dígitos, codigoServicoNacional com 6 dígitos e codigoTributacaoMunicipio conforme o cadastro municipal; omita codigoNBS. Para provedores que validam o nome do município do tomador, envie tomador.nomeMunicipio junto com tomador.municipio e tomador.uf. Quando simplesNacional = \"1\", envie também dataOpcaoSimples na raiz do payload, em dd/mm/yyyy ou yyyy-mm-dd. Em nova tentativa de emissão, avance numeroLote e numeroRps. Use padraoNacional: \"sim\" para emissão nacional. Para IBS/CBS (Reforma Tributária), use servico.tributacao.ibscbs com finNFSe, cst, indFinal, indDest, indOpeOne, cIndOp (código de indicação de operação, 6 dígitos), ibsEstadual, ibsMunicipal e cbsFederal. Em Conam/Etransparência, mantenha coerência entre cIndOp e indOpeOne. Schema de referência: components/schemas/NfseServicoTributacaoIbscbs.",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "description": "Payload aceito pela API. O objeto servico.tributacao.ibscbs (IBS/CBS) pode incluir finNFSe, cIndOp, indFinal, indDest e indOpeOne; ver NfseServicoTributacaoIbscbs. Para provedores que exigem o nome do município do tomador, envie tomador.nomeMunicipio. Quando simplesNacional = \"1\", envie dataOpcaoSimples na raiz do payload. Em Conam/Etransparência, envie cIndOp e indOpeOne coerentes; exemplo validado: cIndOp = \"100401\" com indOpeOne = \"0\".",
                                "properties": {
                                    "servico": {
                                        "type": "object",
                                        "properties": {
                                            "itemListaServico": {
                                                "type": "string",
                                                "description": "Item da lista de serviços no formato exigido pelo município. Não presuma que seja igual ao código nacional ou ao código de tributação municipal.",
                                                "example": "0107"
                                            },
                                            "codigoServicoNacional": {
                                                "type": "string",
                                                "description": "Código nacional do serviço. Informe separadamente de itemListaServico quando os códigos forem diferentes.",
                                                "example": "010701"
                                            },
                                            "codigoTributacaoMunicipio": {
                                                "type": "string",
                                                "description": "Código de tributação cadastrado pelo município.",
                                                "example": "0107"
                                            },
                                            "codigoCnae": {
                                                "type": "string",
                                                "description": "Código CNAE relacionado ao serviço.",
                                                "example": "6209100"
                                            },
                                            "codigoNBS": {
                                                "type": "string",
                                                "description": "Código NBS quando aceito ou exigido pelo provedor. Para Petrolina/PE no provedor EL 2.04, omita este campo.",
                                                "example": "125060000"
                                            },
                                            "tributacao": {
                                                "type": "object",
                                                "properties": {
                                                    "ibscbs": {
                                                        "$ref": "#/components/schemas/NfseServicoTributacaoIbscbs"
                                                    }
                                                }
                                            }
                                        }
                                    }
                                },
                                "additionalProperties": true
                            },
                            "example": {
                                "acao": "emitir",
                                "modeloDocumento": "nfse",
                                "certificadoDigital": "conteudo_do_certificado_a1_em_hexadecimal",
                                "senhaCertificadoDigital": "sua_senha",
                                "padraoNacional": "sim",
                                "ambiente": "2",
                                "numeroLote": "1",
                                "numeroRps": "1",
                                "serie": "1",
                                "simplesNacional": "1",
                                "dataOpcaoSimples": "28/06/2023",
                                "regimeEspecialTributacao": "1",
                                "tipo": "1",
                                "naturezaOperacao": "1",
                                "incentivadorCultural": "2",
                                "prestador": {
                                    "cnpj": "00000000000191",
                                    "inscricaoMunicipal": "12345",
                                    "razaoSocial": "PRESTADOR EXEMPLO LTDA",
                                    "nomeFantasia": "Exemplo",
                                    "endereco": "Rua Exemplo",
                                    "numero": "100",
                                    "complemento": "",
                                    "bairro": "Centro",
                                    "municipio": "1702109",
                                    "nomeMunicipio": "ARAGUAINA",
                                    "uf": "TO",
                                    "cep": "77800000",
                                    "telefone": "63900000000",
                                    "email": "contato@exemplo.com.br"
                                },
                                "tomador": {
                                    "cpfCnpj": "12345678909",
                                    "inscricaoMunicipal": "",
                                    "razaoSocial": "João da Silva",
                                    "endereco": "Av. Brasil",
                                    "numero": "500",
                                    "complemento": "",
                                    "bairro": "Vila Nova",
                                    "municipio": "1702109",
                                    "nomeMunicipio": "ARAGUAINA",
                                    "uf": "TO",
                                    "codigoPais": "1058",
                                    "pais": "Brasil",
                                    "cep": "77800001",
                                    "telefone": "11900000000",
                                    "email": "cliente@exemplo.com.br"
                                },
                                "servico": {
                                    "valor": "100.00",
                                    "deducoes": "0.00",
                                    "aliquotaPis": "0.00",
                                    "aliquotaCofins": "0.00",
                                    "inss": "0.00",
                                    "ir": "0.00",
                                    "csll": "0.00",
                                    "issRetido": "2",
                                    "valorIssRetido": "0.00",
                                    "outrasRetencoes": "0.00",
                                    "descontoIncondicionado": "0.00",
                                    "descontoCondicionado": "0.00",
                                    "aliquota": "2.00",
                                    "responsavelRetencao": "4",
                                    "itemListaServico": "01.07",
                                    "codigoServicoNacional": "010701",
                                    "codigoTributacaoMunicipio": "0107",
                                    "codigoLcServ": "0107",
                                    "codigoCnae": "6209100",
                                    "codigoAnexoCnae": "III",
                                    "codigoNBS": "125060000",
                                    "codigoClassificacaoTributaria": "000001",
                                    "discriminacao": "Descrição completa do serviço prestado conforme item da lista de serviços do município.",
                                    "codigoMunicipio": "1702109",
                                    "municipioIncidencia": "1702109",
                                    "descricaoLocalidadeIncidencia": "",
                                    "exigibilidadeISS": "1",
                                    "tributacao": {
                                        "percentualTributosSimplesNacional": "2.00",
                                        "tributacaoMunicipal": {
                                            "tipoImunidade": "0",
                                            "valorAliquota": "2.00"
                                        },
                                        "tributacaoFederal": {
                                            "CST": "49",
                                            "tipoRetencaoPisCofins": "2",
                                            "aliquotaPis": "0.00",
                                            "aliquotaCofins": "0.00",
                                            "valorPis": "0.00",
                                            "valorCofins": "0.00",
                                            "baseCalculoPisCofins": "100.00",
                                            "valorRetencaoCP": "0.00",
                                            "valorRetencaoIRRF": "0.00",
                                            "valorRetencaoCSLL": "0.00"
                                        },
                                        "totaisTributos": {
                                            "percentualTributosFederais": "0.00",
                                            "valorTributosFederais": "0.00",
                                            "percentualTributosEstaduais": "0.00",
                                            "valorTributosEstaduais": "0.00",
                                            "percentualTributosMunicipais": "2.00",
                                            "valorTributosMunicipais": "2.00"
                                        },
                                        "ibscbs": {
                                            "finNFSe": "0",
                                            "cst": "000",
                                            "indFinal": "1",
                                            "indDest": "0",
                                            "indOpeOne": "0",
                                            "cIndOp": "100401",
                                            "ibsEstadual": {
                                                "percentualIbs": "0.10",
                                                "percentualReducaoAliquota": "0.00"
                                            },
                                            "ibsMunicipal": {
                                                "percentualIbs": "0.00",
                                                "percentualReducaoAliquota": "0.00"
                                            },
                                            "cbsFederal": {
                                                "percentualCbs": "0.90",
                                                "percentualReducaoAliquota": "0.00"
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Sucesso",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/RespostaSucesso"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "API Key ausente ou inválida"
                    },
                    "422": {
                        "description": "Erro",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/RespostaErro"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/api/v1/nfse/gerar-pdf": {
            "post": {
                "summary": "Gerar PDF da NFSe",
                "description": "Gera o PDF da NFSe a partir do XML autorizado. Envie xml em hexadecimal ou como XML texto e informe codigoMunicipio com o código IBGE do município do prestador. Esta ação não incrementa quantidade de notas emitidas e não consome franquia de emissão; quando houver sucesso, apenas ativa o CNPJ do prestador no mês para a cobrança mensal configurada por CNPJ.",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "xml",
                                    "codigoMunicipio"
                                ],
                                "properties": {
                                    "codigoMunicipio": {
                                        "type": "string",
                                        "description": "Código IBGE do município do prestador com 7 dígitos."
                                    },
                                    "xml": {
                                        "type": "string",
                                        "description": "Conteúdo do XML autorizado da NFSe em hexadecimal ou XML texto."
                                    }
                                }
                            },
                            "example": {
                                "codigoMunicipio": "3550308",
                                "xml": "3C3F786D6C2076657273696F6E3D22312E3022..."
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "PDF gerado com sucesso",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/RespostaSucesso"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "API Key ausente ou inválida"
                    },
                    "422": {
                        "description": "Erro",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/RespostaErro"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/api/v1/nfse/consultar-notas": {
            "post": {
                "summary": "Consultar NFSe recebidas no portal nacional",
                "description": "Consulta DF-es de NFSe no portal nacional. Envie os dados do prestador, certificado A1 e padraoNacional = \"sim\". A resposta traz a lista de registros e, quando disponível, o XML completo em cada item.",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object"
                            },
                            "example": {
                                "prestador": {
                                    "cnpj": "00000000000191",
                                    "inscricaoMunicipal": "12345",
                                    "razaoSocial": "PRESTADOR EXEMPLO LTDA",
                                    "municipio": "1702109"
                                },
                                "certificadoDigital": "conteudo_do_certificado_a1_em_hexadecimal",
                                "senhaCertificadoDigital": "sua_senha",
                                "padraoNacional": "sim",
                                "ultimoNsu": "0"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Sucesso",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/RespostaConsultaDfeNfse"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "API Key ausente ou inválida"
                    },
                    "422": {
                        "description": "Erro",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/RespostaErro"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/api/v1/nfse/cancelar": {
            "post": {
                "summary": "Cancelar NFSe",
                "description": "Cancela NFSe. Padrão nacional: xml (hex da NFSe), codigoCancelamento, motivoCancelamento, prestador, certificadoDigital, senhaCertificadoDigital.",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object"
                            },
                            "example": {
                                "acao": "cancelar",
                                "modeloDocumento": "nfse",
                                "certificadoDigital": "conteudo_hex_certificado_a1",
                                "senhaCertificadoDigital": "sua_senha",
                                "ambiente": "1",
                                "padraoNacional": "sim",
                                "xml": "conteudo_do_xml_da_nfse_em_hexadecimal",
                                "codigoCancelamento": "2",
                                "motivoCancelamento": "Erro nos valores informados na nota.",
                                "prestador": {
                                    "cnpj": "00000000000191",
                                    "inscricaoMunicipal": "12345",
                                    "endereco": "Rua Exemplo",
                                    "numero": "100",
                                    "complemento": "",
                                    "bairro": "Centro",
                                    "municipio": "1702109",
                                    "nomeMunicipio": "ARAGUAINA",
                                    "uf": "TO",
                                    "cep": "77800000",
                                    "razaoSocial": "PRESTADOR EXEMPLO LTDA",
                                    "nomeFantasia": "Exemplo",
                                    "telefone": "63900000000",
                                    "email": "contato@exemplo.com.br",
                                    "usuario": "",
                                    "senha": "",
                                    "fraseSecreta": "",
                                    "chaveAcesso": ""
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Sucesso",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/RespostaSucesso"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "API Key ausente ou inválida"
                    },
                    "422": {
                        "description": "Erro",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/RespostaErro"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/api/v1/boletos/emitir": {
            "post": {
                "summary": "Emitir boleto por API bancária",
                "description": "Registra um boleto no provedor informado e retorna o PDF gerado no campo pdf, codificado em hexadecimal. Cada título emitido em produção entra no mesmo limite mensal das notas fiscais. Exige o CNPJ do cedente, os dados do primeiro título e as credenciais específicas do banco.",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": { "$ref": "#/components/schemas/PayloadBoletoBancario" },
                            "example": {
                                "ambiente": "1",
                                "provedor": "asaas",
                                "bancoNumero": 461,
                                "cedenteNome": "Empresa Exemplo Ltda",
                                "cnpjcpf": "12345678000190",
                                "credenciais": { "chaveUsuario": "SUA_CHAVE_DO_ASAAS" },
                                "titulos": [{
                                    "numeroDocumento": "PEDIDO-1001",
                                    "dataVencimento": "2030-12-31",
                                    "valor": 5,
                                    "sacadoNome": "Cliente Exemplo",
                                    "sacadoCnpjCpf": "12345678909"
                                }]
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Boleto emitido com PDF em hexadecimal",
                        "content": {
                            "application/json": {
                                "schema": { "$ref": "#/components/schemas/RespostaOperacaoBancaria" },
                                "example": {
                                    "situacao": "sucesso",
                                    "mensagem": "Boleto emitido com sucesso.",
                                    "pdf": "255044462D312E34...",
                                    "dados": {
                                        "boletos": [{
                                            "identificador": "pay_123",
                                            "nossoNumero": "123456789",
                                            "codigoBarras": "",
                                            "linhaDigitavel": "",
                                            "urlPdf": "https://provedor.exemplo/boleto.pdf",
                                            "status": "PENDING",
                                            "pago": false,
                                            "valor": 5
                                        }]
                                    }
                                }
                            }
                        }
                    },
                    "401": { "description": "API Key ausente ou inválida" },
                    "422": { "description": "Dados inválidos ou operação recusada", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RespostaOperacaoBancaria" } } } }
                }
            }
        },
        "/api/v1/boletos/consultar": {
            "post": {
                "summary": "Consultar boletos",
                "description": "Consulta boletos no banco. As consultas são ilimitadas e não geram adicional por operação, mas o uso em produção ativa a mensalidade do CNPJ. Para consultar um título específico, envie titulos[0].nossoNumeroCorrespondente com o identificador retornado na emissão.",
                "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PayloadBoletoBancario" } } } },
                "responses": {
                    "200": { "description": "Consulta concluída", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RespostaOperacaoBancaria" } } } },
                    "401": { "description": "API Key ausente ou inválida" },
                    "422": { "description": "Dados inválidos ou operação recusada", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RespostaOperacaoBancaria" } } } }
                }
            }
        },
        "/api/v1/boletos/cancelar": {
            "post": {
                "summary": "Cancelar boleto pendente",
                "description": "Solicita a baixa de um boleto ainda pendente. Envie titulos[0].nossoNumeroCorrespondente com o identificador retornado na emissão. Títulos pagos não são cancelados por esta rota; eventuais estornos seguem as regras do banco.",
                "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PayloadBoletoBancario" } } } },
                "responses": {
                    "200": { "description": "Cancelamento confirmado", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RespostaOperacaoBancaria" } } } },
                    "401": { "description": "API Key ausente ou inválida" },
                    "422": { "description": "Dados inválidos ou operação recusada", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RespostaOperacaoBancaria" } } } }
                }
            }
        },
        "/api/v1/pix/emitir": {
            "post": {
                "summary": "Criar cobrança PIX imediata",
                "description": "Cria uma cobrança PIX imediata em um PSP suportado. Cada cobrança emitida em produção entra no mesmo limite mensal das notas fiscais. Asaas não está disponível nesta rota porque não faz parte dos PSPs implementados pelo componente PIX da plataforma.",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": { "$ref": "#/components/schemas/PayloadCobrancaPix" },
                            "example": {
                                "ambiente": "2",
                                "provedor": "efibank",
                                "cnpjcpf": "12345678000190",
                                "credenciais": {
                                    "chavePix": "SUA_CHAVE_PIX",
                                    "clienteId": "SEU_CLIENTE_ID",
                                    "clienteSegredo": "SEU_CLIENTE_SEGREDO",
                                    "certificadoPfxHexadecimal": "CONTEUDO_PFX_EM_HEXADECIMAL",
                                    "senhaCertificadoPfx": "SENHA_DO_PFX"
                                },
                                "recebedor": { "nome": "Empresa Exemplo Ltda", "cep": "77800000", "cidade": "Araguaina", "uf": "TO" },
                                "devedor": { "nome": "Cliente Exemplo", "cpfCnpj": "12345678909" },
                                "cobranca": { "valor": 5, "expiracaoSegundos": 3600, "solicitacaoPagador": "Pedido 1001", "permitirAlterarValor": false }
                            }
                        }
                    }
                },
                "responses": {
                    "200": { "description": "Cobrança PIX criada", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RespostaOperacaoBancaria" } } } },
                    "401": { "description": "API Key ausente ou inválida" },
                    "422": { "description": "Dados inválidos ou operação recusada", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RespostaOperacaoBancaria" } } } }
                }
            }
        },
        "/api/v1/pix/consultar": {
            "post": {
                "summary": "Consultar cobrança PIX",
                "description": "Consulta uma cobrança PIX imediata pelo txid. As consultas são ilimitadas e não geram adicional por operação, mas o uso em produção ativa a mensalidade do CNPJ. Reenvie cnpjcpf, provedor, credenciais e dados do recebedor usados na criação.",
                "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PayloadCobrancaPix" } } } },
                "responses": {
                    "200": { "description": "Consulta concluída", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RespostaOperacaoBancaria" } } } },
                    "401": { "description": "API Key ausente ou inválida" },
                    "422": { "description": "Dados inválidos ou operação recusada", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RespostaOperacaoBancaria" } } } }
                }
            }
        },
        "/api/v1/pix/cancelar": {
            "post": {
                "summary": "Cancelar cobrança PIX pendente",
                "description": "Remove uma cobrança PIX imediata ainda pendente pelo txid. Um PIX já pago não é cancelado por esta rota.",
                "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PayloadCobrancaPix" } } } },
                "responses": {
                    "200": { "description": "Cancelamento confirmado", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RespostaOperacaoBancaria" } } } },
                    "401": { "description": "API Key ausente ou inválida" },
                    "422": { "description": "Dados inválidos ou operação recusada", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RespostaOperacaoBancaria" } } } }
                }
            }
        },
        "/api/v1/nfe/manifestar": {
            "post": {
                "summary": "Manifestar NFe recebida",
                "description": "Registra a manifestacao do destinatario para uma NFe recebida. Esta operacao usa producao por padrao. Campos: chave, cnpj, tipoManifestacao, certificadoDigital, senhaCertificadoDigital, ufAutor e justificativa quando tipoManifestacao for 210240.",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object"
                            },
                            "example": {
                                "chave": "35260300000000000000550010000000011000000010",
                                "cnpj": "00000000000191",
                                "tipoManifestacao": "210210",
                                "justificativa": "",
                                "certificadoDigital": "conteudo_do_certificado_a1_em_hexadecimal",
                                "senhaCertificadoDigital": "sua_senha",
                                "ufAutor": "TO"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Sucesso",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/RespostaSucesso"
                                }
                            }
                        }
                    },
                    "401": {
                        "description": "API Key ausente ou invalida"
                    },
                    "422": {
                        "description": "Erro",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/RespostaErro"
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
