{
  "openapi": "3.1.0",
  "info": {
    "title": "API REST do Sistema Loja",
    "version": "1.0.0",
    "description": "API pública do Sistema Loja (Nive Sistemas). Autentique com `Authorization: Bearer sl_live_...` e identifique a loja com `X-Store-Slug`.",
    "contact": {
      "name": "Nive Sistemas",
      "url": "https://nivesistemas.com.br"
    }
  },
  "servers": [
    {
      "url": "https://api.nivesistemas.com.br"
    }
  ],
  "security": [
    {
      "bearerAuth": [],
      "storeSlug": []
    }
  ],
  "tags": [
    {
      "name": "Autenticação"
    },
    {
      "name": "Categorias"
    },
    {
      "name": "Marcas"
    },
    {
      "name": "Tags de produto"
    },
    {
      "name": "Produtos"
    },
    {
      "name": "GTINs"
    },
    {
      "name": "Vendas / Pedidos"
    },
    {
      "name": "PDV"
    },
    {
      "name": "Clientes"
    },
    {
      "name": "Atualizações de cadastro do cliente"
    },
    {
      "name": "Ordens de serviço"
    },
    {
      "name": "Serviços (configuração)"
    },
    {
      "name": "Projetos de serviço"
    },
    {
      "name": "Contratos de serviço"
    },
    {
      "name": "Assinaturas de serviço"
    },
    {
      "name": "Apontamento de horas"
    },
    {
      "name": "Visitas de campo"
    },
    {
      "name": "Localização de técnicos"
    },
    {
      "name": "Checklists de serviço"
    },
    {
      "name": "Ativos / equipamentos"
    },
    {
      "name": "Recorrência de serviços"
    },
    {
      "name": "Relatórios de serviços e campo"
    },
    {
      "name": "Fidelidade"
    },
    {
      "name": "Campanhas promocionais"
    },
    {
      "name": "Cupons"
    },
    {
      "name": "Promoções com brinde"
    },
    {
      "name": "Taxas de cartão"
    },
    {
      "name": "Webhooks de saída (fiscal)"
    },
    {
      "name": "Chaves de API"
    },
    {
      "name": "Logs de atividade"
    },
    {
      "name": "Linha do tempo"
    },
    {
      "name": "Cofre de senhas e arquivos"
    },
    {
      "name": "Contas a receber"
    },
    {
      "name": "Cheques"
    },
    {
      "name": "Vendedores"
    },
    {
      "name": "Fornecedores"
    },
    {
      "name": "Transportadoras"
    },
    {
      "name": "Canais de venda"
    },
    {
      "name": "Compras"
    },
    {
      "name": "Conferência de estoque"
    },
    {
      "name": "Locais (filiais e depósitos)"
    },
    {
      "name": "Transferências de estoque"
    },
    {
      "name": "Operações fiscais (NF-e além da venda)"
    },
    {
      "name": "Produção (receitas e ordens)"
    },
    {
      "name": "Tintométrico (fábrica de tintas)"
    },
    {
      "name": "Segurança química (FISPQ)"
    },
    {
      "name": "Representantes comerciais"
    },
    {
      "name": "Formas de pagamento"
    },
    {
      "name": "Divisões de grade"
    },
    {
      "name": "Subdivisões de grade"
    },
    {
      "name": "Grade (eixos e sugestão)"
    },
    {
      "name": "Relatórios"
    },
    {
      "name": "Avaliações"
    },
    {
      "name": "Usuários"
    },
    {
      "name": "Configurações da loja"
    },
    {
      "name": "Configurações do PDV"
    },
    {
      "name": "Configurações de e-mail"
    },
    {
      "name": "Backups"
    },
    {
      "name": "Fiscal (NFC-e / NF-e)"
    },
    {
      "name": "Fiscal (NFS-e)"
    },
    {
      "name": "Cadastro NCM"
    },
    {
      "name": "Cadastro CEST"
    },
    {
      "name": "Tabela IBPT"
    },
    {
      "name": "Regras tributárias"
    },
    {
      "name": "Regras fiscais parametrizadas (ICMS-ST)"
    },
    {
      "name": "Alíquotas internas por UF"
    },
    {
      "name": "Contas a pagar"
    },
    {
      "name": "Cartões de crédito da empresa"
    },
    {
      "name": "Devoluções de venda"
    },
    {
      "name": "Devoluções de compra"
    },
    {
      "name": "Créditos de loja"
    },
    {
      "name": "Caixas (cadastro)"
    },
    {
      "name": "Sessões de caixa"
    },
    {
      "name": "Tabelas de preço"
    },
    {
      "name": "Fila de etiquetas"
    },
    {
      "name": "Agente de impressão"
    },
    {
      "name": "Cobranças PIX"
    },
    {
      "name": "Pagamentos com cartão (online)"
    },
    {
      "name": "Operações de maquininha"
    },
    {
      "name": "Inteligência artificial"
    },
    {
      "name": "Configurações de IA"
    },
    {
      "name": "Assistente"
    },
    {
      "name": "Envios / frete"
    },
    {
      "name": "Configurações de frete"
    },
    {
      "name": "E-commerce (Loja Integrada, Nuvemshop e Mercado Livre)"
    },
    {
      "name": "Catálogo online (admin)"
    },
    {
      "name": "Mercado Pago"
    },
    {
      "name": "PIX estático"
    },
    {
      "name": "Terminal Point (MP)"
    },
    {
      "name": "WhatsApp (config)"
    },
    {
      "name": "WhatsApp (destinatários)"
    },
    {
      "name": "Destinatários de e-mail"
    },
    {
      "name": "Armazenamento (S3)"
    },
    {
      "name": "Perfis de usuário"
    },
    {
      "name": "Notificações do sistema"
    },
    {
      "name": "PAF / Menu fiscal"
    },
    {
      "name": "Workers / jobs"
    },
    {
      "name": "Assinatura / billing"
    },
    {
      "name": "Assinatura da loja"
    },
    {
      "name": "Rotas públicas (sem autenticação)"
    },
    {
      "name": "Aprovações"
    },
    {
      "name": "Custos adicionais"
    },
    {
      "name": "Embalagem para presente"
    }
  ],
  "paths": {
    "/auth/login": {
      "post": {
        "tags": [
          "Autenticação"
        ],
        "summary": "Login — define cookies de sessão e retorna o usuário",
        "operationId": "post_auth_auth_login",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/acesso/auth/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "{ user, storeSlug } em sucesso; ou { requiresTwoFactor, pendingToken } / { requiresEnrollment, enrollmentToken } quando 2FA estiver ativo"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "username",
                  "password"
                ],
                "properties": {
                  "username": {
                    "type": "string",
                    "description": "Usuário"
                  },
                  "password": {
                    "type": "string",
                    "description": "Senha"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/auth/2fa/verify": {
      "post": {
        "tags": [
          "Autenticação"
        ],
        "summary": "Confirmar login com código 2FA",
        "operationId": "post_auth_auth_2fa_verify",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/acesso/auth/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "pendingToken",
                  "code"
                ],
                "properties": {
                  "pendingToken": {
                    "type": "string",
                    "description": "Token retornado no login"
                  },
                  "code": {
                    "type": "string",
                    "description": "Código TOTP"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/auth/2fa/recover": {
      "post": {
        "tags": [
          "Autenticação"
        ],
        "summary": "Login com código de recuperação 2FA",
        "operationId": "post_auth_auth_2fa_recover",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/acesso/auth/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "pendingToken",
                  "backupCode"
                ],
                "properties": {
                  "pendingToken": {
                    "type": "string",
                    "description": "Token retornado no login"
                  },
                  "backupCode": {
                    "type": "string",
                    "description": "Código de backup"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/auth/2fa/enroll/setup": {
      "post": {
        "tags": [
          "Autenticação"
        ],
        "summary": "Iniciar cadastro de 2FA (quando exigido)",
        "operationId": "post_auth_auth_2fa_enroll_setup",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/acesso/auth/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "enrollmentToken"
                ],
                "properties": {
                  "enrollmentToken": {
                    "type": "string",
                    "description": "Token retornado no login (requiresEnrollment)"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/auth/2fa/enroll/confirm": {
      "post": {
        "tags": [
          "Autenticação"
        ],
        "summary": "Confirmar cadastro de 2FA",
        "operationId": "post_auth_auth_2fa_enroll_confirm",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/acesso/auth/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "enrollmentToken",
                  "code"
                ],
                "properties": {
                  "enrollmentToken": {
                    "type": "string",
                    "description": "Token de enrollment"
                  },
                  "code": {
                    "type": "string",
                    "description": "Código TOTP"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/auth/me": {
      "get": {
        "tags": [
          "Autenticação"
        ],
        "summary": "Dados do usuário autenticado (sessão ou API key)",
        "operationId": "get_auth_auth_me",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/acesso/auth/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "{ id, username, name, permissions, ... }"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/auth/presence": {
      "post": {
        "tags": [
          "Autenticação"
        ],
        "summary": "Heartbeat de presença (usuário online no ERP agora)",
        "operationId": "post_auth_auth_presence",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/acesso/auth/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/auth/me/print-target": {
      "patch": {
        "tags": [
          "Agente de impressão"
        ],
        "summary": "Preferência de impressão (LOCAL|AGENT e folha A4)",
        "operationId": "patch_print-agent_auth_me_print_target",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/catalogo/print-agent/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/auth/me/ui-preferences": {
      "patch": {
        "tags": [
          "Agente de impressão"
        ],
        "summary": "Preferências de interface (favoritos da navegação)",
        "operationId": "patch_print-agent_auth_me_ui_preferences",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/catalogo/print-agent/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/auth/logout": {
      "post": {
        "tags": [
          "Autenticação"
        ],
        "summary": "Logout (limpa cookies de sessão)",
        "operationId": "post_auth_auth_logout",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/acesso/auth/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/auth/permissions/catalog": {
      "get": {
        "tags": [
          "Autenticação"
        ],
        "summary": "Catálogo de permissões",
        "operationId": "get_auth_auth_permissions_catalog",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/acesso/auth/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/auth/refresh": {
      "post": {
        "tags": [
          "Autenticação"
        ],
        "summary": "Renovar cookies de sessão",
        "operationId": "post_auth_auth_refresh",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/acesso/auth/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "{ user, storeSlug }"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/auth/forgot-password": {
      "post": {
        "tags": [
          "Autenticação"
        ],
        "summary": "Solicitar redefinição de senha por e-mail",
        "operationId": "post_auth_auth_forgot_password",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/acesso/auth/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "email"
                ],
                "properties": {
                  "email": {
                    "type": "string",
                    "description": "E-mail do usuário"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/auth/reset-password": {
      "post": {
        "tags": [
          "Autenticação"
        ],
        "summary": "Redefinir senha com o token recebido",
        "operationId": "post_auth_auth_reset_password",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/acesso/auth/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "x-sensitive": true,
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "token",
                  "password"
                ],
                "properties": {
                  "token": {
                    "type": "string",
                    "description": "Token do e-mail"
                  },
                  "password": {
                    "type": "string",
                    "description": "Nova senha"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/auth/my-stores": {
      "get": {
        "tags": [
          "Autenticação"
        ],
        "summary": "Lojas às quais o usuário tem acesso (sessão)",
        "operationId": "get_auth_auth_my_stores",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/acesso/auth/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/auth/switch-store": {
      "post": {
        "tags": [
          "Autenticação"
        ],
        "summary": "Trocar de loja na sessão atual",
        "operationId": "post_auth_auth_switch_store",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/acesso/auth/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "storeSlug"
                ],
                "properties": {
                  "storeSlug": {
                    "type": "string",
                    "description": "Slug da loja"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/categories": {
      "get": {
        "tags": [
          "Categorias"
        ],
        "summary": "Listar categoria",
        "operationId": "get_categories_categories",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/catalogo/categories/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "post": {
        "tags": [
          "Categorias"
        ],
        "summary": "Criar categoria",
        "operationId": "post_categories_categories",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/catalogo/categories/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "201 Created"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "name"
                ],
                "properties": {
                  "name": {
                    "type": "string",
                    "description": "Nome da categoria"
                  },
                  "defaultNcm": {
                    "type": "string",
                    "description": "NCM padrão (8 dígitos, opcional)"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/categories/{id}": {
      "patch": {
        "tags": [
          "Categorias"
        ],
        "summary": "Atualizar categoria",
        "operationId": "patch_categories_categories_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/catalogo/categories/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "name"
                ],
                "properties": {
                  "name": {
                    "type": "string",
                    "description": "Nome da categoria"
                  },
                  "defaultNcm": {
                    "type": "string",
                    "description": "NCM padrão (8 dígitos, opcional)"
                  }
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Categorias"
        ],
        "summary": "Excluir categoria",
        "operationId": "delete_categories_categories_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/catalogo/categories/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "204 No Content"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/categories/seed/profiles": {
      "get": {
        "tags": [
          "Categorias"
        ],
        "summary": "Ramos disponíveis para sugestão de categorias",
        "operationId": "get_categories_categories_seed_profiles",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/catalogo/categories/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "{ profiles: [{ id, label }], suggested }"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/categories/seed/suggest": {
      "post": {
        "tags": [
          "Categorias"
        ],
        "summary": "Sugerir categorias do ramo (catálogo fiscal + IA)",
        "operationId": "post_categories_categories_seed_suggest",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/catalogo/categories/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "{ profile, profileLabel, aiUsed, aiError, items }"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [],
                "properties": {
                  "profile": {
                    "type": "string",
                    "description": "Ramo; padrão vem do CNAE da loja"
                  },
                  "businessDescription": {
                    "type": "string",
                    "description": "Descrição livre do negócio (até 500 caracteres)"
                  },
                  "useAi": {
                    "type": "boolean",
                    "description": "false devolve só o catálogo do ramo"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/categories/seed/apply": {
      "post": {
        "tags": [
          "Categorias"
        ],
        "summary": "Cadastrar em massa as categorias escolhidas",
        "operationId": "post_categories_categories_seed_apply",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/catalogo/categories/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "{ created, skipped }"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "items"
                ],
                "properties": {
                  "items": {
                    "type": "string",
                    "description": "Até 60 categorias; nome já cadastrado é pulado"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/categories/{id}/products": {
      "get": {
        "tags": [
          "Categorias"
        ],
        "summary": "Produtos da categoria (paginado)",
        "operationId": "get_categories_categories_id_products",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/catalogo/categories/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "q",
            "in": "query",
            "required": false,
            "description": "Busca por nome, SKU ou código",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "page",
            "in": "query",
            "required": false,
            "description": "Página (padrão 1)",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "take",
            "in": "query",
            "required": false,
            "description": "Itens por página (1–100, padrão 10)",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/categories/{id}/products/{productId}": {
      "delete": {
        "tags": [
          "Categorias"
        ],
        "summary": "Tirar o produto da categoria (não apaga o produto)",
        "operationId": "delete_categories_categories_id_products_productId",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/catalogo/categories/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "productId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "204 No Content"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/categories/{id}/apply-ncm": {
      "post": {
        "tags": [
          "Categorias"
        ],
        "summary": "Aplicar o NCM padrão da categoria aos produtos sem NCM válido (nunca sobrescreve; ignora serviços)",
        "operationId": "post_categories_categories_id_apply_ncm",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/catalogo/categories/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/categories/bulk-delete": {
      "post": {
        "tags": [
          "Categorias"
        ],
        "summary": "Excluir categorias em lote (produtos ficam sem categoria)",
        "operationId": "post_categories_categories_bulk_delete",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/catalogo/categories/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Retorna { deleted, unlinkedProducts }"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "ids"
                ],
                "properties": {
                  "ids": {
                    "type": "string",
                    "description": "Até 200 categorias"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/brands": {
      "get": {
        "tags": [
          "Marcas"
        ],
        "summary": "Listar marca",
        "operationId": "get_brands_brands",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/catalogo/brands/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "post": {
        "tags": [
          "Marcas"
        ],
        "summary": "Criar marca",
        "operationId": "post_brands_brands",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/catalogo/brands/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "201 Created"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "name"
                ],
                "properties": {
                  "name": {
                    "type": "string",
                    "description": "Nome da marca"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/brands/{id}": {
      "patch": {
        "tags": [
          "Marcas"
        ],
        "summary": "Atualizar marca",
        "operationId": "patch_brands_brands_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/catalogo/brands/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "name"
                ],
                "properties": {
                  "name": {
                    "type": "string",
                    "description": "Nome da marca"
                  }
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Marcas"
        ],
        "summary": "Excluir marca",
        "operationId": "delete_brands_brands_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/catalogo/brands/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "204 No Content"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/brands/{id}/products": {
      "get": {
        "tags": [
          "Marcas"
        ],
        "summary": "Produtos da marca (paginado)",
        "operationId": "get_brands_brands_id_products",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/catalogo/brands/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "q",
            "in": "query",
            "required": false,
            "description": "Busca por nome, SKU ou código",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "page",
            "in": "query",
            "required": false,
            "description": "Página (padrão 1)",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "take",
            "in": "query",
            "required": false,
            "description": "Itens por página (1–100, padrão 10)",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/brands/{id}/products/{productId}": {
      "delete": {
        "tags": [
          "Marcas"
        ],
        "summary": "Tirar o produto da marca (não apaga o produto)",
        "operationId": "delete_brands_brands_id_products_productId",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/catalogo/brands/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "productId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "204 No Content"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/product-tags": {
      "get": {
        "tags": [
          "Tags de produto"
        ],
        "summary": "Listar tag",
        "operationId": "get_product-tags_product_tags",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/catalogo/product-tags/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "post": {
        "tags": [
          "Tags de produto"
        ],
        "summary": "Criar tag",
        "operationId": "post_product-tags_product_tags",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/catalogo/product-tags/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "201 Created"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "name"
                ],
                "properties": {
                  "name": {
                    "type": "string",
                    "description": "Nome da tag (duplicata seleciona a existente)"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/product-tags/{id}": {
      "patch": {
        "tags": [
          "Tags de produto"
        ],
        "summary": "Atualizar tag",
        "operationId": "patch_product-tags_product_tags_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/catalogo/product-tags/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "name"
                ],
                "properties": {
                  "name": {
                    "type": "string",
                    "description": "Nome da tag (duplicata seleciona a existente)"
                  }
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Tags de produto"
        ],
        "summary": "Excluir tag",
        "operationId": "delete_product-tags_product_tags_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/catalogo/product-tags/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "204 No Content"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/product-tags/bulk-delete": {
      "post": {
        "tags": [
          "Tags de produto"
        ],
        "summary": "Remover tags em lote",
        "operationId": "post_product-tags_product_tags_bulk_delete",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/catalogo/product-tags/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "ids"
                ],
                "properties": {
                  "ids": {
                    "type": "string",
                    "description": "IDs das tags"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/product-tags/{id}/products": {
      "get": {
        "tags": [
          "Tags de produto"
        ],
        "summary": "Produtos com a etiqueta (paginado)",
        "operationId": "get_product-tags_product_tags_id_products",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/catalogo/product-tags/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "q",
            "in": "query",
            "required": false,
            "description": "Busca por nome, SKU ou código",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "page",
            "in": "query",
            "required": false,
            "description": "Página (padrão 1)",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "take",
            "in": "query",
            "required": false,
            "description": "Itens por página (1–100, padrão 10)",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/product-tags/{id}/products/{productId}": {
      "delete": {
        "tags": [
          "Tags de produto"
        ],
        "summary": "Tirar a etiqueta do produto",
        "operationId": "delete_product-tags_product_tags_id_products_productId",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/catalogo/product-tags/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "productId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "204 No Content"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/products": {
      "get": {
        "tags": [
          "Produtos"
        ],
        "summary": "Listar produtos",
        "operationId": "get_products_products",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/catalogo/products/"
        },
        "parameters": [
          {
            "name": "q",
            "in": "query",
            "required": false,
            "description": "Busca por descrição",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "active",
            "in": "query",
            "required": false,
            "description": "true = só ativos; false = só inativos; omitido = todos",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "productType",
            "in": "query",
            "required": false,
            "description": "MERCHANDISE | SERVICE",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "needsCreditPrice",
            "in": "query",
            "required": false,
            "description": "true = só mercadorias com priceCredit <= 0",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "page",
            "in": "query",
            "required": false,
            "description": "Página (padrão 1)",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "take",
            "in": "query",
            "required": false,
            "description": "Itens por página (1–100, padrão 100)",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Inclui inactiveCount, missingCreditCount e summary { productCount, variantCount, stockQty } do escopo active/productType (summary independente de busca/página/needsCreditPrice)"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "post": {
        "tags": [
          "Produtos"
        ],
        "summary": "Criar produto",
        "operationId": "post_products_products",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/catalogo/products/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "201 Created"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "description",
                  "priceCash",
                  "priceCredit"
                ],
                "properties": {
                  "description": {
                    "type": "string",
                    "description": "Descrição"
                  },
                  "priceCash": {
                    "type": "number",
                    "description": "Preço à vista"
                  },
                  "priceCredit": {
                    "type": "number",
                    "description": "Preço a prazo"
                  },
                  "productType": {
                    "type": "string",
                    "description": "MERCHANDISE | SERVICE (padrão MERCHANDISE)"
                  },
                  "isComposite": {
                    "type": "boolean",
                    "description": "Produto kit/composto"
                  },
                  "components": {
                    "type": "array",
                    "items": {},
                    "description": "Componentes do kit: [{ componentVariantId, quantity, parentVariantId? }]"
                  },
                  "expectedComponentCount": {
                    "type": "integer",
                    "description": "Peças esperadas no kit"
                  },
                  "costPrice": {
                    "type": "number",
                    "description": "Custo fiscal — NF de entrada (opcional)"
                  },
                  "netWeightKg": {
                    "type": "string",
                    "description": "NF-e industrial: peso líquido por unidade de venda (kg). Também aceitos: packagingTareKg, volumeSpecies, tribUnit, tribUnitFactor, ipiUnitValue, ipiBaseMode, ipiInStBase, pisUnitValue, cofinsUnitValue. null limpa; omitido não altera. As variantes aceitam netWeightKg, packagingTareKg e tribUnitFactor próprios."
                  },
                  "managerialCost": {
                    "type": "number",
                    "description": "Custo gerencial — precificação e relatórios (opcional)"
                  },
                  "profitMargin": {
                    "type": "number",
                    "description": "Margem % sobre o custo gerencial (padrão 100). Com custo informado, alterar a margem recalcula o preço e vice-versa; o custo não muda."
                  },
                  "categoryId": {
                    "type": "string",
                    "format": "uuid",
                    "description": "ID da categoria"
                  },
                  "brandId": {
                    "type": "string",
                    "format": "uuid",
                    "description": "ID da marca"
                  },
                  "active": {
                    "type": "boolean",
                    "description": "Ativo (padrão true)"
                  },
                  "availableForDelivery": {
                    "type": "boolean",
                    "description": "Disponível no catálogo online"
                  },
                  "catalogDescription": {
                    "type": "string",
                    "description": "Descrição amigável no catálogo (vazio usa description)"
                  },
                  "isFavorite": {
                    "type": "boolean",
                    "description": "Favorito no PDV"
                  },
                  "stockQty": {
                    "type": "integer",
                    "description": "Estoque (produto sem grade)"
                  },
                  "gtin": {
                    "type": "string",
                    "description": "Código de barras do produto sem grade (opcional; vazio gera automático)"
                  },
                  "ncm": {
                    "type": "string",
                    "description": "NCM 8 dígitos"
                  },
                  "cest": {
                    "type": "string",
                    "description": "CEST"
                  },
                  "issServiceCode": {
                    "type": "string",
                    "description": "cTribNac / LC 116 (serviço NFS-e)"
                  },
                  "nbsCode": {
                    "type": "string",
                    "description": "Código NBS (serviço)"
                  },
                  "issRate": {
                    "type": "number",
                    "description": "Alíquota ISS %"
                  },
                  "issRetained": {
                    "type": "boolean",
                    "description": "ISS retido"
                  },
                  "variants": {
                    "type": "array",
                    "items": {},
                    "description": "Grades: label, division, subdivision, stockQty, gtin"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/products/description-match": {
      "get": {
        "tags": [
          "Produtos"
        ],
        "summary": "Verificar se já existe produto com a mesma descrição (ignora maiúsculas e acentos)",
        "operationId": "get_products_products_description_match",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/catalogo/products/"
        },
        "parameters": [
          {
            "name": "description",
            "in": "query",
            "required": true,
            "description": "Descrição a comparar",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "excludeId",
            "in": "query",
            "required": false,
            "description": "ID do produto em edição (não conta como duplicata)",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "{ exists: boolean, match?: { id, description } }"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/products/{id}": {
      "get": {
        "tags": [
          "Produtos"
        ],
        "summary": "Detalhe do produto com variantes",
        "operationId": "get_products_products_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/catalogo/products/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "patch": {
        "tags": [
          "Produtos"
        ],
        "summary": "Atualizar produto",
        "operationId": "patch_products_products_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/catalogo/products/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [],
                "properties": {
                  "description": {
                    "type": "string",
                    "description": "Descrição"
                  },
                  "priceCash": {
                    "type": "number",
                    "description": "Preço à vista. Com custo informado, altera a margem; o custo não muda."
                  },
                  "priceCredit": {
                    "type": "number",
                    "description": "Preço a prazo"
                  },
                  "productType": {
                    "type": "string",
                    "description": "MERCHANDISE | SERVICE"
                  },
                  "isComposite": {
                    "type": "boolean",
                    "description": "Produto kit/composto"
                  },
                  "categoryId": {
                    "type": "string",
                    "format": "uuid",
                    "description": "ID da categoria"
                  },
                  "brandId": {
                    "type": "string",
                    "format": "uuid",
                    "description": "ID da marca"
                  },
                  "active": {
                    "type": "boolean",
                    "description": "Ativo"
                  },
                  "availableForDelivery": {
                    "type": "boolean",
                    "description": "Disponível no catálogo online"
                  },
                  "catalogDescription": {
                    "type": "string",
                    "description": "Descrição amigável no catálogo (vazio usa description)"
                  },
                  "isFavorite": {
                    "type": "boolean",
                    "description": "Favorito no PDV"
                  },
                  "gtin": {
                    "type": "string",
                    "description": "Código de barras do produto sem grade"
                  },
                  "ncm": {
                    "type": "string",
                    "description": "NCM"
                  },
                  "issServiceCode": {
                    "type": "string",
                    "description": "Código de serviço NFS-e"
                  }
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Produtos"
        ],
        "summary": "Excluir produto",
        "operationId": "delete_products_products_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/catalogo/products/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "204 No Content"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/products/{id}/variants": {
      "post": {
        "tags": [
          "Produtos"
        ],
        "summary": "Adicionar variante (grade)",
        "operationId": "post_products_products_id_variants",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/catalogo/products/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "stockQty"
                ],
                "properties": {
                  "label": {
                    "type": "string",
                    "description": "Rótulo da grade"
                  },
                  "division": {
                    "type": "string",
                    "description": "Divisão (ex.: P, M)"
                  },
                  "subdivision": {
                    "type": "string",
                    "description": "Subdivisão (ex.: Azul)"
                  },
                  "stockQty": {
                    "type": "integer",
                    "description": "Quantidade em estoque"
                  },
                  "gtin": {
                    "type": "string",
                    "description": "Código de barras (opcional)"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/products/{id}/variants/bulk": {
      "post": {
        "tags": [
          "Produtos"
        ],
        "summary": "Adicionar variantes em lote",
        "operationId": "post_products_products_id_variants_bulk",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/catalogo/products/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "variants"
                ],
                "properties": {
                  "variants": {
                    "type": "array",
                    "items": {},
                    "description": "Lista de variantes"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/products/{id}/variants/{variantId}": {
      "patch": {
        "tags": [
          "Produtos"
        ],
        "summary": "Atualizar variante",
        "operationId": "patch_products_products_id_variants_variantId",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/catalogo/products/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "variantId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [],
                "properties": {
                  "label": {
                    "type": "string",
                    "description": "Rótulo"
                  },
                  "stockQty": {
                    "type": "integer",
                    "description": "Estoque"
                  },
                  "gtin": {
                    "type": "string",
                    "description": "GTIN"
                  }
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Produtos"
        ],
        "summary": "Excluir variante",
        "operationId": "delete_products_products_id_variants_variantId",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/catalogo/products/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "variantId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "204 No Content"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/products/bulk/active": {
      "patch": {
        "tags": [
          "Produtos"
        ],
        "summary": "Ativar/inativar em lote",
        "operationId": "patch_products_products_bulk_active",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/catalogo/products/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "ids",
                  "active"
                ],
                "properties": {
                  "ids": {
                    "type": "string",
                    "description": "IDs dos produtos"
                  },
                  "active": {
                    "type": "boolean",
                    "description": "Novo status"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/products/bulk/category": {
      "patch": {
        "tags": [
          "Produtos"
        ],
        "summary": "Alterar categoria em lote",
        "operationId": "patch_products_products_bulk_category",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/catalogo/products/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "ids"
                ],
                "properties": {
                  "ids": {
                    "type": "string",
                    "description": "IDs dos produtos"
                  },
                  "categoryId": {
                    "type": "string",
                    "format": "uuid",
                    "description": "Nova categoria (null para limpar)"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/products/bulk/price": {
      "patch": {
        "tags": [
          "Produtos"
        ],
        "summary": "Alterar preços em lote (%)",
        "operationId": "patch_products_products_bulk_price",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/catalogo/products/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "ids",
                  "percent"
                ],
                "properties": {
                  "ids": {
                    "type": "string",
                    "description": "IDs dos produtos"
                  },
                  "percent": {
                    "type": "number",
                    "description": "Percentual (-99 a 1000)"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/products/bulk/prices": {
      "patch": {
        "tags": [
          "Produtos"
        ],
        "summary": "Definir preços absolutos em lote (à vista / a prazo)",
        "operationId": "patch_products_products_bulk_prices",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/catalogo/products/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "items"
                ],
                "properties": {
                  "items": {
                    "type": "array",
                    "items": {},
                    "description": "[{ id, priceCash, priceCredit? }] (máx. 500)"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/products/bulk/merge-variants": {
      "post": {
        "tags": [
          "Produtos"
        ],
        "summary": "Mesclar variantes em um produto com grade",
        "operationId": "post_products_products_bulk_merge_variants",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/catalogo/products/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "description",
                  "divisionName",
                  "subdivisionName",
                  "variants"
                ],
                "properties": {
                  "description": {
                    "type": "string",
                    "description": "Descrição do produto resultante"
                  },
                  "divisionName": {
                    "type": "string",
                    "description": "Nome do eixo divisão"
                  },
                  "subdivisionName": {
                    "type": "string",
                    "description": "Nome do eixo subdivisão"
                  },
                  "variants": {
                    "type": "array",
                    "items": {},
                    "description": "[{ variantId, division?, subdivision? }] (mín. 2)"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/products/classification/pending": {
      "get": {
        "tags": [
          "Produtos"
        ],
        "summary": "Produtos sem categoria e/ou sem marca",
        "operationId": "get_products_products_classification_pending",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/catalogo/products/"
        },
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "description": "Página (padrão 1)",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "required": false,
            "description": "Itens por página (máx. 100)",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "filter",
            "in": "query",
            "required": false,
            "description": "no-category | no-brand | any",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "description": "Descrição ou código interno",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "includeInactive",
            "in": "query",
            "required": false,
            "description": "Inclui produtos inativos",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/products/classification/suggest": {
      "post": {
        "tags": [
          "Produtos"
        ],
        "summary": "Sugerir categoria/marca em lote (IA)",
        "operationId": "post_products_products_classification_suggest",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/catalogo/products/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "productIds"
                ],
                "properties": {
                  "productIds": {
                    "type": "string",
                    "description": "IDs dos produtos (máx. 60)"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/products/classification/apply": {
      "post": {
        "tags": [
          "Produtos"
        ],
        "summary": "Aplicar classificações confirmadas",
        "operationId": "post_products_products_classification_apply",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/catalogo/products/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Só preenche campo vazio; item com categoria/marca já definida volta em skipped"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "items"
                ],
                "properties": {
                  "items": {
                    "type": "array",
                    "items": {},
                    "description": "[{ productId, categoryId?, newCategoryName?, brandId?, newBrandName? }] (máx. 100)"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/products/composites/incomplete": {
      "get": {
        "tags": [
          "Produtos"
        ],
        "summary": "Kits/compostos incompletos (faltam componentes)",
        "operationId": "get_products_products_composites_incomplete",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/catalogo/products/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/products/composites/incomplete/suggest": {
      "get": {
        "tags": [
          "Produtos"
        ],
        "summary": "Sugestões para completar kits incompletos",
        "operationId": "get_products_products_composites_incomplete_suggest",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/catalogo/products/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/products/by-component/{variantId}/parents": {
      "get": {
        "tags": [
          "Produtos"
        ],
        "summary": "Produtos pai que usam a variante como componente",
        "operationId": "get_products_products_by_component_variantId_parents",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/catalogo/products/"
        },
        "parameters": [
          {
            "name": "variantId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/products/{id}/components": {
      "post": {
        "tags": [
          "Produtos"
        ],
        "summary": "Adicionar componente ao kit",
        "operationId": "post_products_products_id_components",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/catalogo/products/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "componentVariantId",
                  "quantity"
                ],
                "properties": {
                  "componentVariantId": {
                    "type": "string",
                    "format": "uuid",
                    "description": "Variante componente"
                  },
                  "quantity": {
                    "type": "number",
                    "description": "Quantidade no kit"
                  },
                  "parentVariantId": {
                    "type": "string",
                    "format": "uuid",
                    "description": "Variante pai (grade do kit), quando aplicável"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/products/{id}/composition/mark-ready": {
      "post": {
        "tags": [
          "Produtos"
        ],
        "summary": "Marcar composição do kit como pronta para venda",
        "operationId": "post_products_products_id_composition_mark_ready",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/catalogo/products/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/products/inactivate-out-of-stock-jobs": {
      "get": {
        "tags": [
          "Produtos"
        ],
        "summary": "Listar jobs de inativação de produtos sem estoque",
        "operationId": "get_products_products_inactivate_out_of_stock_jobs",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/catalogo/products/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "post": {
        "tags": [
          "Produtos"
        ],
        "summary": "Enfileirar inativação de todos os produtos ativos sem estoque",
        "operationId": "post_products_products_inactivate_out_of_stock_jobs",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/catalogo/products/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "202 Accepted"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/products/inactivate-out-of-stock-jobs/{jobId}": {
      "delete": {
        "tags": [
          "Produtos"
        ],
        "summary": "Cancelar job de inativação de produtos sem estoque",
        "operationId": "delete_products_products_inactivate_out_of_stock_jobs_jobId",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/catalogo/products/"
        },
        "parameters": [
          {
            "name": "jobId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "204 No Content"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/products/name-format-jobs": {
      "get": {
        "tags": [
          "Produtos"
        ],
        "summary": "Listar jobs de correção de nomes de produtos",
        "operationId": "get_products_products_name_format_jobs",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/catalogo/products/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "post": {
        "tags": [
          "Produtos"
        ],
        "summary": "Enfileirar correção dos nomes de produtos já cadastrados",
        "operationId": "post_products_products_name_format_jobs",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/catalogo/products/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "202 Accepted"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/products/name-format-jobs/{jobId}": {
      "delete": {
        "tags": [
          "Produtos"
        ],
        "summary": "Cancelar job de correção de nomes de produtos",
        "operationId": "delete_products_products_name_format_jobs_jobId",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/catalogo/products/"
        },
        "parameters": [
          {
            "name": "jobId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "204 No Content"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/products/image-optimize-jobs": {
      "get": {
        "tags": [
          "Produtos"
        ],
        "summary": "Listar jobs de otimização de fotos e quantas fotos ainda não foram otimizadas",
        "operationId": "get_products_products_image_optimize_jobs",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/catalogo/products/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "{ jobs, pendingImages }"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "post": {
        "tags": [
          "Produtos"
        ],
        "summary": "Enfileirar a otimização das fotos de produto enviadas antes da otimização no upload",
        "operationId": "post_products_products_image_optimize_jobs",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/catalogo/products/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "202 Accepted"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/products/image-optimize-jobs/{jobId}": {
      "delete": {
        "tags": [
          "Produtos"
        ],
        "summary": "Cancelar job de otimização de fotos",
        "operationId": "delete_products_products_image_optimize_jobs_jobId",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/catalogo/products/"
        },
        "parameters": [
          {
            "name": "jobId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "204 No Content"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/products/price-adjust-jobs": {
      "get": {
        "tags": [
          "Produtos"
        ],
        "summary": "Listar reajustes de preços em massa (últimos 30)",
        "operationId": "get_products_products_price_adjust_jobs",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/catalogo/products/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "post": {
        "tags": [
          "Produtos"
        ],
        "summary": "Enfileirar um reajuste de preços em massa (mesmo corpo da prévia)",
        "operationId": "post_products_products_price_adjust_jobs",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/catalogo/products/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "202 Accepted"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/products/price-adjust-jobs/preview": {
      "post": {
        "tags": [
          "Produtos"
        ],
        "summary": "Prévia de um reajuste de preços em massa: produtos alcançados e amostra antes/depois",
        "operationId": "post_products_products_price_adjust_jobs_preview",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/catalogo/products/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "{ matched, willUpdate, skipped, samples }"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "operation"
                ],
                "properties": {
                  "operation": {
                    "type": "string",
                    "description": "PERCENT, AMOUNT, MARGIN_ON_COST, CREDIT_FROM_CASH ou ROUND"
                  },
                  "target": {
                    "type": "string",
                    "description": "CASH, CREDIT ou BOTH (padrão BOTH)"
                  },
                  "value": {
                    "type": "number",
                    "description": "% ou R$ conforme a operação (negativo reduz)"
                  },
                  "rounding": {
                    "type": "string",
                    "description": "NONE, INTEGER, END_90 ou END_99"
                  },
                  "categoryId": {
                    "type": "string",
                    "description": "Limita a uma categoria"
                  },
                  "brandId": {
                    "type": "string",
                    "description": "Limita a uma marca"
                  },
                  "includeInactive": {
                    "type": "boolean",
                    "description": "Inclui produtos inativos"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/products/price-adjust-jobs/{jobId}/revert": {
      "post": {
        "tags": [
          "Produtos"
        ],
        "summary": "Enfileirar a reversão de um reajuste (restaura o preço anterior de cada produto)",
        "operationId": "post_products_products_price_adjust_jobs_jobId_revert",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/catalogo/products/"
        },
        "parameters": [
          {
            "name": "jobId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "202 Accepted"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/products/price-adjust-jobs/{jobId}": {
      "delete": {
        "tags": [
          "Produtos"
        ],
        "summary": "Cancelar reajuste de preços pendente ou em processamento",
        "operationId": "delete_products_products_price_adjust_jobs_jobId",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/catalogo/products/"
        },
        "parameters": [
          {
            "name": "jobId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "204 No Content"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/products/{id}/image": {
      "post": {
        "tags": [
          "Produtos"
        ],
        "summary": "Enviar imagem do produto (até 15 MB; gravada otimizada: até 1600 px, JPEG/PNG, com miniatura de 400 px em thumbnailUrl)",
        "operationId": "post_products_products_id_image",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/catalogo/products/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "delete": {
        "tags": [
          "Produtos"
        ],
        "summary": "Remover imagem do produto",
        "operationId": "delete_products_products_id_image",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/catalogo/products/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/products/{id}/sales-history": {
      "get": {
        "tags": [
          "Produtos"
        ],
        "summary": "Obter histórico de vendas",
        "operationId": "get_products_products_id_sales_history",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/catalogo/products/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/products/{id}/last-entries": {
      "get": {
        "tags": [
          "Produtos"
        ],
        "summary": "Obter última nota de entrada por grade",
        "operationId": "get_products_products_id_last_entries",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/catalogo/products/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/products/{id}/purchase-codes": {
      "get": {
        "tags": [
          "Produtos"
        ],
        "summary": "Listar códigos de compra do produto (fardo, código do fornecedor)",
        "operationId": "get_products_products_id_purchase_codes",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/catalogo/products/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "put": {
        "tags": [
          "Produtos"
        ],
        "summary": "Gravar os códigos de compra do produto",
        "operationId": "put_products_products_id_purchase_codes",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/catalogo/products/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Substitui a lista inteira. Na importação da NF-e o item casa por esses códigos e a quantidade é multiplicada pelo fator (1 FARDO = 12 un)"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "codes"
                ],
                "properties": {
                  "codes": {
                    "type": "array",
                    "items": {},
                    "description": "[{ id?, variantId?, kind: GTIN | SUPPLIER_CODE, code, supplierId (só SUPPLIER_CODE), label, factor, xmlUnit }]"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/products/{id}/variants/{variantId}/stock-movements": {
      "get": {
        "tags": [
          "Produtos"
        ],
        "summary": "Obter movimentações de estoque",
        "operationId": "get_products_products_id_variants_variantId_stock_movements",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/catalogo/products/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "variantId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/products/composites/match": {
      "get": {
        "tags": [
          "Produtos"
        ],
        "summary": "Conjuntos existentes (inclusive prontos) que podem receber novas grades",
        "operationId": "get_products_products_composites_match",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/catalogo/products/"
        },
        "parameters": [
          {
            "name": "q",
            "in": "query",
            "required": true,
            "description": "Busca",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "componentVariantIds",
            "in": "query",
            "required": false,
            "description": "Variantes componentes",
            "schema": {
              "type": "string",
              "description": "Tipo original: string[]"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/products/{id}/composites/grades": {
      "post": {
        "tags": [
          "Produtos"
        ],
        "summary": "Adicionar grades a um conjunto",
        "operationId": "post_products_products_id_composites_grades",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/catalogo/products/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "grades"
                ],
                "properties": {
                  "grades": {
                    "type": "array",
                    "items": {},
                    "description": "Grades: [{ label, division, subdivision, … }]"
                  },
                  "expectedComponentCount": {
                    "type": "integer",
                    "description": "Quantidade de componentes esperada"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/gtins": {
      "get": {
        "tags": [
          "GTINs"
        ],
        "summary": "Listar GTINs",
        "operationId": "get_gtins_gtins",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/catalogo/gtins/"
        },
        "parameters": [
          {
            "name": "q",
            "in": "query",
            "required": false,
            "description": "Busca",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "page",
            "in": "query",
            "required": false,
            "description": "Página",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "required": false,
            "description": "Itens por página",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/gtins/lookup/{gtin}": {
      "get": {
        "tags": [
          "GTINs"
        ],
        "summary": "Buscar produto/variante por GTIN",
        "operationId": "get_gtins_gtins_lookup_gtin",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/catalogo/gtins/"
        },
        "parameters": [
          {
            "name": "gtin",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/gtins/by-product/{productId}": {
      "get": {
        "tags": [
          "GTINs"
        ],
        "summary": "GTINs de um produto",
        "operationId": "get_gtins_gtins_by_product_productId",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/catalogo/gtins/"
        },
        "parameters": [
          {
            "name": "productId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/gtins/{variantId}": {
      "patch": {
        "tags": [
          "GTINs"
        ],
        "summary": "Alterar GTIN de uma variante",
        "operationId": "patch_gtins_gtins_variantId",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/catalogo/gtins/"
        },
        "parameters": [
          {
            "name": "variantId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "gtin"
                ],
                "properties": {
                  "gtin": {
                    "type": "string",
                    "description": "Novo GTIN"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/gtins/bulk": {
      "post": {
        "tags": [
          "GTINs"
        ],
        "summary": "Atualizar GTINs em lote",
        "operationId": "post_gtins_gtins_bulk",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/catalogo/gtins/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "updates"
                ],
                "properties": {
                  "updates": {
                    "type": "array",
                    "items": {},
                    "description": "Lista [{ variantId, gtin }]"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/sales": {
      "get": {
        "tags": [
          "Vendas / Pedidos"
        ],
        "summary": "Listar vendas",
        "operationId": "get_sales_sales",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/sales/"
        },
        "parameters": [
          {
            "name": "status",
            "in": "query",
            "required": false,
            "description": "DRAFT | COMPLETED | CANCELLED | DRAFT_CANCELLED. CANCELLED inclui também rascunhos cancelados",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "q",
            "in": "query",
            "required": false,
            "description": "Busca (nº pedido, cliente, CPF, vendedor)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "customerId",
            "in": "query",
            "required": false,
            "description": "Filtrar por cliente",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "sellerId",
            "in": "query",
            "required": false,
            "description": "Filtrar por vendedor(es) (UUIDs separados por vírgula)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "withoutSeller",
            "in": "query",
            "required": false,
            "description": "true = vendas sem vendedor",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "productId",
            "in": "query",
            "required": false,
            "description": "Filtrar vendas que contenham o produto",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "variantId",
            "in": "query",
            "required": false,
            "description": "Filtrar por grade/variante específica",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "campaignId",
            "in": "query",
            "required": false,
            "description": "UUID da campanha, ou \"none\" para vendas sem item de campanha",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "paymentMethodId",
            "in": "query",
            "required": false,
            "description": "Filtrar por forma(s) da venda (IDs separados por vírgula)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "receivablePaymentMethodId",
            "in": "query",
            "required": false,
            "description": "Filtrar por forma(s) das baixas do crediário (IDs separados por vírgula)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "page",
            "in": "query",
            "required": false,
            "description": "Página",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "required": false,
            "description": "Itens por página (máx. 100)",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "completedFrom",
            "in": "query",
            "required": false,
            "description": "YYYY-MM-DD — filtro completedAt (finalizadas/canceladas)",
            "schema": {
              "type": "string",
              "format": "date"
            }
          },
          {
            "name": "completedTo",
            "in": "query",
            "required": false,
            "description": "YYYY-MM-DD — filtro completedAt",
            "schema": {
              "type": "string",
              "format": "date"
            }
          },
          {
            "name": "updatedFrom",
            "in": "query",
            "required": false,
            "description": "YYYY-MM-DD — filtro updatedAt (rascunhos)",
            "schema": {
              "type": "string",
              "format": "date"
            }
          },
          {
            "name": "updatedTo",
            "in": "query",
            "required": false,
            "description": "YYYY-MM-DD — filtro updatedAt (rascunhos)",
            "schema": {
              "type": "string",
              "format": "date"
            }
          },
          {
            "name": "nfcePending",
            "in": "query",
            "required": false,
            "description": "true = COMPLETED com NFC-e EMIT_LATER sem documento",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "paidViaPaymentLink",
            "in": "query",
            "required": false,
            "description": "true = pagas via link de pagamento",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "sortBy",
            "in": "query",
            "required": false,
            "description": "Coluna de ordenação (ex.: updatedAt, completedAt, order)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "sortDir",
            "in": "query",
            "required": false,
            "description": "asc | desc",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "post": {
        "tags": [
          "Vendas / Pedidos"
        ],
        "summary": "Criar venda em rascunho",
        "operationId": "post_sales_sales",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/sales/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "201 Created — venda com status DRAFT"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [],
                "properties": {
                  "customerId": {
                    "type": "string",
                    "format": "uuid",
                    "description": "Cliente (opcional)"
                  },
                  "sellerId": {
                    "type": "string",
                    "format": "uuid",
                    "description": "Vendedor legado (opcional)"
                  },
                  "sellerIds": {
                    "type": "string",
                    "description": "Vendedores (comissão rateada)"
                  },
                  "priceListId": {
                    "type": "string",
                    "format": "uuid",
                    "description": "Tabela de preços"
                  },
                  "pendingInstagramHandle": {
                    "type": "string",
                    "description": "Instagram pendente (@usuario) quando ainda não há cliente"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/sales/summary": {
      "get": {
        "tags": [
          "Vendas / Pedidos"
        ],
        "summary": "Resumo para dashboard de vendas (rascunhos, hoje, NFC-e pendente)",
        "operationId": "get_sales_sales_summary",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/sales/"
        },
        "parameters": [
          {
            "name": "q",
            "in": "query",
            "required": false,
            "description": "Mesma busca textual da listagem",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "customerId",
            "in": "query",
            "required": false,
            "description": "Filtrar por cliente",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "sellerId",
            "in": "query",
            "required": false,
            "description": "Filtrar por vendedor(es) (UUIDs separados por vírgula)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "withoutSeller",
            "in": "query",
            "required": false,
            "description": "true = vendas sem vendedor",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "productId",
            "in": "query",
            "required": false,
            "description": "Filtrar vendas que contenham o produto",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "variantId",
            "in": "query",
            "required": false,
            "description": "Filtrar por grade/variante específica",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "campaignId",
            "in": "query",
            "required": false,
            "description": "UUID da campanha ou \"none\"",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "paymentMethodId",
            "in": "query",
            "required": false,
            "description": "Filtrar por forma(s) de pagamento (IDs separados por vírgula)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "receivablePaymentMethodId",
            "in": "query",
            "required": false,
            "description": "Filtrar por forma(s) das baixas do crediário (IDs separados por vírgula)",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "draftCount, draftTotalCash, completedTodayCount, completedTodayRevenue, nfcePendingCount, paidViaPaymentLinkCount, ecommerceOrdersActive, ecommerceAFaturarCount"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/sales/{id}": {
      "get": {
        "tags": [
          "Vendas / Pedidos"
        ],
        "summary": "Detalhe da venda com itens e pagamentos",
        "operationId": "get_sales_sales_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/sales/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Inclui `serviceOrder` ({ id, orderNumber, status }) quando a venda fatura uma OS."
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "patch": {
        "tags": [
          "Vendas / Pedidos"
        ],
        "summary": "Atualizar venda (cliente, vendedor, observações, descontos)",
        "operationId": "patch_sales_sales_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/sales/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [],
                "properties": {
                  "customerId": {
                    "type": "string",
                    "format": "uuid",
                    "description": "Cliente"
                  },
                  "sellerId": {
                    "type": "string",
                    "format": "uuid",
                    "description": "Vendedor"
                  },
                  "sellerIds": {
                    "type": "string",
                    "description": "Vendedores (comissão rateada)"
                  },
                  "notes": {
                    "type": "string",
                    "description": "Observações"
                  },
                  "shippingAmount": {
                    "type": "number",
                    "description": "Valor de entrega (frete financeiro)"
                  },
                  "priceListId": {
                    "type": "string",
                    "format": "uuid",
                    "description": "Tabela de preços"
                  },
                  "pendingInstagramHandle": {
                    "type": "string",
                    "description": "Instagram pendente"
                  },
                  "discountType": {
                    "type": "string",
                    "description": "NONE | PERCENT | FIXED"
                  },
                  "discountValue": {
                    "type": "number",
                    "description": "Valor do desconto"
                  },
                  "couponId": {
                    "type": "string",
                    "format": "uuid",
                    "description": "Cupom aplicado"
                  }
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Vendas / Pedidos"
        ],
        "summary": "Excluir venda em rascunho",
        "operationId": "delete_sales_sales_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/sales/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "204 No Content — apaga o registro. Prefira POST /cancel-draft para manter histórico."
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/sales/{id}/non-fiscal-receipt-html": {
      "get": {
        "tags": [
          "Vendas / Pedidos"
        ],
        "summary": "Cupom não fiscal 80 mm (somente venda sem NFC-e emitida)",
        "operationId": "get_sales_sales_id_non_fiscal_receipt_html",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/sales/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/sales/{id}/order-pdf": {
      "get": {
        "tags": [
          "Vendas / Pedidos"
        ],
        "summary": "PDF A4 do pedido (somente venda sem NFC-e emitida)",
        "operationId": "get_sales_sales_id_order_pdf",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/sales/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/sales/{id}/notify-receipt": {
      "post": {
        "tags": [
          "Vendas / Pedidos"
        ],
        "summary": "Enviar conferência da venda por e-mail ao cliente",
        "operationId": "post_sales_sales_id_notify_receipt",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/sales/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "email"
                ],
                "properties": {
                  "email": {
                    "type": "string",
                    "description": "E-mail de destino"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/sales/{id}/send-fiscal-email": {
      "post": {
        "tags": [
          "Vendas / Pedidos"
        ],
        "summary": "Enviar XML e PDF das notas autorizadas da venda (NFC-e/NF-e e/ou NFS-e)",
        "operationId": "post_sales_sales_id_send_fiscal_email",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/sales/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "email"
                ],
                "properties": {
                  "email": {
                    "type": "string",
                    "description": "E-mail de destino"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/sales/{id}/completed-at": {
      "patch": {
        "tags": [
          "Vendas / Pedidos"
        ],
        "summary": "Alterar data de conclusão de venda importada (LEGACY_IMPORT)",
        "operationId": "patch_sales_sales_id_completed_at",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/sales/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "saleDate"
                ],
                "properties": {
                  "saleDate": {
                    "type": "string",
                    "description": "AAAA-MM-DD"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/sales/{id}/payment-link": {
      "post": {
        "tags": [
          "Vendas / Pedidos"
        ],
        "summary": "Gerar link de pagamento para venda em rascunho",
        "operationId": "post_sales_sales_id_payment_link",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/sales/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "201 — { link, url } com token e expiresAt"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/sales/{id}/items": {
      "post": {
        "tags": [
          "Vendas / Pedidos"
        ],
        "summary": "Adicionar item à venda",
        "operationId": "post_sales_sales_id_items",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/sales/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "variantId",
                  "quantity"
                ],
                "properties": {
                  "variantId": {
                    "type": "string",
                    "format": "uuid",
                    "description": "ID da variante do produto"
                  },
                  "quantity": {
                    "type": "integer",
                    "description": "Quantidade"
                  },
                  "unitPriceCash": {
                    "type": "number",
                    "description": "Preço à vista manual"
                  },
                  "unitPriceCredit": {
                    "type": "number",
                    "description": "Preço a prazo manual"
                  },
                  "lineNotes": {
                    "type": "string",
                    "description": "Observação do item"
                  },
                  "discountType": {
                    "type": "string",
                    "description": "NONE | PERCENT | FIXED"
                  },
                  "discountValue": {
                    "type": "number",
                    "description": "Desconto do item"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/sales/{id}/items/bulk-remove": {
      "post": {
        "tags": [
          "Vendas / Pedidos"
        ],
        "summary": "Remover vários itens da venda (rascunho)",
        "operationId": "post_sales_sales_id_items_bulk_remove",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/sales/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "itemIds"
                ],
                "properties": {
                  "itemIds": {
                    "type": "string",
                    "description": "IDs dos itens do carrinho a remover"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/sales/{id}/items/{itemId}": {
      "patch": {
        "tags": [
          "Vendas / Pedidos"
        ],
        "summary": "Alterar item (quantidade, preços, desconto, notas)",
        "operationId": "patch_sales_sales_id_items_itemId",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/sales/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "itemId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [],
                "properties": {
                  "quantity": {
                    "type": "integer",
                    "description": "Nova quantidade"
                  },
                  "unitPriceCash": {
                    "type": "number",
                    "description": "Preço à vista"
                  },
                  "unitPriceCredit": {
                    "type": "number",
                    "description": "Preço a prazo"
                  },
                  "lineNotes": {
                    "type": "string",
                    "description": "Observação do item"
                  },
                  "discountType": {
                    "type": "string",
                    "description": "NONE | PERCENT | FIXED"
                  },
                  "discountValue": {
                    "type": "number",
                    "description": "Desconto do item"
                  }
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Vendas / Pedidos"
        ],
        "summary": "Remover item da venda",
        "operationId": "delete_sales_sales_id_items_itemId",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/sales/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "itemId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "204 No Content"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/sales/{id}/items/{itemId}/campaign-price": {
      "post": {
        "tags": [
          "Vendas / Pedidos"
        ],
        "summary": "Aplicar preço de campanha ao item",
        "operationId": "post_sales_sales_id_items_itemId_campaign_price",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/sales/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "itemId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "delete": {
        "tags": [
          "Vendas / Pedidos"
        ],
        "summary": "Remover preço de campanha do item",
        "operationId": "delete_sales_sales_id_items_itemId_campaign_price",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/sales/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "itemId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/sales/{id}/cancel-draft": {
      "post": {
        "tags": [
          "Vendas / Pedidos"
        ],
        "summary": "Cancelar rascunho/condicional sem excluir",
        "operationId": "post_sales_sales_id_cancel_draft",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/sales/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "200 — { id, status: DRAFT_CANCELLED, cancelledAt, orderNumber, itemCount }. Peças voltam à loja; o pedido permanece na aba Canceladas."
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [],
                "properties": {
                  "reason": {
                    "type": "string",
                    "description": "Motivo opcional (máx. 500)"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/sales/{id}/finalize": {
      "post": {
        "tags": [
          "Vendas / Pedidos"
        ],
        "summary": "Finalizar venda (baixa estoque, registra pagamentos). Se a venda veio de OS (to-sale), marca a OS como INVOICED, vincula NFS-e à OS/venda e cancela recebíveis abertos da OS.",
        "operationId": "post_sales_sales_id_finalize",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/sales/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "payments"
                ],
                "properties": {
                  "priceBasis": {
                    "type": "string",
                    "description": "CASH | CREDIT | MIXED (opcional)"
                  },
                  "payments": {
                    "type": "array",
                    "items": {},
                    "description": "Lista: paymentMethodId, amount, installments?, amountTendered?, pixChargeId?, cardPaymentId?, storeCreditId?, ..."
                  },
                  "customerId": {
                    "type": "string",
                    "format": "uuid",
                    "description": "Cliente"
                  },
                  "sellerId": {
                    "type": "string",
                    "format": "uuid",
                    "description": "Vendedor legado"
                  },
                  "sellerIds": {
                    "type": "string",
                    "description": "Vendedores (comissão rateada)"
                  },
                  "discountType": {
                    "type": "string",
                    "description": "NONE | PERCENT | FIXED"
                  },
                  "discountValue": {
                    "type": "number",
                    "description": "Valor do desconto"
                  },
                  "skipCashTableDiscount": {
                    "type": "boolean",
                    "description": "Pular desconto da tabela à vista"
                  },
                  "useCashPriceOnCredit": {
                    "type": "boolean",
                    "description": "Crediário usando preço à vista"
                  },
                  "notes": {
                    "type": "string",
                    "description": "Observações"
                  },
                  "nfceIntent": {
                    "type": "string",
                    "description": "Intent do documento de mercadoria (NFC-e 65 ou NF-e 55): EMIT_NOW | EMIT_LATER | NON_TAXABLE | SKIP"
                  },
                  "nfseIntent": {
                    "type": "string",
                    "description": "Intent da NFS-e (serviço): EMIT_NOW | EMIT_LATER | SKIP. Se a OS vinculada já tiver NFS-e autorizada/pendente, não reemite."
                  },
                  "goodsDocumentType": {
                    "type": "string",
                    "description": "Override do tipo documental de mercadoria: NFCE_65 | NFE_55 | NONE. Sem override, usa a preferência do cliente e em seguida o resolver (canal / contribuinte)."
                  },
                  "transactionIntermediary": {
                    "type": "object",
                    "description": "Intermediador da transação (NT 2020.006). Omitido = sem marketplace (balcão/remessa). indIntermed: 0 | 1; se 1, informe cnpj e registrationId (idCadIntTran)."
                  },
                  "nonTaxableReason": {
                    "type": "string",
                    "description": "Motivo da não tributação"
                  },
                  "nonTaxableTaxId": {
                    "type": "string",
                    "description": "CPF/CNPJ para não tributável"
                  },
                  "loyaltyRedeemPoints": {
                    "type": "integer",
                    "description": "Pontos de fidelidade a resgatar"
                  },
                  "settleReceivables": {
                    "type": "object",
                    "description": "{ amount, paymentMethodId, discountAmount?, cardPaymentId?, installments?, notes? } — baixa de crediário junto com a venda"
                  },
                  "notifyCustomerWhatsApp": {
                    "type": "boolean",
                    "description": "Enviar comprovante ao cliente no WhatsApp. Omitido mantém o envio automático."
                  },
                  "customerWhatsAppPhone": {
                    "type": "string",
                    "description": "WhatsApp informado no PDV quando o cliente ainda não tem número"
                  },
                  "nfeExtras": {
                    "type": "string",
                    "description": "NF-e 55: transporte e dados opcionais { freightMode?, vehicle?, trailers?, volumes?, insurance?, otherExpenses?, taxpayerNote?, fiscoNote? }. Só vale com goodsDocumentType NFE_55; ignorado na NFC-e."
                  }
                }
              }
            }
          }
        }
      }
    },
    "/sales/{id}/nfe-checkout": {
      "get": {
        "tags": [
          "Vendas / Pedidos"
        ],
        "summary": "Prévia do checkout da NF-e 55 (frete, volumes, duplicatas, avisos)",
        "operationId": "get_sales_sales_id_nfe_checkout",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/sales/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "{ saleId, shippingAmount, carrier, calculatedVolume, effectiveVolume, extras, duplicates[{ number, dueDate, amount }], hazardItems[{ description, text, warnings }], warnings[], locked }. Funciona com a venda em rascunho; locked = NF-e já autorizada."
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/sales/{id}/nfe-extras": {
      "put": {
        "tags": [
          "Vendas / Pedidos"
        ],
        "summary": "Gravar transporte e dados opcionais da NF-e 55 (venda finalizada, NF-e ainda não autorizada)",
        "operationId": "put_sales_sales_id_nfe_extras",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/sales/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "{ nfeExtras }. 409/400 com error em português quando a NF-e não pode mais ser alterada ou os dados são inválidos."
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "nfeExtras"
                ],
                "properties": {
                  "nfeExtras": {
                    "type": "string",
                    "description": "freightMode (0|1|2|3|4|9), vehicle { plate, uf, rntc? }, trailers[] (até 5), volumes { quantity, species, brand, number, netWeight, grossWeight, seals[] }, insurance e otherExpenses (R$, fatias do frete cobrado), taxpayerNote e fiscoNote (até 2000). null limpa tudo."
                  }
                }
              }
            }
          }
        }
      }
    },
    "/sales/{id}/customer": {
      "patch": {
        "tags": [
          "Vendas / Pedidos"
        ],
        "summary": "Alterar cliente da venda",
        "operationId": "patch_sales_sales_id_customer",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/sales/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/sales/bulk/seller": {
      "patch": {
        "tags": [
          "Vendas / Pedidos"
        ],
        "summary": "Alterar vendedor",
        "operationId": "patch_sales_sales_bulk_seller",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/sales/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/sales/bulk/seller/apply-defaults/jobs": {
      "get": {
        "tags": [
          "Vendas / Pedidos"
        ],
        "summary": "Listar jobs",
        "operationId": "get_sales_sales_bulk_seller_apply_defaults_jobs",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/sales/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/sales/bulk/seller/apply-defaults/jobs/{jobId}": {
      "delete": {
        "tags": [
          "Vendas / Pedidos"
        ],
        "summary": "Cancelar / remover job",
        "operationId": "delete_sales_sales_bulk_seller_apply_defaults_jobs_jobId",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/sales/"
        },
        "parameters": [
          {
            "name": "jobId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/sales/bulk/seller/apply-defaults": {
      "post": {
        "tags": [
          "Vendas / Pedidos"
        ],
        "summary": "Aplicar vendedor padrão em lote",
        "operationId": "post_sales_sales_bulk_seller_apply_defaults",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/sales/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/sales/bulk/seller/recalc-commissions/jobs": {
      "get": {
        "tags": [
          "Vendas / Pedidos"
        ],
        "summary": "Listar jobs",
        "operationId": "get_sales_sales_bulk_seller_recalc_commissions_jobs",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/sales/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/sales/bulk/seller/recalc-commissions/jobs/{jobId}": {
      "delete": {
        "tags": [
          "Vendas / Pedidos"
        ],
        "summary": "Cancelar / remover job",
        "operationId": "delete_sales_sales_bulk_seller_recalc_commissions_jobs_jobId",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/sales/"
        },
        "parameters": [
          {
            "name": "jobId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/sales/bulk/seller/recalc-commissions": {
      "post": {
        "tags": [
          "Vendas / Pedidos"
        ],
        "summary": "Recalcular comissões em lote",
        "operationId": "post_sales_sales_bulk_seller_recalc_commissions",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/sales/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/sales/seller-schedules": {
      "get": {
        "tags": [
          "Vendas / Pedidos"
        ],
        "summary": "Listar agendas de vendedor",
        "operationId": "get_sales_sales_seller_schedules",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/sales/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "post": {
        "tags": [
          "Vendas / Pedidos"
        ],
        "summary": "Criar agenda de vendedor",
        "operationId": "post_sales_sales_seller_schedules",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/sales/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/sales/seller-schedules/apply/jobs": {
      "get": {
        "tags": [
          "Vendas / Pedidos"
        ],
        "summary": "Listar jobs",
        "operationId": "get_sales_sales_seller_schedules_apply_jobs",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/sales/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/sales/seller-schedules/apply/jobs/{jobId}": {
      "delete": {
        "tags": [
          "Vendas / Pedidos"
        ],
        "summary": "Cancelar / remover job",
        "operationId": "delete_sales_sales_seller_schedules_apply_jobs_jobId",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/sales/"
        },
        "parameters": [
          {
            "name": "jobId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/sales/seller-schedules/{id}": {
      "get": {
        "tags": [
          "Vendas / Pedidos"
        ],
        "summary": "Detalhe da agenda",
        "operationId": "get_sales_sales_seller_schedules_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/sales/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "patch": {
        "tags": [
          "Vendas / Pedidos"
        ],
        "summary": "Atualizar agenda",
        "operationId": "patch_sales_sales_seller_schedules_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/sales/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "delete": {
        "tags": [
          "Vendas / Pedidos"
        ],
        "summary": "Excluir agenda",
        "operationId": "delete_sales_sales_seller_schedules_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/sales/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/sales/seller-schedules/{id}/preview": {
      "get": {
        "tags": [
          "Vendas / Pedidos"
        ],
        "summary": "Prévia da aplicação da agenda",
        "operationId": "get_sales_sales_seller_schedules_id_preview",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/sales/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/sales/seller-schedules/{id}/apply": {
      "post": {
        "tags": [
          "Vendas / Pedidos"
        ],
        "summary": "Aplicar",
        "operationId": "post_sales_sales_seller_schedules_id_apply",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/sales/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/sales/{id}/seller": {
      "patch": {
        "tags": [
          "Vendas / Pedidos"
        ],
        "summary": "Alterar vendedor",
        "operationId": "patch_sales_sales_id_seller",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/sales/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/sales/{id}/recalculate-prices": {
      "post": {
        "tags": [
          "Vendas / Pedidos"
        ],
        "summary": "Recalcular preços",
        "operationId": "post_sales_sales_id_recalculate_prices",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/sales/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/sales/{id}/recalculate-card-fees": {
      "post": {
        "tags": [
          "Vendas / Pedidos"
        ],
        "summary": "Recalcular taxas de cartão da venda",
        "operationId": "post_sales_sales_id_recalculate_card_fees",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/sales/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/sales/{id}/credit-term-printed": {
      "post": {
        "tags": [
          "Vendas / Pedidos"
        ],
        "summary": "Registrar impressão do carnê/termo de crédito",
        "operationId": "post_sales_sales_id_credit_term_printed",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/sales/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/sales/{id}/cancel": {
      "post": {
        "tags": [
          "Vendas / Pedidos"
        ],
        "summary": "Cancelar (senha de administrador, usuário liberado ou pedido de aprovação)",
        "operationId": "post_sales_sales_id_cancel",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/sales/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Mesmas regras do reopen-draft: sem senha de administrador, usuário liberado executa na hora e os demais recebem 202 PENDING_APPROVAL."
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/sales/{id}/merge": {
      "post": {
        "tags": [
          "Vendas / Pedidos"
        ],
        "summary": "Mesclar rascunhos de venda",
        "operationId": "post_sales_sales_id_merge",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/sales/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/sales/{id}/payment-link/whatsapp": {
      "post": {
        "tags": [
          "Vendas / Pedidos"
        ],
        "summary": "Enviar link de pagamento por WhatsApp",
        "operationId": "post_sales_sales_id_payment_link_whatsapp",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/sales/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/sales/{id}/finalize-paid-link": {
      "post": {
        "tags": [
          "Vendas / Pedidos"
        ],
        "summary": "Finalizar venda paga por link",
        "operationId": "post_sales_sales_id_finalize_paid_link",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/sales/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/sales/{id}/promotions/eligibility": {
      "get": {
        "tags": [
          "Vendas / Pedidos"
        ],
        "summary": "Promoções com brinde que a venda em aberto atinge",
        "operationId": "get_sales_sales_id_promotions_eligibility",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/sales/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/sales/{id}/promotion-gifts": {
      "post": {
        "tags": [
          "Vendas / Pedidos"
        ],
        "summary": "Adicionar o brinde de uma promoção à venda",
        "operationId": "post_sales_sales_id_promotion_gifts",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/sales/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "promotionId",
                  "productId"
                ],
                "properties": {
                  "promotionId": {
                    "type": "string",
                    "format": "uuid",
                    "description": "Promoção"
                  },
                  "productId": {
                    "type": "string",
                    "format": "uuid",
                    "description": "Produto brinde"
                  },
                  "variantId": {
                    "type": "string",
                    "format": "uuid",
                    "description": "Variante"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/sales/{id}/items/{itemId}/gift": {
      "post": {
        "tags": [
          "Vendas / Pedidos"
        ],
        "summary": "Marcar/desmarcar item como brinde (cortesia)",
        "operationId": "post_sales_sales_id_items_itemId_gift",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/sales/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "itemId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "isGift"
                ],
                "properties": {
                  "isGift": {
                    "type": "boolean",
                    "description": "Brinde"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/sales/{id}/reopen-draft": {
      "post": {
        "tags": [
          "Vendas / Pedidos"
        ],
        "summary": "Reabrir venda finalizada como rascunho (senha de administrador, usuário liberado ou pedido de aprovação)",
        "operationId": "post_sales_sales_id_reopen_draft",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/sales/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sem credenciais: usuário liberado executa na hora; os demais recebem 202 { status: PENDING_APPROVAL } e o administrador responde em /aprovacoes ou pelo WhatsApp."
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "x-sensitive": true,
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [],
                "properties": {
                  "username": {
                    "type": "string",
                    "description": "Usuário administrador (opcional: libera na hora)"
                  },
                  "password": {
                    "type": "string",
                    "description": "Senha do administrador (opcional)"
                  },
                  "justification": {
                    "type": "string",
                    "description": "Justificativa"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/sales/draft-customer-counts": {
      "get": {
        "tags": [
          "Vendas / Pedidos"
        ],
        "summary": "Quantidade de rascunhos abertos por cliente",
        "operationId": "get_sales_sales_draft_customer_counts",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/sales/"
        },
        "parameters": [
          {
            "name": "allLocations",
            "in": "query",
            "required": false,
            "description": "Considera todas as filiais (padrão: só a filial do usuário)",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "{ counts } — mapa customerId para número de vendas em rascunho com cliente."
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/sales/{id}/order-html": {
      "get": {
        "tags": [
          "Vendas / Pedidos"
        ],
        "summary": "HTML do pedido (para impressão), servido como text/html",
        "operationId": "get_sales_sales_id_order_html",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/sales/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/sales/{id}/nfe-operation": {
      "get": {
        "tags": [
          "Vendas / Pedidos"
        ],
        "summary": "Prévia da natureza da operação que a NF-e 55 da venda vai declarar",
        "operationId": "get_sales_sales_id_nfe_operation",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/sales/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "customerId",
            "in": "query",
            "required": false,
            "description": "Cliente a considerar no cálculo (omitido = o da venda; vazio = sem cliente)",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "{ operationType (SALE_INTERNAL ou SALE_INTERSTATE), originUf, destUf, customerUfMissing, contributor, cfops, nature }. Usa o mesmo motor tributário da finalização."
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/sales/{id}/duplicate-draft": {
      "post": {
        "tags": [
          "Vendas / Pedidos"
        ],
        "summary": "Copiar a venda para um novo rascunho (sem pagamentos), sem alterar a original",
        "operationId": "post_sales_sales_id_duplicate_draft",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/sales/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "201 Created — { sale, copiedItems, skippedItems, skippedSellers, droppedCoupon }. Copia cliente, vendedores, lista de preço, canal, itens com preço e descontos, frete e observações. Não copia pagamentos, documentos fiscais, cupom nem fidelidade; itens de produtos inativos e vendedores inativos são ignorados. 400 se a venda não tem itens ou nenhum item pode ser copiado."
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/sales/{id}/gift-wraps": {
      "post": {
        "tags": [
          "Vendas / Pedidos"
        ],
        "summary": "Adicionar embalagem para presente à venda em rascunho (a um item ou geral)",
        "operationId": "post_sales_sales_id_gift_wraps",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/sales/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "201 Created — a venda recalculada. 400 se a venda não é rascunho, o recurso está desligado, o modelo está inativo ou o item não pertence à venda; 403 sem permissão para valor livre."
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [],
                "properties": {
                  "saleItemId": {
                    "type": "string",
                    "format": "uuid",
                    "description": "Item da venda; omitido = embalagem geral da venda"
                  },
                  "optionId": {
                    "type": "string",
                    "format": "uuid",
                    "description": "Modelo cadastrado em /gift-wraps; sem modelo, use customName e customUnitPrice"
                  },
                  "customName": {
                    "type": "string",
                    "description": "Nome livre (até 80; padrão \"Embalagem para presente\")"
                  },
                  "customUnitPrice": {
                    "type": "number",
                    "description": "Valor unitário livre. Também vale para sobrepor o valor do modelo; exige valor livre habilitado na loja e a permissão sales.gift_wrap_custom_price"
                  },
                  "quantity": {
                    "type": "integer",
                    "description": "Quantidade de 1 a 999 (padrão 1)"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/sales/{id}/gift-wraps/{giftWrapId}": {
      "patch": {
        "tags": [
          "Vendas / Pedidos"
        ],
        "summary": "Alterar embalagem da venda em rascunho",
        "operationId": "patch_sales_sales_id_gift_wraps_giftWrapId",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/sales/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "giftWrapId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A venda recalculada. 404 se a embalagem não pertence à venda."
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [],
                "properties": {
                  "optionId": {
                    "type": "string",
                    "format": "uuid",
                    "description": "Outro modelo cadastrado"
                  },
                  "customName": {
                    "type": "string",
                    "description": "Nome livre (até 80)"
                  },
                  "customUnitPrice": {
                    "type": "number",
                    "description": "Valor unitário livre (mesmas regras de permissão do POST)"
                  },
                  "quantity": {
                    "type": "integer",
                    "description": "Quantidade de 1 a 999"
                  }
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Vendas / Pedidos"
        ],
        "summary": "Remover embalagem da venda em rascunho",
        "operationId": "delete_sales_sales_id_gift_wraps_giftWrapId",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/sales/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "giftWrapId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A venda recalculada. 404 se a embalagem não pertence à venda."
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/pos/search": {
      "get": {
        "tags": [
          "PDV"
        ],
        "summary": "Busca rápida de produtos para PDV",
        "operationId": "get_pos_pos_search",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/pos/"
        },
        "parameters": [
          {
            "name": "q",
            "in": "query",
            "required": true,
            "description": "Termo de busca (descrição ou GTIN)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "includeInactive",
            "in": "query",
            "required": false,
            "description": "Quando true, inclui produtos inativos (compras / vínculo XML)",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/pos/payment-link/sellers": {
      "get": {
        "tags": [
          "PDV"
        ],
        "summary": "Listar vendedores (link de pagamento)",
        "operationId": "get_pos_pos_payment_link_sellers",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/pos/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/pos/payment-link/sellers/{id}/phone": {
      "patch": {
        "tags": [
          "PDV"
        ],
        "summary": "Atualizar telefone do vendedor",
        "operationId": "patch_pos_pos_payment_link_sellers_id_phone",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/pos/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/pos/payment-link/sales/{id}": {
      "get": {
        "tags": [
          "PDV"
        ],
        "summary": "Detalhe da venda para link",
        "operationId": "get_pos_pos_payment_link_sales_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/pos/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "post": {
        "tags": [
          "PDV"
        ],
        "summary": "Gerar link de pagamento (PDV)",
        "operationId": "post_pos_pos_payment_link_sales_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/pos/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/pos/payment-link/sales/{id}/whatsapp": {
      "post": {
        "tags": [
          "PDV"
        ],
        "summary": "Enviar link de pagamento por WhatsApp",
        "operationId": "post_pos_pos_payment_link_sales_id_whatsapp",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/pos/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/customers": {
      "get": {
        "tags": [
          "Clientes"
        ],
        "summary": "Listar clientes",
        "operationId": "get_customers_customers",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/customers/"
        },
        "parameters": [
          {
            "name": "q",
            "in": "query",
            "required": false,
            "description": "Busca por nome, CPF/CNPJ, e-mail",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "page",
            "in": "query",
            "required": false,
            "description": "Página (ativa paginação)",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "required": false,
            "description": "Itens por página (padrão 20)",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "sortBy",
            "in": "query",
            "required": false,
            "description": "Coluna: name | taxId | phone | email",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "sortDir",
            "in": "query",
            "required": false,
            "description": "asc | desc",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "post": {
        "tags": [
          "Clientes"
        ],
        "summary": "Criar cliente",
        "operationId": "post_customers_customers",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/customers/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "name"
                ],
                "properties": {
                  "name": {
                    "type": "string",
                    "description": "Nome (como no RG/CNH)"
                  },
                  "nickname": {
                    "type": "string",
                    "description": "Apelido (opcional)"
                  },
                  "cpf": {
                    "type": "string",
                    "description": "CPF (legado)"
                  },
                  "taxId": {
                    "type": "string",
                    "description": "CPF ou CNPJ (somente dígitos)"
                  },
                  "taxIdType": {
                    "type": "string",
                    "description": "CPF | CNPJ"
                  },
                  "email": {
                    "type": "string",
                    "description": "E-mail"
                  },
                  "phone": {
                    "type": "string",
                    "description": "Telefone"
                  },
                  "birthDate": {
                    "type": "string",
                    "description": "Data nascimento (YYYY-MM-DD)"
                  },
                  "gender": {
                    "type": "string",
                    "description": "FEMALE | MALE | OTHER"
                  },
                  "zipCode": {
                    "type": "string",
                    "description": "CEP"
                  },
                  "addressLine1": {
                    "type": "string",
                    "description": "Endereço"
                  },
                  "addressNumber": {
                    "type": "string",
                    "description": "Número"
                  },
                  "addressLine2": {
                    "type": "string",
                    "description": "Complemento"
                  },
                  "addressDistrict": {
                    "type": "string",
                    "description": "Bairro"
                  },
                  "city": {
                    "type": "string",
                    "description": "Cidade"
                  },
                  "state": {
                    "type": "string",
                    "description": "UF"
                  },
                  "notes": {
                    "type": "string",
                    "description": "Observações"
                  },
                  "creditLimit": {
                    "type": "number",
                    "description": "Limite de crédito (padrão 0)"
                  },
                  "priceListId": {
                    "type": "string",
                    "format": "uuid",
                    "description": "Tabela de preços"
                  },
                  "excludeFromCommission": {
                    "type": "boolean",
                    "description": "Excluir de comissão"
                  },
                  "birthdayGreetingEnabled": {
                    "type": "boolean",
                    "description": "Receber saudação de aniversário (padrão true)"
                  },
                  "preferredGoodsDocumentType": {
                    "type": "string",
                    "description": "NFCE_65 | NFE_55 | null — modelo fiscal de mercadoria nas vendas deste cliente"
                  },
                  "socialLinks": {
                    "type": "array",
                    "items": {},
                    "description": "[{ network: 'INSTAGRAM', handle, label? }]"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/customers/{id}": {
      "patch": {
        "tags": [
          "Clientes"
        ],
        "summary": "Atualizar cliente",
        "operationId": "patch_customers_customers_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/customers/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [],
                "properties": {
                  "name": {
                    "type": "string",
                    "description": "Nome e demais campos do POST"
                  }
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Clientes"
        ],
        "summary": "Excluir cliente",
        "operationId": "delete_customers_customers_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/customers/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "204 No Content"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "get": {
        "tags": [
          "Clientes"
        ],
        "summary": "Detalhe do cliente",
        "operationId": "get_customers_customers_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/customers/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/customers/{id}/contact": {
      "patch": {
        "tags": [
          "Clientes"
        ],
        "summary": "Completar contato do cliente (só os campos enviados)",
        "operationId": "patch_customers_customers_id_contact",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/customers/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [],
                "properties": {
                  "phone": {
                    "type": "string",
                    "description": "Telefone com DDD"
                  },
                  "email": {
                    "type": "string",
                    "description": "E-mail"
                  },
                  "taxId": {
                    "type": "string",
                    "description": "CPF ou CNPJ"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/customers/{id}/merge-preview": {
      "get": {
        "tags": [
          "Clientes"
        ],
        "summary": "Prévia da mesclagem de clientes",
        "operationId": "get_customers_customers_id_merge_preview",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/customers/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/customers/merge": {
      "post": {
        "tags": [
          "Clientes"
        ],
        "summary": "Mesclar dois clientes (mantém keepId, absorve mergeId)",
        "operationId": "post_customers_customers_merge",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/customers/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "keepId",
                  "mergeId"
                ],
                "properties": {
                  "keepId": {
                    "type": "string",
                    "format": "uuid",
                    "description": "Cliente que permanece"
                  },
                  "mergeId": {
                    "type": "string",
                    "format": "uuid",
                    "description": "Cliente absorvido"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/customers/bulk/values": {
      "patch": {
        "tags": [
          "Clientes"
        ],
        "summary": "Atualizar um campo com valores distintos por cliente",
        "operationId": "patch_customers_customers_bulk_values",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/customers/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "field",
                  "updates"
                ],
                "properties": {
                  "field": {
                    "type": "string",
                    "description": "Campo da grade"
                  },
                  "updates": {
                    "type": "array",
                    "items": {},
                    "description": "[{ id, value }]"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/customers/bulk/field": {
      "patch": {
        "tags": [
          "Clientes"
        ],
        "summary": "Atualizar o mesmo valor de um campo em vários clientes",
        "operationId": "patch_customers_customers_bulk_field",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/customers/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "ids",
                  "field"
                ],
                "properties": {
                  "ids": {
                    "type": "string",
                    "description": "IDs dos clientes"
                  },
                  "field": {
                    "type": "string",
                    "description": "Campo a atualizar"
                  },
                  "value": {
                    "type": "string",
                    "description": "Novo valor"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/customers/bulk/name-format/jobs": {
      "get": {
        "tags": [
          "Clientes"
        ],
        "summary": "Listar jobs de correção de nomes",
        "operationId": "get_customers_customers_bulk_name_format_jobs",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/customers/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/customers/bulk/name-format/jobs/{jobId}": {
      "delete": {
        "tags": [
          "Clientes"
        ],
        "summary": "Cancelar correção de nomes em andamento",
        "operationId": "delete_customers_customers_bulk_name_format_jobs_jobId",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/customers/"
        },
        "parameters": [
          {
            "name": "jobId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/customers/bulk/name-format": {
      "post": {
        "tags": [
          "Clientes"
        ],
        "summary": "Enfileirar correção dos nomes existentes com a formatação configurada",
        "operationId": "post_customers_customers_bulk_name_format",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/customers/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/customer-profile-updates": {
      "get": {
        "tags": [
          "Atualizações de cadastro do cliente"
        ],
        "summary": "Listar solicitações de alteração",
        "operationId": "get_customer-profile-updates_customer_profile_updates",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/customer-profile-updates/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/customer-profile-updates/{id}": {
      "get": {
        "tags": [
          "Atualizações de cadastro do cliente"
        ],
        "summary": "Detalhe da solicitação",
        "operationId": "get_customer-profile-updates_customer_profile_updates_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/customer-profile-updates/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/customer-profile-updates/{id}/approve": {
      "post": {
        "tags": [
          "Atualizações de cadastro do cliente"
        ],
        "summary": "Aprovar alteração de cadastro",
        "operationId": "post_customer-profile-updates_customer_profile_updates_id_approve",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/customer-profile-updates/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/customer-profile-updates/{id}/reject": {
      "post": {
        "tags": [
          "Atualizações de cadastro do cliente"
        ],
        "summary": "Rejeitar alteração de cadastro",
        "operationId": "post_customer-profile-updates_customer_profile_updates_id_reject",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/customer-profile-updates/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [],
                "properties": {
                  "reason": {
                    "type": "string",
                    "description": "Motivo da rejeição"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/customer-profile-updates/by-customer/{customerId}/preferences": {
      "get": {
        "tags": [
          "Atualizações de cadastro do cliente"
        ],
        "summary": "Preferências de comunicação do cliente",
        "operationId": "get_customer-profile-updates_customer_profile_updates_by_customer_customerId_preferences",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/customer-profile-updates/"
        },
        "parameters": [
          {
            "name": "customerId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "patch": {
        "tags": [
          "Atualizações de cadastro do cliente"
        ],
        "summary": "Atualizar preferências de comunicação",
        "operationId": "patch_customer-profile-updates_customer_profile_updates_by_customer_customerId_preferences",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/customer-profile-updates/"
        },
        "parameters": [
          {
            "name": "customerId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/customer-profile-updates/by-customer/{customerId}/access-token": {
      "post": {
        "tags": [
          "Atualizações de cadastro do cliente"
        ],
        "summary": "Gerar token de acesso ao portal do cliente",
        "operationId": "post_customer-profile-updates_customer_profile_updates_by_customer_customerId_access_token",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/customer-profile-updates/"
        },
        "parameters": [
          {
            "name": "customerId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "201 Created"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [],
                "properties": {
                  "purpose": {
                    "type": "string",
                    "description": "Finalidade do token"
                  },
                  "expiresInDays": {
                    "type": "integer",
                    "description": "Validade em dias"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/customer-profile-updates/by-customer/{customerId}/unsubscribe-token": {
      "post": {
        "tags": [
          "Atualizações de cadastro do cliente"
        ],
        "summary": "Gerar token de descadastro de notificações",
        "operationId": "post_customer-profile-updates_customer_profile_updates_by_customer_customerId_unsubscribe_token",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/customer-profile-updates/"
        },
        "parameters": [
          {
            "name": "customerId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "201 Created"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [],
                "properties": {
                  "preferenceKey": {
                    "type": "string",
                    "description": "Chave da preferência"
                  },
                  "expiresInDays": {
                    "type": "integer",
                    "description": "Validade em dias"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/service-orders": {
      "get": {
        "tags": [
          "Ordens de serviço"
        ],
        "summary": "Listar ordens de serviço",
        "operationId": "get_service-orders_service_orders",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/servicos/service-orders/"
        },
        "parameters": [
          {
            "name": "q",
            "in": "query",
            "required": false,
            "description": "Busca",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "description": "Status da OS",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "customerId",
            "in": "query",
            "required": false,
            "description": "Filtrar por cliente",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "page",
            "in": "query",
            "required": false,
            "description": "Página (padrão 1)",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "required": false,
            "description": "Itens por página (máx. 100)",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "post": {
        "tags": [
          "Ordens de serviço"
        ],
        "summary": "Criar ordem de serviço",
        "operationId": "post_service-orders_service_orders",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/servicos/service-orders/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "201 Created"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "customerId"
                ],
                "properties": {
                  "customerId": {
                    "type": "string",
                    "format": "uuid",
                    "description": "Cliente"
                  },
                  "contactName": {
                    "type": "string",
                    "description": "Nome do contato"
                  },
                  "responsibleId": {
                    "type": "string",
                    "format": "uuid",
                    "description": "Responsável"
                  },
                  "projectId": {
                    "type": "string",
                    "format": "uuid",
                    "description": "Projeto"
                  },
                  "description": {
                    "type": "string",
                    "description": "Descrição"
                  },
                  "notes": {
                    "type": "string",
                    "description": "Observações"
                  },
                  "expectedAt": {
                    "type": "string",
                    "description": "Previsão (ISO datetime)"
                  },
                  "priority": {
                    "type": "string",
                    "description": "Prioridade"
                  },
                  "assetId": {
                    "type": "string",
                    "format": "uuid",
                    "description": "Ativo/equipamento"
                  },
                  "checklistTemplateId": {
                    "type": "string",
                    "format": "uuid",
                    "description": "Template de checklist"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/service-orders/agenda": {
      "get": {
        "tags": [
          "Ordens de serviço"
        ],
        "summary": "Agenda de OS por responsável (dia ou período)",
        "operationId": "get_service-orders_service_orders_agenda",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/servicos/service-orders/"
        },
        "parameters": [
          {
            "name": "date",
            "in": "query",
            "required": false,
            "description": "Dia (YYYY-MM-DD); ou use from/to",
            "schema": {
              "type": "string",
              "format": "date"
            }
          },
          {
            "name": "from",
            "in": "query",
            "required": false,
            "description": "Início do período (YYYY-MM-DD)",
            "schema": {
              "type": "string",
              "format": "date"
            }
          },
          {
            "name": "to",
            "in": "query",
            "required": false,
            "description": "Fim do período (YYYY-MM-DD)",
            "schema": {
              "type": "string",
              "format": "date"
            }
          },
          {
            "name": "responsibleId",
            "in": "query",
            "required": false,
            "description": "Filtrar por responsável",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "includeUnscheduled",
            "in": "query",
            "required": false,
            "description": "Inclui OS abertas sem horário em `unscheduled`",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/service-orders/{id}": {
      "get": {
        "tags": [
          "Ordens de serviço"
        ],
        "summary": "Detalhe da OS",
        "operationId": "get_service-orders_service_orders_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/servicos/service-orders/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Inclui itens, recebíveis, `hasIssuedNfse`, `nfseId`, `saleId` e `sale` ({ id, orderNumber, status, completedAt }) quando vinculada a uma venda do PDV."
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "patch": {
        "tags": [
          "Ordens de serviço"
        ],
        "summary": "Atualizar OS",
        "operationId": "patch_service-orders_service_orders_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/servicos/service-orders/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [],
                "properties": {
                  "customerId": {
                    "type": "string",
                    "format": "uuid",
                    "description": "Cliente"
                  },
                  "description": {
                    "type": "string",
                    "description": "Descrição"
                  },
                  "notes": {
                    "type": "string",
                    "description": "Observações"
                  },
                  "discountAmount": {
                    "type": "number",
                    "description": "Desconto"
                  },
                  "expectedAt": {
                    "type": "string",
                    "description": "Previsão"
                  },
                  "priority": {
                    "type": "string",
                    "description": "Prioridade"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/service-orders/{id}/items": {
      "post": {
        "tags": [
          "Ordens de serviço"
        ],
        "summary": "Adicionar item à OS",
        "operationId": "post_service-orders_service_orders_id_items",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/servicos/service-orders/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "201 Created"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "variantId",
                  "quantity"
                ],
                "properties": {
                  "variantId": {
                    "type": "string",
                    "format": "uuid",
                    "description": "Variante do serviço/produto"
                  },
                  "quantity": {
                    "type": "number",
                    "description": "Quantidade"
                  },
                  "unitPrice": {
                    "type": "number",
                    "description": "Preço unitário"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/service-orders/{id}/items/{itemId}": {
      "patch": {
        "tags": [
          "Ordens de serviço"
        ],
        "summary": "Atualizar item da OS",
        "operationId": "patch_service-orders_service_orders_id_items_itemId",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/servicos/service-orders/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "itemId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [],
                "properties": {
                  "quantity": {
                    "type": "number",
                    "description": "Quantidade"
                  },
                  "unitPrice": {
                    "type": "number",
                    "description": "Preço unitário"
                  },
                  "description": {
                    "type": "string",
                    "description": "Descrição do item"
                  }
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Ordens de serviço"
        ],
        "summary": "Remover item da OS",
        "operationId": "delete_service-orders_service_orders_id_items_itemId",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/servicos/service-orders/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "itemId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/service-orders/{id}/to-sale": {
      "post": {
        "tags": [
          "Ordens de serviço"
        ],
        "summary": "Criar ou reabrir rascunho de venda no PDV a partir da OS",
        "operationId": "post_service-orders_service_orders_id_to_sale",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/servicos/service-orders/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "201 se criou rascunho; 200 se já existia. Corpo: { saleId, orderNumber, created, serviceOrderId, serviceOrderNumber, total? }. Exige OS COMPLETED (ou INVOICED sem venda). Idempotente com rascunho DRAFT. 409 se já houver venda COMPLETED. Copia itens/preços; `affectsStock=false` se a OS já baixou estoque. NFS-e autorizada/pendente da OS é vinculada à venda (`saleId`). Abrir PDV em `/pos?id={saleId}`. Ao finalizar a venda, a OS vai para INVOICED."
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/service-orders/{id}/status": {
      "post": {
        "tags": [
          "Ordens de serviço"
        ],
        "summary": "Alterar status da OS",
        "operationId": "post_service-orders_service_orders_id_status",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/servicos/service-orders/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "status"
                ],
                "properties": {
                  "status": {
                    "type": "string",
                    "description": "Próximo status permitido (transições operacionais). INVOICED não é aceito aqui — use to-sale + finalize da venda. QUOTE | APPROVED | IN_PROGRESS | WAITING_CUSTOMER | COMPLETED | CANCELLED conforme o fluxo."
                  }
                }
              }
            }
          }
        }
      }
    },
    "/service-orders/{id}/cancel": {
      "post": {
        "tags": [
          "Ordens de serviço"
        ],
        "summary": "Cancelar OS",
        "operationId": "post_service-orders_service_orders_id_cancel",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/servicos/service-orders/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Não cancela OS INVOICED. Se houver rascunho DRAFT ligado, o vínculo `saleId` é liberado."
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/service-orders/{id}/request-confirmation": {
      "post": {
        "tags": [
          "Ordens de serviço"
        ],
        "summary": "Pedir confirmação de presença ao cliente (WhatsApp)",
        "operationId": "post_service-orders_service_orders_id_request_confirmation",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/servicos/service-orders/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/service-orders/{id}/confirm-attendance": {
      "post": {
        "tags": [
          "Ordens de serviço"
        ],
        "summary": "Marcar presença confirmada",
        "operationId": "post_service-orders_service_orders_id_confirm_attendance",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/servicos/service-orders/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/service-orders/{id}/send-quote-whatsapp": {
      "post": {
        "tags": [
          "Ordens de serviço"
        ],
        "summary": "Enviar orçamento da OS por WhatsApp",
        "operationId": "post_service-orders_service_orders_id_send_quote_whatsapp",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/servicos/service-orders/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/service-orders/{id}/warranty": {
      "post": {
        "tags": [
          "Ordens de serviço"
        ],
        "summary": "Abrir OS de garantia vinculada",
        "operationId": "post_service-orders_service_orders_id_warranty",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/servicos/service-orders/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "201 Created"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/service-orders/{id}/attachments": {
      "post": {
        "tags": [
          "Ordens de serviço"
        ],
        "summary": "Anexar arquivo à OS (multipart, campo file)",
        "operationId": "post_service-orders_service_orders_id_attachments",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/servicos/service-orders/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/service-orders/{id}/pdf": {
      "get": {
        "tags": [
          "Ordens de serviço"
        ],
        "summary": "PDF do orçamento/OS (application/pdf, inline)",
        "operationId": "get_service-orders_service_orders_id_pdf",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/servicos/service-orders/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "404 se a OS não existe; 403 se a OS é de outra filial ou de outro mecânico (perfil mecânico)."
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/service-orders/{id}/approve-quote": {
      "post": {
        "tags": [
          "Ordens de serviço"
        ],
        "summary": "Oficina: registrar a aprovação do orçamento pela equipe (cliente aprovou por telefone ou balcão)",
        "operationId": "post_service-orders_service_orders_id_approve_quote",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/servicos/service-orders/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A OS atualizada. Idempotente: se já estava aprovada no valor atual, devolve a OS sem mudança. 400 se a OS está cancelada, sem itens, sem veículo (placa) ou KM de entrada no orçamento, ou não está numa fase que aceite aprovação. Exige o módulo de oficina."
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [],
                "properties": {
                  "approvedByName": {
                    "type": "string",
                    "description": "Quem aprovou (até 200; padrão: nome do cliente da OS)"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/service-orders/{id}/deliver": {
      "post": {
        "tags": [
          "Ordens de serviço"
        ],
        "summary": "Oficina: registrar a retirada do veículo (quem e quando); a garantia passa a contar da entrega",
        "operationId": "post_service-orders_service_orders_id_deliver",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/servicos/service-orders/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A OS atualizada. 400 se a OS não está concluída ou faturada ou se já foi entregue. Exige o módulo de oficina."
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "pickedUpByName"
                ],
                "properties": {
                  "pickedUpByName": {
                    "type": "string",
                    "description": "Quem está retirando o veículo (até 200)"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/service-orders/{id}/events": {
      "get": {
        "tags": [
          "Ordens de serviço"
        ],
        "summary": "Trilha de auditoria da OS (últimos 500 eventos, do mais recente ao mais antigo)",
        "operationId": "get_service-orders_service_orders_id_events",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/servicos/service-orders/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Lista de { id, type, message, userName, createdAt }. 404 se a OS não existe."
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/service-settings": {
      "get": {
        "tags": [
          "Serviços (configuração)"
        ],
        "summary": "Obter configurações de serviços",
        "operationId": "get_service-settings_service_settings",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/servicos/service-settings/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "put": {
        "tags": [
          "Serviços (configuração)"
        ],
        "summary": "Atualizar configurações de serviços",
        "operationId": "put_service-settings_service_settings",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/servicos/service-settings/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [],
                "properties": {
                  "servicesEnabled": {
                    "type": "boolean",
                    "description": "Liga o módulo de serviços na loja"
                  },
                  "useProjects": {
                    "type": "boolean",
                    "description": "Projetos"
                  },
                  "useContracts": {
                    "type": "boolean",
                    "description": "Contratos"
                  },
                  "useSubscriptions": {
                    "type": "boolean",
                    "description": "Assinaturas"
                  },
                  "useTimeTracking": {
                    "type": "boolean",
                    "description": "Apontamento de horas"
                  },
                  "useFieldService": {
                    "type": "boolean",
                    "description": "Atendimento em campo"
                  },
                  "autoGenerateReceivable": {
                    "type": "boolean",
                    "description": "Gerar conta a receber ao concluir a OS. Se a OS for faturada no PDV depois, recebíveis abertos da OS são cancelados na finalização da venda."
                  },
                  "autoGenerateNfse": {
                    "type": "boolean",
                    "description": "Emitir NFS-e ao concluir a OS. Preferível faturar pelo PDV (to-sale + nfseIntent na finalize); se a nota já existir na OS, o finalize da venda não reemite."
                  },
                  "nfseEnvironment": {
                    "type": "string",
                    "description": "HOMOLOG | PROD"
                  },
                  "nfseSeries": {
                    "type": "string",
                    "description": "Série numérica da NFS-e"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/service-settings/apply-aesthetic-clinic-preset": {
      "post": {
        "tags": [
          "Serviços (configuração)"
        ],
        "summary": "Aplicar modelo pronto para clínica de estética",
        "operationId": "post_service-settings_service_settings_apply_aesthetic_clinic_preset",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/servicos/service-settings/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/service-settings/apply-mechanic-workshop-preset": {
      "post": {
        "tags": [
          "Serviços (configuração)"
        ],
        "summary": "Aplicar modelo pronto para oficina mecânica",
        "operationId": "post_service-settings_service_settings_apply_mechanic_workshop_preset",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/servicos/service-settings/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/service-settings/assignable-users": {
      "get": {
        "tags": [
          "Serviços (configuração)"
        ],
        "summary": "Usuários que podem receber visita, OS ou recorrência (só dados básicos, sem exigir permissão de usuários)",
        "operationId": "get_service-settings_service_settings_assignable_users",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/servicos/service-settings/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Lista ordenada por nome de { id, name, username, agendaColor, active }. O usuário de suporte da plataforma não aparece."
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/service-projects": {
      "get": {
        "tags": [
          "Projetos de serviço"
        ],
        "summary": "Listar projeto de serviço",
        "operationId": "get_service-projects_service_projects",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/servicos/service-projects/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "post": {
        "tags": [
          "Projetos de serviço"
        ],
        "summary": "Criar projeto de serviço",
        "operationId": "post_service-projects_service_projects",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/servicos/service-projects/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "201 Created"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "name",
                  "customerId"
                ],
                "properties": {
                  "name": {
                    "type": "string",
                    "description": "Nome"
                  },
                  "customerId": {
                    "type": "string",
                    "format": "uuid",
                    "description": "Cliente"
                  },
                  "status": {
                    "type": "string",
                    "description": "Status do projeto"
                  },
                  "contractedValue": {
                    "type": "number",
                    "description": "Valor contratado"
                  },
                  "startDate": {
                    "type": "string",
                    "description": "Início"
                  },
                  "endDate": {
                    "type": "string",
                    "description": "Fim"
                  },
                  "plannedHours": {
                    "type": "number",
                    "description": "Horas planejadas"
                  },
                  "notes": {
                    "type": "string",
                    "description": "Observações"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/service-projects/{id}": {
      "patch": {
        "tags": [
          "Projetos de serviço"
        ],
        "summary": "Atualizar projeto de serviço",
        "operationId": "patch_service-projects_service_projects_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/servicos/service-projects/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "name",
                  "customerId"
                ],
                "properties": {
                  "name": {
                    "type": "string",
                    "description": "Nome"
                  },
                  "customerId": {
                    "type": "string",
                    "format": "uuid",
                    "description": "Cliente"
                  },
                  "status": {
                    "type": "string",
                    "description": "Status do projeto"
                  },
                  "contractedValue": {
                    "type": "number",
                    "description": "Valor contratado"
                  },
                  "startDate": {
                    "type": "string",
                    "description": "Início"
                  },
                  "endDate": {
                    "type": "string",
                    "description": "Fim"
                  },
                  "plannedHours": {
                    "type": "number",
                    "description": "Horas planejadas"
                  },
                  "notes": {
                    "type": "string",
                    "description": "Observações"
                  }
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Projetos de serviço"
        ],
        "summary": "Excluir projeto de serviço",
        "operationId": "delete_service-projects_service_projects_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/servicos/service-projects/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "204 No Content"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "get": {
        "tags": [
          "Projetos de serviço"
        ],
        "summary": "Detalhe do projeto",
        "operationId": "get_service-projects_service_projects_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/servicos/service-projects/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/service-projects/{id}/members": {
      "put": {
        "tags": [
          "Projetos de serviço"
        ],
        "summary": "Substituir membros do projeto",
        "operationId": "put_service-projects_service_projects_id_members",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/servicos/service-projects/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "userIds"
                ],
                "properties": {
                  "userIds": {
                    "type": "array",
                    "items": {},
                    "description": "IDs de usuários (máx. 50)"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/service-contracts": {
      "get": {
        "tags": [
          "Contratos de serviço"
        ],
        "summary": "Listar contrato de serviço",
        "operationId": "get_service-contracts_service_contracts",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/servicos/service-contracts/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "post": {
        "tags": [
          "Contratos de serviço"
        ],
        "summary": "Criar contrato de serviço",
        "operationId": "post_service-contracts_service_contracts",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/servicos/service-contracts/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "201 Created"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "customerId",
                  "title",
                  "startsAt"
                ],
                "properties": {
                  "customerId": {
                    "type": "string",
                    "format": "uuid",
                    "description": "Cliente"
                  },
                  "title": {
                    "type": "string",
                    "description": "Título"
                  },
                  "contractType": {
                    "type": "string",
                    "description": "Tipo"
                  },
                  "value": {
                    "type": "number",
                    "description": "Valor"
                  },
                  "period": {
                    "type": "string",
                    "description": "Periodicidade de faturamento"
                  },
                  "startsAt": {
                    "type": "string",
                    "description": "Início da vigência"
                  },
                  "endsAt": {
                    "type": "string",
                    "description": "Fim da vigência"
                  },
                  "autoRenew": {
                    "type": "boolean",
                    "description": "Renovação automática"
                  },
                  "status": {
                    "type": "string",
                    "description": "Status"
                  },
                  "notes": {
                    "type": "string",
                    "description": "Observações"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/service-contracts/{id}": {
      "patch": {
        "tags": [
          "Contratos de serviço"
        ],
        "summary": "Atualizar contrato de serviço",
        "operationId": "patch_service-contracts_service_contracts_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/servicos/service-contracts/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "customerId",
                  "title",
                  "startsAt"
                ],
                "properties": {
                  "customerId": {
                    "type": "string",
                    "format": "uuid",
                    "description": "Cliente"
                  },
                  "title": {
                    "type": "string",
                    "description": "Título"
                  },
                  "contractType": {
                    "type": "string",
                    "description": "Tipo"
                  },
                  "value": {
                    "type": "number",
                    "description": "Valor"
                  },
                  "period": {
                    "type": "string",
                    "description": "Periodicidade de faturamento"
                  },
                  "startsAt": {
                    "type": "string",
                    "description": "Início da vigência"
                  },
                  "endsAt": {
                    "type": "string",
                    "description": "Fim da vigência"
                  },
                  "autoRenew": {
                    "type": "boolean",
                    "description": "Renovação automática"
                  },
                  "status": {
                    "type": "string",
                    "description": "Status"
                  },
                  "notes": {
                    "type": "string",
                    "description": "Observações"
                  }
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Contratos de serviço"
        ],
        "summary": "Excluir contrato de serviço",
        "operationId": "delete_service-contracts_service_contracts_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/servicos/service-contracts/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "204 No Content"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "get": {
        "tags": [
          "Contratos de serviço"
        ],
        "summary": "Detalhe do contrato",
        "operationId": "get_service-contracts_service_contracts_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/servicos/service-contracts/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/service-subscriptions": {
      "get": {
        "tags": [
          "Assinaturas de serviço"
        ],
        "summary": "Listar assinatura de serviço",
        "operationId": "get_service-subscriptions_service_subscriptions",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/servicos/service-subscriptions/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "post": {
        "tags": [
          "Assinaturas de serviço"
        ],
        "summary": "Criar assinatura de serviço",
        "operationId": "post_service-subscriptions_service_subscriptions",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/servicos/service-subscriptions/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "201 Created"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "customerId",
                  "name",
                  "amount",
                  "nextDueDate"
                ],
                "properties": {
                  "customerId": {
                    "type": "string",
                    "format": "uuid",
                    "description": "Cliente"
                  },
                  "contractId": {
                    "type": "string",
                    "format": "uuid",
                    "description": "Contrato vinculado"
                  },
                  "name": {
                    "type": "string",
                    "description": "Nome"
                  },
                  "description": {
                    "type": "string",
                    "description": "Descrição"
                  },
                  "amount": {
                    "type": "number",
                    "description": "Valor recorrente"
                  },
                  "period": {
                    "type": "string",
                    "description": "Periodicidade"
                  },
                  "nextDueDate": {
                    "type": "string",
                    "description": "Próximo vencimento"
                  },
                  "paymentMethodId": {
                    "type": "string",
                    "format": "uuid",
                    "description": "Forma de pagamento"
                  },
                  "status": {
                    "type": "string",
                    "description": "Status"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/service-subscriptions/{id}": {
      "patch": {
        "tags": [
          "Assinaturas de serviço"
        ],
        "summary": "Atualizar assinatura de serviço",
        "operationId": "patch_service-subscriptions_service_subscriptions_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/servicos/service-subscriptions/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "customerId",
                  "name",
                  "amount",
                  "nextDueDate"
                ],
                "properties": {
                  "customerId": {
                    "type": "string",
                    "format": "uuid",
                    "description": "Cliente"
                  },
                  "contractId": {
                    "type": "string",
                    "format": "uuid",
                    "description": "Contrato vinculado"
                  },
                  "name": {
                    "type": "string",
                    "description": "Nome"
                  },
                  "description": {
                    "type": "string",
                    "description": "Descrição"
                  },
                  "amount": {
                    "type": "number",
                    "description": "Valor recorrente"
                  },
                  "period": {
                    "type": "string",
                    "description": "Periodicidade"
                  },
                  "nextDueDate": {
                    "type": "string",
                    "description": "Próximo vencimento"
                  },
                  "paymentMethodId": {
                    "type": "string",
                    "format": "uuid",
                    "description": "Forma de pagamento"
                  },
                  "status": {
                    "type": "string",
                    "description": "Status"
                  }
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Assinaturas de serviço"
        ],
        "summary": "Excluir assinatura de serviço",
        "operationId": "delete_service-subscriptions_service_subscriptions_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/servicos/service-subscriptions/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "204 No Content"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "get": {
        "tags": [
          "Assinaturas de serviço"
        ],
        "summary": "Detalhe da assinatura",
        "operationId": "get_service-subscriptions_service_subscriptions_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/servicos/service-subscriptions/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/service-subscriptions/generate-receivables": {
      "post": {
        "tags": [
          "Assinaturas de serviço"
        ],
        "summary": "Gerar contas a receber vencidas das assinaturas",
        "operationId": "post_service-subscriptions_service_subscriptions_generate_receivables",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/servicos/service-subscriptions/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/time-entries": {
      "get": {
        "tags": [
          "Apontamento de horas"
        ],
        "summary": "Listar apontamentos",
        "operationId": "get_time-entries_time_entries",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/servicos/time-entries/"
        },
        "parameters": [
          {
            "name": "userId",
            "in": "query",
            "required": false,
            "description": "Colaborador",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "projectId",
            "in": "query",
            "required": false,
            "description": "Projeto",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "serviceOrderId",
            "in": "query",
            "required": false,
            "description": "OS",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "from",
            "in": "query",
            "required": false,
            "description": "Data inicial",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "to",
            "in": "query",
            "required": false,
            "description": "Data final",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "billable",
            "in": "query",
            "required": false,
            "description": "true | false",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "post": {
        "tags": [
          "Apontamento de horas"
        ],
        "summary": "Criar apontamento",
        "operationId": "post_time-entries_time_entries",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/servicos/time-entries/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "201 Created"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "userId",
                  "workDate"
                ],
                "properties": {
                  "userId": {
                    "type": "string",
                    "format": "uuid",
                    "description": "Colaborador"
                  },
                  "projectId": {
                    "type": "string",
                    "format": "uuid",
                    "description": "Projeto"
                  },
                  "serviceOrderId": {
                    "type": "string",
                    "format": "uuid",
                    "description": "OS"
                  },
                  "workDate": {
                    "type": "string",
                    "description": "Data do trabalho"
                  },
                  "startTime": {
                    "type": "string",
                    "description": "Início (ISO)"
                  },
                  "endTime": {
                    "type": "string",
                    "description": "Fim (ISO)"
                  },
                  "totalMinutes": {
                    "type": "integer",
                    "description": "Duração em minutos (se não informar intervalo)"
                  },
                  "description": {
                    "type": "string",
                    "description": "Descrição"
                  },
                  "billable": {
                    "type": "boolean",
                    "description": "Faturável"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/time-entries/report": {
      "get": {
        "tags": [
          "Apontamento de horas"
        ],
        "summary": "Relatório de horas",
        "operationId": "get_time-entries_time_entries_report",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/servicos/time-entries/"
        },
        "parameters": [
          {
            "name": "from",
            "in": "query",
            "required": false,
            "description": "Data inicial",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "to",
            "in": "query",
            "required": false,
            "description": "Data final",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "customerId",
            "in": "query",
            "required": false,
            "description": "Cliente",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "userId",
            "in": "query",
            "required": false,
            "description": "Colaborador",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "projectId",
            "in": "query",
            "required": false,
            "description": "Projeto",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/time-entries/{id}": {
      "get": {
        "tags": [
          "Apontamento de horas"
        ],
        "summary": "Detalhe do apontamento",
        "operationId": "get_time-entries_time_entries_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/servicos/time-entries/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "patch": {
        "tags": [
          "Apontamento de horas"
        ],
        "summary": "Atualizar apontamento",
        "operationId": "patch_time-entries_time_entries_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/servicos/time-entries/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "delete": {
        "tags": [
          "Apontamento de horas"
        ],
        "summary": "Excluir apontamento",
        "operationId": "delete_time-entries_time_entries_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/servicos/time-entries/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "204 No Content"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/field/visits": {
      "get": {
        "tags": [
          "Visitas de campo"
        ],
        "summary": "Listar visitas",
        "operationId": "get_field-visits_field_visits",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/servicos/field-visits/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "post": {
        "tags": [
          "Visitas de campo"
        ],
        "summary": "Criar visita",
        "operationId": "post_field-visits_field_visits",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/servicos/field-visits/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "201 Created"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "serviceOrderId",
                  "technicianId"
                ],
                "properties": {
                  "serviceOrderId": {
                    "type": "string",
                    "format": "uuid",
                    "description": "OS"
                  },
                  "technicianId": {
                    "type": "string",
                    "format": "uuid",
                    "description": "Técnico"
                  },
                  "scheduledStart": {
                    "type": "string",
                    "description": "Início agendado"
                  },
                  "scheduledEnd": {
                    "type": "string",
                    "description": "Fim agendado"
                  },
                  "notes": {
                    "type": "string",
                    "description": "Observações"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/field/visits/{id}": {
      "get": {
        "tags": [
          "Visitas de campo"
        ],
        "summary": "Detalhe da visita",
        "operationId": "get_field-visits_field_visits_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/servicos/field-visits/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "patch": {
        "tags": [
          "Visitas de campo"
        ],
        "summary": "Atualizar visita",
        "operationId": "patch_field-visits_field_visits_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/servicos/field-visits/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/field/visits/{id}/check-in": {
      "post": {
        "tags": [
          "Visitas de campo"
        ],
        "summary": "Check-in no local",
        "operationId": "post_field-visits_field_visits_id_check_in",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/servicos/field-visits/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "lat",
                  "lng"
                ],
                "properties": {
                  "lat": {
                    "type": "number",
                    "description": "Latitude"
                  },
                  "lng": {
                    "type": "number",
                    "description": "Longitude"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/field/visits/{id}/check-out": {
      "post": {
        "tags": [
          "Visitas de campo"
        ],
        "summary": "Check-out",
        "operationId": "post_field-visits_field_visits_id_check_out",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/servicos/field-visits/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "lat",
                  "lng"
                ],
                "properties": {
                  "lat": {
                    "type": "number",
                    "description": "Latitude"
                  },
                  "lng": {
                    "type": "number",
                    "description": "Longitude"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/field/visits/{id}/en-route": {
      "post": {
        "tags": [
          "Visitas de campo"
        ],
        "summary": "Marcar em deslocamento",
        "operationId": "post_field-visits_field_visits_id_en_route",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/servicos/field-visits/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/field/visits/{id}/complete": {
      "post": {
        "tags": [
          "Visitas de campo"
        ],
        "summary": "Concluir visita",
        "operationId": "post_field-visits_field_visits_id_complete",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/servicos/field-visits/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/field/visits/{id}/cancel": {
      "post": {
        "tags": [
          "Visitas de campo"
        ],
        "summary": "Cancelar visita",
        "operationId": "post_field-visits_field_visits_id_cancel",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/servicos/field-visits/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/field/visits/{id}/attachments": {
      "post": {
        "tags": [
          "Visitas de campo"
        ],
        "summary": "Anexar arquivo (multipart)",
        "operationId": "post_field-visits_field_visits_id_attachments",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/servicos/field-visits/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "file"
                ],
                "properties": {
                  "file": {
                    "type": "string",
                    "description": "Arquivo (campo form-data file)"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/field/visits/{id}/signature": {
      "post": {
        "tags": [
          "Visitas de campo"
        ],
        "summary": "Salvar assinatura do cliente",
        "operationId": "post_field-visits_field_visits_id_signature",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/servicos/field-visits/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [],
                "properties": {
                  "pngBase64": {
                    "type": "string",
                    "description": "PNG em base64"
                  },
                  "imageBase64": {
                    "type": "string",
                    "description": "Imagem em base64 (alternativa)"
                  },
                  "signerName": {
                    "type": "string",
                    "description": "Nome de quem assinou"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/field/visits/{id}/checklist": {
      "post": {
        "tags": [
          "Visitas de campo"
        ],
        "summary": "Salvar respostas do checklist da visita",
        "operationId": "post_field-visits_field_visits_id_checklist",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/servicos/field-visits/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "responses"
                ],
                "properties": {
                  "responses": {
                    "type": "array",
                    "items": {},
                    "description": "[{ itemId, valueText?, valueNumber?, valueBool?, attachmentUrl? }]"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/field/visits/{id}/charge": {
      "post": {
        "tags": [
          "Visitas de campo"
        ],
        "summary": "Gerar cobrança vinculada à visita",
        "operationId": "post_field-visits_field_visits_id_charge",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/servicos/field-visits/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/field/visits/route-suggest": {
      "get": {
        "tags": [
          "Visitas de campo"
        ],
        "summary": "Sugerir ordem de visitas no dia",
        "operationId": "get_field-visits_field_visits_route_suggest",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/servicos/field-visits/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/field/visits/route-apply": {
      "post": {
        "tags": [
          "Visitas de campo"
        ],
        "summary": "Aplicar ordem sugerida de visitas",
        "operationId": "post_field-visits_field_visits_route_apply",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/servicos/field-visits/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "date",
                  "visitIds"
                ],
                "properties": {
                  "date": {
                    "type": "string",
                    "description": "YYYY-MM-DD"
                  },
                  "visitIds": {
                    "type": "array",
                    "items": {},
                    "description": "IDs na ordem desejada"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/field/visits/nearest-technician": {
      "get": {
        "tags": [
          "Visitas de campo"
        ],
        "summary": "Técnico mais próximo",
        "operationId": "get_field-visits_field_visits_nearest_technician",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/servicos/field-visits/"
        },
        "parameters": [
          {
            "name": "lat",
            "in": "query",
            "required": true,
            "description": "Latitude",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "lng",
            "in": "query",
            "required": true,
            "description": "Longitude",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "maxAgeMinutes",
            "in": "query",
            "required": false,
            "description": "Idade máxima do ping (padrão 120)",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/field/location/ping": {
      "post": {
        "tags": [
          "Localização de técnicos"
        ],
        "summary": "Registrar posição do técnico autenticado",
        "operationId": "post_field-location_field_location_ping",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/servicos/field-location/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "201 Created"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "lat",
                  "lng"
                ],
                "properties": {
                  "lat": {
                    "type": "number",
                    "description": "Latitude"
                  },
                  "lng": {
                    "type": "number",
                    "description": "Longitude"
                  },
                  "accuracy": {
                    "type": "number",
                    "description": "Precisão em metros"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/field/location/latest": {
      "get": {
        "tags": [
          "Localização de técnicos"
        ],
        "summary": "Últimas posições dos técnicos",
        "operationId": "get_field-location_field_location_latest",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/servicos/field-location/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/field/location/pings": {
      "get": {
        "tags": [
          "Localização de técnicos"
        ],
        "summary": "Histórico de pings do dia",
        "operationId": "get_field-location_field_location_pings",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/servicos/field-location/"
        },
        "parameters": [
          {
            "name": "date",
            "in": "query",
            "required": true,
            "description": "YYYY-MM-DD",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "userId",
            "in": "query",
            "required": false,
            "description": "Técnico (padrão: usuário autenticado)",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/service-checklists": {
      "get": {
        "tags": [
          "Checklists de serviço"
        ],
        "summary": "Listar templates de checklist",
        "operationId": "get_service-checklists_service_checklists",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/servicos/service-checklists/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "post": {
        "tags": [
          "Checklists de serviço"
        ],
        "summary": "Criar template",
        "operationId": "post_service-checklists_service_checklists",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/servicos/service-checklists/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "201 Created"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "name"
                ],
                "properties": {
                  "name": {
                    "type": "string",
                    "description": "Nome"
                  },
                  "description": {
                    "type": "string",
                    "description": "Descrição"
                  },
                  "active": {
                    "type": "boolean",
                    "description": "Ativo"
                  },
                  "productId": {
                    "type": "string",
                    "format": "uuid",
                    "description": "Produto vinculado"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/service-checklists/responses": {
      "get": {
        "tags": [
          "Checklists de serviço"
        ],
        "summary": "Listar respostas preenchidas",
        "operationId": "get_service-checklists_service_checklists_responses",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/servicos/service-checklists/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/service-checklists/{id}": {
      "get": {
        "tags": [
          "Checklists de serviço"
        ],
        "summary": "Detalhe do template",
        "operationId": "get_service-checklists_service_checklists_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/servicos/service-checklists/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "patch": {
        "tags": [
          "Checklists de serviço"
        ],
        "summary": "Atualizar template",
        "operationId": "patch_service-checklists_service_checklists_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/servicos/service-checklists/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "delete": {
        "tags": [
          "Checklists de serviço"
        ],
        "summary": "Excluir template",
        "operationId": "delete_service-checklists_service_checklists_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/servicos/service-checklists/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "204 No Content"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/service-checklists/{id}/items": {
      "post": {
        "tags": [
          "Checklists de serviço"
        ],
        "summary": "Adicionar item ao template",
        "operationId": "post_service-checklists_service_checklists_id_items",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/servicos/service-checklists/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "201 Created"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "label"
                ],
                "properties": {
                  "label": {
                    "type": "string",
                    "description": "Rótulo"
                  },
                  "itemType": {
                    "type": "string",
                    "description": "TEXT | YES_NO | NUMBER | PHOTO | SELECT"
                  },
                  "required": {
                    "type": "boolean",
                    "description": "Obrigatório"
                  },
                  "optionsJson": {
                    "type": "array",
                    "items": {},
                    "description": "Opções (SELECT)"
                  },
                  "position": {
                    "type": "integer",
                    "description": "Ordem"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/service-checklists/{id}/items/{itemId}": {
      "patch": {
        "tags": [
          "Checklists de serviço"
        ],
        "summary": "Atualizar item",
        "operationId": "patch_service-checklists_service_checklists_id_items_itemId",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/servicos/service-checklists/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "itemId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "delete": {
        "tags": [
          "Checklists de serviço"
        ],
        "summary": "Excluir item",
        "operationId": "delete_service-checklists_service_checklists_id_items_itemId",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/servicos/service-checklists/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "itemId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "204 No Content"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/service-assets": {
      "get": {
        "tags": [
          "Ativos / equipamentos"
        ],
        "summary": "Listar ativo de serviço",
        "operationId": "get_service-assets_service_assets",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/servicos/service-assets/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "post": {
        "tags": [
          "Ativos / equipamentos"
        ],
        "summary": "Criar ativo de serviço",
        "operationId": "post_service-assets_service_assets",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/servicos/service-assets/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "201 Created"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "customerId",
                  "name"
                ],
                "properties": {
                  "customerId": {
                    "type": "string",
                    "format": "uuid",
                    "description": "Cliente"
                  },
                  "name": {
                    "type": "string",
                    "description": "Nome do equipamento"
                  },
                  "serialNumber": {
                    "type": "string",
                    "description": "Número de série"
                  },
                  "model": {
                    "type": "string",
                    "description": "Modelo"
                  },
                  "brand": {
                    "type": "string",
                    "description": "Marca"
                  },
                  "addressLine": {
                    "type": "string",
                    "description": "Endereço de instalação"
                  },
                  "city": {
                    "type": "string",
                    "description": "Cidade"
                  },
                  "state": {
                    "type": "string",
                    "description": "UF"
                  },
                  "notes": {
                    "type": "string",
                    "description": "Observações"
                  },
                  "active": {
                    "type": "boolean",
                    "description": "Ativo"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/service-assets/{id}": {
      "patch": {
        "tags": [
          "Ativos / equipamentos"
        ],
        "summary": "Atualizar ativo de serviço",
        "operationId": "patch_service-assets_service_assets_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/servicos/service-assets/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "customerId",
                  "name"
                ],
                "properties": {
                  "customerId": {
                    "type": "string",
                    "format": "uuid",
                    "description": "Cliente"
                  },
                  "name": {
                    "type": "string",
                    "description": "Nome do equipamento"
                  },
                  "serialNumber": {
                    "type": "string",
                    "description": "Número de série"
                  },
                  "model": {
                    "type": "string",
                    "description": "Modelo"
                  },
                  "brand": {
                    "type": "string",
                    "description": "Marca"
                  },
                  "addressLine": {
                    "type": "string",
                    "description": "Endereço de instalação"
                  },
                  "city": {
                    "type": "string",
                    "description": "Cidade"
                  },
                  "state": {
                    "type": "string",
                    "description": "UF"
                  },
                  "notes": {
                    "type": "string",
                    "description": "Observações"
                  },
                  "active": {
                    "type": "boolean",
                    "description": "Ativo"
                  }
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Ativos / equipamentos"
        ],
        "summary": "Excluir ativo de serviço",
        "operationId": "delete_service-assets_service_assets_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/servicos/service-assets/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "204 No Content"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "get": {
        "tags": [
          "Ativos / equipamentos"
        ],
        "summary": "Detalhe do ativo",
        "operationId": "get_service-assets_service_assets_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/servicos/service-assets/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "put": {
        "tags": [
          "Ativos / equipamentos"
        ],
        "summary": "Atualizar equipamento/veículo (alias do PATCH)",
        "operationId": "put_service-assets_service_assets_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/servicos/service-assets/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/service-assets/qr/{token}": {
      "get": {
        "tags": [
          "Ativos / equipamentos"
        ],
        "summary": "Consultar ativo pelo token do QR",
        "operationId": "get_service-assets_service_assets_qr_token",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/servicos/service-assets/"
        },
        "parameters": [
          {
            "name": "token",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/service-assets/{id}/orders": {
      "get": {
        "tags": [
          "Ativos / equipamentos"
        ],
        "summary": "Ordens de serviço do equipamento/veículo",
        "operationId": "get_service-assets_service_assets_id_orders",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/servicos/service-assets/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/service-recurrence": {
      "get": {
        "tags": [
          "Recorrência de serviços"
        ],
        "summary": "Listar regra de recorrência",
        "operationId": "get_service-recurrence_service_recurrence",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/servicos/service-recurrence/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "post": {
        "tags": [
          "Recorrência de serviços"
        ],
        "summary": "Criar regra de recorrência",
        "operationId": "post_service-recurrence_service_recurrence",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/servicos/service-recurrence/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "201 Created"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "customerId",
                  "title",
                  "nextRunAt"
                ],
                "properties": {
                  "customerId": {
                    "type": "string",
                    "format": "uuid",
                    "description": "Cliente"
                  },
                  "title": {
                    "type": "string",
                    "description": "Título"
                  },
                  "nextRunAt": {
                    "type": "string",
                    "description": "Próxima execução"
                  },
                  "period": {
                    "type": "string",
                    "description": "Periodicidade"
                  },
                  "contractId": {
                    "type": "string",
                    "format": "uuid",
                    "description": "Contrato"
                  },
                  "subscriptionId": {
                    "type": "string",
                    "format": "uuid",
                    "description": "Assinatura"
                  },
                  "assetId": {
                    "type": "string",
                    "format": "uuid",
                    "description": "Ativo"
                  },
                  "checklistTemplateId": {
                    "type": "string",
                    "format": "uuid",
                    "description": "Checklist"
                  },
                  "technicianId": {
                    "type": "string",
                    "format": "uuid",
                    "description": "Técnico"
                  },
                  "status": {
                    "type": "string",
                    "description": "Status"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/service-recurrence/{id}": {
      "patch": {
        "tags": [
          "Recorrência de serviços"
        ],
        "summary": "Atualizar regra de recorrência",
        "operationId": "patch_service-recurrence_service_recurrence_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/servicos/service-recurrence/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "customerId",
                  "title",
                  "nextRunAt"
                ],
                "properties": {
                  "customerId": {
                    "type": "string",
                    "format": "uuid",
                    "description": "Cliente"
                  },
                  "title": {
                    "type": "string",
                    "description": "Título"
                  },
                  "nextRunAt": {
                    "type": "string",
                    "description": "Próxima execução"
                  },
                  "period": {
                    "type": "string",
                    "description": "Periodicidade"
                  },
                  "contractId": {
                    "type": "string",
                    "format": "uuid",
                    "description": "Contrato"
                  },
                  "subscriptionId": {
                    "type": "string",
                    "format": "uuid",
                    "description": "Assinatura"
                  },
                  "assetId": {
                    "type": "string",
                    "format": "uuid",
                    "description": "Ativo"
                  },
                  "checklistTemplateId": {
                    "type": "string",
                    "format": "uuid",
                    "description": "Checklist"
                  },
                  "technicianId": {
                    "type": "string",
                    "format": "uuid",
                    "description": "Técnico"
                  },
                  "status": {
                    "type": "string",
                    "description": "Status"
                  }
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Recorrência de serviços"
        ],
        "summary": "Excluir regra de recorrência",
        "operationId": "delete_service-recurrence_service_recurrence_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/servicos/service-recurrence/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "204 No Content"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "get": {
        "tags": [
          "Recorrência de serviços"
        ],
        "summary": "Detalhe da regra",
        "operationId": "get_service-recurrence_service_recurrence_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/servicos/service-recurrence/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/service-recurrence/run-due": {
      "post": {
        "tags": [
          "Recorrência de serviços"
        ],
        "summary": "Executar regras vencidas agora",
        "operationId": "post_service-recurrence_service_recurrence_run_due",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/servicos/service-recurrence/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/service-reports/overview": {
      "get": {
        "tags": [
          "Relatórios de serviços e campo"
        ],
        "summary": "Visão geral de serviços no período",
        "operationId": "get_service-reports_service_reports_overview",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/servicos/service-reports/"
        },
        "parameters": [
          {
            "name": "from",
            "in": "query",
            "required": false,
            "description": "Data inicial",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "to",
            "in": "query",
            "required": false,
            "description": "Data final",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/service-field/reports": {
      "get": {
        "tags": [
          "Relatórios de serviços e campo"
        ],
        "summary": "Snapshot do dia (indicadores de campo)",
        "operationId": "get_service-reports_service_field_reports",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/servicos/service-reports/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/service-field/reports/metrics": {
      "get": {
        "tags": [
          "Relatórios de serviços e campo"
        ],
        "summary": "Métricas de campo no período",
        "operationId": "get_service-reports_service_field_reports_metrics",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/servicos/service-reports/"
        },
        "parameters": [
          {
            "name": "from",
            "in": "query",
            "required": true,
            "description": "Data inicial",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "to",
            "in": "query",
            "required": true,
            "description": "Data final",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/loyalty/settings": {
      "get": {
        "tags": [
          "Fidelidade"
        ],
        "summary": "Configurações do programa",
        "operationId": "get_loyalty_loyalty_settings",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/marketing/loyalty/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "put": {
        "tags": [
          "Fidelidade"
        ],
        "summary": "Atualizar configurações do programa",
        "operationId": "put_loyalty_loyalty_settings",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/marketing/loyalty/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/loyalty/accounts": {
      "get": {
        "tags": [
          "Fidelidade"
        ],
        "summary": "Listar contas de fidelidade",
        "operationId": "get_loyalty_loyalty_accounts",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/marketing/loyalty/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/loyalty/accounts/by-customer/{customerId}": {
      "get": {
        "tags": [
          "Fidelidade"
        ],
        "summary": "Saldo/status da conta por cliente",
        "operationId": "get_loyalty_loyalty_accounts_by_customer_customerId",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/marketing/loyalty/"
        },
        "parameters": [
          {
            "name": "customerId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/loyalty/accounts/{accountId}/ledger": {
      "get": {
        "tags": [
          "Fidelidade"
        ],
        "summary": "Extrato de pontos",
        "operationId": "get_loyalty_loyalty_accounts_accountId_ledger",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/marketing/loyalty/"
        },
        "parameters": [
          {
            "name": "accountId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/loyalty/accounts/{accountId}/status": {
      "post": {
        "tags": [
          "Fidelidade"
        ],
        "summary": "Ativar/bloquear conta",
        "operationId": "post_loyalty_loyalty_accounts_accountId_status",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/marketing/loyalty/"
        },
        "parameters": [
          {
            "name": "accountId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "status"
                ],
                "properties": {
                  "status": {
                    "type": "string",
                    "description": "ACTIVE | BLOCKED"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/loyalty/adjust": {
      "post": {
        "tags": [
          "Fidelidade"
        ],
        "summary": "Ajuste manual de pontos",
        "operationId": "post_loyalty_loyalty_adjust",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/marketing/loyalty/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "customerId",
                  "points",
                  "direction",
                  "reason"
                ],
                "properties": {
                  "customerId": {
                    "type": "string",
                    "format": "uuid",
                    "description": "Cliente"
                  },
                  "points": {
                    "type": "integer",
                    "description": "Quantidade (positiva)"
                  },
                  "direction": {
                    "type": "string",
                    "description": "credit | debit"
                  },
                  "reason": {
                    "type": "string",
                    "description": "Motivo (mín. 5 caracteres)"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/loyalty/preview": {
      "post": {
        "tags": [
          "Fidelidade"
        ],
        "summary": "Prévia de ganho/resgate em uma venda",
        "operationId": "post_loyalty_loyalty_preview",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/marketing/loyalty/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "totalDue"
                ],
                "properties": {
                  "customerId": {
                    "type": "string",
                    "format": "uuid",
                    "description": "Cliente"
                  },
                  "channel": {
                    "type": "string",
                    "description": "POS | CONVENIENCE"
                  },
                  "priceBasis": {
                    "type": "string",
                    "description": "CASH | CREDIT | MIXED"
                  },
                  "totalDue": {
                    "type": "number",
                    "description": "Total devido"
                  },
                  "redeemPoints": {
                    "type": "integer",
                    "description": "Pontos a resgatar"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/loyalty/campaigns": {
      "get": {
        "tags": [
          "Fidelidade"
        ],
        "summary": "Listar campanhas de fidelidade",
        "operationId": "get_loyalty_loyalty_campaigns",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/marketing/loyalty/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "post": {
        "tags": [
          "Fidelidade"
        ],
        "summary": "Criar campanha",
        "operationId": "post_loyalty_loyalty_campaigns",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/marketing/loyalty/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "name",
                  "type"
                ],
                "properties": {
                  "name": {
                    "type": "string",
                    "description": "Nome"
                  },
                  "type": {
                    "type": "string",
                    "description": "MULTIPLIER | BONUS_FIXED | BONUS_PERCENT_BASE"
                  },
                  "status": {
                    "type": "string",
                    "description": "DRAFT | ACTIVE | FINISHED | CANCELLED"
                  },
                  "multiplier": {
                    "type": "number",
                    "description": "Multiplicador (tipo MULTIPLIER)"
                  },
                  "bonusPoints": {
                    "type": "integer",
                    "description": "Pontos bônus"
                  },
                  "bonusPercent": {
                    "type": "number",
                    "description": "Percentual bônus"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/loyalty/campaigns/{id}": {
      "get": {
        "tags": [
          "Fidelidade"
        ],
        "summary": "Detalhe da campanha",
        "operationId": "get_loyalty_loyalty_campaigns_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/marketing/loyalty/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "patch": {
        "tags": [
          "Fidelidade"
        ],
        "summary": "Atualizar campanha",
        "operationId": "patch_loyalty_loyalty_campaigns_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/marketing/loyalty/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "delete": {
        "tags": [
          "Fidelidade"
        ],
        "summary": "Excluir campanha",
        "operationId": "delete_loyalty_loyalty_campaigns_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/marketing/loyalty/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/loyalty/report": {
      "get": {
        "tags": [
          "Fidelidade"
        ],
        "summary": "Relatório de fidelidade",
        "operationId": "get_loyalty_loyalty_report",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/marketing/loyalty/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/promotional-campaigns": {
      "get": {
        "tags": [
          "Campanhas promocionais"
        ],
        "summary": "Listar campanhas",
        "operationId": "get_promotional-campaigns_promotional_campaigns",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/marketing/promotional-campaigns/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "post": {
        "tags": [
          "Campanhas promocionais"
        ],
        "summary": "Criar campanha",
        "operationId": "post_promotional-campaigns_promotional_campaigns",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/marketing/promotional-campaigns/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "name",
                  "type"
                ],
                "properties": {
                  "name": {
                    "type": "string",
                    "description": "Nome"
                  },
                  "type": {
                    "type": "string",
                    "description": "LIVE | QUEIMA_ESTOQUE | BLACK_FRIDAY | FEIRAO | OUTLET | PROMOCAO | OUTRO"
                  },
                  "description": {
                    "type": "string",
                    "description": "Descrição"
                  },
                  "startsAt": {
                    "type": "string",
                    "description": "Início"
                  },
                  "endsAt": {
                    "type": "string",
                    "description": "Fim"
                  },
                  "commissionPercent": {
                    "type": "string",
                    "description": "Comissão do vendedor na campanha (%). Null = usa o cadastro do vendedor"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/promotional-campaigns/settings": {
      "get": {
        "tags": [
          "Campanhas promocionais"
        ],
        "summary": "Configurações de campanhas",
        "operationId": "get_promotional-campaigns_promotional_campaigns_settings",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/marketing/promotional-campaigns/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "patch": {
        "tags": [
          "Campanhas promocionais"
        ],
        "summary": "Atualizar configurações",
        "operationId": "patch_promotional-campaigns_promotional_campaigns_settings",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/marketing/promotional-campaigns/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/promotional-campaigns/{id}": {
      "get": {
        "tags": [
          "Campanhas promocionais"
        ],
        "summary": "Detalhe",
        "operationId": "get_promotional-campaigns_promotional_campaigns_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/marketing/promotional-campaigns/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "patch": {
        "tags": [
          "Campanhas promocionais"
        ],
        "summary": "Atualizar",
        "operationId": "patch_promotional-campaigns_promotional_campaigns_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/marketing/promotional-campaigns/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "delete": {
        "tags": [
          "Campanhas promocionais"
        ],
        "summary": "Excluir",
        "operationId": "delete_promotional-campaigns_promotional_campaigns_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/marketing/promotional-campaigns/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/promotional-campaigns/{id}/details": {
      "get": {
        "tags": [
          "Campanhas promocionais"
        ],
        "summary": "Totais por cliente, faturamento e gráficos",
        "operationId": "get_promotional-campaigns_promotional_campaigns_id_details",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/marketing/promotional-campaigns/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "from",
            "in": "query",
            "required": false,
            "description": "Data inicial (YYYY-MM-DD). Omite para toda a campanha",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "to",
            "in": "query",
            "required": false,
            "description": "Data final (YYYY-MM-DD). Omite para toda a campanha",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/promotional-campaigns/{id}/activate": {
      "post": {
        "tags": [
          "Campanhas promocionais"
        ],
        "summary": "Ativar",
        "operationId": "post_promotional-campaigns_promotional_campaigns_id_activate",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/marketing/promotional-campaigns/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/promotional-campaigns/{id}/finish": {
      "post": {
        "tags": [
          "Campanhas promocionais"
        ],
        "summary": "Encerrar",
        "operationId": "post_promotional-campaigns_promotional_campaigns_id_finish",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/marketing/promotional-campaigns/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/promotional-campaigns/{id}/cancel": {
      "post": {
        "tags": [
          "Campanhas promocionais"
        ],
        "summary": "Cancelar",
        "operationId": "post_promotional-campaigns_promotional_campaigns_id_cancel",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/marketing/promotional-campaigns/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/promotional-campaigns/{id}/prices": {
      "get": {
        "tags": [
          "Campanhas promocionais"
        ],
        "summary": "Listar preços da campanha",
        "operationId": "get_promotional-campaigns_promotional_campaigns_id_prices",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/marketing/promotional-campaigns/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/promotional-campaigns/{id}/prices/{productId}": {
      "get": {
        "tags": [
          "Campanhas promocionais"
        ],
        "summary": "Preço de um produto",
        "operationId": "get_promotional-campaigns_promotional_campaigns_id_prices_productId",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/marketing/promotional-campaigns/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "productId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "put": {
        "tags": [
          "Campanhas promocionais"
        ],
        "summary": "Definir preço de campanha do produto",
        "operationId": "put_promotional-campaigns_promotional_campaigns_id_prices_productId",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/marketing/promotional-campaigns/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "productId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "price"
                ],
                "properties": {
                  "price": {
                    "type": "number",
                    "description": "Preço promocional"
                  }
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Campanhas promocionais"
        ],
        "summary": "Remover preço de campanha do produto",
        "operationId": "delete_promotional-campaigns_promotional_campaigns_id_prices_productId",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/marketing/promotional-campaigns/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "productId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/coupons": {
      "get": {
        "tags": [
          "Cupons"
        ],
        "summary": "Listar cupons",
        "operationId": "get_coupons_coupons",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/marketing/coupons/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "post": {
        "tags": [
          "Cupons"
        ],
        "summary": "Criar cupom",
        "operationId": "post_coupons_coupons",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/marketing/coupons/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "code",
                  "name",
                  "kind",
                  "discountType",
                  "discountValue"
                ],
                "properties": {
                  "code": {
                    "type": "string",
                    "description": "Código"
                  },
                  "name": {
                    "type": "string",
                    "description": "Nome"
                  },
                  "kind": {
                    "type": "string",
                    "description": "BIRTHDAY | GENERAL"
                  },
                  "discountType": {
                    "type": "string",
                    "description": "PERCENT | FIXED"
                  },
                  "discountValue": {
                    "type": "number",
                    "description": "Valor do desconto"
                  },
                  "status": {
                    "type": "string",
                    "description": "ACTIVE | INACTIVE"
                  },
                  "validFrom": {
                    "type": "string",
                    "description": "YYYY-MM-DD"
                  },
                  "validUntil": {
                    "type": "string",
                    "description": "YYYY-MM-DD"
                  },
                  "maxUsesTotal": {
                    "type": "integer",
                    "description": "Limite total de usos"
                  },
                  "maxUsesPerCustomer": {
                    "type": "integer",
                    "description": "Limite por cliente"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/coupons/eligible/birthday": {
      "get": {
        "tags": [
          "Cupons"
        ],
        "summary": "Cupons de aniversário elegíveis",
        "operationId": "get_coupons_coupons_eligible_birthday",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/marketing/coupons/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/coupons/eligible/code": {
      "post": {
        "tags": [
          "Cupons"
        ],
        "summary": "Validar código de cupom",
        "operationId": "post_coupons_coupons_eligible_code",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/marketing/coupons/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "code"
                ],
                "properties": {
                  "code": {
                    "type": "string",
                    "description": "Código do cupom"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/coupons/{id}": {
      "get": {
        "tags": [
          "Cupons"
        ],
        "summary": "Detalhe",
        "operationId": "get_coupons_coupons_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/marketing/coupons/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "patch": {
        "tags": [
          "Cupons"
        ],
        "summary": "Atualizar cupom",
        "operationId": "patch_coupons_coupons_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/marketing/coupons/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "delete": {
        "tags": [
          "Cupons"
        ],
        "summary": "Excluir cupom",
        "operationId": "delete_coupons_coupons_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/marketing/coupons/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/promotions": {
      "get": {
        "tags": [
          "Promoções com brinde"
        ],
        "summary": "Listar promoções",
        "operationId": "get_promotions_promotions",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/marketing/promotions/"
        },
        "parameters": [
          {
            "name": "q",
            "in": "query",
            "required": false,
            "description": "Busca por nome",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "active",
            "in": "query",
            "required": false,
            "description": "true / false",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "type",
            "in": "query",
            "required": false,
            "description": "VALOR_MINIMO_COM_BRINDE",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "from",
            "in": "query",
            "required": false,
            "description": "Vigência a partir de (AAAA-MM-DD)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "to",
            "in": "query",
            "required": false,
            "description": "Vigência até (AAAA-MM-DD)",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "post": {
        "tags": [
          "Promoções com brinde"
        ],
        "summary": "Criar promoção",
        "operationId": "post_promotions_promotions",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/marketing/promotions/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "201 Created"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "name",
                  "minValue",
                  "valueCriterion",
                  "startsAt",
                  "paymentMethodIds",
                  "gifts"
                ],
                "properties": {
                  "name": {
                    "type": "string",
                    "description": "Nome"
                  },
                  "description": {
                    "type": "string",
                    "description": "Descrição"
                  },
                  "minValue": {
                    "type": "number",
                    "description": "Valor mínimo da venda"
                  },
                  "valueCriterion": {
                    "type": "string",
                    "description": "PRODUCT_GROSS, NET_AFTER_DISCOUNTS ou CASH_VALUE"
                  },
                  "startsAt": {
                    "type": "string",
                    "description": "Início (ISO ou AAAA-MM-DD)"
                  },
                  "endsAt": {
                    "type": "string",
                    "description": "Fim (opcional)"
                  },
                  "active": {
                    "type": "boolean",
                    "description": "Padrão true"
                  },
                  "paymentMethodIds": {
                    "type": "string",
                    "description": "Formas de pagamento válidas"
                  },
                  "gifts": {
                    "type": "array",
                    "items": {},
                    "description": "[{ productId, quantityPerSale, campaignLimit }]"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/promotions/{id}": {
      "get": {
        "tags": [
          "Promoções com brinde"
        ],
        "summary": "Detalhe da promoção",
        "operationId": "get_promotions_promotions_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/marketing/promotions/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "patch": {
        "tags": [
          "Promoções com brinde"
        ],
        "summary": "Atualizar promoção (mesmo corpo da criação)",
        "operationId": "patch_promotions_promotions_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/marketing/promotions/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "delete": {
        "tags": [
          "Promoções com brinde"
        ],
        "summary": "Excluir promoção",
        "operationId": "delete_promotions_promotions_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/marketing/promotions/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "204 No Content"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/promotions/{id}/active": {
      "patch": {
        "tags": [
          "Promoções com brinde"
        ],
        "summary": "Ativar ou pausar",
        "operationId": "patch_promotions_promotions_id_active",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/marketing/promotions/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "active"
                ],
                "properties": {
                  "active": {
                    "type": "boolean",
                    "description": "Situação"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/card-fees": {
      "get": {
        "tags": [
          "Taxas de cartão"
        ],
        "summary": "Configuração de taxas",
        "operationId": "get_card-fees_card_fees",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/card-fees/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "put": {
        "tags": [
          "Taxas de cartão"
        ],
        "summary": "Atualizar configuração de taxas",
        "operationId": "put_card-fees_card_fees",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/card-fees/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/card-fees/accounts": {
      "post": {
        "tags": [
          "Taxas de cartão"
        ],
        "summary": "Criar conta/maquininha",
        "operationId": "post_card-fees_card_fees_accounts",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/card-fees/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/card-fees/accounts/{accountId}": {
      "patch": {
        "tags": [
          "Taxas de cartão"
        ],
        "summary": "Atualizar conta",
        "operationId": "patch_card-fees_card_fees_accounts_accountId",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/card-fees/"
        },
        "parameters": [
          {
            "name": "accountId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "delete": {
        "tags": [
          "Taxas de cartão"
        ],
        "summary": "Excluir conta",
        "operationId": "delete_card-fees_card_fees_accounts_accountId",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/card-fees/"
        },
        "parameters": [
          {
            "name": "accountId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/card-fees/accounts/{accountId}/activate": {
      "post": {
        "tags": [
          "Taxas de cartão"
        ],
        "summary": "Ativar conta",
        "operationId": "post_card-fees_card_fees_accounts_accountId_activate",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/card-fees/"
        },
        "parameters": [
          {
            "name": "accountId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/card-fees/accounts/{accountId}/use-for-payment-link": {
      "post": {
        "tags": [
          "Taxas de cartão"
        ],
        "summary": "Usar conta no link de pagamento",
        "operationId": "post_card-fees_card_fees_accounts_accountId_use_for_payment_link",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/card-fees/"
        },
        "parameters": [
          {
            "name": "accountId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/card-fees/calc-jobs": {
      "get": {
        "tags": [
          "Taxas de cartão"
        ],
        "summary": "Listar jobs de recálculo",
        "operationId": "get_card-fees_card_fees_calc_jobs",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/card-fees/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "post": {
        "tags": [
          "Taxas de cartão"
        ],
        "summary": "Enfileirar recálculo de taxas",
        "operationId": "post_card-fees_card_fees_calc_jobs",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/card-fees/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/card-fees/calc-jobs/{jobId}": {
      "delete": {
        "tags": [
          "Taxas de cartão"
        ],
        "summary": "Cancelar job",
        "operationId": "delete_card-fees_card_fees_calc_jobs_jobId",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/card-fees/"
        },
        "parameters": [
          {
            "name": "jobId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/card-fees/accounts/{accountId}/brand-rates": {
      "put": {
        "tags": [
          "Taxas de cartão"
        ],
        "summary": "Substituir as taxas próprias de uma bandeira numa maquininha",
        "operationId": "put_card-fees_card_fees_accounts_accountId_brand_rates",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/card-fees/"
        },
        "parameters": [
          {
            "name": "accountId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A configuração de taxas completa (mesmo retorno de GET /card-fees)."
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "cardBrandId",
                  "rates"
                ],
                "properties": {
                  "cardBrandId": {
                    "type": "string",
                    "description": "Bandeira"
                  },
                  "rates": {
                    "type": "array",
                    "items": {},
                    "description": "[{ cardType (debit ou credit), installments (1 a 12), feePercent (0 a 100, ou null para usar a taxa geral da maquininha) }]"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/card-fees/brands": {
      "post": {
        "tags": [
          "Taxas de cartão"
        ],
        "summary": "Cadastrar bandeira de cartão",
        "operationId": "post_card-fees_card_fees_brands",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/card-fees/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "201 Created — a configuração de taxas completa."
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "name"
                ],
                "properties": {
                  "name": {
                    "type": "string",
                    "description": "Nome (até 60)"
                  },
                  "tBand": {
                    "type": "string",
                    "description": "Código tBand da NFC-e (1 a 2 dígitos); null para não informar"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/card-fees/brands/{brandId}": {
      "patch": {
        "tags": [
          "Taxas de cartão"
        ],
        "summary": "Atualizar bandeira de cartão",
        "operationId": "patch_card-fees_card_fees_brands_brandId",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/card-fees/"
        },
        "parameters": [
          {
            "name": "brandId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A configuração de taxas completa."
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [],
                "properties": {
                  "name": {
                    "type": "string",
                    "description": "Nome (até 60)"
                  },
                  "tBand": {
                    "type": "string",
                    "description": "Código tBand da NFC-e (1 a 2 dígitos); null remove"
                  },
                  "active": {
                    "type": "boolean",
                    "description": "Ativa"
                  }
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Taxas de cartão"
        ],
        "summary": "Remover bandeira (se já foi usada em vendas, é apenas desativada)",
        "operationId": "delete_card-fees_card_fees_brands_brandId",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/card-fees/"
        },
        "parameters": [
          {
            "name": "brandId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A configuração de taxas completa."
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/card-fees/auto-adjust": {
      "get": {
        "tags": [
          "Taxas de cartão"
        ],
        "summary": "Configuração do reajuste automático de taxas por faixa de faturamento",
        "operationId": "get_card-fees_card_fees_auto_adjust",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/card-fees/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "{ enabled, lastMonth, lastAt, lastNote, tiers }. tiers lista as faixas (minGross e a maquininha/conta de cada uma)."
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "put": {
        "tags": [
          "Taxas de cartão"
        ],
        "summary": "Salvar o reajuste automático: a maquininha ativa passa a ser escolhida pelo volume de cartão do mês anterior",
        "operationId": "put_card-fees_card_fees_auto_adjust",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/card-fees/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "A configuração salva (mesmo formato de GET). 400 para faixas duplicadas ou ligado sem faixas; 404 se alguma maquininha não existe."
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "x-sensitive": true,
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "enabled",
                  "tiers"
                ],
                "properties": {
                  "enabled": {
                    "type": "boolean",
                    "description": "Reajuste ligado (exige ao menos uma faixa)"
                  },
                  "tiers": {
                    "type": "array",
                    "items": {},
                    "description": "Até 20 faixas: [{ minGross, accountId }] — minGross é o volume mínimo de cartão do mês anterior (R$); não pode haver duas faixas com o mesmo valor"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/card-fees/auto-adjust/run": {
      "post": {
        "tags": [
          "Taxas de cartão"
        ],
        "summary": "Aplicar agora a regra do mês corrente, trocando a maquininha ativa conforme o volume do mês anterior",
        "operationId": "post_card-fees_card_fees_auto_adjust_run",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/card-fees/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "{ result, payload } — result.status indica o que ocorreu (por exemplo applied, com accountName) e payload é a configuração de taxas completa. 409 se o reajuste está desligado ou sem faixas."
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "x-sensitive": true
      }
    },
    "/card-fees/recalc-month/preview": {
      "post": {
        "tags": [
          "Taxas de cartão"
        ],
        "summary": "Simular o recálculo das taxas de um mês com a maquininha vigente, sem gravar nada",
        "operationId": "post_card-fees_card_fees_recalc_month_preview",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/card-fees/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "{ month, dryRun, activeAccountName, totalMatched, updated, skipped, failed, grossTotal, feeBefore, feeAfter }. Para aplicar de verdade, enfileire com POST /card-fees/calc-jobs enviando { month }."
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "month"
                ],
                "properties": {
                  "month": {
                    "type": "string",
                    "description": "Mês no formato AAAA-MM"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/outbound-webhooks": {
      "get": {
        "tags": [
          "Webhooks de saída (fiscal)"
        ],
        "summary": "Listar destinos",
        "operationId": "get_outbound-webhooks_outbound_webhooks",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/outbound-webhooks/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "post": {
        "tags": [
          "Webhooks de saída (fiscal)"
        ],
        "summary": "Criar destino",
        "operationId": "post_outbound-webhooks_outbound_webhooks",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/outbound-webhooks/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "201 Created. Retorna o segredo (whsec_...) uma única vez"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "x-sensitive": true,
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "url"
                ],
                "properties": {
                  "url": {
                    "type": "string",
                    "description": "URL https que receberá os eventos"
                  },
                  "description": {
                    "type": "string",
                    "description": "Descrição (até 200)"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/outbound-webhooks/{id}": {
      "patch": {
        "tags": [
          "Webhooks de saída (fiscal)"
        ],
        "summary": "Alterar URL, descrição ou ativar/desativar",
        "operationId": "patch_outbound-webhooks_outbound_webhooks_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/outbound-webhooks/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [],
                "properties": {
                  "url": {
                    "type": "string",
                    "description": "Nova URL https"
                  },
                  "description": {
                    "type": "string",
                    "description": "Descrição"
                  },
                  "active": {
                    "type": "boolean",
                    "description": "Ativa ou pausa o envio"
                  }
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Webhooks de saída (fiscal)"
        ],
        "summary": "Remover destino",
        "operationId": "delete_outbound-webhooks_outbound_webhooks_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/outbound-webhooks/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/outbound-webhooks/{id}/rotate-secret": {
      "post": {
        "tags": [
          "Webhooks de saída (fiscal)"
        ],
        "summary": "Gerar novo segredo (mostrado uma vez)",
        "operationId": "post_outbound-webhooks_outbound_webhooks_id_rotate_secret",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/outbound-webhooks/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "x-sensitive": true
      }
    },
    "/outbound-webhooks/{id}/test": {
      "post": {
        "tags": [
          "Webhooks de saída (fiscal)"
        ],
        "summary": "Enviar evento webhook.test para validar URL e assinatura",
        "operationId": "post_outbound-webhooks_outbound_webhooks_id_test",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/outbound-webhooks/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/outbound-webhooks/{id}/deliveries": {
      "get": {
        "tags": [
          "Webhooks de saída (fiscal)"
        ],
        "summary": "Últimas 50 entregas e seus status",
        "operationId": "get_outbound-webhooks_outbound_webhooks_id_deliveries",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/outbound-webhooks/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/outbound-webhooks/{id}/deliveries/{deliveryId}/retry": {
      "post": {
        "tags": [
          "Webhooks de saída (fiscal)"
        ],
        "summary": "Reenviar entrega que esgotou as tentativas",
        "operationId": "post_outbound-webhooks_outbound_webhooks_id_deliveries_deliveryId_retry",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/outbound-webhooks/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "deliveryId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/api-keys": {
      "get": {
        "tags": [
          "Chaves de API"
        ],
        "summary": "Listar chaves",
        "operationId": "get_api-keys_api_keys",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/acesso/api-keys/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "post": {
        "tags": [
          "Chaves de API"
        ],
        "summary": "Criar chave",
        "operationId": "post_api-keys_api_keys",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/acesso/api-keys/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "201 Created. Retorna o token completo uma única vez"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "x-sensitive": true,
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "name"
                ],
                "properties": {
                  "name": {
                    "type": "string",
                    "description": "Nome da chave (até 100)"
                  },
                  "scope": {
                    "type": "string",
                    "description": "integration (padrão), read ou inherit"
                  },
                  "permissions": {
                    "type": "string",
                    "description": "Lista personalizada de permissões (substitui o escopo)"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api-keys/{id}": {
      "delete": {
        "tags": [
          "Chaves de API"
        ],
        "summary": "Revogar chave",
        "operationId": "delete_api-keys_api_keys_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/acesso/api-keys/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/activity-logs": {
      "get": {
        "tags": [
          "Logs de atividade"
        ],
        "summary": "Listar logs de auditoria da loja",
        "operationId": "get_activity-logs_activity_logs",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/acesso/activity-logs/"
        },
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "description": "Página",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Itens por página",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "userId",
            "in": "query",
            "required": false,
            "description": "Usuário",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "action",
            "in": "query",
            "required": false,
            "description": "Ação (ex.: SETTINGS_UPDATE)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "entityType",
            "in": "query",
            "required": false,
            "description": "Tipo de entidade",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "description": "Busca no resumo",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "from",
            "in": "query",
            "required": false,
            "description": "Data inicial",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "to",
            "in": "query",
            "required": false,
            "description": "Data final",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/store-timeline": {
      "get": {
        "tags": [
          "Linha do tempo"
        ],
        "summary": "Acontecimentos da loja em ordem cronológica (pedido, condicional, entrada, pagamento, sangria e demais movimentos)",
        "operationId": "get_store-timeline_store_timeline",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/acesso/store-timeline/"
        },
        "parameters": [
          {
            "name": "cursor",
            "in": "query",
            "required": false,
            "description": "Cursor da próxima página (rolagem infinita)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Itens por página (máx. 50, padrão 30)",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "types",
            "in": "query",
            "required": false,
            "description": "Tipos separados por vírgula (ex.: SALE_COMPLETED,CASH_WITHDRAWAL)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "from",
            "in": "query",
            "required": false,
            "description": "Data inicial",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "to",
            "in": "query",
            "required": false,
            "description": "Data final",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Retorna { items, nextCursor }. nextCursor nulo indica o fim da lista."
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/store-timeline/summary": {
      "get": {
        "tags": [
          "Linha do tempo"
        ],
        "summary": "Totais de entradas, saídas e quantidade de acontecimentos do período filtrado",
        "operationId": "get_store-timeline_store_timeline_summary",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/acesso/store-timeline/"
        },
        "parameters": [
          {
            "name": "types",
            "in": "query",
            "required": false,
            "description": "Tipos separados por vírgula; só valem os tipos que a permissão do usuário permite",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "from",
            "in": "query",
            "required": false,
            "description": "Data inicial (AAAA-MM-DD ou data/hora ISO)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "to",
            "in": "query",
            "required": false,
            "description": "Data final (AAAA-MM-DD ou data/hora ISO)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "q",
            "in": "query",
            "required": false,
            "description": "Busca por texto (até 120)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "allLocations",
            "in": "query",
            "required": false,
            "description": "Considera todas as filiais (padrão: só a filial do usuário)",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "{ inflow, outflow, count } — mesmos filtros de GET /store-timeline."
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/vault/users": {
      "get": {
        "tags": [
          "Cofre de senhas e arquivos"
        ],
        "summary": "Usuários que podem receber acesso a itens",
        "operationId": "get_vault_vault_users",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/acesso/vault/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/vault/items": {
      "get": {
        "tags": [
          "Cofre de senhas e arquivos"
        ],
        "summary": "Listar itens visíveis (sem o segredo)",
        "operationId": "get_vault_vault_items",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/acesso/vault/"
        },
        "parameters": [
          {
            "name": "q",
            "in": "query",
            "required": false,
            "description": "Busca",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "kind",
            "in": "query",
            "required": false,
            "description": "PASSWORD ou FILE",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "post": {
        "tags": [
          "Cofre de senhas e arquivos"
        ],
        "summary": "Criar senha",
        "operationId": "post_vault_vault_items",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/acesso/vault/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "201 Created. Exige permissão de gerenciar o cofre."
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "x-sensitive": true,
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "title",
                  "secret"
                ],
                "properties": {
                  "title": {
                    "type": "string",
                    "description": "Nome"
                  },
                  "secret": {
                    "type": "string",
                    "description": "Senha (guardada criptografada)"
                  },
                  "username": {
                    "type": "string",
                    "description": "Usuário/login"
                  },
                  "url": {
                    "type": "string",
                    "description": "Endereço"
                  },
                  "notes": {
                    "type": "string",
                    "description": "Observações"
                  },
                  "access": {
                    "type": "array",
                    "items": {},
                    "description": "[{ userId, canEdit }]"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/vault/items/{id}": {
      "get": {
        "tags": [
          "Cofre de senhas e arquivos"
        ],
        "summary": "Detalhe do item (sem o segredo)",
        "operationId": "get_vault_vault_items_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/acesso/vault/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "patch": {
        "tags": [
          "Cofre de senhas e arquivos"
        ],
        "summary": "Atualizar item (título, usuário, URL, senha, observações, acesso)",
        "operationId": "patch_vault_vault_items_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/acesso/vault/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "x-sensitive": true
      },
      "delete": {
        "tags": [
          "Cofre de senhas e arquivos"
        ],
        "summary": "Excluir item",
        "operationId": "delete_vault_vault_items_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/acesso/vault/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "204 No Content"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/vault/files": {
      "post": {
        "tags": [
          "Cofre de senhas e arquivos"
        ],
        "summary": "Enviar arquivo (multipart/form-data, campo file, até 10 MB)",
        "operationId": "post_vault_vault_files",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/acesso/vault/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "201 Created. Exige permissão de gerenciar o cofre."
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "file"
                ],
                "properties": {
                  "file": {
                    "type": "string",
                    "description": "Arquivo"
                  },
                  "title": {
                    "type": "string",
                    "description": "Nome"
                  },
                  "notes": {
                    "type": "string",
                    "description": "Observações"
                  },
                  "access": {
                    "type": "string",
                    "description": "JSON [{ userId, canEdit }]"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/vault/items/{id}/reveal": {
      "post": {
        "tags": [
          "Cofre de senhas e arquivos"
        ],
        "summary": "Revelar a senha — retorna { secret } e registra no log de atividade",
        "operationId": "post_vault_vault_items_id_reveal",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/acesso/vault/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "x-sensitive": true
      }
    },
    "/vault/items/{id}/file": {
      "get": {
        "tags": [
          "Cofre de senhas e arquivos"
        ],
        "summary": "Baixar o arquivo (sempre como download)",
        "operationId": "get_vault_vault_items_id_file",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/acesso/vault/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "put": {
        "tags": [
          "Cofre de senhas e arquivos"
        ],
        "summary": "Substituir o arquivo (multipart, campo file)",
        "operationId": "put_vault_vault_items_id_file",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/acesso/vault/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/receivables/summary": {
      "get": {
        "tags": [
          "Contas a receber"
        ],
        "summary": "Resumo (em aberto, vencido, recebido)",
        "operationId": "get_receivables_receivables_summary",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/financeiro/receivables/"
        },
        "parameters": [
          {
            "name": "from",
            "in": "query",
            "required": false,
            "description": "ISO date — filtro de baixas",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "to",
            "in": "query",
            "required": false,
            "description": "ISO date",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/receivables/installments/summary": {
      "get": {
        "tags": [
          "Contas a receber"
        ],
        "summary": "Resumo das parcelas (saldo, vencidas, quantidades)",
        "operationId": "get_receivables_receivables_installments_summary",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/financeiro/receivables/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/receivables/installments": {
      "get": {
        "tags": [
          "Contas a receber"
        ],
        "summary": "Listar todas as parcelas (todos os clientes)",
        "operationId": "get_receivables_receivables_installments",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/financeiro/receivables/"
        },
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "description": "Página (padrão 1)",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "required": false,
            "description": "Itens por página (padrão 20)",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "q",
            "in": "query",
            "required": false,
            "description": "Cliente, CPF, pedido ou nº da parcela",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "description": "OPEN | PARTIAL | PAID",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "customerId",
            "in": "query",
            "required": false,
            "description": "UUID do cliente",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "overdue",
            "in": "query",
            "required": false,
            "description": "true — só vencidas",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "from",
            "in": "query",
            "required": false,
            "description": "ISO date — vencimento inicial",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "to",
            "in": "query",
            "required": false,
            "description": "ISO date — vencimento final",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "sortBy",
            "in": "query",
            "required": false,
            "description": "customer | origin | sequence | amount | balance | dueDate | status",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "sortDir",
            "in": "query",
            "required": false,
            "description": "asc | desc (padrão asc)",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/receivables": {
      "get": {
        "tags": [
          "Contas a receber"
        ],
        "summary": "Listar contas",
        "operationId": "get_receivables_receivables",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/financeiro/receivables/"
        },
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "description": "Página (padrão 1)",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "required": false,
            "description": "Itens por página (padrão 20)",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "q",
            "in": "query",
            "required": false,
            "description": "Cliente, pedido ou descrição",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "description": "OPEN | PARTIAL | PAID | CANCELLED",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "customerId",
            "in": "query",
            "required": false,
            "description": "UUID do cliente",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "paymentMethodId",
            "in": "query",
            "required": false,
            "description": "Forma de pagamento da venda de origem (ex.: boleto, crediário)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "overdue",
            "in": "query",
            "required": false,
            "description": "true — só vencidas",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "excludePaid",
            "in": "query",
            "required": false,
            "description": "true — oculta contas quitadas",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "excludeCancelled",
            "in": "query",
            "required": false,
            "description": "true — oculta contas canceladas",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "sortBy",
            "in": "query",
            "required": false,
            "description": "customer | origin | originalAmount | balance | dueDate | status",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "sortDir",
            "in": "query",
            "required": false,
            "description": "asc | desc (padrão asc)",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "post": {
        "tags": [
          "Contas a receber"
        ],
        "summary": "Cadastro manual",
        "operationId": "post_receivables_receivables",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/financeiro/receivables/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "originalAmount"
                ],
                "properties": {
                  "customerId": {
                    "type": "string",
                    "description": "UUID do cliente"
                  },
                  "originalAmount": {
                    "type": "number",
                    "description": "Valor da dívida"
                  },
                  "dueDate": {
                    "type": "string",
                    "description": "Data de vencimento"
                  },
                  "installmentCount": {
                    "type": "number",
                    "description": "1–48 parcelas"
                  },
                  "description": {
                    "type": "string",
                    "description": "Observação opcional"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/receivables/{id}": {
      "get": {
        "tags": [
          "Contas a receber"
        ],
        "summary": "Detalhe com parcelas e baixas",
        "operationId": "get_receivables_receivables_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/financeiro/receivables/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "patch": {
        "tags": [
          "Contas a receber"
        ],
        "summary": "Atualizar conta e parcelamento (não quitada/cancelada)",
        "operationId": "patch_receivables_receivables_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/financeiro/receivables/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [],
                "properties": {
                  "customerId": {
                    "type": "string",
                    "description": "UUID do cliente"
                  },
                  "description": {
                    "type": "string",
                    "description": "Observação"
                  },
                  "installmentCount": {
                    "type": "number",
                    "description": "Regerar parcelas (sem baixas)"
                  },
                  "firstDueDate": {
                    "type": "string",
                    "description": "1º vencimento ao regerar"
                  },
                  "installments": {
                    "type": "array",
                    "items": {},
                    "description": "Lista { id?, sequence, amount, dueDate } — soma = valor original"
                  }
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Contas a receber"
        ],
        "summary": "Excluir conta, parcelas e baixas",
        "operationId": "delete_receivables_receivables_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/financeiro/receivables/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/receivables/historical-sales": {
      "post": {
        "tags": [
          "Contas a receber"
        ],
        "summary": "Importar venda antiga sem movimentar estoque, caixa ou fiscal",
        "operationId": "post_receivables_receivables_historical_sales",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/financeiro/receivables/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "sourceSystem",
                  "externalId",
                  "saleDate",
                  "customerId",
                  "items",
                  "totalAmount",
                  "firstDueDate"
                ],
                "properties": {
                  "sourceSystem": {
                    "type": "string",
                    "description": "Sistema de origem"
                  },
                  "externalId": {
                    "type": "string",
                    "description": "Número da nota antiga"
                  },
                  "saleDate": {
                    "type": "string",
                    "description": "Data histórica da venda"
                  },
                  "customerId": {
                    "type": "string",
                    "description": "UUID do cliente"
                  },
                  "items": {
                    "type": "array",
                    "items": {},
                    "description": "Variantes, quantidades e preços históricos"
                  },
                  "totalAmount": {
                    "type": "number",
                    "description": "Total declarado da nota"
                  },
                  "paidAmount": {
                    "type": "number",
                    "description": "Valor já recebido"
                  },
                  "firstDueDate": {
                    "type": "string",
                    "description": "Primeiro vencimento"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/receivables/{id}/payments": {
      "post": {
        "tags": [
          "Contas a receber"
        ],
        "summary": "Registrar baixa",
        "operationId": "post_receivables_receivables_id_payments",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/financeiro/receivables/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "amount",
                  "paymentMethodId"
                ],
                "properties": {
                  "amount": {
                    "type": "number",
                    "description": "Valor recebido"
                  },
                  "installmentId": {
                    "type": "string",
                    "description": "Parcela específica"
                  },
                  "paymentMethodId": {
                    "type": "string",
                    "description": "Forma de recebimento"
                  },
                  "notes": {
                    "type": "string",
                    "description": "Observação opcional"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/receivables/{id}/payments/{paymentId}": {
      "patch": {
        "tags": [
          "Contas a receber"
        ],
        "summary": "Editar baixa e recalcular saldos",
        "operationId": "patch_receivables_receivables_id_payments_paymentId",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/financeiro/receivables/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "paymentId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "amount",
                  "paymentMethodId"
                ],
                "properties": {
                  "amount": {
                    "type": "number",
                    "description": "Valor recebido"
                  },
                  "paidAt": {
                    "type": "string",
                    "description": "Data/hora da baixa (ISO)"
                  },
                  "installmentId": {
                    "type": "string",
                    "description": "Parcela específica (null = ordem de vencimento)"
                  },
                  "paymentMethodId": {
                    "type": "string",
                    "description": "Forma de recebimento"
                  },
                  "discountAmount": {
                    "type": "number",
                    "description": "Desconto concedido"
                  },
                  "lateFeeAmount": {
                    "type": "number",
                    "description": "Multa cobrada"
                  },
                  "interestAmount": {
                    "type": "number",
                    "description": "Juros cobrados"
                  },
                  "notes": {
                    "type": "string",
                    "description": "Observação opcional"
                  }
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Contas a receber"
        ],
        "summary": "Excluir baixa e recalcular saldos",
        "operationId": "delete_receivables_receivables_id_payments_paymentId",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/financeiro/receivables/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "paymentId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/receivables/{id}/cancel": {
      "post": {
        "tags": [
          "Contas a receber"
        ],
        "summary": "Cancelar conta — baixa por perda (zera saldo sem entrada no caixa; mantém baixas)",
        "operationId": "post_receivables_receivables_id_cancel",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/financeiro/receivables/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "reason"
                ],
                "properties": {
                  "reason": {
                    "type": "string",
                    "description": "Motivo (mín. 10 caracteres)"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/receivables/{id}/reopen": {
      "post": {
        "tags": [
          "Contas a receber"
        ],
        "summary": "Reverter cancelamento (somente administrador; saldo recalculado pelas baixas)",
        "operationId": "post_receivables_receivables_id_reopen",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/financeiro/receivables/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "reason"
                ],
                "properties": {
                  "reason": {
                    "type": "string",
                    "description": "Motivo (mín. 10 caracteres)"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/receivables/historical-sales/parse-text": {
      "post": {
        "tags": [
          "Contas a receber"
        ],
        "summary": "Interpretar venda histórica (texto/IA)",
        "operationId": "post_receivables_receivables_historical_sales_parse_text",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/financeiro/receivables/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/receivables/historical-sales/parse-image": {
      "post": {
        "tags": [
          "Contas a receber"
        ],
        "summary": "Interpretar venda histórica (imagem/IA)",
        "operationId": "post_receivables_receivables_historical_sales_parse_image",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/financeiro/receivables/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/receivables/payments": {
      "get": {
        "tags": [
          "Contas a receber"
        ],
        "summary": "Obter pagamentos / baixas",
        "operationId": "get_receivables_receivables_payments",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/financeiro/receivables/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/receivables/customers/{customerId}/card-payments": {
      "post": {
        "tags": [
          "Contas a receber"
        ],
        "summary": "Criar pagamento com cartão",
        "operationId": "post_receivables_receivables_customers_customerId_card_payments",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/financeiro/receivables/"
        },
        "parameters": [
          {
            "name": "customerId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/receivables/customers/{customerId}/payments": {
      "post": {
        "tags": [
          "Contas a receber"
        ],
        "summary": "Registrar pagamento / baixa",
        "operationId": "post_receivables_receivables_customers_customerId_payments",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/financeiro/receivables/"
        },
        "parameters": [
          {
            "name": "customerId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/receivables/customers/{customerId}/settlements/{settlementId}": {
      "delete": {
        "tags": [
          "Contas a receber"
        ],
        "summary": "Excluir baixa do cliente (lote) e recalcular saldos",
        "operationId": "delete_receivables_receivables_customers_customerId_settlements_settlementId",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/financeiro/receivables/"
        },
        "parameters": [
          {
            "name": "customerId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "settlementId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/receivables/customers/{customerId}/credit-status": {
      "get": {
        "tags": [
          "Contas a receber"
        ],
        "summary": "Obter status de crédito",
        "operationId": "get_receivables_receivables_customers_customerId_credit_status",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/financeiro/receivables/"
        },
        "parameters": [
          {
            "name": "customerId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/receivables/customers/{customerId}/statement": {
      "get": {
        "tags": [
          "Contas a receber"
        ],
        "summary": "Listar / obter extrato",
        "operationId": "get_receivables_receivables_customers_customerId_statement",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/financeiro/receivables/"
        },
        "parameters": [
          {
            "name": "customerId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/receivables/customers/{customerId}/statement/notify": {
      "post": {
        "tags": [
          "Contas a receber"
        ],
        "summary": "Notificar cliente",
        "operationId": "post_receivables_receivables_customers_customerId_statement_notify",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/financeiro/receivables/"
        },
        "parameters": [
          {
            "name": "customerId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/receivables/renegotiate": {
      "post": {
        "tags": [
          "Contas a receber"
        ],
        "summary": "Renegociar parcelas",
        "operationId": "post_receivables_receivables_renegotiate",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/financeiro/receivables/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/receivables/{id}/notify": {
      "post": {
        "tags": [
          "Contas a receber"
        ],
        "summary": "Notificar cliente",
        "operationId": "post_receivables_receivables_id_notify",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/financeiro/receivables/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/receivables/{id}/charges": {
      "get": {
        "tags": [
          "Contas a receber"
        ],
        "summary": "Obter cobranças",
        "operationId": "get_receivables_receivables_id_charges",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/financeiro/receivables/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/receivables/{id}/card-payments": {
      "post": {
        "tags": [
          "Contas a receber"
        ],
        "summary": "Criar pagamento com cartão",
        "operationId": "post_receivables_receivables_id_card_payments",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/financeiro/receivables/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/receivables/customers/{customerId}/charges": {
      "get": {
        "tags": [
          "Contas a receber"
        ],
        "summary": "Prévia de encargos (multa/juros) para baixa do cliente",
        "operationId": "get_receivables_receivables_customers_customerId_charges",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/financeiro/receivables/"
        },
        "parameters": [
          {
            "name": "customerId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "amount",
            "in": "query",
            "required": true,
            "description": "Valor principal",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "paidAt",
            "in": "query",
            "required": false,
            "description": "Data da baixa (ISO)",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/receivables/collection-desk": {
      "get": {
        "tags": [
          "Contas a receber"
        ],
        "summary": "Mesa de cobrança: clientes com parcelas vencidas",
        "operationId": "get_receivables_receivables_collection_desk",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/financeiro/receivables/"
        },
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "description": "Página",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "required": false,
            "description": "Itens por página (até 100)",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/receivables/collection-desk/notify-batch": {
      "post": {
        "tags": [
          "Contas a receber"
        ],
        "summary": "Enviar lembrete de cobrança em lote",
        "operationId": "post_receivables_receivables_collection_desk_notify_batch",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/financeiro/receivables/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "receivableIds"
                ],
                "properties": {
                  "receivableIds": {
                    "type": "string",
                    "description": "Até 50 contas"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/cheques/summary": {
      "get": {
        "tags": [
          "Cheques"
        ],
        "summary": "Resumo dos cheques a depositar",
        "operationId": "get_cheques_cheques_summary",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/financeiro/cheques/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/cheques": {
      "get": {
        "tags": [
          "Cheques"
        ],
        "summary": "Listar cheques",
        "operationId": "get_cheques_cheques",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/financeiro/cheques/"
        },
        "parameters": [
          {
            "name": "q",
            "in": "query",
            "required": false,
            "description": "Emitente, banco ou número",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "description": "Situação do cheque",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "page",
            "in": "query",
            "required": false,
            "description": "Página",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "required": false,
            "description": "Itens por página",
            "schema": {
              "type": "number"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "post": {
        "tags": [
          "Cheques"
        ],
        "summary": "Cadastrar cheque e calcular o próximo dia útil",
        "operationId": "post_cheques_cheques",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/financeiro/cheques/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "issuerName",
                  "bankName",
                  "chequeNumber",
                  "amount",
                  "receivedDate",
                  "depositDate"
                ],
                "properties": {
                  "issuerName": {
                    "type": "string",
                    "description": "Emitente"
                  },
                  "bankName": {
                    "type": "string",
                    "description": "Banco"
                  },
                  "chequeNumber": {
                    "type": "string",
                    "description": "Número do cheque"
                  },
                  "amount": {
                    "type": "number",
                    "description": "Valor"
                  },
                  "receivedDate": {
                    "type": "string",
                    "description": "Data de recebimento (AAAA-MM-DD)"
                  },
                  "depositDate": {
                    "type": "string",
                    "description": "Data prevista (AAAA-MM-DD)"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/cheques/{id}": {
      "patch": {
        "tags": [
          "Cheques"
        ],
        "summary": "Atualizar dados do cheque",
        "operationId": "patch_cheques_cheques_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/financeiro/cheques/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "delete": {
        "tags": [
          "Cheques"
        ],
        "summary": "Excluir cheque",
        "operationId": "delete_cheques_cheques_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/financeiro/cheques/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "get": {
        "tags": [
          "Cheques"
        ],
        "summary": "Detalhe do cheque",
        "operationId": "get_cheques_cheques_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/financeiro/cheques/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/cheques/{id}/status": {
      "patch": {
        "tags": [
          "Cheques"
        ],
        "summary": "Atualizar situação operacional",
        "operationId": "patch_cheques_cheques_id_status",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/financeiro/cheques/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/sellers": {
      "get": {
        "tags": [
          "Vendedores"
        ],
        "summary": "Listar vendedores",
        "operationId": "get_sellers_sellers",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/sellers/"
        },
        "parameters": [
          {
            "name": "q",
            "in": "query",
            "required": false,
            "description": "Busca",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "post": {
        "tags": [
          "Vendedores"
        ],
        "summary": "Criar vendedor",
        "operationId": "post_sellers_sellers",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/sellers/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "name"
                ],
                "properties": {
                  "name": {
                    "type": "string",
                    "description": "Nome"
                  },
                  "employeeCode": {
                    "type": "string",
                    "description": "Código do funcionário"
                  },
                  "commissionPercent": {
                    "type": "number",
                    "description": "Comissão %"
                  },
                  "active": {
                    "type": "boolean",
                    "description": "Ativo"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/sellers/{id}": {
      "patch": {
        "tags": [
          "Vendedores"
        ],
        "summary": "Atualizar vendedor",
        "operationId": "patch_sellers_sellers_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/sellers/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [],
                "properties": {
                  "name": {
                    "type": "string",
                    "description": "Nome e demais campos"
                  }
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Vendedores"
        ],
        "summary": "Excluir vendedor",
        "operationId": "delete_sellers_sellers_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/sellers/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "204 No Content"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/suppliers": {
      "get": {
        "tags": [
          "Fornecedores"
        ],
        "summary": "Listar fornecedores",
        "operationId": "get_suppliers_suppliers",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/estoque/suppliers/"
        },
        "parameters": [
          {
            "name": "q",
            "in": "query",
            "required": false,
            "description": "Busca",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "post": {
        "tags": [
          "Fornecedores"
        ],
        "summary": "Criar fornecedor",
        "operationId": "post_suppliers_suppliers",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/estoque/suppliers/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "name"
                ],
                "properties": {
                  "name": {
                    "type": "string",
                    "description": "Razão social / nome"
                  },
                  "taxId": {
                    "type": "string",
                    "description": "CNPJ"
                  },
                  "email": {
                    "type": "string",
                    "description": "E-mail"
                  },
                  "phone": {
                    "type": "string",
                    "description": "Telefone"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/suppliers/{id}": {
      "get": {
        "tags": [
          "Fornecedores"
        ],
        "summary": "Detalhe do fornecedor",
        "operationId": "get_suppliers_suppliers_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/estoque/suppliers/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "patch": {
        "tags": [
          "Fornecedores"
        ],
        "summary": "Atualizar fornecedor",
        "operationId": "patch_suppliers_suppliers_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/estoque/suppliers/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [],
                "properties": {
                  "name": {
                    "type": "string",
                    "description": "Campos do POST"
                  }
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Fornecedores"
        ],
        "summary": "Excluir fornecedor",
        "operationId": "delete_suppliers_suppliers_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/estoque/suppliers/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "204 No Content"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/suppliers/{id}/default-brand": {
      "put": {
        "tags": [
          "Fornecedores"
        ],
        "summary": "Definir ou remover a marca padrão do fornecedor, sem alterar o resto do cadastro",
        "operationId": "put_suppliers_suppliers_id_default_brand",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/estoque/suppliers/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "O fornecedor atualizado. 404 se o fornecedor não existe; 400 se a marca não existe."
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "brandId"
                ],
                "properties": {
                  "brandId": {
                    "type": "string",
                    "description": "Marca padrão; null desvincula"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/carriers": {
      "get": {
        "tags": [
          "Transportadoras"
        ],
        "summary": "Listar transportadoras",
        "operationId": "get_carriers_carriers",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/estoque/carriers/"
        },
        "parameters": [
          {
            "name": "q",
            "in": "query",
            "required": false,
            "description": "Busca por nome ou CNPJ",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "active",
            "in": "query",
            "required": false,
            "description": "Somente ativas",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "post": {
        "tags": [
          "Transportadoras"
        ],
        "summary": "Criar transportadora",
        "operationId": "post_carriers_carriers",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/estoque/carriers/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "name"
                ],
                "properties": {
                  "name": {
                    "type": "string",
                    "description": "Razão social / nome"
                  },
                  "taxId": {
                    "type": "string",
                    "description": "CNPJ ou CPF"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/carriers/{id}": {
      "get": {
        "tags": [
          "Transportadoras"
        ],
        "summary": "Detalhe da transportadora",
        "operationId": "get_carriers_carriers_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/estoque/carriers/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "patch": {
        "tags": [
          "Transportadoras"
        ],
        "summary": "Atualizar transportadora",
        "operationId": "patch_carriers_carriers_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/estoque/carriers/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [],
                "properties": {
                  "name": {
                    "type": "string",
                    "description": "Campos do POST"
                  }
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Transportadoras"
        ],
        "summary": "Excluir transportadora",
        "operationId": "delete_carriers_carriers_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/estoque/carriers/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "204 No Content"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/sales-channels": {
      "get": {
        "tags": [
          "Canais de venda"
        ],
        "summary": "Listar canais",
        "operationId": "get_sales-channels_sales_channels",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/sales-channels/"
        },
        "parameters": [
          {
            "name": "active",
            "in": "query",
            "required": false,
            "description": "Somente ativos (true/1)",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "post": {
        "tags": [
          "Canais de venda"
        ],
        "summary": "Criar canal",
        "operationId": "post_sales-channels_sales_channels",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/sales-channels/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "201 Created"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "name"
                ],
                "properties": {
                  "name": {
                    "type": "string",
                    "description": "Nome"
                  },
                  "active": {
                    "type": "boolean",
                    "description": "Padrão true"
                  },
                  "position": {
                    "type": "integer",
                    "description": "Ordem de exibição"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/sales-channels/{id}": {
      "patch": {
        "tags": [
          "Canais de venda"
        ],
        "summary": "Atualizar canal (campos parciais)",
        "operationId": "patch_sales-channels_sales_channels_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/sales-channels/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "delete": {
        "tags": [
          "Canais de venda"
        ],
        "summary": "Excluir canal",
        "operationId": "delete_sales-channels_sales_channels_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/sales-channels/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "204 No Content"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/purchases": {
      "get": {
        "tags": [
          "Compras"
        ],
        "summary": "Listar compras",
        "operationId": "get_purchases_purchases",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/estoque/purchases/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "post": {
        "tags": [
          "Compras"
        ],
        "summary": "Criar compra em rascunho",
        "operationId": "post_purchases_purchases",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/estoque/purchases/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [],
                "properties": {
                  "supplierId": {
                    "type": "string",
                    "format": "uuid",
                    "description": "Fornecedor"
                  },
                  "invoiceNumber": {
                    "type": "string",
                    "description": "Número da NF-e de entrada"
                  },
                  "invoiceSeries": {
                    "type": "string",
                    "description": "Série da NF-e de entrada"
                  },
                  "accessKey": {
                    "type": "string",
                    "description": "Chave de acesso (44 dígitos) da NF-e de entrada — necessária para gerar NF-e de devolução ao fornecedor"
                  },
                  "notes": {
                    "type": "string",
                    "description": "Observações"
                  },
                  "freightValue": {
                    "type": "number",
                    "description": "Frete da nota (rateado no custo de entrada)"
                  },
                  "insuranceValue": {
                    "type": "number",
                    "description": "Seguro da nota (rateado no custo de entrada)"
                  },
                  "otherExpenses": {
                    "type": "number",
                    "description": "Outras despesas da nota (rateadas no custo de entrada)"
                  },
                  "ipiValue": {
                    "type": "number",
                    "description": "IPI da nota (entra no custo conforme costIncludesIpi da loja)"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/purchases/{id}": {
      "get": {
        "tags": [
          "Compras"
        ],
        "summary": "Detalhe da compra",
        "operationId": "get_purchases_purchases_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/estoque/purchases/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "patch": {
        "tags": [
          "Compras"
        ],
        "summary": "Atualizar compra",
        "operationId": "patch_purchases_purchases_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/estoque/purchases/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "As despesas são rateadas entre os itens pelo valor de cada um e compõem o custo de entrada ao receber (cada item traz ancillaryCostPerUnit e landedUnitCost). O total da compra não muda"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [],
                "properties": {
                  "supplierId": {
                    "type": "string",
                    "format": "uuid",
                    "description": "Fornecedor"
                  },
                  "freightValue": {
                    "type": "number",
                    "description": "Frete da nota"
                  },
                  "insuranceValue": {
                    "type": "number",
                    "description": "Seguro da nota"
                  },
                  "otherExpenses": {
                    "type": "number",
                    "description": "Outras despesas da nota"
                  },
                  "ipiValue": {
                    "type": "number",
                    "description": "IPI da nota"
                  }
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Compras"
        ],
        "summary": "Excluir compra em rascunho",
        "operationId": "delete_purchases_purchases_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/estoque/purchases/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "204 No Content"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/purchases/import-xml": {
      "post": {
        "tags": [
          "Compras"
        ],
        "summary": "Importar NF-e de compra via XML",
        "operationId": "post_purchases_purchases_import_xml",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/estoque/purchases/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Quantidades fracionadas (kg, L) são preservadas, o rastro (nLote/qLote/dFab/dVal) vira os lotes das linhas e vFrete/vSeg/vOutro/vIPI preenchem as despesas da compra. 409 Conflict quando a nota já existe — pela chave de acesso ou, em XML sem chave, por fornecedor + número + série. Traz code PURCHASE_XML_DUPLICATE, purchaseId e purchaseReference da compra existente"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "xml"
                ],
                "properties": {
                  "xml": {
                    "type": "string",
                    "description": "Conteúdo XML da NF-e"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/purchases/import-xml-by-key/lookup": {
      "post": {
        "tags": [
          "Compras"
        ],
        "summary": "Consultar NF-e de entrada na SEFAZ pela chave (prévia, sem criar compra)",
        "operationId": "post_purchases_purchases_import_xml_by_key_lookup",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/estoque/purchases/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "status FULL traz preview (fornecedor, itens, impostos e totais); status SUMMARY traz o resumo (resNFe) e a Ciência já registrada, se houver. Resultados ficam em cache por empresa/chave; não há novas tentativas automáticas. Erros trazem code (INBOUND_NFE_*), retryAt e manualXmlFallback: 404 não localizada; 403 sem permissão; 410 cancelada, denegada ou fora do prazo; 429 consumo indevido (656, bloqueio de 1 h) ou limite local; 409 PURCHASE_XML_DUPLICATE se já importada"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "accessKey"
                ],
                "properties": {
                  "accessKey": {
                    "type": "string",
                    "description": "Chave de acesso (44 dígitos, DV válido, modelo 55). Consulta NFeDistribuicaoDFe/consChNFe no Ambiente Nacional com o certificado A1 da empresa logada"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/purchases/import-xml-by-key/ciencia": {
      "post": {
        "tags": [
          "Compras"
        ],
        "summary": "Registrar Ciência da Operação (evento 210210) para NF-e que só retornou resumo",
        "operationId": "post_purchases_purchases_import_xml_by_key_ciencia",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/estoque/purchases/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "A Ciência não substitui a manifestação conclusiva (Confirmação, Desconhecimento ou Operação não Realizada). Idempotente: se já registrada, não reenvia. nextQueryAllowedAt indica quando consultar de novo para obter o XML completo"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "accessKey",
                  "confirm"
                ],
                "properties": {
                  "accessKey": {
                    "type": "string",
                    "description": "Chave de acesso consultada antes"
                  },
                  "confirm": {
                    "type": "boolean",
                    "description": "Deve ser true — confirmação expressa do usuário. O evento nunca é enviado automaticamente"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/purchases/inbound-nfe": {
      "get": {
        "tags": [
          "Compras"
        ],
        "summary": "Listar NF-e de entrada consultadas pela chave, com situação da manifestação e prazo",
        "operationId": "get_purchases_purchases_inbound_nfe",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/estoque/purchases/"
        },
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "description": "Página (padrão 1)",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "required": false,
            "description": "Itens por página (1 a 50, padrão 20)",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "manifest",
            "in": "query",
            "required": false,
            "description": "ALL | PENDING (sem conclusiva) | CIENCIA (ciência sem conclusiva) | CONFIRMATION | UNKNOWN | NOT_PERFORMED",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "deadline",
            "in": "query",
            "required": false,
            "description": "ALL | VENCENDO (30 dias ou menos) | VENCIDO",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "purchase",
            "in": "query",
            "required": false,
            "description": "ALL | TO_IMPORT (XML completo guardado e ainda sem compra) | IMPORTED (já virou compra)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "description": "Emitente (resumo) ou trecho da chave de acesso",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Só lê o banco (sem chamar a SEFAZ); exige purchases.manage. Cada item traz manifest (null enquanto não houver conclusiva), ciencia, deadline { level NO_PRAZO | VENCENDO | VENCIDO | SEM_DATA, deadline, daysRemaining, windowDays } e canCiencia/canManifest/canImport (canImport = XML completo guardado e sem compra: dá para importar direto). O prazo parte da emissão da NF-e (padrão 180 dias, configurável em FISCAL_MANIFESTACAO_PRAZO_DIAS) e é só um aviso — confirmar o prazo legal da UF com o contador. counts resume pendentes, vencendo, vencidas e prontas para importar (toImport)"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/purchases/inbound-nfe/sync-status": {
      "get": {
        "tags": [
          "Compras"
        ],
        "summary": "Estado da busca em lote na SEFAZ: último NSU, espera liberada, bloqueio e busca em andamento",
        "operationId": "get_purchases_purchases_inbound_nfe_sync_status",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/estoque/purchases/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Só lê o banco e valida o certificado (não chama a SEFAZ); exige purchases.manage. ready=false traz reason (CNPJ/certificado A1 ausente ou vencido). nextSyncAllowedAt é a espera de 1 h que a SEFAZ exige depois de 'sem documentos novos'; blockedUntil aparece após consumo indevido (656); hasMore indica notas ainda não trazidas (use a busca de novo para continuar)"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/purchases/inbound-nfe/sync": {
      "post": {
        "tags": [
          "Compras"
        ],
        "summary": "Buscar na SEFAZ todas as NF-e emitidas contra o CNPJ da empresa (NFeDistribuicaoDFe / distNSU)",
        "operationId": "post_purchases_purchases_inbound_nfe_sync",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/estoque/purchases/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Só por ação do usuário, com o A1 da empresa no Ambiente Nacional; exige purchases.manage. Continua do último NSU guardado (cursor por CNPJ/ambiente) e lê até 10 páginas ou 40 s por chamada: outcome UP_TO_DATE (tudo em dia; nova busca só após 1 h), HAS_MORE (chame de novo para continuar) ou COOLDOWN (dentro da espera, nada foi consultado). Resumos (resNFe) e XMLs (procNFe) entram na lista de NF-e de entrada; canceladas/denegadas e notas emitidas pela própria empresa não aparecem; nada vira compra sem importar. Falha no meio devolve o que já foi salvo com partialError. 429 em consumo indevido (656), que bloqueia o CNPJ por 1 h; 409 se já houver busca em andamento. Auditado em FiscalAuditLog (INBOUND_NFE_DISTDFE_SYNC)"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/purchases/inbound-nfe/manifest": {
      "post": {
        "tags": [
          "Compras"
        ],
        "summary": "Manifestação conclusiva do destinatário: Confirmação (210200), Desconhecimento (210220) ou Operação não Realizada (210240)",
        "operationId": "post_purchases_purchases_inbound_nfe_manifest",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/estoque/purchases/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Não exige Ciência prévia, mas só existe UMA conclusiva por chave: se já registrada, devolve o estado atual (alreadyRegistered: true; differentFromRequested: true quando o tipo pedido era outro) sem reenviar à SEFAZ. Eventos no Ambiente Nacional (cOrgao 91) com o A1 da empresa; 429 em consumo indevido (656), 400 em rejeição da SEFAZ. Auditado em FiscalAuditLog (INBOUND_NFE_MANIFEST)"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "accessKey",
                  "kind",
                  "confirm"
                ],
                "properties": {
                  "accessKey": {
                    "type": "string",
                    "description": "Chave de acesso da NF-e (44 dígitos)"
                  },
                  "kind": {
                    "type": "string",
                    "description": "CONFIRMATION | UNKNOWN | NOT_PERFORMED"
                  },
                  "justification": {
                    "type": "string",
                    "description": "Obrigatória em NOT_PERFORMED: 15 a 255 caracteres (alfabeto latino, sem emojis)"
                  },
                  "confirm": {
                    "type": "boolean",
                    "description": "Deve ser true — confirmação expressa. O evento é fiscal e irreversível, e nunca é enviado automaticamente"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/purchases/import-xml-by-key": {
      "post": {
        "tags": [
          "Compras"
        ],
        "summary": "Importar como compra a NF-e de entrada obtida pela chave de acesso",
        "operationId": "post_purchases_purchases_import_xml_by_key",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/estoque/purchases/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "O XML segue o mesmo parser da importação por arquivo e a compra nasce como rascunho. 409 INBOUND_NFE_PREVIEW_REQUIRED sem prévia (fromPreview=true); 422 INBOUND_NFE_SUMMARY_ONLY se só houver resumo; 409 PURCHASE_XML_DUPLICATE se a nota já foi importada"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "accessKey"
                ],
                "properties": {
                  "accessKey": {
                    "type": "string",
                    "description": "Chave de acesso (44 dígitos) da NF-e"
                  },
                  "fromPreview": {
                    "type": "boolean",
                    "description": "true: importa somente o XML já conferido em /lookup (fluxo da tela). false/omitido: consulta respeitando cache e limites e importa se vier o XML completo"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/purchases/{id}/invoice-data": {
      "patch": {
        "tags": [
          "Compras"
        ],
        "summary": "Atualizar dados da nota (fornecedor, número, série e chave)",
        "operationId": "patch_purchases_purchases_id_invoice_data",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/estoque/purchases/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Continua disponível depois do recebimento (não mexe em estoque). Bloqueado em compra cancelada e na chave de compra importada por XML"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [],
                "properties": {
                  "supplierId": {
                    "type": "string",
                    "format": "uuid",
                    "description": "Fornecedor"
                  },
                  "invoiceNumber": {
                    "type": "string",
                    "description": "Número da NF-e de entrada"
                  },
                  "invoiceSeries": {
                    "type": "string",
                    "description": "Série da NF-e de entrada"
                  },
                  "accessKey": {
                    "type": "string",
                    "description": "Chave de acesso (44 dígitos)"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/purchases/{id}/lines": {
      "post": {
        "tags": [
          "Compras"
        ],
        "summary": "Adicionar linha manual",
        "operationId": "post_purchases_purchases_id_lines",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/estoque/purchases/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "description",
                  "quantity",
                  "unitCost"
                ],
                "properties": {
                  "description": {
                    "type": "string",
                    "description": "Descrição"
                  },
                  "quantity": {
                    "type": "number",
                    "description": "Quantidade"
                  },
                  "unitCost": {
                    "type": "number",
                    "description": "Custo unitário"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/purchases/{id}/lines/{lineId}": {
      "put": {
        "tags": [
          "Compras"
        ],
        "summary": "Atualizar linha",
        "operationId": "put_purchases_purchases_id_lines_lineId",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/estoque/purchases/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "lineId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [],
                "properties": {
                  "quantity": {
                    "type": "number",
                    "description": "Quantidade (até 4 casas em kg/L/m; inteira em UN)"
                  },
                  "unitCost": {
                    "type": "number",
                    "description": "Custo unitário"
                  },
                  "lots": {
                    "type": "string",
                    "description": "Lotes da linha: [{ lotCode, quantity, expiresAt (AAAA-MM-DD), manufacturedAt }]. Substitui os atuais; [] remove. A soma não pode passar da quantidade; o restante entra como saldo sem lote"
                  }
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Compras"
        ],
        "summary": "Remover linha",
        "operationId": "delete_purchases_purchases_id_lines_lineId",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/estoque/purchases/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "lineId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "204 No Content"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/purchases/{id}/lines/{lineId}/link": {
      "post": {
        "tags": [
          "Compras"
        ],
        "summary": "Vincular linha a variante do catálogo",
        "operationId": "post_purchases_purchases_id_lines_lineId_link",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/estoque/purchases/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "lineId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "variantId"
                ],
                "properties": {
                  "variantId": {
                    "type": "string",
                    "format": "uuid",
                    "description": "ID da variante"
                  },
                  "pack": {
                    "type": "object",
                    "description": "{ factor, label }: quantas unidades de estoque vale cada unidade da nota (1 FARDO = 12). Omitido = usa o código de compra do produto ou a conversão do produto"
                  },
                  "remember": {
                    "type": "boolean",
                    "description": "Lembra o código do fornecedor/GTIN desta linha para vincular sozinho nas próximas notas"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/purchases/{id}/receive": {
      "post": {
        "tags": [
          "Compras"
        ],
        "summary": "Receber itens vinculados no estoque (parcial ou total)",
        "operationId": "post_purchases_purchases_id_receive",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/estoque/purchases/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Produtos com controle de lote/validade criam StockLot com os lotes da linha. O custo segue o método da loja (último preço ou média ponderada) já com frete/seguro/outras despesas rateados"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [],
                "properties": {
                  "payable": {
                    "type": "object",
                    "description": "{ create, paymentMethodId, installments[{dueDate, amount}], paidNow{financialAccountId, methodInstallmentCount} }. Omitido = conta automática para 30 dias."
                  }
                }
              }
            }
          }
        }
      }
    },
    "/purchases/{id}/payable-draft": {
      "get": {
        "tags": [
          "Compras"
        ],
        "summary": "Sugestão de conta a pagar do recebimento (duplicatas da NF-e)",
        "operationId": "get_purchases_purchases_id_payable_draft",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/estoque/purchases/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/purchases/{id}/cancel": {
      "post": {
        "tags": [
          "Compras"
        ],
        "summary": "Cancelar compra",
        "operationId": "post_purchases_purchases_id_cancel",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/estoque/purchases/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/purchases/{id}/lines/{lineId}/unlink": {
      "post": {
        "tags": [
          "Compras"
        ],
        "summary": "Desvincular linha do catálogo",
        "operationId": "post_purchases_purchases_id_lines_lineId_unlink",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/estoque/purchases/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "lineId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/purchases/{id}/lines/{lineId}/correct-link": {
      "post": {
        "tags": [
          "Compras"
        ],
        "summary": "Corrigir vínculo da linha",
        "operationId": "post_purchases_purchases_id_lines_lineId_correct_link",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/estoque/purchases/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "lineId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/purchases/{id}/lines/{lineId}/distribute": {
      "post": {
        "tags": [
          "Compras"
        ],
        "summary": "Distribuir quantidade da linha",
        "operationId": "post_purchases_purchases_id_lines_lineId_distribute",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/estoque/purchases/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "lineId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/purchases/{id}/compare-xml": {
      "post": {
        "tags": [
          "Compras"
        ],
        "summary": "Comparar compra com XML",
        "operationId": "post_purchases_purchases_id_compare_xml",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/estoque/purchases/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/purchases/{id}/lines/link-batch": {
      "post": {
        "tags": [
          "Compras"
        ],
        "summary": "Vincular várias linhas do XML ao catálogo",
        "operationId": "post_purchases_purchases_id_lines_link_batch",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/estoque/purchases/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "links"
                ],
                "properties": {
                  "links": {
                    "type": "array",
                    "items": {},
                    "description": "[{ lineId, variantId, pack?: { factor, label }, remember? }]"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/purchases/from-suggestion": {
      "post": {
        "tags": [
          "Compras"
        ],
        "summary": "Criar compra a partir da sugestão de compra",
        "operationId": "post_purchases_purchases_from_suggestion",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/estoque/purchases/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "201 Created"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "items"
                ],
                "properties": {
                  "items": {
                    "type": "array",
                    "items": {},
                    "description": "[{ variantId, quantity, unitCost }] (até 500)"
                  },
                  "supplierId": {
                    "type": "string",
                    "format": "uuid",
                    "description": "Fornecedor"
                  },
                  "notes": {
                    "type": "string",
                    "description": "Observações"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/purchases/item-search": {
      "get": {
        "tags": [
          "Compras"
        ],
        "summary": "Achar as compras que trouxeram um produto (código de barras, código ou descrição)",
        "operationId": "get_purchases_purchases_item_search",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/estoque/purchases/"
        },
        "parameters": [
          {
            "name": "q",
            "in": "query",
            "required": true,
            "description": "Texto com 2 ou mais caracteres (até 120). Só dígitos com 8+ caracteres é tratado como código de barras e compara o código inteiro",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "allLocations",
            "in": "query",
            "required": false,
            "description": "Busca em todas as filiais (padrão: só a filial do usuário)",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Lista de { purchaseId, items: [{ description, gtin, supplierCode, quantity }] }. Menos de 2 caracteres retorna lista vazia; até 2000 itens."
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/purchases/ncm-divergences": {
      "get": {
        "tags": [
          "Compras"
        ],
        "summary": "Produtos cujo NCM do cadastro difere do NCM da nota de entrada mais recente",
        "operationId": "get_purchases_purchases_ncm_divergences",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/estoque/purchases/"
        },
        "parameters": [
          {
            "name": "allLocations",
            "in": "query",
            "required": false,
            "description": "Considera todas as filiais (padrão: só a filial do usuário)",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "{ items } — cada item: productId, productDescription, currentNcm, xmlNcm, official (NCM existe na tabela oficial), conflictingNcms (preenchido se a nota trouxe NCMs diferentes para o mesmo produto) e a compra de origem. Compras canceladas não entram."
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/purchases/ncm-divergences/apply": {
      "post": {
        "tags": [
          "Compras"
        ],
        "summary": "Copiar o NCM da nota de entrada para o cadastro dos produtos escolhidos (exige gerenciar produtos)",
        "operationId": "post_purchases_purchases_ncm_divergences_apply",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/estoque/purchases/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "{ updated, skipped }. Só aplica NCM oficial e sem conflito; os demais contam em skipped."
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "productIds"
                ],
                "properties": {
                  "productIds": {
                    "type": "string",
                    "description": "Produtos a corrigir (1 a 2000)"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/purchases/pricing-hints": {
      "post": {
        "tags": [
          "Compras"
        ],
        "summary": "Margens praticadas pela loja para sugerir preço de venda ao cadastrar item de compra",
        "operationId": "post_purchases_purchases_pricing_hints",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/estoque/purchases/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "{ categoryMargin, brandMargin, storeMargin, categoryName, brandName, sampleSize, reference }. As margens são medianas em % (null sem amostra); reference traz { description, priceCash, managerialCost } do produto de mesma descrição, se houver."
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [],
                "properties": {
                  "categoryId": {
                    "type": "string",
                    "format": "uuid",
                    "description": "Categoria do produto"
                  },
                  "brandId": {
                    "type": "string",
                    "format": "uuid",
                    "description": "Marca do produto"
                  },
                  "title": {
                    "type": "string",
                    "description": "Descrição (a partir de 4 caracteres procura produto já cadastrado que comece com ela)"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/purchases/{id}/tags": {
      "put": {
        "tags": [
          "Compras"
        ],
        "summary": "Definir as tags da compra (substitui a lista atual)",
        "operationId": "put_purchases_purchases_id_tags",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/estoque/purchases/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "O detalhe da compra. Tags novas também são aplicadas aos produtos dos itens já recebidos. 400 em compra cancelada ou tag inexistente."
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "tagIds"
                ],
                "properties": {
                  "tagIds": {
                    "type": "string",
                    "description": "Tags da compra (até 200; no máximo 20 por compra; lista vazia remove todas)"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/purchases/{id}/ncm-diff": {
      "get": {
        "tags": [
          "Compras"
        ],
        "summary": "Produtos da compra cujo NCM do cadastro difere do NCM da NF-e",
        "operationId": "get_purchases_purchases_id_ncm_diff",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/estoque/purchases/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "{ items } no mesmo formato de /purchases/ncm-divergences. 404 se a compra não existe."
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/purchases/{id}/apply-ncm": {
      "post": {
        "tags": [
          "Compras"
        ],
        "summary": "Copiar o NCM da NF-e desta compra para o cadastro dos produtos escolhidos (exige gerenciar produtos)",
        "operationId": "post_purchases_purchases_id_apply_ncm",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/estoque/purchases/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "{ updated, skipped }. Só aplica NCM oficial e sem conflito."
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "productIds"
                ],
                "properties": {
                  "productIds": {
                    "type": "string",
                    "description": "Produtos a corrigir (1 a 500)"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/purchases/{id}/insights": {
      "post": {
        "tags": [
          "Compras"
        ],
        "summary": "Conferência inteligente das linhas da compra: produtos de referência e alertas de custo/quantidade",
        "operationId": "post_purchases_purchases_id_insights",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/estoque/purchases/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "{ matches, alerts }. matches: por grupo, o produto já cadastrado que corresponde (source: gtin, history ou description), preços e o mapeamento de cada linha para uma variante (ou a grade que seria criada). alerts: por linha, avisos como COST_UP, COST_DOWN, QTY_HIGH, GTIN_DUP e GTIN_IN_USE."
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "groups"
                ],
                "properties": {
                  "groups": {
                    "type": "array",
                    "items": {},
                    "description": "Até 500 grupos de linhas da mesma referência: [{ key, title, lines: [{ lineId, size, color }] }] (1 a 200 linhas por grupo; size e color são a grade lida da nota)"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/inventory-counts": {
      "get": {
        "tags": [
          "Conferência de estoque"
        ],
        "summary": "Listar conferências",
        "operationId": "get_inventory-counts_inventory_counts",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/estoque/inventory-counts/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "post": {
        "tags": [
          "Conferência de estoque"
        ],
        "summary": "Criar conferência",
        "operationId": "post_inventory-counts_inventory_counts",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/estoque/inventory-counts/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [],
                "properties": {
                  "name": {
                    "type": "string",
                    "description": "Nome/descrição"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/inventory-counts/{id}": {
      "get": {
        "tags": [
          "Conferência de estoque"
        ],
        "summary": "Detalhe da conferência",
        "operationId": "get_inventory-counts_inventory_counts_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/estoque/inventory-counts/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "patch": {
        "tags": [
          "Conferência de estoque"
        ],
        "summary": "Atualizar conferência",
        "operationId": "patch_inventory-counts_inventory_counts_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/estoque/inventory-counts/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [],
                "properties": {
                  "name": {
                    "type": "string",
                    "description": "Nome"
                  }
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Conferência de estoque"
        ],
        "summary": "Excluir conferência em rascunho",
        "operationId": "delete_inventory-counts_inventory_counts_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/estoque/inventory-counts/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "204 No Content"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/inventory-counts/{id}/scan": {
      "post": {
        "tags": [
          "Conferência de estoque"
        ],
        "summary": "Registrar leitura (GTIN ou variante)",
        "operationId": "post_inventory-counts_inventory_counts_id_scan",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/estoque/inventory-counts/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [],
                "properties": {
                  "gtin": {
                    "type": "string",
                    "description": "Código de barras"
                  },
                  "variantId": {
                    "type": "string",
                    "format": "uuid",
                    "description": "ID da variante"
                  },
                  "quantity": {
                    "type": "integer",
                    "description": "Quantidade contada"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/inventory-counts/{id}/lines": {
      "put": {
        "tags": [
          "Conferência de estoque"
        ],
        "summary": "Substituir linhas da conferência",
        "operationId": "put_inventory-counts_inventory_counts_id_lines",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/estoque/inventory-counts/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "lines"
                ],
                "properties": {
                  "lines": {
                    "type": "array",
                    "items": {},
                    "description": "Lista de { variantId, countedQty }"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/inventory-counts/{id}/lines/{lineId}": {
      "delete": {
        "tags": [
          "Conferência de estoque"
        ],
        "summary": "Remover linha",
        "operationId": "delete_inventory-counts_inventory_counts_id_lines_lineId",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/estoque/inventory-counts/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "lineId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "204 No Content"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/inventory-counts/{id}/load-all": {
      "post": {
        "tags": [
          "Conferência de estoque"
        ],
        "summary": "Carregar todos os produtos",
        "operationId": "post_inventory-counts_inventory_counts_id_load_all",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/estoque/inventory-counts/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/inventory-counts/{id}/load-variants": {
      "post": {
        "tags": [
          "Conferência de estoque"
        ],
        "summary": "Carregar variantes específicas na conferência",
        "operationId": "post_inventory-counts_inventory_counts_id_load_variants",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/estoque/inventory-counts/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "variantIds"
                ],
                "properties": {
                  "variantIds": {
                    "type": "string",
                    "description": "IDs das variantes"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/inventory-counts/{id}/apply": {
      "post": {
        "tags": [
          "Conferência de estoque"
        ],
        "summary": "Aplicar contagem ao estoque",
        "operationId": "post_inventory-counts_inventory_counts_id_apply",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/estoque/inventory-counts/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/inventory-counts/{id}/cancel": {
      "post": {
        "tags": [
          "Conferência de estoque"
        ],
        "summary": "Cancelar conferência",
        "operationId": "post_inventory-counts_inventory_counts_id_cancel",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/estoque/inventory-counts/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/locations": {
      "get": {
        "tags": [
          "Locais (filiais e depósitos)"
        ],
        "summary": "Listar locais",
        "operationId": "get_locations_locations",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/estoque/locations/"
        },
        "parameters": [
          {
            "name": "includeInactive",
            "in": "query",
            "required": false,
            "description": "Incluir locais inativos (1/true)",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "post": {
        "tags": [
          "Locais (filiais e depósitos)"
        ],
        "summary": "Criar local",
        "operationId": "post_locations_locations",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/estoque/locations/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "201 Created"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "name"
                ],
                "properties": {
                  "name": {
                    "type": "string",
                    "description": "Nome (até 200)"
                  },
                  "code": {
                    "type": "string",
                    "description": "Código interno (até 40)"
                  },
                  "type": {
                    "type": "string",
                    "description": "STORE ou WAREHOUSE"
                  },
                  "active": {
                    "type": "boolean",
                    "description": "Ativo"
                  },
                  "addressLine1": {
                    "type": "string",
                    "description": "Endereço"
                  },
                  "addressLine2": {
                    "type": "string",
                    "description": "Complemento"
                  },
                  "city": {
                    "type": "string",
                    "description": "Cidade"
                  },
                  "state": {
                    "type": "string",
                    "description": "UF (2 letras)"
                  },
                  "zipCode": {
                    "type": "string",
                    "description": "CEP"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/locations/transfer-destinations": {
      "get": {
        "tags": [
          "Locais (filiais e depósitos)"
        ],
        "summary": "Locais que podem receber transferência de estoque",
        "operationId": "get_locations_locations_transfer_destinations",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/estoque/locations/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/locations/{id}": {
      "get": {
        "tags": [
          "Locais (filiais e depósitos)"
        ],
        "summary": "Detalhe do local",
        "operationId": "get_locations_locations_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/estoque/locations/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "patch": {
        "tags": [
          "Locais (filiais e depósitos)"
        ],
        "summary": "Atualizar local (campos da criação, todos opcionais)",
        "operationId": "patch_locations_locations_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/estoque/locations/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [],
                "properties": {
                  "isDefault": {
                    "type": "boolean",
                    "description": "Tornar o local padrão"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/locations/{id}/fiscal": {
      "put": {
        "tags": [
          "Locais (filiais e depósitos)"
        ],
        "summary": "Perfil fiscal da filial (CNPJ próprio, IE, série NFC-e, CSC)",
        "operationId": "put_locations_locations_id_fiscal",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/estoque/locations/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "x-sensitive": true,
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [],
                "properties": {
                  "fiscalCnpj": {
                    "type": "string",
                    "description": "CNPJ da filial"
                  },
                  "fiscalStateRegistration": {
                    "type": "string",
                    "description": "Inscrição estadual"
                  },
                  "fiscalMunicipalRegistration": {
                    "type": "string",
                    "description": "Inscrição municipal"
                  },
                  "fiscalLegalName": {
                    "type": "string",
                    "description": "Razão social"
                  },
                  "fiscalTradeName": {
                    "type": "string",
                    "description": "Nome fantasia"
                  },
                  "fiscalAddressNumber": {
                    "type": "string",
                    "description": "Número do endereço"
                  },
                  "fiscalAddressDistrict": {
                    "type": "string",
                    "description": "Bairro"
                  },
                  "fiscalIbgeCityCode": {
                    "type": "string",
                    "description": "Código IBGE do município"
                  },
                  "fiscalPhone": {
                    "type": "string",
                    "description": "Telefone"
                  },
                  "fiscalNfceSeries": {
                    "type": "integer",
                    "description": "Série da NFC-e (1–889)"
                  },
                  "fiscalNfceNextNumber": {
                    "type": "integer",
                    "description": "Próximo número da NFC-e"
                  },
                  "fiscalCscId": {
                    "type": "string",
                    "description": "ID do CSC (produção)"
                  },
                  "fiscalCscToken": {
                    "type": "string",
                    "description": "Token do CSC (produção)"
                  },
                  "fiscalCscIdHomolog": {
                    "type": "string",
                    "description": "ID do CSC (homologação)"
                  },
                  "fiscalCscTokenHomolog": {
                    "type": "string",
                    "description": "Token do CSC (homologação)"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/stock-transfers": {
      "get": {
        "tags": [
          "Transferências de estoque"
        ],
        "summary": "Listar transferências",
        "operationId": "get_stock-transfers_stock_transfers",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/estoque/stock-transfers/"
        },
        "parameters": [
          {
            "name": "status",
            "in": "query",
            "required": false,
            "description": "DRAFT, IN_TRANSIT, COMPLETED ou CANCELLED",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "post": {
        "tags": [
          "Transferências de estoque"
        ],
        "summary": "Criar transferência (rascunho)",
        "operationId": "post_stock-transfers_stock_transfers",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/estoque/stock-transfers/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "201 Created"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "fromLocationId",
                  "toLocationId",
                  "lines"
                ],
                "properties": {
                  "fromLocationId": {
                    "type": "string",
                    "format": "uuid",
                    "description": "Local de origem"
                  },
                  "toLocationId": {
                    "type": "string",
                    "format": "uuid",
                    "description": "Local de destino"
                  },
                  "notes": {
                    "type": "string",
                    "description": "Observações"
                  },
                  "lines": {
                    "type": "array",
                    "items": {},
                    "description": "Itens: [{ variantId, quantity }]"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/stock-transfers/{id}": {
      "get": {
        "tags": [
          "Transferências de estoque"
        ],
        "summary": "Detalhe da transferência com itens",
        "operationId": "get_stock-transfers_stock_transfers_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/estoque/stock-transfers/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/stock-transfers/{id}/send": {
      "post": {
        "tags": [
          "Transferências de estoque"
        ],
        "summary": "Enviar (baixa na origem, fica em trânsito)",
        "operationId": "post_stock-transfers_stock_transfers_id_send",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/estoque/stock-transfers/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [],
                "properties": {
                  "transferNfeAccessKey": {
                    "type": "string",
                    "description": "Chave da NF-e de transferência (obrigatória só entre CNPJs diferentes)"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/stock-transfers/{id}/receive": {
      "post": {
        "tags": [
          "Transferências de estoque"
        ],
        "summary": "Receber no destino",
        "operationId": "post_stock-transfers_stock_transfers_id_receive",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/estoque/stock-transfers/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/stock-transfers/{id}/complete": {
      "post": {
        "tags": [
          "Transferências de estoque"
        ],
        "summary": "Concluir em uma etapa (baixa na origem e entrada no destino)",
        "operationId": "post_stock-transfers_stock_transfers_id_complete",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/estoque/stock-transfers/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [],
                "properties": {
                  "transferNfeAccessKey": {
                    "type": "string",
                    "description": "Chave da NF-e de transferência (obrigatória só entre CNPJs diferentes)"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/stock-transfers/{id}/cancel": {
      "post": {
        "tags": [
          "Transferências de estoque"
        ],
        "summary": "Cancelar transferência",
        "operationId": "post_stock-transfers_stock_transfers_id_cancel",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/estoque/stock-transfers/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/stock-transfers/{id}/nfe": {
      "get": {
        "tags": [
          "Transferências de estoque"
        ],
        "summary": "Status da NF-e de transferência (operação fiscal ligada à transferência)",
        "operationId": "get_stock-transfers_stock_transfers_id_nfe",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/estoque/stock-transfers/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "{ operation } ou { operation: null } enquanto não houver NF-e. Traz status, chave de acesso e o motivo da rejeição."
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "post": {
        "tags": [
          "Transferências de estoque"
        ],
        "summary": "Emitir a NF-e de transferência (CFOP 5151/5152/6151/6152)",
        "operationId": "post_stock-transfers_stock_transfers_id_nfe",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/estoque/stock-transfers/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Só para transferência em rascunho entre CNPJs diferentes; a nota sai pelo CNPJ da filial de origem. Ao autorizar, a chave é gravada em transferNfeAccessKey e o envio/conclusão deixa de pedir a chave. Se a SEFAZ não responder, a operação fica na fila (PENDING). Rejeição definitiva devolve 400 com o motivo."
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/fiscal-operations": {
      "get": {
        "tags": [
          "Operações fiscais (NF-e além da venda)"
        ],
        "summary": "Listar operações fiscais (paginado)",
        "operationId": "get_fiscal-operations_fiscal_operations",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal-operations/"
        },
        "parameters": [
          {
            "name": "q",
            "in": "query",
            "required": false,
            "description": "Destinatário, CPF/CNPJ, número da operação ou do documento, ou chave",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "kind",
            "in": "query",
            "required": false,
            "description": "Tipo de operação (ex.: BONUS, TRANSFER, EXPORT, LOSS)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "description": "DRAFT, PENDING, PROCESSING, AUTHORIZED, REJECTED, CANCELLED, CONTINGENCY ou COMPLETED",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "from",
            "in": "query",
            "required": false,
            "description": "Criadas a partir de (ISO 8601)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "to",
            "in": "query",
            "required": false,
            "description": "Criadas até (ISO 8601)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "page",
            "in": "query",
            "required": false,
            "description": "Página (padrão 1)",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "required": false,
            "description": "Itens por página (1 a 100, padrão 25)",
            "schema": {
              "type": "number"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "{ items, total, page, pageSize }"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "post": {
        "tags": [
          "Operações fiscais (NF-e além da venda)"
        ],
        "summary": "Criar operação em rascunho",
        "operationId": "post_fiscal-operations_fiscal_operations",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal-operations/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "201 Created com a operação"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "kind",
                  "items"
                ],
                "properties": {
                  "kind": {
                    "type": "string",
                    "description": "Tipo de operação"
                  },
                  "locationId": {
                    "type": "string",
                    "format": "uuid",
                    "description": "Filial de origem (estoque e emitente)"
                  },
                  "destType": {
                    "type": "string",
                    "description": "CUSTOMER, SUPPLIER, LOCATION, MANUAL ou SELF"
                  },
                  "destCustomerId / destSupplierId / destLocationId": {
                    "type": "string",
                    "format": "uuid",
                    "description": "Destinatário cadastrado"
                  },
                  "dest": {
                    "type": "object",
                    "description": "Dados digitados do destinatário (nome, taxId, endereço, país no exterior)"
                  },
                  "natOp": {
                    "type": "string",
                    "description": "Natureza da operação (até 60 caracteres; vazio usa a do tipo)"
                  },
                  "reasonCode / reason": {
                    "type": "string",
                    "description": "Motivo da baixa (PERDA, QUEBRA, VENCIMENTO, DETERIORACAO, ROUBO, OUTRO) e descrição"
                  },
                  "refAccessKeys": {
                    "type": "string",
                    "description": "Chaves de 44 dígitos das NF-e referenciadas (obrigatório em alguns tipos)"
                  },
                  "exportData": {
                    "type": "object",
                    "description": "Exportação: { ufSaida, locExporta, locDespacho }"
                  },
                  "carrierId / nfeExtras": {
                    "type": "object",
                    "description": "Transportadora, frete, veículo e volumes"
                  },
                  "moveStock / emitNfe": {
                    "type": "boolean",
                    "description": "Simples remessa movimenta estoque; baixa emite NF-e 5927 só se true"
                  },
                  "items": {
                    "type": "array",
                    "items": {},
                    "description": "Itens: variantId ou descrição/NCM/unidade, quantity, unitValue, totalValue, taxOverride, manualTax, lots"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/fiscal-operations/{id}": {
      "get": {
        "tags": [
          "Operações fiscais (NF-e além da venda)"
        ],
        "summary": "Detalhe da operação (itens, documento fiscal, avisos)",
        "operationId": "get_fiscal-operations_fiscal_operations_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal-operations/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "put": {
        "tags": [
          "Operações fiscais (NF-e além da venda)"
        ],
        "summary": "Editar operação em rascunho ou rejeitada (mesmo corpo do POST; o tipo não muda)",
        "operationId": "put_fiscal-operations_fiscal_operations_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal-operations/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "delete": {
        "tags": [
          "Operações fiscais (NF-e além da venda)"
        ],
        "summary": "Excluir rascunho",
        "operationId": "delete_fiscal-operations_fiscal_operations_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal-operations/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "204 No Content"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/fiscal-operations/{id}/preview": {
      "post": {
        "tags": [
          "Operações fiscais (NF-e além da venda)"
        ],
        "summary": "Prévia: valida e mostra CFOP/CST por item, totais, avisos e faltas de estoque",
        "operationId": "post_fiscal-operations_fiscal_operations_id_preview",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal-operations/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "{ ok: true, scope, natOp, vProd, vNF, items, warnings, stockShortages } ou { ok: false, errors }"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/fiscal-operations/{id}/issue": {
      "post": {
        "tags": [
          "Operações fiscais (NF-e além da venda)"
        ],
        "summary": "Emitir: valida, baixa o estoque e transmite a NF-e (baixa sem NF-e é só registrada)",
        "operationId": "post_fiscal-operations_fiscal_operations_id_issue",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal-operations/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "200 { queued: false, operation }; 202 { queued: true, message, operation } quando a SEFAZ não respondeu e a nota ficou na fila; 400 com o motivo."
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/fiscal-operations/{id}/cancel": {
      "post": {
        "tags": [
          "Operações fiscais (NF-e além da venda)"
        ],
        "summary": "Cancelar operação emitida (devolve o estoque)",
        "operationId": "post_fiscal-operations_fiscal_operations_id_cancel",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal-operations/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "justification"
                ],
                "properties": {
                  "justification": {
                    "type": "string",
                    "description": "Justificativa de 15 a 255 caracteres"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/fiscal-operations/{id}/xml": {
      "get": {
        "tags": [
          "Operações fiscais (NF-e além da venda)"
        ],
        "summary": "Baixar o XML autorizado",
        "operationId": "get_fiscal-operations_fiscal_operations_id_xml",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal-operations/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/fiscal-operations/{id}/pdf": {
      "get": {
        "tags": [
          "Operações fiscais (NF-e além da venda)"
        ],
        "summary": "DANFE em PDF",
        "operationId": "get_fiscal-operations_fiscal_operations_id_pdf",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal-operations/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/fiscal-operations/tax-options": {
      "get": {
        "tags": [
          "Operações fiscais (NF-e além da venda)"
        ],
        "summary": "Tributação padrão por tipo de operação e regime (CRT) da loja",
        "operationId": "get_fiscal-operations_fiscal_operations_tax_options",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal-operations/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "{ crt, options }. CRT 1, 2 e 4 usam CSOSN; CRT 3 usa CST."
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "put": {
        "tags": [
          "Operações fiscais (NF-e além da venda)"
        ],
        "summary": "Sobrescrever a tributação padrão de cada tipo (confirmar com o contador)",
        "operationId": "put_fiscal-operations_fiscal_operations_tax_options",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal-operations/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "options"
                ],
                "properties": {
                  "options": {
                    "type": "object",
                    "description": "{ [tipo]: { icmsMode, icmsCst, icmsCsosn, ipiMode, ipiCst, ipiAlways, pisCofinsMode, pisCofinsCst, pisCofinsCstSimples } }"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/fiscal-operations/referenced-nfe": {
      "get": {
        "tags": [
          "Operações fiscais (NF-e além da venda)"
        ],
        "summary": "Dados da NF-e referenciada (destinatário e itens) para preencher complementar, ajuste e retornos",
        "operationId": "get_fiscal-operations_fiscal_operations_referenced_nfe",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal-operations/"
        },
        "parameters": [
          {
            "name": "accessKey",
            "in": "query",
            "required": true,
            "description": "Chave de 44 dígitos",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "{ found: false } quando a nota não foi emitida nem recebida por este sistema."
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/fiscal-operations/{id}/danfe-html": {
      "get": {
        "tags": [
          "Operações fiscais (NF-e além da venda)"
        ],
        "summary": "DANFE da operação em HTML (para visualizar ou imprimir no navegador)",
        "operationId": "get_fiscal-operations_fiscal_operations_id_danfe_html",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal-operations/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "text/html; charset=utf-8, sem cache. Para o PDF use /fiscal-operations/:id/pdf."
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/bakery-production/status": {
      "get": {
        "tags": [
          "Produção (receitas e ordens)"
        ],
        "summary": "Módulos ligados na loja (produção, código de balança, encomendas)",
        "operationId": "get_bakery-production_bakery_production_status",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/segmentos/bakery-production/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/bakery-production/recipes": {
      "get": {
        "tags": [
          "Produção (receitas e ordens)"
        ],
        "summary": "Listar receitas",
        "operationId": "get_bakery-production_bakery_production_recipes",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/segmentos/bakery-production/"
        },
        "parameters": [
          {
            "name": "active",
            "in": "query",
            "required": false,
            "description": "Somente ativas (1/true)",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "post": {
        "tags": [
          "Produção (receitas e ordens)"
        ],
        "summary": "Criar receita",
        "operationId": "post_bakery-production_bakery_production_recipes",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/segmentos/bakery-production/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "201 Created"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "name",
                  "finishedVariantId",
                  "items"
                ],
                "properties": {
                  "name": {
                    "type": "string",
                    "description": "Nome"
                  },
                  "finishedVariantId": {
                    "type": "string",
                    "format": "uuid",
                    "description": "Produto acabado (variante)"
                  },
                  "yieldQty": {
                    "type": "number",
                    "description": "Rendimento por lote (padrão 1)"
                  },
                  "notes": {
                    "type": "string",
                    "description": "Observações"
                  },
                  "items": {
                    "type": "array",
                    "items": {},
                    "description": "Insumos: [{ componentVariantId, quantity }]"
                  },
                  "densityKgPerL": {
                    "type": "number",
                    "description": "Densidade do acabado (kg/L)"
                  },
                  "expectedLossPercent": {
                    "type": "number",
                    "description": "Perda esperada do processo, de 0 a 99,99 (%)"
                  },
                  "stages": {
                    "type": "array",
                    "items": {},
                    "description": "Etapas-modelo: [\"Pesagem\", \"Dispersão\", ...]"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/bakery-production/recipes/{id}": {
      "patch": {
        "tags": [
          "Produção (receitas e ordens)"
        ],
        "summary": "Editar receita (items e stages substituem a lista inteira)",
        "operationId": "patch_bakery-production_bakery_production_recipes_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/segmentos/bakery-production/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "put": {
        "tags": [
          "Produção (receitas e ordens)"
        ],
        "summary": "Editar receita (mesmo comportamento do PATCH; todos os campos são opcionais)",
        "operationId": "put_bakery-production_bakery_production_recipes_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/segmentos/bakery-production/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A receita atualizada. Com saveAsDraft a nova versão fica em rascunho (ver /versions e /versions/:version/activate)."
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [],
                "properties": {
                  "name": {
                    "type": "string",
                    "description": "Nome (até 200 caracteres)"
                  },
                  "finishedVariantId": {
                    "type": "string",
                    "format": "uuid",
                    "description": "Produto acabado (variante)"
                  },
                  "yieldQty": {
                    "type": "number",
                    "description": "Rendimento por lote"
                  },
                  "notes": {
                    "type": "string",
                    "description": "Observações (até 2000 caracteres)"
                  },
                  "densityKgPerL": {
                    "type": "number",
                    "description": "Densidade do acabado (kg/L)"
                  },
                  "expectedLossPercent": {
                    "type": "number",
                    "description": "Perda esperada do processo, de 0 a 99,99 (%)"
                  },
                  "formulaMode": {
                    "type": "string",
                    "description": "ABSOLUTE (quantidades) | PERCENT (percentual de cada insumo)"
                  },
                  "percentBasis": {
                    "type": "string",
                    "description": "MASS | VOLUME (base do percentual)"
                  },
                  "standardUnitCost": {
                    "type": "number",
                    "description": "Custo padrão unitário"
                  },
                  "stages": {
                    "type": "array",
                    "items": {},
                    "description": "Etapas: texto ou { name, required, workCenter, standardMinutes, laborRatePerHour }; substitui a lista inteira"
                  },
                  "byproducts": {
                    "type": "array",
                    "items": {},
                    "description": "Subprodutos: [{ variantId, quantityPerBatch, costSharePercent }]; substitui a lista inteira"
                  },
                  "items": {
                    "type": "array",
                    "items": {},
                    "description": "Insumos: [{ componentVariantId, quantity, percent, densityKgPerL, lossPercent, costKind (MATERIAL | PACKAGING) }]; substitui a lista inteira"
                  },
                  "active": {
                    "type": "boolean",
                    "description": "Receita ativa"
                  },
                  "changeReason": {
                    "type": "string",
                    "description": "Motivo da alteração (até 500 caracteres; obrigatório no segmento industrial quando a fórmula muda)"
                  },
                  "saveAsDraft": {
                    "type": "boolean",
                    "description": "Salva como rascunho: a receita atual continua valendo até ativar a versão"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/bakery-production/recipes/{id}/preview": {
      "get": {
        "tags": [
          "Produção (receitas e ordens)"
        ],
        "summary": "Necessidade de insumos, saldo, custo estimado e lotes máximos",
        "operationId": "get_bakery-production_bakery_production_recipes_id_preview",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/segmentos/bakery-production/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "batches",
            "in": "query",
            "required": false,
            "description": "Lotes a produzir",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "locationId",
            "in": "query",
            "required": false,
            "description": "Local",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/bakery-production/orders": {
      "get": {
        "tags": [
          "Produção (receitas e ordens)"
        ],
        "summary": "Listar ordens de produção",
        "operationId": "get_bakery-production_bakery_production_orders",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/segmentos/bakery-production/"
        },
        "parameters": [
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Padrão 50",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "post": {
        "tags": [
          "Produção (receitas e ordens)"
        ],
        "summary": "Registrar produção",
        "operationId": "post_bakery-production_bakery_production_orders",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/segmentos/bakery-production/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "201 Created. Devolve também nominalQty, lossQty, materialCost e unitCost."
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "recipeId",
                  "batches"
                ],
                "properties": {
                  "recipeId": {
                    "type": "string",
                    "format": "uuid",
                    "description": "Receita"
                  },
                  "batches": {
                    "type": "number",
                    "description": "Quantidade de lotes"
                  },
                  "outputLotCode": {
                    "type": "string",
                    "description": "Lote do produto acabado"
                  },
                  "outputExpiresAt": {
                    "type": "string",
                    "description": "Validade (ISO ou AAAA-MM-DD)"
                  },
                  "locationId": {
                    "type": "string",
                    "format": "uuid",
                    "description": "Depósito de onde os insumos saem (omitido = padrão da produção)"
                  },
                  "outputLocationId": {
                    "type": "string",
                    "format": "uuid",
                    "description": "Depósito onde o acabado entra (omitido = padrão da produção ou o mesmo dos insumos)"
                  },
                  "allowNegativeStock": {
                    "type": "boolean",
                    "description": "Permitir insumo com estoque negativo"
                  },
                  "notes": {
                    "type": "string",
                    "description": "Observações"
                  },
                  "actualOutputQty": {
                    "type": "number",
                    "description": "Quantidade realmente obtida (apura a perda)"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/bakery-production/orders/plan": {
      "post": {
        "tags": [
          "Produção (receitas e ordens)"
        ],
        "summary": "Planejar ordem (PLANNED) com data prevista; copia as etapas da receita",
        "operationId": "post_bakery-production_bakery_production_orders_plan",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/segmentos/bakery-production/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/bakery-production/orders/{id}": {
      "get": {
        "tags": [
          "Produção (receitas e ordens)"
        ],
        "summary": "Detalhe: etapas, consumo por lote, custo e perda",
        "operationId": "get_bakery-production_bakery_production_orders_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/segmentos/bakery-production/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/bakery-production/orders/{id}/start": {
      "post": {
        "tags": [
          "Produção (receitas e ordens)"
        ],
        "summary": "Iniciar ordem planejada",
        "operationId": "post_bakery-production_bakery_production_orders_id_start",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/segmentos/bakery-production/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/bakery-production/orders/{id}/stages/{stageId}": {
      "post": {
        "tags": [
          "Produção (receitas e ordens)"
        ],
        "summary": "Marcar ou desmarcar etapa",
        "operationId": "post_bakery-production_bakery_production_orders_id_stages_stageId",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/segmentos/bakery-production/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "stageId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [],
                "properties": {
                  "done": {
                    "type": "boolean",
                    "description": "Concluída"
                  },
                  "notes": {
                    "type": "string",
                    "description": "Observações"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/bakery-production/orders/{id}/complete": {
      "post": {
        "tags": [
          "Produção (receitas e ordens)"
        ],
        "summary": "Concluir ordem: baixa insumos (FIFO por lote), dá entrada no acabado e apura custo",
        "operationId": "post_bakery-production_bakery_production_orders_id_complete",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/segmentos/bakery-production/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [],
                "properties": {
                  "actualOutputQty": {
                    "type": "number",
                    "description": "Quantidade obtida"
                  },
                  "outputLotCode": {
                    "type": "string",
                    "description": "Lote do acabado"
                  },
                  "outputExpiresAt": {
                    "type": "string",
                    "description": "Validade"
                  },
                  "allowNegativeStock": {
                    "type": "boolean",
                    "description": "Permitir estoque negativo"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/bakery-production/orders/{id}/cancel": {
      "post": {
        "tags": [
          "Produção (receitas e ordens)"
        ],
        "summary": "Cancelar ordem não concluída",
        "operationId": "post_bakery-production_bakery_production_orders_id_cancel",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/segmentos/bakery-production/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/bakery-production/traceability": {
      "get": {
        "tags": [
          "Produção (receitas e ordens)"
        ],
        "summary": "Rastreio por lote",
        "operationId": "get_bakery-production_bakery_production_traceability",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/segmentos/bakery-production/"
        },
        "parameters": [
          {
            "name": "lotCode",
            "in": "query",
            "required": true,
            "description": "Lote",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "direction",
            "in": "query",
            "required": false,
            "description": "backward (acabado → insumos) | forward (insumo → acabados)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "page",
            "in": "query",
            "required": false,
            "description": "Página (forward; ordens paginadas, com total real na resposta)",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "required": false,
            "description": "Ordens por página (padrão 50, máximo 200)",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/bakery-production/recall": {
      "get": {
        "tags": [
          "Produção (receitas e ordens)"
        ],
        "summary": "Recall: quem recebeu um lote e em quais notas (exige permissão de relatórios)",
        "operationId": "get_bakery-production_bakery_production_recall",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/segmentos/bakery-production/"
        },
        "parameters": [
          {
            "name": "lotCode",
            "in": "query",
            "required": true,
            "description": "Lote de produto acabado ou de insumo",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "page",
            "in": "query",
            "required": false,
            "description": "Página",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "required": false,
            "description": "Registros por página (padrão 50, máximo 500)",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json (padrão) | csv (todas as páginas, separador ; e BOM para Excel)",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Lote de insumo alcança também as vendas dos lotes de acabado produzidos com ele. Devolve resumo (vendas, clientes, notas, quantidade líquida), estoque ainda existente dos lotes e as vendas com cliente e documento fiscal (NFC-e/NF-e). Só vendas concluídas feitas depois que o produto passou a controlar lote"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/bakery-production/planning/suggestions": {
      "get": {
        "tags": [
          "Produção (receitas e ordens)"
        ],
        "summary": "Sugestão de lotes pela cobertura de estoque e venda média",
        "operationId": "get_bakery-production_bakery_production_planning_suggestions",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/segmentos/bakery-production/"
        },
        "parameters": [
          {
            "name": "days",
            "in": "query",
            "required": false,
            "description": "Dias de cobertura (padrão 15)",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/bakery-production/recipes/{id}/versions": {
      "get": {
        "tags": [
          "Produção (receitas e ordens)"
        ],
        "summary": "Histórico de versões da receita (ativa, obsoletas e rascunhos), com as diferenças entre versões",
        "operationId": "get_bakery-production_bakery_production_recipes_id_versions",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/segmentos/bakery-production/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "{ currentVersion, versions: [{ version, status, snapshot, changeReason, ..., changes }] } da mais nova para a mais antiga. 404 se a receita não existe."
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/bakery-production/recipes/{id}/versions/{version}/activate": {
      "post": {
        "tags": [
          "Produção (receitas e ordens)"
        ],
        "summary": "Ativar um rascunho de versão: a ativa atual vira obsoleta e o rascunho passa a valer (ganha novo número de versão)",
        "operationId": "post_bakery-production_bakery_production_recipes_id_versions_version_activate",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/segmentos/bakery-production/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "version",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A receita atualizada. 404 se a versão não existe; 409 se a versão não é um rascunho ou está corrompida."
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [],
                "properties": {
                  "changeReason": {
                    "type": "string",
                    "description": "Motivo (até 500 caracteres; vazio usa o do rascunho)"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/bakery-production/recipes/{id}/versions/{version}": {
      "delete": {
        "tags": [
          "Produção (receitas e ordens)"
        ],
        "summary": "Descartar um rascunho de versão (só rascunhos; versões ativas e obsoletas não podem ser removidas)",
        "operationId": "delete_bakery-production_bakery_production_recipes_id_versions_version",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/segmentos/bakery-production/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "version",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "204 No Content. 404 se o rascunho não existe."
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "x-sensitive": true
      }
    },
    "/bakery-production/recipes/{id}/standard-cost": {
      "post": {
        "tags": [
          "Produção (receitas e ordens)"
        ],
        "summary": "Recalcular o custo padrão da receita a partir do custo estimado de 1 lote e gravá-lo (exige a permissão de custos de produção)",
        "operationId": "post_bakery-production_bakery_production_recipes_id_standard_cost",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/segmentos/bakery-production/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "{ recipeId, standardUnitCost }"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/bakery-production/recipes/{id}/tributary-suggestion": {
      "get": {
        "tags": [
          "Produção (receitas e ordens)"
        ],
        "summary": "Sugestão do fator da unidade tributável (uTrib/uCom) do acabado para a NF-e, a partir da densidade da receita e do volume da embalagem",
        "operationId": "get_bakery-production_bakery_production_recipes_id_tributary_suggestion",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/segmentos/bakery-production/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "{ recipeId, variantId, productDescription, saleUnit, tributaryUnit, densityKgPerL, unitVolumeLiters, currentFactor, litersPerUnit, kgPerUnit, ... }. Só sugere: a unidade tributável correta é decisão fiscal (NCM/TIPI); confirme com o contador."
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/bakery-production/recipes/{id}/apply-tributary-factor": {
      "post": {
        "tags": [
          "Produção (receitas e ordens)"
        ],
        "summary": "Gravar na variante do acabado o fator tributável sugerido (exige a permissão de gerenciar produtos)",
        "operationId": "post_bakery-production_bakery_production_recipes_id_apply_tributary_factor",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/segmentos/bakery-production/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A sugestão com currentFactor já aplicado e appliedBasis. 409 se não há como calcular (falta densidade da receita ou volume da embalagem)."
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "x-sensitive": true,
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "basis"
                ],
                "properties": {
                  "basis": {
                    "type": "string",
                    "description": "L (litros por unidade) | KG (quilos por unidade)"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/bakery-production/orders/{id}/refresh-recipe": {
      "post": {
        "tags": [
          "Produção (receitas e ordens)"
        ],
        "summary": "Atualizar a fórmula de uma ordem planejada para a versão atual da receita (recria as etapas a partir da receita)",
        "operationId": "post_bakery-production_bakery_production_orders_id_refresh_recipe",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/segmentos/bakery-production/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A ordem atualizada. 409 se a ordem não está PLANNED; 404 se a receita não existe ou está inativa."
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/bakery-production/orders/{id}/reversal-preview": {
      "get": {
        "tags": [
          "Produção (receitas e ordens)"
        ],
        "summary": "Prévia do estorno de uma ordem concluída: quanto do acabado ainda existe em estoque e o efeito no custo médio (exige a permissão de estornar produção)",
        "operationId": "get_bakery-production_bakery_production_orders_id_reversal_preview",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/segmentos/bakery-production/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "{ orderId, outputLotCode, obtainedQty, remainingQty, availableQty, soldOrConsumedQty, reversibleFraction, full, costReversal }. Nada é gravado. 409 se a ordem não está concluída."
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/bakery-production/orders/{id}/reverse": {
      "post": {
        "tags": [
          "Produção (receitas e ordens)"
        ],
        "summary": "Estornar ordem concluída: retira o acabado do lote, devolve os insumos aos mesmos lotes e bloqueia o lote estornado (exige a permissão de estornar produção)",
        "operationId": "post_bakery-production_bakery_production_orders_id_reverse",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/segmentos/bakery-production/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A ordem, mais costReversal e coproductCostReversals (se o custo médio foi refeito ou o motivo de não ter sido). 409 se a ordem não está concluída, já foi totalmente estornada ou o estorno total está bloqueado (code REVERSAL_BLOCKED, com partialPossible)."
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "x-sensitive": true,
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "reason"
                ],
                "properties": {
                  "reason": {
                    "type": "string",
                    "description": "Motivo do estorno (5 a 500 caracteres)"
                  },
                  "partial": {
                    "type": "boolean",
                    "description": "Estorno parcial, só do que ainda está em estoque (obrigatório quando o acabado já foi vendido ou consumido em parte)"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/paint/variants": {
      "get": {
        "tags": [
          "Tintométrico (fábrica de tintas)"
        ],
        "summary": "Buscar base ou corante (produto/variante)",
        "operationId": "get_paint-tinting_paint_variants",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/segmentos/paint-tinting/"
        },
        "parameters": [
          {
            "name": "q",
            "in": "query",
            "required": false,
            "description": "Mínimo 2 caracteres",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/paint/colors": {
      "get": {
        "tags": [
          "Tintométrico (fábrica de tintas)"
        ],
        "summary": "Listar cores",
        "operationId": "get_paint-tinting_paint_colors",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/segmentos/paint-tinting/"
        },
        "parameters": [
          {
            "name": "q",
            "in": "query",
            "required": false,
            "description": "Código ou nome",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "active",
            "in": "query",
            "required": false,
            "description": "1 | 0",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "page",
            "in": "query",
            "required": false,
            "description": "Página",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "post": {
        "tags": [
          "Tintométrico (fábrica de tintas)"
        ],
        "summary": "Criar cor",
        "operationId": "post_paint-tinting_paint_colors",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/segmentos/paint-tinting/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "code",
                  "name"
                ],
                "properties": {
                  "code": {
                    "type": "string",
                    "description": "Código único"
                  },
                  "name": {
                    "type": "string",
                    "description": "Nome"
                  },
                  "hex": {
                    "type": "string",
                    "description": "#RRGGBB"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/paint/colors/{id}": {
      "patch": {
        "tags": [
          "Tintométrico (fábrica de tintas)"
        ],
        "summary": "Editar ou inativar cor",
        "operationId": "patch_paint-tinting_paint_colors_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/segmentos/paint-tinting/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "delete": {
        "tags": [
          "Tintométrico (fábrica de tintas)"
        ],
        "summary": "Excluir cor (409 se já houve dosagem)",
        "operationId": "delete_paint-tinting_paint_colors_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/segmentos/paint-tinting/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/paint/colors/{id}/formulas": {
      "get": {
        "tags": [
          "Tintométrico (fábrica de tintas)"
        ],
        "summary": "Fórmulas da cor",
        "operationId": "get_paint-tinting_paint_colors_id_formulas",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/segmentos/paint-tinting/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "post": {
        "tags": [
          "Tintométrico (fábrica de tintas)"
        ],
        "summary": "Criar fórmula para uma base",
        "operationId": "post_paint-tinting_paint_colors_id_formulas",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/segmentos/paint-tinting/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "baseVariantId",
                  "referenceLiters",
                  "items"
                ],
                "properties": {
                  "baseVariantId": {
                    "type": "string",
                    "format": "uuid",
                    "description": "Base"
                  },
                  "referenceLiters": {
                    "type": "number",
                    "description": "Litros de base a que a fórmula se refere"
                  },
                  "items": {
                    "type": "array",
                    "items": {},
                    "description": "[{ colorantVariantId, quantity }]"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/paint/formulas/{id}": {
      "patch": {
        "tags": [
          "Tintométrico (fábrica de tintas)"
        ],
        "summary": "Editar fórmula (items substituem os atuais)",
        "operationId": "patch_paint-tinting_paint_formulas_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/segmentos/paint-tinting/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "delete": {
        "tags": [
          "Tintométrico (fábrica de tintas)"
        ],
        "summary": "Excluir fórmula",
        "operationId": "delete_paint-tinting_paint_formulas_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/segmentos/paint-tinting/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/paint/formulas/{id}/duplicate": {
      "post": {
        "tags": [
          "Tintométrico (fábrica de tintas)"
        ],
        "summary": "Copiar fórmula para outra base",
        "operationId": "post_paint-tinting_paint_formulas_id_duplicate",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/segmentos/paint-tinting/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/paint/formulas/{id}/preview": {
      "get": {
        "tags": [
          "Tintométrico (fábrica de tintas)"
        ],
        "summary": "Corantes escalados para a litragem, saldo e custo",
        "operationId": "get_paint-tinting_paint_formulas_id_preview",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/segmentos/paint-tinting/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "liters",
            "in": "query",
            "required": true,
            "description": "Litros",
            "schema": {
              "type": "number"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/paint/jobs": {
      "post": {
        "tags": [
          "Tintométrico (fábrica de tintas)"
        ],
        "summary": "Dosar: baixa os corantes e registra a dosagem",
        "operationId": "post_paint-tinting_paint_jobs",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/segmentos/paint-tinting/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "201 Created"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "colorId",
                  "baseVariantId",
                  "liters"
                ],
                "properties": {
                  "colorId": {
                    "type": "string",
                    "format": "uuid",
                    "description": "Cor"
                  },
                  "baseVariantId": {
                    "type": "string",
                    "format": "uuid",
                    "description": "Base"
                  },
                  "liters": {
                    "type": "number",
                    "description": "Litros"
                  },
                  "saleId": {
                    "type": "string",
                    "format": "uuid",
                    "description": "Venda relacionada"
                  },
                  "allowNegativeStock": {
                    "type": "boolean",
                    "description": "Permitir estoque negativo"
                  },
                  "consumeBaseQty": {
                    "type": "number",
                    "description": "Baixar também a base"
                  }
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "Tintométrico (fábrica de tintas)"
        ],
        "summary": "Histórico de dosagens",
        "operationId": "get_paint-tinting_paint_jobs",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/segmentos/paint-tinting/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/paint/jobs/{id}": {
      "get": {
        "tags": [
          "Tintométrico (fábrica de tintas)"
        ],
        "summary": "Detalhe da dosagem",
        "operationId": "get_paint-tinting_paint_jobs_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/segmentos/paint-tinting/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/paint/jobs/{id}/label": {
      "get": {
        "tags": [
          "Tintométrico (fábrica de tintas)"
        ],
        "summary": "Dados da etiqueta da lata",
        "operationId": "get_paint-tinting_paint_jobs_id_label",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/segmentos/paint-tinting/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/paint/import": {
      "post": {
        "tags": [
          "Tintométrico (fábrica de tintas)"
        ],
        "summary": "Importar cores e fórmulas (CSV)",
        "operationId": "post_paint-tinting_paint_import",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/segmentos/paint-tinting/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "csv"
                ],
                "properties": {
                  "csv": {
                    "type": "string",
                    "description": "codigo;nome;hex;base_gtin;litros_ref;corante_gtin;quantidade"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/paint/colors/{id}/compare": {
      "get": {
        "tags": [
          "Tintométrico (fábrica de tintas)"
        ],
        "summary": "Comparar a mesma cor entre as bases: corante por litro de base e diferença percentual entre bases",
        "operationId": "get_paint-tinting_paint_colors_id_compare",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/segmentos/paint-tinting/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "{ color: { id, code, name, hex }, ... } com uma linha por fórmula/base. 404 se a cor não existe."
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/paint/formulas/{id}/versions": {
      "get": {
        "tags": [
          "Tintométrico (fábrica de tintas)"
        ],
        "summary": "Histórico de versões da fórmula (mais nova primeiro, até 200), com os corantes de cada versão",
        "operationId": "get_paint-tinting_paint_formulas_id_versions",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/segmentos/paint-tinting/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "{ formulaId, currentVersion, versions: [{ version, reason, createdById, createdAt, referenceLiters, items: [{ colorantVariantId, quantity, description, label, unit }] }] }"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/paint/formulas/preview": {
      "get": {
        "tags": [
          "Tintométrico (fábrica de tintas)"
        ],
        "summary": "Prévia da dosagem para cor + base (sem precisar do id da fórmula): corantes escalados, saldo e custo",
        "operationId": "get_paint-tinting_paint_formulas_preview",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/segmentos/paint-tinting/"
        },
        "parameters": [
          {
            "name": "colorId",
            "in": "query",
            "required": true,
            "description": "Cor (informar junto com baseVariantId)",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "baseVariantId",
            "in": "query",
            "required": true,
            "description": "Base (informar junto com colorId)",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "liters",
            "in": "query",
            "required": false,
            "description": "Litros (informe liters ou packages)",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "packages",
            "in": "query",
            "required": false,
            "description": "Embalagens \"tamanho x quantidade\" separadas por vírgula, ex.: 3.6x2,18x1",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "400 se faltar colorId/baseVariantId juntos ou a litragem/embalagens. Usa o ajuste de doses por mL da loja, quando configurado."
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/paint/jobs/{id}/cancel": {
      "post": {
        "tags": [
          "Tintométrico (fábrica de tintas)"
        ],
        "summary": "Cancelar dosagem: devolve corantes (e a base, se a dosagem a baixou) ao estoque, nos mesmos lotes consumidos",
        "operationId": "post_paint-tinting_paint_jobs_id_cancel",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/segmentos/paint-tinting/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A dosagem cancelada. Idempotente: repetir devolve o cancelamento original (com idempotent: true), sem novo movimento de estoque. 409 se a dosagem está ligada a uma venda (cancele ou estorne a venda)."
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "x-sensitive": true,
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "reason"
                ],
                "properties": {
                  "reason": {
                    "type": "string",
                    "description": "Motivo (3 a 300 caracteres)"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/paint/jobs/{id}/label/reprint": {
      "post": {
        "tags": [
          "Tintométrico (fábrica de tintas)"
        ],
        "summary": "Reimprimir a etiqueta da lata: devolve os dados da etiqueta e conta a reimpressão",
        "operationId": "post_paint-tinting_paint_jobs_id_label_reprint",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/segmentos/paint-tinting/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Dados da etiqueta, com labelPrintCount (nº da impressão). 409 se a dosagem foi cancelada; 404 se não existe."
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/chemical-safety": {
      "get": {
        "tags": [
          "Segurança química (FISPQ)"
        ],
        "summary": "Listar produtos com dados de segurança",
        "operationId": "get_chemical-safety_chemical_safety",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/segmentos/chemical-safety/"
        },
        "parameters": [
          {
            "name": "controlled",
            "in": "query",
            "required": false,
            "description": "Somente controlados",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "missingFispq",
            "in": "query",
            "required": false,
            "description": "Sem FISPQ",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "expiringInDays",
            "in": "query",
            "required": false,
            "description": "FISPQ vencendo em N dias",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "q",
            "in": "query",
            "required": false,
            "description": "Nome ou número ONU",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/chemical-safety/alerts": {
      "get": {
        "tags": [
          "Segurança química (FISPQ)"
        ],
        "summary": "FISPQ vencidas, vencendo, ausentes e produtos controlados",
        "operationId": "get_chemical-safety_chemical_safety_alerts",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/segmentos/chemical-safety/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/chemical-safety/controlled-sales": {
      "get": {
        "tags": [
          "Segurança química (FISPQ)"
        ],
        "summary": "Vendas de produtos controlados no período",
        "operationId": "get_chemical-safety_chemical_safety_controlled_sales",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/segmentos/chemical-safety/"
        },
        "parameters": [
          {
            "name": "from",
            "in": "query",
            "required": true,
            "description": "AAAA-MM-DD",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "to",
            "in": "query",
            "required": true,
            "description": "AAAA-MM-DD",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "csv",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/chemical-safety/products/{productId}": {
      "get": {
        "tags": [
          "Segurança química (FISPQ)"
        ],
        "summary": "Ficha de segurança do produto",
        "operationId": "get_chemical-safety_chemical_safety_products_productId",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/segmentos/chemical-safety/"
        },
        "parameters": [
          {
            "name": "productId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "put": {
        "tags": [
          "Segurança química (FISPQ)"
        ],
        "summary": "Salvar ficha (ONU, classe de risco, grupo de embalagem, validade da FISPQ, controlado)",
        "operationId": "put_chemical-safety_chemical_safety_products_productId",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/segmentos/chemical-safety/"
        },
        "parameters": [
          {
            "name": "productId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/chemical-safety/products/{productId}/fispq": {
      "post": {
        "tags": [
          "Segurança química (FISPQ)"
        ],
        "summary": "Enviar PDF da FISPQ (campo file, até 10 MB)",
        "operationId": "post_chemical-safety_chemical_safety_products_productId_fispq",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/segmentos/chemical-safety/"
        },
        "parameters": [
          {
            "name": "productId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "get": {
        "tags": [
          "Segurança química (FISPQ)"
        ],
        "summary": "Baixar a FISPQ",
        "operationId": "get_chemical-safety_chemical_safety_products_productId_fispq",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/segmentos/chemical-safety/"
        },
        "parameters": [
          {
            "name": "productId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "delete": {
        "tags": [
          "Segurança química (FISPQ)"
        ],
        "summary": "Remover o arquivo da FISPQ",
        "operationId": "delete_chemical-safety_chemical_safety_products_productId_fispq",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/segmentos/chemical-safety/"
        },
        "parameters": [
          {
            "name": "productId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/chemical-safety/licenses": {
      "get": {
        "tags": [
          "Segurança química (FISPQ)"
        ],
        "summary": "Listar licenças da própria fábrica (Polícia Federal, Exército, ANVISA, IBAMA, Bombeiros etc.) com situação de validade",
        "operationId": "get_chemical-safety_chemical_safety_licenses",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/segmentos/chemical-safety/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Até 500 itens, ativas primeiro e por validade. Cada item traz status VALID, EXPIRING ou EXPIRED."
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "post": {
        "tags": [
          "Segurança química (FISPQ)"
        ],
        "summary": "Cadastrar licença (exige a permissão de gerenciar produtos)",
        "operationId": "post_chemical-safety_chemical_safety_licenses",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/segmentos/chemical-safety/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "201 Created com a licença"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "kind",
                  "number",
                  "validUntil"
                ],
                "properties": {
                  "kind": {
                    "type": "string",
                    "description": "PF, EXERCITO, ANVISA, IBAMA, BOMBEIROS ou OUTRA"
                  },
                  "number": {
                    "type": "string",
                    "description": "Número da licença (até 80 caracteres)"
                  },
                  "validUntil": {
                    "type": "string",
                    "description": "Validade (AAAA-MM-DD)"
                  },
                  "issuer": {
                    "type": "string",
                    "description": "Órgão emissor (até 120 caracteres)"
                  },
                  "issuedAt": {
                    "type": "string",
                    "description": "Data de emissão (AAAA-MM-DD); a validade não pode ser anterior"
                  },
                  "notes": {
                    "type": "string",
                    "description": "Observações (até 1000 caracteres)"
                  },
                  "active": {
                    "type": "boolean",
                    "description": "Licença ativa"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/chemical-safety/licenses/{id}": {
      "patch": {
        "tags": [
          "Segurança química (FISPQ)"
        ],
        "summary": "Editar licença (mesmos campos do cadastro, todos opcionais; exige a permissão de gerenciar produtos)",
        "operationId": "patch_chemical-safety_chemical_safety_licenses_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/segmentos/chemical-safety/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A licença atualizada. 404 se não existe."
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "delete": {
        "tags": [
          "Segurança química (FISPQ)"
        ],
        "summary": "Excluir licença (exige a permissão de gerenciar produtos)",
        "operationId": "delete_chemical-safety_chemical_safety_licenses_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/segmentos/chemical-safety/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "204 No Content. 404 se não existe."
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "x-sensitive": true
      }
    },
    "/chemical-safety/products/{productId}/emergency-sheet": {
      "get": {
        "tags": [
          "Segurança química (FISPQ)"
        ],
        "summary": "Ficha de emergência do produto em PDF (uma página)",
        "operationId": "get_chemical-safety_chemical_safety_products_productId_emergency_sheet",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/segmentos/chemical-safety/"
        },
        "parameters": [
          {
            "name": "productId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "application/pdf (inline), sem cache"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/chemical-safety/sale-check": {
      "post": {
        "tags": [
          "Segurança química (FISPQ)"
        ],
        "summary": "Consulta de segurança química antes de finalizar a venda (avisos e bloqueios conforme as regras da loja); não grava nada",
        "operationId": "post_chemical-safety_chemical_safety_sale_check",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/segmentos/chemical-safety/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "{ applicable, blocks: string[], warnings: string[] }. A venda só é bloqueada na finalização se houver blocks."
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [],
                "properties": {
                  "items": {
                    "type": "array",
                    "items": {},
                    "description": "Itens avulsos: [{ variantId, productId }] (até 500); alternativa a saleId"
                  },
                  "saleId": {
                    "type": "string",
                    "format": "uuid",
                    "description": "Rascunho de venda: os itens são lidos da própria venda"
                  },
                  "customerId": {
                    "type": "string",
                    "format": "uuid",
                    "description": "Cliente (para validar licença/cadastro do comprador)"
                  },
                  "nature": {
                    "type": "string",
                    "description": "SALE | OWN_CONSUMPTION (consumo próprio não é verificado)"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/chemical-safety/sales/{saleId}/emergency-sheets": {
      "get": {
        "tags": [
          "Segurança química (FISPQ)"
        ],
        "summary": "Fichas de emergência da venda em PDF (uma página por produto químico)",
        "operationId": "get_chemical-safety_chemical_safety_sales_saleId_emergency_sheets",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/segmentos/chemical-safety/"
        },
        "parameters": [
          {
            "name": "saleId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "application/pdf (inline), sem cache"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/representatives": {
      "get": {
        "tags": [
          "Representantes comerciais"
        ],
        "summary": "Representantes ativos com região e comissão",
        "operationId": "get_representatives_representatives",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/representatives/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/representatives/performance": {
      "get": {
        "tags": [
          "Representantes comerciais"
        ],
        "summary": "Desempenho do mês: vendas, meta, % da meta, ranking e totais por região",
        "operationId": "get_representatives_representatives_performance",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/representatives/"
        },
        "parameters": [
          {
            "name": "year",
            "in": "query",
            "required": false,
            "description": "Ano",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "month",
            "in": "query",
            "required": false,
            "description": "Mês (1-12)",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/representatives/goals": {
      "get": {
        "tags": [
          "Representantes comerciais"
        ],
        "summary": "Metas do ano (12 meses por representante)",
        "operationId": "get_representatives_representatives_goals",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/representatives/"
        },
        "parameters": [
          {
            "name": "year",
            "in": "query",
            "required": false,
            "description": "Ano",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "put": {
        "tags": [
          "Representantes comerciais"
        ],
        "summary": "Definir meta do mês (0 remove)",
        "operationId": "put_representatives_representatives_goals",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/representatives/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "sellerId",
                  "year",
                  "month",
                  "targetAmount"
                ],
                "properties": {
                  "sellerId": {
                    "type": "string",
                    "format": "uuid",
                    "description": "Representante"
                  },
                  "year": {
                    "type": "integer",
                    "description": "Ano"
                  },
                  "month": {
                    "type": "integer",
                    "description": "Mês"
                  },
                  "targetAmount": {
                    "type": "number",
                    "description": "Meta em R$"
                  }
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Representantes comerciais"
        ],
        "summary": "Remover meta",
        "operationId": "delete_representatives_representatives_goals",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/representatives/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/representatives/goals/copy": {
      "post": {
        "tags": [
          "Representantes comerciais"
        ],
        "summary": "Copiar metas de um mês para outro mês ou para o ano todo",
        "operationId": "post_representatives_representatives_goals_copy",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/representatives/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/payment-methods": {
      "get": {
        "tags": [
          "Formas de pagamento"
        ],
        "summary": "Listar forma de pagamento",
        "operationId": "get_payment-methods_payment_methods",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/payment-methods/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "post": {
        "tags": [
          "Formas de pagamento"
        ],
        "summary": "Criar forma de pagamento",
        "operationId": "post_payment-methods_payment_methods",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/payment-methods/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "201 Created"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "name"
                ],
                "properties": {
                  "name": {
                    "type": "string",
                    "description": "Nome (ex.: Dinheiro, PIX)"
                  },
                  "priceBasis": {
                    "type": "string",
                    "description": "CASH | CREDIT"
                  },
                  "allowsChange": {
                    "type": "boolean",
                    "description": "Permite troco"
                  },
                  "active": {
                    "type": "boolean",
                    "description": "Ativa"
                  },
                  "fiscalCode": {
                    "type": "string",
                    "description": "Código tPag NFC-e (2 dígitos)"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/payment-methods/{id}": {
      "patch": {
        "tags": [
          "Formas de pagamento"
        ],
        "summary": "Atualizar forma de pagamento",
        "operationId": "patch_payment-methods_payment_methods_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/payment-methods/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "name"
                ],
                "properties": {
                  "name": {
                    "type": "string",
                    "description": "Nome (ex.: Dinheiro, PIX)"
                  },
                  "priceBasis": {
                    "type": "string",
                    "description": "CASH | CREDIT"
                  },
                  "allowsChange": {
                    "type": "boolean",
                    "description": "Permite troco"
                  },
                  "active": {
                    "type": "boolean",
                    "description": "Ativa"
                  },
                  "fiscalCode": {
                    "type": "string",
                    "description": "Código tPag NFC-e (2 dígitos)"
                  }
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Formas de pagamento"
        ],
        "summary": "Excluir forma de pagamento",
        "operationId": "delete_payment-methods_payment_methods_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/payment-methods/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "204 No Content"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/grid-divisions": {
      "get": {
        "tags": [
          "Divisões de grade"
        ],
        "summary": "Listar divisão",
        "operationId": "get_grid-divisions_grid_divisions",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/catalogo/grid-divisions/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "post": {
        "tags": [
          "Divisões de grade"
        ],
        "summary": "Criar divisão",
        "operationId": "post_grid-divisions_grid_divisions",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/catalogo/grid-divisions/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "201 Created"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "name"
                ],
                "properties": {
                  "name": {
                    "type": "string",
                    "description": "Valor do eixo principal (ex.: P, M, G)"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/grid-divisions/{id}": {
      "patch": {
        "tags": [
          "Divisões de grade"
        ],
        "summary": "Atualizar divisão",
        "operationId": "patch_grid-divisions_grid_divisions_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/catalogo/grid-divisions/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "name"
                ],
                "properties": {
                  "name": {
                    "type": "string",
                    "description": "Valor do eixo principal (ex.: P, M, G)"
                  }
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Divisões de grade"
        ],
        "summary": "Excluir divisão",
        "operationId": "delete_grid-divisions_grid_divisions_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/catalogo/grid-divisions/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "204 No Content"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/grid-divisions/reorder": {
      "put": {
        "tags": [
          "Divisões de grade"
        ],
        "summary": "Reordenar divisões",
        "operationId": "put_grid-divisions_grid_divisions_reorder",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/catalogo/grid-divisions/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "ids"
                ],
                "properties": {
                  "ids": {
                    "type": "string",
                    "description": "IDs na ordem desejada"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/grid-divisions/{id}/merge": {
      "post": {
        "tags": [
          "Divisões de grade"
        ],
        "summary": "Mesclar divisão em outra",
        "operationId": "post_grid-divisions_grid_divisions_id_merge",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/catalogo/grid-divisions/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "targetId"
                ],
                "properties": {
                  "targetId": {
                    "type": "string",
                    "description": "ID do item que permanece"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/grid-subdivisions": {
      "get": {
        "tags": [
          "Subdivisões de grade"
        ],
        "summary": "Listar subdivisão",
        "operationId": "get_grid-subdivisions_grid_subdivisions",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/catalogo/grid-subdivisions/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "post": {
        "tags": [
          "Subdivisões de grade"
        ],
        "summary": "Criar subdivisão",
        "operationId": "post_grid-subdivisions_grid_subdivisions",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/catalogo/grid-subdivisions/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "201 Created"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "name"
                ],
                "properties": {
                  "name": {
                    "type": "string",
                    "description": "Valor do eixo secundário (ex.: PRETO, BEGE)"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/grid-subdivisions/{id}": {
      "patch": {
        "tags": [
          "Subdivisões de grade"
        ],
        "summary": "Atualizar subdivisão",
        "operationId": "patch_grid-subdivisions_grid_subdivisions_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/catalogo/grid-subdivisions/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "name"
                ],
                "properties": {
                  "name": {
                    "type": "string",
                    "description": "Valor do eixo secundário (ex.: PRETO, BEGE)"
                  }
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Subdivisões de grade"
        ],
        "summary": "Excluir subdivisão",
        "operationId": "delete_grid-subdivisions_grid_subdivisions_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/catalogo/grid-subdivisions/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "204 No Content"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/grid-subdivisions/reorder": {
      "put": {
        "tags": [
          "Subdivisões de grade"
        ],
        "summary": "Reordenar subdivisões",
        "operationId": "put_grid-subdivisions_grid_subdivisions_reorder",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/catalogo/grid-subdivisions/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "ids"
                ],
                "properties": {
                  "ids": {
                    "type": "string",
                    "description": "IDs na ordem desejada"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/grid-subdivisions/{id}/merge": {
      "post": {
        "tags": [
          "Subdivisões de grade"
        ],
        "summary": "Mesclar subdivisão em outra",
        "operationId": "post_grid-subdivisions_grid_subdivisions_id_merge",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/catalogo/grid-subdivisions/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "targetId"
                ],
                "properties": {
                  "targetId": {
                    "type": "string",
                    "description": "ID do item que permanece"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/grid-catalog/seed/profiles": {
      "get": {
        "tags": [
          "Grade (eixos e sugestão)"
        ],
        "summary": "Ramos disponíveis para sugestão de grade",
        "operationId": "get_grid-catalog_grid_catalog_seed_profiles",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/catalogo/grid-catalog/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "{ profiles: [{ id, label }], suggested }"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/grid-catalog/seed/suggest": {
      "post": {
        "tags": [
          "Grade (eixos e sugestão)"
        ],
        "summary": "Sugerir rótulos e valores de divisão/subdivisão (catálogo do ramo + IA)",
        "operationId": "post_grid-catalog_grid_catalog_seed_suggest",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/catalogo/grid-catalog/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "{ divisionAxisLabel, subdivisionAxisLabel, divisions, subdivisions, aiUsed, aiError }"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [],
                "properties": {
                  "profile": {
                    "type": "string",
                    "description": "Ramo; padrão vem do CNAE da loja"
                  },
                  "businessDescription": {
                    "type": "string",
                    "description": "Tipo de negócio em texto livre (até 500 caracteres)"
                  },
                  "useAi": {
                    "type": "boolean",
                    "description": "false devolve só o catálogo do ramo"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/grid-catalog/seed/apply": {
      "post": {
        "tags": [
          "Grade (eixos e sugestão)"
        ],
        "summary": "Gravar rótulos da loja e cadastrar os valores escolhidos",
        "operationId": "post_grid-catalog_grid_catalog_seed_apply",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/catalogo/grid-catalog/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "divisionAxisLabel",
                  "subdivisionAxisLabel"
                ],
                "properties": {
                  "divisionAxisLabel": {
                    "type": "string",
                    "description": "Nome do eixo principal"
                  },
                  "subdivisionAxisLabel": {
                    "type": "string",
                    "description": "Nome do eixo secundário"
                  },
                  "divisions": {
                    "type": "string",
                    "description": "Valores da divisão"
                  },
                  "subdivisions": {
                    "type": "string",
                    "description": "Valores da subdivisão"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/grid-catalog/axis-labels": {
      "put": {
        "tags": [
          "Grade (eixos e sugestão)"
        ],
        "summary": "Atualizar só os nomes dos eixos (padrão legado: Tamanho e Cor)",
        "operationId": "put_grid-catalog_grid_catalog_axis_labels",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/catalogo/grid-catalog/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "divisionAxisLabel",
                  "subdivisionAxisLabel"
                ],
                "properties": {
                  "divisionAxisLabel": {
                    "type": "string",
                    "description": "Nome do eixo principal"
                  },
                  "subdivisionAxisLabel": {
                    "type": "string",
                    "description": "Nome do eixo secundário"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/reports/sales-summary": {
      "get": {
        "tags": [
          "Relatórios"
        ],
        "summary": "Resumo de vendas",
        "operationId": "get_reports_reports_sales_summary",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/relatorios/reports/"
        },
        "parameters": [
          {
            "name": "from",
            "in": "query",
            "required": false,
            "description": "Data inicial (YYYY-MM-DD)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "to",
            "in": "query",
            "required": false,
            "description": "Data final",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "sellerId",
            "in": "query",
            "required": false,
            "description": "Filtrar por vendedor (UUID)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "paymentMethodId",
            "in": "query",
            "required": false,
            "description": "Filtrar por forma de pagamento",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "salesChannelId",
            "in": "query",
            "required": false,
            "description": "Filtrar por canal de venda (UUID) ou `none` para vendas sem canal",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "includeItems",
            "in": "query",
            "required": false,
            "description": "Inclui os produtos de cada venda (relatório detalhado)",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/reports/monthly-sales": {
      "get": {
        "tags": [
          "Relatórios"
        ],
        "summary": "Faturamento comercial agrupado por mês",
        "operationId": "get_reports_reports_monthly_sales",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/relatorios/reports/"
        },
        "parameters": [
          {
            "name": "from",
            "in": "query",
            "required": false,
            "description": "Data inicial (YYYY-MM-DD)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "to",
            "in": "query",
            "required": false,
            "description": "Data final",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/reports/top-products": {
      "get": {
        "tags": [
          "Relatórios"
        ],
        "summary": "Produtos mais vendidos",
        "operationId": "get_reports_reports_top_products",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/relatorios/reports/"
        },
        "parameters": [
          {
            "name": "from",
            "in": "query",
            "required": false,
            "description": "Data inicial",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "to",
            "in": "query",
            "required": false,
            "description": "Data final",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Quantidade",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/reports/sales-by-category": {
      "get": {
        "tags": [
          "Relatórios"
        ],
        "summary": "Vendas por categoria",
        "operationId": "get_reports_reports_sales_by_category",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/relatorios/reports/"
        },
        "parameters": [
          {
            "name": "from",
            "in": "query",
            "required": false,
            "description": "Data inicial",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "to",
            "in": "query",
            "required": false,
            "description": "Data final",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/reports/sales-by-tag": {
      "get": {
        "tags": [
          "Relatórios"
        ],
        "summary": "Vendas e catálogo por tag de produto",
        "operationId": "get_reports_reports_sales_by_tag",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/relatorios/reports/"
        },
        "parameters": [
          {
            "name": "from",
            "in": "query",
            "required": false,
            "description": "Data inicial",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "to",
            "in": "query",
            "required": false,
            "description": "Data final",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/reports/catalog-groups": {
      "get": {
        "tags": [
          "Relatórios"
        ],
        "summary": "Vendas, produtos e estoque por marca, categoria ou tag",
        "operationId": "get_reports_reports_catalog_groups",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/relatorios/reports/"
        },
        "parameters": [
          {
            "name": "dimension",
            "in": "query",
            "required": true,
            "description": "brand, category ou tag",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "from",
            "in": "query",
            "required": false,
            "description": "Data inicial",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "to",
            "in": "query",
            "required": false,
            "description": "Data final",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/reports/catalog-groups/products": {
      "get": {
        "tags": [
          "Relatórios"
        ],
        "summary": "Produtos de uma marca, categoria ou tag com vendas do período e estoque atual",
        "operationId": "get_reports_reports_catalog_groups_products",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/relatorios/reports/"
        },
        "parameters": [
          {
            "name": "dimension",
            "in": "query",
            "required": true,
            "description": "brand, category ou tag",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "groupId",
            "in": "query",
            "required": true,
            "description": "Id do grupo ou none (sem marca/categoria/tag)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "from",
            "in": "query",
            "required": false,
            "description": "Data inicial",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "to",
            "in": "query",
            "required": false,
            "description": "Data final",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/reports/stock": {
      "get": {
        "tags": [
          "Relatórios"
        ],
        "summary": "Posição de estoque",
        "operationId": "get_reports_reports_stock",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/relatorios/reports/"
        },
        "parameters": [
          {
            "name": "all",
            "in": "query",
            "required": false,
            "description": "Retorna todos os SKUs (sem paginação)",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "page",
            "in": "query",
            "required": false,
            "description": "Página (padrão 1)",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "required": false,
            "description": "Itens por página (padrão 500, máx. 2000)",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/reports/draft-stock": {
      "get": {
        "tags": [
          "Relatórios"
        ],
        "summary": "Peças em rascunhos de venda (para conferência)",
        "operationId": "get_reports_reports_draft_stock",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/relatorios/reports/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/reports/dashboard-alerts": {
      "get": {
        "tags": [
          "Relatórios"
        ],
        "summary": "Alertas do dashboard",
        "operationId": "get_reports_reports_dashboard_alerts",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/relatorios/reports/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/reports/top-customers": {
      "get": {
        "tags": [
          "Relatórios"
        ],
        "summary": "Melhores clientes",
        "operationId": "get_reports_reports_top_customers",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/relatorios/reports/"
        },
        "parameters": [
          {
            "name": "from",
            "in": "query",
            "required": false,
            "description": "Data inicial",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "to",
            "in": "query",
            "required": false,
            "description": "Data final",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/reports/credit-sales": {
      "get": {
        "tags": [
          "Relatórios"
        ],
        "summary": "Vendas a prazo",
        "operationId": "get_reports_reports_credit_sales",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/relatorios/reports/"
        },
        "parameters": [
          {
            "name": "from",
            "in": "query",
            "required": false,
            "description": "Data inicial",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "to",
            "in": "query",
            "required": false,
            "description": "Data final",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/reports/card-fees": {
      "get": {
        "tags": [
          "Relatórios"
        ],
        "summary": "Relatório de taxas de cartão (MDR) no período",
        "operationId": "get_reports_reports_card_fees",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/relatorios/reports/"
        },
        "parameters": [
          {
            "name": "from",
            "in": "query",
            "required": false,
            "description": "Data inicial",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "to",
            "in": "query",
            "required": false,
            "description": "Data final",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/reports/commissions-by-seller": {
      "get": {
        "tags": [
          "Relatórios"
        ],
        "summary": "Comissões por vendedor",
        "operationId": "get_reports_reports_commissions_by_seller",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/relatorios/reports/"
        },
        "parameters": [
          {
            "name": "from",
            "in": "query",
            "required": false,
            "description": "Data inicial",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "to",
            "in": "query",
            "required": false,
            "description": "Data final",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/reports/dashboard-overview": {
      "get": {
        "tags": [
          "Relatórios"
        ],
        "summary": "Visão geral do dashboard",
        "operationId": "get_reports_reports_dashboard_overview",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/relatorios/reports/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/reports/dashboard-metrics": {
      "get": {
        "tags": [
          "Relatórios"
        ],
        "summary": "Métricas do dashboard",
        "operationId": "get_reports_reports_dashboard_metrics",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/relatorios/reports/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/reports/dashboard-charts": {
      "get": {
        "tags": [
          "Relatórios"
        ],
        "summary": "Gráficos do dashboard",
        "operationId": "get_reports_reports_dashboard_charts",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/relatorios/reports/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/reports/dashboard-insights": {
      "get": {
        "tags": [
          "Relatórios"
        ],
        "summary": "Insights do dashboard",
        "operationId": "get_reports_reports_dashboard_insights",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/relatorios/reports/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/reports/product-abc": {
      "get": {
        "tags": [
          "Relatórios"
        ],
        "summary": "Curva ABC de produtos por faturamento",
        "operationId": "get_reports_reports_product_abc",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/relatorios/reports/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/reports/sale-margins": {
      "get": {
        "tags": [
          "Relatórios"
        ],
        "summary": "Margem bruta por pedido",
        "operationId": "get_reports_reports_sale_margins",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/relatorios/reports/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/reports/customer-dashboard": {
      "get": {
        "tags": [
          "Relatórios"
        ],
        "summary": "Indicadores de clientes no período",
        "operationId": "get_reports_reports_customer_dashboard",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/relatorios/reports/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/reports/sales-goals": {
      "get": {
        "tags": [
          "Relatórios"
        ],
        "summary": "Meta mensal de faturamento",
        "operationId": "get_reports_reports_sales_goals",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/relatorios/reports/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "put": {
        "tags": [
          "Relatórios"
        ],
        "summary": "Criar ou atualizar meta mensal",
        "operationId": "put_reports_reports_sales_goals",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/relatorios/reports/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/reports/sales-goals/progress": {
      "get": {
        "tags": [
          "Relatórios"
        ],
        "summary": "Progresso da meta no mês",
        "operationId": "get_reports_reports_sales_goals_progress",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/relatorios/reports/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/reports/sales-goals/history": {
      "get": {
        "tags": [
          "Relatórios"
        ],
        "summary": "Histórico de metas e realizado",
        "operationId": "get_reports_reports_sales_goals_history",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/relatorios/reports/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/reports/customer-birthdays": {
      "get": {
        "tags": [
          "Relatórios"
        ],
        "summary": "Aniversários de clientes",
        "operationId": "get_reports_reports_customer_birthdays",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/relatorios/reports/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/reports/seller-birthdays": {
      "get": {
        "tags": [
          "Relatórios"
        ],
        "summary": "Aniversários de vendedores",
        "operationId": "get_reports_reports_seller_birthdays",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/relatorios/reports/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/reports/cash-flow": {
      "get": {
        "tags": [
          "Relatórios"
        ],
        "summary": "Fluxo de caixa",
        "operationId": "get_reports_reports_cash_flow",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/relatorios/reports/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/reports/dre": {
      "get": {
        "tags": [
          "Relatórios"
        ],
        "summary": "DRE gerencial ou contábil (receita, CMV, despesas, impostos e resultado do período)",
        "operationId": "get_reports_reports_dre",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/relatorios/reports/"
        },
        "parameters": [
          {
            "name": "from",
            "in": "query",
            "required": false,
            "description": "Data inicial (YYYY-MM-DD)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "to",
            "in": "query",
            "required": false,
            "description": "Data final",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "view",
            "in": "query",
            "required": false,
            "description": "managerial (padrão) ou accounting",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/reports/cash-inflow-by-payment": {
      "get": {
        "tags": [
          "Relatórios"
        ],
        "summary": "Entradas de caixa por forma de pagamento (à vista, crediário e cheques compensados)",
        "operationId": "get_reports_reports_cash_inflow_by_payment",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/relatorios/reports/"
        },
        "parameters": [
          {
            "name": "from",
            "in": "query",
            "required": false,
            "description": "Data inicial",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "to",
            "in": "query",
            "required": false,
            "description": "Data final",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/reports/receivables-aging": {
      "get": {
        "tags": [
          "Relatórios"
        ],
        "summary": "Aging de contas a receber",
        "operationId": "get_reports_reports_receivables_aging",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/relatorios/reports/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/reports/receivables-write-offs": {
      "get": {
        "tags": [
          "Relatórios"
        ],
        "summary": "Contas canceladas por perda (perdão de dívida) no período",
        "operationId": "get_reports_reports_receivables_write_offs",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/relatorios/reports/"
        },
        "parameters": [
          {
            "name": "from",
            "in": "query",
            "required": true,
            "description": "Início (YYYY-MM-DD)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "to",
            "in": "query",
            "required": true,
            "description": "Fim (YYYY-MM-DD)",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/reports/receivables-detailed": {
      "get": {
        "tags": [
          "Relatórios"
        ],
        "summary": "Relatório detalhado de contas a receber (títulos em aberto por cliente)",
        "operationId": "get_reports_reports_receivables_detailed",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/relatorios/reports/"
        },
        "parameters": [
          {
            "name": "status",
            "in": "query",
            "required": false,
            "description": "open (padrão) | overdue | current",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/reports/receivables-summary": {
      "get": {
        "tags": [
          "Relatórios"
        ],
        "summary": "Relatório resumido de contas a receber (saldo total por cliente)",
        "operationId": "get_reports_reports_receivables_summary",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/relatorios/reports/"
        },
        "parameters": [
          {
            "name": "status",
            "in": "query",
            "required": false,
            "description": "open (padrão) | overdue | current",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/reports/payables-detailed": {
      "get": {
        "tags": [
          "Relatórios"
        ],
        "summary": "Relatório detalhado de contas a pagar (títulos em aberto por fornecedor)",
        "operationId": "get_reports_reports_payables_detailed",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/relatorios/reports/"
        },
        "parameters": [
          {
            "name": "status",
            "in": "query",
            "required": false,
            "description": "open (padrão) | overdue | current",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "supplierId",
            "in": "query",
            "required": false,
            "description": "Fornecedor",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "categoryId",
            "in": "query",
            "required": false,
            "description": "Categoria (uuid) ou `none` para sem categoria",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "costCenterId",
            "in": "query",
            "required": false,
            "description": "Centro de custo",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "kind",
            "in": "query",
            "required": false,
            "description": "manual | purchase | recurring | card_bill | credit_card",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "approvalStatus",
            "in": "query",
            "required": false,
            "description": "PENDING | APPROVED | REJECTED",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "q",
            "in": "query",
            "required": false,
            "description": "Busca (descrição, NF, fornecedor, documento)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "dueFrom",
            "in": "query",
            "required": false,
            "description": "Vencimento inicial (YYYY-MM-DD)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "dueTo",
            "in": "query",
            "required": false,
            "description": "Vencimento final (YYYY-MM-DD)",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/reports/payables-paid": {
      "get": {
        "tags": [
          "Relatórios"
        ],
        "summary": "Contas pagas no período (principal, juros, multa, desconto, forma e conta de saída)",
        "operationId": "get_reports_reports_payables_paid",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/relatorios/reports/"
        },
        "parameters": [
          {
            "name": "from",
            "in": "query",
            "required": true,
            "description": "Início (YYYY-MM-DD)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "to",
            "in": "query",
            "required": true,
            "description": "Fim (YYYY-MM-DD)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "supplierId",
            "in": "query",
            "required": false,
            "description": "Fornecedor",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "categoryId",
            "in": "query",
            "required": false,
            "description": "Categoria (uuid) ou `none` para sem categoria",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "costCenterId",
            "in": "query",
            "required": false,
            "description": "Centro de custo",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "kind",
            "in": "query",
            "required": false,
            "description": "manual | purchase | recurring | card_bill | credit_card",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "q",
            "in": "query",
            "required": false,
            "description": "Busca (descrição, NF, fornecedor, documento)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "financialAccountId",
            "in": "query",
            "required": false,
            "description": "Conta de saída (uuid) ou `none`",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "paymentMethodId",
            "in": "query",
            "required": false,
            "description": "Forma de pagamento (uuid) ou `none`",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/reports/payables-summary": {
      "get": {
        "tags": [
          "Relatórios"
        ],
        "summary": "Contas a pagar em aberto e pagas no período, agrupadas",
        "operationId": "get_reports_reports_payables_summary",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/relatorios/reports/"
        },
        "parameters": [
          {
            "name": "from",
            "in": "query",
            "required": true,
            "description": "Início (YYYY-MM-DD)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "to",
            "in": "query",
            "required": true,
            "description": "Fim (YYYY-MM-DD)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "dimension",
            "in": "query",
            "required": false,
            "description": "category (padrão) | dreGroup | costCenter | supplier",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "supplierId",
            "in": "query",
            "required": false,
            "description": "Fornecedor",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "categoryId",
            "in": "query",
            "required": false,
            "description": "Categoria (uuid) ou `none` para sem categoria",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "costCenterId",
            "in": "query",
            "required": false,
            "description": "Centro de custo",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "kind",
            "in": "query",
            "required": false,
            "description": "manual | purchase | recurring | card_bill | credit_card",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "q",
            "in": "query",
            "required": false,
            "description": "Busca (descrição, NF, fornecedor, documento)",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/reports/payables-forecast": {
      "get": {
        "tags": [
          "Relatórios"
        ],
        "summary": "Projeção de saídas (parcelas em aberto e recorrências a gerar), entradas previstas e saldo projetado",
        "operationId": "get_reports_reports_payables_forecast",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/relatorios/reports/"
        },
        "parameters": [
          {
            "name": "from",
            "in": "query",
            "required": false,
            "description": "Início (YYYY-MM-DD, padrão hoje)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "to",
            "in": "query",
            "required": false,
            "description": "Fim (YYYY-MM-DD, padrão hoje + 90 dias)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "groupBy",
            "in": "query",
            "required": false,
            "description": "day | week (padrão) | month",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "supplierId",
            "in": "query",
            "required": false,
            "description": "Fornecedor",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "categoryId",
            "in": "query",
            "required": false,
            "description": "Categoria (uuid) ou `none` para sem categoria",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "costCenterId",
            "in": "query",
            "required": false,
            "description": "Centro de custo",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "kind",
            "in": "query",
            "required": false,
            "description": "manual | purchase | recurring | card_bill | credit_card",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "q",
            "in": "query",
            "required": false,
            "description": "Busca (descrição, NF, fornecedor, documento)",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/reports/payables-cancelled": {
      "get": {
        "tags": [
          "Relatórios"
        ],
        "summary": "Contas a pagar canceladas no período (valor cancelado, motivo e usuário)",
        "operationId": "get_reports_reports_payables_cancelled",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/relatorios/reports/"
        },
        "parameters": [
          {
            "name": "from",
            "in": "query",
            "required": true,
            "description": "Início (YYYY-MM-DD)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "to",
            "in": "query",
            "required": true,
            "description": "Fim (YYYY-MM-DD)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "supplierId",
            "in": "query",
            "required": false,
            "description": "Fornecedor",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "categoryId",
            "in": "query",
            "required": false,
            "description": "Categoria (uuid) ou `none` para sem categoria",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "costCenterId",
            "in": "query",
            "required": false,
            "description": "Centro de custo",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "kind",
            "in": "query",
            "required": false,
            "description": "manual | purchase | recurring | card_bill | credit_card",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "q",
            "in": "query",
            "required": false,
            "description": "Busca (descrição, NF, fornecedor, documento)",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/reports/services-dashboard": {
      "get": {
        "tags": [
          "Relatórios"
        ],
        "summary": "Dashboard de serviços",
        "operationId": "get_reports_reports_services_dashboard",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/relatorios/reports/"
        },
        "parameters": [
          {
            "name": "from",
            "in": "query",
            "required": false,
            "description": "Data inicial",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "to",
            "in": "query",
            "required": false,
            "description": "Data final",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/reports/promotional-campaigns": {
      "get": {
        "tags": [
          "Relatórios"
        ],
        "summary": "Relatório de campanhas promocionais",
        "operationId": "get_reports_reports_promotional_campaigns",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/relatorios/reports/"
        },
        "parameters": [
          {
            "name": "from",
            "in": "query",
            "required": true,
            "description": "Data inicial (YYYY-MM-DD)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "to",
            "in": "query",
            "required": true,
            "description": "Data final",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "campaignId",
            "in": "query",
            "required": false,
            "description": "Campanha",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "sellerId",
            "in": "query",
            "required": false,
            "description": "Vendedor",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "productId",
            "in": "query",
            "required": false,
            "description": "Produto",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "operatorUserId",
            "in": "query",
            "required": false,
            "description": "Operador",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "sortBy",
            "in": "query",
            "required": false,
            "description": "quantity | revenue | discount | units",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/reports/promotional-campaigns/{campaignId}/sales": {
      "get": {
        "tags": [
          "Relatórios"
        ],
        "summary": "Vendas de uma campanha promocional",
        "operationId": "get_reports_reports_promotional_campaigns_campaignId_sales",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/relatorios/reports/"
        },
        "parameters": [
          {
            "name": "campaignId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/reports/stock-summary": {
      "get": {
        "tags": [
          "Relatórios"
        ],
        "summary": "Contagens de estoque (sem custo) para o painel inicial",
        "operationId": "get_reports_reports_stock_summary",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/relatorios/reports/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/reports/own-consumption": {
      "get": {
        "tags": [
          "Relatórios"
        ],
        "summary": "Consumo próprio / uso interno",
        "operationId": "get_reports_reports_own_consumption",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/relatorios/reports/"
        },
        "parameters": [
          {
            "name": "from",
            "in": "query",
            "required": false,
            "description": "Data inicial",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "to",
            "in": "query",
            "required": false,
            "description": "Data final",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "description": "COMPLETED ou CANCELLED",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "locationId",
            "in": "query",
            "required": false,
            "description": "Local",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "productId",
            "in": "query",
            "required": false,
            "description": "Produto",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "categoryId",
            "in": "query",
            "required": false,
            "description": "Categoria",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "userId",
            "in": "query",
            "required": false,
            "description": "Usuário",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/reports/suggested-purchase": {
      "get": {
        "tags": [
          "Relatórios"
        ],
        "summary": "Sugestão de compra (relatórios avançados)",
        "operationId": "get_reports_reports_suggested_purchase",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/relatorios/reports/"
        },
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "required": false,
            "description": "out (zerados), low (abaixo do mínimo) ou all",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Padrão 200, máx. 500",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/reports/dead-stock": {
      "get": {
        "tags": [
          "Relatórios"
        ],
        "summary": "Estoque parado (relatórios avançados)",
        "operationId": "get_reports_reports_dead_stock",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/relatorios/reports/"
        },
        "parameters": [
          {
            "name": "minDays",
            "in": "query",
            "required": false,
            "description": "Dias sem venda (padrão 60)",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Padrão 500, máx. 1000",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/reports/dashboard-inbox/emit-pending-nfce": {
      "post": {
        "tags": [
          "Relatórios"
        ],
        "summary": "Emitir NFC-e pendentes em lote (relatórios avançados)",
        "operationId": "post_reports_reports_dashboard_inbox_emit_pending_nfce",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/relatorios/reports/"
        },
        "parameters": [
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Máx. 500",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/reviews": {
      "get": {
        "tags": [
          "Avaliações"
        ],
        "summary": "Listar avaliações",
        "operationId": "get_reviews_reviews",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/catalogo/reviews/"
        },
        "parameters": [
          {
            "name": "status",
            "in": "query",
            "required": false,
            "description": "PENDING | SUBMITTED | EXPIRED",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "page",
            "in": "query",
            "required": false,
            "description": "Página",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "required": false,
            "description": "Itens por página (máx. 100)",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/reviews/{id}": {
      "get": {
        "tags": [
          "Avaliações"
        ],
        "summary": "Detalhe da avaliação",
        "operationId": "get_reviews_reviews_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/catalogo/reviews/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "delete": {
        "tags": [
          "Avaliações"
        ],
        "summary": "Excluir avaliação",
        "operationId": "delete_reviews_reviews_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/catalogo/reviews/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "204 No Content"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/users": {
      "get": {
        "tags": [
          "Usuários"
        ],
        "summary": "Listar usuários",
        "operationId": "get_users_users",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/acesso/users/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "post": {
        "tags": [
          "Usuários"
        ],
        "summary": "Criar usuário",
        "operationId": "post_users_users",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/acesso/users/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "x-sensitive": true,
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "username",
                  "password"
                ],
                "properties": {
                  "username": {
                    "type": "string",
                    "description": "Login"
                  },
                  "password": {
                    "type": "string",
                    "description": "Senha (mín. 6 caracteres)"
                  },
                  "name": {
                    "type": "string",
                    "description": "Nome exibido"
                  },
                  "active": {
                    "type": "boolean",
                    "description": "Ativo"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/users/{id}": {
      "patch": {
        "tags": [
          "Usuários"
        ],
        "summary": "Atualizar usuário",
        "operationId": "patch_users_users_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/acesso/users/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "x-sensitive": true,
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [],
                "properties": {
                  "username": {
                    "type": "string",
                    "description": "Login"
                  },
                  "password": {
                    "type": "string",
                    "description": "Nova senha"
                  },
                  "active": {
                    "type": "boolean",
                    "description": "Ativo"
                  }
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Usuários"
        ],
        "summary": "Excluir usuário",
        "operationId": "delete_users_users_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/acesso/users/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "204 No Content"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "x-sensitive": true
      }
    },
    "/users/{id}/login-history": {
      "get": {
        "tags": [
          "Usuários"
        ],
        "summary": "Histórico de logins do usuário (data/hora, IP e navegador)",
        "operationId": "get_users_users_id_login_history",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/acesso/users/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/users/{id}/two-factor": {
      "delete": {
        "tags": [
          "Usuários"
        ],
        "summary": "Remover 2FA do usuário",
        "operationId": "delete_users_users_id_two_factor",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/acesso/users/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/store-settings": {
      "get": {
        "tags": [
          "Configurações da loja"
        ],
        "summary": "Obter dados da loja",
        "operationId": "get_store-settings_store_settings",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/acesso/store-settings/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "put": {
        "tags": [
          "Configurações da loja"
        ],
        "summary": "Atualizar dados da loja",
        "operationId": "put_store-settings_store_settings",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/acesso/store-settings/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [],
                "properties": {
                  "tradeName": {
                    "type": "string",
                    "description": "Nome fantasia"
                  },
                  "legalName": {
                    "type": "string",
                    "description": "Razão social"
                  },
                  "cnpj": {
                    "type": "string",
                    "description": "CNPJ"
                  },
                  "phone": {
                    "type": "string",
                    "description": "Telefone"
                  },
                  "email": {
                    "type": "string",
                    "description": "E-mail"
                  },
                  "addressLine1": {
                    "type": "string",
                    "description": "Endereço"
                  },
                  "city": {
                    "type": "string",
                    "description": "Cidade"
                  },
                  "state": {
                    "type": "string",
                    "description": "UF"
                  },
                  "zipCode": {
                    "type": "string",
                    "description": "CEP"
                  },
                  "customerNameFormat": {
                    "type": "string",
                    "description": "NONE | TITLE | UPPER — formatação do nome do cliente ao salvar"
                  },
                  "productNameFormat": {
                    "type": "string",
                    "description": "NONE | TITLE | UPPER — formatação da descrição do produto ao salvar"
                  },
                  "businessSegment": {
                    "type": "string",
                    "description": "GENERAL | BAKERY | CLOTHING | SPORTING_GOODS | AUTO_PARTS | FOOTWEAR | OPTICS | CLEANING_SUPPLIES | STATIONERY | PET_SHOP | GIFTS_DECOR | VARIETY_STORE | BUILDING_MATERIALS | FLORIST | CURTAINS | ELECTRONICS | PHONE_ACCESSORIES | COMPUTER_STORE | BAR | SERVICES | AESTHETIC_CLINIC | MECHANIC_WORKSHOP | PAINT_MANUFACTURER | MANUFACTURER — ramo do negócio, usado para pré-selecionar os módulos do menu"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/pos-settings": {
      "get": {
        "tags": [
          "Configurações do PDV"
        ],
        "summary": "Obter configurações da tela de vendas",
        "operationId": "get_pos-settings_pos_settings",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/acesso/pos-settings/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "patch": {
        "tags": [
          "Configurações do PDV"
        ],
        "summary": "Atualizar configurações da tela de vendas",
        "operationId": "patch_pos-settings_pos_settings",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/acesso/pos-settings/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [],
                "properties": {
                  "requireSellerForPos": {
                    "type": "boolean",
                    "description": "Exigir vendedor no PDV"
                  },
                  "posDefaultSellerIds": {
                    "type": "array",
                    "items": {},
                    "description": "IDs dos vendedores padrão (máx. 10)"
                  },
                  "allowNegativeStock": {
                    "type": "boolean",
                    "description": "Permitir estoque negativo"
                  },
                  "posAllowServices": {
                    "type": "boolean",
                    "description": "Permitir serviços no PDV"
                  },
                  "posAllowShippingAmount": {
                    "type": "boolean",
                    "description": "Permitir valor de frete"
                  },
                  "posAllowSaleCarrier": {
                    "type": "boolean",
                    "description": "Exibir transportadora na venda e incluir na NF-e 55 (padrão desligado)"
                  },
                  "posShowManagementIndicators": {
                    "type": "boolean",
                    "description": "Indicadores gerenciais"
                  },
                  "posShowProductCode": {
                    "type": "boolean",
                    "description": "Exibir código interno no PDV, cadastro e demais telas; no PDV também busca por ele (padrão desligado)"
                  },
                  "posShowCommissionOnFinalize": {
                    "type": "boolean",
                    "description": "Mostrar comissão na finalização"
                  },
                  "posFinalizeAsModal": {
                    "type": "boolean",
                    "description": "Finalizar venda em modal central"
                  },
                  "posLayout": {
                    "type": "string",
                    "description": "Layout do PDV: STACKED ou SPLIT"
                  },
                  "posInstagramSearchEnabled": {
                    "type": "boolean",
                    "description": "Busca por Instagram"
                  },
                  "posAutoPrintReceipt": {
                    "type": "boolean",
                    "description": "Imprimir cupom não fiscal automaticamente ao finalizar a venda"
                  },
                  "posPrintOrderPdf": {
                    "type": "boolean",
                    "description": "Gerar PDF A4 do pedido ao finalizar venda sem documento fiscal"
                  },
                  "posPrefillPaymentAmount": {
                    "type": "boolean",
                    "description": "Pré-preencher o valor recebido ao escolher a forma de pagamento (padrão: true)"
                  },
                  "creditPricingEnabled": {
                    "type": "boolean",
                    "description": "Preço a prazo"
                  },
                  "requireCashSessionForPos": {
                    "type": "boolean",
                    "description": "Exigir sessão de caixa"
                  },
                  "birthdayDiscountEnabled": {
                    "type": "boolean",
                    "description": "Desconto de aniversário"
                  },
                  "birthdayDiscountPercent": {
                    "type": "number",
                    "description": "Percentual (0–100)"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/email-settings": {
      "get": {
        "tags": [
          "Configurações de e-mail"
        ],
        "summary": "Obter configurações SMTP",
        "operationId": "get_email-settings_email_settings",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/acesso/email-settings/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "put": {
        "tags": [
          "Configurações de e-mail"
        ],
        "summary": "Atualizar configurações SMTP",
        "operationId": "put_email-settings_email_settings",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/acesso/email-settings/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "x-sensitive": true,
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [],
                "properties": {
                  "enabled": {
                    "type": "boolean",
                    "description": "Habilitar envio"
                  },
                  "smtpHost": {
                    "type": "string",
                    "description": "Servidor SMTP"
                  },
                  "smtpPort": {
                    "type": "integer",
                    "description": "Porta"
                  },
                  "smtpUser": {
                    "type": "string",
                    "description": "Usuário SMTP"
                  },
                  "smtpPassword": {
                    "type": "string",
                    "description": "Senha SMTP"
                  },
                  "fromEmail": {
                    "type": "string",
                    "description": "Remetente"
                  },
                  "reviewRequestCooldownDays": {
                    "type": "integer",
                    "description": "Dias sem novo pedido após o cliente avaliar (padrão 30)"
                  },
                  "reviewRequestRetryDays": {
                    "type": "integer",
                    "description": "Dias sem insistir quando o pedido não foi respondido (padrão 14)"
                  },
                  "reviewRequestExpireDays": {
                    "type": "integer",
                    "description": "Dias em aguardando até expirar o pedido (padrão 14; 0 = não expirar)"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/email-settings/test": {
      "post": {
        "tags": [
          "Configurações de e-mail"
        ],
        "summary": "Enviar e-mail de teste",
        "operationId": "post_email-settings_email_settings_test",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/acesso/email-settings/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "to"
                ],
                "properties": {
                  "to": {
                    "type": "string",
                    "description": "Destinatário"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/database-backups": {
      "get": {
        "tags": [
          "Backups"
        ],
        "summary": "Listar backups",
        "operationId": "get_database-backups_database_backups",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/acesso/database-backups/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "post": {
        "tags": [
          "Backups"
        ],
        "summary": "Criar backup",
        "operationId": "post_database-backups_database_backups",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/acesso/database-backups/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [],
                "properties": {
                  "name": {
                    "type": "string",
                    "description": "Nome do backup"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/database-backups/{id}": {
      "patch": {
        "tags": [
          "Backups"
        ],
        "summary": "Renomear backup",
        "operationId": "patch_database-backups_database_backups_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/acesso/database-backups/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "name"
                ],
                "properties": {
                  "name": {
                    "type": "string",
                    "description": "Novo nome"
                  }
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Backups"
        ],
        "summary": "Excluir backup",
        "operationId": "delete_database-backups_database_backups_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/acesso/database-backups/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "204 No Content"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "x-sensitive": true
      }
    },
    "/database-backups/{id}/download": {
      "get": {
        "tags": [
          "Backups"
        ],
        "summary": "Baixar arquivo do backup (stream)",
        "operationId": "get_database-backups_database_backups_id_download",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/acesso/database-backups/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/database-backups/restore-from-file": {
      "post": {
        "tags": [
          "Backups"
        ],
        "summary": "Enfileirar restauração a partir de arquivo enviado",
        "operationId": "post_database-backups_database_backups_restore_from_file",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/acesso/database-backups/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Responde 202 e restaura em segundo plano. Cria backup automático do estado anterior. Acompanhe em GET /restore-jobs."
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "x-sensitive": true,
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [],
                "properties": {
                  "(corpo binário)": {
                    "type": "string",
                    "description": "Arquivo .sql, .dump, .db, .sqlite ou .enc. Cabeçalho X-Backup-Filename."
                  }
                }
              }
            }
          }
        }
      }
    },
    "/database-backups/{id}/restore": {
      "post": {
        "tags": [
          "Backups"
        ],
        "summary": "Enfileirar restauração de um backup da lista",
        "operationId": "post_database-backups_database_backups_id_restore",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/acesso/database-backups/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Responde 202 e restaura em segundo plano. Cria backup automático do estado anterior. Acompanhe em GET /restore-jobs."
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "x-sensitive": true
      }
    },
    "/database-backups/jobs": {
      "get": {
        "tags": [
          "Backups"
        ],
        "summary": "Listar jobs de backup",
        "operationId": "get_database-backups_database_backups_jobs",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/acesso/database-backups/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/database-backups/restore-jobs": {
      "get": {
        "tags": [
          "Backups"
        ],
        "summary": "Listar restaurações em andamento e recentes",
        "operationId": "get_database-backups_database_backups_restore_jobs",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/acesso/database-backups/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/database-backups/retention-policy": {
      "get": {
        "tags": [
          "Backups"
        ],
        "summary": "Política de retenção de backups",
        "operationId": "get_database-backups_database_backups_retention_policy",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/acesso/database-backups/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/database-backups/bulk-delete": {
      "post": {
        "tags": [
          "Backups"
        ],
        "summary": "Excluir backups em lote",
        "operationId": "post_database-backups_database_backups_bulk_delete",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/acesso/database-backups/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "x-sensitive": true
      }
    },
    "/database-backups/prune": {
      "post": {
        "tags": [
          "Backups"
        ],
        "summary": "Aplicar retenção e remover backups antigos",
        "operationId": "post_database-backups_database_backups_prune",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/acesso/database-backups/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/fiscal/settings": {
      "get": {
        "tags": [
          "Fiscal (NFC-e / NF-e)"
        ],
        "summary": "Configurações fiscais",
        "operationId": "get_fiscal_fiscal_settings",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Inclui numbering: série, último nNF gravado e próximo número de NFC-e 65, NF-e 55 de venda e NF-e 55 de devolução no ambiente atual."
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "put": {
        "tags": [
          "Fiscal (NFC-e / NF-e)"
        ],
        "summary": "Atualizar configurações fiscais",
        "operationId": "put_fiscal_fiscal_settings",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "x-sensitive": true,
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [],
                "properties": {
                  "nfceEnabled": {
                    "type": "boolean",
                    "description": "Habilitar NFC-e (modelo 65) no PDV"
                  },
                  "nfeSaleEnabled": {
                    "type": "boolean",
                    "description": "Habilitar NF-e modelo 55 de venda (série dedicada; opt-in)"
                  },
                  "nfeSaleSeries": {
                    "type": "integer",
                    "description": "Série da NF-e de venda (independente da série de devolução)"
                  },
                  "nfeSaleNextNumber": {
                    "type": "integer",
                    "description": "Próximo nNF da série de venda 55"
                  },
                  "defaultGoodsDocumentType": {
                    "type": "string",
                    "description": "NFCE_65 | NFE_55 | NONE — tipo documental padrão de mercadoria"
                  },
                  "nfseEnabled": {
                    "type": "boolean",
                    "description": "Habilitar NFS-e no PDV (serviço)"
                  },
                  "environment": {
                    "type": "string",
                    "description": "HOMOLOG | PROD"
                  },
                  "cscId": {
                    "type": "string",
                    "description": "ID CSC de produção (NFC-e)"
                  },
                  "cscToken": {
                    "type": "string",
                    "description": "Token CSC de produção (NFC-e)"
                  },
                  "cscIdHomolog": {
                    "type": "string",
                    "description": "ID CSC de homologação"
                  },
                  "cscTokenHomolog": {
                    "type": "string",
                    "description": "Token CSC de homologação"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/fiscal/certificate/test": {
      "post": {
        "tags": [
          "Fiscal (NFC-e / NF-e)"
        ],
        "summary": "Testar certificado digital",
        "operationId": "post_fiscal_fiscal_certificate_test",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/fiscal/products-incomplete": {
      "get": {
        "tags": [
          "Fiscal (NFC-e / NF-e)"
        ],
        "summary": "Produtos com cadastro fiscal incompleto",
        "operationId": "get_fiscal_fiscal_products_incomplete",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/fiscal/health": {
      "get": {
        "tags": [
          "Fiscal (NFC-e / NF-e)"
        ],
        "summary": "Saúde fiscal do sistema",
        "operationId": "get_fiscal_fiscal_health",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/fiscal/health/emissions": {
      "get": {
        "tags": [
          "Fiscal (NFC-e / NF-e)"
        ],
        "summary": "Indicadores de emissões fiscais",
        "operationId": "get_fiscal_fiscal_health_emissions",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/fiscal/exports": {
      "get": {
        "tags": [
          "Fiscal (NFC-e / NF-e)"
        ],
        "summary": "Listar todas as notas fiscais para exportação (NFC-e, NF-e, NFS-e, devoluções)",
        "operationId": "get_fiscal_fiscal_exports",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal/"
        },
        "parameters": [
          {
            "name": "type",
            "in": "query",
            "required": false,
            "description": "ALL | NFCE_65 | NFE_55 | NFSE | RETURN_SALE | RETURN_PURCHASE | NFE_OPERATION",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "from",
            "in": "query",
            "required": false,
            "description": "Data inicial (AAAA-MM-DD)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "to",
            "in": "query",
            "required": false,
            "description": "Data final (AAAA-MM-DD)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "page",
            "in": "query",
            "required": false,
            "description": "Página (padrão 1)",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "required": false,
            "description": "Itens por página (padrão 50, máx. 100)",
            "schema": {
              "type": "number"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/accounting-xml/download": {
      "get": {
        "tags": [
          "Fiscal (NFC-e / NF-e)"
        ],
        "summary": "ZIP com todos os XMLs fiscais do período (NFC-e, NF-e, NFS-e, devoluções e cancelamentos)",
        "operationId": "get_fiscal_accounting_xml_download",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal/"
        },
        "parameters": [
          {
            "name": "from",
            "in": "query",
            "required": true,
            "description": "Data inicial (AAAA-MM-DD)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "to",
            "in": "query",
            "required": true,
            "description": "Data final (AAAA-MM-DD)",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "application/zip. Intervalo máximo de 24 meses."
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/fiscal/documents": {
      "get": {
        "tags": [
          "Fiscal (NFC-e / NF-e)"
        ],
        "summary": "Listar documentos fiscais da Sale (model 65 ou 55)",
        "operationId": "get_fiscal_fiscal_documents",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal/"
        },
        "parameters": [
          {
            "name": "status",
            "in": "query",
            "required": false,
            "description": "Status do documento",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "from",
            "in": "query",
            "required": false,
            "description": "Data inicial",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "to",
            "in": "query",
            "required": false,
            "description": "Data final",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/fiscal/documents/{id}": {
      "get": {
        "tags": [
          "Fiscal (NFC-e / NF-e)"
        ],
        "summary": "Detalhe do documento",
        "operationId": "get_fiscal_fiscal_documents_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/fiscal/documents/{id}/pdf": {
      "get": {
        "tags": [
          "Fiscal (NFC-e / NF-e)"
        ],
        "summary": "PDF do documento (cupom/DANFE conforme modelo)",
        "operationId": "get_fiscal_fiscal_documents_id_pdf",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/fiscal/documents/by-sale/{saleId}": {
      "get": {
        "tags": [
          "Fiscal (NFC-e / NF-e)"
        ],
        "summary": "Documento de uma venda",
        "operationId": "get_fiscal_fiscal_documents_by_sale_saleId",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal/"
        },
        "parameters": [
          {
            "name": "saleId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Inclui emissionWarnings[{ code, message, item? }]: avisos que não bloquearam a emissão da NF-e."
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/fiscal/nfe-emission": {
      "get": {
        "tags": [
          "Fiscal (NFC-e / NF-e)"
        ],
        "summary": "Opções de emissão da NF-e 55 da loja",
        "operationId": "get_fiscal_fiscal_nfe_emission",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "{ crt, isSimples, nfeIpiInIcmsBaseMode (NEVER|ALWAYS|FINAL_CONSUMER), nfeIpiInStBase, nfeTaxesOnTop, nfeCfopFromIcms, difalForSimples, simplesCreditAutoSuggest, simplesIcmsSharePercent, nfeInfCplIpiText, nfeInfCplStText, simplesCreditPreview }."
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "put": {
        "tags": [
          "Fiscal (NFC-e / NF-e)"
        ],
        "summary": "Atualizar opções de emissão da NF-e 55 (parcial: envie só o que mudou)",
        "operationId": "put_fiscal_fiscal_nfe_emission",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Devolve o mesmo formato do GET."
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "x-sensitive": true,
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [],
                "properties": {
                  "nfeIpiInIcmsBaseMode": {
                    "type": "string",
                    "description": "NEVER | ALWAYS | FINAL_CONSUMER"
                  },
                  "nfeIpiInStBase": {
                    "type": "boolean",
                    "description": "IPI integra a base do ICMS-ST"
                  },
                  "nfeTaxesOnTop": {
                    "type": "boolean",
                    "description": "IPI e ST por fora do preço da venda"
                  },
                  "nfeCfopFromIcms": {
                    "type": "boolean",
                    "description": "CFOP derivado do ICMS declarado"
                  },
                  "difalForSimples": {
                    "type": "boolean",
                    "description": "Calcular DIFAL também no Simples"
                  },
                  "simplesCreditAutoSuggest": {
                    "type": "boolean",
                    "description": "Sugerir crédito do Simples (pCredSN)"
                  },
                  "simplesIcmsSharePercent": {
                    "type": "string",
                    "description": "Participação do ICMS na alíquota efetiva (%)"
                  },
                  "nfeInfCplIpiText": {
                    "type": "string",
                    "description": "Texto fixo do infCpl com IPI destacado"
                  },
                  "nfeInfCplStText": {
                    "type": "string",
                    "description": "Texto fixo do infCpl com ICMS-ST"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/fiscal/documents/emit/{saleId}": {
      "post": {
        "tags": [
          "Fiscal (NFC-e / NF-e)"
        ],
        "summary": "Emitir documento de mercadoria (NFC-e 65 ou NF-e 55 conforme FiscalDocument.model / resolver)",
        "operationId": "post_fiscal_fiscal_documents_emit_saleId",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal/"
        },
        "parameters": [
          {
            "name": "saleId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/fiscal/documents/{id}/reconcile": {
      "post": {
        "tags": [
          "Fiscal (NFC-e / NF-e)"
        ],
        "summary": "Reconciliar documento pendente",
        "operationId": "post_fiscal_fiscal_documents_id_reconcile",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/fiscal/documents/{id}/cancel": {
      "post": {
        "tags": [
          "Fiscal (NFC-e / NF-e)"
        ],
        "summary": "Cancelar documento autorizado (NFC-e: cancelMaxMinutes; NF-e 55: até 24h)",
        "operationId": "post_fiscal_fiscal_documents_id_cancel",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "justification"
                ],
                "properties": {
                  "justification": {
                    "type": "string",
                    "description": "Justificativa (mín. 15 caracteres)"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/fiscal/documents/{id}/cce": {
      "post": {
        "tags": [
          "Fiscal (NFC-e / NF-e)"
        ],
        "summary": "Carta de Correção (CC-e) — somente NF-e modelo 55 autorizada",
        "operationId": "post_fiscal_fiscal_documents_id_cce",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "correctionText"
                ],
                "properties": {
                  "correctionText": {
                    "type": "string",
                    "description": "Texto da correção (15–1000 caracteres)"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/fiscal/inutilize": {
      "post": {
        "tags": [
          "Fiscal (NFC-e / NF-e)"
        ],
        "summary": "Inutilizar numeração NFC-e (modelo 65)",
        "operationId": "post_fiscal_fiscal_inutilize",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "series",
                  "numberFrom",
                  "numberTo",
                  "justification"
                ],
                "properties": {
                  "series": {
                    "type": "integer",
                    "description": "Série"
                  },
                  "numberFrom": {
                    "type": "integer",
                    "description": "Número inicial"
                  },
                  "numberTo": {
                    "type": "integer",
                    "description": "Número final"
                  },
                  "year": {
                    "type": "integer",
                    "description": "Ano (opcional)"
                  },
                  "justification": {
                    "type": "string",
                    "description": "Justificativa (mín. 15 caracteres)"
                  }
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "Fiscal (NFC-e / NF-e)"
        ],
        "summary": "Listar inutilizações (65 e 55)",
        "operationId": "get_fiscal_fiscal_inutilize",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/fiscal/inutilize-nfe-sale": {
      "post": {
        "tags": [
          "Fiscal (NFC-e / NF-e)"
        ],
        "summary": "Inutilizar numeração NF-e de venda (modelo 55, série nfeSale*)",
        "operationId": "post_fiscal_fiscal_inutilize_nfe_sale",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "series",
                  "numberFrom",
                  "numberTo",
                  "justification"
                ],
                "properties": {
                  "series": {
                    "type": "integer",
                    "description": "Série de venda 55"
                  },
                  "numberFrom": {
                    "type": "integer",
                    "description": "Número inicial"
                  },
                  "numberTo": {
                    "type": "integer",
                    "description": "Número final"
                  },
                  "year": {
                    "type": "integer",
                    "description": "Ano (opcional)"
                  },
                  "justification": {
                    "type": "string",
                    "description": "Justificativa (mín. 15 caracteres)"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/fiscal/contingency/pending": {
      "get": {
        "tags": [
          "Fiscal (NFC-e / NF-e)"
        ],
        "summary": "Documentos em contingência pendentes (somente NFC-e / tpEmis 9)",
        "operationId": "get_fiscal_fiscal_contingency_pending",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/fiscal/contingency/emit-by-order": {
      "post": {
        "tags": [
          "Fiscal (NFC-e / NF-e)"
        ],
        "summary": "Emitir contingência pelo nº do pedido",
        "operationId": "post_fiscal_fiscal_contingency_emit_by_order",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/fiscal/contingency/{id}/transmit": {
      "post": {
        "tags": [
          "Fiscal (NFC-e / NF-e)"
        ],
        "summary": "Transmitir documento em contingência",
        "operationId": "post_fiscal_fiscal_contingency_id_transmit",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/fiscal/clothing-preset": {
      "get": {
        "tags": [
          "Fiscal (NFC-e / NF-e)"
        ],
        "summary": "Preset fiscal para vestuário",
        "operationId": "get_fiscal_fiscal_clothing_preset",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/fiscal/apply-clothing-preset": {
      "post": {
        "tags": [
          "Fiscal (NFC-e / NF-e)"
        ],
        "summary": "Aplicar preset vestuário",
        "operationId": "post_fiscal_fiscal_apply_clothing_preset",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/fiscal/beauty-preset": {
      "get": {
        "tags": [
          "Fiscal (NFC-e / NF-e)"
        ],
        "summary": "Preset fiscal para estética e beleza",
        "operationId": "get_fiscal_fiscal_beauty_preset",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/fiscal/apply-beauty-preset": {
      "post": {
        "tags": [
          "Fiscal (NFC-e / NF-e)"
        ],
        "summary": "Aplicar preset estética e beleza",
        "operationId": "post_fiscal_fiscal_apply_beauty_preset",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/fiscal/convenience-preset": {
      "get": {
        "tags": [
          "Fiscal (NFC-e / NF-e)"
        ],
        "summary": "Preset fiscal para bebidas e conveniência",
        "operationId": "get_fiscal_fiscal_convenience_preset",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/fiscal/apply-convenience-preset": {
      "post": {
        "tags": [
          "Fiscal (NFC-e / NF-e)"
        ],
        "summary": "Aplicar preset bebidas e conveniência",
        "operationId": "post_fiscal_fiscal_apply_convenience_preset",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/fiscal/bakery-preset": {
      "get": {
        "tags": [
          "Fiscal (NFC-e / NF-e)"
        ],
        "summary": "Preset fiscal para panificadora e confeitaria",
        "operationId": "get_fiscal_fiscal_bakery_preset",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/fiscal/apply-bakery-preset": {
      "post": {
        "tags": [
          "Fiscal (NFC-e / NF-e)"
        ],
        "summary": "Aplicar preset panificadora e confeitaria",
        "operationId": "post_fiscal_fiscal_apply_bakery_preset",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/fiscal/electronics-preset": {
      "get": {
        "tags": [
          "Fiscal (NFC-e / NF-e)"
        ],
        "summary": "Preset fiscal para eletrônicos",
        "operationId": "get_fiscal_fiscal_electronics_preset",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/fiscal/apply-electronics-preset": {
      "post": {
        "tags": [
          "Fiscal (NFC-e / NF-e)"
        ],
        "summary": "Aplicar preset eletrônicos",
        "operationId": "post_fiscal_fiscal_apply_electronics_preset",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/fiscal/supplements-preset": {
      "get": {
        "tags": [
          "Fiscal (NFC-e / NF-e)"
        ],
        "summary": "Preset fiscal para loja de suplementos",
        "operationId": "get_fiscal_fiscal_supplements_preset",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/fiscal/apply-supplements-preset": {
      "post": {
        "tags": [
          "Fiscal (NFC-e / NF-e)"
        ],
        "summary": "Aplicar preset loja de suplementos",
        "operationId": "post_fiscal_fiscal_apply_supplements_preset",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/fiscal/footwear-preset": {
      "get": {
        "tags": [
          "Fiscal (NFC-e / NF-e)"
        ],
        "summary": "Preset fiscal para calçados e bolsas",
        "operationId": "get_fiscal_fiscal_footwear_preset",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/fiscal/apply-footwear-preset": {
      "post": {
        "tags": [
          "Fiscal (NFC-e / NF-e)"
        ],
        "summary": "Aplicar preset calçados e bolsas",
        "operationId": "post_fiscal_fiscal_apply_footwear_preset",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/fiscal/cleaning-supplies-preset": {
      "get": {
        "tags": [
          "Fiscal (NFC-e / NF-e)"
        ],
        "summary": "Preset fiscal para produtos de limpeza",
        "operationId": "get_fiscal_fiscal_cleaning_supplies_preset",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/fiscal/apply-cleaning-supplies-preset": {
      "post": {
        "tags": [
          "Fiscal (NFC-e / NF-e)"
        ],
        "summary": "Aplicar preset produtos de limpeza",
        "operationId": "post_fiscal_fiscal_apply_cleaning_supplies_preset",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/fiscal/stationery-preset": {
      "get": {
        "tags": [
          "Fiscal (NFC-e / NF-e)"
        ],
        "summary": "Preset fiscal para papelaria e material escolar",
        "operationId": "get_fiscal_fiscal_stationery_preset",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/fiscal/apply-stationery-preset": {
      "post": {
        "tags": [
          "Fiscal (NFC-e / NF-e)"
        ],
        "summary": "Aplicar preset papelaria e material escolar",
        "operationId": "post_fiscal_fiscal_apply_stationery_preset",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/fiscal/phone-accessories-preset": {
      "get": {
        "tags": [
          "Fiscal (NFC-e / NF-e)"
        ],
        "summary": "Preset fiscal para celulares e acessórios",
        "operationId": "get_fiscal_fiscal_phone_accessories_preset",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/fiscal/apply-phone-accessories-preset": {
      "post": {
        "tags": [
          "Fiscal (NFC-e / NF-e)"
        ],
        "summary": "Aplicar preset celulares e acessórios",
        "operationId": "post_fiscal_fiscal_apply_phone_accessories_preset",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/fiscal/pet-shop-preset": {
      "get": {
        "tags": [
          "Fiscal (NFC-e / NF-e)"
        ],
        "summary": "Preset fiscal para pet shop",
        "operationId": "get_fiscal_fiscal_pet_shop_preset",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/fiscal/apply-pet-shop-preset": {
      "post": {
        "tags": [
          "Fiscal (NFC-e / NF-e)"
        ],
        "summary": "Aplicar preset pet shop",
        "operationId": "post_fiscal_fiscal_apply_pet_shop_preset",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/fiscal/gifts-decor-preset": {
      "get": {
        "tags": [
          "Fiscal (NFC-e / NF-e)"
        ],
        "summary": "Preset fiscal para presentes e decoração",
        "operationId": "get_fiscal_fiscal_gifts_decor_preset",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/fiscal/apply-gifts-decor-preset": {
      "post": {
        "tags": [
          "Fiscal (NFC-e / NF-e)"
        ],
        "summary": "Aplicar preset presentes e decoração",
        "operationId": "post_fiscal_fiscal_apply_gifts_decor_preset",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/fiscal/variety-preset": {
      "get": {
        "tags": [
          "Fiscal (NFC-e / NF-e)"
        ],
        "summary": "Preset fiscal para variedades e bazar",
        "operationId": "get_fiscal_fiscal_variety_preset",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/fiscal/apply-variety-preset": {
      "post": {
        "tags": [
          "Fiscal (NFC-e / NF-e)"
        ],
        "summary": "Aplicar preset variedades e bazar",
        "operationId": "post_fiscal_fiscal_apply_variety_preset",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/fiscal/florist-preset": {
      "get": {
        "tags": [
          "Fiscal (NFC-e / NF-e)"
        ],
        "summary": "Preset fiscal para floricultura",
        "operationId": "get_fiscal_fiscal_florist_preset",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/fiscal/apply-florist-preset": {
      "post": {
        "tags": [
          "Fiscal (NFC-e / NF-e)"
        ],
        "summary": "Aplicar preset floricultura",
        "operationId": "post_fiscal_fiscal_apply_florist_preset",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/fiscal/curtains-preset": {
      "get": {
        "tags": [
          "Fiscal (NFC-e / NF-e)"
        ],
        "summary": "Preset fiscal para cortinas e persianas",
        "operationId": "get_fiscal_fiscal_curtains_preset",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/fiscal/apply-curtains-preset": {
      "post": {
        "tags": [
          "Fiscal (NFC-e / NF-e)"
        ],
        "summary": "Aplicar preset cortinas e persianas",
        "operationId": "post_fiscal_fiscal_apply_curtains_preset",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/fiscal/paint-manufacturer/preset": {
      "get": {
        "tags": [
          "Fiscal (NFC-e / NF-e)"
        ],
        "summary": "Modelo fiscal da fábrica de tintas (categorias e NCM a validar)",
        "operationId": "get_fiscal_fiscal_paint_manufacturer_preset",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/fiscal/paint-manufacturer/status": {
      "get": {
        "tags": [
          "Fiscal (NFC-e / NF-e)"
        ],
        "summary": "Fábrica de tintas: o que há para preencher no cadastro fiscal",
        "operationId": "get_fiscal_fiscal_paint_manufacturer_status",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/fiscal/paint-manufacturer/preset/preview": {
      "post": {
        "tags": [
          "Fiscal (NFC-e / NF-e)"
        ],
        "summary": "Fábrica de tintas: prévia (diff) do modelo fiscal, sem gravar (industrial, suggestStoreOptions opcionais)",
        "operationId": "post_fiscal_fiscal_paint_manufacturer_preset_preview",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/fiscal/paint-manufacturer/preset/apply": {
      "post": {
        "tags": [
          "Fiscal (NFC-e / NF-e)"
        ],
        "summary": "Fábrica de tintas: aplicar/reaplicar o modelo fiscal (confirm=true; preencher vazios ou sobrescrever; industrial e acceptStoreOptions são opt-in)",
        "operationId": "post_fiscal_fiscal_paint_manufacturer_preset_apply",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/fiscal/paint-manufacturer/category-profiles": {
      "get": {
        "tags": [
          "Fiscal (NFC-e / NF-e)"
        ],
        "summary": "Fábrica de tintas: perfil tributário por categoria",
        "operationId": "get_fiscal_fiscal_paint_manufacturer_category_profiles",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/fiscal/paint-manufacturer/category-profiles/{id}": {
      "put": {
        "tags": [
          "Fiscal (NFC-e / NF-e)"
        ],
        "summary": "Fábrica de tintas: salvar/limpar o perfil tributário de uma categoria",
        "operationId": "put_fiscal_fiscal_paint_manufacturer_category_profiles_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/fiscal/paint-manufacturer/review": {
      "get": {
        "tags": [
          "Fiscal (NFC-e / NF-e)"
        ],
        "summary": "Fábrica de tintas: revisar classificação fiscal dos produtos",
        "operationId": "get_fiscal_fiscal_paint_manufacturer_review",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/fiscal/paint-manufacturer/review/fix": {
      "post": {
        "tags": [
          "Fiscal (NFC-e / NF-e)"
        ],
        "summary": "Fábrica de tintas: corrigir pendências em massa (confirm=true)",
        "operationId": "post_fiscal_fiscal_paint_manufacturer_review_fix",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/fiscal/computer-preset": {
      "get": {
        "tags": [
          "Fiscal (NFC-e / NF-e)"
        ],
        "summary": "Preset fiscal para informática",
        "operationId": "get_fiscal_fiscal_computer_preset",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/fiscal/apply-computer-preset": {
      "post": {
        "tags": [
          "Fiscal (NFC-e / NF-e)"
        ],
        "summary": "Aplicar preset informática",
        "operationId": "post_fiscal_fiscal_apply_computer_preset",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/fiscal/bar-preset": {
      "get": {
        "tags": [
          "Fiscal (NFC-e / NF-e)"
        ],
        "summary": "Preset fiscal para bar e chopperia",
        "operationId": "get_fiscal_fiscal_bar_preset",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/fiscal/apply-bar-preset": {
      "post": {
        "tags": [
          "Fiscal (NFC-e / NF-e)"
        ],
        "summary": "Aplicar preset bar e chopperia",
        "operationId": "post_fiscal_fiscal_apply_bar_preset",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/fiscal/auto-parts-preset": {
      "get": {
        "tags": [
          "Fiscal (NFC-e / NF-e)"
        ],
        "summary": "Preset fiscal para autopeças e moto peças",
        "operationId": "get_fiscal_fiscal_auto_parts_preset",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/fiscal/apply-auto-parts-preset": {
      "post": {
        "tags": [
          "Fiscal (NFC-e / NF-e)"
        ],
        "summary": "Aplicar preset autopeças e moto peças",
        "operationId": "post_fiscal_fiscal_apply_auto_parts_preset",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/fiscal/optics-preset": {
      "get": {
        "tags": [
          "Fiscal (NFC-e / NF-e)"
        ],
        "summary": "Preset fiscal para ótica",
        "operationId": "get_fiscal_fiscal_optics_preset",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/fiscal/apply-optics-preset": {
      "post": {
        "tags": [
          "Fiscal (NFC-e / NF-e)"
        ],
        "summary": "Aplicar preset ótica",
        "operationId": "post_fiscal_fiscal_apply_optics_preset",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/fiscal/natural-grocery-preset": {
      "get": {
        "tags": [
          "Fiscal (NFC-e / NF-e)"
        ],
        "summary": "Preset fiscal para produtos naturais e empório",
        "operationId": "get_fiscal_fiscal_natural_grocery_preset",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/fiscal/apply-natural-grocery-preset": {
      "post": {
        "tags": [
          "Fiscal (NFC-e / NF-e)"
        ],
        "summary": "Aplicar preset produtos naturais e empório",
        "operationId": "post_fiscal_fiscal_apply_natural_grocery_preset",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/fiscal/building-materials-preset": {
      "get": {
        "tags": [
          "Fiscal (NFC-e / NF-e)"
        ],
        "summary": "Preset fiscal para material de construção",
        "operationId": "get_fiscal_fiscal_building_materials_preset",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/fiscal/apply-building-materials-preset": {
      "post": {
        "tags": [
          "Fiscal (NFC-e / NF-e)"
        ],
        "summary": "Aplicar preset material de construção",
        "operationId": "post_fiscal_fiscal_apply_building_materials_preset",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/fiscal/sporting-goods-preset": {
      "get": {
        "tags": [
          "Fiscal (NFC-e / NF-e)"
        ],
        "summary": "Preset fiscal para surf, praia e artigos esportivos",
        "operationId": "get_fiscal_fiscal_sporting_goods_preset",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/fiscal/apply-sporting-goods-preset": {
      "post": {
        "tags": [
          "Fiscal (NFC-e / NF-e)"
        ],
        "summary": "Aplicar preset surf e artigos esportivos",
        "operationId": "post_fiscal_fiscal_apply_sporting_goods_preset",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/fiscal/tax-estimate": {
      "get": {
        "tags": [
          "Fiscal (NFC-e / NF-e)"
        ],
        "summary": "Previsão gerencial de impostos (documentos fiscais autorizados)",
        "operationId": "get_fiscal_fiscal_tax_estimate",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal/"
        },
        "parameters": [
          {
            "name": "month",
            "in": "query",
            "required": false,
            "description": "Competência AAAA-MM",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "from",
            "in": "query",
            "required": false,
            "description": "Data inicial (AAAA-MM-DD)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "to",
            "in": "query",
            "required": false,
            "description": "Data final (AAAA-MM-DD)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "includeDocuments",
            "in": "query",
            "required": false,
            "description": "Incluir documentos da base",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/fiscal/tax-estimate/rate": {
      "put": {
        "tags": [
          "Fiscal (NFC-e / NF-e)"
        ],
        "summary": "Definir alíquota estimada e recalcular o histórico de documentos",
        "operationId": "put_fiscal_fiscal_tax_estimate_rate",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/fiscal/simples-nacional": {
      "get": {
        "tags": [
          "Fiscal (NFC-e / NF-e)"
        ],
        "summary": "Status do cálculo automático da alíquota efetiva do Simples (RBT12)",
        "operationId": "get_fiscal_fiscal_simples_nacional",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/fiscal/simples-nacional/mode": {
      "put": {
        "tags": [
          "Fiscal (NFC-e / NF-e)"
        ],
        "summary": "Definir modo manual/automático, anexo e início de atividade",
        "operationId": "put_fiscal_fiscal_simples_nacional_mode",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/fiscal/simples-nacional/history": {
      "get": {
        "tags": [
          "Fiscal (NFC-e / NF-e)"
        ],
        "summary": "Histórico mensal de faturamento (SISTEMA/MANUAL)",
        "operationId": "get_fiscal_fiscal_simples_nacional_history",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "put": {
        "tags": [
          "Fiscal (NFC-e / NF-e)"
        ],
        "summary": "Lançar faturamento anterior (somente competências sem valor de sistema)",
        "operationId": "put_fiscal_fiscal_simples_nacional_history",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/fiscal/simples-nacional/history/{competence}/adjust": {
      "post": {
        "tags": [
          "Fiscal (NFC-e / NF-e)"
        ],
        "summary": "Ajuste explícito de competência gerada pelo sistema (com auditoria)",
        "operationId": "post_fiscal_fiscal_simples_nacional_history_competence_adjust",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal/"
        },
        "parameters": [
          {
            "name": "competence",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/fiscal/simples-nacional/memory": {
      "get": {
        "tags": [
          "Fiscal (NFC-e / NF-e)"
        ],
        "summary": "Memória de cálculo da alíquota efetiva de uma competência",
        "operationId": "get_fiscal_fiscal_simples_nacional_memory",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal/"
        },
        "parameters": [
          {
            "name": "competence",
            "in": "query",
            "required": false,
            "description": "Competência AAAA-MM",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/fiscal/reports/monthly-revenue": {
      "get": {
        "tags": [
          "Fiscal (NFC-e / NF-e)"
        ],
        "summary": "Faturamento mensal",
        "operationId": "get_fiscal_fiscal_reports_monthly_revenue",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal/"
        },
        "parameters": [
          {
            "name": "year",
            "in": "query",
            "required": false,
            "description": "Ano",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/fiscal/reports/sales-book": {
      "get": {
        "tags": [
          "Fiscal (NFC-e / NF-e)"
        ],
        "summary": "Livro de vendas",
        "operationId": "get_fiscal_fiscal_reports_sales_book",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal/"
        },
        "parameters": [
          {
            "name": "from",
            "in": "query",
            "required": false,
            "description": "Data inicial",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "to",
            "in": "query",
            "required": false,
            "description": "Data final",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/fiscal/reports/sales-without-nfce": {
      "get": {
        "tags": [
          "Fiscal (NFC-e / NF-e)"
        ],
        "summary": "Vendas sem documento fiscal de mercadoria",
        "operationId": "get_fiscal_fiscal_reports_sales_without_nfce",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal/"
        },
        "parameters": [
          {
            "name": "from",
            "in": "query",
            "required": false,
            "description": "Data inicial",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "to",
            "in": "query",
            "required": false,
            "description": "Data final",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/fiscal/reports/purchases": {
      "get": {
        "tags": [
          "Fiscal (NFC-e / NF-e)"
        ],
        "summary": "Relatório de compras fiscais",
        "operationId": "get_fiscal_fiscal_reports_purchases",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal/"
        },
        "parameters": [
          {
            "name": "from",
            "in": "query",
            "required": false,
            "description": "Data inicial",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "to",
            "in": "query",
            "required": false,
            "description": "Data final",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/fiscal/reports/xml-zip": {
      "get": {
        "tags": [
          "Fiscal (NFC-e / NF-e)"
        ],
        "summary": "ZIP com XMLs de FiscalDocument da Sale (NFC-e/NF-e) e NF-e de devolução do período",
        "operationId": "get_fiscal_fiscal_reports_xml_zip",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal/"
        },
        "parameters": [
          {
            "name": "from",
            "in": "query",
            "required": false,
            "description": "Data inicial",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "to",
            "in": "query",
            "required": false,
            "description": "Data final",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/fiscal/reports/numbering-gaps": {
      "get": {
        "tags": [
          "Fiscal (NFC-e / NF-e)"
        ],
        "summary": "Lacunas de numeração NFC-e",
        "operationId": "get_fiscal_fiscal_reports_numbering_gaps",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal/"
        },
        "parameters": [
          {
            "name": "series",
            "in": "query",
            "required": false,
            "description": "Série",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/fiscal/reports/efd": {
      "get": {
        "tags": [
          "Fiscal (NFC-e / NF-e)"
        ],
        "summary": "Exportar EFD (até 31 dias)",
        "operationId": "get_fiscal_fiscal_reports_efd",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/fiscal/reports/efd/jobs": {
      "post": {
        "tags": [
          "Fiscal (NFC-e / NF-e)"
        ],
        "summary": "Enfileirar geração do EFD (ICMS/IPI ou Contribuições; perfil, inventário e saldos)",
        "operationId": "post_fiscal_fiscal_reports_efd_jobs",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "get": {
        "tags": [
          "Fiscal (NFC-e / NF-e)"
        ],
        "summary": "Gerações recentes do EFD",
        "operationId": "get_fiscal_fiscal_reports_efd_jobs",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/fiscal/reports/efd/jobs/{id}": {
      "get": {
        "tags": [
          "Fiscal (NFC-e / NF-e)"
        ],
        "summary": "Status da geração do EFD",
        "operationId": "get_fiscal_fiscal_reports_efd_jobs_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/fiscal/reports/efd/jobs/{id}/download": {
      "get": {
        "tags": [
          "Fiscal (NFC-e / NF-e)"
        ],
        "summary": "Baixar arquivo EFD gerado",
        "operationId": "get_fiscal_fiscal_reports_efd_jobs_id_download",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/fiscal/reports/efd/jobs/{id}/validation": {
      "get": {
        "tags": [
          "Fiscal (NFC-e / NF-e)"
        ],
        "summary": "Relatório da validação interna do EFD",
        "operationId": "get_fiscal_fiscal_reports_efd_jobs_id_validation",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/fiscal/reports/efd/jobs/{id}/validation.csv": {
      "get": {
        "tags": [
          "Fiscal (NFC-e / NF-e)"
        ],
        "summary": "Inconsistências do EFD em CSV",
        "operationId": "get_fiscal_fiscal_reports_efd_jobs_id_validation_csv",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/fiscal/sped/prerequisites": {
      "get": {
        "tags": [
          "Fiscal (NFC-e / NF-e)"
        ],
        "summary": "Checklist de pré-requisitos do SPED do período",
        "operationId": "get_fiscal_fiscal_sped_prerequisites",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/fiscal/sped/config": {
      "get": {
        "tags": [
          "Fiscal (NFC-e / NF-e)"
        ],
        "summary": "Configuração do SPED (perfil, contador, receitas)",
        "operationId": "get_fiscal_fiscal_sped_config",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "put": {
        "tags": [
          "Fiscal (NFC-e / NF-e)"
        ],
        "summary": "Salvar configuração do SPED",
        "operationId": "put_fiscal_fiscal_sped_config",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/fiscal/sped/adjustments": {
      "get": {
        "tags": [
          "Fiscal (NFC-e / NF-e)"
        ],
        "summary": "Ajustes de apuração do SPED",
        "operationId": "get_fiscal_fiscal_sped_adjustments",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "post": {
        "tags": [
          "Fiscal (NFC-e / NF-e)"
        ],
        "summary": "Lançar ajuste de apuração (E111/E220/E530/C197)",
        "operationId": "post_fiscal_fiscal_sped_adjustments",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/fiscal/sped/adjustments/{id}": {
      "delete": {
        "tags": [
          "Fiscal (NFC-e / NF-e)"
        ],
        "summary": "Remover ajuste de apuração",
        "operationId": "delete_fiscal_fiscal_sped_adjustments_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/fiscal/certificate/validate": {
      "post": {
        "tags": [
          "Fiscal (NFC-e / NF-e)"
        ],
        "summary": "Validar certificado digital",
        "operationId": "post_fiscal_fiscal_certificate_validate",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/fiscal/certificate/history": {
      "get": {
        "tags": [
          "Fiscal (NFC-e / NF-e)"
        ],
        "summary": "Histórico do certificado",
        "operationId": "get_fiscal_fiscal_certificate_history",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/fiscal/certificate/secret": {
      "get": {
        "tags": [
          "Fiscal (NFC-e / NF-e)"
        ],
        "summary": "Senha do certificado (somente suporte Nive)",
        "operationId": "get_fiscal_fiscal_certificate_secret",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "x-sensitive": true
      }
    },
    "/fiscal/certificate/download": {
      "get": {
        "tags": [
          "Fiscal (NFC-e / NF-e)"
        ],
        "summary": "Download do certificado A1 (somente suporte Nive)",
        "operationId": "get_fiscal_fiscal_certificate_download",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "x-sensitive": true
      }
    },
    "/fiscal/homologation-readiness": {
      "get": {
        "tags": [
          "Fiscal (NFC-e / NF-e)"
        ],
        "summary": "Prontidão para homologação",
        "operationId": "get_fiscal_fiscal_homologation_readiness",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/fiscal/observability": {
      "get": {
        "tags": [
          "Fiscal (NFC-e / NF-e)"
        ],
        "summary": "Observabilidade fiscal",
        "operationId": "get_fiscal_fiscal_observability",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/fiscal/homologation/xml-test": {
      "post": {
        "tags": [
          "Fiscal (NFC-e / NF-e)"
        ],
        "summary": "Teste de XML (homologação)",
        "operationId": "post_fiscal_fiscal_homologation_xml_test",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/fiscal/homologation/emission-test": {
      "post": {
        "tags": [
          "Fiscal (NFC-e / NF-e)"
        ],
        "summary": "Teste de emissão (homologação)",
        "operationId": "post_fiscal_fiscal_homologation_emission_test",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/fiscal/health/audit": {
      "post": {
        "tags": [
          "Fiscal (NFC-e / NF-e)"
        ],
        "summary": "Analisar tributação do produto (IA, com confirmação)",
        "operationId": "post_fiscal_fiscal_health_audit",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/fiscal/health/audit-batch": {
      "post": {
        "tags": [
          "Fiscal (NFC-e / NF-e)"
        ],
        "summary": "Auditar fiscal em lote (IA)",
        "operationId": "post_fiscal_fiscal_health_audit_batch",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/fiscal/health/audit-all": {
      "post": {
        "tags": [
          "Fiscal (NFC-e / NF-e)"
        ],
        "summary": "Auditar todo o cadastro fiscal (IA)",
        "operationId": "post_fiscal_fiscal_health_audit_all",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/fiscal/health/bulk-ncm-unknown/preview": {
      "post": {
        "tags": [
          "Fiscal (NFC-e / NF-e)"
        ],
        "summary": "Prévia: NCM desconhecido em lote",
        "operationId": "post_fiscal_fiscal_health_bulk_ncm_unknown_preview",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/fiscal/health/bulk-ncm-unknown/apply": {
      "post": {
        "tags": [
          "Fiscal (NFC-e / NF-e)"
        ],
        "summary": "Aplicar NCM desconhecido em lote",
        "operationId": "post_fiscal_fiscal_health_bulk_ncm_unknown_apply",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/fiscal/health/bulk-no-ibpt/preview": {
      "post": {
        "tags": [
          "Fiscal (NFC-e / NF-e)"
        ],
        "summary": "Prévia: sem IBPT em lote",
        "operationId": "post_fiscal_fiscal_health_bulk_no_ibpt_preview",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/fiscal/health/bulk-no-ibpt/apply": {
      "post": {
        "tags": [
          "Fiscal (NFC-e / NF-e)"
        ],
        "summary": "Aplicar correção sem IBPT em lote",
        "operationId": "post_fiscal_fiscal_health_bulk_no_ibpt_apply",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/fiscal/health/ncm-review": {
      "get": {
        "tags": [
          "Fiscal (NFC-e / NF-e)"
        ],
        "summary": "Revisão de NCM",
        "operationId": "get_fiscal_fiscal_health_ncm_review",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/fiscal/health/entry-ncm-alerts": {
      "get": {
        "tags": [
          "Fiscal (NFC-e / NF-e)"
        ],
        "summary": "NCMs recusados em nota de entrada",
        "operationId": "get_fiscal_fiscal_health_entry_ncm_alerts",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/fiscal/health/ncm-review/confirm": {
      "post": {
        "tags": [
          "Fiscal (NFC-e / NF-e)"
        ],
        "summary": "Confirmar revisão de NCM",
        "operationId": "post_fiscal_fiscal_health_ncm_review_confirm",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/fiscal/health/ncm-review/confirm-recognized": {
      "post": {
        "tags": [
          "Fiscal (NFC-e / NF-e)"
        ],
        "summary": "Confirmar NCMs reconhecidos",
        "operationId": "post_fiscal_fiscal_health_ncm_review_confirm_recognized",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/fiscal/health/ncm-review/suggest": {
      "post": {
        "tags": [
          "Fiscal (NFC-e / NF-e)"
        ],
        "summary": "Sugerir NCM (IA)",
        "operationId": "post_fiscal_fiscal_health_ncm_review_suggest",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/fiscal/health/ncm-review/describe": {
      "post": {
        "tags": [
          "Fiscal (NFC-e / NF-e)"
        ],
        "summary": "Descrever NCMs (IA)",
        "operationId": "post_fiscal_fiscal_health_ncm_review_describe",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/fiscal/health/ncm-review/apply": {
      "post": {
        "tags": [
          "Fiscal (NFC-e / NF-e)"
        ],
        "summary": "Aplicar",
        "operationId": "post_fiscal_fiscal_health_ncm_review_apply",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/fiscal/gtin-health": {
      "get": {
        "tags": [
          "Fiscal (NFC-e / NF-e)"
        ],
        "summary": "Saúde de GTINs",
        "operationId": "get_fiscal_fiscal_gtin_health",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/fiscal/documents/{id}/receipt-html": {
      "get": {
        "tags": [
          "Fiscal (NFC-e / NF-e)"
        ],
        "summary": "Cupom HTML 80 mm (NFC-e modelo 65)",
        "operationId": "get_fiscal_fiscal_documents_id_receipt_html",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/fiscal/documents/{id}/danfe-html": {
      "get": {
        "tags": [
          "Fiscal (NFC-e / NF-e)"
        ],
        "summary": "DANFE HTML A4 (NFC-e 65 simplificado ou NF-e 55 completo conforme model)",
        "operationId": "get_fiscal_fiscal_documents_id_danfe_html",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/fiscal/documents/{id}/xml": {
      "get": {
        "tags": [
          "Fiscal (NFC-e / NF-e)"
        ],
        "summary": "Baixar XML",
        "operationId": "get_fiscal_fiscal_documents_id_xml",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/fiscal/documents/{id}/send-xml": {
      "post": {
        "tags": [
          "Fiscal (NFC-e / NF-e)"
        ],
        "summary": "Enviar XML e PDF por e-mail",
        "operationId": "post_fiscal_fiscal_documents_id_send_xml",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/fiscal/documents/emit-batch": {
      "post": {
        "tags": [
          "Fiscal (NFC-e / NF-e)"
        ],
        "summary": "Enfileirar emissão de documentos de mercadoria em lote",
        "operationId": "post_fiscal_fiscal_documents_emit_batch",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/fiscal/documents/retroactive-readiness/{saleId}": {
      "get": {
        "tags": [
          "Fiscal (NFC-e / NF-e)"
        ],
        "summary": "Prontidão para emissão retroativa",
        "operationId": "get_fiscal_fiscal_documents_retroactive_readiness_saleId",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal/"
        },
        "parameters": [
          {
            "name": "saleId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/fiscal/documents/emit-retroactive/{saleId}": {
      "post": {
        "tags": [
          "Fiscal (NFC-e / NF-e)"
        ],
        "summary": "Emitir documento fiscal retroativo (NFC-e; contingência quando aplicável)",
        "operationId": "post_fiscal_fiscal_documents_emit_retroactive_saleId",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal/"
        },
        "parameters": [
          {
            "name": "saleId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/fiscal/audit/verify": {
      "get": {
        "tags": [
          "Fiscal (NFC-e / NF-e)"
        ],
        "summary": "Verificar auditoria fiscal",
        "operationId": "get_fiscal_fiscal_audit_verify",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/fiscal/audit/logs": {
      "get": {
        "tags": [
          "Fiscal (NFC-e / NF-e)"
        ],
        "summary": "Logs de auditoria fiscal",
        "operationId": "get_fiscal_fiscal_audit_logs",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/fiscal/products/{id}/confirm-st-suggestion": {
      "post": {
        "tags": [
          "Fiscal (NFC-e / NF-e)"
        ],
        "summary": "Confirmar sugestão de ICMS-ST no produto",
        "operationId": "post_fiscal_fiscal_products_id_confirm_st_suggestion",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/fiscal/documents/{id}/numbering-recovery": {
      "get": {
        "tags": [
          "Fiscal (NFC-e / NF-e)"
        ],
        "summary": "Opções para reemitir nota rejeitada por numeração já usada (539/206)",
        "operationId": "get_fiscal_fiscal_documents_id_numbering_recovery",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "post": {
        "tags": [
          "Fiscal (NFC-e / NF-e)"
        ],
        "summary": "Reemitir em outra série/número",
        "operationId": "post_fiscal_fiscal_documents_id_numbering_recovery",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "series"
                ],
                "properties": {
                  "series": {
                    "type": "integer",
                    "description": "Série (1–889)"
                  },
                  "number": {
                    "type": "integer",
                    "description": "Número (vazio = próximo livre)"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/fiscal/documents/{id}/numbering-recovery/adopt": {
      "post": {
        "tags": [
          "Fiscal (NFC-e / NF-e)"
        ],
        "summary": "Rejeição 539 de tentativa desta venda: consultar na SEFAZ e vincular a nota autorizada",
        "operationId": "post_fiscal_fiscal_documents_id_numbering_recovery_adopt",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/fiscal/nfce-accreditation/request": {
      "post": {
        "tags": [
          "Fiscal (NFC-e / NF-e)"
        ],
        "summary": "Solicitar à Nive o credenciamento para NFC-e (exige certificado A1 e senha salvos)",
        "operationId": "post_fiscal_fiscal_nfce_accreditation_request",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/fiscal/sync-nfe-mod55-counters": {
      "post": {
        "tags": [
          "Fiscal (NFC-e / NF-e)"
        ],
        "summary": "Realinhar a numeração da NF-e modelo 55 ao maior número já gravado",
        "operationId": "post_fiscal_fiscal_sync_nfe_mod55_counters",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/accounting-xml/settings": {
      "get": {
        "tags": [
          "Fiscal (NFC-e / NF-e)"
        ],
        "summary": "Envio automático de XMLs para a contabilidade — configuração",
        "operationId": "get_fiscal_accounting_xml_settings",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "put": {
        "tags": [
          "Fiscal (NFC-e / NF-e)"
        ],
        "summary": "Configurar envio automático mensal",
        "operationId": "put_fiscal_accounting_xml_settings",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [],
                "properties": {
                  "enabled": {
                    "type": "boolean",
                    "description": "Ligado"
                  },
                  "accountingEmail": {
                    "type": "string",
                    "description": "E-mail da contabilidade"
                  },
                  "scheduledDay": {
                    "type": "integer",
                    "description": "Dia do mês (1–31, padrão 1)"
                  },
                  "scheduledHour": {
                    "type": "integer",
                    "description": "Hora (0–23, padrão 6)"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/accounting-xml/jobs": {
      "get": {
        "tags": [
          "Fiscal (NFC-e / NF-e)"
        ],
        "summary": "Histórico de envios para a contabilidade",
        "operationId": "get_fiscal_accounting_xml_jobs",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal/"
        },
        "parameters": [
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Padrão 50",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "post": {
        "tags": [
          "Fiscal (NFC-e / NF-e)"
        ],
        "summary": "Enfileirar envio manual de uma competência",
        "operationId": "post_fiscal_accounting_xml_jobs",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "201 Created"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [],
                "properties": {
                  "periodMonth": {
                    "type": "string",
                    "description": "Competência AAAA-MM (vazio = mês anterior)"
                  },
                  "recipientEmail": {
                    "type": "string",
                    "description": "E-mail (vazio = da configuração)"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/fiscal/contingency/nfe": {
      "get": {
        "tags": [
          "Fiscal (NFC-e / NF-e)"
        ],
        "summary": "NF-e modelo 55 (venda e operações fiscais) em contingência EPEC/SVC aguardando transmissão",
        "operationId": "get_fiscal_fiscal_contingency_nfe",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Lista de { kind (SALE | OPERATION), id, series, number, tpEmis, modeLabel (EPEC | SVC-AN | SVC-RS), accessKey, contingencyReason, contingencyAt, epecProtocol, epecAt, deadlineAt, hoursLeft, deadlineExpired, lastError, title, subtitle }. O prazo legal de 168 h vale só para EPEC. A NFC-e (modelo 65) fica em /contingency/pending."
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/fiscal/contingency/nfe/{kind}/{id}/transmit": {
      "post": {
        "tags": [
          "Fiscal (NFC-e / NF-e)"
        ],
        "summary": "Transmitir agora uma NF-e 55 em contingência (kind = SALE para venda ou OPERATION para operação fiscal)",
        "operationId": "post_fiscal_fiscal_contingency_nfe_kind_id_transmit",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal/"
        },
        "parameters": [
          {
            "name": "kind",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "{ kind, id, status, accessKey, rejectionMsg }. 400 se kind for inválido; 409 se o documento não está mais em contingência ou já está sendo transmitido; 503 se a SEFAZ ainda não aceitou (o documento continua na fila e é reenviado automaticamente)."
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "x-sensitive": true
      }
    },
    "/fiscal/documents/{id}/share": {
      "get": {
        "tags": [
          "Fiscal (NFC-e / NF-e)"
        ],
        "summary": "Dados para enviar a NFC-e digital ao cliente (quando a impressora não responde): link assinado do PDF e contatos do cliente da venda",
        "operationId": "get_fiscal_fiscal_documents_id_share",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "{ documentId, number, storeName, shareUrl, customerName, customerPhone, customerEmail }. O link vale 30 dias e abre sem login. 400 se o documento não está autorizado nem em contingência; 404 se não existe."
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/fiscal/issuer-completion/preview": {
      "post": {
        "tags": [
          "Fiscal (NFC-e / NF-e)"
        ],
        "summary": "Comparar o cadastro do emitente com a Receita Federal e o cadastro estadual do CNPJ do certificado; não grava nada",
        "operationId": "post_fiscal_fiscal_issuer_completion_preview",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "{ status: \"ready\", cnpj, fields (valor atual x oficial de cada campo), stateRegistrations, ieChoices, crt (apenas sugestão), cnae (oficiais e sugestão) }. Sem certificado A1, com certificado vencido ou com CNPJ divergente do cadastro devolve status \"blocked\" ou \"conflict\" com message. 502 se a consulta oficial falhar."
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/fiscal/issuer-completion/apply": {
      "post": {
        "tags": [
          "Fiscal (NFC-e / NF-e)"
        ],
        "summary": "Gravar no emitente só os campos aceitos no comparativo (o valor gravado vem da consulta oficial, nunca do corpo da requisição)",
        "operationId": "post_fiscal_fiscal_issuer_completion_apply",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "{ applied, cnaeApplied, readiness }. O CRT nunca é alterado por este endpoint. 400/409 se o certificado ou o CNPJ não permitem; 502 se a consulta oficial falhar."
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "x-sensitive": true,
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "fields"
                ],
                "properties": {
                  "fields": {
                    "type": "string",
                    "description": "Campos aceitos: cnpj, legalName, addressLine1, addressNumber, addressDistrict, zipCode, city, state, ibgeCityCode, stateRegistration"
                  },
                  "stateRegistration": {
                    "type": "string",
                    "description": "Inscrição estadual escolhida quando há mais de uma ativa (até 30 caracteres)"
                  },
                  "cnae": {
                    "type": "string",
                    "description": "CNAE a gravar, entre os oficiais do CNPJ (até 10 caracteres)"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/fiscal/nfce-accreditation/complete": {
      "post": {
        "tags": [
          "Fiscal (NFC-e / NF-e)"
        ],
        "summary": "Marcar (ou remover) a autorização de emissão NFC-e da loja após o credenciamento (somente suporte Nive)",
        "operationId": "post_fiscal_fiscal_nfce_accreditation_complete",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "x-sensitive": true,
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [],
                "properties": {
                  "authorized": {
                    "type": "boolean",
                    "description": "true autoriza (padrão); false remove a autorização"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/nfse/readiness": {
      "get": {
        "tags": [
          "Fiscal (NFS-e)"
        ],
        "summary": "Prontidão para emissão (certificado, IM, IBGE, etc.)",
        "operationId": "get_nfse_nfse_readiness",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/nfse/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/nfse/emit-prep": {
      "get": {
        "tags": [
          "Fiscal (NFS-e)"
        ],
        "summary": "Pendências para emitir NFS-e de uma OS",
        "operationId": "get_nfse_nfse_emit_prep",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/nfse/"
        },
        "parameters": [
          {
            "name": "serviceOrderId",
            "in": "query",
            "required": true,
            "description": "ID da ordem de serviço",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "tomadorKind",
            "in": "query",
            "required": false,
            "description": "PF | PJ | EXTERIOR | UNIDENTIFIED — UNIDENTIFIED não exige CPF/CNPJ do cliente da OS",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Checklist estruturado da loja/OS/cliente"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/nfse": {
      "get": {
        "tags": [
          "Fiscal (NFS-e)"
        ],
        "summary": "Listar NFS-e",
        "operationId": "get_nfse_nfse",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/nfse/"
        },
        "parameters": [
          {
            "name": "status",
            "in": "query",
            "required": false,
            "description": "DRAFT | PENDING | AUTHORIZED | REJECTED | CANCELLED | MANUAL",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "serviceOrderId",
            "in": "query",
            "required": false,
            "description": "Filtrar por OS",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "receivableId",
            "in": "query",
            "required": false,
            "description": "Filtrar por conta a receber",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "page",
            "in": "query",
            "required": false,
            "description": "Página (default 1)",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "required": false,
            "description": "Itens por página (max 100)",
            "schema": {
              "type": "number"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "{ items, total, page, pageSize }"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/nfse/{id}": {
      "get": {
        "tags": [
          "Fiscal (NFS-e)"
        ],
        "summary": "Detalhe da NFS-e",
        "operationId": "get_nfse_nfse_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/nfse/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/nfse/{id}/xml": {
      "get": {
        "tags": [
          "Fiscal (NFS-e)"
        ],
        "summary": "Baixar XML da NFS-e autorizada",
        "operationId": "get_nfse_nfse_id_xml",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/nfse/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/nfse/emit": {
      "post": {
        "tags": [
          "Fiscal (NFS-e)"
        ],
        "summary": "Emitir NFS-e a partir de OS concluída/faturada ou de venda do PDV",
        "operationId": "post_nfse_nfse_emit",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/nfse/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "201 — documento fiscal (status PENDING/AUTHORIZED/DRAFT)"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [],
                "properties": {
                  "serviceOrderId": {
                    "type": "string",
                    "format": "uuid",
                    "description": "ID da ordem de serviço (ou receivableId / saleId)"
                  },
                  "saleId": {
                    "type": "string",
                    "format": "uuid",
                    "description": "ID da venda do PDV com itens de serviço — vincula também a OS se a venda veio de to-sale"
                  },
                  "receivableId": {
                    "type": "string",
                    "format": "uuid",
                    "description": "ID da conta a receber vinculada à OS"
                  },
                  "notes": {
                    "type": "string",
                    "description": "Observações internas"
                  },
                  "tomadorKind": {
                    "type": "string",
                    "description": "PF | PJ | EXTERIOR | UNIDENTIFIED — UNIDENTIFIED omite o tomador na DPS"
                  },
                  "dryRun": {
                    "type": "boolean",
                    "description": "true = gera DPS assinada sem enviar à Receita"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/nfse/emit-direct": {
      "post": {
        "tags": [
          "Fiscal (NFS-e)"
        ],
        "summary": "Emitir NFS-e autônoma (sem OS) — ideal para outro sistema",
        "operationId": "post_nfse_nfse_emit_direct",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/nfse/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "201 — documento fiscal sem serviceOrderId"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "servico",
                  "valores"
                ],
                "properties": {
                  "tomadorKind": {
                    "type": "string",
                    "description": "PF | PJ | EXTERIOR | UNIDENTIFIED — com UNIDENTIFIED não envie tomador"
                  },
                  "tomador": {
                    "type": "object",
                    "description": "{ name, taxId, taxIdType?, email?, phone?, endereço? } — omitir se tomadorKind=UNIDENTIFIED"
                  },
                  "servico": {
                    "type": "object",
                    "description": "{ cTribNac, descricao, cNBS?, codMunicipioPrestacao? }"
                  },
                  "valores": {
                    "type": "object",
                    "description": "{ vServ, aliqIss?, issRetained? }"
                  },
                  "externalReference": {
                    "type": "string",
                    "description": "Referência do sistema externo (salva em notes)"
                  },
                  "notes": {
                    "type": "string",
                    "description": "Observações"
                  },
                  "dryRun": {
                    "type": "boolean",
                    "description": "true = não envia à Receita"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/nfse/emit-with-order": {
      "post": {
        "tags": [
          "Fiscal (NFS-e)"
        ],
        "summary": "Fluxo completo: cria/localiza cliente + OS concluída + emite NFS-e",
        "operationId": "post_nfse_nfse_emit_with_order",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/nfse/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "201 — { serviceOrderId, document }"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "customer",
                  "items"
                ],
                "properties": {
                  "tomadorKind": {
                    "type": "string",
                    "description": "PF | PJ | EXTERIOR | UNIDENTIFIED — UNIDENTIFIED omite o tomador na DPS"
                  },
                  "customer": {
                    "type": "object",
                    "description": "{ customerId } OU { name, taxId, email?, phone?, zipCode?, addressLine1?, addressNumber?, addressDistrict?, city?, state?, createIfMissing? }"
                  },
                  "items": {
                    "type": "array",
                    "items": {},
                    "description": "[{ variantId, quantity, unitPrice? }] — variantes de produtos tipo SERVICE"
                  },
                  "description": {
                    "type": "string",
                    "description": "Descrição da OS"
                  },
                  "notes": {
                    "type": "string",
                    "description": "Observações"
                  },
                  "dryRun": {
                    "type": "boolean",
                    "description": "true = não envia à Receita"
                  },
                  "createReceivable": {
                    "type": "boolean",
                    "description": "Gerar conta a receber (respeita config da loja)"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/nfse/manual": {
      "post": {
        "tags": [
          "Fiscal (NFS-e)"
        ],
        "summary": "Registrar NFS-e emitida fora do sistema",
        "operationId": "post_nfse_nfse_manual",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/nfse/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [],
                "properties": {
                  "serviceOrderId": {
                    "type": "string",
                    "format": "uuid",
                    "description": "OS vinculada (ou receivableId)"
                  },
                  "receivableId": {
                    "type": "string",
                    "format": "uuid",
                    "description": "Conta a receber vinculada"
                  },
                  "number": {
                    "type": "number",
                    "description": "Número da nota"
                  },
                  "series": {
                    "type": "string",
                    "description": "Série"
                  },
                  "verificationCode": {
                    "type": "string",
                    "description": "Código de verificação"
                  },
                  "xmlContent": {
                    "type": "string",
                    "description": "XML da nota"
                  },
                  "pdfStorageKey": {
                    "type": "string",
                    "description": "Chave de armazenamento do PDF"
                  },
                  "issuedAt": {
                    "type": "string",
                    "description": "Data/hora de emissão (ISO)"
                  },
                  "notes": {
                    "type": "string",
                    "description": "Observações"
                  },
                  "status": {
                    "type": "string",
                    "description": "MANUAL | AUTHORIZED"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/nfse/{id}/retry": {
      "post": {
        "tags": [
          "Fiscal (NFS-e)"
        ],
        "summary": "Reenviar NFS-e rejeitada/pendente (somente com OS vinculada)",
        "operationId": "post_nfse_nfse_id_retry",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/nfse/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/nfse/{id}/cancel": {
      "post": {
        "tags": [
          "Fiscal (NFS-e)"
        ],
        "summary": "Cancelar NFS-e autorizada",
        "operationId": "post_nfse_nfse_id_cancel",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/nfse/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [],
                "properties": {
                  "reason": {
                    "type": "string",
                    "description": "Justificativa"
                  },
                  "reasonCode": {
                    "type": "string",
                    "description": "1=erro emissão | 2=serviço não prestado | 9=outros"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/nfse/{id}/danfse": {
      "get": {
        "tags": [
          "Fiscal (NFS-e)"
        ],
        "summary": "PDF do DANFSe (application/pdf)",
        "operationId": "get_nfse_nfse_id_danfse",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/nfse/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/nfse/{id}/danfse-preview": {
      "get": {
        "tags": [
          "Fiscal (NFS-e)"
        ],
        "summary": "Prévia do DANFSe",
        "operationId": "get_nfse_nfse_id_danfse_preview",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/nfse/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/nfse/{id}/consulta-publica": {
      "get": {
        "tags": [
          "Fiscal (NFS-e)"
        ],
        "summary": "URL oficial de consulta pública (portal nacional)",
        "operationId": "get_nfse_nfse_id_consulta_publica",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/nfse/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/nfse/{id}/logs": {
      "get": {
        "tags": [
          "Fiscal (NFS-e)"
        ],
        "summary": "Histórico de eventos da NFS-e",
        "operationId": "get_nfse_nfse_id_logs",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/nfse/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/nfse/{id}/consultar": {
      "post": {
        "tags": [
          "Fiscal (NFS-e)"
        ],
        "summary": "Consultar a situação na prefeitura/portal e atualizar",
        "operationId": "post_nfse_nfse_id_consultar",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/nfse/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/nfse/{id}/send-email": {
      "post": {
        "tags": [
          "Fiscal (NFS-e)"
        ],
        "summary": "Enviar a NFS-e por e-mail",
        "operationId": "post_nfse_nfse_id_send_email",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/nfse/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "email"
                ],
                "properties": {
                  "email": {
                    "type": "string",
                    "description": "E-mail"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/nfse/{id}/substituir": {
      "post": {
        "tags": [
          "Fiscal (NFS-e)"
        ],
        "summary": "Emitir NFS-e substituta",
        "operationId": "post_nfse_nfse_id_substituir",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/nfse/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "201 Created"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [],
                "properties": {
                  "reasonCode": {
                    "type": "string",
                    "description": "01, 02, 03, 04, 05 ou 99"
                  },
                  "reason": {
                    "type": "string",
                    "description": "Motivo"
                  },
                  "tomadorKind": {
                    "type": "string",
                    "description": "Tipo de tomador"
                  },
                  "competenceDate": {
                    "type": "string",
                    "description": "Competência"
                  },
                  "notes": {
                    "type": "string",
                    "description": "Observações"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/nfse/reports/xml-zip": {
      "get": {
        "tags": [
          "Fiscal (NFS-e)"
        ],
        "summary": "ZIP com os XMLs das NFS-e do período",
        "operationId": "get_nfse_nfse_reports_xml_zip",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/nfse/"
        },
        "parameters": [
          {
            "name": "from",
            "in": "query",
            "required": true,
            "description": "Data inicial",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "to",
            "in": "query",
            "required": true,
            "description": "Data final",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/nfse/op-simp-nac": {
      "post": {
        "tags": [
          "Fiscal (NFS-e)"
        ],
        "summary": "Corrigir a situação da loja no Simples Nacional da NFS-e (erro E0160) e, se pedido, reenviar a nota rejeitada",
        "operationId": "post_nfse_nfse_op_simp_nac",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/nfse/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "{ ok: true, value, retried } (retried é a NFS-e reenviada ou null). NAO_OPTANTE também ajusta o CRT da loja para 3; os demais valores tiram o CRT 3."
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "x-sensitive": true,
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "value"
                ],
                "properties": {
                  "value": {
                    "type": "string",
                    "description": "NAO_OPTANTE | MEI | ME_EPP"
                  },
                  "retryId": {
                    "type": "string",
                    "description": "Id da NFS-e rejeitada a reenviar logo após a correção"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/nfse/standalone-migration": {
      "get": {
        "tags": [
          "Fiscal (NFS-e)"
        ],
        "summary": "Quantas NFS-e da tela antiga (sem venda/OS) ainda aguardam migração para vendas",
        "operationId": "get_nfse_nfse_standalone_migration",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/nfse/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "{ pending }"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "post": {
        "tags": [
          "Fiscal (NFS-e)"
        ],
        "summary": "Converter as NFS-e avulsas em vendas com a nota anexada",
        "operationId": "post_nfse_nfse_standalone_migration",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/nfse/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "{ dryRun, pending, migrated, skipped, items: [{ documentId, number, status, outcome (migrated | skipped), saleId, reason }] }"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "x-sensitive": true,
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [],
                "properties": {
                  "dryRun": {
                    "type": "boolean",
                    "description": "true só simula, sem gravar"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/fiscal-ncm": {
      "get": {
        "tags": [
          "Cadastro NCM"
        ],
        "summary": "Listar NCM",
        "operationId": "get_fiscal-ncm_fiscal_ncm",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal-ncm/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "post": {
        "tags": [
          "Cadastro NCM"
        ],
        "summary": "Criar NCM",
        "operationId": "post_fiscal-ncm_fiscal_ncm",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal-ncm/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "201 Created"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "code"
                ],
                "properties": {
                  "code": {
                    "type": "string",
                    "description": "Código NCM (8 dígitos)"
                  },
                  "description": {
                    "type": "string",
                    "description": "Descrição"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/fiscal-ncm/{id}": {
      "patch": {
        "tags": [
          "Cadastro NCM"
        ],
        "summary": "Atualizar NCM",
        "operationId": "patch_fiscal-ncm_fiscal_ncm_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal-ncm/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "code"
                ],
                "properties": {
                  "code": {
                    "type": "string",
                    "description": "Código NCM (8 dígitos)"
                  },
                  "description": {
                    "type": "string",
                    "description": "Descrição"
                  }
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Cadastro NCM"
        ],
        "summary": "Excluir NCM",
        "operationId": "delete_fiscal-ncm_fiscal_ncm_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal-ncm/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "204 No Content"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/fiscal-cest": {
      "get": {
        "tags": [
          "Cadastro CEST"
        ],
        "summary": "Listar CEST",
        "operationId": "get_fiscal-cest_fiscal_cest",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal-cest/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "post": {
        "tags": [
          "Cadastro CEST"
        ],
        "summary": "Criar CEST",
        "operationId": "post_fiscal-cest_fiscal_cest",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal-cest/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "201 Created"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "code"
                ],
                "properties": {
                  "code": {
                    "type": "string",
                    "description": "Código CEST"
                  },
                  "description": {
                    "type": "string",
                    "description": "Descrição"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/fiscal-cest/{id}": {
      "patch": {
        "tags": [
          "Cadastro CEST"
        ],
        "summary": "Atualizar CEST",
        "operationId": "patch_fiscal-cest_fiscal_cest_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal-cest/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "code"
                ],
                "properties": {
                  "code": {
                    "type": "string",
                    "description": "Código CEST"
                  },
                  "description": {
                    "type": "string",
                    "description": "Descrição"
                  }
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Cadastro CEST"
        ],
        "summary": "Excluir CEST",
        "operationId": "delete_fiscal-cest_fiscal_cest_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal-cest/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "204 No Content"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/ibpt": {
      "get": {
        "tags": [
          "Tabela IBPT"
        ],
        "summary": "Listar entradas IBPT",
        "operationId": "get_ibpt_ibpt",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/ibpt/"
        },
        "parameters": [
          {
            "name": "q",
            "in": "query",
            "required": false,
            "description": "Busca por NCM",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "post": {
        "tags": [
          "Tabela IBPT"
        ],
        "summary": "Criar entrada IBPT",
        "operationId": "post_ibpt_ibpt",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/ibpt/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "ncm"
                ],
                "properties": {
                  "ncm": {
                    "type": "string",
                    "description": "NCM"
                  },
                  "description": {
                    "type": "string",
                    "description": "Descrição"
                  },
                  "federal": {
                    "type": "number",
                    "description": "Alíquota federal %"
                  },
                  "state": {
                    "type": "number",
                    "description": "Alíquota estadual %"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/ibpt/{id}": {
      "patch": {
        "tags": [
          "Tabela IBPT"
        ],
        "summary": "Atualizar entrada",
        "operationId": "patch_ibpt_ibpt_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/ibpt/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [],
                "properties": {
                  "federal": {
                    "type": "number",
                    "description": "Alíquotas"
                  }
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Tabela IBPT"
        ],
        "summary": "Excluir entrada",
        "operationId": "delete_ibpt_ibpt_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/ibpt/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "204 No Content"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/ibpt/import": {
      "post": {
        "tags": [
          "Tabela IBPT"
        ],
        "summary": "Importar tabela IBPT (CSV)",
        "operationId": "post_ibpt_ibpt_import",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/ibpt/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "csv"
                ],
                "properties": {
                  "csv": {
                    "type": "string",
                    "description": "Conteúdo CSV"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/ibpt/import-official": {
      "post": {
        "tags": [
          "Tabela IBPT"
        ],
        "summary": "Enfileirar importação da tabela IBPT oficial",
        "operationId": "post_ibpt_ibpt_import_official",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/ibpt/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "202 — job enfileirado (status PENDING). Acompanhe em GET /ibpt/import-jobs"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [],
                "properties": {
                  "uf": {
                    "type": "string",
                    "description": "UF (opcional; padrão: UF da loja)"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/ibpt/import-jobs": {
      "get": {
        "tags": [
          "Tabela IBPT"
        ],
        "summary": "Listar jobs de importação IBPT da loja",
        "operationId": "get_ibpt_ibpt_import_jobs",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/ibpt/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/ibpt/import-jobs/{id}": {
      "get": {
        "tags": [
          "Tabela IBPT"
        ],
        "summary": "Detalhe de um job de importação IBPT",
        "operationId": "get_ibpt_ibpt_import_jobs_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/ibpt/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "delete": {
        "tags": [
          "Tabela IBPT"
        ],
        "summary": "Remover uma importação IBPT com falha",
        "operationId": "delete_ibpt_ibpt_import_jobs_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/ibpt/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "204 — só jobs com status FAILED"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/ibpt/import-jobs/failed": {
      "delete": {
        "tags": [
          "Tabela IBPT"
        ],
        "summary": "Remover todas as importações IBPT com falha",
        "operationId": "delete_ibpt_ibpt_import_jobs_failed",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/ibpt/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "200 — { deleted: number }"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/tax-rules": {
      "get": {
        "tags": [
          "Regras tributárias"
        ],
        "summary": "Listar regras tributárias (por NCM)",
        "operationId": "get_tax-rules_tax_rules",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/tax-rules/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "post": {
        "tags": [
          "Regras tributárias"
        ],
        "summary": "Criar regra",
        "operationId": "post_tax-rules_tax_rules",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/tax-rules/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "ncm"
                ],
                "properties": {
                  "ncm": {
                    "type": "string",
                    "description": "NCM (8 dígitos)"
                  },
                  "description": {
                    "type": "string",
                    "description": "Descrição"
                  },
                  "cfop": {
                    "type": "string",
                    "description": "CFOP (padrão 5102)"
                  },
                  "icmsCsosn": {
                    "type": "string",
                    "description": "CSOSN (padrão 102)"
                  },
                  "icmsCst": {
                    "type": "string",
                    "description": "CST ICMS"
                  },
                  "pisCst": {
                    "type": "string",
                    "description": "CST PIS"
                  },
                  "cofinsCst": {
                    "type": "string",
                    "description": "CST COFINS"
                  },
                  "origin": {
                    "type": "integer",
                    "description": "Origem da mercadoria (0–8)"
                  },
                  "cest": {
                    "type": "string",
                    "description": "CEST"
                  },
                  "active": {
                    "type": "boolean",
                    "description": "Ativa"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/tax-rules/{id}": {
      "patch": {
        "tags": [
          "Regras tributárias"
        ],
        "summary": "Atualizar regra (NCM não pode ser alterado)",
        "operationId": "patch_tax-rules_tax_rules_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/tax-rules/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [],
                "properties": {
                  "description": {
                    "type": "string",
                    "description": "Descrição"
                  },
                  "cfop": {
                    "type": "string",
                    "description": "CFOP"
                  },
                  "icmsCsosn": {
                    "type": "string",
                    "description": "CSOSN"
                  },
                  "icmsCst": {
                    "type": "string",
                    "description": "CST ICMS"
                  },
                  "pisCst": {
                    "type": "string",
                    "description": "CST PIS"
                  },
                  "cofinsCst": {
                    "type": "string",
                    "description": "CST COFINS"
                  },
                  "origin": {
                    "type": "integer",
                    "description": "Origem"
                  },
                  "cest": {
                    "type": "string",
                    "description": "CEST"
                  },
                  "active": {
                    "type": "boolean",
                    "description": "Ativa"
                  }
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Regras tributárias"
        ],
        "summary": "Excluir regra",
        "operationId": "delete_tax-rules_tax_rules_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/tax-rules/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "204 No Content"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/tax-rules/{id}/apply": {
      "post": {
        "tags": [
          "Regras tributárias"
        ],
        "summary": "Aplicar a regra a todos os produtos com o mesmo NCM",
        "operationId": "post_tax-rules_tax_rules_id_apply",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/tax-rules/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/tax-rules/seed-profiles": {
      "get": {
        "tags": [
          "Regras tributárias"
        ],
        "summary": "Ramos disponíveis para importar NCM",
        "operationId": "get_tax-rules_tax_rules_seed_profiles",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/tax-rules/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/tax-rules/seed-defaults": {
      "post": {
        "tags": [
          "Regras tributárias"
        ],
        "summary": "Importar NCM e regras do ramo",
        "operationId": "post_tax-rules_tax_rules_seed_defaults",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/tax-rules/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/fiscal-rules": {
      "get": {
        "tags": [
          "Regras fiscais parametrizadas (ICMS-ST)"
        ],
        "summary": "Listar regras fiscais",
        "operationId": "get_fiscal-rules_fiscal_rules",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal-rules/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "post": {
        "tags": [
          "Regras fiscais parametrizadas (ICMS-ST)"
        ],
        "summary": "Criar regra fiscal",
        "operationId": "post_fiscal-rules_fiscal_rules",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal-rules/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "201 Created"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [],
                "properties": {
                  "originUf": {
                    "type": "string",
                    "description": "UF de origem"
                  },
                  "destUf": {
                    "type": "string",
                    "description": "UF de destino"
                  },
                  "ncm": {
                    "type": "string",
                    "description": "NCM"
                  },
                  "cest": {
                    "type": "string",
                    "description": "CEST"
                  },
                  "operationType": {
                    "type": "string",
                    "description": "SALE_INTERNAL | SALE_INTERSTATE | RETURN | ENTRY | …"
                  },
                  "stSituation": {
                    "type": "string",
                    "description": "NOT_SUBJECT | SUBJECT | RETAINED_PREVIOUSLY | …"
                  },
                  "cfop": {
                    "type": "string",
                    "description": "CFOP"
                  },
                  "icmsCsosn": {
                    "type": "string",
                    "description": "CSOSN"
                  },
                  "icmsCst": {
                    "type": "string",
                    "description": "CST ICMS"
                  },
                  "active": {
                    "type": "boolean",
                    "description": "Ativa"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/fiscal-rules/{id}": {
      "get": {
        "tags": [
          "Regras fiscais parametrizadas (ICMS-ST)"
        ],
        "summary": "Detalhe da regra",
        "operationId": "get_fiscal-rules_fiscal_rules_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal-rules/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "patch": {
        "tags": [
          "Regras fiscais parametrizadas (ICMS-ST)"
        ],
        "summary": "Atualizar regra fiscal",
        "operationId": "patch_fiscal-rules_fiscal_rules_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal-rules/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "delete": {
        "tags": [
          "Regras fiscais parametrizadas (ICMS-ST)"
        ],
        "summary": "Desativar regra fiscal",
        "operationId": "delete_fiscal-rules_fiscal_rules_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal-rules/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "204 No Content"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/fiscal-uf-rates": {
      "get": {
        "tags": [
          "Alíquotas internas por UF"
        ],
        "summary": "Listar alíquotas cadastradas",
        "operationId": "get_fiscal-uf-rates_fiscal_uf_rates",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal-uf-rates/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/fiscal-uf-rates/{uf}": {
      "put": {
        "tags": [
          "Alíquotas internas por UF"
        ],
        "summary": "Criar ou atualizar a alíquota da UF",
        "operationId": "put_fiscal-uf-rates_fiscal_uf_rates_uf",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal-uf-rates/"
        },
        "parameters": [
          {
            "name": "uf",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "internalRate"
                ],
                "properties": {
                  "internalRate": {
                    "type": "number",
                    "description": "Alíquota interna (%)"
                  },
                  "fcpRate": {
                    "type": "number",
                    "description": "FCP (%)"
                  },
                  "notes": {
                    "type": "string",
                    "description": "Observações"
                  }
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Alíquotas internas por UF"
        ],
        "summary": "Remover alíquota da UF",
        "operationId": "delete_fiscal-uf-rates_fiscal_uf_rates_uf",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/fiscal/fiscal-uf-rates/"
        },
        "parameters": [
          {
            "name": "uf",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "204 No Content"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/payables/summary": {
      "get": {
        "tags": [
          "Contas a pagar"
        ],
        "summary": "Resumo",
        "operationId": "get_payables_payables_summary",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/financeiro/payables/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/payables/installments/summary": {
      "get": {
        "tags": [
          "Contas a pagar"
        ],
        "summary": "Resumo",
        "operationId": "get_payables_payables_installments_summary",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/financeiro/payables/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/payables/installments": {
      "get": {
        "tags": [
          "Contas a pagar"
        ],
        "summary": "Listar parcelas",
        "operationId": "get_payables_payables_installments",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/financeiro/payables/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/payables": {
      "get": {
        "tags": [
          "Contas a pagar"
        ],
        "summary": "Listar contas a pagar",
        "operationId": "get_payables_payables",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/financeiro/payables/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "post": {
        "tags": [
          "Contas a pagar"
        ],
        "summary": "Criar conta a pagar",
        "operationId": "post_payables_payables",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/financeiro/payables/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/payables/suppliers/{supplierId}/payments": {
      "post": {
        "tags": [
          "Contas a pagar"
        ],
        "summary": "Registrar pagamento / baixa",
        "operationId": "post_payables_payables_suppliers_supplierId_payments",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/financeiro/payables/"
        },
        "parameters": [
          {
            "name": "supplierId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/payables/{id}": {
      "get": {
        "tags": [
          "Contas a pagar"
        ],
        "summary": "Detalhe",
        "operationId": "get_payables_payables_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/financeiro/payables/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "patch": {
        "tags": [
          "Contas a pagar"
        ],
        "summary": "Atualizar",
        "operationId": "patch_payables_payables_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/financeiro/payables/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "delete": {
        "tags": [
          "Contas a pagar"
        ],
        "summary": "Excluir",
        "operationId": "delete_payables_payables_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/financeiro/payables/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/payables/{id}/payments": {
      "post": {
        "tags": [
          "Contas a pagar"
        ],
        "summary": "Registrar pagamento / baixa",
        "operationId": "post_payables_payables_id_payments",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/financeiro/payables/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/payables/{id}/cancel": {
      "post": {
        "tags": [
          "Contas a pagar"
        ],
        "summary": "Cancelar (body opcional: { reason })",
        "operationId": "post_payables_payables_id_cancel",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/financeiro/payables/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/payables/{id}/payments/{paymentId}": {
      "delete": {
        "tags": [
          "Contas a pagar"
        ],
        "summary": "Excluir baixa/pagamento",
        "operationId": "delete_payables_payables_id_payments_paymentId",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/financeiro/payables/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "paymentId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/payables/alerts": {
      "get": {
        "tags": [
          "Contas a pagar"
        ],
        "summary": "Alertas de contas a pagar (vencidas, a vencer, aguardando aprovação)",
        "operationId": "get_payables_payables_alerts",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/financeiro/payables/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/payables/{id}/approve": {
      "post": {
        "tags": [
          "Contas a pagar"
        ],
        "summary": "Aprovar conta (exige permissão de aprovar)",
        "operationId": "post_payables_payables_id_approve",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/financeiro/payables/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/payables/{id}/reject": {
      "post": {
        "tags": [
          "Contas a pagar"
        ],
        "summary": "Reprovar conta (exige permissão de aprovar)",
        "operationId": "post_payables_payables_id_reject",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/financeiro/payables/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [],
                "properties": {
                  "reason": {
                    "type": "string",
                    "description": "Motivo"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/payables/batch-payments": {
      "post": {
        "tags": [
          "Contas a pagar"
        ],
        "summary": "Pagar várias contas de uma vez",
        "operationId": "post_payables_payables_batch_payments",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/financeiro/payables/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "items"
                ],
                "properties": {
                  "items": {
                    "type": "array",
                    "items": {},
                    "description": "[{ payableId, installmentId, amount, lateFeeAmount, interestAmount, discountAmount }]"
                  },
                  "paidAt": {
                    "type": "string",
                    "description": "Data do pagamento"
                  },
                  "paymentMethodId": {
                    "type": "string",
                    "description": "Forma de pagamento"
                  },
                  "financialAccountId": {
                    "type": "string",
                    "description": "Conta financeira"
                  },
                  "notes": {
                    "type": "string",
                    "description": "Observações"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/payables/{id}/attachments": {
      "post": {
        "tags": [
          "Contas a pagar"
        ],
        "summary": "Anexar comprovante/boleto (multipart, campo file, até 10 MB)",
        "operationId": "post_payables_payables_id_attachments",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/financeiro/payables/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "201 Created"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "file"
                ],
                "properties": {
                  "file": {
                    "type": "string",
                    "description": "Arquivo"
                  },
                  "paymentId": {
                    "type": "string",
                    "format": "uuid",
                    "description": "Pagamento ao qual o anexo pertence"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/payables/{id}/attachments/{attachmentId}/url": {
      "get": {
        "tags": [
          "Contas a pagar"
        ],
        "summary": "URL temporária para baixar o anexo",
        "operationId": "get_payables_payables_id_attachments_attachmentId_url",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/financeiro/payables/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "attachmentId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/payables/{id}/attachments/{attachmentId}": {
      "delete": {
        "tags": [
          "Contas a pagar"
        ],
        "summary": "Excluir anexo",
        "operationId": "delete_payables_payables_id_attachments_attachmentId",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/financeiro/payables/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "attachmentId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "204 No Content"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/payables/batch-cancel": {
      "post": {
        "tags": [
          "Contas a pagar"
        ],
        "summary": "Cancelar várias contas a pagar de uma vez",
        "operationId": "post_payables_payables_batch_cancel",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/financeiro/payables/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "{ requested, succeeded, failed }. Cada conta é processada na própria transação: failed lista { id, description, message } (conta já paga, já cancelada, não encontrada...) sem desfazer as demais."
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "x-sensitive": true,
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "ids"
                ],
                "properties": {
                  "ids": {
                    "type": "string",
                    "description": "Contas a cancelar (1 a 200)"
                  },
                  "reason": {
                    "type": "string",
                    "description": "Motivo (até 500)"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/payables/batch-delete": {
      "post": {
        "tags": [
          "Contas a pagar"
        ],
        "summary": "Excluir várias contas a pagar de uma vez",
        "operationId": "post_payables_payables_batch_delete",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/financeiro/payables/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "{ requested, succeeded, failed } — mesmo formato do cancelamento em lote; falhas individuais não derrubam as demais."
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "x-sensitive": true,
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "ids"
                ],
                "properties": {
                  "ids": {
                    "type": "string",
                    "description": "Contas a excluir (1 a 200)"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/credit-cards": {
      "get": {
        "tags": [
          "Cartões de crédito da empresa"
        ],
        "summary": "Listar cartões",
        "operationId": "get_credit-cards_credit_cards",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/financeiro/credit-cards/"
        },
        "parameters": [
          {
            "name": "q",
            "in": "query",
            "required": false,
            "description": "Busca por apelido, titular ou final",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "active",
            "in": "query",
            "required": false,
            "description": "true / false",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "post": {
        "tags": [
          "Cartões de crédito da empresa"
        ],
        "summary": "Cadastrar cartão",
        "operationId": "post_credit-cards_credit_cards",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/financeiro/credit-cards/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "201 Created"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "name",
                  "holderName",
                  "closingDay",
                  "dueDay"
                ],
                "properties": {
                  "name": {
                    "type": "string",
                    "description": "Apelido do cartão"
                  },
                  "holderName": {
                    "type": "string",
                    "description": "Titular"
                  },
                  "institution": {
                    "type": "string",
                    "description": "Banco / emissor"
                  },
                  "brand": {
                    "type": "string",
                    "description": "Bandeira"
                  },
                  "last4": {
                    "type": "string",
                    "description": "Últimos dígitos"
                  },
                  "closingDay": {
                    "type": "integer",
                    "description": "Dia de fechamento (1–31)"
                  },
                  "dueDay": {
                    "type": "integer",
                    "description": "Dia de vencimento (1–31)"
                  },
                  "bestPurchaseDay": {
                    "type": "integer",
                    "description": "Melhor dia de compra"
                  },
                  "closingPolicy": {
                    "type": "string",
                    "description": "CURRENT_INVOICE ou NEXT_INVOICE (compra no dia do fechamento)"
                  },
                  "notes": {
                    "type": "string",
                    "description": "Observações"
                  },
                  "active": {
                    "type": "boolean",
                    "description": "Ativo"
                  },
                  "locationId": {
                    "type": "string",
                    "description": "Filial"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/credit-cards/{id}": {
      "get": {
        "tags": [
          "Cartões de crédito da empresa"
        ],
        "summary": "Detalhe do cartão",
        "operationId": "get_credit-cards_credit_cards_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/financeiro/credit-cards/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "patch": {
        "tags": [
          "Cartões de crédito da empresa"
        ],
        "summary": "Atualizar cartão (campos parciais)",
        "operationId": "patch_credit-cards_credit_cards_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/financeiro/credit-cards/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "delete": {
        "tags": [
          "Cartões de crédito da empresa"
        ],
        "summary": "Excluir cartão",
        "operationId": "delete_credit-cards_credit_cards_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/financeiro/credit-cards/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/credit-cards/{id}/purchases": {
      "get": {
        "tags": [
          "Cartões de crédito da empresa"
        ],
        "summary": "Compras lançadas no cartão",
        "operationId": "get_credit-cards_credit_cards_id_purchases",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/financeiro/credit-cards/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/credit-cards/purchases/preview": {
      "post": {
        "tags": [
          "Cartões de crédito da empresa"
        ],
        "summary": "Simular parcelas e faturas de uma compra (não grava)",
        "operationId": "post_credit-cards_credit_cards_purchases_preview",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/financeiro/credit-cards/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/credit-cards/purchases": {
      "post": {
        "tags": [
          "Cartões de crédito da empresa"
        ],
        "summary": "Lançar compra no cartão",
        "operationId": "post_credit-cards_credit_cards_purchases",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/financeiro/credit-cards/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "201 Created"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "creditCardId",
                  "purchasedAt",
                  "description",
                  "totalAmount",
                  "installmentCount"
                ],
                "properties": {
                  "creditCardId": {
                    "type": "string",
                    "format": "uuid",
                    "description": "Cartão"
                  },
                  "purchasedAt": {
                    "type": "string",
                    "description": "Data da compra"
                  },
                  "description": {
                    "type": "string",
                    "description": "Descrição"
                  },
                  "totalAmount": {
                    "type": "number",
                    "description": "Valor total"
                  },
                  "installmentCount": {
                    "type": "integer",
                    "description": "Parcelas (1–48)"
                  },
                  "supplierId": {
                    "type": "string",
                    "format": "uuid",
                    "description": "Fornecedor"
                  },
                  "documentNumber": {
                    "type": "string",
                    "description": "Número do documento"
                  },
                  "categoryId": {
                    "type": "string",
                    "description": "Categoria financeira"
                  },
                  "costCenterId": {
                    "type": "string",
                    "description": "Centro de custo"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/credit-cards/purchases/{purchaseId}": {
      "get": {
        "tags": [
          "Cartões de crédito da empresa"
        ],
        "summary": "Detalhe da compra",
        "operationId": "get_credit-cards_credit_cards_purchases_purchaseId",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/financeiro/credit-cards/"
        },
        "parameters": [
          {
            "name": "purchaseId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "patch": {
        "tags": [
          "Cartões de crédito da empresa"
        ],
        "summary": "Editar compra (mesmo corpo do lançamento)",
        "operationId": "patch_credit-cards_credit_cards_purchases_purchaseId",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/financeiro/credit-cards/"
        },
        "parameters": [
          {
            "name": "purchaseId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/credit-cards/purchases/{purchaseId}/cancel": {
      "post": {
        "tags": [
          "Cartões de crédito da empresa"
        ],
        "summary": "Cancelar compra",
        "operationId": "post_credit-cards_credit_cards_purchases_purchaseId_cancel",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/financeiro/credit-cards/"
        },
        "parameters": [
          {
            "name": "purchaseId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [],
                "properties": {
                  "reason": {
                    "type": "string",
                    "description": "Motivo"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/credit-cards/invoices/{invoiceId}": {
      "get": {
        "tags": [
          "Cartões de crédito da empresa"
        ],
        "summary": "Detalhe da fatura",
        "operationId": "get_credit-cards_credit_cards_invoices_invoiceId",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/financeiro/credit-cards/"
        },
        "parameters": [
          {
            "name": "invoiceId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/credit-cards/invoices/{invoiceId}/pay": {
      "post": {
        "tags": [
          "Cartões de crédito da empresa"
        ],
        "summary": "Pagar fatura",
        "operationId": "post_credit-cards_credit_cards_invoices_invoiceId_pay",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/financeiro/credit-cards/"
        },
        "parameters": [
          {
            "name": "invoiceId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "amount"
                ],
                "properties": {
                  "amount": {
                    "type": "number",
                    "description": "Valor pago"
                  },
                  "…": {
                    "type": "string",
                    "description": "Demais campos iguais ao pagamento de conta a pagar (data, conta, juros, multa, desconto)"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/sale-returns": {
      "get": {
        "tags": [
          "Devoluções de venda"
        ],
        "summary": "Listar devoluções de venda",
        "operationId": "get_sale-returns_sale_returns",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/sale-returns/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "post": {
        "tags": [
          "Devoluções de venda"
        ],
        "summary": "Criar devolução de venda",
        "operationId": "post_sale-returns_sale_returns",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/sale-returns/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/sale-returns/{id}": {
      "get": {
        "tags": [
          "Devoluções de venda"
        ],
        "summary": "Detalhe",
        "operationId": "get_sale-returns_sale_returns_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/sale-returns/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "patch": {
        "tags": [
          "Devoluções de venda"
        ],
        "summary": "Atualizar",
        "operationId": "patch_sale-returns_sale_returns_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/sale-returns/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "delete": {
        "tags": [
          "Devoluções de venda"
        ],
        "summary": "Excluir",
        "operationId": "delete_sale-returns_sale_returns_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/sale-returns/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/sale-returns/{id}/cancel": {
      "post": {
        "tags": [
          "Devoluções de venda"
        ],
        "summary": "Cancelar",
        "operationId": "post_sale-returns_sale_returns_id_cancel",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/sale-returns/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [],
                "properties": {
                  "storeCreditAction": {
                    "type": "string",
                    "description": "Vale-troca da devolução: cancelar junto (padrão) ou manter valendo"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/sale-returns/{id}/emit-nfe": {
      "post": {
        "tags": [
          "Devoluções de venda"
        ],
        "summary": "Emitir NF-e de devolução",
        "operationId": "post_sale-returns_sale_returns_id_emit_nfe",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/sale-returns/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [],
                "properties": {
                  "taxId": {
                    "type": "string",
                    "description": "CPF/CNPJ do cliente, quando ainda falta no cadastro"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/sale-returns/{id}/return-nfe/cancel": {
      "post": {
        "tags": [
          "Devoluções de venda"
        ],
        "summary": "Cancelar NF-e de devolução na SEFAZ (até 24h após a autorização)",
        "operationId": "post_sale-returns_sale_returns_id_return_nfe_cancel",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/sale-returns/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [],
                "properties": {
                  "justification": {
                    "type": "string",
                    "description": "Justificativa com 15 a 255 caracteres"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/sale-returns/{id}/return-nfe/xml": {
      "get": {
        "tags": [
          "Devoluções de venda"
        ],
        "summary": "Baixar XML",
        "operationId": "get_sale-returns_sale_returns_id_return_nfe_xml",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/sale-returns/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/sale-returns/{id}/return-nfe/pdf": {
      "get": {
        "tags": [
          "Devoluções de venda"
        ],
        "summary": "Baixar PDF",
        "operationId": "get_sale-returns_sale_returns_id_return_nfe_pdf",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/sale-returns/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/sale-returns/{id}/return-nfe/danfe-html": {
      "get": {
        "tags": [
          "Devoluções de venda"
        ],
        "summary": "DANFE em HTML (autorizada ou cancelada)",
        "operationId": "get_sale-returns_sale_returns_id_return_nfe_danfe_html",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/sale-returns/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/sale-returns/ref-lookup": {
      "get": {
        "tags": [
          "Devoluções de venda"
        ],
        "summary": "Devolução avulsa: verifica se a chave da nota de venda é de uma venda deste sistema",
        "operationId": "get_sale-returns_sale_returns_ref_lookup",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/sale-returns/"
        },
        "parameters": [
          {
            "name": "accessKey",
            "in": "query",
            "required": true,
            "description": "Chave de acesso da NF-e/NFC-e de venda (44 dígitos; pontuação é ignorada)",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "{ accessKey, found, sale, previousReturns }. sale traz id, orderNumber, status, completedAt, customerName, documentModel e documentStatus quando found é true. previousReturns lista as devoluções avulsas já lançadas para a mesma chave (id, returnNumber, totalAmount, processedAt) para evitar devolver duas vezes."
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/sale-returns/standalone": {
      "post": {
        "tags": [
          "Devoluções de venda"
        ],
        "summary": "Devolução avulsa de venda feita em outro sistema, informando só a chave da nota de venda",
        "operationId": "post_sale-returns_sale_returns_standalone",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/sale-returns/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "201 Created — a devolução registrada (id, returnNumber, totalAmount...)."
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "refAccessKey",
                  "confirmSaleNotFound",
                  "items"
                ],
                "properties": {
                  "refAccessKey": {
                    "type": "string",
                    "description": "Chave de acesso (44 dígitos válidos) da NF-e (55) ou NFC-e (65) de venda original"
                  },
                  "confirmSaleNotFound": {
                    "type": "boolean",
                    "description": "Deve ser true: confirma que a venda não está neste sistema"
                  },
                  "items": {
                    "type": "array",
                    "items": {},
                    "description": "[{ variantId, quantity, unitPrice }] — de 1 a 200 itens; unitPrice maior que zero"
                  },
                  "customerId": {
                    "type": "string",
                    "format": "uuid",
                    "description": "Cliente (opcional; vira o destinatário da NF-e de devolução e o titular do vale-troca)"
                  },
                  "locationId": {
                    "type": "string",
                    "format": "uuid",
                    "description": "Filial da devolução (padrão: filial de operação do usuário)"
                  },
                  "reason": {
                    "type": "string",
                    "description": "Motivo (até 500)"
                  },
                  "restockItems": {
                    "type": "boolean",
                    "description": "Devolver os itens ao estoque (padrão true)"
                  },
                  "issueStoreCredit": {
                    "type": "boolean",
                    "description": "Gerar vale-troca para o cliente (padrão false)"
                  },
                  "emitReturnNfe": {
                    "type": "boolean",
                    "description": "Emitir NF-e de devolução referenciando a nota original (padrão true)"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/purchase-returns": {
      "get": {
        "tags": [
          "Devoluções de compra"
        ],
        "summary": "Listar devoluções de compra",
        "operationId": "get_purchase-returns_purchase_returns",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/estoque/purchase-returns/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "post": {
        "tags": [
          "Devoluções de compra"
        ],
        "summary": "Criar devolução de compra",
        "operationId": "post_purchase-returns_purchase_returns",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/estoque/purchase-returns/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [],
                "properties": {
                  "purchaseId": {
                    "type": "string",
                    "description": "Compra recebida de origem"
                  },
                  "items": {
                    "type": "array",
                    "items": {},
                    "description": "[{ purchaseItemId, quantity }]"
                  },
                  "reason": {
                    "type": "string",
                    "description": "Motivo da devolução (opcional)"
                  },
                  "emitPurchaseReturnNfe": {
                    "type": "boolean",
                    "description": "Emite NF-e modelo 55 de devolução referenciando a NF-e de entrada"
                  },
                  "adjustPayable": {
                    "type": "boolean",
                    "description": "Abate o valor devolvido do saldo em aberto da conta a pagar da compra (últimas parcelas primeiro)"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/purchase-returns/parse-source-xml": {
      "post": {
        "tags": [
          "Devoluções de compra"
        ],
        "summary": "Ler XML da NF-e de entrada na devolução avulsa, sem criar compra",
        "operationId": "post_purchase-returns_purchase_returns_parse_source_xml",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/estoque/purchase-returns/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [],
                "properties": {
                  "xml": {
                    "type": "string",
                    "description": "Conteúdo do XML da NF-e"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/purchase-returns/{id}": {
      "get": {
        "tags": [
          "Devoluções de compra"
        ],
        "summary": "Detalhe",
        "operationId": "get_purchase-returns_purchase_returns_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/estoque/purchase-returns/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/purchase-returns/{id}/cancel": {
      "post": {
        "tags": [
          "Devoluções de compra"
        ],
        "summary": "Cancelar",
        "operationId": "post_purchase-returns_purchase_returns_id_cancel",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/estoque/purchase-returns/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/purchase-returns/{id}/emit-nfe": {
      "post": {
        "tags": [
          "Devoluções de compra"
        ],
        "summary": "Emitir NF-e de devolução",
        "operationId": "post_purchase-returns_purchase_returns_id_emit_nfe",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/estoque/purchase-returns/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/purchase-returns/{id}/return-nfe/cancel": {
      "post": {
        "tags": [
          "Devoluções de compra"
        ],
        "summary": "Cancelar NF-e de devolução na SEFAZ (até 24h após a autorização)",
        "operationId": "post_purchase-returns_purchase_returns_id_return_nfe_cancel",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/estoque/purchase-returns/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [],
                "properties": {
                  "justification": {
                    "type": "string",
                    "description": "Justificativa com 15 a 255 caracteres"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/purchase-returns/{id}/return-nfe/reconcile": {
      "post": {
        "tags": [
          "Devoluções de compra"
        ],
        "summary": "Consultar na SEFAZ se a NF-e já foi autorizada, sem reenviar",
        "operationId": "post_purchase-returns_purchase_returns_id_return_nfe_reconcile",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/estoque/purchase-returns/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/purchase-returns/{id}/return-nfe/xml": {
      "get": {
        "tags": [
          "Devoluções de compra"
        ],
        "summary": "Baixar XML",
        "operationId": "get_purchase-returns_purchase_returns_id_return_nfe_xml",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/estoque/purchase-returns/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/purchase-returns/{id}/return-nfe/pdf": {
      "get": {
        "tags": [
          "Devoluções de compra"
        ],
        "summary": "Baixar PDF",
        "operationId": "get_purchase-returns_purchase_returns_id_return_nfe_pdf",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/estoque/purchase-returns/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/purchase-returns/{id}/return-nfe/danfe-html": {
      "get": {
        "tags": [
          "Devoluções de compra"
        ],
        "summary": "DANFE em HTML (autorizada ou cancelada)",
        "operationId": "get_purchase-returns_purchase_returns_id_return_nfe_danfe_html",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/estoque/purchase-returns/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/purchase-returns/return-nfe/bulk-download": {
      "post": {
        "tags": [
          "Devoluções de compra"
        ],
        "summary": "Baixar em ZIP o DANFE (PDF) ou o XML de várias devoluções",
        "operationId": "post_purchase-returns_purchase_returns_return_nfe_bulk_download",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/estoque/purchase-returns/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [],
                "properties": {
                  "ids": {
                    "type": "string",
                    "description": "Devoluções selecionadas (máximo 50)"
                  },
                  "kind": {
                    "type": "string",
                    "description": "O que baixar de cada NF-e"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/purchase-returns/{id}/return-nfe/send-email": {
      "post": {
        "tags": [
          "Devoluções de compra"
        ],
        "summary": "Enviar XML e DANFE por e-mail ao fornecedor",
        "operationId": "post_purchase-returns_purchase_returns_id_return_nfe_send_email",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/estoque/purchase-returns/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [],
                "properties": {
                  "email": {
                    "type": "string",
                    "description": "E-mail de destino"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/purchase-returns/standalone": {
      "post": {
        "tags": [
          "Devoluções de compra"
        ],
        "summary": "Criar devolução avulsa (sem compra lançada)",
        "operationId": "post_purchase-returns_purchase_returns_standalone",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/estoque/purchase-returns/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [],
                "properties": {
                  "supplierId": {
                    "type": "string",
                    "description": "Fornecedor que vai receber a mercadoria"
                  },
                  "items": {
                    "type": "array",
                    "items": {},
                    "description": "[{ variantId, quantity, unitCost }] — unitCost opcional usa o custo do produto"
                  },
                  "refAccessKey": {
                    "type": "string",
                    "description": "Chave (44 dígitos) da NF-e de entrada, quando existir. Sem ela a NF-e sai sem refNFe"
                  },
                  "reason": {
                    "type": "string",
                    "description": "Motivo da devolução (opcional)"
                  },
                  "emitPurchaseReturnNfe": {
                    "type": "boolean",
                    "description": "Emite NF-e modelo 55 de devolução para o fornecedor"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/purchase-returns/source-nfe": {
      "get": {
        "tags": [
          "Devoluções de compra"
        ],
        "summary": "Buscar a NF-e de compra de origem pela chave",
        "operationId": "get_purchase-returns_purchase_returns_source_nfe",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/estoque/purchase-returns/"
        },
        "parameters": [
          {
            "name": "accessKey",
            "in": "query",
            "required": true,
            "description": "Chave de acesso (44 dígitos)",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "{ found, accessKey, emitCrt, items }"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/purchase-returns/drafts": {
      "get": {
        "tags": [
          "Devoluções de compra"
        ],
        "summary": "Listar rascunhos de devolução",
        "operationId": "get_purchase-returns_purchase_returns_drafts",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/estoque/purchase-returns/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "post": {
        "tags": [
          "Devoluções de compra"
        ],
        "summary": "Salvar rascunho de devolução (fornecedor, chave de referência, itens)",
        "operationId": "post_purchase-returns_purchase_returns_drafts",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/estoque/purchase-returns/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "201 Created"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/purchase-returns/drafts/{id}": {
      "put": {
        "tags": [
          "Devoluções de compra"
        ],
        "summary": "Atualizar rascunho",
        "operationId": "put_purchase-returns_purchase_returns_drafts_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/estoque/purchase-returns/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "delete": {
        "tags": [
          "Devoluções de compra"
        ],
        "summary": "Excluir rascunho",
        "operationId": "delete_purchase-returns_purchase_returns_drafts_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/estoque/purchase-returns/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "204 No Content"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/purchase-returns/drafts/{id}/finalize": {
      "post": {
        "tags": [
          "Devoluções de compra"
        ],
        "summary": "Finalizar rascunho em devolução",
        "operationId": "post_purchase-returns_purchase_returns_drafts_id_finalize",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/estoque/purchase-returns/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [],
                "properties": {
                  "emitPurchaseReturnNfe": {
                    "type": "boolean",
                    "description": "Emitir NF-e de devolução (padrão false)"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/purchase-returns/ref-nfe-suggestions": {
      "get": {
        "tags": [
          "Devoluções de compra"
        ],
        "summary": "Sugerir a NF-e de entrada a referenciar numa devolução avulsa, a partir do fornecedor e das variantes devolvidas",
        "operationId": "get_purchase-returns_purchase_returns_ref_nfe_suggestions",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/estoque/purchase-returns/"
        },
        "parameters": [
          {
            "name": "supplierId",
            "in": "query",
            "required": false,
            "description": "Fornecedor (omitido = qualquer)",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "variantIds",
            "in": "query",
            "required": false,
            "description": "Variantes devolvidas, separadas por vírgula (até 200)",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Lista (até 50) de compras recebidas que trouxeram essas variantes: purchaseId, purchaseReference, accessKey (44 dígitos), invoiceNumber, invoiceSeries, issueDate, receivedAt, totalAmount e supplierName. Sem variantIds retorna lista vazia."
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/purchase-returns/{id}/ref-nfe-suggestions": {
      "get": {
        "tags": [
          "Devoluções de compra"
        ],
        "summary": "Sugerir a NF-e de entrada para uma devolução já registrada (usa o fornecedor e os itens dela)",
        "operationId": "get_purchase-returns_purchase_returns_id_ref_nfe_suggestions",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/estoque/purchase-returns/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Mesmo formato de /purchase-returns/ref-nfe-suggestions. 404 se a devolução não existe."
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/purchase-returns/{id}/ref-access-key": {
      "put": {
        "tags": [
          "Devoluções de compra"
        ],
        "summary": "Referenciar ou corrigir a NF-e de entrada de uma devolução avulsa antes de (re)emitir a NF-e de devolução",
        "operationId": "put_purchase-returns_purchase_returns_id_ref_access_key",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/estoque/purchase-returns/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "O detalhe da devolução. 400 se a chave é inválida, não é modelo 55, não confere com o CNPJ do fornecedor, a devolução é vinculada a uma compra (corrija na compra), não está registrada ou a NF-e de devolução já foi autorizada; 409 se estiver em processamento na SEFAZ."
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "refAccessKey"
                ],
                "properties": {
                  "refAccessKey": {
                    "type": "string",
                    "description": "Chave de acesso da NF-e de entrada (44 dígitos, modelo 55; pontuação é ignorada)"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/store-credits": {
      "get": {
        "tags": [
          "Créditos de loja"
        ],
        "summary": "Listar créditos de loja",
        "operationId": "get_store-credits_store_credits",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/store-credits/"
        },
        "parameters": [
          {
            "name": "q",
            "in": "query",
            "required": false,
            "description": "Código ou cliente (busca fuzzy / tolerante a erros)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "description": "ACTIVE | FULLY_USED | EXPIRED | CANCELLED",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "sortBy",
            "in": "query",
            "required": false,
            "description": "code | customer | originalAmount | balance | expiresAt | used | status | issuedAt",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "sortDir",
            "in": "query",
            "required": false,
            "description": "asc | desc",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "page",
            "in": "query",
            "required": false,
            "description": "Página (padrão 1)",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "required": false,
            "description": "Itens por página (padrão 20)",
            "schema": {
              "type": "number"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "post": {
        "tags": [
          "Créditos de loja"
        ],
        "summary": "Criar crédito de loja",
        "operationId": "post_store-credits_store_credits",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/store-credits/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/store-credits/lookup": {
      "get": {
        "tags": [
          "Créditos de loja"
        ],
        "summary": "Consultar crédito (lookup)",
        "operationId": "get_store-credits_store_credits_lookup",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/store-credits/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/store-credits/summary": {
      "get": {
        "tags": [
          "Créditos de loja"
        ],
        "summary": "Resumo de vales ativos (saldo e a vencer)",
        "operationId": "get_store-credits_store_credits_summary",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/store-credits/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/store-credits/{id}": {
      "get": {
        "tags": [
          "Créditos de loja"
        ],
        "summary": "Detalhe",
        "operationId": "get_store-credits_store_credits_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/store-credits/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "patch": {
        "tags": [
          "Créditos de loja"
        ],
        "summary": "Atualizar",
        "operationId": "patch_store-credits_store_credits_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/store-credits/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "delete": {
        "tags": [
          "Créditos de loja"
        ],
        "summary": "Excluir",
        "operationId": "delete_store-credits_store_credits_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/store-credits/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/store-credits/{id}/cancel": {
      "post": {
        "tags": [
          "Créditos de loja"
        ],
        "summary": "Cancelar",
        "operationId": "post_store-credits_store_credits_id_cancel",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/store-credits/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/cash-registers": {
      "get": {
        "tags": [
          "Caixas (cadastro)"
        ],
        "summary": "Listar caixas",
        "operationId": "get_cash-registers_cash_registers",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/cash-registers/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "post": {
        "tags": [
          "Caixas (cadastro)"
        ],
        "summary": "Criar caixa",
        "operationId": "post_cash-registers_cash_registers",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/cash-registers/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/cash-registers/{id}": {
      "get": {
        "tags": [
          "Caixas (cadastro)"
        ],
        "summary": "Detalhe",
        "operationId": "get_cash-registers_cash_registers_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/cash-registers/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "patch": {
        "tags": [
          "Caixas (cadastro)"
        ],
        "summary": "Atualizar",
        "operationId": "patch_cash-registers_cash_registers_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/cash-registers/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "delete": {
        "tags": [
          "Caixas (cadastro)"
        ],
        "summary": "Excluir",
        "operationId": "delete_cash-registers_cash_registers_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/cash-registers/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/cash-sessions/active": {
      "get": {
        "tags": [
          "Sessões de caixa"
        ],
        "summary": "Sessão de caixa ativa",
        "operationId": "get_cash-sessions_cash_sessions_active",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/cash-sessions/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/cash-sessions/suggested-opening": {
      "get": {
        "tags": [
          "Sessões de caixa"
        ],
        "summary": "Sugestão de saldo inicial (último fechamento)",
        "operationId": "get_cash-sessions_cash_sessions_suggested_opening",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/cash-sessions/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/cash-sessions": {
      "get": {
        "tags": [
          "Sessões de caixa"
        ],
        "summary": "Listar sessões de caixa",
        "operationId": "get_cash-sessions_cash_sessions",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/cash-sessions/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/cash-sessions/{id}": {
      "get": {
        "tags": [
          "Sessões de caixa"
        ],
        "summary": "Detalhe",
        "operationId": "get_cash-sessions_cash_sessions_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/cash-sessions/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/cash-sessions/open": {
      "post": {
        "tags": [
          "Sessões de caixa"
        ],
        "summary": "Abrir sessão de caixa",
        "operationId": "post_cash-sessions_cash_sessions_open",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/cash-sessions/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/cash-sessions/{id}/movements": {
      "post": {
        "tags": [
          "Sessões de caixa"
        ],
        "summary": "Registrar lançamento de caixa",
        "operationId": "post_cash-sessions_cash_sessions_id_movements",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/cash-sessions/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "get": {
        "tags": [
          "Sessões de caixa"
        ],
        "summary": "Movimentações da sessão",
        "operationId": "get_cash-sessions_cash_sessions_id_movements",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/cash-sessions/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "description": "ACTIVE, CANCELLED ou all",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "type",
            "in": "query",
            "required": false,
            "description": "Tipo da movimentação",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/cash-sessions/{id}/close": {
      "post": {
        "tags": [
          "Sessões de caixa"
        ],
        "summary": "Fechar sessão de caixa",
        "operationId": "post_cash-sessions_cash_sessions_id_close",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/cash-sessions/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/cash-sessions/movements": {
      "get": {
        "tags": [
          "Sessões de caixa"
        ],
        "summary": "Histórico de movimentações de caixa (todas as sessões)",
        "operationId": "get_cash-sessions_cash_sessions_movements",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/cash-sessions/"
        },
        "parameters": [
          {
            "name": "from",
            "in": "query",
            "required": false,
            "description": "Data inicial",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "to",
            "in": "query",
            "required": false,
            "description": "Data final",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "registerId",
            "in": "query",
            "required": false,
            "description": "Caixa",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "userId",
            "in": "query",
            "required": false,
            "description": "Operador",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "sessionId",
            "in": "query",
            "required": false,
            "description": "Sessão",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "type",
            "in": "query",
            "required": false,
            "description": "Tipo da movimentação",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "description": "ACTIVE ou CANCELLED",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "page",
            "in": "query",
            "required": false,
            "description": "Página",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "required": false,
            "description": "Itens por página (até 100)",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/cash-sessions/{id}/summary": {
      "get": {
        "tags": [
          "Sessões de caixa"
        ],
        "summary": "Resumo da sessão (totais por forma de pagamento)",
        "operationId": "get_cash-sessions_cash_sessions_id_summary",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/cash-sessions/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/cash-sessions/{id}/report": {
      "get": {
        "tags": [
          "Sessões de caixa"
        ],
        "summary": "Relatório de fechamento",
        "operationId": "get_cash-sessions_cash_sessions_id_report",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/cash-sessions/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/cash-sessions/{id}/adjustments": {
      "post": {
        "tags": [
          "Sessões de caixa"
        ],
        "summary": "Lançar ajuste de caixa",
        "operationId": "post_cash-sessions_cash_sessions_id_adjustments",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/cash-sessions/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "201 Created"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "type",
                  "amount",
                  "notes"
                ],
                "properties": {
                  "type": {
                    "type": "string",
                    "description": "ADJUSTMENT_IN ou ADJUSTMENT_OUT"
                  },
                  "amount": {
                    "type": "number",
                    "description": "Valor"
                  },
                  "notes": {
                    "type": "string",
                    "description": "Motivo"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/cash-sessions/{id}/reopen": {
      "post": {
        "tags": [
          "Sessões de caixa"
        ],
        "summary": "Reabrir sessão fechada",
        "operationId": "post_cash-sessions_cash_sessions_id_reopen",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/cash-sessions/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [],
                "properties": {
                  "reason": {
                    "type": "string",
                    "description": "Motivo"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/cash-sessions/movements/{movementId}/cancel": {
      "post": {
        "tags": [
          "Sessões de caixa"
        ],
        "summary": "Cancelar movimentação (sangria, suprimento, ajuste)",
        "operationId": "post_cash-sessions_cash_sessions_movements_movementId_cancel",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/cash-sessions/"
        },
        "parameters": [
          {
            "name": "movementId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [],
                "properties": {
                  "reason": {
                    "type": "string",
                    "description": "Motivo"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/cash-sessions/treasury-accounts": {
      "get": {
        "tags": [
          "Sessões de caixa"
        ],
        "summary": "Contas (cofre, banco...) que podem receber a sangria ou o valor retirado no fechamento",
        "operationId": "get_cash-sessions_cash_sessions_treasury_accounts",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/cash-sessions/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Lista de contas ativas: id, name, type e defaultCashDestination."
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/cash-sessions/{id}/transfer": {
      "post": {
        "tags": [
          "Sessões de caixa"
        ],
        "summary": "Transferir dinheiro entre dois caixas abertos (sangria na origem + suprimento no destino)",
        "operationId": "post_cash-sessions_cash_sessions_id_transfer",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/cash-sessions/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "201 Created — o detalhe da sessão de origem. Exige a permissão cash.manage. 400 se as duas sessões não estão abertas ou reabertas, ou se são de filiais diferentes; saldo insuficiente na origem também é recusado, salvo allowOverdraft autorizado."
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "x-sensitive": true,
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "targetSessionId",
                  "amount"
                ],
                "properties": {
                  "targetSessionId": {
                    "type": "string",
                    "format": "uuid",
                    "description": "Sessão de caixa de destino (diferente da origem)"
                  },
                  "amount": {
                    "type": "number",
                    "description": "Valor maior que zero"
                  },
                  "notes": {
                    "type": "string",
                    "description": "Motivo (até 500)"
                  },
                  "allowOverdraft": {
                    "type": "boolean",
                    "description": "Permite deixar o caixa de origem negativo; só vale para quem tem a permissão cash.authorize_difference"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/price-lists": {
      "get": {
        "tags": [
          "Tabelas de preço"
        ],
        "summary": "Listar tabelas de preço",
        "operationId": "get_price-lists_price_lists",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/catalogo/price-lists/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "post": {
        "tags": [
          "Tabelas de preço"
        ],
        "summary": "Criar tabela de preço",
        "operationId": "post_price-lists_price_lists",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/catalogo/price-lists/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/price-lists/{id}": {
      "get": {
        "tags": [
          "Tabelas de preço"
        ],
        "summary": "Detalhe",
        "operationId": "get_price-lists_price_lists_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/catalogo/price-lists/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "patch": {
        "tags": [
          "Tabelas de preço"
        ],
        "summary": "Atualizar",
        "operationId": "patch_price-lists_price_lists_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/catalogo/price-lists/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "delete": {
        "tags": [
          "Tabelas de preço"
        ],
        "summary": "Excluir",
        "operationId": "delete_price-lists_price_lists_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/catalogo/price-lists/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/price-lists/{id}/items": {
      "get": {
        "tags": [
          "Tabelas de preço"
        ],
        "summary": "Listar itens da tabela",
        "operationId": "get_price-lists_price_lists_id_items",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/catalogo/price-lists/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/price-lists/{id}/items/{productId}": {
      "put": {
        "tags": [
          "Tabelas de preço"
        ],
        "summary": "Definir preço do produto",
        "operationId": "put_price-lists_price_lists_id_items_productId",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/catalogo/price-lists/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "productId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "delete": {
        "tags": [
          "Tabelas de preço"
        ],
        "summary": "Remover produto da tabela",
        "operationId": "delete_price-lists_price_lists_id_items_productId",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/catalogo/price-lists/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "productId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/price-lists/{id}/bulk-price": {
      "patch": {
        "tags": [
          "Tabelas de preço"
        ],
        "summary": "Ajustar preços em lote",
        "operationId": "patch_price-lists_price_lists_id_bulk_price",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/catalogo/price-lists/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/label-print-queue": {
      "get": {
        "tags": [
          "Fila de etiquetas"
        ],
        "summary": "Obter fila de etiquetas",
        "operationId": "get_label-print-queue_label_print_queue",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/catalogo/label-print-queue/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "put": {
        "tags": [
          "Fila de etiquetas"
        ],
        "summary": "Atualizar fila de etiquetas",
        "operationId": "put_label-print-queue_label_print_queue",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/catalogo/label-print-queue/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/dispatch-label-history": {
      "get": {
        "tags": [
          "Fila de etiquetas"
        ],
        "summary": "Histórico compartilhado das etiquetas rápidas",
        "operationId": "get_label-print-queue_dispatch_label_history",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/catalogo/label-print-queue/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "post": {
        "tags": [
          "Fila de etiquetas"
        ],
        "summary": "Registrar impressão ou remoção de bolsas",
        "operationId": "post_label-print-queue_dispatch_label_history",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/catalogo/label-print-queue/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "delete": {
        "tags": [
          "Fila de etiquetas"
        ],
        "summary": "Limpar o histórico da loja",
        "operationId": "delete_label-print-queue_dispatch_label_history",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/catalogo/label-print-queue/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/dispatch-label-history/import": {
      "post": {
        "tags": [
          "Fila de etiquetas"
        ],
        "summary": "Importar histórico local se o banco estiver vazio",
        "operationId": "post_label-print-queue_dispatch_label_history_import",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/catalogo/label-print-queue/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/dispatch-label-users": {
      "get": {
        "tags": [
          "Fila de etiquetas"
        ],
        "summary": "Lista de confiança dos @ das etiquetas rápidas",
        "operationId": "get_label-print-queue_dispatch_label_users",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/catalogo/label-print-queue/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "put": {
        "tags": [
          "Fila de etiquetas"
        ],
        "summary": "Anotar ou atualizar confiança de um @",
        "operationId": "put_label-print-queue_dispatch_label_users",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/catalogo/label-print-queue/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/dispatch-label-users/import": {
      "post": {
        "tags": [
          "Fila de etiquetas"
        ],
        "summary": "Incluir anotações locais na lista da loja",
        "operationId": "post_label-print-queue_dispatch_label_users_import",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/catalogo/label-print-queue/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/dispatch-label-users/{id}": {
      "delete": {
        "tags": [
          "Fila de etiquetas"
        ],
        "summary": "Remover um @ da lista de confiança",
        "operationId": "delete_label-print-queue_dispatch_label_users_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/catalogo/label-print-queue/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/print/settings": {
      "patch": {
        "tags": [
          "Agente de impressão"
        ],
        "summary": "Habilitar/desabilitar agente na loja",
        "operationId": "patch_print-agent_print_settings",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/catalogo/print-agent/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/print/agents/status": {
      "get": {
        "tags": [
          "Agente de impressão"
        ],
        "summary": "Status do ponto de impressão",
        "operationId": "get_print-agent_print_agents_status",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/catalogo/print-agent/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/print/agents/heartbeat": {
      "post": {
        "tags": [
          "Agente de impressão"
        ],
        "summary": "Heartbeat do agente Windows",
        "operationId": "post_print-agent_print_agents_heartbeat",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/catalogo/print-agent/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/print/agents": {
      "get": {
        "tags": [
          "Agente de impressão"
        ],
        "summary": "Listar agentes",
        "operationId": "get_print-agent_print_agents",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/catalogo/print-agent/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/print/jobs/claim": {
      "post": {
        "tags": [
          "Agente de impressão"
        ],
        "summary": "Reivindicar próximo job",
        "operationId": "post_print-agent_print_jobs_claim",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/catalogo/print-agent/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/print/jobs/{id}/complete": {
      "post": {
        "tags": [
          "Agente de impressão"
        ],
        "summary": "Marcar job como impresso",
        "operationId": "post_print-agent_print_jobs_id_complete",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/catalogo/print-agent/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/print/jobs/{id}/fail": {
      "post": {
        "tags": [
          "Agente de impressão"
        ],
        "summary": "Marcar job como falho",
        "operationId": "post_print-agent_print_jobs_id_fail",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/catalogo/print-agent/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/print/jobs": {
      "get": {
        "tags": [
          "Agente de impressão"
        ],
        "summary": "Listar jobs recentes",
        "operationId": "get_print-agent_print_jobs",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/catalogo/print-agent/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "post": {
        "tags": [
          "Agente de impressão"
        ],
        "summary": "Enfileirar job (HTML/PDF)",
        "operationId": "post_print-agent_print_jobs",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/catalogo/print-agent/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/print/jobs/{id}": {
      "get": {
        "tags": [
          "Agente de impressão"
        ],
        "summary": "Prévia do job",
        "operationId": "get_print-agent_print_jobs_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/catalogo/print-agent/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "delete": {
        "tags": [
          "Agente de impressão"
        ],
        "summary": "Excluir job",
        "operationId": "delete_print-agent_print_jobs_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/catalogo/print-agent/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/print/jobs/{id}/cancel": {
      "post": {
        "tags": [
          "Agente de impressão"
        ],
        "summary": "Cancelar job",
        "operationId": "post_print-agent_print_jobs_id_cancel",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/catalogo/print-agent/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/print/jobs/{id}/requeue": {
      "post": {
        "tags": [
          "Agente de impressão"
        ],
        "summary": "Reenfileirar job",
        "operationId": "post_print-agent_print_jobs_id_requeue",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/catalogo/print-agent/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/pix/charges": {
      "post": {
        "tags": [
          "Cobranças PIX"
        ],
        "summary": "Cobranças",
        "operationId": "post_pix-charges_pix_charges",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/pix-charges/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/pix/charges/{id}/status": {
      "get": {
        "tags": [
          "Cobranças PIX"
        ],
        "summary": "Status da cobrança PIX",
        "operationId": "get_pix-charges_pix_charges_id_status",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/pix-charges/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/pix/charges/{id}": {
      "delete": {
        "tags": [
          "Cobranças PIX"
        ],
        "summary": "Excluir",
        "operationId": "delete_pix-charges_pix_charges_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/pix-charges/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/card-payments": {
      "post": {
        "tags": [
          "Pagamentos com cartão (online)"
        ],
        "summary": "Criar pagamento com cartão",
        "operationId": "post_card-payments_card_payments",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/card-payments/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/card-payments/{id}/status": {
      "get": {
        "tags": [
          "Pagamentos com cartão (online)"
        ],
        "summary": "Status",
        "operationId": "get_card-payments_card_payments_id_status",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/card-payments/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/card-payments/{id}": {
      "delete": {
        "tags": [
          "Pagamentos com cartão (online)"
        ],
        "summary": "Excluir",
        "operationId": "delete_card-payments_card_payments_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/card-payments/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/maquininha-operacoes/report": {
      "get": {
        "tags": [
          "Operações de maquininha"
        ],
        "summary": "Obter relatório",
        "operationId": "get_maquininha-operacoes_maquininha_operacoes_report",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/maquininha-operacoes/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/maquininha-operacoes": {
      "get": {
        "tags": [
          "Operações de maquininha"
        ],
        "summary": "Listar operações de maquininha",
        "operationId": "get_maquininha-operacoes_maquininha_operacoes",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/maquininha-operacoes/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "post": {
        "tags": [
          "Operações de maquininha"
        ],
        "summary": "Criar operação de maquininha",
        "operationId": "post_maquininha-operacoes_maquininha_operacoes",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/maquininha-operacoes/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/maquininha-operacoes/{id}/status": {
      "get": {
        "tags": [
          "Operações de maquininha"
        ],
        "summary": "Status",
        "operationId": "get_maquininha-operacoes_maquininha_operacoes_id_status",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/maquininha-operacoes/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/maquininha-operacoes/{id}": {
      "get": {
        "tags": [
          "Operações de maquininha"
        ],
        "summary": "Detalhe",
        "operationId": "get_maquininha-operacoes_maquininha_operacoes_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/maquininha-operacoes/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "delete": {
        "tags": [
          "Operações de maquininha"
        ],
        "summary": "Excluir",
        "operationId": "delete_maquininha-operacoes_maquininha_operacoes_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/maquininha-operacoes/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/ai/help/ask": {
      "post": {
        "tags": [
          "Inteligência artificial"
        ],
        "summary": "Perguntar sobre uso do sistema (IA)",
        "operationId": "post_ai_ai_help_ask",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/integracoes/ai/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/ai/reviews/analyze-pending": {
      "post": {
        "tags": [
          "Inteligência artificial"
        ],
        "summary": "Classificar avaliações e gerar análise (IA)",
        "operationId": "post_ai_ai_reviews_analyze_pending",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/integracoes/ai/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/ai/reviews/{id}/analyze": {
      "post": {
        "tags": [
          "Inteligência artificial"
        ],
        "summary": "Analisar avaliação (IA)",
        "operationId": "post_ai_ai_reviews_id_analyze",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/integracoes/ai/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/ai/reviews/summary": {
      "get": {
        "tags": [
          "Inteligência artificial"
        ],
        "summary": "Resumo de sentimento e temas",
        "operationId": "get_ai_ai_reviews_summary",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/integracoes/ai/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/ai/purchase/{purchaseId}/suggest-matches": {
      "post": {
        "tags": [
          "Inteligência artificial"
        ],
        "summary": "Sugerir vínculos de compra (IA)",
        "operationId": "post_ai_ai_purchase_purchaseId_suggest_matches",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/integracoes/ai/"
        },
        "parameters": [
          {
            "name": "purchaseId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/ai/fiscal/suggest": {
      "post": {
        "tags": [
          "Inteligência artificial"
        ],
        "summary": "Sugerir dados fiscais (IA)",
        "operationId": "post_ai_ai_fiscal_suggest",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/integracoes/ai/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/ai/fiscal/suggest-batch": {
      "post": {
        "tags": [
          "Inteligência artificial"
        ],
        "summary": "Sugerir fiscal em lote (IA)",
        "operationId": "post_ai_ai_fiscal_suggest_batch",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/integracoes/ai/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/ai/fiscal/audit": {
      "post": {
        "tags": [
          "Inteligência artificial"
        ],
        "summary": "Auditar fiscal (IA)",
        "operationId": "post_ai_ai_fiscal_audit",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/integracoes/ai/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/ai/fiscal/audit-batch": {
      "post": {
        "tags": [
          "Inteligência artificial"
        ],
        "summary": "Auditar fiscal em lote (IA)",
        "operationId": "post_ai_ai_fiscal_audit_batch",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/integracoes/ai/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/ai/fiscal/audit-all": {
      "post": {
        "tags": [
          "Inteligência artificial"
        ],
        "summary": "Auditar todo o cadastro fiscal (IA)",
        "operationId": "post_ai_ai_fiscal_audit_all",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/integracoes/ai/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/ai/reports/ask": {
      "post": {
        "tags": [
          "Inteligência artificial"
        ],
        "summary": "Perguntar ao Assistente Nive (dados da loja e uso)",
        "operationId": "post_ai_ai_reports_ask",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/integracoes/ai/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/ai/reports/insights": {
      "get": {
        "tags": [
          "Inteligência artificial"
        ],
        "summary": "Insights de relatórios (IA)",
        "operationId": "get_ai_ai_reports_insights",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/integracoes/ai/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/ai/dashboard/analyze": {
      "get": {
        "tags": [
          "Inteligência artificial"
        ],
        "summary": "Analisar dashboard (IA)",
        "operationId": "get_ai_ai_dashboard_analyze",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/integracoes/ai/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "post": {
        "tags": [
          "Inteligência artificial"
        ],
        "summary": "Analisar dashboard (IA)",
        "operationId": "post_ai_ai_dashboard_analyze",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/integracoes/ai/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/ai/pos/search": {
      "post": {
        "tags": [
          "Inteligência artificial"
        ],
        "summary": "Buscar",
        "operationId": "post_ai_ai_pos_search",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/integracoes/ai/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/ai/pos/tts": {
      "post": {
        "tags": [
          "Inteligência artificial"
        ],
        "summary": "Gerar áudio da leitura do produto no PDV",
        "operationId": "post_ai_ai_pos_tts",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/integracoes/ai/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/ai/stock/predictions": {
      "get": {
        "tags": [
          "Inteligência artificial"
        ],
        "summary": "Previsão de estoque (IA)",
        "operationId": "get_ai_ai_stock_predictions",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/integracoes/ai/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/ai/products/enrich": {
      "post": {
        "tags": [
          "Inteligência artificial"
        ],
        "summary": "Enriquecer produto (IA)",
        "operationId": "post_ai_ai_products_enrich",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/integracoes/ai/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/ai/products/title-suggest": {
      "post": {
        "tags": [
          "Inteligência artificial"
        ],
        "summary": "Sugerir títulos comerciais do produto (IA)",
        "operationId": "post_ai_ai_products_title_suggest",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/integracoes/ai/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/ai/purchases/variant-suggest": {
      "post": {
        "tags": [
          "Inteligência artificial"
        ],
        "summary": "Sugerir tamanho e cor das linhas da compra (IA)",
        "operationId": "post_ai_ai_purchases_variant_suggest",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/integracoes/ai/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/ai/products/category-suggest": {
      "post": {
        "tags": [
          "Inteligência artificial"
        ],
        "summary": "Sugerir categoria do produto (IA)",
        "operationId": "post_ai_ai_products_category_suggest",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/integracoes/ai/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/ai/products/fiscal-suggest": {
      "post": {
        "tags": [
          "Inteligência artificial"
        ],
        "summary": "Sugerir dados fiscais do produto (IA)",
        "operationId": "post_ai_ai_products_fiscal_suggest",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/integracoes/ai/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/ai/collection/suggest": {
      "post": {
        "tags": [
          "Inteligência artificial"
        ],
        "summary": "Sugerir mensagem de cobrança (IA)",
        "operationId": "post_ai_ai_collection_suggest",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/integracoes/ai/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/ai/collection/send-to-seller": {
      "post": {
        "tags": [
          "Inteligência artificial"
        ],
        "summary": "Enviar rascunho de cobrança ao WhatsApp do vendedor",
        "operationId": "post_ai_ai_collection_send_to_seller",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/integracoes/ai/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/ai-settings/features": {
      "get": {
        "tags": [
          "Configurações de IA"
        ],
        "summary": "Obter features disponíveis",
        "operationId": "get_ai-settings_ai_settings_features",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/integracoes/ai-settings/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/ai-settings": {
      "get": {
        "tags": [
          "Configurações de IA"
        ],
        "summary": "Obter configurações de IA",
        "operationId": "get_ai-settings_ai_settings",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/integracoes/ai-settings/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "put": {
        "tags": [
          "Configurações de IA"
        ],
        "summary": "Atualizar configurações de IA",
        "operationId": "put_ai-settings_ai_settings",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/integracoes/ai-settings/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/ai-settings/test": {
      "post": {
        "tags": [
          "Configurações de IA"
        ],
        "summary": "Testar provedor de IA",
        "operationId": "post_ai-settings_ai_settings_test",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/integracoes/ai-settings/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/assistant/status": {
      "get": {
        "tags": [
          "Assistente"
        ],
        "summary": "Status",
        "operationId": "get_assistant_assistant_status",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/integracoes/assistant/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/assistant/ask": {
      "post": {
        "tags": [
          "Assistente"
        ],
        "summary": "Perguntar como usar o sistema (IA)",
        "operationId": "post_assistant_assistant_ask",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/integracoes/assistant/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/shipments": {
      "get": {
        "tags": [
          "Envios / frete"
        ],
        "summary": "Listar envios (status, provedor, busca, filas de rastreio)",
        "operationId": "get_shipments_shipments",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/shipments/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "post": {
        "tags": [
          "Envios / frete"
        ],
        "summary": "Criar envio",
        "operationId": "post_shipments_shipments",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/shipments/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/shipments/quote": {
      "post": {
        "tags": [
          "Envios / frete"
        ],
        "summary": "Cotação de frete",
        "operationId": "post_shipments_shipments_quote",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/shipments/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/shipments/manual": {
      "post": {
        "tags": [
          "Envios / frete"
        ],
        "summary": "Criar envio manual",
        "operationId": "post_shipments_shipments_manual",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/shipments/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/shipments/superfrete/account": {
      "get": {
        "tags": [
          "Envios / frete"
        ],
        "summary": "Saldo e dados da carteira SuperFrete",
        "operationId": "get_shipments_shipments_superfrete_account",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/shipments/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/shipments/superfrete/orders": {
      "get": {
        "tags": [
          "Envios / frete"
        ],
        "summary": "Listar etiquetas da conta SuperFrete",
        "operationId": "get_shipments_shipments_superfrete_orders",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/shipments/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/shipments/superfrete/print": {
      "post": {
        "tags": [
          "Envios / frete"
        ],
        "summary": "Gerar PDF de impressão (uma ou várias etiquetas)",
        "operationId": "post_shipments_shipments_superfrete_print",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/shipments/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/shipments/{id}": {
      "get": {
        "tags": [
          "Envios / frete"
        ],
        "summary": "Detalhe",
        "operationId": "get_shipments_shipments_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/shipments/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/shipments/{id}/tracking-code": {
      "patch": {
        "tags": [
          "Envios / frete"
        ],
        "summary": "Atualizar tracking-code",
        "operationId": "patch_shipments_shipments_id_tracking_code",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/shipments/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/shipments/{id}/purchase": {
      "post": {
        "tags": [
          "Envios / frete"
        ],
        "summary": "Comprar etiqueta / frete",
        "operationId": "post_shipments_shipments_id_purchase",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/shipments/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/shipments/{id}/label": {
      "get": {
        "tags": [
          "Envios / frete"
        ],
        "summary": "Obter / renovar PDF da etiqueta",
        "operationId": "get_shipments_shipments_id_label",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/shipments/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/shipments/{id}/tracking": {
      "get": {
        "tags": [
          "Envios / frete"
        ],
        "summary": "Listar / obter tracking",
        "operationId": "get_shipments_shipments_id_tracking",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/shipments/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/shipments/{id}/notify-tracking": {
      "post": {
        "tags": [
          "Envios / frete"
        ],
        "summary": "Notificar rastreio",
        "operationId": "post_shipments_shipments_id_notify_tracking",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/shipments/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/shipments/{id}/cancel": {
      "post": {
        "tags": [
          "Envios / frete"
        ],
        "summary": "Cancelar",
        "operationId": "post_shipments_shipments_id_cancel",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/shipments/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/shipping-settings/status": {
      "get": {
        "tags": [
          "Configurações de frete"
        ],
        "summary": "Status",
        "operationId": "get_shipping-settings_shipping_settings_status",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/shipping-settings/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/shipping-settings": {
      "get": {
        "tags": [
          "Configurações de frete"
        ],
        "summary": "Obter configurações de frete",
        "operationId": "get_shipping-settings_shipping_settings",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/shipping-settings/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "put": {
        "tags": [
          "Configurações de frete"
        ],
        "summary": "Atualizar configurações de frete",
        "operationId": "put_shipping-settings_shipping_settings",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/shipping-settings/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/shipping-settings/authorize": {
      "get": {
        "tags": [
          "Configurações de frete"
        ],
        "summary": "Gerar a URL de autorização OAuth do Melhor Envio",
        "operationId": "get_shipping-settings_shipping_settings_authorize",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/shipping-settings/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/shipping-settings/test": {
      "post": {
        "tags": [
          "Configurações de frete"
        ],
        "summary": "Testar conexão com o provedor de frete",
        "operationId": "post_shipping-settings_shipping_settings_test",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/shipping-settings/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/shipping-settings/disconnect": {
      "post": {
        "tags": [
          "Configurações de frete"
        ],
        "summary": "Desconectar Melhor Envio",
        "operationId": "post_shipping-settings_shipping_settings_disconnect",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/shipping-settings/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/shipping-settings/oauth/callback": {
      "get": {
        "tags": [
          "Configurações de frete"
        ],
        "summary": "Callback OAuth Melhor Envio (público)",
        "operationId": "get_shipping-settings_shipping_settings_oauth_callback",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/shipping-settings/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/ecommerce": {
      "get": {
        "tags": [
          "E-commerce (Loja Integrada, Nuvemshop e Mercado Livre)"
        ],
        "summary": "Listar integrações e situação de cada uma",
        "operationId": "get_ecommerce_ecommerce",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/integracoes/ecommerce/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/ecommerce/{provider}": {
      "get": {
        "tags": [
          "E-commerce (Loja Integrada, Nuvemshop e Mercado Livre)"
        ],
        "summary": "Configuração da integração (credenciais nunca retornam, só hasAccessToken/hasApiKey)",
        "operationId": "get_ecommerce_ecommerce_provider",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/integracoes/ecommerce/"
        },
        "parameters": [
          {
            "name": "provider",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "put": {
        "tags": [
          "E-commerce (Loja Integrada, Nuvemshop e Mercado Livre)"
        ],
        "summary": "Salvar configuração",
        "operationId": "put_ecommerce_ecommerce_provider",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/integracoes/ecommerce/"
        },
        "parameters": [
          {
            "name": "provider",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "x-sensitive": true,
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [],
                "properties": {
                  "accessToken": {
                    "type": "string",
                    "description": "Token de acesso da plataforma"
                  },
                  "apiKey": {
                    "type": "string",
                    "description": "Chave de API (Loja Integrada)"
                  },
                  "appKey": {
                    "type": "string",
                    "description": "Chave de aplicação (Loja Integrada)"
                  },
                  "storeId": {
                    "type": "string",
                    "description": "ID da loja (Nuvemshop)"
                  },
                  "syncProducts": {
                    "type": "boolean",
                    "description": "Enviar produtos"
                  },
                  "syncPrices": {
                    "type": "boolean",
                    "description": "Enviar preços"
                  },
                  "syncStock": {
                    "type": "boolean",
                    "description": "Enviar estoque"
                  },
                  "syncOrders": {
                    "type": "boolean",
                    "description": "Importar pedidos"
                  },
                  "priceListId": {
                    "type": "string",
                    "format": "uuid",
                    "description": "Tabela de preço usada no canal"
                  },
                  "stockLocationId": {
                    "type": "string",
                    "format": "uuid",
                    "description": "Filial do estoque publicado e dos pedidos (null = rede toda)"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/ecommerce/{provider}/test": {
      "post": {
        "tags": [
          "E-commerce (Loja Integrada, Nuvemshop e Mercado Livre)"
        ],
        "summary": "Testar a conexão",
        "operationId": "post_ecommerce_ecommerce_provider_test",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/integracoes/ecommerce/"
        },
        "parameters": [
          {
            "name": "provider",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/ecommerce/{provider}/disconnect": {
      "post": {
        "tags": [
          "E-commerce (Loja Integrada, Nuvemshop e Mercado Livre)"
        ],
        "summary": "Desconectar e apagar credenciais",
        "operationId": "post_ecommerce_ecommerce_provider_disconnect",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/integracoes/ecommerce/"
        },
        "parameters": [
          {
            "name": "provider",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/ecommerce/{provider}/sync": {
      "post": {
        "tags": [
          "E-commerce (Loja Integrada, Nuvemshop e Mercado Livre)"
        ],
        "summary": "Enfileirar sincronização completa",
        "operationId": "post_ecommerce_ecommerce_provider_sync",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/integracoes/ecommerce/"
        },
        "parameters": [
          {
            "name": "provider",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "202 Accepted"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/ecommerce/{provider}/map-products": {
      "post": {
        "tags": [
          "E-commerce (Loja Integrada, Nuvemshop e Mercado Livre)"
        ],
        "summary": "Vincular produtos locais aos da loja virtual (por SKU)",
        "operationId": "post_ecommerce_ecommerce_provider_map_products",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/integracoes/ecommerce/"
        },
        "parameters": [
          {
            "name": "provider",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/ecommerce/{provider}/maps": {
      "get": {
        "tags": [
          "E-commerce (Loja Integrada, Nuvemshop e Mercado Livre)"
        ],
        "summary": "Vínculos produto/pedido (últimos 100)",
        "operationId": "get_ecommerce_ecommerce_provider_maps",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/integracoes/ecommerce/"
        },
        "parameters": [
          {
            "name": "provider",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "errors",
            "in": "query",
            "required": false,
            "description": "Somente vínculos com erro (true)",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/ecommerce/{provider}/jobs": {
      "get": {
        "tags": [
          "E-commerce (Loja Integrada, Nuvemshop e Mercado Livre)"
        ],
        "summary": "Fila de sincronização (últimos 50 jobs)",
        "operationId": "get_ecommerce_ecommerce_provider_jobs",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/integracoes/ecommerce/"
        },
        "parameters": [
          {
            "name": "provider",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/ecommerce/mercado-livre": {
      "get": {
        "tags": [
          "E-commerce (Loja Integrada, Nuvemshop e Mercado Livre)"
        ],
        "summary": "Configuração e conta conectada do Mercado Livre",
        "operationId": "get_ecommerce_ecommerce_mercado_livre",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/integracoes/ecommerce/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "put": {
        "tags": [
          "E-commerce (Loja Integrada, Nuvemshop e Mercado Livre)"
        ],
        "summary": "Salvar opções de sincronização",
        "operationId": "put_ecommerce_ecommerce_mercado_livre",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/integracoes/ecommerce/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [],
                "properties": {
                  "syncProducts": {
                    "type": "boolean",
                    "description": "Enviar produtos"
                  },
                  "syncPrices": {
                    "type": "boolean",
                    "description": "Enviar preços"
                  },
                  "syncStock": {
                    "type": "boolean",
                    "description": "Enviar estoque"
                  },
                  "syncOrders": {
                    "type": "boolean",
                    "description": "Importar pedidos"
                  },
                  "priceListId": {
                    "type": "string",
                    "format": "uuid",
                    "description": "Tabela de preço do canal"
                  },
                  "stockLocationId": {
                    "type": "string",
                    "format": "uuid",
                    "description": "Filial do estoque (null = rede toda)"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/ecommerce/mercado-livre/oauth/start": {
      "post": {
        "tags": [
          "E-commerce (Loja Integrada, Nuvemshop e Mercado Livre)"
        ],
        "summary": "Gerar URL de autorização OAuth — retorna { url }",
        "operationId": "post_ecommerce_ecommerce_mercado_livre_oauth_start",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/integracoes/ecommerce/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/ecommerce/mercado-livre/test": {
      "post": {
        "tags": [
          "E-commerce (Loja Integrada, Nuvemshop e Mercado Livre)"
        ],
        "summary": "Testar a conexão",
        "operationId": "post_ecommerce_ecommerce_mercado_livre_test",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/integracoes/ecommerce/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/ecommerce/mercado-livre/disconnect": {
      "post": {
        "tags": [
          "E-commerce (Loja Integrada, Nuvemshop e Mercado Livre)"
        ],
        "summary": "Desconectar a conta",
        "operationId": "post_ecommerce_ecommerce_mercado_livre_disconnect",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/integracoes/ecommerce/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/ecommerce/mercado-livre/sync": {
      "post": {
        "tags": [
          "E-commerce (Loja Integrada, Nuvemshop e Mercado Livre)"
        ],
        "summary": "Enfileirar sincronização completa",
        "operationId": "post_ecommerce_ecommerce_mercado_livre_sync",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/integracoes/ecommerce/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "202 Accepted"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/ecommerce/mercado-livre/map-products": {
      "post": {
        "tags": [
          "E-commerce (Loja Integrada, Nuvemshop e Mercado Livre)"
        ],
        "summary": "Vincular anúncios da conta aos produtos locais (por SKU)",
        "operationId": "post_ecommerce_ecommerce_mercado_livre_map_products",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/integracoes/ecommerce/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/ecommerce/mercado-livre/listings": {
      "get": {
        "tags": [
          "E-commerce (Loja Integrada, Nuvemshop e Mercado Livre)"
        ],
        "summary": "Listar anúncios",
        "operationId": "get_ecommerce_ecommerce_mercado_livre_listings",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/integracoes/ecommerce/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "post": {
        "tags": [
          "E-commerce (Loja Integrada, Nuvemshop e Mercado Livre)"
        ],
        "summary": "Criar anúncio (rascunho)",
        "operationId": "post_ecommerce_ecommerce_mercado_livre_listings",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/integracoes/ecommerce/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "productId"
                ],
                "properties": {
                  "productId": {
                    "type": "string",
                    "format": "uuid",
                    "description": "Produto"
                  },
                  "variantId": {
                    "type": "string",
                    "format": "uuid",
                    "description": "Variante"
                  },
                  "title": {
                    "type": "string",
                    "description": "Título do anúncio"
                  },
                  "categoryId": {
                    "type": "string",
                    "description": "Categoria ML (ex.: MLB1234)"
                  },
                  "listingTypeId": {
                    "type": "string",
                    "description": "gold_special ou gold_pro"
                  },
                  "condition": {
                    "type": "string",
                    "description": "new (padrão) ou used"
                  },
                  "attributesJson": {
                    "type": "string",
                    "description": "Atributos da categoria em JSON"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/ecommerce/mercado-livre/listings/{id}": {
      "patch": {
        "tags": [
          "E-commerce (Loja Integrada, Nuvemshop e Mercado Livre)"
        ],
        "summary": "Editar anúncio (título, categoria, tipo, condição, atributos)",
        "operationId": "patch_ecommerce_ecommerce_mercado_livre_listings_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/integracoes/ecommerce/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/ecommerce/mercado-livre/listings/map-existing": {
      "post": {
        "tags": [
          "E-commerce (Loja Integrada, Nuvemshop e Mercado Livre)"
        ],
        "summary": "Vincular um anúncio já publicado a um produto",
        "operationId": "post_ecommerce_ecommerce_mercado_livre_listings_map_existing",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/integracoes/ecommerce/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "productId",
                  "externalId"
                ],
                "properties": {
                  "productId": {
                    "type": "string",
                    "format": "uuid",
                    "description": "Produto"
                  },
                  "variantId": {
                    "type": "string",
                    "format": "uuid",
                    "description": "Variante"
                  },
                  "externalId": {
                    "type": "string",
                    "description": "ID do anúncio (MLB…)"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/ecommerce/mercado-livre/listings/{id}/publish": {
      "post": {
        "tags": [
          "E-commerce (Loja Integrada, Nuvemshop e Mercado Livre)"
        ],
        "summary": "Publicar anúncio",
        "operationId": "post_ecommerce_ecommerce_mercado_livre_listings_id_publish",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/integracoes/ecommerce/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/ecommerce/mercado-livre/listings/publish-batch": {
      "post": {
        "tags": [
          "E-commerce (Loja Integrada, Nuvemshop e Mercado Livre)"
        ],
        "summary": "Publicar vários anúncios",
        "operationId": "post_ecommerce_ecommerce_mercado_livre_listings_publish_batch",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/integracoes/ecommerce/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "listingIds",
                  "confirm"
                ],
                "properties": {
                  "listingIds": {
                    "type": "string",
                    "description": "Até 50 anúncios"
                  },
                  "confirm": {
                    "type": "boolean",
                    "description": "Deve ser true"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/ecommerce/mercado-livre/listings/{id}/pause": {
      "post": {
        "tags": [
          "E-commerce (Loja Integrada, Nuvemshop e Mercado Livre)"
        ],
        "summary": "Pausar anúncio",
        "operationId": "post_ecommerce_ecommerce_mercado_livre_listings_id_pause",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/integracoes/ecommerce/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/ecommerce/mercado-livre/listings/{id}/activate": {
      "post": {
        "tags": [
          "E-commerce (Loja Integrada, Nuvemshop e Mercado Livre)"
        ],
        "summary": "Reativar anúncio",
        "operationId": "post_ecommerce_ecommerce_mercado_livre_listings_id_activate",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/integracoes/ecommerce/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/ecommerce/mercado-livre/suggest-category": {
      "post": {
        "tags": [
          "E-commerce (Loja Integrada, Nuvemshop e Mercado Livre)"
        ],
        "summary": "Sugerir categoria a partir do título",
        "operationId": "post_ecommerce_ecommerce_mercado_livre_suggest_category",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/integracoes/ecommerce/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "title"
                ],
                "properties": {
                  "title": {
                    "type": "string",
                    "description": "Título (3–120)"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/ecommerce/mercado-livre/categories/{categoryId}/attributes": {
      "get": {
        "tags": [
          "E-commerce (Loja Integrada, Nuvemshop e Mercado Livre)"
        ],
        "summary": "Atributos exigidos pela categoria",
        "operationId": "get_ecommerce_ecommerce_mercado_livre_categories_categoryId_attributes",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/integracoes/ecommerce/"
        },
        "parameters": [
          {
            "name": "categoryId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/ecommerce/mercado-livre/maps": {
      "get": {
        "tags": [
          "E-commerce (Loja Integrada, Nuvemshop e Mercado Livre)"
        ],
        "summary": "Vínculos produto/pedido",
        "operationId": "get_ecommerce_ecommerce_mercado_livre_maps",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/integracoes/ecommerce/"
        },
        "parameters": [
          {
            "name": "errors",
            "in": "query",
            "required": false,
            "description": "Somente com erro (true)",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/ecommerce/mercado-livre/jobs": {
      "get": {
        "tags": [
          "E-commerce (Loja Integrada, Nuvemshop e Mercado Livre)"
        ],
        "summary": "Fila de sincronização",
        "operationId": "get_ecommerce_ecommerce_mercado_livre_jobs",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/integracoes/ecommerce/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/convenience/settings": {
      "get": {
        "tags": [
          "Catálogo online (admin)"
        ],
        "summary": "Obter configurações",
        "operationId": "get_convenience_convenience_settings",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/integracoes/convenience/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "put": {
        "tags": [
          "Catálogo online (admin)"
        ],
        "summary": "Atualizar configurações",
        "operationId": "put_convenience_convenience_settings",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/integracoes/convenience/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/convenience/cities": {
      "get": {
        "tags": [
          "Catálogo online (admin)"
        ],
        "summary": "Listar cidades",
        "operationId": "get_convenience_convenience_cities",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/integracoes/convenience/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "post": {
        "tags": [
          "Catálogo online (admin)"
        ],
        "summary": "Criar cidade",
        "operationId": "post_convenience_convenience_cities",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/integracoes/convenience/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/convenience/cities/{id}": {
      "put": {
        "tags": [
          "Catálogo online (admin)"
        ],
        "summary": "Atualizar cidade",
        "operationId": "put_convenience_convenience_cities_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/integracoes/convenience/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "delete": {
        "tags": [
          "Catálogo online (admin)"
        ],
        "summary": "Excluir",
        "operationId": "delete_convenience_convenience_cities_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/integracoes/convenience/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/convenience/cities/{cityId}/neighborhoods": {
      "post": {
        "tags": [
          "Catálogo online (admin)"
        ],
        "summary": "Criar bairro",
        "operationId": "post_convenience_convenience_cities_cityId_neighborhoods",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/integracoes/convenience/"
        },
        "parameters": [
          {
            "name": "cityId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/convenience/neighborhoods/{id}": {
      "put": {
        "tags": [
          "Catálogo online (admin)"
        ],
        "summary": "Atualizar bairro",
        "operationId": "put_convenience_convenience_neighborhoods_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/integracoes/convenience/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "delete": {
        "tags": [
          "Catálogo online (admin)"
        ],
        "summary": "Excluir bairro",
        "operationId": "delete_convenience_convenience_neighborhoods_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/integracoes/convenience/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/convenience/catalog-products": {
      "get": {
        "tags": [
          "Catálogo online (admin)"
        ],
        "summary": "Listar produtos do catálogo (paginado)",
        "operationId": "get_convenience_convenience_catalog_products",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/integracoes/convenience/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/convenience/catalog-products/{id}": {
      "patch": {
        "tags": [
          "Catálogo online (admin)"
        ],
        "summary": "Atualizar",
        "operationId": "patch_convenience_convenience_catalog_products_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/integracoes/convenience/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/convenience/orders": {
      "get": {
        "tags": [
          "Catálogo online (admin)"
        ],
        "summary": "Listar pedidos",
        "operationId": "get_convenience_convenience_orders",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/integracoes/convenience/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/convenience/orders/summary": {
      "get": {
        "tags": [
          "Catálogo online (admin)"
        ],
        "summary": "Resumo",
        "operationId": "get_convenience_convenience_orders_summary",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/integracoes/convenience/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/convenience/orders/{id}": {
      "get": {
        "tags": [
          "Catálogo online (admin)"
        ],
        "summary": "Detalhe",
        "operationId": "get_convenience_convenience_orders_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/integracoes/convenience/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/convenience/orders/{id}/fulfillment": {
      "patch": {
        "tags": [
          "Catálogo online (admin)"
        ],
        "summary": "Atualizar fulfillment do pedido",
        "operationId": "patch_convenience_convenience_orders_id_fulfillment",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/integracoes/convenience/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/convenience/orders/{id}/finalize-cod": {
      "post": {
        "tags": [
          "Catálogo online (admin)"
        ],
        "summary": "Finalizar pedido COD",
        "operationId": "post_convenience_convenience_orders_id_finalize_cod",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/integracoes/convenience/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/convenience/catalogs": {
      "get": {
        "tags": [
          "Catálogo online (admin)"
        ],
        "summary": "Listar catálogos online",
        "operationId": "get_convenience_convenience_catalogs",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/integracoes/convenience/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "post": {
        "tags": [
          "Catálogo online (admin)"
        ],
        "summary": "Criar catálogo",
        "operationId": "post_convenience_convenience_catalogs",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/integracoes/convenience/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "201 Created"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "name"
                ],
                "properties": {
                  "name": {
                    "type": "string",
                    "description": "Nome"
                  },
                  "active": {
                    "type": "boolean",
                    "description": "Ativo"
                  },
                  "templateId": {
                    "type": "string",
                    "description": "Modelo visual"
                  },
                  "brandColor": {
                    "type": "string",
                    "description": "Cor da marca"
                  },
                  "whatsappOrderEnabled": {
                    "type": "boolean",
                    "description": "Pedido via WhatsApp"
                  },
                  "whatsappPhone": {
                    "type": "string",
                    "description": "WhatsApp"
                  },
                  "showInactiveProducts": {
                    "type": "boolean",
                    "description": "Mostra produtos inativos como Indisponível (sem compra)"
                  },
                  "showOutOfStock": {
                    "type": "boolean",
                    "description": "Mostra produtos esgotados como Esgotado (sem compra)"
                  },
                  "carouselLayout": {
                    "type": "boolean",
                    "description": "Vitrine em carrossel por categoria (padrão: grade)"
                  },
                  "showWhatsappContact": {
                    "type": "boolean",
                    "description": "Botão de WhatsApp no topo da vitrine (usa whatsappPhone)"
                  },
                  "bannerDataUrl": {
                    "type": "string",
                    "description": "Banner no topo da vitrine (data URL PNG/JPEG/WebP; null remove)"
                  },
                  "fulfillmentLocationId": {
                    "type": "string",
                    "format": "uuid",
                    "description": "Local que atende"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/convenience/catalogs/{id}": {
      "patch": {
        "tags": [
          "Catálogo online (admin)"
        ],
        "summary": "Atualizar catálogo",
        "operationId": "patch_convenience_convenience_catalogs_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/integracoes/convenience/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "delete": {
        "tags": [
          "Catálogo online (admin)"
        ],
        "summary": "Excluir catálogo",
        "operationId": "delete_convenience_convenience_catalogs_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/integracoes/convenience/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "204 No Content"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/convenience/orders/{id}/delivery-fee": {
      "patch": {
        "tags": [
          "Catálogo online (admin)"
        ],
        "summary": "Ajustar a taxa de entrega do pedido",
        "operationId": "patch_convenience_convenience_orders_id_delivery_fee",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/integracoes/convenience/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "fee"
                ],
                "properties": {
                  "fee": {
                    "type": "number",
                    "description": "Taxa"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/convenience/catalog-products/add-all": {
      "post": {
        "tags": [
          "Catálogo online (admin)"
        ],
        "summary": "Incluir no catálogo online todos os produtos ativos que ainda não estão nele",
        "operationId": "post_convenience_convenience_catalog_products_add_all",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/integracoes/convenience/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "{ catalog: { id, name }, added }. Não inclui produto composto com composição incompleta. 404 se o catálogo informado não existe."
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [],
                "properties": {
                  "catalogId": {
                    "type": "string",
                    "description": "Catálogo (omitido = o catálogo padrão)"
                  },
                  "q": {
                    "type": "string",
                    "description": "Só produtos cuja descrição contenha o texto (até 200)"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/mercadopago-settings/webhook-logs": {
      "get": {
        "tags": [
          "Mercado Pago"
        ],
        "summary": "Logs de webhook",
        "operationId": "get_mercadopago-settings_mercadopago_settings_webhook_logs",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/mercadopago-settings/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "delete": {
        "tags": [
          "Mercado Pago"
        ],
        "summary": "Limpar logs de webhook",
        "operationId": "delete_mercadopago-settings_mercadopago_settings_webhook_logs",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/mercadopago-settings/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/mercadopago-settings/status": {
      "get": {
        "tags": [
          "Mercado Pago"
        ],
        "summary": "Status",
        "operationId": "get_mercadopago-settings_mercadopago_settings_status",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/mercadopago-settings/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/mercadopago-settings": {
      "get": {
        "tags": [
          "Mercado Pago"
        ],
        "summary": "Configurações Mercado Pago",
        "operationId": "get_mercadopago-settings_mercadopago_settings",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/mercadopago-settings/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "put": {
        "tags": [
          "Mercado Pago"
        ],
        "summary": "Substituir mercadopago-settings",
        "operationId": "put_mercadopago-settings_mercadopago_settings",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/mercadopago-settings/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/mercadopago-settings/test": {
      "post": {
        "tags": [
          "Mercado Pago"
        ],
        "summary": "Testar conexão Mercado Pago",
        "operationId": "post_mercadopago-settings_mercadopago_settings_test",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/mercadopago-settings/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/static-pix-settings/status": {
      "get": {
        "tags": [
          "PIX estático"
        ],
        "summary": "Status",
        "operationId": "get_static-pix-settings_static_pix_settings_status",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/static-pix-settings/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/static-pix-settings": {
      "get": {
        "tags": [
          "PIX estático"
        ],
        "summary": "Configurações PIX estático",
        "operationId": "get_static-pix-settings_static_pix_settings",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/static-pix-settings/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "put": {
        "tags": [
          "PIX estático"
        ],
        "summary": "Atualizar PIX estático",
        "operationId": "put_static-pix-settings_static_pix_settings",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/static-pix-settings/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/point-terminal-settings/status": {
      "get": {
        "tags": [
          "Terminal Point (MP)"
        ],
        "summary": "Status",
        "operationId": "get_point-terminal-settings_point_terminal_settings_status",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/point-terminal-settings/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/point-terminal-settings": {
      "get": {
        "tags": [
          "Terminal Point (MP)"
        ],
        "summary": "Configurações do terminal Point",
        "operationId": "get_point-terminal-settings_point_terminal_settings",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/point-terminal-settings/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "put": {
        "tags": [
          "Terminal Point (MP)"
        ],
        "summary": "Substituir point-terminal-settings",
        "operationId": "put_point-terminal-settings_point_terminal_settings",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/point-terminal-settings/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/point-terminal-settings/test": {
      "post": {
        "tags": [
          "Terminal Point (MP)"
        ],
        "summary": "Testar conexão do terminal Point",
        "operationId": "post_point-terminal-settings_point_terminal_settings_test",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/point-terminal-settings/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/point-terminal-settings/test-installment": {
      "post": {
        "tags": [
          "Terminal Point (MP)"
        ],
        "summary": "Testar parcela no terminal",
        "operationId": "post_point-terminal-settings_point_terminal_settings_test_installment",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/point-terminal-settings/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/point-terminal-settings/test-installment/{intentId}": {
      "get": {
        "tags": [
          "Terminal Point (MP)"
        ],
        "summary": "Obter :intentId",
        "operationId": "get_point-terminal-settings_point_terminal_settings_test_installment_intentId",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/point-terminal-settings/"
        },
        "parameters": [
          {
            "name": "intentId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "delete": {
        "tags": [
          "Terminal Point (MP)"
        ],
        "summary": "Excluir :intentId",
        "operationId": "delete_point-terminal-settings_point_terminal_settings_test_installment_intentId",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/point-terminal-settings/"
        },
        "parameters": [
          {
            "name": "intentId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/whatsapp-settings": {
      "get": {
        "tags": [
          "WhatsApp (config)"
        ],
        "summary": "Configurações WhatsApp",
        "operationId": "get_whatsapp-settings_whatsapp_settings",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/acesso/whatsapp-settings/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "put": {
        "tags": [
          "WhatsApp (config)"
        ],
        "summary": "Substituir whatsapp-settings",
        "operationId": "put_whatsapp-settings_whatsapp_settings",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/acesso/whatsapp-settings/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/whatsapp-settings/test": {
      "post": {
        "tags": [
          "WhatsApp (config)"
        ],
        "summary": "Enviar mensagem de teste pela Cloud API",
        "operationId": "post_whatsapp-settings_whatsapp_settings_test",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/acesso/whatsapp-settings/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/whatsapp-recipients": {
      "get": {
        "tags": [
          "WhatsApp (destinatários)"
        ],
        "summary": "Listar destinatários WhatsApp",
        "operationId": "get_whatsapp-recipients_whatsapp_recipients",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/acesso/whatsapp-recipients/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "post": {
        "tags": [
          "WhatsApp (destinatários)"
        ],
        "summary": "Criar destinatário WhatsApp",
        "operationId": "post_whatsapp-recipients_whatsapp_recipients",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/acesso/whatsapp-recipients/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/whatsapp-recipients/{id}": {
      "patch": {
        "tags": [
          "WhatsApp (destinatários)"
        ],
        "summary": "Atualizar",
        "operationId": "patch_whatsapp-recipients_whatsapp_recipients_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/acesso/whatsapp-recipients/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "delete": {
        "tags": [
          "WhatsApp (destinatários)"
        ],
        "summary": "Excluir",
        "operationId": "delete_whatsapp-recipients_whatsapp_recipients_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/acesso/whatsapp-recipients/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/email-recipients": {
      "get": {
        "tags": [
          "Destinatários de e-mail"
        ],
        "summary": "Listar destinatários de e-mail",
        "operationId": "get_email-recipients_email_recipients",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/acesso/email-recipients/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "post": {
        "tags": [
          "Destinatários de e-mail"
        ],
        "summary": "Criar destinatário de e-mail",
        "operationId": "post_email-recipients_email_recipients",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/acesso/email-recipients/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/email-recipients/{id}": {
      "patch": {
        "tags": [
          "Destinatários de e-mail"
        ],
        "summary": "Atualizar",
        "operationId": "patch_email-recipients_email_recipients_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/acesso/email-recipients/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "delete": {
        "tags": [
          "Destinatários de e-mail"
        ],
        "summary": "Excluir",
        "operationId": "delete_email-recipients_email_recipients_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/acesso/email-recipients/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/storage-settings": {
      "get": {
        "tags": [
          "Armazenamento (S3)"
        ],
        "summary": "Configurações de armazenamento",
        "operationId": "get_storage-settings_storage_settings",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/acesso/storage-settings/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "put": {
        "tags": [
          "Armazenamento (S3)"
        ],
        "summary": "Atualizar armazenamento",
        "operationId": "put_storage-settings_storage_settings",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/acesso/storage-settings/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/storage-settings/test-s3": {
      "post": {
        "tags": [
          "Armazenamento (S3)"
        ],
        "summary": "Testar conexão S3",
        "operationId": "post_storage-settings_storage_settings_test_s3",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/acesso/storage-settings/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/user-profiles/catalog": {
      "get": {
        "tags": [
          "Perfis de usuário"
        ],
        "summary": "Catálogo de permissões de perfil",
        "operationId": "get_user-profiles_user_profiles_catalog",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/acesso/user-profiles/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/user-profiles": {
      "get": {
        "tags": [
          "Perfis de usuário"
        ],
        "summary": "Listar perfis",
        "operationId": "get_user-profiles_user_profiles",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/acesso/user-profiles/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "post": {
        "tags": [
          "Perfis de usuário"
        ],
        "summary": "Criar perfil",
        "operationId": "post_user-profiles_user_profiles",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/acesso/user-profiles/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/user-profiles/{id}": {
      "get": {
        "tags": [
          "Perfis de usuário"
        ],
        "summary": "Detalhe",
        "operationId": "get_user-profiles_user_profiles_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/acesso/user-profiles/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "patch": {
        "tags": [
          "Perfis de usuário"
        ],
        "summary": "Atualizar",
        "operationId": "patch_user-profiles_user_profiles_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/acesso/user-profiles/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "delete": {
        "tags": [
          "Perfis de usuário"
        ],
        "summary": "Excluir",
        "operationId": "delete_user-profiles_user_profiles_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/acesso/user-profiles/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/system-notifications": {
      "get": {
        "tags": [
          "Notificações do sistema"
        ],
        "summary": "Listar notificações",
        "operationId": "get_system-notifications_system_notifications",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/acesso/system-notifications/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/system-notifications/mark-all-read": {
      "post": {
        "tags": [
          "Notificações do sistema"
        ],
        "summary": "Marcar todas como lidas",
        "operationId": "post_system-notifications_system_notifications_mark_all_read",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/acesso/system-notifications/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/system-notifications/read": {
      "post": {
        "tags": [
          "Notificações do sistema"
        ],
        "summary": "Marcar notificações como lidas",
        "operationId": "post_system-notifications_system_notifications_read",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/acesso/system-notifications/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/system-notifications/{notificationId}/read": {
      "post": {
        "tags": [
          "Notificações do sistema"
        ],
        "summary": "Marcar notificação como lida",
        "operationId": "post_system-notifications_system_notifications_notificationId_read",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/acesso/system-notifications/"
        },
        "parameters": [
          {
            "name": "notificationId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/paf/settings": {
      "get": {
        "tags": [
          "PAF / Menu fiscal"
        ],
        "summary": "Obter configurações",
        "operationId": "get_paf_paf_settings",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/paf/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "put": {
        "tags": [
          "PAF / Menu fiscal"
        ],
        "summary": "Atualizar configurações",
        "operationId": "put_paf_paf_settings",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/paf/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/paf/identification": {
      "get": {
        "tags": [
          "PAF / Menu fiscal"
        ],
        "summary": "Listar / obter identification",
        "operationId": "get_paf_paf_identification",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/paf/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/paf/build-md5": {
      "get": {
        "tags": [
          "PAF / Menu fiscal"
        ],
        "summary": "Listar / obter build-md5",
        "operationId": "get_paf_paf_build_md5",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/paf/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/paf/build-md5/sync": {
      "post": {
        "tags": [
          "PAF / Menu fiscal"
        ],
        "summary": "Sincronizar MD5 PAF",
        "operationId": "post_paf_paf_build_md5_sync",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/paf/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/paf/export/arquivo-i": {
      "get": {
        "tags": [
          "PAF / Menu fiscal"
        ],
        "summary": "Listar / obter arquivo-i",
        "operationId": "get_paf_paf_export_arquivo_i",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/paf/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/paf/export/arquivo-ii": {
      "get": {
        "tags": [
          "PAF / Menu fiscal"
        ],
        "summary": "Listar / obter arquivo-ii",
        "operationId": "get_paf_paf_export_arquivo_ii",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/paf/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/paf/export/arquivo-iii": {
      "get": {
        "tags": [
          "PAF / Menu fiscal"
        ],
        "summary": "Listar / obter arquivo-iii",
        "operationId": "get_paf_paf_export_arquivo_iii",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/paf/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/paf/export/arquivo-iv": {
      "get": {
        "tags": [
          "PAF / Menu fiscal"
        ],
        "summary": "Listar / obter arquivo-iv",
        "operationId": "get_paf_paf_export_arquivo_iv",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/vendas/paf/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/workers": {
      "get": {
        "tags": [
          "Workers / jobs"
        ],
        "summary": "Listar workers/jobs",
        "operationId": "get_workers_workers",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/acesso/workers/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/workers/{id}": {
      "get": {
        "tags": [
          "Workers / jobs"
        ],
        "summary": "Detalhe",
        "operationId": "get_workers_workers_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/acesso/workers/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "patch": {
        "tags": [
          "Workers / jobs"
        ],
        "summary": "Atualizar",
        "operationId": "patch_workers_workers_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/acesso/workers/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/workers/{id}/actions": {
      "post": {
        "tags": [
          "Workers / jobs"
        ],
        "summary": "Executar ação no job",
        "operationId": "post_workers_workers_id_actions",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/acesso/workers/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/billing/config": {
      "get": {
        "tags": [
          "Assinatura / billing"
        ],
        "summary": "Configuração de billing",
        "operationId": "get_billing_billing_config",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/acesso/billing/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/billing/plans": {
      "get": {
        "tags": [
          "Assinatura / billing"
        ],
        "summary": "Listar planos",
        "operationId": "get_billing_billing_plans",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/acesso/billing/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/billing/status": {
      "get": {
        "tags": [
          "Assinatura / billing"
        ],
        "summary": "Status",
        "operationId": "get_billing_billing_status",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/acesso/billing/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/billing/payments": {
      "get": {
        "tags": [
          "Assinatura / billing"
        ],
        "summary": "Obter pagamentos / baixas",
        "operationId": "get_billing_billing_payments",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/acesso/billing/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/billing/cards": {
      "get": {
        "tags": [
          "Assinatura / billing"
        ],
        "summary": "Listar cartões",
        "operationId": "get_billing_billing_cards",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/acesso/billing/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/billing/subscribe": {
      "post": {
        "tags": [
          "Assinatura / billing"
        ],
        "summary": "Assinar plano",
        "operationId": "post_billing_billing_subscribe",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/acesso/billing/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/billing/pix/renew": {
      "post": {
        "tags": [
          "Assinatura / billing"
        ],
        "summary": "Renovar via PIX",
        "operationId": "post_billing_billing_pix_renew",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/acesso/billing/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/billing/pix/reconcile": {
      "post": {
        "tags": [
          "Assinatura / billing"
        ],
        "summary": "Reconciliar PIX pendente",
        "operationId": "post_billing_billing_pix_reconcile",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/acesso/billing/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/billing/auto-renewal/cancel": {
      "post": {
        "tags": [
          "Assinatura / billing"
        ],
        "summary": "Desligar pagamento automático no cartão (cancelar ou trocar por PIX)",
        "operationId": "post_billing_billing_auto_renewal_cancel",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/acesso/billing/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/store-subscription": {
      "get": {
        "tags": [
          "Assinatura da loja"
        ],
        "summary": "Assinatura da loja",
        "operationId": "get_store-subscription_store_subscription",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/acesso/store-subscription/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/health": {
      "get": {
        "tags": [
          "Rotas públicas (sem autenticação)"
        ],
        "summary": "Health check — { ok, service }",
        "operationId": "get_public_health",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/integracoes/public/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/public/reviews/{token}": {
      "get": {
        "tags": [
          "Rotas públicas (sem autenticação)"
        ],
        "summary": "Obter avaliação pendente (link enviado ao cliente)",
        "operationId": "get_public_public_reviews_token",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/integracoes/public/"
        },
        "parameters": [
          {
            "name": "token",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "post": {
        "tags": [
          "Rotas públicas (sem autenticação)"
        ],
        "summary": "Enviar resposta de avaliação",
        "operationId": "post_public_public_reviews_token",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/integracoes/public/"
        },
        "parameters": [
          {
            "name": "token",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "rating",
                  "npsScore"
                ],
                "properties": {
                  "rating": {
                    "type": "integer",
                    "description": "Nota de 1 a 5"
                  },
                  "npsScore": {
                    "type": "integer",
                    "description": "NPS de 0 a 10"
                  },
                  "comment": {
                    "type": "string",
                    "description": "Comentário opcional"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/public/checkout/{token}": {
      "get": {
        "tags": [
          "Rotas públicas (sem autenticação)"
        ],
        "summary": "Resumo da venda para checkout por link (sem login)",
        "operationId": "get_public_public_checkout_token",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/integracoes/public/"
        },
        "parameters": [
          {
            "name": "token",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/public/checkout/{token}/config": {
      "get": {
        "tags": [
          "Rotas públicas (sem autenticação)"
        ],
        "summary": "Public Key MP e flags do checkout online",
        "operationId": "get_public_public_checkout_token_config",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/integracoes/public/"
        },
        "parameters": [
          {
            "name": "token",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/public/checkout/{token}/customer": {
      "post": {
        "tags": [
          "Rotas públicas (sem autenticação)"
        ],
        "summary": "Identificar/atualizar cliente no checkout",
        "operationId": "post_public_public_checkout_token_customer",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/integracoes/public/"
        },
        "parameters": [
          {
            "name": "token",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "name",
                  "cpf",
                  "email",
                  "phone"
                ],
                "properties": {
                  "name": {
                    "type": "string",
                    "description": "Nome completo"
                  },
                  "cpf": {
                    "type": "string",
                    "description": "CPF do cliente"
                  },
                  "email": {
                    "type": "string",
                    "description": "E-mail"
                  },
                  "phone": {
                    "type": "string",
                    "description": "Telefone"
                  },
                  "confirmUpdate": {
                    "type": "boolean",
                    "description": "Confirma alteração de cadastro existente"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/public/checkout/{token}/payment-conditions": {
      "get": {
        "tags": [
          "Rotas públicas (sem autenticação)"
        ],
        "summary": "Formas de pagamento disponíveis (à vista/a prazo)",
        "operationId": "get_public_public_checkout_token_payment_conditions",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/integracoes/public/"
        },
        "parameters": [
          {
            "name": "token",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/public/checkout/{token}/charge": {
      "post": {
        "tags": [
          "Rotas públicas (sem autenticação)"
        ],
        "summary": "Criar cobrança PIX ou cartão online",
        "operationId": "post_public_public_checkout_token_charge",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/integracoes/public/"
        },
        "parameters": [
          {
            "name": "token",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "channel",
                  "paymentMethodId",
                  "priceBasis"
                ],
                "properties": {
                  "channel": {
                    "type": "string",
                    "description": "PIX ou CARD"
                  },
                  "paymentMethodId": {
                    "type": "string",
                    "description": "ID da forma de pagamento"
                  },
                  "priceBasis": {
                    "type": "string",
                    "description": "CASH ou CREDIT"
                  },
                  "cardToken": {
                    "type": "string",
                    "description": "Token do Payment Brick (cartão)"
                  },
                  "installments": {
                    "type": "integer",
                    "description": "Parcelas (cartão)"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/public/checkout/{token}/charge/{chargeId}/status": {
      "get": {
        "tags": [
          "Rotas públicas (sem autenticação)"
        ],
        "summary": "Status da cobrança (polling UX; confirmação via webhook)",
        "operationId": "get_public_public_checkout_token_charge_chargeId_status",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/integracoes/public/"
        },
        "parameters": [
          {
            "name": "token",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "chargeId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/public/convenience/settings": {
      "get": {
        "tags": [
          "Rotas públicas (sem autenticação)"
        ],
        "summary": "Obter configurações",
        "operationId": "get_public_public_convenience_settings",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/integracoes/public/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/public/convenience/slots": {
      "get": {
        "tags": [
          "Rotas públicas (sem autenticação)"
        ],
        "summary": "Horários disponíveis",
        "operationId": "get_public_public_convenience_slots",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/integracoes/public/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/public/convenience/catalog": {
      "get": {
        "tags": [
          "Rotas públicas (sem autenticação)"
        ],
        "summary": "Catálogo público online",
        "operationId": "get_public_public_convenience_catalog",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/integracoes/public/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/public/convenience/zones": {
      "get": {
        "tags": [
          "Rotas públicas (sem autenticação)"
        ],
        "summary": "Zonas de entrega",
        "operationId": "get_public_public_convenience_zones",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/integracoes/public/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/public/convenience/auth/request-code": {
      "post": {
        "tags": [
          "Rotas públicas (sem autenticação)"
        ],
        "summary": "Solicitar código de autenticação",
        "operationId": "post_public_public_convenience_auth_request_code",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/integracoes/public/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/public/convenience/auth/verify-code": {
      "post": {
        "tags": [
          "Rotas públicas (sem autenticação)"
        ],
        "summary": "Validar código de autenticação",
        "operationId": "post_public_public_convenience_auth_verify_code",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/integracoes/public/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/public/convenience/me": {
      "get": {
        "tags": [
          "Rotas públicas (sem autenticação)"
        ],
        "summary": "Cliente autenticado (catálogo online)",
        "operationId": "get_public_public_convenience_me",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/integracoes/public/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "patch": {
        "tags": [
          "Rotas públicas (sem autenticação)"
        ],
        "summary": "Atualizar perfil (catálogo online)",
        "operationId": "patch_public_public_convenience_me",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/integracoes/public/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/public/convenience/addresses": {
      "get": {
        "tags": [
          "Rotas públicas (sem autenticação)"
        ],
        "summary": "Listar endereços",
        "operationId": "get_public_public_convenience_addresses",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/integracoes/public/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "post": {
        "tags": [
          "Rotas públicas (sem autenticação)"
        ],
        "summary": "Criar endereço",
        "operationId": "post_public_public_convenience_addresses",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/integracoes/public/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/public/convenience/addresses/{id}": {
      "put": {
        "tags": [
          "Rotas públicas (sem autenticação)"
        ],
        "summary": "Atualizar endereço",
        "operationId": "put_public_public_convenience_addresses_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/integracoes/public/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "delete": {
        "tags": [
          "Rotas públicas (sem autenticação)"
        ],
        "summary": "Excluir endereço",
        "operationId": "delete_public_public_convenience_addresses_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/integracoes/public/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/public/convenience/orders": {
      "post": {
        "tags": [
          "Rotas públicas (sem autenticação)"
        ],
        "summary": "Criar pedido (catálogo online)",
        "operationId": "post_public_public_convenience_orders",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/integracoes/public/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "get": {
        "tags": [
          "Rotas públicas (sem autenticação)"
        ],
        "summary": "Listar pedidos",
        "operationId": "get_public_public_convenience_orders",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/integracoes/public/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/public/convenience/orders/{id}": {
      "get": {
        "tags": [
          "Rotas públicas (sem autenticação)"
        ],
        "summary": "Detalhe",
        "operationId": "get_public_public_convenience_orders_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/integracoes/public/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/public/checkout/{token}/open": {
      "post": {
        "tags": [
          "Rotas públicas (sem autenticação)"
        ],
        "summary": "Registrar abertura do checkout",
        "operationId": "post_public_public_checkout_token_open",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/integracoes/public/"
        },
        "parameters": [
          {
            "name": "token",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/public/checkout/{token}/preview-total": {
      "post": {
        "tags": [
          "Rotas públicas (sem autenticação)"
        ],
        "summary": "Prévia do total do checkout",
        "operationId": "post_public_public_checkout_token_preview_total",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/integracoes/public/"
        },
        "parameters": [
          {
            "name": "token",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/health/ready": {
      "get": {
        "tags": [
          "Rotas públicas (sem autenticação)"
        ],
        "summary": "Readiness check",
        "operationId": "get_public_health_ready",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/integracoes/public/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/health/pools": {
      "get": {
        "tags": [
          "Rotas públicas (sem autenticação)"
        ],
        "summary": "Status dos pools",
        "operationId": "get_public_health_pools",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/integracoes/public/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/openapi.json": {
      "get": {
        "tags": [
          "Rotas públicas (sem autenticação)"
        ],
        "summary": "Especificação OpenAPI (parcial)",
        "operationId": "get_public_openapi_json",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/integracoes/public/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/platform-status": {
      "get": {
        "tags": [
          "Rotas públicas (sem autenticação)"
        ],
        "summary": "Status de manutenção da plataforma",
        "operationId": "get_public_platform_status",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/integracoes/public/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/store-lookup": {
      "get": {
        "tags": [
          "Rotas públicas (sem autenticação)"
        ],
        "summary": "Localizar loja por CPF/CNPJ",
        "operationId": "get_public_store_lookup",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/integracoes/public/"
        },
        "parameters": [
          {
            "name": "document",
            "in": "query",
            "required": false,
            "description": "CPF (11) ou CNPJ (14 dígitos)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "cnpj",
            "in": "query",
            "required": false,
            "description": "Alias de document",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/public/service-orders/{token}": {
      "get": {
        "tags": [
          "Rotas públicas (sem autenticação)"
        ],
        "summary": "Portal público da OS (token)",
        "operationId": "get_public_public_service_orders_token",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/integracoes/public/"
        },
        "parameters": [
          {
            "name": "token",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/public/service-orders/{token}/satisfaction": {
      "post": {
        "tags": [
          "Rotas públicas (sem autenticação)"
        ],
        "summary": "Enviar satisfação no portal da OS",
        "operationId": "post_public_public_service_orders_token_satisfaction",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/integracoes/public/"
        },
        "parameters": [
          {
            "name": "token",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "score"
                ],
                "properties": {
                  "score": {
                    "type": "integer",
                    "description": "Nota de 1 a 5"
                  },
                  "comment": {
                    "type": "string",
                    "description": "Comentário"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/public/customer-profile/store": {
      "get": {
        "tags": [
          "Rotas públicas (sem autenticação)"
        ],
        "summary": "Nome e logo da loja (portal do cliente)",
        "operationId": "get_public_public_customer_profile_store",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/integracoes/public/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/public/customer-profile/me": {
      "get": {
        "tags": [
          "Rotas públicas (sem autenticação)"
        ],
        "summary": "Perfil do cliente (JWT do catálogo online ou token de acesso)",
        "operationId": "get_public_public_customer_profile_me",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/integracoes/public/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/public/customer-profile/requests": {
      "get": {
        "tags": [
          "Rotas públicas (sem autenticação)"
        ],
        "summary": "Solicitações de alteração do próprio cliente",
        "operationId": "get_public_public_customer_profile_requests",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/integracoes/public/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "post": {
        "tags": [
          "Rotas públicas (sem autenticação)"
        ],
        "summary": "Pedir alteração de cadastro",
        "operationId": "post_public_public_customer_profile_requests",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/integracoes/public/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "changes"
                ],
                "properties": {
                  "changes": {
                    "type": "object",
                    "description": "Campos alterados"
                  },
                  "source": {
                    "type": "string",
                    "description": "PORTAL | SECURE_LINK | PERIODIC_PROMPT"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/public/customer-profile/requests/pending/cancel": {
      "post": {
        "tags": [
          "Rotas públicas (sem autenticação)"
        ],
        "summary": "Cancelar solicitação pendente do próprio cliente",
        "operationId": "post_public_public_customer_profile_requests_pending_cancel",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/integracoes/public/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/public/customer-profile/preferences": {
      "get": {
        "tags": [
          "Rotas públicas (sem autenticação)"
        ],
        "summary": "Preferências de comunicação",
        "operationId": "get_public_public_customer_profile_preferences",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/integracoes/public/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "patch": {
        "tags": [
          "Rotas públicas (sem autenticação)"
        ],
        "summary": "Atualizar preferências de comunicação",
        "operationId": "patch_public_public_customer_profile_preferences",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/integracoes/public/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/public/unsubscribe/{token}": {
      "get": {
        "tags": [
          "Rotas públicas (sem autenticação)"
        ],
        "summary": "Info do descadastro de notificações",
        "operationId": "get_public_public_unsubscribe_token",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/integracoes/public/"
        },
        "parameters": [
          {
            "name": "token",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "post": {
        "tags": [
          "Rotas públicas (sem autenticação)"
        ],
        "summary": "Confirmar descadastro de notificações",
        "operationId": "post_public_public_unsubscribe_token",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/integracoes/public/"
        },
        "parameters": [
          {
            "name": "token",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/public/notificacoes/desativar/{token}": {
      "get": {
        "tags": [
          "Rotas públicas (sem autenticação)"
        ],
        "summary": "Alias em português de GET /unsubscribe/:token",
        "operationId": "get_public_public_notificacoes_desativar_token",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/integracoes/public/"
        },
        "parameters": [
          {
            "name": "token",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "post": {
        "tags": [
          "Rotas públicas (sem autenticação)"
        ],
        "summary": "Alias em português de POST /unsubscribe/:token",
        "operationId": "post_public_public_notificacoes_desativar_token",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/integracoes/public/"
        },
        "parameters": [
          {
            "name": "token",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/public/infinity-tap/{loja}/callback": {
      "get": {
        "tags": [
          "Rotas públicas (sem autenticação)"
        ],
        "summary": "Callback InfiniteTap (loja no path) — redireciona para a UI",
        "operationId": "get_public_public_infinity_tap_loja_callback",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/integracoes/public/"
        },
        "parameters": [
          {
            "name": "loja",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/public/infinity-tap/callback": {
      "get": {
        "tags": [
          "Rotas públicas (sem autenticação)"
        ],
        "summary": "Callback InfiniteTap (loja via header/query)",
        "operationId": "get_public_public_infinity_tap_callback",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/integracoes/public/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/mercadopago/webhook": {
      "get": {
        "tags": [
          "Rotas públicas (sem autenticação)"
        ],
        "summary": "Health do webhook Mercado Pago",
        "operationId": "get_public_mercadopago_webhook",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/integracoes/public/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "post": {
        "tags": [
          "Rotas públicas (sem autenticação)"
        ],
        "summary": "Receber notificação Mercado Pago (use ?loja=)",
        "operationId": "post_public_mercadopago_webhook",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/integracoes/public/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/webhooks/superfrete": {
      "get": {
        "tags": [
          "Rotas públicas (sem autenticação)"
        ],
        "summary": "Health do webhook SuperFrete",
        "operationId": "get_public_webhooks_superfrete",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/integracoes/public/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "post": {
        "tags": [
          "Rotas públicas (sem autenticação)"
        ],
        "summary": "Receber notificação SuperFrete (use ?loja=)",
        "operationId": "post_public_webhooks_superfrete",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/integracoes/public/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/public/convenience/orders/guest": {
      "post": {
        "tags": [
          "Rotas públicas (sem autenticação)"
        ],
        "summary": "Criar pedido sem cadastro (nome, telefone, endereço, itens, pagamento)",
        "operationId": "post_public_public_convenience_orders_guest",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/integracoes/public/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "201 Created"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/public/convenience/catalog-access": {
      "post": {
        "tags": [
          "Rotas públicas (sem autenticação)"
        ],
        "summary": "Registrar acesso ao catálogo (métrica)",
        "operationId": "post_public_public_convenience_catalog_access",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/integracoes/public/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "204 No Content"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [],
                "properties": {
                  "catalogo": {
                    "type": "string",
                    "description": "Slug do catálogo"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/public/convenience/loyalty": {
      "get": {
        "tags": [
          "Rotas públicas (sem autenticação)"
        ],
        "summary": "Pontos de fidelidade do cliente logado no catálogo",
        "operationId": "get_public_public_convenience_loyalty",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/integracoes/public/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/public/customer-profile/loyalty": {
      "get": {
        "tags": [
          "Rotas públicas (sem autenticação)"
        ],
        "summary": "Pontos de fidelidade no portal do cliente (token)",
        "operationId": "get_public_public_customer_profile_loyalty",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/integracoes/public/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/public/service-orders/{token}/confirm": {
      "post": {
        "tags": [
          "Rotas públicas (sem autenticação)"
        ],
        "summary": "Cliente confirma presença no horário",
        "operationId": "post_public_public_service_orders_token_confirm",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/integracoes/public/"
        },
        "parameters": [
          {
            "name": "token",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/public/service-orders/{token}/decline": {
      "post": {
        "tags": [
          "Rotas públicas (sem autenticação)"
        ],
        "summary": "Cliente avisa que não poderá ir",
        "operationId": "post_public_public_service_orders_token_decline",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/integracoes/public/"
        },
        "parameters": [
          {
            "name": "token",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/public/nota/{file}": {
      "get": {
        "tags": [
          "Rotas públicas (sem autenticação)"
        ],
        "summary": "PDF da nota fiscal enviado ao cliente por link assinado (sem login)",
        "operationId": "get_public_public_nota_file",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/integracoes/public/"
        },
        "parameters": [
          {
            "name": "file",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "exp",
            "in": "query",
            "required": true,
            "description": "Expiração do link",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "sig",
            "in": "query",
            "required": true,
            "description": "Assinatura do link",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": ":file é o id do documento fiscal seguido de .pdf. Retorna application/pdf inline; 404 se o link for inválido ou expirado. Os links são gerados pelo vendedor (app), não pela API de integração."
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/public/rastreio/{shipmentId}": {
      "get": {
        "tags": [
          "Rotas públicas (sem autenticação)"
        ],
        "summary": "Redireciona para a página pública de rastreio da transportadora (destino do botão \"Rastrear pedido\" do WhatsApp)",
        "operationId": "get_public_public_rastreio_shipmentId",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/integracoes/public/"
        },
        "parameters": [
          {
            "name": "shipmentId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "loja",
            "in": "query",
            "required": false,
            "description": "Slug da loja (alternativa ao header X-Store-Slug)",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "302 para a URL de rastreio da transportadora. 404 se o envio não existe ou ainda não tem rastreio."
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/public/service-orders/{token}/quote-decision": {
      "post": {
        "tags": [
          "Rotas públicas (sem autenticação)"
        ],
        "summary": "Oficina: o cliente aprova ou recusa o orçamento pelo link do portal da OS",
        "operationId": "post_public_public_service_orders_token_quote_decision",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/integracoes/public/"
        },
        "parameters": [
          {
            "name": "token",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "{ ok, decision, status, quoteApprovedAt, quoteDeclinedAt, needsReapproval }. 404 se o link é inválido; 400 se o orçamento venceu ou não está aguardando resposta; 409 se o orçamento já foi aprovado e o cliente tenta recusar."
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "decision"
                ],
                "properties": {
                  "decision": {
                    "type": "string",
                    "description": "APPROVE ou DECLINE"
                  },
                  "comment": {
                    "type": "string",
                    "description": "Comentário (até 2000)"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/approvals/policy": {
      "get": {
        "tags": [
          "Aprovações"
        ],
        "summary": "Como a tela deve confirmar ações sensíveis para o usuário logado",
        "operationId": "get_approvals_approvals_policy",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/acesso/approvals/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "{ policy }. ADMIN = confirma com a própria senha de administrador; FREE = usuário liberado, executa na hora; APPROVAL = a ação vira um pedido de aprovação."
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/approvals/count": {
      "get": {
        "tags": [
          "Aprovações"
        ],
        "summary": "Contadores de pedidos pendentes (para o selo de notificação)",
        "operationId": "get_approvals_approvals_count",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/acesso/approvals/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "{ canDecide, toDecide, mine }. toDecide = pedidos de outros usuários aguardando resposta (0 se o usuário não pode aprovar); mine = pedidos pendentes feitos pelo próprio usuário."
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/approvals": {
      "get": {
        "tags": [
          "Aprovações"
        ],
        "summary": "Listar pedidos de aprovação",
        "operationId": "get_approvals_approvals",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/acesso/approvals/"
        },
        "parameters": [
          {
            "name": "scope",
            "in": "query",
            "required": false,
            "description": "mine (padrão: últimos 50 pedidos do próprio usuário), pending (pendentes de todos, mais antigos primeiro; só para quem aprova) ou history (já respondidos, últimos 100; só para quem aprova)",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "{ canDecide, items }. Cada item traz id, type, typeLabel, entityType, entityId, status (PENDING, APPROVED, REJECTED, CANCELLED, EXPIRED ou FAILED), summary, justification, requestedByName, decidedByName, decidedAt, decidedVia (APP ou WHATSAPP), decisionNote, resultMessage, expiresAt e createdAt. Pedidos vencidos viram EXPIRED na leitura."
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/approvals/{id}/approve": {
      "post": {
        "tags": [
          "Aprovações"
        ],
        "summary": "Aprovar o pedido — a ação solicitada é executada na hora (exige permissão de aprovar)",
        "operationId": "post_approvals_approvals_id_approve",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/acesso/approvals/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "{ outcome, message, approval }. outcome: approved (ação executada; message traz o resultado), failed (aprovado mas a execução falhou; message traz o erro e o pedido fica FAILED), already (já respondido) ou expired. 403 se o usuário não pode aprovar ou se foi ele mesmo quem fez o pedido; 404 se não existe."
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "x-sensitive": true,
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [],
                "properties": {
                  "note": {
                    "type": "string",
                    "description": "Observação da decisão (até 300 caracteres)"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/approvals/{id}/reject": {
      "post": {
        "tags": [
          "Aprovações"
        ],
        "summary": "Recusar o pedido — a ação solicitada não é executada (exige permissão de aprovar)",
        "operationId": "post_approvals_approvals_id_reject",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/acesso/approvals/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "{ outcome, message, approval }. outcome: rejected, already ou expired. 403 se o usuário não pode aprovar ou se foi ele mesmo quem fez o pedido."
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "x-sensitive": true,
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [],
                "properties": {
                  "note": {
                    "type": "string",
                    "description": "Motivo da recusa (até 300 caracteres)"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/approvals/{id}/cancel": {
      "post": {
        "tags": [
          "Aprovações"
        ],
        "summary": "Desistir de um pedido ainda pendente (quem pediu ou um aprovador)",
        "operationId": "post_approvals_approvals_id_cancel",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/acesso/approvals/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "{ approval } com status CANCELLED. 403 se não for o solicitante nem aprovador; 409 se o pedido já foi respondido."
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/additional-costs": {
      "get": {
        "tags": [
          "Custos adicionais"
        ],
        "summary": "Listar custos adicionais e ver se o recurso está ligado",
        "operationId": "get_additional-costs_additional_costs",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/catalogo/additional-costs/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "{ enabled, items }. Cada item: id, name, kind (FIXED ou PERCENT), value, active, categoryIds (vazio = vale para todas as categorias) e position."
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "post": {
        "tags": [
          "Custos adicionais"
        ],
        "summary": "Criar custo adicional",
        "operationId": "post_additional-costs_additional_costs",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/catalogo/additional-costs/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "201 Created — o custo criado, no fim da ordenação."
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "name",
                  "kind",
                  "value"
                ],
                "properties": {
                  "name": {
                    "type": "string",
                    "description": "Nome (até 80)"
                  },
                  "kind": {
                    "type": "string",
                    "description": "FIXED (valor em R$) ou PERCENT (percentual, até 100)"
                  },
                  "value": {
                    "type": "number",
                    "description": "Valor ou percentual (0 a 100000; em PERCENT, no máximo 100)"
                  },
                  "active": {
                    "type": "boolean",
                    "description": "Ativo (padrão true)"
                  },
                  "categoryIds": {
                    "type": "string",
                    "description": "Categorias às quais se aplica (até 500; vazio = todas)"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/additional-costs/settings": {
      "put": {
        "tags": [
          "Custos adicionais"
        ],
        "summary": "Ligar ou desligar o uso de custos adicionais na loja",
        "operationId": "put_additional-costs_additional_costs_settings",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/catalogo/additional-costs/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Retorna o mesmo payload de GET /additional-costs."
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "enabled"
                ],
                "properties": {
                  "enabled": {
                    "type": "boolean",
                    "description": "Recurso ligado"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/additional-costs/{id}": {
      "patch": {
        "tags": [
          "Custos adicionais"
        ],
        "summary": "Atualizar custo adicional (campos parciais)",
        "operationId": "patch_additional-costs_additional_costs_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/catalogo/additional-costs/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Sucesso"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [],
                "properties": {
                  "name": {
                    "type": "string",
                    "description": "Nome (até 80)"
                  },
                  "kind": {
                    "type": "string",
                    "description": "FIXED ou PERCENT"
                  },
                  "value": {
                    "type": "number",
                    "description": "Valor ou percentual"
                  },
                  "active": {
                    "type": "boolean",
                    "description": "Ativo"
                  },
                  "categoryIds": {
                    "type": "string",
                    "description": "Categorias às quais se aplica"
                  }
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Custos adicionais"
        ],
        "summary": "Excluir custo adicional",
        "operationId": "delete_additional-costs_additional_costs_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/catalogo/additional-costs/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "204 No Content"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    },
    "/gift-wraps": {
      "get": {
        "tags": [
          "Embalagem para presente"
        ],
        "summary": "Listar modelos de embalagem e as configurações do recurso",
        "operationId": "get_gift-wraps_gift_wraps",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/catalogo/gift-wraps/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "{ enabled, allowCustomValue, items }. Cada item: id, name, description, code, value, active e position."
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      },
      "post": {
        "tags": [
          "Embalagem para presente"
        ],
        "summary": "Criar modelo de embalagem",
        "operationId": "post_gift-wraps_gift_wraps",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/catalogo/gift-wraps/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "201 Created"
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "name",
                  "value"
                ],
                "properties": {
                  "name": {
                    "type": "string",
                    "description": "Nome (até 80)"
                  },
                  "value": {
                    "type": "number",
                    "description": "Valor cobrado por embalagem (0 a 100000)"
                  },
                  "description": {
                    "type": "string",
                    "description": "Descrição (até 200)"
                  },
                  "code": {
                    "type": "string",
                    "description": "Código interno (até 30)"
                  },
                  "active": {
                    "type": "boolean",
                    "description": "Ativo (padrão true)"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/gift-wraps/settings": {
      "put": {
        "tags": [
          "Embalagem para presente"
        ],
        "summary": "Ligar o recurso e permitir valor livre no PDV",
        "operationId": "put_gift-wraps_gift_wraps_settings",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/catalogo/gift-wraps/"
        },
        "parameters": [],
        "responses": {
          "200": {
            "description": "Retorna o mesmo payload de GET /gift-wraps."
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [],
                "properties": {
                  "enabled": {
                    "type": "boolean",
                    "description": "Embalagem para presente habilitada na loja"
                  },
                  "allowCustomValue": {
                    "type": "boolean",
                    "description": "Permite informar valor/nome livres no PDV (ainda exige a permissão sales.gift_wrap_custom_price do usuário)"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/gift-wraps/{id}": {
      "patch": {
        "tags": [
          "Embalagem para presente"
        ],
        "summary": "Atualizar modelo de embalagem (campos parciais)",
        "operationId": "patch_gift-wraps_gift_wraps_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/catalogo/gift-wraps/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "404 se o modelo não existe."
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [],
                "properties": {
                  "name": {
                    "type": "string",
                    "description": "Nome (até 80)"
                  },
                  "value": {
                    "type": "number",
                    "description": "Valor cobrado"
                  },
                  "description": {
                    "type": "string",
                    "description": "Descrição (até 200)"
                  },
                  "code": {
                    "type": "string",
                    "description": "Código interno (até 30)"
                  },
                  "active": {
                    "type": "boolean",
                    "description": "Ativo"
                  }
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Embalagem para presente"
        ],
        "summary": "Excluir modelo de embalagem",
        "operationId": "delete_gift-wraps_gift_wraps_id",
        "externalDocs": {
          "url": "https://developers.nivesistemas.com.br/api/catalogo/gift-wraps/"
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "204 No Content. 404 se o modelo não existe."
          },
          "401": {
            "description": "Credencial ausente ou inválida"
          },
          "403": {
            "description": "Sem permissão ou plano sem API"
          }
        }
      }
    }
  },
  "components": {
    "securitySchemes": {
      "bearerAuth": {
        "type": "http",
        "scheme": "bearer",
        "description": "Chave `sl_live_...` gerada em Sistema → Integração API"
      },
      "storeSlug": {
        "type": "apiKey",
        "in": "header",
        "name": "X-Store-Slug",
        "description": "Slug da loja"
      }
    }
  }
}
