{
  "openapi": "3.1.0",
  "info": {
    "title": "NF3 API v1",
    "version": "0.2.0",
    "description": "Cadastros por empresa compartilhados com o painel. Caminhos fiscais /homologation têm equivalentes /production, sujeitos a chave do mesmo ambiente, flag e allowlist de owner da API. Defaults de produção false/[]. Revisão, confirmação explícita e políticas fiscais canônicas permanecem obrigatórias. Nenhum reenvio ou sincronização automática."
  },
  "servers": [
    {
      "url": "https://api.nf3.app/api/v1",
      "description": "API de produção; ambiente fiscal na rota e na chave."
    },
    {
      "url": "https://api.dev.nf3.app/api/v1",
      "description": "Infraestrutura dev; disponibilidade depende da implantação."
    }
  ],
  "security": [
    {
      "bearerAuth": []
    }
  ],
  "paths": {
    "/me": {
      "get": {
        "summary": "Identidade técnica",
        "operationId": "get__me",
        "x-required-ability": "identity:read",
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/Identity"
                    }
                  },
                  "additionalProperties": false,
                  "required": [
                    "data"
                  ]
                }
              }
            }
          },
          "default": {
            "description": "Erro seguro; 401/403/404/409/415/422/429/500/503. 429 inclui Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/customers": {
      "get": {
        "summary": "Listar customers",
        "operationId": "get__customers",
        "x-required-ability": "customers:read",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 1000000
            }
          },
          {
            "name": "per_page",
            "in": "query",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100
            }
          },
          {
            "name": "search",
            "in": "query",
            "schema": {
              "type": "string",
              "maxLength": 100
            }
          },
          {
            "name": "tax_number",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/Customer"
                      }
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "page": {
                          "type": "integer"
                        },
                        "per_page": {
                          "type": "integer"
                        },
                        "total": {
                          "type": "integer"
                        },
                        "last_page": {
                          "type": "integer"
                        }
                      },
                      "additionalProperties": false,
                      "required": [
                        "page",
                        "per_page",
                        "total",
                        "last_page"
                      ]
                    }
                  },
                  "additionalProperties": false,
                  "required": [
                    "data",
                    "meta"
                  ]
                }
              }
            }
          },
          "default": {
            "description": "Erro seguro; 401/403/404/409/415/422/429/500/503. 429 inclui Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      },
      "post": {
        "summary": "Criar customers",
        "operationId": "post__customers",
        "x-required-ability": "customers:write",
        "parameters": [
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          }
        ],
        "responses": {
          "201": {
            "description": "Sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/Customer"
                    }
                  },
                  "additionalProperties": false,
                  "required": [
                    "data"
                  ]
                }
              }
            }
          },
          "default": {
            "description": "Erro seguro; 401/403/404/409/415/422/429/500/503. 429 inclui Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CustomerCreate"
              }
            }
          }
        }
      }
    },
    "/customers/{id}": {
      "get": {
        "summary": "Consultar customers",
        "operationId": "get__customers_id",
        "x-required-ability": "customers:read",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "minimum": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/Customer"
                    }
                  },
                  "additionalProperties": false,
                  "required": [
                    "data"
                  ]
                }
              }
            }
          },
          "default": {
            "description": "Erro seguro; 401/403/404/409/415/422/429/500/503. 429 inclui Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      },
      "patch": {
        "summary": "Atualizar customers",
        "operationId": "patch__customers_id",
        "x-required-ability": "customers:write",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "minimum": 1
            }
          },
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/Customer"
                    }
                  },
                  "additionalProperties": false,
                  "required": [
                    "data"
                  ]
                }
              }
            }
          },
          "default": {
            "description": "Erro seguro; 401/403/404/409/415/422/429/500/503. 429 inclui Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CustomerPatch"
              }
            }
          }
        }
      }
    },
    "/products": {
      "get": {
        "summary": "Listar products",
        "operationId": "get__products",
        "x-required-ability": "products:read",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 1000000
            }
          },
          {
            "name": "per_page",
            "in": "query",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100
            }
          },
          {
            "name": "search",
            "in": "query",
            "schema": {
              "type": "string",
              "maxLength": 100
            }
          },
          {
            "name": "sku",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "integration_code",
            "in": "query",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/Product"
                      }
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "page": {
                          "type": "integer"
                        },
                        "per_page": {
                          "type": "integer"
                        },
                        "total": {
                          "type": "integer"
                        },
                        "last_page": {
                          "type": "integer"
                        }
                      },
                      "additionalProperties": false,
                      "required": [
                        "page",
                        "per_page",
                        "total",
                        "last_page"
                      ]
                    }
                  },
                  "additionalProperties": false,
                  "required": [
                    "data",
                    "meta"
                  ]
                }
              }
            }
          },
          "default": {
            "description": "Erro seguro; 401/403/404/409/415/422/429/500/503. 429 inclui Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      },
      "post": {
        "summary": "Criar products",
        "operationId": "post__products",
        "x-required-ability": "products:write",
        "parameters": [
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          }
        ],
        "responses": {
          "201": {
            "description": "Sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/Product"
                    }
                  },
                  "additionalProperties": false,
                  "required": [
                    "data"
                  ]
                }
              }
            }
          },
          "default": {
            "description": "Erro seguro; 401/403/404/409/415/422/429/500/503. 429 inclui Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProductCreate"
              }
            }
          }
        }
      }
    },
    "/products/{id}": {
      "get": {
        "summary": "Consultar products",
        "operationId": "get__products_id",
        "x-required-ability": "products:read",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "minimum": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/Product"
                    }
                  },
                  "additionalProperties": false,
                  "required": [
                    "data"
                  ]
                }
              }
            }
          },
          "default": {
            "description": "Erro seguro; 401/403/404/409/415/422/429/500/503. 429 inclui Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      },
      "patch": {
        "summary": "Atualizar products",
        "operationId": "patch__products_id",
        "x-required-ability": "products:write",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "minimum": 1
            }
          },
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/Product"
                    }
                  },
                  "additionalProperties": false,
                  "required": [
                    "data"
                  ]
                }
              }
            }
          },
          "default": {
            "description": "Erro seguro; 401/403/404/409/415/422/429/500/503. 429 inclui Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProductPatch"
              }
            }
          }
        }
      }
    },
    "/services": {
      "get": {
        "summary": "Listar services",
        "operationId": "get__services",
        "x-required-ability": "services:read",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 1000000
            }
          },
          {
            "name": "per_page",
            "in": "query",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100
            }
          },
          {
            "name": "search",
            "in": "query",
            "schema": {
              "type": "string",
              "maxLength": 100
            }
          },
          {
            "name": "national_code",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/Service"
                      }
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "page": {
                          "type": "integer"
                        },
                        "per_page": {
                          "type": "integer"
                        },
                        "total": {
                          "type": "integer"
                        },
                        "last_page": {
                          "type": "integer"
                        }
                      },
                      "additionalProperties": false,
                      "required": [
                        "page",
                        "per_page",
                        "total",
                        "last_page"
                      ]
                    }
                  },
                  "additionalProperties": false,
                  "required": [
                    "data",
                    "meta"
                  ]
                }
              }
            }
          },
          "default": {
            "description": "Erro seguro; 401/403/404/409/415/422/429/500/503. 429 inclui Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      },
      "post": {
        "summary": "Criar services",
        "operationId": "post__services",
        "x-required-ability": "services:write",
        "parameters": [
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          }
        ],
        "responses": {
          "201": {
            "description": "Sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/Service"
                    }
                  },
                  "additionalProperties": false,
                  "required": [
                    "data"
                  ]
                }
              }
            }
          },
          "default": {
            "description": "Erro seguro; 401/403/404/409/415/422/429/500/503. 429 inclui Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ServiceCreate"
              }
            }
          }
        }
      }
    },
    "/services/{id}": {
      "get": {
        "summary": "Consultar services",
        "operationId": "get__services_id",
        "x-required-ability": "services:read",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "minimum": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/Service"
                    }
                  },
                  "additionalProperties": false,
                  "required": [
                    "data"
                  ]
                }
              }
            }
          },
          "default": {
            "description": "Erro seguro; 401/403/404/409/415/422/429/500/503. 429 inclui Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      },
      "patch": {
        "summary": "Atualizar services",
        "operationId": "patch__services_id",
        "x-required-ability": "services:write",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "minimum": 1
            }
          },
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/Service"
                    }
                  },
                  "additionalProperties": false,
                  "required": [
                    "data"
                  ]
                }
              }
            }
          },
          "default": {
            "description": "Erro seguro; 401/403/404/409/415/422/429/500/503. 429 inclui Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ServicePatch"
              }
            }
          }
        }
      }
    },
    "/homologation/nfe": {
      "get": {
        "summary": "Listar documentos locais",
        "operationId": "get__homologation_nfe",
        "x-required-ability": "nfe:read",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 1000000
            }
          },
          {
            "name": "per_page",
            "in": "query",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100
            }
          },
          {
            "name": "search",
            "in": "query",
            "schema": {
              "type": "string",
              "maxLength": 100
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/Document"
                      }
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "page": {
                          "type": "integer"
                        },
                        "per_page": {
                          "type": "integer"
                        },
                        "total": {
                          "type": "integer"
                        },
                        "last_page": {
                          "type": "integer"
                        }
                      },
                      "additionalProperties": false,
                      "required": [
                        "page",
                        "per_page",
                        "total",
                        "last_page"
                      ]
                    }
                  },
                  "additionalProperties": false,
                  "required": [
                    "data",
                    "meta"
                  ]
                }
              }
            }
          },
          "default": {
            "description": "Erro seguro; 401/403/404/409/415/422/429/500/503. 429 inclui Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      },
      "post": {
        "summary": "Preparar rascunho com XSD e certificado; não transmitir",
        "operationId": "post__homologation_nfe",
        "x-required-ability": "nfe:draft",
        "parameters": [
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          }
        ],
        "responses": {
          "201": {
            "description": "Sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/DocumentDetail"
                    }
                  },
                  "additionalProperties": false,
                  "required": [
                    "data"
                  ]
                }
              }
            }
          },
          "default": {
            "description": "Erro seguro; 401/403/404/409/415/422/429/500/503. 429 inclui Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NfeCreate"
              }
            }
          }
        }
      }
    },
    "/homologation/nfe/{id}": {
      "get": {
        "summary": "Documento e revisão local",
        "operationId": "get__homologation_nfe_id",
        "x-required-ability": "nfe:read",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "minimum": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/DocumentDetail"
                    }
                  },
                  "additionalProperties": false,
                  "required": [
                    "data"
                  ]
                }
              }
            }
          },
          "default": {
            "description": "Erro seguro; 401/403/404/409/415/422/429/500/503. 429 inclui Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      },
      "patch": {
        "summary": "Revisar NF-e ainda não enviada",
        "operationId": "patch__homologation_nfe_id",
        "x-required-ability": "nfe:draft",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "minimum": 1
            }
          },
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/DocumentDetail"
                    }
                  },
                  "additionalProperties": false,
                  "required": [
                    "data"
                  ]
                }
              }
            }
          },
          "default": {
            "description": "Erro seguro; 401/403/404/409/415/422/429/500/503. 429 inclui Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NfePatch"
              }
            }
          }
        }
      }
    },
    "/homologation/nfe/{id}/transmissions": {
      "post": {
        "summary": "Solicitar transmissão em fila",
        "operationId": "post__homologation_nfe_id_transmissions",
        "x-required-ability": "nfe:transmit",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "minimum": 1
            }
          },
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          }
        ],
        "responses": {
          "202": {
            "description": "Aceito para processamento; não significa autorização fiscal.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Accepted"
                }
              }
            }
          },
          "default": {
            "description": "Erro seguro; 401/403/404/409/415/422/429/500/503. 429 inclui Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Transmit"
              }
            }
          }
        }
      },
      "get": {
        "summary": "Listar tentativas locais",
        "operationId": "get__homologation_nfe_id_transmissions",
        "x-required-ability": "nfe:read",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "minimum": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/Attempt"
                      }
                    }
                  },
                  "additionalProperties": false,
                  "required": [
                    "data"
                  ]
                }
              }
            }
          },
          "default": {
            "description": "Erro seguro; 401/403/404/409/415/422/429/500/503. 429 inclui Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/homologation/nfe/{id}/transmissions/{attempt}": {
      "get": {
        "summary": "Consultar tentativa local",
        "operationId": "get__homologation_nfe_id_transmissions_attempt",
        "x-required-ability": "nfe:read",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "minimum": 1
            }
          },
          {
            "name": "attempt",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "minimum": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/Attempt"
                    }
                  },
                  "additionalProperties": false,
                  "required": [
                    "data"
                  ]
                }
              }
            }
          },
          "default": {
            "description": "Erro seguro; 401/403/404/409/415/422/429/500/503. 429 inclui Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/homologation/nfe/{id}/transmissions/{attempt}/reconcile": {
      "post": {
        "summary": "Consultar autorizador em fila, sem reenviar",
        "operationId": "post__homologation_nfe_id_transmissions_attempt_reconcile",
        "x-required-ability": "nfe:transmit",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "minimum": 1
            }
          },
          {
            "name": "attempt",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "minimum": 1
            }
          },
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          }
        ],
        "responses": {
          "202": {
            "description": "Aceito para processamento; não significa autorização fiscal.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Accepted"
                }
              }
            }
          },
          "default": {
            "description": "Erro seguro; 401/403/404/409/415/422/429/500/503. 429 inclui Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {},
                "additionalProperties": false
              }
            }
          }
        }
      }
    },
    "/homologation/nfe/{id}/xml": {
      "get": {
        "summary": "Baixar arquivo local verificado",
        "operationId": "get__homologation_nfe_id_xml",
        "x-required-ability": "nfe:read",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "minimum": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso",
            "content": {
              "application/xml": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "default": {
            "description": "Erro seguro; 401/403/404/409/415/422/429/500/503. 429 inclui Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/homologation/nfe/{id}/danfe": {
      "get": {
        "summary": "Baixar arquivo local verificado",
        "operationId": "get__homologation_nfe_id_danfe",
        "x-required-ability": "nfe:read",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "minimum": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso",
            "content": {
              "application/pdf": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "default": {
            "description": "Erro seguro; 401/403/404/409/415/422/429/500/503. 429 inclui Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/homologation/nfse": {
      "get": {
        "summary": "Listar documentos locais",
        "operationId": "get__homologation_nfse",
        "x-required-ability": "nfse:read",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 1000000
            }
          },
          {
            "name": "per_page",
            "in": "query",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100
            }
          },
          {
            "name": "search",
            "in": "query",
            "schema": {
              "type": "string",
              "maxLength": 100
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/Document"
                      }
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "page": {
                          "type": "integer"
                        },
                        "per_page": {
                          "type": "integer"
                        },
                        "total": {
                          "type": "integer"
                        },
                        "last_page": {
                          "type": "integer"
                        }
                      },
                      "additionalProperties": false,
                      "required": [
                        "page",
                        "per_page",
                        "total",
                        "last_page"
                      ]
                    }
                  },
                  "additionalProperties": false,
                  "required": [
                    "data",
                    "meta"
                  ]
                }
              }
            }
          },
          "default": {
            "description": "Erro seguro; 401/403/404/409/415/422/429/500/503. 429 inclui Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      },
      "post": {
        "summary": "Preparar rascunho com XSD e certificado; não transmitir",
        "operationId": "post__homologation_nfse",
        "x-required-ability": "nfse:draft",
        "parameters": [
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          }
        ],
        "responses": {
          "201": {
            "description": "Sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/DocumentDetail"
                    }
                  },
                  "additionalProperties": false,
                  "required": [
                    "data"
                  ]
                }
              }
            }
          },
          "default": {
            "description": "Erro seguro; 401/403/404/409/415/422/429/500/503. 429 inclui Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NfseCreate"
              }
            }
          }
        }
      }
    },
    "/homologation/nfse/{id}": {
      "get": {
        "summary": "Documento e revisão local",
        "operationId": "get__homologation_nfse_id",
        "x-required-ability": "nfse:read",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "minimum": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/DocumentDetail"
                    }
                  },
                  "additionalProperties": false,
                  "required": [
                    "data"
                  ]
                }
              }
            }
          },
          "default": {
            "description": "Erro seguro; 401/403/404/409/415/422/429/500/503. 429 inclui Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/homologation/nfse/{id}/transmissions": {
      "post": {
        "summary": "Solicitar transmissão em fila",
        "operationId": "post__homologation_nfse_id_transmissions",
        "x-required-ability": "nfse:transmit",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "minimum": 1
            }
          },
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          }
        ],
        "responses": {
          "202": {
            "description": "Aceito para processamento; não significa autorização fiscal.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Accepted"
                }
              }
            }
          },
          "default": {
            "description": "Erro seguro; 401/403/404/409/415/422/429/500/503. 429 inclui Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Transmit"
              }
            }
          }
        }
      },
      "get": {
        "summary": "Listar tentativas locais",
        "operationId": "get__homologation_nfse_id_transmissions",
        "x-required-ability": "nfse:read",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "minimum": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/Attempt"
                      }
                    }
                  },
                  "additionalProperties": false,
                  "required": [
                    "data"
                  ]
                }
              }
            }
          },
          "default": {
            "description": "Erro seguro; 401/403/404/409/415/422/429/500/503. 429 inclui Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/homologation/nfse/{id}/transmissions/{attempt}": {
      "get": {
        "summary": "Consultar tentativa local",
        "operationId": "get__homologation_nfse_id_transmissions_attempt",
        "x-required-ability": "nfse:read",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "minimum": 1
            }
          },
          {
            "name": "attempt",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "minimum": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/Attempt"
                    }
                  },
                  "additionalProperties": false,
                  "required": [
                    "data"
                  ]
                }
              }
            }
          },
          "default": {
            "description": "Erro seguro; 401/403/404/409/415/422/429/500/503. 429 inclui Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/homologation/nfse/{id}/transmissions/{attempt}/reconcile": {
      "post": {
        "summary": "Consultar autorizador em fila, sem reenviar",
        "operationId": "post__homologation_nfse_id_transmissions_attempt_reconcile",
        "x-required-ability": "nfse:transmit",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "minimum": 1
            }
          },
          {
            "name": "attempt",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "minimum": 1
            }
          },
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          }
        ],
        "responses": {
          "202": {
            "description": "Aceito para processamento; não significa autorização fiscal.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Accepted"
                }
              }
            }
          },
          "default": {
            "description": "Erro seguro; 401/403/404/409/415/422/429/500/503. 429 inclui Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {},
                "additionalProperties": false
              }
            }
          }
        }
      }
    },
    "/homologation/nfse/{id}/xml": {
      "get": {
        "summary": "Baixar arquivo local verificado",
        "operationId": "get__homologation_nfse_id_xml",
        "x-required-ability": "nfse:read",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "minimum": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso",
            "content": {
              "application/xml": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "default": {
            "description": "Erro seguro; 401/403/404/409/415/422/429/500/503. 429 inclui Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/homologation/requests/{operation}": {
      "get": {
        "summary": "Status da solicitação e tentativas fiscais",
        "operationId": "get__homologation_requests_operation",
        "x-required-ability": "nfe:read/nfse:read para emissão; nfe:correct/nfe:cancel/nfse:cancel para o respectivo evento",
        "parameters": [
          {
            "name": "operation",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "minimum": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/Operation"
                    }
                  },
                  "additionalProperties": false,
                  "required": [
                    "data"
                  ]
                }
              }
            }
          },
          "default": {
            "description": "Erro seguro; 401/403/404/409/415/422/429/500/503. 429 inclui Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "description": "Retorna transmissions para emissão ou event para evento. Completed não significa autorização fiscal; conferir o estado fiscal retornado."
      }
    },
    "/homologation/nfe/received": {
      "get": {
        "summary": "Listar recebidas locais; não consulta SEFAZ",
        "operationId": "get__homologation_nfe_received",
        "x-required-ability": "received:read",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 1000000
            }
          },
          {
            "name": "per_page",
            "in": "query",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100
            }
          },
          {
            "name": "search",
            "in": "query",
            "schema": {
              "type": "string",
              "maxLength": 100
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/Received"
                      }
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "page": {
                          "type": "integer"
                        },
                        "per_page": {
                          "type": "integer"
                        },
                        "total": {
                          "type": "integer"
                        },
                        "last_page": {
                          "type": "integer"
                        }
                      },
                      "additionalProperties": false,
                      "required": [
                        "page",
                        "per_page",
                        "total",
                        "last_page"
                      ]
                    }
                  },
                  "additionalProperties": false,
                  "required": [
                    "data",
                    "meta"
                  ]
                }
              }
            }
          },
          "default": {
            "description": "Erro seguro; 401/403/404/409/415/422/429/500/503. 429 inclui Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/homologation/nfe/received/{id}": {
      "get": {
        "summary": "Resumo local de recebida",
        "operationId": "get__homologation_nfe_received_id",
        "x-required-ability": "received:read",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "minimum": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/Received"
                    }
                  },
                  "additionalProperties": false,
                  "required": [
                    "data"
                  ]
                }
              }
            }
          },
          "default": {
            "description": "Erro seguro; 401/403/404/409/415/422/429/500/503. 429 inclui Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/homologation/nfe/received/{id}/xml": {
      "get": {
        "summary": "XML recebido quando já disponível",
        "operationId": "get__homologation_nfe_received_id_xml",
        "x-required-ability": "received:read",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "minimum": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso",
            "content": {
              "application/xml": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "default": {
            "description": "Erro seguro; 401/403/404/409/415/422/429/500/503. 429 inclui Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/homologation/nfe/{id}/corrections": {
      "get": {
        "summary": "Listar eventos locais do documento",
        "operationId": "get_homologation_nfe_id_corrections",
        "x-required-ability": "nfe:correct",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "minimum": 1
            }
          },
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 1000000
            }
          },
          {
            "name": "per_page",
            "in": "query",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/Event"
                      }
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "page": {
                          "type": "integer"
                        },
                        "per_page": {
                          "type": "integer"
                        },
                        "total": {
                          "type": "integer"
                        },
                        "last_page": {
                          "type": "integer"
                        }
                      },
                      "additionalProperties": false,
                      "required": [
                        "page",
                        "per_page",
                        "total",
                        "last_page"
                      ]
                    }
                  },
                  "additionalProperties": false,
                  "required": [
                    "data",
                    "meta"
                  ]
                }
              }
            }
          },
          "default": {
            "description": "Erro seguro; 401/403/404/409/415/422/429/500/503. 429 inclui Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      },
      "post": {
        "summary": "Preparar evento assinado para revisão, sem transmissão",
        "operationId": "post_homologation_nfe_id_corrections",
        "x-required-ability": "nfe:correct",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "minimum": 1
            }
          },
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          }
        ],
        "responses": {
          "201": {
            "description": "Sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/Event"
                    }
                  },
                  "additionalProperties": false,
                  "required": [
                    "data"
                  ]
                }
              }
            }
          },
          "default": {
            "description": "Erro seguro; 401/403/404/409/415/422/429/500/503. 429 inclui Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CorrectionPrepare"
              }
            }
          }
        }
      }
    },
    "/homologation/nfe/{id}/corrections/{event}": {
      "get": {
        "summary": "Consultar evento local e hash de revisão",
        "operationId": "get_homologation_nfe_id_corrections_event",
        "x-required-ability": "nfe:correct",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "minimum": 1
            }
          },
          {
            "name": "event",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "minimum": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/Event"
                    }
                  },
                  "additionalProperties": false,
                  "required": [
                    "data"
                  ]
                }
              }
            }
          },
          "default": {
            "description": "Erro seguro; 401/403/404/409/415/422/429/500/503. 429 inclui Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/homologation/nfe/{id}/corrections/{event}/transmissions": {
      "post": {
        "summary": "Enfileirar envio do evento confirmado",
        "operationId": "post_homologation_nfe_id_corrections_event_transmissions",
        "x-required-ability": "nfe:correct",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "minimum": 1
            }
          },
          {
            "name": "event",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "minimum": 1
            }
          },
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          }
        ],
        "responses": {
          "202": {
            "description": "Aceito para processamento, sem garantia de autorização fiscal.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Accepted"
                }
              }
            }
          },
          "default": {
            "description": "Erro seguro; 401/403/404/409/415/422/429/500/503. 429 inclui Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Transmit"
              }
            }
          }
        },
        "description": "Revalida credencial antes do envio. Evento já submetido é apenas observado, nunca reenviado. NF-e exige revisão com menos de 15 minutos; descarte e prepare novamente apenas eventos ainda não enviados."
      }
    },
    "/homologation/nfe/{id}/corrections/{event}/reconcile": {
      "post": {
        "summary": "Enfileirar consulta do evento, sem retransmissão",
        "operationId": "post_homologation_nfe_id_corrections_event_reconcile",
        "x-required-ability": "nfe:correct",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "minimum": 1
            }
          },
          {
            "name": "event",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "minimum": 1
            }
          },
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          }
        ],
        "responses": {
          "202": {
            "description": "Aceito para processamento, sem garantia de autorização fiscal.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Accepted"
                }
              }
            }
          },
          "default": {
            "description": "Erro seguro; 401/403/404/409/415/422/429/500/503. 429 inclui Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {},
                "additionalProperties": false
              }
            }
          }
        }
      }
    },
    "/homologation/nfe/{id}/corrections/{event}/discard": {
      "post": {
        "summary": "Descartar somente evento preparado e nunca enviado",
        "operationId": "post_homologation_nfe_id_corrections_event_discard",
        "x-required-ability": "nfe:correct",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "minimum": 1
            }
          },
          {
            "name": "event",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "minimum": 1
            }
          },
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/Event"
                    }
                  },
                  "additionalProperties": false,
                  "required": [
                    "data"
                  ]
                }
              }
            }
          },
          "default": {
            "description": "Erro seguro; 401/403/404/409/415/422/429/500/503. 429 inclui Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {},
                "additionalProperties": false
              }
            }
          }
        }
      }
    },
    "/homologation/nfe/{id}/corrections/{event}/xml": {
      "get": {
        "summary": "Baixar XML do evento autorizado e validado",
        "operationId": "get_homologation_nfe_id_corrections_event_xml",
        "x-required-ability": "nfe:correct",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "minimum": 1
            }
          },
          {
            "name": "event",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "minimum": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso",
            "content": {
              "application/xml": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "default": {
            "description": "Erro seguro; 401/403/404/409/415/422/429/500/503. 429 inclui Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/homologation/nfe/{id}/cancellations": {
      "get": {
        "summary": "Listar eventos locais do documento",
        "operationId": "get_homologation_nfe_id_cancellations",
        "x-required-ability": "nfe:cancel",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "minimum": 1
            }
          },
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 1000000
            }
          },
          {
            "name": "per_page",
            "in": "query",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/Event"
                      }
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "page": {
                          "type": "integer"
                        },
                        "per_page": {
                          "type": "integer"
                        },
                        "total": {
                          "type": "integer"
                        },
                        "last_page": {
                          "type": "integer"
                        }
                      },
                      "additionalProperties": false,
                      "required": [
                        "page",
                        "per_page",
                        "total",
                        "last_page"
                      ]
                    }
                  },
                  "additionalProperties": false,
                  "required": [
                    "data",
                    "meta"
                  ]
                }
              }
            }
          },
          "default": {
            "description": "Erro seguro; 401/403/404/409/415/422/429/500/503. 429 inclui Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      },
      "post": {
        "summary": "Preparar evento assinado para revisão, sem transmissão",
        "operationId": "post_homologation_nfe_id_cancellations",
        "x-required-ability": "nfe:cancel",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "minimum": 1
            }
          },
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          }
        ],
        "responses": {
          "201": {
            "description": "Sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/Event"
                    }
                  },
                  "additionalProperties": false,
                  "required": [
                    "data"
                  ]
                }
              }
            }
          },
          "default": {
            "description": "Erro seguro; 401/403/404/409/415/422/429/500/503. 429 inclui Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CancellationPrepare"
              }
            }
          }
        }
      }
    },
    "/homologation/nfe/{id}/cancellations/{event}": {
      "get": {
        "summary": "Consultar evento local e hash de revisão",
        "operationId": "get_homologation_nfe_id_cancellations_event",
        "x-required-ability": "nfe:cancel",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "minimum": 1
            }
          },
          {
            "name": "event",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "minimum": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/Event"
                    }
                  },
                  "additionalProperties": false,
                  "required": [
                    "data"
                  ]
                }
              }
            }
          },
          "default": {
            "description": "Erro seguro; 401/403/404/409/415/422/429/500/503. 429 inclui Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/homologation/nfe/{id}/cancellations/{event}/transmissions": {
      "post": {
        "summary": "Enfileirar envio do evento confirmado",
        "operationId": "post_homologation_nfe_id_cancellations_event_transmissions",
        "x-required-ability": "nfe:cancel",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "minimum": 1
            }
          },
          {
            "name": "event",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "minimum": 1
            }
          },
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          }
        ],
        "responses": {
          "202": {
            "description": "Aceito para processamento, sem garantia de autorização fiscal.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Accepted"
                }
              }
            }
          },
          "default": {
            "description": "Erro seguro; 401/403/404/409/415/422/429/500/503. 429 inclui Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Transmit"
              }
            }
          }
        },
        "description": "Revalida credencial antes do envio. Evento já submetido é apenas observado, nunca reenviado. NF-e exige revisão com menos de 15 minutos; descarte e prepare novamente apenas eventos ainda não enviados."
      }
    },
    "/homologation/nfe/{id}/cancellations/{event}/reconcile": {
      "post": {
        "summary": "Enfileirar consulta do evento, sem retransmissão",
        "operationId": "post_homologation_nfe_id_cancellations_event_reconcile",
        "x-required-ability": "nfe:cancel",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "minimum": 1
            }
          },
          {
            "name": "event",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "minimum": 1
            }
          },
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          }
        ],
        "responses": {
          "202": {
            "description": "Aceito para processamento, sem garantia de autorização fiscal.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Accepted"
                }
              }
            }
          },
          "default": {
            "description": "Erro seguro; 401/403/404/409/415/422/429/500/503. 429 inclui Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {},
                "additionalProperties": false
              }
            }
          }
        }
      }
    },
    "/homologation/nfe/{id}/cancellations/{event}/discard": {
      "post": {
        "summary": "Descartar somente evento preparado e nunca enviado",
        "operationId": "post_homologation_nfe_id_cancellations_event_discard",
        "x-required-ability": "nfe:cancel",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "minimum": 1
            }
          },
          {
            "name": "event",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "minimum": 1
            }
          },
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/Event"
                    }
                  },
                  "additionalProperties": false,
                  "required": [
                    "data"
                  ]
                }
              }
            }
          },
          "default": {
            "description": "Erro seguro; 401/403/404/409/415/422/429/500/503. 429 inclui Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {},
                "additionalProperties": false
              }
            }
          }
        }
      }
    },
    "/homologation/nfe/{id}/cancellations/{event}/xml": {
      "get": {
        "summary": "Baixar XML do evento autorizado e validado",
        "operationId": "get_homologation_nfe_id_cancellations_event_xml",
        "x-required-ability": "nfe:cancel",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "minimum": 1
            }
          },
          {
            "name": "event",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "minimum": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso",
            "content": {
              "application/xml": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "default": {
            "description": "Erro seguro; 401/403/404/409/415/422/429/500/503. 429 inclui Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/homologation/nfse/{id}/cancellations": {
      "get": {
        "summary": "Listar eventos locais do documento",
        "operationId": "get_homologation_nfse_id_cancellations",
        "x-required-ability": "nfse:cancel",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "minimum": 1
            }
          },
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 1000000
            }
          },
          {
            "name": "per_page",
            "in": "query",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/Event"
                      }
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "page": {
                          "type": "integer"
                        },
                        "per_page": {
                          "type": "integer"
                        },
                        "total": {
                          "type": "integer"
                        },
                        "last_page": {
                          "type": "integer"
                        }
                      },
                      "additionalProperties": false,
                      "required": [
                        "page",
                        "per_page",
                        "total",
                        "last_page"
                      ]
                    }
                  },
                  "additionalProperties": false,
                  "required": [
                    "data",
                    "meta"
                  ]
                }
              }
            }
          },
          "default": {
            "description": "Erro seguro; 401/403/404/409/415/422/429/500/503. 429 inclui Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      },
      "post": {
        "summary": "Preparar evento assinado para revisão, sem transmissão",
        "operationId": "post_homologation_nfse_id_cancellations",
        "x-required-ability": "nfse:cancel",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "minimum": 1
            }
          },
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          }
        ],
        "responses": {
          "201": {
            "description": "Sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/Event"
                    }
                  },
                  "additionalProperties": false,
                  "required": [
                    "data"
                  ]
                }
              }
            }
          },
          "default": {
            "description": "Erro seguro; 401/403/404/409/415/422/429/500/503. 429 inclui Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NfseCancellationPrepare"
              }
            }
          }
        }
      }
    },
    "/homologation/nfse/{id}/cancellations/{event}": {
      "get": {
        "summary": "Consultar evento local e hash de revisão",
        "operationId": "get_homologation_nfse_id_cancellations_event",
        "x-required-ability": "nfse:cancel",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "minimum": 1
            }
          },
          {
            "name": "event",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "minimum": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/Event"
                    }
                  },
                  "additionalProperties": false,
                  "required": [
                    "data"
                  ]
                }
              }
            }
          },
          "default": {
            "description": "Erro seguro; 401/403/404/409/415/422/429/500/503. 429 inclui Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/homologation/nfse/{id}/cancellations/{event}/transmissions": {
      "post": {
        "summary": "Enfileirar envio do evento confirmado",
        "operationId": "post_homologation_nfse_id_cancellations_event_transmissions",
        "x-required-ability": "nfse:cancel",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "minimum": 1
            }
          },
          {
            "name": "event",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "minimum": 1
            }
          },
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          }
        ],
        "responses": {
          "202": {
            "description": "Aceito para processamento, sem garantia de autorização fiscal.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Accepted"
                }
              }
            }
          },
          "default": {
            "description": "Erro seguro; 401/403/404/409/415/422/429/500/503. 429 inclui Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Transmit"
              }
            }
          }
        },
        "description": "Revalida credencial antes do envio. Evento já submetido é apenas observado, nunca reenviado. NF-e exige revisão com menos de 15 minutos; descarte e prepare novamente apenas eventos ainda não enviados."
      }
    },
    "/homologation/nfse/{id}/cancellations/{event}/reconcile": {
      "post": {
        "summary": "Enfileirar consulta do evento, sem retransmissão",
        "operationId": "post_homologation_nfse_id_cancellations_event_reconcile",
        "x-required-ability": "nfse:cancel",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "minimum": 1
            }
          },
          {
            "name": "event",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "minimum": 1
            }
          },
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          }
        ],
        "responses": {
          "202": {
            "description": "Aceito para processamento, sem garantia de autorização fiscal.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Accepted"
                }
              }
            }
          },
          "default": {
            "description": "Erro seguro; 401/403/404/409/415/422/429/500/503. 429 inclui Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {},
                "additionalProperties": false
              }
            }
          }
        }
      }
    },
    "/homologation/nfse/{id}/cancellations/{event}/xml": {
      "get": {
        "summary": "Baixar XML do evento autorizado e validado",
        "operationId": "get_homologation_nfse_id_cancellations_event_xml",
        "x-required-ability": "nfse:cancel",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "minimum": 1
            }
          },
          {
            "name": "event",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "minimum": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso",
            "content": {
              "application/xml": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "default": {
            "description": "Erro seguro; 401/403/404/409/415/422/429/500/503. 429 inclui Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/homologation/nfe/tax-preview": {
      "post": {
        "tags": [
          "NF-e"
        ],
        "summary": "Resolver grupos fiscais sem reservar número ou transmitir",
        "operationId": "previewNfeTaxConfiguration",
        "x-required-ability": "nfe:draft",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "customer_id",
                  "items"
                ],
                "properties": {
                  "customer_id": {
                    "type": "integer",
                    "minimum": 1
                  },
                  "fiscal_operation_id": {
                    "type": [
                      "integer",
                      "null"
                    ],
                    "minimum": 1
                  },
                  "items": {
                    "type": "array",
                    "minItems": 1,
                    "maxItems": 100,
                    "items": {
                      "type": "object",
                      "required": [
                        "product_id"
                      ],
                      "properties": {
                        "product_id": {
                          "type": "integer",
                          "minimum": 1
                        },
                        "tax_group_id": {
                          "type": [
                            "integer",
                            "null"
                          ],
                          "minimum": 1,
                          "description": "Grupo explícito deste item; ausente/nulo usa o grupo da operação e depois o padrão opcional do produto. Não altera cadastros."
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "data contém items resolvidos (incluindo st, ipi e fcp_rate do grupo quando aplicáveis), header e configuration_hash. Confirmar e usar em NfeCatalogCreate. Não enviar valores calculados. ST/IPI disponíveis somente por catálogo, com os limites documentados."
          },
          "403": {
            "description": "Sem permissão ou ambiente bloqueado."
          },
          "422": {
            "description": "Cadastro incompleto ou tratamento ainda não suportado."
          }
        }
      }
    },
    "/production/nfe": {
      "get": {
        "summary": "Listar documentos locais",
        "operationId": "production_get__homologation_nfe",
        "x-required-ability": "nfe:read",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 1000000
            }
          },
          {
            "name": "per_page",
            "in": "query",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100
            }
          },
          {
            "name": "search",
            "in": "query",
            "schema": {
              "type": "string",
              "maxLength": 100
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/Document"
                      }
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "page": {
                          "type": "integer"
                        },
                        "per_page": {
                          "type": "integer"
                        },
                        "total": {
                          "type": "integer"
                        },
                        "last_page": {
                          "type": "integer"
                        }
                      },
                      "additionalProperties": false,
                      "required": [
                        "page",
                        "per_page",
                        "total",
                        "last_page"
                      ]
                    }
                  },
                  "additionalProperties": false,
                  "required": [
                    "data",
                    "meta"
                  ]
                }
              }
            }
          },
          "default": {
            "description": "Erro seguro; 401/403/404/409/415/422/429/500/503. 429 inclui Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "description": "Ambiente production: exige chave de produção e empresa liberada para API. "
      },
      "post": {
        "summary": "Preparar rascunho com XSD e certificado; não transmitir",
        "operationId": "production_post__homologation_nfe",
        "x-required-ability": "nfe:draft",
        "parameters": [
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          }
        ],
        "responses": {
          "201": {
            "description": "Sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/DocumentDetail"
                    }
                  },
                  "additionalProperties": false,
                  "required": [
                    "data"
                  ]
                }
              }
            }
          },
          "default": {
            "description": "Erro seguro; 401/403/404/409/415/422/429/500/503. 429 inclui Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NfeCreate"
              }
            }
          }
        },
        "description": "Ambiente production: exige chave de produção e empresa liberada para API. "
      }
    },
    "/production/nfe/{id}": {
      "get": {
        "summary": "Documento e revisão local",
        "operationId": "production_get__homologation_nfe_id",
        "x-required-ability": "nfe:read",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "minimum": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/DocumentDetail"
                    }
                  },
                  "additionalProperties": false,
                  "required": [
                    "data"
                  ]
                }
              }
            }
          },
          "default": {
            "description": "Erro seguro; 401/403/404/409/415/422/429/500/503. 429 inclui Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "description": "Ambiente production: exige chave de produção e empresa liberada para API. "
      },
      "patch": {
        "summary": "Revisar NF-e ainda não enviada",
        "operationId": "production_patch__homologation_nfe_id",
        "x-required-ability": "nfe:draft",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "minimum": 1
            }
          },
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/DocumentDetail"
                    }
                  },
                  "additionalProperties": false,
                  "required": [
                    "data"
                  ]
                }
              }
            }
          },
          "default": {
            "description": "Erro seguro; 401/403/404/409/415/422/429/500/503. 429 inclui Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NfePatch"
              }
            }
          }
        },
        "description": "Ambiente production: exige chave de produção e empresa liberada para API. "
      }
    },
    "/production/nfe/{id}/transmissions": {
      "post": {
        "summary": "Solicitar transmissão em fila",
        "operationId": "production_post__homologation_nfe_id_transmissions",
        "x-required-ability": "nfe:transmit",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "minimum": 1
            }
          },
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          }
        ],
        "responses": {
          "202": {
            "description": "Aceito para processamento; não significa autorização fiscal.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Accepted"
                }
              }
            }
          },
          "default": {
            "description": "Erro seguro; 401/403/404/409/415/422/429/500/503. 429 inclui Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Transmit"
              }
            }
          }
        },
        "description": "Ambiente production: exige chave de produção e empresa liberada para API. "
      },
      "get": {
        "summary": "Listar tentativas locais",
        "operationId": "production_get__homologation_nfe_id_transmissions",
        "x-required-ability": "nfe:read",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "minimum": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/Attempt"
                      }
                    }
                  },
                  "additionalProperties": false,
                  "required": [
                    "data"
                  ]
                }
              }
            }
          },
          "default": {
            "description": "Erro seguro; 401/403/404/409/415/422/429/500/503. 429 inclui Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "description": "Ambiente production: exige chave de produção e empresa liberada para API. "
      }
    },
    "/production/nfe/{id}/transmissions/{attempt}": {
      "get": {
        "summary": "Consultar tentativa local",
        "operationId": "production_get__homologation_nfe_id_transmissions_attempt",
        "x-required-ability": "nfe:read",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "minimum": 1
            }
          },
          {
            "name": "attempt",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "minimum": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/Attempt"
                    }
                  },
                  "additionalProperties": false,
                  "required": [
                    "data"
                  ]
                }
              }
            }
          },
          "default": {
            "description": "Erro seguro; 401/403/404/409/415/422/429/500/503. 429 inclui Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "description": "Ambiente production: exige chave de produção e empresa liberada para API. "
      }
    },
    "/production/nfe/{id}/transmissions/{attempt}/reconcile": {
      "post": {
        "summary": "Consultar autorizador em fila, sem reenviar",
        "operationId": "production_post__homologation_nfe_id_transmissions_attempt_reconcile",
        "x-required-ability": "nfe:transmit",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "minimum": 1
            }
          },
          {
            "name": "attempt",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "minimum": 1
            }
          },
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          }
        ],
        "responses": {
          "202": {
            "description": "Aceito para processamento; não significa autorização fiscal.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Accepted"
                }
              }
            }
          },
          "default": {
            "description": "Erro seguro; 401/403/404/409/415/422/429/500/503. 429 inclui Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {},
                "additionalProperties": false
              }
            }
          }
        },
        "description": "Ambiente production: exige chave de produção e empresa liberada para API. "
      }
    },
    "/production/nfe/{id}/xml": {
      "get": {
        "summary": "Baixar arquivo local verificado",
        "operationId": "production_get__homologation_nfe_id_xml",
        "x-required-ability": "nfe:read",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "minimum": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso",
            "content": {
              "application/xml": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "default": {
            "description": "Erro seguro; 401/403/404/409/415/422/429/500/503. 429 inclui Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "description": "Ambiente production: exige chave de produção e empresa liberada para API. "
      }
    },
    "/production/nfe/{id}/danfe": {
      "get": {
        "summary": "Baixar arquivo local verificado",
        "operationId": "production_get__homologation_nfe_id_danfe",
        "x-required-ability": "nfe:read",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "minimum": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso",
            "content": {
              "application/pdf": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "default": {
            "description": "Erro seguro; 401/403/404/409/415/422/429/500/503. 429 inclui Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "description": "Ambiente production: exige chave de produção e empresa liberada para API. "
      }
    },
    "/production/nfse": {
      "get": {
        "summary": "Listar documentos locais",
        "operationId": "production_get__homologation_nfse",
        "x-required-ability": "nfse:read",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 1000000
            }
          },
          {
            "name": "per_page",
            "in": "query",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100
            }
          },
          {
            "name": "search",
            "in": "query",
            "schema": {
              "type": "string",
              "maxLength": 100
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/Document"
                      }
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "page": {
                          "type": "integer"
                        },
                        "per_page": {
                          "type": "integer"
                        },
                        "total": {
                          "type": "integer"
                        },
                        "last_page": {
                          "type": "integer"
                        }
                      },
                      "additionalProperties": false,
                      "required": [
                        "page",
                        "per_page",
                        "total",
                        "last_page"
                      ]
                    }
                  },
                  "additionalProperties": false,
                  "required": [
                    "data",
                    "meta"
                  ]
                }
              }
            }
          },
          "default": {
            "description": "Erro seguro; 401/403/404/409/415/422/429/500/503. 429 inclui Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "description": "Ambiente production: exige chave de produção e empresa liberada para API. "
      },
      "post": {
        "summary": "Preparar rascunho com XSD e certificado; não transmitir",
        "operationId": "production_post__homologation_nfse",
        "x-required-ability": "nfse:draft",
        "parameters": [
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          }
        ],
        "responses": {
          "201": {
            "description": "Sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/DocumentDetail"
                    }
                  },
                  "additionalProperties": false,
                  "required": [
                    "data"
                  ]
                }
              }
            }
          },
          "default": {
            "description": "Erro seguro; 401/403/404/409/415/422/429/500/503. 429 inclui Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NfseCreate"
              }
            }
          }
        },
        "description": "Ambiente production: exige chave de produção e empresa liberada para API. "
      }
    },
    "/production/nfse/{id}": {
      "get": {
        "summary": "Documento e revisão local",
        "operationId": "production_get__homologation_nfse_id",
        "x-required-ability": "nfse:read",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "minimum": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/DocumentDetail"
                    }
                  },
                  "additionalProperties": false,
                  "required": [
                    "data"
                  ]
                }
              }
            }
          },
          "default": {
            "description": "Erro seguro; 401/403/404/409/415/422/429/500/503. 429 inclui Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "description": "Ambiente production: exige chave de produção e empresa liberada para API. "
      }
    },
    "/production/nfse/{id}/transmissions": {
      "post": {
        "summary": "Solicitar transmissão em fila",
        "operationId": "production_post__homologation_nfse_id_transmissions",
        "x-required-ability": "nfse:transmit",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "minimum": 1
            }
          },
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          }
        ],
        "responses": {
          "202": {
            "description": "Aceito para processamento; não significa autorização fiscal.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Accepted"
                }
              }
            }
          },
          "default": {
            "description": "Erro seguro; 401/403/404/409/415/422/429/500/503. 429 inclui Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Transmit"
              }
            }
          }
        },
        "description": "Ambiente production: exige chave de produção e empresa liberada para API. "
      },
      "get": {
        "summary": "Listar tentativas locais",
        "operationId": "production_get__homologation_nfse_id_transmissions",
        "x-required-ability": "nfse:read",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "minimum": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/Attempt"
                      }
                    }
                  },
                  "additionalProperties": false,
                  "required": [
                    "data"
                  ]
                }
              }
            }
          },
          "default": {
            "description": "Erro seguro; 401/403/404/409/415/422/429/500/503. 429 inclui Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "description": "Ambiente production: exige chave de produção e empresa liberada para API. "
      }
    },
    "/production/nfse/{id}/transmissions/{attempt}": {
      "get": {
        "summary": "Consultar tentativa local",
        "operationId": "production_get__homologation_nfse_id_transmissions_attempt",
        "x-required-ability": "nfse:read",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "minimum": 1
            }
          },
          {
            "name": "attempt",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "minimum": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/Attempt"
                    }
                  },
                  "additionalProperties": false,
                  "required": [
                    "data"
                  ]
                }
              }
            }
          },
          "default": {
            "description": "Erro seguro; 401/403/404/409/415/422/429/500/503. 429 inclui Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "description": "Ambiente production: exige chave de produção e empresa liberada para API. "
      }
    },
    "/production/nfse/{id}/transmissions/{attempt}/reconcile": {
      "post": {
        "summary": "Consultar autorizador em fila, sem reenviar",
        "operationId": "production_post__homologation_nfse_id_transmissions_attempt_reconcile",
        "x-required-ability": "nfse:transmit",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "minimum": 1
            }
          },
          {
            "name": "attempt",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "minimum": 1
            }
          },
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          }
        ],
        "responses": {
          "202": {
            "description": "Aceito para processamento; não significa autorização fiscal.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Accepted"
                }
              }
            }
          },
          "default": {
            "description": "Erro seguro; 401/403/404/409/415/422/429/500/503. 429 inclui Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {},
                "additionalProperties": false
              }
            }
          }
        },
        "description": "Ambiente production: exige chave de produção e empresa liberada para API. "
      }
    },
    "/production/nfse/{id}/xml": {
      "get": {
        "summary": "Baixar arquivo local verificado",
        "operationId": "production_get__homologation_nfse_id_xml",
        "x-required-ability": "nfse:read",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "minimum": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso",
            "content": {
              "application/xml": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "default": {
            "description": "Erro seguro; 401/403/404/409/415/422/429/500/503. 429 inclui Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "description": "Ambiente production: exige chave de produção e empresa liberada para API. "
      }
    },
    "/production/requests/{operation}": {
      "get": {
        "summary": "Status da solicitação e tentativas fiscais",
        "operationId": "production_get__homologation_requests_operation",
        "x-required-ability": "nfe:read/nfse:read para emissão; nfe:correct/nfe:cancel/nfse:cancel para o respectivo evento",
        "parameters": [
          {
            "name": "operation",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "minimum": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/Operation"
                    }
                  },
                  "additionalProperties": false,
                  "required": [
                    "data"
                  ]
                }
              }
            }
          },
          "default": {
            "description": "Erro seguro; 401/403/404/409/415/422/429/500/503. 429 inclui Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "description": "Ambiente production: exige chave de produção e empresa liberada para API. Retorna transmissions para emissão ou event para evento. Completed não significa autorização fiscal; conferir o estado fiscal retornado."
      }
    },
    "/production/nfe/received": {
      "get": {
        "summary": "Listar recebidas locais; não consulta SEFAZ",
        "operationId": "production_get__homologation_nfe_received",
        "x-required-ability": "received:read",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 1000000
            }
          },
          {
            "name": "per_page",
            "in": "query",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100
            }
          },
          {
            "name": "search",
            "in": "query",
            "schema": {
              "type": "string",
              "maxLength": 100
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/Received"
                      }
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "page": {
                          "type": "integer"
                        },
                        "per_page": {
                          "type": "integer"
                        },
                        "total": {
                          "type": "integer"
                        },
                        "last_page": {
                          "type": "integer"
                        }
                      },
                      "additionalProperties": false,
                      "required": [
                        "page",
                        "per_page",
                        "total",
                        "last_page"
                      ]
                    }
                  },
                  "additionalProperties": false,
                  "required": [
                    "data",
                    "meta"
                  ]
                }
              }
            }
          },
          "default": {
            "description": "Erro seguro; 401/403/404/409/415/422/429/500/503. 429 inclui Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "description": "Ambiente production: exige chave de produção e empresa liberada para API. "
      }
    },
    "/production/nfe/received/{id}": {
      "get": {
        "summary": "Resumo local de recebida",
        "operationId": "production_get__homologation_nfe_received_id",
        "x-required-ability": "received:read",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "minimum": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/Received"
                    }
                  },
                  "additionalProperties": false,
                  "required": [
                    "data"
                  ]
                }
              }
            }
          },
          "default": {
            "description": "Erro seguro; 401/403/404/409/415/422/429/500/503. 429 inclui Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "description": "Ambiente production: exige chave de produção e empresa liberada para API. "
      }
    },
    "/production/nfe/received/{id}/xml": {
      "get": {
        "summary": "XML recebido quando já disponível",
        "operationId": "production_get__homologation_nfe_received_id_xml",
        "x-required-ability": "received:read",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "minimum": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso",
            "content": {
              "application/xml": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "default": {
            "description": "Erro seguro; 401/403/404/409/415/422/429/500/503. 429 inclui Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "description": "Ambiente production: exige chave de produção e empresa liberada para API. "
      }
    },
    "/production/nfe/{id}/corrections": {
      "get": {
        "summary": "Listar eventos locais do documento",
        "operationId": "production_get_homologation_nfe_id_corrections",
        "x-required-ability": "nfe:correct",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "minimum": 1
            }
          },
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 1000000
            }
          },
          {
            "name": "per_page",
            "in": "query",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/Event"
                      }
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "page": {
                          "type": "integer"
                        },
                        "per_page": {
                          "type": "integer"
                        },
                        "total": {
                          "type": "integer"
                        },
                        "last_page": {
                          "type": "integer"
                        }
                      },
                      "additionalProperties": false,
                      "required": [
                        "page",
                        "per_page",
                        "total",
                        "last_page"
                      ]
                    }
                  },
                  "additionalProperties": false,
                  "required": [
                    "data",
                    "meta"
                  ]
                }
              }
            }
          },
          "default": {
            "description": "Erro seguro; 401/403/404/409/415/422/429/500/503. 429 inclui Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "description": "Ambiente production: exige chave de produção e empresa liberada para API. "
      },
      "post": {
        "summary": "Preparar evento assinado para revisão, sem transmissão",
        "operationId": "production_post_homologation_nfe_id_corrections",
        "x-required-ability": "nfe:correct",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "minimum": 1
            }
          },
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          }
        ],
        "responses": {
          "201": {
            "description": "Sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/Event"
                    }
                  },
                  "additionalProperties": false,
                  "required": [
                    "data"
                  ]
                }
              }
            }
          },
          "default": {
            "description": "Erro seguro; 401/403/404/409/415/422/429/500/503. 429 inclui Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CorrectionPrepare"
              }
            }
          }
        },
        "description": "Ambiente production: exige chave de produção e empresa liberada para API. "
      }
    },
    "/production/nfe/{id}/corrections/{event}": {
      "get": {
        "summary": "Consultar evento local e hash de revisão",
        "operationId": "production_get_homologation_nfe_id_corrections_event",
        "x-required-ability": "nfe:correct",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "minimum": 1
            }
          },
          {
            "name": "event",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "minimum": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/Event"
                    }
                  },
                  "additionalProperties": false,
                  "required": [
                    "data"
                  ]
                }
              }
            }
          },
          "default": {
            "description": "Erro seguro; 401/403/404/409/415/422/429/500/503. 429 inclui Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "description": "Ambiente production: exige chave de produção e empresa liberada para API. "
      }
    },
    "/production/nfe/{id}/corrections/{event}/transmissions": {
      "post": {
        "summary": "Enfileirar envio do evento confirmado",
        "operationId": "production_post_homologation_nfe_id_corrections_event_transmissions",
        "x-required-ability": "nfe:correct",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "minimum": 1
            }
          },
          {
            "name": "event",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "minimum": 1
            }
          },
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          }
        ],
        "responses": {
          "202": {
            "description": "Aceito para processamento, sem garantia de autorização fiscal.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Accepted"
                }
              }
            }
          },
          "default": {
            "description": "Erro seguro; 401/403/404/409/415/422/429/500/503. 429 inclui Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Transmit"
              }
            }
          }
        },
        "description": "Ambiente production: exige chave de produção e empresa liberada para API. Revalida credencial antes do envio. Evento já submetido é apenas observado, nunca reenviado. NF-e exige revisão com menos de 15 minutos; descarte e prepare novamente apenas eventos ainda não enviados."
      }
    },
    "/production/nfe/{id}/corrections/{event}/reconcile": {
      "post": {
        "summary": "Enfileirar consulta do evento, sem retransmissão",
        "operationId": "production_post_homologation_nfe_id_corrections_event_reconcile",
        "x-required-ability": "nfe:correct",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "minimum": 1
            }
          },
          {
            "name": "event",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "minimum": 1
            }
          },
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          }
        ],
        "responses": {
          "202": {
            "description": "Aceito para processamento, sem garantia de autorização fiscal.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Accepted"
                }
              }
            }
          },
          "default": {
            "description": "Erro seguro; 401/403/404/409/415/422/429/500/503. 429 inclui Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {},
                "additionalProperties": false
              }
            }
          }
        },
        "description": "Ambiente production: exige chave de produção e empresa liberada para API. "
      }
    },
    "/production/nfe/{id}/corrections/{event}/discard": {
      "post": {
        "summary": "Descartar somente evento preparado e nunca enviado",
        "operationId": "production_post_homologation_nfe_id_corrections_event_discard",
        "x-required-ability": "nfe:correct",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "minimum": 1
            }
          },
          {
            "name": "event",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "minimum": 1
            }
          },
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/Event"
                    }
                  },
                  "additionalProperties": false,
                  "required": [
                    "data"
                  ]
                }
              }
            }
          },
          "default": {
            "description": "Erro seguro; 401/403/404/409/415/422/429/500/503. 429 inclui Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {},
                "additionalProperties": false
              }
            }
          }
        },
        "description": "Ambiente production: exige chave de produção e empresa liberada para API. "
      }
    },
    "/production/nfe/{id}/corrections/{event}/xml": {
      "get": {
        "summary": "Baixar XML do evento autorizado e validado",
        "operationId": "production_get_homologation_nfe_id_corrections_event_xml",
        "x-required-ability": "nfe:correct",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "minimum": 1
            }
          },
          {
            "name": "event",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "minimum": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso",
            "content": {
              "application/xml": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "default": {
            "description": "Erro seguro; 401/403/404/409/415/422/429/500/503. 429 inclui Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "description": "Ambiente production: exige chave de produção e empresa liberada para API. "
      }
    },
    "/production/nfe/{id}/cancellations": {
      "get": {
        "summary": "Listar eventos locais do documento",
        "operationId": "production_get_homologation_nfe_id_cancellations",
        "x-required-ability": "nfe:cancel",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "minimum": 1
            }
          },
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 1000000
            }
          },
          {
            "name": "per_page",
            "in": "query",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/Event"
                      }
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "page": {
                          "type": "integer"
                        },
                        "per_page": {
                          "type": "integer"
                        },
                        "total": {
                          "type": "integer"
                        },
                        "last_page": {
                          "type": "integer"
                        }
                      },
                      "additionalProperties": false,
                      "required": [
                        "page",
                        "per_page",
                        "total",
                        "last_page"
                      ]
                    }
                  },
                  "additionalProperties": false,
                  "required": [
                    "data",
                    "meta"
                  ]
                }
              }
            }
          },
          "default": {
            "description": "Erro seguro; 401/403/404/409/415/422/429/500/503. 429 inclui Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "description": "Ambiente production: exige chave de produção e empresa liberada para API. "
      },
      "post": {
        "summary": "Preparar evento assinado para revisão, sem transmissão",
        "operationId": "production_post_homologation_nfe_id_cancellations",
        "x-required-ability": "nfe:cancel",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "minimum": 1
            }
          },
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          }
        ],
        "responses": {
          "201": {
            "description": "Sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/Event"
                    }
                  },
                  "additionalProperties": false,
                  "required": [
                    "data"
                  ]
                }
              }
            }
          },
          "default": {
            "description": "Erro seguro; 401/403/404/409/415/422/429/500/503. 429 inclui Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CancellationPrepare"
              }
            }
          }
        },
        "description": "Ambiente production: exige chave de produção e empresa liberada para API. "
      }
    },
    "/production/nfe/{id}/cancellations/{event}": {
      "get": {
        "summary": "Consultar evento local e hash de revisão",
        "operationId": "production_get_homologation_nfe_id_cancellations_event",
        "x-required-ability": "nfe:cancel",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "minimum": 1
            }
          },
          {
            "name": "event",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "minimum": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/Event"
                    }
                  },
                  "additionalProperties": false,
                  "required": [
                    "data"
                  ]
                }
              }
            }
          },
          "default": {
            "description": "Erro seguro; 401/403/404/409/415/422/429/500/503. 429 inclui Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "description": "Ambiente production: exige chave de produção e empresa liberada para API. "
      }
    },
    "/production/nfe/{id}/cancellations/{event}/transmissions": {
      "post": {
        "summary": "Enfileirar envio do evento confirmado",
        "operationId": "production_post_homologation_nfe_id_cancellations_event_transmissions",
        "x-required-ability": "nfe:cancel",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "minimum": 1
            }
          },
          {
            "name": "event",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "minimum": 1
            }
          },
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          }
        ],
        "responses": {
          "202": {
            "description": "Aceito para processamento, sem garantia de autorização fiscal.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Accepted"
                }
              }
            }
          },
          "default": {
            "description": "Erro seguro; 401/403/404/409/415/422/429/500/503. 429 inclui Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Transmit"
              }
            }
          }
        },
        "description": "Ambiente production: exige chave de produção e empresa liberada para API. Revalida credencial antes do envio. Evento já submetido é apenas observado, nunca reenviado. NF-e exige revisão com menos de 15 minutos; descarte e prepare novamente apenas eventos ainda não enviados."
      }
    },
    "/production/nfe/{id}/cancellations/{event}/reconcile": {
      "post": {
        "summary": "Enfileirar consulta do evento, sem retransmissão",
        "operationId": "production_post_homologation_nfe_id_cancellations_event_reconcile",
        "x-required-ability": "nfe:cancel",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "minimum": 1
            }
          },
          {
            "name": "event",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "minimum": 1
            }
          },
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          }
        ],
        "responses": {
          "202": {
            "description": "Aceito para processamento, sem garantia de autorização fiscal.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Accepted"
                }
              }
            }
          },
          "default": {
            "description": "Erro seguro; 401/403/404/409/415/422/429/500/503. 429 inclui Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {},
                "additionalProperties": false
              }
            }
          }
        },
        "description": "Ambiente production: exige chave de produção e empresa liberada para API. "
      }
    },
    "/production/nfe/{id}/cancellations/{event}/discard": {
      "post": {
        "summary": "Descartar somente evento preparado e nunca enviado",
        "operationId": "production_post_homologation_nfe_id_cancellations_event_discard",
        "x-required-ability": "nfe:cancel",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "minimum": 1
            }
          },
          {
            "name": "event",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "minimum": 1
            }
          },
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/Event"
                    }
                  },
                  "additionalProperties": false,
                  "required": [
                    "data"
                  ]
                }
              }
            }
          },
          "default": {
            "description": "Erro seguro; 401/403/404/409/415/422/429/500/503. 429 inclui Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {},
                "additionalProperties": false
              }
            }
          }
        },
        "description": "Ambiente production: exige chave de produção e empresa liberada para API. "
      }
    },
    "/production/nfe/{id}/cancellations/{event}/xml": {
      "get": {
        "summary": "Baixar XML do evento autorizado e validado",
        "operationId": "production_get_homologation_nfe_id_cancellations_event_xml",
        "x-required-ability": "nfe:cancel",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "minimum": 1
            }
          },
          {
            "name": "event",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "minimum": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso",
            "content": {
              "application/xml": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "default": {
            "description": "Erro seguro; 401/403/404/409/415/422/429/500/503. 429 inclui Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "description": "Ambiente production: exige chave de produção e empresa liberada para API. "
      }
    },
    "/production/nfse/{id}/cancellations": {
      "get": {
        "summary": "Listar eventos locais do documento",
        "operationId": "production_get_homologation_nfse_id_cancellations",
        "x-required-ability": "nfse:cancel",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "minimum": 1
            }
          },
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 1000000
            }
          },
          {
            "name": "per_page",
            "in": "query",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/Event"
                      }
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "page": {
                          "type": "integer"
                        },
                        "per_page": {
                          "type": "integer"
                        },
                        "total": {
                          "type": "integer"
                        },
                        "last_page": {
                          "type": "integer"
                        }
                      },
                      "additionalProperties": false,
                      "required": [
                        "page",
                        "per_page",
                        "total",
                        "last_page"
                      ]
                    }
                  },
                  "additionalProperties": false,
                  "required": [
                    "data",
                    "meta"
                  ]
                }
              }
            }
          },
          "default": {
            "description": "Erro seguro; 401/403/404/409/415/422/429/500/503. 429 inclui Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "description": "Ambiente production: exige chave de produção e empresa liberada para API. "
      },
      "post": {
        "summary": "Preparar evento assinado para revisão, sem transmissão",
        "operationId": "production_post_homologation_nfse_id_cancellations",
        "x-required-ability": "nfse:cancel",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "minimum": 1
            }
          },
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          }
        ],
        "responses": {
          "201": {
            "description": "Sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/Event"
                    }
                  },
                  "additionalProperties": false,
                  "required": [
                    "data"
                  ]
                }
              }
            }
          },
          "default": {
            "description": "Erro seguro; 401/403/404/409/415/422/429/500/503. 429 inclui Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NfseCancellationPrepare"
              }
            }
          }
        },
        "description": "Ambiente production: exige chave de produção e empresa liberada para API. "
      }
    },
    "/production/nfse/{id}/cancellations/{event}": {
      "get": {
        "summary": "Consultar evento local e hash de revisão",
        "operationId": "production_get_homologation_nfse_id_cancellations_event",
        "x-required-ability": "nfse:cancel",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "minimum": 1
            }
          },
          {
            "name": "event",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "minimum": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/Event"
                    }
                  },
                  "additionalProperties": false,
                  "required": [
                    "data"
                  ]
                }
              }
            }
          },
          "default": {
            "description": "Erro seguro; 401/403/404/409/415/422/429/500/503. 429 inclui Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "description": "Ambiente production: exige chave de produção e empresa liberada para API. "
      }
    },
    "/production/nfse/{id}/cancellations/{event}/transmissions": {
      "post": {
        "summary": "Enfileirar envio do evento confirmado",
        "operationId": "production_post_homologation_nfse_id_cancellations_event_transmissions",
        "x-required-ability": "nfse:cancel",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "minimum": 1
            }
          },
          {
            "name": "event",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "minimum": 1
            }
          },
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          }
        ],
        "responses": {
          "202": {
            "description": "Aceito para processamento, sem garantia de autorização fiscal.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Accepted"
                }
              }
            }
          },
          "default": {
            "description": "Erro seguro; 401/403/404/409/415/422/429/500/503. 429 inclui Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Transmit"
              }
            }
          }
        },
        "description": "Ambiente production: exige chave de produção e empresa liberada para API. Revalida credencial antes do envio. Evento já submetido é apenas observado, nunca reenviado. NF-e exige revisão com menos de 15 minutos; descarte e prepare novamente apenas eventos ainda não enviados."
      }
    },
    "/production/nfse/{id}/cancellations/{event}/reconcile": {
      "post": {
        "summary": "Enfileirar consulta do evento, sem retransmissão",
        "operationId": "production_post_homologation_nfse_id_cancellations_event_reconcile",
        "x-required-ability": "nfse:cancel",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "minimum": 1
            }
          },
          {
            "name": "event",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "minimum": 1
            }
          },
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          }
        ],
        "responses": {
          "202": {
            "description": "Aceito para processamento, sem garantia de autorização fiscal.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Accepted"
                }
              }
            }
          },
          "default": {
            "description": "Erro seguro; 401/403/404/409/415/422/429/500/503. 429 inclui Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {},
                "additionalProperties": false
              }
            }
          }
        },
        "description": "Ambiente production: exige chave de produção e empresa liberada para API. "
      }
    },
    "/production/nfse/{id}/cancellations/{event}/xml": {
      "get": {
        "summary": "Baixar XML do evento autorizado e validado",
        "operationId": "production_get_homologation_nfse_id_cancellations_event_xml",
        "x-required-ability": "nfse:cancel",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "minimum": 1
            }
          },
          {
            "name": "event",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "minimum": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso",
            "content": {
              "application/xml": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "default": {
            "description": "Erro seguro; 401/403/404/409/415/422/429/500/503. 429 inclui Retry-After.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "description": "Ambiente production: exige chave de produção e empresa liberada para API. "
      }
    },
    "/production/nfe/tax-preview": {
      "post": {
        "tags": [
          "NF-e"
        ],
        "summary": "Resolver grupos fiscais sem reservar número ou transmitir",
        "operationId": "production_previewNfeTaxConfiguration",
        "x-required-ability": "nfe:draft",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "customer_id",
                  "items"
                ],
                "properties": {
                  "customer_id": {
                    "type": "integer",
                    "minimum": 1
                  },
                  "fiscal_operation_id": {
                    "type": [
                      "integer",
                      "null"
                    ],
                    "minimum": 1
                  },
                  "items": {
                    "type": "array",
                    "minItems": 1,
                    "maxItems": 100,
                    "items": {
                      "type": "object",
                      "required": [
                        "product_id"
                      ],
                      "properties": {
                        "product_id": {
                          "type": "integer",
                          "minimum": 1
                        },
                        "tax_group_id": {
                          "type": [
                            "integer",
                            "null"
                          ],
                          "minimum": 1,
                          "description": "Grupo explícito deste item; ausente/nulo usa o grupo da operação e depois o padrão opcional do produto. Não altera cadastros."
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "data contém items resolvidos (incluindo st, ipi e fcp_rate do grupo quando aplicáveis), header e configuration_hash. Confirmar e usar em NfeCatalogCreate. Não enviar valores calculados. ST/IPI disponíveis somente por catálogo, com os limites documentados."
          },
          "403": {
            "description": "Sem permissão ou ambiente bloqueado."
          },
          "422": {
            "description": "Cadastro incompleto ou tratamento ainda não suportado."
          }
        },
        "description": "Ambiente production: exige chave de produção e empresa liberada para API. "
      }
    }
  },
  "components": {
    "securitySchemes": {
      "bearerAuth": {
        "type": "http",
        "scheme": "bearer",
        "bearerFormat": "nf3_<64 hex>"
      }
    },
    "parameters": {
      "IdempotencyKey": {
        "name": "Idempotency-Key",
        "in": "header",
        "required": true,
        "description": "UUID obrigatório em POST/PATCH. Mesmo owner/ambiente/chave com operação ou conteúdo diferente retorna 409.",
        "schema": {
          "type": "string",
          "format": "uuid"
        }
      }
    },
    "schemas": {
      "Error": {
        "type": "object",
        "properties": {
          "error": {
            "type": "object",
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              }
            },
            "additionalProperties": false,
            "required": [
              "code",
              "message"
            ]
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        },
        "additionalProperties": false,
        "required": [
          "error"
        ]
      },
      "Address": {
        "type": "object",
        "properties": {
          "street": {
            "type": "string",
            "maxLength": 128
          },
          "number": {
            "type": "string",
            "maxLength": 20
          },
          "complement": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 100
              },
              {
                "type": "null"
              }
            ]
          },
          "district": {
            "type": "string",
            "maxLength": 64
          },
          "zip": {
            "type": "string",
            "pattern": "^[0-9]{8}$"
          },
          "city_code": {
            "type": "integer"
          },
          "country_code": {
            "type": "integer",
            "enum": [
              1058
            ]
          }
        },
        "additionalProperties": false,
        "required": [
          "street",
          "number",
          "district",
          "zip",
          "city_code",
          "country_code"
        ]
      },
      "CustomerCreate": {
        "type": "object",
        "properties": {
          "company_name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 160
          },
          "tax_number": {
            "type": "string",
            "pattern": "^([0-9]{11}|[0-9]{14})$",
            "description": "CPF/CNPJ com dígitos verificadores; imutável após criação."
          },
          "ie": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 18
              },
              {
                "type": "null"
              }
            ]
          },
          "ie_indicator": {
            "type": "integer",
            "enum": [
              1,
              2,
              9
            ]
          },
          "im": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 18
              },
              {
                "type": "null"
              }
            ]
          },
          "contact_person_name": {
            "type": "string",
            "maxLength": 255
          },
          "contact_person_email": {
            "type": "string",
            "format": "email"
          },
          "contact_person_mobile": {
            "anyOf": [
              {
                "type": "string",
                "pattern": "^\\+[1-9][0-9]{7,14}$"
              },
              {
                "type": "null"
              }
            ]
          },
          "address": {
            "$ref": "#/components/schemas/Address"
          }
        },
        "additionalProperties": false,
        "required": [
          "company_name",
          "tax_number",
          "ie_indicator",
          "contact_person_name",
          "contact_person_email"
        ]
      },
      "CustomerPatch": {
        "type": "object",
        "properties": {
          "company_name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 160
          },
          "tax_number": {
            "type": "string",
            "pattern": "^([0-9]{11}|[0-9]{14})$",
            "description": "CPF/CNPJ com dígitos verificadores; imutável após criação."
          },
          "ie": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 18
              },
              {
                "type": "null"
              }
            ]
          },
          "ie_indicator": {
            "type": "integer",
            "enum": [
              1,
              2,
              9
            ]
          },
          "im": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 18
              },
              {
                "type": "null"
              }
            ]
          },
          "contact_person_name": {
            "type": "string",
            "maxLength": 255
          },
          "contact_person_email": {
            "type": "string",
            "format": "email"
          },
          "contact_person_mobile": {
            "anyOf": [
              {
                "type": "string",
                "pattern": "^\\+[1-9][0-9]{7,14}$"
              },
              {
                "type": "null"
              }
            ]
          },
          "address": {
            "$ref": "#/components/schemas/Address"
          },
          "revision": {
            "type": "string",
            "pattern": "^[a-f0-9]{64}$"
          }
        },
        "additionalProperties": false,
        "required": [
          "revision"
        ]
      },
      "Customer": {
        "type": "object",
        "properties": {
          "company_name": {
            "type": "string",
            "maxLength": 255
          },
          "tax_number": {
            "anyOf": [
              {
                "type": "string",
                "description": "Documento armazenado; pode estar ausente ou formatado no acervo anterior."
              },
              {
                "type": "null"
              }
            ]
          },
          "ie": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 18
              },
              {
                "type": "null"
              }
            ]
          },
          "ie_indicator": {
            "anyOf": [
              {
                "type": "integer",
                "enum": [
                  1,
                  2,
                  9
                ]
              },
              {
                "type": "null"
              }
            ]
          },
          "im": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 18
              },
              {
                "type": "null"
              }
            ]
          },
          "contact_person_name": {
            "type": "string",
            "maxLength": 255
          },
          "contact_person_email": {
            "type": "string",
            "description": "O acervo importado pode conter string vazia quando não havia email válido."
          },
          "contact_person_mobile": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "address": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AddressRead"
              },
              {
                "type": "null"
              }
            ]
          },
          "id": {
            "type": "integer",
            "minimum": 1
          },
          "revision": {
            "type": "string",
            "pattern": "^[a-f0-9]{64}$"
          },
          "customer_code": {
            "type": "string"
          }
        },
        "additionalProperties": false,
        "required": [
          "id",
          "revision"
        ]
      },
      "ProductCreate": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "maxLength": 255
          },
          "sku": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 255
              },
              {
                "type": "null"
              }
            ]
          },
          "description": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 4000
              },
              {
                "type": "null"
              }
            ]
          },
          "sale_price": {
            "type": "string",
            "pattern": "^[0-9]{1,8}(\\.[0-9]{1,2})?$"
          },
          "unit": {
            "type": "integer",
            "minimum": 1,
            "description": "ID da unidade previamente cadastrada na mesma empresa."
          },
          "is_active": {
            "type": "boolean"
          },
          "fiscal": {
            "type": "object",
            "properties": {
              "ncm": {
                "type": "string",
                "pattern": "^[0-9]{8}$"
              },
              "gtin": {
                "anyOf": [
                  {
                    "type": "string",
                    "pattern": "^([0-9]{8}|[0-9]{12,14})$"
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            },
            "additionalProperties": false,
            "required": [
              "ncm"
            ]
          }
        },
        "additionalProperties": false,
        "required": [
          "name",
          "sale_price",
          "unit",
          "is_active",
          "fiscal"
        ]
      },
      "ProductPatch": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "maxLength": 255
          },
          "sku": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 255
              },
              {
                "type": "null"
              }
            ]
          },
          "description": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 4000
              },
              {
                "type": "null"
              }
            ]
          },
          "sale_price": {
            "type": "string",
            "pattern": "^[0-9]{1,8}(\\.[0-9]{1,2})?$"
          },
          "unit": {
            "type": "integer",
            "minimum": 1,
            "description": "ID da unidade previamente cadastrada na mesma empresa."
          },
          "is_active": {
            "type": "boolean"
          },
          "fiscal": {
            "type": "object",
            "properties": {
              "ncm": {
                "type": "string",
                "pattern": "^[0-9]{8}$"
              },
              "gtin": {
                "anyOf": [
                  {
                    "type": "string",
                    "pattern": "^([0-9]{8}|[0-9]{12,14})$"
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            },
            "additionalProperties": false,
            "required": [
              "ncm"
            ]
          },
          "revision": {
            "type": "string",
            "pattern": "^[a-f0-9]{64}$"
          }
        },
        "additionalProperties": false,
        "required": [
          "revision"
        ]
      },
      "Product": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "maxLength": 255
          },
          "sku": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 255
              },
              {
                "type": "null"
              }
            ]
          },
          "description": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 4000
              },
              {
                "type": "null"
              }
            ]
          },
          "sale_price": {
            "anyOf": [
              {
                "type": "string",
                "pattern": "^[0-9]{1,8}(\\.[0-9]{1,2})?$"
              },
              {
                "type": "null"
              }
            ]
          },
          "unit": {
            "anyOf": [
              {
                "type": "integer",
                "minimum": 1,
                "description": "ID da unidade, ou null quando ausente/não numérica no acervo legado."
              },
              {
                "type": "null"
              }
            ]
          },
          "is_active": {
            "type": "boolean"
          },
          "fiscal": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "ncm": {
                    "anyOf": [
                      {
                        "type": "string",
                        "pattern": "^[0-9]{8}$"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "gtin": {
                    "anyOf": [
                      {
                        "type": "string",
                        "pattern": "^([0-9]{8}|[0-9]{12,14})$"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  }
                },
                "additionalProperties": false,
                "required": [
                  "ncm"
                ]
              },
              {
                "type": "null"
              }
            ]
          },
          "id": {
            "type": "integer",
            "minimum": 1
          },
          "revision": {
            "type": "string",
            "pattern": "^[a-f0-9]{64}$"
          },
          "code": {
            "type": "string"
          },
          "integration_code": {
            "type": "integer"
          }
        },
        "additionalProperties": false,
        "required": [
          "id",
          "revision"
        ]
      },
      "ServiceCreate": {
        "type": "object",
        "properties": {
          "description": {
            "type": "string",
            "minLength": 3,
            "maxLength": 2000
          },
          "national_code": {
            "type": "string",
            "pattern": "^[0-9]{6}$",
            "description": "Código suportado do catálogo oficial; não é CCM legado."
          },
          "is_active": {
            "type": "boolean"
          }
        },
        "additionalProperties": false,
        "required": [
          "description",
          "national_code",
          "is_active"
        ]
      },
      "ServicePatch": {
        "type": "object",
        "properties": {
          "description": {
            "type": "string",
            "minLength": 3,
            "maxLength": 2000
          },
          "national_code": {
            "type": "string",
            "pattern": "^[0-9]{6}$",
            "description": "Código suportado do catálogo oficial; não é CCM legado."
          },
          "is_active": {
            "type": "boolean"
          },
          "revision": {
            "type": "string",
            "pattern": "^[a-f0-9]{64}$"
          }
        },
        "additionalProperties": false,
        "required": [
          "revision"
        ]
      },
      "Service": {
        "type": "object",
        "properties": {
          "description": {
            "type": "string",
            "minLength": 3,
            "maxLength": 2000
          },
          "national_code": {
            "type": "string",
            "pattern": "^[0-9]{6}$",
            "description": "Código suportado do catálogo oficial; não é CCM legado."
          },
          "is_active": {
            "type": "boolean"
          },
          "id": {
            "type": "integer",
            "minimum": 1
          },
          "revision": {
            "type": "string",
            "pattern": "^[a-f0-9]{64}$"
          }
        },
        "additionalProperties": false,
        "required": [
          "id",
          "revision"
        ]
      },
      "NfeItem": {
        "type": "object",
        "properties": {
          "product_id": {
            "type": "integer",
            "minimum": 1
          },
          "quantity": {
            "type": "string",
            "pattern": "^[0-9]+(\\.[0-9]{1,4})?$"
          },
          "unit_price": {
            "type": "string",
            "pattern": "^[0-9]+(\\.[0-9]{1,10})?$"
          },
          "discount": {
            "type": "string",
            "pattern": "^[0-9]{1,12}(\\.[0-9]{1,2})?$"
          },
          "cfop": {
            "type": "string",
            "enum": [
              "5101",
              "5102",
              "6101",
              "6102"
            ]
          },
          "origin": {
            "type": "integer",
            "minimum": 0,
            "maximum": 8
          },
          "icms_code": {
            "type": "string",
            "enum": [
              "101",
              "102",
              "103",
              "300",
              "400",
              "00",
              "20",
              "40",
              "41",
              "50"
            ]
          },
          "pis_cst": {
            "type": "string",
            "enum": [
              "01",
              "02",
              "04",
              "05",
              "06",
              "07",
              "08",
              "09",
              "49"
            ]
          },
          "cofins_cst": {
            "type": "string",
            "enum": [
              "01",
              "02",
              "04",
              "05",
              "06",
              "07",
              "08",
              "09",
              "49"
            ]
          },
          "icms_rate": {
            "type": "string",
            "pattern": "^[0-9]+(\\.[0-9]{1,4})?$"
          },
          "credit_rate": {
            "type": "string",
            "pattern": "^[0-9]+(\\.[0-9]{1,4})?$"
          },
          "reduction_rate": {
            "type": "string",
            "pattern": "^[0-9]+(\\.[0-9]{1,4})?$"
          },
          "pis_rate": {
            "type": "string",
            "pattern": "^[0-9]+(\\.[0-9]{1,4})?$"
          },
          "cofins_rate": {
            "type": "string",
            "pattern": "^[0-9]+(\\.[0-9]{1,4})?$"
          },
          "rtc": {
            "type": "object",
            "additionalProperties": false,
            "description": "CRT 3, homologation, 2026 only. Server computes rates, reductions, bases and totals from official rules. Unsupported groups are rejected.",
            "required": [
              "c_class_trib"
            ],
            "properties": {
              "c_class_trib": {
                "type": "string",
                "pattern": "^[0-9]{6}$"
              },
              "c_class_trib_reg": {
                "type": [
                  "string",
                  "null"
                ],
                "pattern": "^[0-9]{6}$",
                "description": "Required only when classification demands regular taxation."
              }
            }
          },
          "difal": {
            "type": "object",
            "additionalProperties": false,
            "description": "Required for interstate CRT 3 sales to final-consumer non-taxpayers with taxable ICMS. All percentages require fiscal review; server calculates amounts. Not applicable to CRT 1 or taxpayer recipients.",
            "required": [
              "destination_rate",
              "fcp_rate",
              "destination_reduction",
              "fcp_reduction"
            ],
            "properties": {
              "destination_rate": {
                "type": "string",
                "pattern": "^[0-9]+(\\.[0-9]{1,4})?$"
              },
              "fcp_rate": {
                "type": "string",
                "pattern": "^[0-9]+(\\.[0-9]{1,4})?$"
              },
              "destination_reduction": {
                "type": "string",
                "pattern": "^[0-9]+(\\.[0-9]{1,4})?$"
              },
              "fcp_reduction": {
                "type": "string",
                "pattern": "^[0-9]+(\\.[0-9]{1,4})?$"
              }
            }
          }
        },
        "additionalProperties": false,
        "required": [
          "product_id",
          "quantity",
          "unit_price",
          "discount",
          "cfop",
          "origin",
          "icms_code",
          "pis_cst",
          "cofins_cst",
          "icms_rate",
          "credit_rate",
          "reduction_rate",
          "pis_rate",
          "cofins_rate"
        ]
      },
      "NfeCreate": {
        "oneOf": [
          {
            "$ref": "#/components/schemas/NfeManualCreate"
          },
          {
            "$ref": "#/components/schemas/NfeCatalogCreate"
          }
        ]
      },
      "NfePatch": {
        "oneOf": [
          {
            "$ref": "#/components/schemas/NfeManualPatch"
          },
          {
            "$ref": "#/components/schemas/NfeCatalogPatch"
          }
        ]
      },
      "NfseCreate": {
        "type": "object",
        "properties": {
          "customer_id": {
            "type": "integer",
            "minimum": 1
          },
          "service_id": {
            "type": "integer",
            "minimum": 1
          },
          "series": {
            "type": "string",
            "pattern": "^[0-9]{1,5}$",
            "description": "Inteiro entre 1 e 49999."
          },
          "number": {
            "type": "string",
            "pattern": "^[1-9][0-9]{0,14}$"
          },
          "competence": {
            "type": "string",
            "format": "date",
            "description": "Até hoje e anterior a 2027-01-01 no recorte atual."
          },
          "performance_municipality": {
            "type": "string",
            "pattern": "^[1-5][0-9]{6}$"
          },
          "amount": {
            "type": "string",
            "pattern": "^[0-9]{1,12}(\\.[0-9]{1,2})?$"
          },
          "simple_rate": {
            "type": "string",
            "pattern": "^[0-9]{1,2}(\\.[0-9]{1,2})?$"
          },
          "withholding": {
            "type": "integer",
            "enum": [
              1,
              2
            ]
          },
          "iss_rate": {
            "anyOf": [
              {
                "type": "string",
                "pattern": "^[0-9]{1,2}(\\.[0-9]{1,2})?$"
              },
              {
                "type": "null"
              }
            ]
          },
          "municipal_code": {
            "anyOf": [
              {
                "type": "string",
                "pattern": "^[0-9]{3}$",
                "description": "000 proibido; somente desdobramento nacional confirmado pelo município."
              },
              {
                "type": "null"
              }
            ]
          },
          "description": {
            "type": "string",
            "minLength": 3,
            "maxLength": 2000
          },
          "scope_confirmed": {
            "type": "boolean",
            "const": true
          },
          "retention_review_confirmed": {
            "type": "boolean",
            "description": "Confirmação explícita da revisão de retenção desta operação; exigida pelo preflight quando aplicável. Não substitui parâmetros municipais nem aceita retenção arbitrária."
          }
        },
        "additionalProperties": false,
        "required": [
          "customer_id",
          "service_id",
          "series",
          "number",
          "competence",
          "performance_municipality",
          "amount",
          "simple_rate",
          "description",
          "scope_confirmed"
        ]
      },
      "Transmit": {
        "type": "object",
        "properties": {
          "confirmed": {
            "type": "boolean",
            "const": true
          },
          "reviewed_hash": {
            "type": "string",
            "pattern": "^[a-f0-9]{64}$"
          }
        },
        "additionalProperties": false,
        "required": [
          "confirmed",
          "reviewed_hash"
        ]
      },
      "Attempt": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "minimum": 1
          },
          "document_id": {
            "type": "integer",
            "minimum": 1
          },
          "state": {
            "type": "string"
          },
          "result": {
            "anyOf": [
              {
                "type": "object",
                "description": "Somente resultado fiscal sanitizado; nunca resposta bruta ou XML.",
                "additionalProperties": true
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "additionalProperties": false,
        "required": [
          "id",
          "document_id",
          "state",
          "result"
        ]
      },
      "Document": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "minimum": 1
          },
          "model": {
            "type": "string",
            "enum": [
              "55",
              "nfse_nacional"
            ]
          },
          "environment": {
            "type": "integer",
            "enum": [
              2
            ]
          },
          "source": {
            "type": "string"
          },
          "series": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "number": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "nfse_number": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "status": {
            "type": "string"
          },
          "access_key": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "dps_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "recipient_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "recipient_document": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "total": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "issued_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "additionalProperties": false,
        "required": [
          "id",
          "model",
          "environment",
          "status"
        ]
      },
      "DocumentDetail": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "minimum": 1
          },
          "model": {
            "type": "string",
            "enum": [
              "55",
              "nfse_nacional"
            ]
          },
          "environment": {
            "type": "integer",
            "enum": [
              2
            ]
          },
          "source": {
            "type": "string"
          },
          "series": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "number": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "nfse_number": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "status": {
            "type": "string"
          },
          "access_key": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "dps_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "recipient_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "recipient_document": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "total": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "issued_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ]
          },
          "reviewed_hash": {
            "type": "string",
            "pattern": "^[a-f0-9]{64}$"
          },
          "review": {
            "type": "object",
            "description": "Snapshot revisado de emitente, destinatário, serviço/itens e parâmetros, sem XML ou credenciais.",
            "additionalProperties": true
          },
          "transmissions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Attempt"
            }
          }
        },
        "additionalProperties": false,
        "required": [
          "id",
          "model",
          "environment",
          "status"
        ]
      },
      "Accepted": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "request_id": {
                "type": "integer",
                "minimum": 1
              },
              "document_id": {
                "type": "integer",
                "minimum": 1
              },
              "event_id": {
                "type": "integer",
                "minimum": 1
              }
            },
            "additionalProperties": false,
            "required": [
              "request_id",
              "document_id"
            ]
          }
        },
        "additionalProperties": false,
        "required": [
          "data"
        ]
      },
      "Operation": {
        "type": "object",
        "properties": {
          "request_id": {
            "type": "integer",
            "minimum": 1
          },
          "document_id": {
            "type": "integer",
            "minimum": 1
          },
          "state": {
            "type": "string",
            "enum": [
              "queued",
              "running",
              "completed",
              "failed",
              "unknown"
            ]
          },
          "error_code": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "failure": {
            "anyOf": [
              {
                "type": "object",
                "additionalProperties": true
              },
              {
                "type": "null"
              }
            ]
          },
          "updated_at": {
            "type": "string",
            "format": "date-time"
          },
          "transmissions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Attempt"
            }
          },
          "event": {
            "$ref": "#/components/schemas/Event"
          }
        },
        "additionalProperties": false,
        "required": [
          "request_id",
          "document_id",
          "state"
        ]
      },
      "Received": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "minimum": 1
          },
          "model": {
            "type": "string"
          },
          "environment": {
            "type": "integer",
            "enum": [
              2
            ]
          },
          "series": {
            "type": "string"
          },
          "number": {
            "type": "string"
          },
          "issuer_name": {
            "type": "string"
          },
          "issuer_document": {
            "type": "string"
          },
          "total": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "access_key": {
            "type": "string"
          },
          "full_xml": {
            "type": "boolean"
          },
          "issued_at": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "required": [
          "id",
          "environment",
          "full_xml"
        ]
      },
      "Identity": {
        "type": "object",
        "properties": {
          "client_id": {
            "type": "integer",
            "minimum": 1
          },
          "company_id": {
            "type": "integer",
            "minimum": 1
          },
          "environment": {
            "type": "string",
            "enum": [
              "homologation"
            ]
          },
          "abilities": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "expires_at": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "required": [
          "client_id",
          "company_id",
          "environment",
          "abilities",
          "expires_at"
        ]
      },
      "Event": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "minimum": 1
          },
          "document_id": {
            "type": "integer",
            "minimum": 1
          },
          "environment": {
            "type": "integer",
            "const": 2
          },
          "type": {
            "type": "string",
            "enum": [
              "110110",
              "110111",
              "101101"
            ]
          },
          "sequence": {
            "type": "integer",
            "minimum": 1
          },
          "state": {
            "type": "string",
            "enum": [
              "prepared",
              "sending",
              "unknown",
              "authorized",
              "rejected",
              "discarded"
            ]
          },
          "reason": {
            "type": "string"
          },
          "reason_code": {
            "type": [
              "integer",
              "null"
            ]
          },
          "reviewed_hash": {
            "type": "string",
            "pattern": "^[a-f0-9]{64}$"
          },
          "created_at": {
            "type": "string",
            "format": "date-time"
          },
          "result": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "state": {
                    "type": "string"
                  },
                  "status_code": {
                    "type": "string"
                  },
                  "message": {
                    "type": "string"
                  },
                  "protocol": {
                    "type": "string"
                  },
                  "registered_at": {
                    "type": "string"
                  }
                },
                "additionalProperties": false
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "additionalProperties": false,
        "required": [
          "id",
          "document_id",
          "environment",
          "type",
          "sequence",
          "state",
          "reason",
          "reviewed_hash",
          "created_at",
          "result"
        ]
      },
      "CorrectionPrepare": {
        "type": "object",
        "properties": {
          "reason": {
            "type": "string",
            "minLength": 15,
            "maxLength": 1000
          },
          "conditions_accepted": {
            "type": "boolean",
            "const": true
          }
        },
        "additionalProperties": false,
        "required": [
          "reason",
          "conditions_accepted"
        ]
      },
      "CancellationPrepare": {
        "type": "object",
        "properties": {
          "reason": {
            "type": "string",
            "minLength": 15,
            "maxLength": 255
          },
          "conditions_accepted": {
            "type": "boolean",
            "const": true
          }
        },
        "additionalProperties": false,
        "required": [
          "reason",
          "conditions_accepted"
        ]
      },
      "NfseCancellationPrepare": {
        "type": "object",
        "properties": {
          "reason": {
            "type": "string",
            "minLength": 15,
            "maxLength": 255
          },
          "conditions_accepted": {
            "type": "boolean",
            "const": true
          },
          "reason_code": {
            "type": "integer",
            "enum": [
              1,
              2,
              9
            ]
          }
        },
        "additionalProperties": false,
        "required": [
          "reason",
          "conditions_accepted",
          "reason_code"
        ]
      },
      "AddressRead": {
        "type": "object",
        "properties": {
          "street": {
            "type": "string",
            "maxLength": 128
          },
          "number": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 20
              },
              {
                "type": "null"
              }
            ]
          },
          "complement": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 100
              },
              {
                "type": "null"
              }
            ]
          },
          "district": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 64
              },
              {
                "type": "null"
              }
            ]
          },
          "zip": {
            "anyOf": [
              {
                "type": "string",
                "pattern": "^[0-9]{8}$"
              },
              {
                "type": "null"
              }
            ]
          },
          "city_code": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ]
          },
          "country_code": {
            "type": "integer",
            "description": "Código BACEN armazenado; endereços legados podem ser estrangeiros."
          }
        },
        "additionalProperties": false,
        "required": [
          "street",
          "number",
          "district",
          "zip",
          "city_code",
          "country_code"
        ],
        "description": "Endereço armazenado; campos ausentes do legado podem ser nulos. Novas escritas seguem Address."
      },
      "NfeManualCreate": {
        "type": "object",
        "properties": {
          "customer_id": {
            "type": "integer",
            "minimum": 1
          },
          "series": {
            "type": "integer",
            "minimum": 0,
            "maximum": 889
          },
          "nat_op": {
            "type": "string",
            "minLength": 3,
            "maxLength": 60
          },
          "final_consumer": {
            "type": "boolean"
          },
          "presence": {
            "type": "string",
            "enum": [
              "0",
              "1",
              "2",
              "3",
              "5",
              "9"
            ]
          },
          "payment_method": {
            "type": "string",
            "enum": [
              "01",
              "90"
            ]
          },
          "additional_info": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 1500
              },
              {
                "type": "null"
              }
            ],
            "description": "NF-e infCpl. If omitted, uses company defaults for the route environment; an empty value clears the default."
          },
          "taxes_confirmed": {
            "type": "boolean",
            "const": true
          },
          "items": {
            "type": "array",
            "minItems": 1,
            "maxItems": 100,
            "items": {
              "$ref": "#/components/schemas/NfeItem"
            }
          },
          "tax_mode": {
            "type": "string",
            "enum": [
              "manual"
            ],
            "description": "Compatibilidade v1: impostos revisados enviados por item. Omitir mantém este comportamento na API."
          },
          "fisco_info": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 2000
              },
              {
                "type": "null"
              }
            ],
            "description": "NF-e infAdFisco. If omitted, uses company defaults for the route environment; an empty value clears the default."
          },
          "danfe_orientation": {
            "type": "string",
            "enum": [
              "1",
              "2"
            ],
            "description": "1 portrait, 2 landscape. If omitted, uses company defaults for the route environment."
          }
        },
        "additionalProperties": false,
        "required": [
          "customer_id",
          "series",
          "nat_op",
          "final_consumer",
          "presence",
          "payment_method",
          "taxes_confirmed",
          "items"
        ]
      },
      "NfeCatalogItem": {
        "type": "object",
        "properties": {
          "product_id": {
            "type": "integer",
            "minimum": 1
          },
          "quantity": {
            "type": "string",
            "pattern": "^[0-9]+(\\.[0-9]{1,4})?$"
          },
          "unit_price": {
            "type": "string",
            "pattern": "^[0-9]+(\\.[0-9]{1,10})?$"
          },
          "discount": {
            "type": "string",
            "pattern": "^[0-9]{1,12}(\\.[0-9]{1,2})?$"
          },
          "cfop": {
            "type": "string",
            "enum": [
              "5101",
              "5102",
              "6101",
              "6102"
            ]
          },
          "origin": {
            "type": "integer",
            "minimum": 0,
            "maximum": 8
          },
          "icms_code": {
            "type": "string",
            "enum": [
              "101",
              "102",
              "103",
              "300",
              "400",
              "00",
              "20",
              "40",
              "41",
              "50"
            ]
          },
          "pis_cst": {
            "type": "string",
            "enum": [
              "01",
              "02",
              "04",
              "05",
              "06",
              "07",
              "08",
              "09",
              "49"
            ]
          },
          "cofins_cst": {
            "type": "string",
            "enum": [
              "01",
              "02",
              "04",
              "05",
              "06",
              "07",
              "08",
              "09",
              "49"
            ]
          },
          "icms_rate": {
            "type": "string",
            "pattern": "^[0-9]+(\\.[0-9]{1,4})?$"
          },
          "credit_rate": {
            "type": "string",
            "pattern": "^[0-9]+(\\.[0-9]{1,4})?$"
          },
          "reduction_rate": {
            "type": "string",
            "pattern": "^[0-9]+(\\.[0-9]{1,4})?$"
          },
          "pis_rate": {
            "type": "string",
            "pattern": "^[0-9]+(\\.[0-9]{1,4})?$"
          },
          "cofins_rate": {
            "type": "string",
            "pattern": "^[0-9]+(\\.[0-9]{1,4})?$"
          },
          "rtc": {
            "type": "object",
            "additionalProperties": false,
            "description": "CRT 3, homologation, 2026 only. Server computes rates, reductions, bases and totals from official rules. Unsupported groups are rejected.",
            "required": [
              "c_class_trib"
            ],
            "properties": {
              "c_class_trib": {
                "type": "string",
                "pattern": "^[0-9]{6}$"
              },
              "c_class_trib_reg": {
                "type": [
                  "string",
                  "null"
                ],
                "pattern": "^[0-9]{6}$",
                "description": "Required only when classification demands regular taxation."
              }
            }
          },
          "difal": {
            "type": "object",
            "additionalProperties": false,
            "description": "Required for interstate CRT 3 sales to final-consumer non-taxpayers with taxable ICMS. All percentages require fiscal review; server calculates amounts. Not applicable to CRT 1 or taxpayer recipients.",
            "required": [
              "destination_rate",
              "fcp_rate",
              "destination_reduction",
              "fcp_reduction"
            ],
            "properties": {
              "destination_rate": {
                "type": "string",
                "pattern": "^[0-9]+(\\.[0-9]{1,4})?$"
              },
              "fcp_rate": {
                "type": "string",
                "pattern": "^[0-9]+(\\.[0-9]{1,4})?$"
              },
              "destination_reduction": {
                "type": "string",
                "pattern": "^[0-9]+(\\.[0-9]{1,4})?$"
              },
              "fcp_reduction": {
                "type": "string",
                "pattern": "^[0-9]+(\\.[0-9]{1,4})?$"
              }
            }
          },
          "tax_group_id": {
            "type": [
              "integer",
              "null"
            ],
            "minimum": 1,
            "description": "Grupo explícito deste item; ausente/nulo usa o grupo da operação e depois o padrão opcional do produto. Não altera cadastros."
          }
        },
        "additionalProperties": false,
        "required": [
          "product_id",
          "quantity",
          "unit_price",
          "discount"
        ],
        "description": "Dados comerciais; ICMS/ST/IPI/PIS/COFINS/RTC são resolvidos no servidor pelo grupo revisado. Não enviar objetos st/ipi ou valores de impostos calculados."
      },
      "NfeCatalogCreate": {
        "type": "object",
        "properties": {
          "customer_id": {
            "type": "integer",
            "minimum": 1
          },
          "series": {
            "type": "integer",
            "minimum": 0,
            "maximum": 889
          },
          "nat_op": {
            "type": "string",
            "minLength": 3,
            "maxLength": 60
          },
          "final_consumer": {
            "type": "boolean"
          },
          "presence": {
            "type": "string",
            "enum": [
              "0",
              "1",
              "2",
              "3",
              "5",
              "9"
            ]
          },
          "payment_method": {
            "type": "string",
            "enum": [
              "01",
              "90"
            ]
          },
          "additional_info": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 1500
              },
              {
                "type": "null"
              }
            ],
            "description": "NF-e infCpl. If omitted, uses company defaults for the route environment; an empty value clears the default."
          },
          "taxes_confirmed": {
            "type": "boolean",
            "const": true
          },
          "items": {
            "type": "array",
            "minItems": 1,
            "maxItems": 100,
            "items": {
              "$ref": "#/components/schemas/NfeCatalogItem"
            }
          },
          "tax_mode": {
            "type": "string",
            "const": "catalog"
          },
          "configuration_hash": {
            "type": "string",
            "minLength": 64,
            "maxLength": 64
          },
          "fiscal_operation_id": {
            "type": [
              "integer",
              "null"
            ],
            "minimum": 1
          },
          "fisco_info": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 2000
              },
              {
                "type": "null"
              }
            ],
            "description": "NF-e infAdFisco. If omitted, uses company defaults for the route environment; an empty value clears the default."
          },
          "danfe_orientation": {
            "type": "string",
            "enum": [
              "1",
              "2"
            ],
            "description": "1 portrait, 2 landscape. If omitted, uses company defaults for the route environment."
          }
        },
        "additionalProperties": false,
        "required": [
          "customer_id",
          "series",
          "nat_op",
          "final_consumer",
          "presence",
          "payment_method",
          "taxes_confirmed",
          "items",
          "tax_mode",
          "configuration_hash"
        ]
      },
      "NfeManualPatch": {
        "type": "object",
        "properties": {
          "customer_id": {
            "type": "integer",
            "minimum": 1
          },
          "series": {
            "type": "integer",
            "minimum": 0,
            "maximum": 889
          },
          "nat_op": {
            "type": "string",
            "minLength": 3,
            "maxLength": 60
          },
          "final_consumer": {
            "type": "boolean"
          },
          "presence": {
            "type": "string",
            "enum": [
              "0",
              "1",
              "2",
              "3",
              "5",
              "9"
            ]
          },
          "payment_method": {
            "type": "string",
            "enum": [
              "01",
              "90"
            ]
          },
          "additional_info": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 1500
              },
              {
                "type": "null"
              }
            ],
            "description": "NF-e infCpl. If omitted, preserves the existing draft snapshot; an empty value clears the field."
          },
          "taxes_confirmed": {
            "type": "boolean",
            "const": true
          },
          "items": {
            "type": "array",
            "minItems": 1,
            "maxItems": 100,
            "items": {
              "$ref": "#/components/schemas/NfeItem"
            }
          },
          "tax_mode": {
            "type": "string",
            "enum": [
              "manual"
            ],
            "description": "Compatibilidade v1: impostos revisados enviados por item. Omitir mantém este comportamento na API."
          },
          "previous_hash": {
            "type": "string",
            "pattern": "^[a-f0-9]{64}$"
          },
          "fisco_info": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 2000
              },
              {
                "type": "null"
              }
            ],
            "description": "NF-e infAdFisco. If omitted, preserves the existing draft snapshot; an empty value clears the field."
          },
          "danfe_orientation": {
            "type": "string",
            "enum": [
              "1",
              "2"
            ],
            "description": "1 portrait, 2 landscape. If omitted, preserves the existing draft snapshot."
          }
        },
        "additionalProperties": false,
        "required": [
          "customer_id",
          "series",
          "nat_op",
          "final_consumer",
          "presence",
          "payment_method",
          "taxes_confirmed",
          "items",
          "previous_hash"
        ]
      },
      "NfeCatalogPatch": {
        "type": "object",
        "properties": {
          "customer_id": {
            "type": "integer",
            "minimum": 1
          },
          "series": {
            "type": "integer",
            "minimum": 0,
            "maximum": 889
          },
          "nat_op": {
            "type": "string",
            "minLength": 3,
            "maxLength": 60
          },
          "final_consumer": {
            "type": "boolean"
          },
          "presence": {
            "type": "string",
            "enum": [
              "0",
              "1",
              "2",
              "3",
              "5",
              "9"
            ]
          },
          "payment_method": {
            "type": "string",
            "enum": [
              "01",
              "90"
            ]
          },
          "additional_info": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 1500
              },
              {
                "type": "null"
              }
            ],
            "description": "NF-e infCpl. If omitted, preserves the existing draft snapshot; an empty value clears the field."
          },
          "taxes_confirmed": {
            "type": "boolean",
            "const": true
          },
          "items": {
            "type": "array",
            "minItems": 1,
            "maxItems": 100,
            "items": {
              "$ref": "#/components/schemas/NfeCatalogItem"
            }
          },
          "tax_mode": {
            "type": "string",
            "const": "catalog"
          },
          "configuration_hash": {
            "type": "string",
            "minLength": 64,
            "maxLength": 64
          },
          "fiscal_operation_id": {
            "type": [
              "integer",
              "null"
            ],
            "minimum": 1
          },
          "previous_hash": {
            "type": "string",
            "pattern": "^[a-f0-9]{64}$"
          },
          "fisco_info": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 2000
              },
              {
                "type": "null"
              }
            ],
            "description": "NF-e infAdFisco. If omitted, preserves the existing draft snapshot; an empty value clears the field."
          },
          "danfe_orientation": {
            "type": "string",
            "enum": [
              "1",
              "2"
            ],
            "description": "1 portrait, 2 landscape. If omitted, preserves the existing draft snapshot."
          }
        },
        "additionalProperties": false,
        "required": [
          "customer_id",
          "series",
          "nat_op",
          "final_consumer",
          "presence",
          "payment_method",
          "taxes_confirmed",
          "items",
          "tax_mode",
          "configuration_hash",
          "previous_hash"
        ]
      }
    }
  }
}