{"openapi":"3.1.0","info":{"title":"Delfica API","description":"API REST da Delfica. **Autenticacao obrigatoria** via Bearer token de service account (criar em /admin/service-accounts).\n\nLogins humanos do portal NAO conseguem usar a API - somente service accounts com `is_api_only=True`. Veja [AUTH guide](/api/docs).","version":"1.0.0"},"servers":[{"url":"/","description":"Mesmo host do portal"}],"paths":{"/static/brand/{path}":{"get":{"summary":"Static File","operationId":"static_file_static_brand__path__get","parameters":[{"name":"path","in":"path","required":true,"schema":{"type":"string","title":"Path"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/static/pwa/{path}":{"get":{"summary":"Static File","operationId":"static_file_static_pwa__path__get","parameters":[{"name":"path","in":"path","required":true,"schema":{"type":"string","title":"Path"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/site/{path}":{"get":{"summary":"Static File","operationId":"static_file_site__path__get","parameters":[{"name":"path","in":"path","required":true,"schema":{"type":"string","title":"Path"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/assets/{path}":{"get":{"summary":"Static File","operationId":"static_file_assets__path__get","parameters":[{"name":"path","in":"path","required":true,"schema":{"type":"string","title":"Path"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/lgpd/download/{filename}":{"get":{"summary":" Download","operationId":"_download_admin_lgpd_download__filename__get","parameters":[{"name":"filename","in":"path","required":true,"schema":{"type":"string","title":"Filename"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/contador/sped/download":{"get":{"summary":" Download","operationId":"_download_contador_sped_download_get","parameters":[{"name":"file_id","in":"query","required":true,"schema":{"type":"integer","title":"File Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/contador/reinf/xml":{"get":{"summary":" Xml","operationId":"_xml_contador_reinf_xml_get","parameters":[{"name":"event_id","in":"query","required":true,"schema":{"type":"integer","title":"Event Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/contador/xmls-zip/download":{"get":{"summary":" Download Zip","operationId":"_download_zip_contador_xmls_zip_download_get","parameters":[{"name":"dt_ini","in":"query","required":true,"schema":{"type":"string","title":"Dt Ini"}},{"name":"dt_fin","in":"query","required":true,"schema":{"type":"string","title":"Dt Fin"}},{"name":"kind","in":"query","required":false,"schema":{"type":"string","default":"emitted","title":"Kind"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/contador/notas-csv/download":{"get":{"summary":" Download Csv","operationId":"_download_csv_contador_notas_csv_download_get","parameters":[{"name":"dt_ini","in":"query","required":true,"schema":{"type":"string","title":"Dt Ini"}},{"name":"dt_fin","in":"query","required":true,"schema":{"type":"string","title":"Dt Fin"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/portal/cliente/xml/{attachment_id}":{"get":{"summary":" Xml Download","operationId":"_xml_download_portal_cliente_xml__attachment_id__get","parameters":[{"name":"attachment_id","in":"path","required":true,"schema":{"type":"integer","title":"Attachment Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/developers/sdk-python.py":{"get":{"summary":" Sdk Download","operationId":"_sdk_download_developers_sdk_python_py_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/expedicao/etiqueta-pdf/{shipment_id}":{"get":{"summary":" Label Pdf","operationId":"_label_pdf_expedicao_etiqueta_pdf__shipment_id__get","parameters":[{"name":"shipment_id","in":"path","required":true,"schema":{"type":"integer","title":"Shipment Id"}},{"name":"combined","in":"query","required":false,"schema":{"type":"integer","default":0,"title":"Combined"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/multicanal/csv/download":{"get":{"summary":" Csv Download","operationId":"_csv_download_multicanal_csv_download_get","parameters":[{"name":"channel","in":"query","required":true,"schema":{"type":"string","title":"Channel"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/healthz":{"get":{"tags":["contabilizou-v1"],"summary":"Healthz","description":"Endpoint de saude para load balancers.","operationId":"healthz_api_v1_healthz_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Healthz Api V1 Healthz Get"}}}}}}},"/api/v1/health":{"get":{"tags":["contabilizou-v1"],"summary":"Health","description":"Health endpoint publico (Fase 7A ROADMAP).\n\nAlias semantico de /healthz. Roadmap explicita /api/v1/health\ncomo GET publico. Mantemos /healthz por convencao k8s e /health\npara compatibilidade com a documentacao publica.","operationId":"health_api_v1_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Health Api V1 Health Get"}}}}}}},"/api/v1/liveness":{"get":{"tags":["contabilizou-v1"],"summary":"Liveness","description":"B-OBS-006: liveness probe - sempre 200 se respondendo.\n\nK8s usa para decidir RESTART. So retornamos 5xx em panic catastrofico\n(process unresponsive) - aqui sempre 200 porque ja respondemos.","operationId":"liveness_api_v1_liveness_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Liveness Api V1 Liveness Get"}}}}}}},"/api/v1/readiness":{"get":{"tags":["contabilizou-v1"],"summary":"Readiness","description":"B-OBS-006: readiness probe - 200 se pronto, 503 se nao.\n\nK8s usa para decidir se ROTEIA trafego. 503 enquanto componentes\nsobem (Odoo demora ate 3min no boot).","operationId":"readiness_api_v1_readiness_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/metrics":{"get":{"tags":["contabilizou-v1"],"summary":"Prometheus Metrics","description":"BT-3 ROADMAP: endpoint Prometheus para scrape de metricas.\n\nExpoe todos os counters/histograms/gauges instrumentados via\naccounting_app.core.metrics em formato text/plain Prometheus 0.0.4.\n\nHot paths instrumentados:\n  - fiscal_call_total / fiscal_call_latency_ms (BaseFiscalService._call)\n  - webhook_delivery_total (futuramente)\n  - api_request_total / api_request_latency_ms (futuramente)\n\nScrape config (Prometheus):\n    scrape_configs:\n      - job_name: contabilizou\n        metrics_path: /api/v1/metrics\n        static_configs:\n          - targets: ['portal:8080']","operationId":"prometheus_metrics_api_v1_metrics_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/notas":{"get":{"tags":["contabilizou-v1"],"summary":"List Notas","description":"Lista notas da trilha de auditoria fiscal (FiscalAuditService).\n\nRate limit (B-API-012 extensao): 120 req/min por IP.\nIsolamento por tenant via FiscalAuditService(tenant_id=...).","operationId":"list_notas_api_v1_notas_get","parameters":[{"name":"cnpj","in":"query","required":false,"schema":{"type":"string","description":"Filtrar por CNPJ emitente","default":"","title":"Cnpj"},"description":"Filtrar por CNPJ emitente"},{"name":"status","in":"query","required":false,"schema":{"type":"string","description":"Filtrar por status","default":"","title":"Status"},"description":"Filtrar por status"},{"name":"date_from","in":"query","required":false,"schema":{"type":"string","description":"Data inicial ISO (YYYY-MM-DD)","default":"","title":"Date From"},"description":"Data inicial ISO (YYYY-MM-DD)"},{"name":"date_to","in":"query","required":false,"schema":{"type":"string","description":"Data final ISO (YYYY-MM-DD)","default":"","title":"Date To"},"description":"Data final ISO (YYYY-MM-DD)"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"description":"Maximo 1000","default":100,"title":"Limit"},"description":"Maximo 1000"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response List Notas Api V1 Notas Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/calcular/regime-simulator":{"post":{"tags":["contabilizou-v1"],"summary":"Calc Regime Simulator","description":"Simula carga tributaria comparando Simples vs Presumido vs Real.\n\nRate limit (B-API-012): 60 req/min por IP.","operationId":"calc_regime_simulator_api_v1_calcular_regime_simulator_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/accounting_app__api__router__RegimeSimulatorBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Calc Regime Simulator Api V1 Calcular Regime Simulator Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/calcular/irrf-pf":{"post":{"tags":["contabilizou-v1"],"summary":"Calc Irrf Pf","description":"Calcula IRRF Pessoa Fisica mensal com tabela progressiva.\n\nRate limit (B-API-012): 60 req/min por IP.","operationId":"calc_irrf_pf_api_v1_calcular_irrf_pf_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/accounting_app__api__router__IRRFPFBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Calc Irrf Pf Api V1 Calcular Irrf Pf Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/calcular/iof-credito":{"post":{"tags":["contabilizou-v1"],"summary":"Calc Iof Credito","description":"Calcula IOF de operacao de credito.\n\nRate limit (B-API-012): 60 req/min por IP.","operationId":"calc_iof_credito_api_v1_calcular_iof_credito_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/accounting_app__api__router__IOFBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Calc Iof Credito Api V1 Calcular Iof Credito Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/simples/sublimite/{uf}":{"get":{"tags":["contabilizou-v1"],"summary":"Get Simples Sublimite","description":"Verifica sublimite Simples Nacional para UF + receita 12m.","operationId":"get_simples_sublimite_api_v1_simples_sublimite__uf__get","parameters":[{"name":"uf","in":"path","required":true,"schema":{"type":"string","title":"Uf"}},{"name":"receita","in":"query","required":true,"schema":{"type":"number","minimum":0,"description":"Receita acumulada 12m","title":"Receita"},"description":"Receita acumulada 12m"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Simples Sublimite Api V1 Simples Sublimite  Uf  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/sefaz-status/{uf}":{"get":{"tags":["contabilizou-v1"],"summary":"Get Sefaz Status","description":"Consulta status do autorizador SEFAZ por UF + ambiente.","operationId":"get_sefaz_status_api_v1_sefaz_status__uf__get","parameters":[{"name":"uf","in":"path","required":true,"schema":{"type":"string","title":"Uf"}},{"name":"ambiente","in":"query","required":false,"schema":{"enum":["homologacao","producao"],"type":"string","default":"homologacao","title":"Ambiente"}},{"name":"refresh","in":"query","required":false,"schema":{"type":"boolean","description":"Forca consulta nova","default":false,"title":"Refresh"},"description":"Forca consulta nova"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Sefaz Status Api V1 Sefaz Status  Uf  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/tax-rules":{"get":{"tags":["contabilizou-v1"],"summary":"List Tax Rules","description":"Lista regras tributarias ativas (mesmo dado de tax-rules-export).","operationId":"list_tax_rules_api_v1_tax_rules_get","parameters":[{"name":"tax_type","in":"query","required":false,"schema":{"type":"string","description":"Filtra por tax_type","default":"","title":"Tax Type"},"description":"Filtra por tax_type"},{"name":"include_inactive","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Include Inactive"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"default":200,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response List Tax Rules Api V1 Tax Rules Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/features":{"get":{"tags":["contabilizou-v1"],"summary":"Get Features","description":"Retorna o catalogo de features + flags habilitada/desabilitada\npara o tenant indicado.\n\nUtil para clientes da API descobrirem programaticamente quais\nfuncionalidades estao liberadas no seu plano.","operationId":"get_features_api_v1_features_get","parameters":[{"name":"tenant_id","in":"query","required":false,"schema":{"type":"string","description":"Tenant a consultar (vazio = ativo na sessao)","default":"","title":"Tenant Id"},"description":"Tenant a consultar (vazio = ativo na sessao)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Features Api V1 Features Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/tiers":{"get":{"tags":["contabilizou-v1"],"summary":"List Tiers Endpoint","description":"Lista tiers disponiveis do sistema.","operationId":"list_tiers_endpoint_api_v1_tiers_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response List Tiers Endpoint Api V1 Tiers Get"}}}}}}},"/api/v1/nfe":{"post":{"tags":["contabilizou-v1"],"summary":"Issue Nfe","description":"Emite uma NF-e a partir do payload.\n\nEndpoint exige Odoo+OCA reais online. Se `odoo.simulated=true`,\nretorna `stage='blocked'` para nao simular sucesso falso. Caso\ncontrario, chama `InvoiceService.create_real_nfe` / `emit_real_nfe`.\n\nValidacoes (B-API-009):\n  - 401 se sem sessao de tenant\n  - 400 se partner_id nao existe ou nao pertence ao tenant\n\nPara emissao real, garanta:\n  - `odoo.simulated=false`\n  - Modulos OCA/l10n-brazil instalados (br-modules --install)\n  - Certificado A1 valido em Configuracoes","operationId":"issue_nfe_api_v1_nfe_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/accounting_app__api__router__IssueNFeBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Issue Nfe Api V1 Nfe Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/nfe/{record_id}/cancelar":{"post":{"tags":["contabilizou-v1"],"summary":"Cancel Nfe","description":"Cancela uma NF-e autorizada por record_id.\n\nAceita record_id (UUID interno) ou chave de acesso 44 digitos no path.\nJustificativa minima 15 chars (regra SEFAZ). Exige sessao (B-API-010).\n\nB-API-010 fix: usa find_by_id / find_by_key (indices nativos) em\nvez de list_recent(limit=1000) — NF-e antiga (alem das 1000 mais\nrecentes) era incancelavel pela API.","operationId":"cancel_nfe_api_v1_nfe__record_id__cancelar_post","parameters":[{"name":"record_id","in":"path","required":true,"schema":{"type":"string","title":"Record Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/accounting_app__api__router__CancelNFeBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Cancel Nfe Api V1 Nfe  Record Id  Cancelar Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/notas/{record_id}/xml":{"get":{"tags":["contabilizou-v1"],"summary":"Download Xml","description":"Download do XML autorizado de uma NF-e por record_id.\n\nO XML buscado e o ASSINADO (xml_signed_path do FiscalDocumentRecord).\nRetorna 404 se NF-e nao existe ou XML ainda nao foi gerado.\nRetorna 401 se sessao nao identificada (B-API-008).\n\nIsolamento multi-tenant: FiscalAuditService(tenant_id=...) ja filtra\no storage pelo tenant ativo, impedindo vazamento entre clientes SaaS.","operationId":"download_xml_api_v1_notas__record_id__xml_get","parameters":[{"name":"record_id","in":"path","required":true,"schema":{"type":"string","title":"Record Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/notas/{record_id}/danfe":{"get":{"tags":["contabilizou-v1"],"summary":"Download Danfe","description":"Gera e retorna PDF DANFE para uma NF-e autorizada por record_id.\n\nUsa DanfeService (wrapper de brazilfiscalreport). Retorna 404 se NF-e\nnao existir, 422 se XML nao for de NF-e autorizada, 401 se sessao\nnao identificada (B-API-011).\n\nIsolamento multi-tenant: storage por tenant_id (B-API-011 fix).","operationId":"download_danfe_api_v1_notas__record_id__danfe_get","parameters":[{"name":"record_id","in":"path","required":true,"schema":{"type":"string","title":"Record Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/public/catalog/{tenant_id}":{"get":{"tags":["contabilizou-v1"],"summary":"V-M2: catalogo publico de servicos do tenant","description":"Endpoint SEM autenticacao que expoe a lista de servicos ativos do tenant. Util para mini-sites publicos, marketplaces e widgets que precisam mostrar o catalogo sem login. Retorna apenas dados publicos: nome, descricao, preco, codigo de servico. NAO expoe custo, margem, ou dados internos.","operationId":"public_catalog_api_v1_public_catalog__tenant_id__get","parameters":[{"name":"tenant_id","in":"path","required":true,"schema":{"type":"string","title":"Tenant Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Public Catalog Api V1 Public Catalog  Tenant Id  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/public/sefaz-status":{"get":{"tags":["contabilizou-v1"],"summary":"S-M3: pagina publica de status SEFAZ (sem auth)","description":"Endpoint SEM autenticacao que expoe estado atual SEFAZ de todas as UFs em producao + homologacao. Le da tabela `contabilizou_app.sefaz_uf_state` populada pelo SefazPoller em background. Util para statuspage.contabilizou.com / widgets de monitoramento externo.","operationId":"public_sefaz_status_api_v1_public_sefaz_status_get","parameters":[{"name":"ambiente","in":"query","required":false,"schema":{"type":"string","default":"producao","title":"Ambiente"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Public Sefaz Status Api V1 Public Sefaz Status Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/public/sefaz-history":{"get":{"tags":["contabilizou-v1"],"summary":"S-M3: historico de transicoes SEFAZ (sem auth)","description":"Endpoint SEM autenticacao que expoe transicoes de status (eventos de degradacao/recuperacao) de uma UF nos ultimos N dias. Le de `contabilizou_app.sefaz_transitions`. Util para timeline de incidentes em statuspage publica.","operationId":"public_sefaz_history_api_v1_public_sefaz_history_get","parameters":[{"name":"uf","in":"query","required":false,"schema":{"type":"string","default":"SP","title":"Uf"}},{"name":"ambiente","in":"query","required":false,"schema":{"type":"string","default":"producao","title":"Ambiente"}},{"name":"days","in":"query","required":false,"schema":{"type":"integer","default":30,"title":"Days"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Public Sefaz History Api V1 Public Sefaz History Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/ads/platforms":{"get":{"tags":["Ads"],"summary":"Lista status das plataformas (G/M/L/T)","operationId":"platforms_status_api_v1_ads_platforms_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Platforms Status Api V1 Ads Platforms Get"}}}}}}},"/api/v1/ads/oauth/start":{"post":{"tags":["Ads"],"summary":"Inicia OAuth (retorna URL p/ redirect)","operationId":"oauth_start_api_v1_ads_oauth_start_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OAuthStartIn"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Oauth Start Api V1 Ads Oauth Start Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/ads/oauth/callback":{"get":{"tags":["Ads"],"summary":"Callback OAuth (publico, valida state)","operationId":"oauth_callback_api_v1_ads_oauth_callback_get","parameters":[{"name":"state","in":"query","required":true,"schema":{"type":"string","title":"State"}},{"name":"code","in":"query","required":false,"schema":{"type":"string","default":"","title":"Code"}},{"name":"error","in":"query","required":false,"schema":{"type":"string","default":"","title":"Error"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/ads/accounts":{"get":{"tags":["Ads"],"summary":"List Accounts","operationId":"list_accounts_api_v1_ads_accounts_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response List Accounts Api V1 Ads Accounts Get"}}}}}}},"/api/v1/ads/campaigns":{"get":{"tags":["Ads"],"summary":"List Campaigns","operationId":"list_campaigns_api_v1_ads_campaigns_get","parameters":[{"name":"platform","in":"query","required":false,"schema":{"type":"string","default":"","title":"Platform"}},{"name":"status","in":"query","required":false,"schema":{"type":"string","default":"","title":"Status"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":200,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response List Campaigns Api V1 Ads Campaigns Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Ads"],"summary":"Create Campaign","operationId":"create_campaign_api_v1_ads_campaigns_post","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CampaignCreateIn"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Create Campaign Api V1 Ads Campaigns Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/ads/campaigns/{campaign_id}":{"get":{"tags":["Ads"],"summary":"Get Campaign","operationId":"get_campaign_api_v1_ads_campaigns__campaign_id__get","parameters":[{"name":"campaign_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Campaign Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Campaign Api V1 Ads Campaigns  Campaign Id  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/ads/campaigns/{campaign_id}/pause":{"post":{"tags":["Ads"],"summary":"Pause Campaign","operationId":"pause_campaign_api_v1_ads_campaigns__campaign_id__pause_post","parameters":[{"name":"campaign_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Campaign Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Pause Campaign Api V1 Ads Campaigns  Campaign Id  Pause Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/ads/campaigns/{campaign_id}/resume":{"post":{"tags":["Ads"],"summary":"Resume Campaign","operationId":"resume_campaign_api_v1_ads_campaigns__campaign_id__resume_post","parameters":[{"name":"campaign_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Campaign Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Resume Campaign Api V1 Ads Campaigns  Campaign Id  Resume Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/ads/campaigns/{campaign_id}/archive":{"post":{"tags":["Ads"],"summary":"Archive Campaign","operationId":"archive_campaign_api_v1_ads_campaigns__campaign_id__archive_post","parameters":[{"name":"campaign_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Campaign Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Archive Campaign Api V1 Ads Campaigns  Campaign Id  Archive Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/ads/campaigns/{campaign_id}/sync-metrics":{"post":{"tags":["Ads"],"summary":"Sync Metrics","operationId":"sync_metrics_api_v1_ads_campaigns__campaign_id__sync_metrics_post","parameters":[{"name":"campaign_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Campaign Id"}},{"name":"since","in":"query","required":false,"schema":{"type":"string","default":"","title":"Since"}},{"name":"until","in":"query","required":false,"schema":{"type":"string","default":"","title":"Until"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Sync Metrics Api V1 Ads Campaigns  Campaign Id  Sync Metrics Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/ads/markup":{"get":{"tags":["Ads"],"summary":"Config markup global + override do tenant","operationId":"get_markup_api_v1_ads_markup_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Get Markup Api V1 Ads Markup Get"}}}}}}},"/api/v1/ads/markup/global":{"post":{"tags":["Ads"],"summary":"(super_admin) altera markup global","operationId":"set_markup_global_api_v1_ads_markup_global_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MarkupSetGlobalIn"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Set Markup Global Api V1 Ads Markup Global Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/ads/markup/override":{"post":{"tags":["Ads"],"summary":"(super_admin) override por tenant","operationId":"set_markup_override_api_v1_ads_markup_override_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MarkupOverrideIn"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Set Markup Override Api V1 Ads Markup Override Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/ads/markup/override/{tenant_id}":{"delete":{"tags":["Ads"],"summary":"Remove Markup Override","operationId":"remove_markup_override_api_v1_ads_markup_override__tenant_id__delete","parameters":[{"name":"tenant_id","in":"path","required":true,"schema":{"type":"string","minLength":1,"title":"Tenant Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Remove Markup Override Api V1 Ads Markup Override  Tenant Id  Delete"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/ads/clicks":{"post":{"tags":["Ads"],"summary":"Registra clique e retorna click_id","operationId":"register_click_api_v1_ads_clicks_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClickRegisterIn"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Register Click Api V1 Ads Clicks Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/ads/go/{click_id}":{"get":{"tags":["Ads"],"summary":"Redireciona clique p/ destino (publico)","description":"Endpoint publico: redireciona browser. Sem SA (criativo aponta aqui).","operationId":"click_redirect_api_v1_ads_go__click_id__get","parameters":[{"name":"click_id","in":"path","required":true,"schema":{"type":"string","minLength":1,"title":"Click Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/ads/campaigns/{campaign_id}/roas":{"get":{"tags":["Ads"],"summary":"Campaign Roas","operationId":"campaign_roas_api_v1_ads_campaigns__campaign_id__roas_get","parameters":[{"name":"campaign_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Campaign Id"}},{"name":"since","in":"query","required":false,"schema":{"type":"string","description":"YYYY-MM-DD","default":"","title":"Since"},"description":"YYYY-MM-DD"},{"name":"until","in":"query","required":false,"schema":{"type":"string","description":"YYYY-MM-DD","default":"","title":"Until"},"description":"YYYY-MM-DD"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Campaign Roas Api V1 Ads Campaigns  Campaign Id  Roas Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/ads/campaigns/{campaign_id}/conversions":{"get":{"tags":["Ads"],"summary":"Campaign Conversions","operationId":"campaign_conversions_api_v1_ads_campaigns__campaign_id__conversions_get","parameters":[{"name":"campaign_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Campaign Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":100,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Campaign Conversions Api V1 Ads Campaigns  Campaign Id  Conversions Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/ads/roas/summary":{"get":{"tags":["Ads"],"summary":"Roas Summary","operationId":"roas_summary_api_v1_ads_roas_summary_get","parameters":[{"name":"since","in":"query","required":false,"schema":{"type":"string","default":"","title":"Since"}},{"name":"until","in":"query","required":false,"schema":{"type":"string","default":"","title":"Until"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Roas Summary Api V1 Ads Roas Summary Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/agenda/events":{"get":{"tags":["Agenda"],"summary":"Eventos do calendario fiscal","description":"Lista eventos da agenda fiscal (DAS, GFIP, ECD, etc.).\n\nUsa `accounting_app.tax_engine.fiscal_calendar.FiscalCalendar`.\n\n**Scope**: `read:agenda`.","operationId":"list_events_api_v1_agenda_events_get","parameters":[{"name":"competencia","in":"query","required":false,"schema":{"type":"string","pattern":"^(\\d{2}/\\d{4})?$","default":"","title":"Competencia"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response List Events Api V1 Agenda Events Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/agenda/deadlines/{days_ahead}":{"get":{"tags":["Agenda"],"summary":"Vencimentos nos proximos N dias","description":"Datas-limite nos proximos N dias (DAS, DARF, GFIP, etc.).\n\n**Scope**: `read:agenda`.","operationId":"deadlines_api_v1_agenda_deadlines__days_ahead__get","parameters":[{"name":"days_ahead","in":"path","required":true,"schema":{"type":"integer","title":"Days Ahead"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Deadlines Api V1 Agenda Deadlines  Days Ahead  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/ai/chat":{"post":{"tags":["AI"],"summary":"Chat com Fiscal AI","description":"Faz uma pergunta ao copilot fiscal. Resposta inclui citacoes da\nlegislacao quando aplicavel.\n\n**Scope**: `use:ai`.","operationId":"chat_api_v1_ai_chat_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChatBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChatResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/ai/next-steps":{"post":{"tags":["AI"],"summary":"Sugere proximos passos da rotina fiscal","description":"**Scope**: `use:ai`.","operationId":"next_steps_api_v1_ai_next_steps_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NextStepsBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Next Steps Api V1 Ai Next Steps Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/bom/headers":{"post":{"tags":["BOM / Production"],"summary":"Cria BOM (Bill of Materials)","operationId":"create_bom_api_v1_bom_headers_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateBOMPayload"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Create Bom Api V1 Bom Headers Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/bom/headers/{bom_id}":{"get":{"tags":["BOM / Production"],"summary":"Le BOM com componentes","operationId":"get_bom_api_v1_bom_headers__bom_id__get","parameters":[{"name":"bom_id","in":"path","required":true,"schema":{"type":"integer","title":"Bom Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Bom Api V1 Bom Headers  Bom Id  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/bom/productions":{"post":{"tags":["BOM / Production"],"summary":"Cria ordem de producao","operationId":"create_production_api_v1_bom_productions_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateProductionPayload"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Create Production Api V1 Bom Productions Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/bom/productions/{production_id}/confirm":{"post":{"tags":["BOM / Production"],"summary":"draft -> confirmed","operationId":"confirm_production_api_v1_bom_productions__production_id__confirm_post","parameters":[{"name":"production_id","in":"path","required":true,"schema":{"type":"integer","title":"Production Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Confirm Production Api V1 Bom Productions  Production Id  Confirm Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/bom/productions/{production_id}/start":{"post":{"tags":["BOM / Production"],"summary":"confirmed -> in_progress","operationId":"start_production_api_v1_bom_productions__production_id__start_post","parameters":[{"name":"production_id","in":"path","required":true,"schema":{"type":"integer","title":"Production Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Start Production Api V1 Bom Productions  Production Id  Start Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/bom/productions/{production_id}/complete":{"post":{"tags":["BOM / Production"],"summary":"in_progress -> done com calculo actual_cost","operationId":"complete_production_api_v1_bom_productions__production_id__complete_post","parameters":[{"name":"production_id","in":"path","required":true,"schema":{"type":"integer","title":"Production Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompleteProductionPayload"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Complete Production Api V1 Bom Productions  Production Id  Complete Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/bom/healthz":{"get":{"tags":["BOM / Production"],"summary":"Healthcheck BOM","operationId":"bom_healthz_api_v1_bom_healthz_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Bom Healthz Api V1 Bom Healthz Get"}}}}}}},"/api/v1/calculators/regime-simulator":{"post":{"tags":["Calculators"],"summary":"Simulador Simples vs Presumido vs Real","description":"**Scope**: `use:calculators`.","operationId":"regime_simulator_api_v1_calculators_regime_simulator_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/accounting_app__api__routes__calculators__RegimeSimulatorBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Regime Simulator Api V1 Calculators Regime Simulator Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/calculators/irrf-pf":{"post":{"tags":["Calculators"],"summary":"IRRF Pessoa Fisica","description":"**Scope**: `use:calculators`.","operationId":"irrf_pf_api_v1_calculators_irrf_pf_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/accounting_app__api__routes__calculators__IRRFPFBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Irrf Pf Api V1 Calculators Irrf Pf Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/calculators/iof-credito":{"post":{"tags":["Calculators"],"summary":"IOF sobre credito","description":"**Scope**: `use:calculators`.","operationId":"iof_credito_api_v1_calculators_iof_credito_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/accounting_app__api__routes__calculators__IOFBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Iof Credito Api V1 Calculators Iof Credito Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/calculators/das":{"post":{"tags":["Calculators"],"summary":"Calcula DAS do Simples Nacional para o mes","description":"**Scope**: `use:calculators`.\n\nCalcula DAS conforme LC 123/2006, anexos I-V. Aliquota efetiva =\n`(receita_12m * aliq_nominal - deducao) / receita_12m`.","operationId":"das_api_v1_calculators_das_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DasSimplesInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Das Api V1 Calculators Das Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/compliance/status":{"get":{"tags":["Compliance"],"summary":"Status consolidado de compliance","description":"Snapshot consolidado: CND ativas, certificado A1, modulos OCA.\n\n**Scope**: `read:compliance`.","operationId":"overall_status_api_v1_compliance_status_get","parameters":[{"name":"cnpj","in":"query","required":false,"schema":{"type":"string","default":"","title":"Cnpj"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComplianceStatus"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/compliance/certificate":{"get":{"tags":["Compliance"],"summary":"Info certificado A1","description":"Retorna info do certificado A1 instalado (sem expor PFX).\n\n**Scope**: `read:compliance`.","operationId":"certificate_info_api_v1_compliance_certificate_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CertificateInfo"}}}}}}},"/api/v1/compliance/cnd/upload":{"post":{"tags":["Compliance"],"summary":"Upload PDF de CND","description":"Faz upload de CND em PDF. O sistema parseia validade e issuer.\n\n**Scope**: `write:compliance`.","operationId":"upload_cnd_api_v1_compliance_cnd_upload_post","requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_upload_cnd_api_v1_compliance_cnd_upload_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OkResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/compliance/cnd":{"get":{"tags":["Compliance"],"summary":"Lista CNDs cadastradas","description":"**Scope**: `read:compliance`.","operationId":"list_cnds_api_v1_compliance_cnd_get","parameters":[{"name":"cnpj","in":"query","required":false,"schema":{"type":"string","default":"","title":"Cnpj"}},{"name":"active_only","in":"query","required":false,"schema":{"type":"boolean","default":true,"title":"Active Only"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PagedResponse_CndOut_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/compliance/gov/integration":{"get":{"tags":["Compliance"],"summary":"Status da integracao gov.br/scrapers","description":"Estado dos scrapers gov.br (SitFis/PGFN/CND/DCTFWeb/eSocial)\nvia mTLS com cert A1 proprio.\n\n**Scope**: `read:compliance`.","operationId":"gov_integration_api_v1_compliance_gov_integration_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Gov Integration Api V1 Compliance Gov Integration Get"}}}}}}},"/api/v1/crm/leads":{"post":{"tags":["CRM"],"summary":"Cria lead","operationId":"create_lead_api_v1_crm_leads_post","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateLeadPayload"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Create Lead Api V1 Crm Leads Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["CRM"],"summary":"Lista leads do tenant","operationId":"list_leads_api_v1_crm_leads_get","parameters":[{"name":"stage","in":"query","required":false,"schema":{"anyOf":[{"type":"string","pattern":"^(new|qualification|proposal|negotiation|won|lost)$"},{"type":"null"}],"title":"Stage"}},{"name":"owner","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Owner"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":100,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","additionalProperties":true},"title":"Response List Leads Api V1 Crm Leads Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/crm/leads/{lead_id}":{"get":{"tags":["CRM"],"summary":"Le lead completo (com activities)","operationId":"get_lead_api_v1_crm_leads__lead_id__get","parameters":[{"name":"lead_id","in":"path","required":true,"schema":{"type":"integer","exclusiveMinimum":0,"title":"Lead Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Lead Api V1 Crm Leads  Lead Id  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/crm/leads/{lead_id}/transition":{"post":{"tags":["CRM"],"summary":"Move lead para nova stage","operationId":"transition_stage_api_v1_crm_leads__lead_id__transition_post","parameters":[{"name":"lead_id","in":"path","required":true,"schema":{"type":"integer","title":"Lead Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransitionStagePayload"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Transition Stage Api V1 Crm Leads  Lead Id  Transition Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/crm/leads/{lead_id}/activities":{"post":{"tags":["CRM"],"summary":"Loga activity no lead","operationId":"log_activity_api_v1_crm_leads__lead_id__activities_post","parameters":[{"name":"lead_id","in":"path","required":true,"schema":{"type":"integer","title":"Lead Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LogActivityPayload"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Log Activity Api V1 Crm Leads  Lead Id  Activities Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/crm/pipeline":{"get":{"tags":["CRM"],"summary":"Sumario do pipeline (count + weighted forecast)","operationId":"pipeline_summary_api_v1_crm_pipeline_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Pipeline Summary Api V1 Crm Pipeline Get"}}}}}}},"/api/v1/crm/healthz":{"get":{"tags":["CRM"],"summary":"Healthcheck CRM","operationId":"crm_healthz_api_v1_crm_healthz_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Crm Healthz Api V1 Crm Healthz Get"}}}}}}},"/api/v1/customers":{"get":{"tags":["Customers"],"summary":"Lista clientes","description":"Lista clientes do tenant. Filtro opcional `q`.\n\n**Scope**: `read:customers`. Paginacao 1-based, max 200 por pagina.","operationId":"list_customers_api_v1_customers_get","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Size"}},{"name":"q","in":"query","required":false,"schema":{"type":"string","description":"Busca em nome/CNPJ/email","default":"","title":"Q"},"description":"Busca em nome/CNPJ/email"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PagedResponse_CustomerOut_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Customers"],"summary":"Cria um cliente","description":"Cria cliente. CNPJ/CPF eh validado no backend.\n\n**Scope**: `write:customers`.","operationId":"create_customer_api_v1_customers_post","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CustomerCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CustomerOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/customers/{customer_id}":{"get":{"tags":["Customers"],"summary":"Detalhe de um cliente","description":"Recupera 1 cliente. 404 se nao existe ou nao pertence ao tenant.\n\n**Scope**: `read:customers`.","operationId":"get_customer_api_v1_customers__customer_id__get","parameters":[{"name":"customer_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Customer Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CustomerOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["Customers"],"summary":"Atualiza um cliente","description":"Atualizacao parcial. Campos nao informados sao preservados.\n\n**Scope**: `write:customers`.","operationId":"update_customer_api_v1_customers__customer_id__put","parameters":[{"name":"customer_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Customer Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CustomerUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CustomerOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/customers/search/by-cnpj/{cnpj}":{"get":{"tags":["Customers"],"summary":"Busca por CNPJ exato","description":"Busca exata por CNPJ/CPF (formatado ou nao). null se nao achou.\n\n**Scope**: `read:customers`.","operationId":"search_by_cnpj_api_v1_customers_search_by_cnpj__cnpj__get","parameters":[{"name":"cnpj","in":"path","required":true,"schema":{"type":"string","minLength":11,"maxLength":18,"title":"Cnpj"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/CustomerOut"},{"type":"null"}],"title":"Response Search By Cnpj Api V1 Customers Search By Cnpj  Cnpj  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/dashboard/overview":{"get":{"tags":["Dashboard"],"summary":"KPIs gerais do tenant","description":"Snapshot consolidado: receita ultimo mes, NFs emitidas, AR/AP,\nsaude fiscal.\n\n**Scope**: `read:dashboard`.","operationId":"overview_api_v1_dashboard_overview_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Overview Api V1 Dashboard Overview Get"}}}}}}},"/api/v1/dashboard/fiscal-health":{"get":{"tags":["Dashboard"],"summary":"Indicadores de saude fiscal","description":"Indicadores agregados de saude fiscal.\n\n**Scope**: `read:dashboard`.","operationId":"fiscal_health_api_v1_dashboard_fiscal_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Fiscal Health Api V1 Dashboard Fiscal Health Get"}}}}}}},"/api/v1/financial/receivables":{"get":{"tags":["Financial"],"summary":"Contas a receber","description":"**Scope**: `read:financial`.","operationId":"list_receivables_api_v1_financial_receivables_get","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Size"}},{"name":"state","in":"query","required":false,"schema":{"type":"string","default":"","title":"State"}},{"name":"customer_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Customer Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PagedResponse_ReceivableOut_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/financial/payables":{"get":{"tags":["Financial"],"summary":"Contas a pagar","description":"**Scope**: `read:financial`.","operationId":"list_payables_api_v1_financial_payables_get","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Size"}},{"name":"state","in":"query","required":false,"schema":{"type":"string","default":"","title":"State"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PagedResponse_PayableOut_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/financial/pix/generate":{"post":{"tags":["Financial"],"summary":"Gera PIX para uma nota","description":"**Scope**: `write:financial`. Retorna QR code + chave em `detail`.","operationId":"generate_pix_api_v1_financial_pix_generate_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PixGenerateBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OkResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/financial/cnab/remessa":{"post":{"tags":["Financial"],"summary":"Exporta arquivo CNAB de remessa","description":"Gera arquivo CNAB para envio ao banco (boletos). Retorno em base64\nno campo `detail.file_b64`.\n\n**Scope**: `write:financial`.","operationId":"cnab_remessa_api_v1_financial_cnab_remessa_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CnabRemessaBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OkResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/financial/cnab/retorno":{"post":{"tags":["Financial"],"summary":"Importa CNAB de retorno","description":"**Scope**: `write:financial`.","operationId":"cnab_retorno_api_v1_financial_cnab_retorno_post","parameters":[{"name":"bank","in":"query","required":true,"schema":{"type":"string","title":"Bank"}},{"name":"file_b64","in":"query","required":true,"schema":{"type":"string","description":"Conteudo do CNAB em base64","title":"File B64"},"description":"Conteudo do CNAB em base64"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OkResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/financial/payment-orders":{"get":{"tags":["Financial"],"summary":"Lista ordens de pagamento","description":"**Scope**: `read:financial`.","operationId":"list_payment_orders_api_v1_financial_payment_orders_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response List Payment Orders Api V1 Financial Payment Orders Get"}}}}}}},"/api/v1/financial/bank-accounts":{"get":{"tags":["Financial"],"summary":"Contas bancarias cadastradas","description":"**Scope**: `read:financial`.","operationId":"list_bank_accounts_api_v1_financial_bank_accounts_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response List Bank Accounts Api V1 Financial Bank Accounts Get"}}}}}}},"/api/v1/guias":{"get":{"tags":["Guias"],"summary":"Lista guias geradas","description":"Lista guias DAS/DARF/GNRE/GPS persistidas em contabilizou_app. Filtros: kind (darf/das/gnre/gps), date_from/date_to.","operationId":"list_guias_api_v1_guias_get","parameters":[{"name":"kind","in":"query","required":false,"schema":{"type":"string","pattern":"^(darf|das|gnre|gps|)$","default":"","title":"Kind"}},{"name":"date_from","in":"query","required":false,"schema":{"type":"string","pattern":"^(\\d{4}-\\d{2}-\\d{2})?$","default":"","title":"Date From"}},{"name":"date_to","in":"query","required":false,"schema":{"type":"string","pattern":"^(\\d{4}-\\d{2}-\\d{2})?$","default":"","title":"Date To"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":100,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response List Guias Api V1 Guias Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/guias/{guia_id}/download":{"get":{"tags":["Guias"],"summary":"Download da guia (PDF)","operationId":"download_api_v1_guias__guia_id__download_get","parameters":[{"name":"guia_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Guia Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}},"application/pdf":{}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/guias/generate":{"post":{"tags":["Guias"],"summary":"Gera guia (DARF/DAS/GNRE/GPS) sob demanda","operationId":"generate_api_v1_guias_generate_post","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Payload"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Generate Api V1 Guias Generate Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/invoices":{"get":{"tags":["Invoices"],"summary":"Lista NF-e/NFC-e","description":"Lista notas. Filtros: status, customer_id, date_from/to (YYYY-MM-DD).\n\n**Scope**: `read:invoices`.","operationId":"list_invoices_api_v1_invoices_get","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Size"}},{"name":"status","in":"query","required":false,"schema":{"type":"string","default":"","title":"Status"}},{"name":"customer_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Customer Id"}},{"name":"date_from","in":"query","required":false,"schema":{"type":"string","default":"","title":"Date From"}},{"name":"date_to","in":"query","required":false,"schema":{"type":"string","default":"","title":"Date To"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PagedResponse_InvoiceOut_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/invoices/{invoice_id}":{"get":{"tags":["Invoices"],"summary":"Detalhe NF-e","description":"**Scope**: `read:invoices`.","operationId":"get_invoice_api_v1_invoices__invoice_id__get","parameters":[{"name":"invoice_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Invoice Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvoiceOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/invoices/issue":{"post":{"tags":["Invoices"],"summary":"Emite NF-e/NFC-e","description":"Emite NF-e (mod 55) ou NFC-e (mod 65) com transmissao SEFAZ.\n\nPre-validacoes obrigatorias (certificado A1, modulos OCA, status\nSEFAZ) sao executadas server-side. Em erro, retorna 400 com causa.\n\n**Scope**: `write:nfe`.","operationId":"issue_invoice_api_v1_invoices_issue_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/accounting_app__api__routes__invoices__IssueNFeBody"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvoiceOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/invoices/cancel":{"post":{"tags":["Invoices"],"summary":"Cancela NF-e autorizada","description":"Cancela uma NF-e ja autorizada (cStat=101). Janela: 24h apos\nautorizacao (prazo SEFAZ).\n\nInforme `record_id` OU `chave_acesso`. Justificativa min 15 chars.\n\n**Scope**: `write:nfe`.","operationId":"cancel_invoice_api_v1_invoices_cancel_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/accounting_app__api__routes__invoices__CancelNFeBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OkResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/invoices/cce":{"post":{"tags":["Invoices"],"summary":"Envia Carta de Correcao Eletronica","description":"CC-e corrige erros nao-tributarios da NF-e (max 20 por nota).\n\nTexto da correcao: 15-1000 chars. Sequence opcional - sistema\nincrementa automaticamente.\n\n**Scope**: `write:nfe`.","operationId":"send_cce_api_v1_invoices_cce_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CceBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OkResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/invoices/inutilization":{"post":{"tags":["Invoices"],"summary":"Inutiliza faixa de numeracao","description":"Inutiliza intervalo (serie + faixa) na SEFAZ. Usado quando ha\ngap de numeracao por erro.\n\n**Scope**: `write:nfe`.","operationId":"inutilize_range_api_v1_invoices_inutilization_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InutilizationBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OkResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/invoices/{invoice_id}/xml":{"get":{"tags":["Invoices"],"summary":"Download do XML assinado","description":"Devolve XML assinado da NF-e. 404 se ainda nao foi transmitida.\n\n**Scope**: `read:invoices`.","operationId":"download_xml_api_v1_invoices__invoice_id__xml_get","parameters":[{"name":"invoice_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Invoice Id"}}],"responses":{"200":{"description":"XML signed","content":{"application/json":{"schema":{}},"application/xml":{}}},"404":{"description":"Invoice sem XML gerado ainda"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/invoices/{invoice_id}/danfe":{"get":{"tags":["Invoices"],"summary":"Download do DANFE (PDF)","description":"Devolve o DANFE em PDF (1 pagina A4).\n\n**Scope**: `read:invoices`.","operationId":"download_danfe_api_v1_invoices__invoice_id__danfe_get","parameters":[{"name":"invoice_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Invoice Id"}}],"responses":{"200":{"description":"DANFE PDF","content":{"application/json":{"schema":{}},"application/pdf":{}}},"404":{"description":"Invoice sem XML ou erro gerando PDF"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/marketing/programs":{"get":{"tags":["Marketing"],"summary":"Lista programas (cashback/cupom/colaborador)","operationId":"list_programs_api_v1_marketing_programs_get","parameters":[{"name":"kind","in":"query","required":false,"schema":{"type":"string","description":"cashback|coupon|employee_discount","default":"","title":"Kind"},"description":"cashback|coupon|employee_discount"},{"name":"status","in":"query","required":false,"schema":{"type":"string","description":"draft|active|paused|archived","default":"","title":"Status"},"description":"draft|active|paused|archived"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response List Programs Api V1 Marketing Programs Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Marketing"],"summary":"Cria programa (status inicial = draft)","operationId":"create_program_api_v1_marketing_programs_post","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProgramIn"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Create Program Api V1 Marketing Programs Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/marketing/programs/{program_id}":{"get":{"tags":["Marketing"],"summary":"Get Program","operationId":"get_program_api_v1_marketing_programs__program_id__get","parameters":[{"name":"program_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Program Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Program Api V1 Marketing Programs  Program Id  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/marketing/programs/{program_id}/status":{"post":{"tags":["Marketing"],"summary":"Muda status do programa","operationId":"change_program_status_api_v1_marketing_programs__program_id__status_post","parameters":[{"name":"program_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Program Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StatusChangeIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Change Program Status Api V1 Marketing Programs  Program Id  Status Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/marketing/programs/{program_id}/codes":{"get":{"tags":["Marketing"],"summary":"List Codes","operationId":"list_codes_api_v1_marketing_programs__program_id__codes_get","parameters":[{"name":"program_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Program Id"}},{"name":"active_only","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Active Only"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response List Codes Api V1 Marketing Programs  Program Id  Codes Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Marketing"],"summary":"Generate Codes","operationId":"generate_codes_api_v1_marketing_programs__program_id__codes_post","parameters":[{"name":"program_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Program Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CodeGenerateIn"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Generate Codes Api V1 Marketing Programs  Program Id  Codes Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/marketing/apply":{"post":{"tags":["Marketing"],"summary":"Aplica promocao em carrinho (preview)","operationId":"apply_promotion_api_v1_marketing_apply_post","parameters":[{"name":"code","in":"query","required":false,"schema":{"type":"string","description":"codigo cupom opcional","default":"","title":"Code"},"description":"codigo cupom opcional"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CartIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Apply Promotion Api V1 Marketing Apply Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/marketing/commit":{"post":{"tags":["Marketing"],"summary":"Persiste redemption pos-confirmacao da venda","operationId":"commit_redemption_api_v1_marketing_commit_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CommitIn"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Commit Redemption Api V1 Marketing Commit Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/marketing/redemptions/{redemption_id}/revert":{"post":{"tags":["Marketing"],"summary":"Revert Redemption","operationId":"revert_redemption_api_v1_marketing_redemptions__redemption_id__revert_post","parameters":[{"name":"redemption_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Redemption Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Revert Redemption Api V1 Marketing Redemptions  Redemption Id  Revert Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/marketing/redemptions":{"get":{"tags":["Marketing"],"summary":"List Redemptions","operationId":"list_redemptions_api_v1_marketing_redemptions_get","parameters":[{"name":"program_id","in":"query","required":false,"schema":{"type":"integer","default":0,"title":"Program Id"}},{"name":"partner_id","in":"query","required":false,"schema":{"type":"integer","default":0,"title":"Partner Id"}},{"name":"sale_kind","in":"query","required":false,"schema":{"type":"string","default":"","title":"Sale Kind"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":100,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response List Redemptions Api V1 Marketing Redemptions Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/marketing/cashback/{partner_id}":{"get":{"tags":["Marketing"],"summary":"Cashback Balance","operationId":"cashback_balance_api_v1_marketing_cashback__partner_id__get","parameters":[{"name":"partner_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Partner Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Cashback Balance Api V1 Marketing Cashback  Partner Id  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/marketing/cashback/{partner_id}/movements":{"get":{"tags":["Marketing"],"summary":"Cashback Movements","operationId":"cashback_movements_api_v1_marketing_cashback__partner_id__movements_get","parameters":[{"name":"partner_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Partner Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":100,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Cashback Movements Api V1 Marketing Cashback  Partner Id  Movements Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/marketing/employees":{"get":{"tags":["Marketing"],"summary":"List Employees","operationId":"list_employees_api_v1_marketing_employees_get","parameters":[{"name":"active_only","in":"query","required":false,"schema":{"type":"boolean","default":true,"title":"Active Only"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response List Employees Api V1 Marketing Employees Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Marketing"],"summary":"Add Employee","operationId":"add_employee_api_v1_marketing_employees_post","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmployeeIn"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Add Employee Api V1 Marketing Employees Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/marketing/employees/{employee_id}":{"delete":{"tags":["Marketing"],"summary":"Remove Employee","operationId":"remove_employee_api_v1_marketing_employees__employee_id__delete","parameters":[{"name":"employee_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Employee Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Remove Employee Api V1 Marketing Employees  Employee Id  Delete"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/marketing/wallet":{"get":{"tags":["Marketing"],"summary":"Wallet Balance","operationId":"wallet_balance_api_v1_marketing_wallet_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Wallet Balance Api V1 Marketing Wallet Get"}}}}}}},"/api/v1/marketing/wallet/txns":{"get":{"tags":["Marketing"],"summary":"Wallet Txns","operationId":"wallet_txns_api_v1_marketing_wallet_txns_get","parameters":[{"name":"kind","in":"query","required":false,"schema":{"type":"string","default":"","title":"Kind"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":100,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Wallet Txns Api V1 Marketing Wallet Txns Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/marketing/wallet/adjust":{"post":{"tags":["Marketing"],"summary":"Ajuste manual de saldo (admin)","operationId":"wallet_adjust_api_v1_marketing_wallet_adjust_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WalletAdjustIn"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Wallet Adjust Api V1 Marketing Wallet Adjust Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/marketing/metrics":{"get":{"tags":["Marketing"],"summary":"Metricas Prometheus (super_admin)","description":"Exposition format Prometheus (text/plain).\n\nScrape interval recomendado: 30-60s.","operationId":"metrics_api_v1_marketing_metrics_get","responses":{"200":{"description":"Successful Response","content":{"text/plain":{"schema":{"type":"string"}}}}}}},"/api/v1/marketing/metrics/json":{"get":{"tags":["Marketing"],"summary":"Metricas em JSON (uso interno)","operationId":"metrics_json_api_v1_marketing_metrics_json_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Metrics Json Api V1 Marketing Metrics Json Get"}}}}}}},"/api/v1/marketing/alerts":{"get":{"tags":["Marketing"],"summary":"Lista alertas ativos do tenant","operationId":"list_alerts_api_v1_marketing_alerts_get","parameters":[{"name":"severity","in":"query","required":false,"schema":{"type":"string","default":"","title":"Severity"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response List Alerts Api V1 Marketing Alerts Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/marketing/alerts/{alert_id}/resolve":{"post":{"tags":["Marketing"],"summary":"Resolve Alert","operationId":"resolve_alert_api_v1_marketing_alerts__alert_id__resolve_post","parameters":[{"name":"alert_id","in":"path","required":true,"schema":{"type":"integer","title":"Alert Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Resolve Alert Api V1 Marketing Alerts  Alert Id  Resolve Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/marketing/alerts/evaluate-now":{"post":{"tags":["Marketing"],"summary":"(admin) Forca avaliacao imediata das regras","operationId":"evaluate_alerts_now_api_v1_marketing_alerts_evaluate_now_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Evaluate Alerts Now Api V1 Marketing Alerts Evaluate Now Post"}}}}}}},"/api/v1/multicanal/inventory":{"put":{"tags":["Multicanal"],"summary":"Upsert estoque publicado em canal","operationId":"upsert_inventory_api_v1_multicanal_inventory_put","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChannelInventoryPayload"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Upsert Inventory Api V1 Multicanal Inventory Put"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/multicanal/reserve":{"post":{"tags":["Multicanal"],"summary":"Reserva qty em canal (anti-overselling)","description":"Reserva atomica. Retorna ok=false se estoque insuficiente.","operationId":"reserve_inventory_api_v1_multicanal_reserve_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReservePayload"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Reserve Inventory Api V1 Multicanal Reserve Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/multicanal/release":{"post":{"tags":["Multicanal"],"summary":"Libera reserva de canal","operationId":"release_reservation_api_v1_multicanal_release_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReservePayload"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Release Reservation Api V1 Multicanal Release Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/multicanal/dashboard":{"get":{"tags":["Multicanal"],"summary":"Painel saude multicanal","operationId":"dashboard_api_v1_multicanal_dashboard_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Dashboard Api V1 Multicanal Dashboard Get"}}}}}}},"/api/v1/multicanal/healthz":{"get":{"tags":["Multicanal"],"summary":"Healthcheck multicanal","operationId":"multicanal_healthz_api_v1_multicanal_healthz_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Multicanal Healthz Api V1 Multicanal Healthz Get"}}}}}}},"/api/v1/nfse":{"get":{"tags":["NFSe"],"summary":"Lista NFS-e","description":"**Scope**: `read:invoices`.","operationId":"list_nfse_api_v1_nfse_get","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Size"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PagedResponse_NFSeOut_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/nfse/{nfse_id}":{"get":{"tags":["NFSe"],"summary":"Detalhe da NFS-e","description":"**Scope**: `read:invoices`.","operationId":"get_nfse_api_v1_nfse__nfse_id__get","parameters":[{"name":"nfse_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Nfse Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NFSeOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/nfse/issue":{"post":{"tags":["NFSe"],"summary":"Emite NFS-e Nacional","description":"Emite NFS-e via SEFIN Nacional (padrao Confaz).\n\n**Scope**: `write:nfse`.","operationId":"issue_nfse_api_v1_nfse_issue_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IssueNFSeBody"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NFSeOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/nfse/{nfse_id}/cancel":{"post":{"tags":["NFSe"],"summary":"Cancela NFS-e","description":"**Scope**: `write:nfse`.","operationId":"cancel_nfse_api_v1_nfse__nfse_id__cancel_post","parameters":[{"name":"nfse_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Nfse Id"}},{"name":"justification","in":"query","required":true,"schema":{"type":"string","minLength":15,"maxLength":255,"title":"Justification"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OkResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/nfse/municipal/issue":{"post":{"tags":["NFSe"],"summary":"Emite NFS-e municipal via provedor configurado","description":"**Scope**: `write:nfse`.\n\nPayload: `{municipio_codigo_ibge, servico_payload}` onde\n`servico_payload` segue o schema ABRASF (valor_servicos, descricao,\naliquota, codigo_tributacao_municipal, etc.).","operationId":"issue_nfse_municipal_api_v1_nfse_municipal_issue_post","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Payload"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Issue Nfse Municipal Api V1 Nfse Municipal Issue Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/nfse/municipal/providers":{"get":{"tags":["NFSe"],"summary":"Lista provedores municipais NFS-e suportados","description":"**Scope**: `read:invoices`.","operationId":"list_municipal_providers_api_v1_nfse_municipal_providers_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response List Municipal Providers Api V1 Nfse Municipal Providers Get"}}}}}}},"/api/v1/oauth/authorize":{"post":{"tags":["OAuth"],"summary":"Emite code (chamado depois da consent screen)","operationId":"oauth_authorize_api_v1_oauth_authorize_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthorizeIn"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthorizeOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/oauth/token":{"post":{"tags":["OAuth"],"summary":"Troca code/refresh por bundle de tokens","operationId":"oauth_token_api_v1_oauth_token_post","requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_oauth_token_api_v1_oauth_token_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/oauth/revoke":{"post":{"tags":["OAuth"],"summary":"Revoga access/refresh (RFC 7009)","operationId":"oauth_revoke_api_v1_oauth_revoke_post","requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_oauth_revoke_api_v1_oauth_revoke_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/oauth/userinfo":{"get":{"tags":["OAuth"],"summary":"Userinfo (Bearer access_token)","operationId":"oauth_userinfo_api_v1_oauth_userinfo_get","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"type":"string","default":"","title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/orders/inbound":{"post":{"tags":["Orders Inbound"],"summary":"Recebe pedido canonico de fonte externa","description":"Recebe pedido canonico. Dedup por (channel, external_order_id).\n\n**Scope**: `write:orders`. Schema rigoroso via `CanonicalOrder`.\n\n- 201 + duplicate=False -> novo pedido criado\n- 201 + duplicate=True -> ja existia (idempotente)\n- 422 -> schema invalido (Pydantic)","operationId":"inbound_order_api_v1_orders_inbound_post","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CanonicalOrder"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrderIngestResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["Orders Inbound"],"summary":"Lista pedidos inbound do tenant","description":"Lista pedidos recebidos via inbound API.","operationId":"list_inbound_api_v1_orders_inbound_get","parameters":[{"name":"status","in":"query","required":false,"schema":{"type":"string","description":"pending | processed | rejected | ''","default":"","title":"Status"},"description":"pending | processed | rejected | ''"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrdersListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/orders/inbound/{mp_order_id}/mark-processed":{"post":{"tags":["Orders Inbound"],"summary":"Marca um pedido inbound como processado","description":"Marca pedido pending como processed apos criacao do sale.order.","operationId":"mark_processed_api_v1_orders_inbound__mp_order_id__mark_processed_post","parameters":[{"name":"mp_order_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Mp Order Id"}},{"name":"sale_order_id","in":"query","required":false,"schema":{"type":"integer","description":"ID do sale.order criado no backend para vincular.","default":0,"title":"Sale Order Id"},"description":"ID do sale.order criado no backend para vincular."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Mark Processed Api V1 Orders Inbound  Mp Order Id  Mark Processed Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/payroll/employees":{"get":{"tags":["Payroll"],"summary":"Lista funcionarios (hr.employee)","operationId":"list_employees_api_v1_payroll_employees_get","parameters":[{"name":"active_only","in":"query","required":false,"schema":{"type":"boolean","default":true,"title":"Active Only"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"default":200,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response List Employees Api V1 Payroll Employees Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/payroll/run":{"post":{"tags":["Payroll"],"summary":"Cria e computa folha do mes","operationId":"run_payroll_api_v1_payroll_run_post","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Payload"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Run Payroll Api V1 Payroll Run Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/payroll/payslips/{employee_id}":{"get":{"tags":["Payroll"],"summary":"Holerites de um funcionario","operationId":"list_payslips_api_v1_payroll_payslips__employee_id__get","parameters":[{"name":"employee_id","in":"path","required":true,"schema":{"type":"integer","title":"Employee Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response List Payslips Api V1 Payroll Payslips  Employee Id  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/payroll/inss-table":{"get":{"tags":["Payroll"],"summary":"Tabela INSS vigente","operationId":"inss_table_api_v1_payroll_inss_table_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Inss Table Api V1 Payroll Inss Table Get"}}}}}}},"/api/v1/payroll/irrf-table":{"get":{"tags":["Payroll"],"summary":"Tabela IRRF vigente","operationId":"irrf_table_api_v1_payroll_irrf_table_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Irrf Table Api V1 Payroll Irrf Table Get"}}}}}}},"/api/v1/payroll/rubricas":{"get":{"tags":["Payroll"],"summary":"Catalogo de rubricas (eventos)","operationId":"list_rubricas_api_v1_payroll_rubricas_get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":2000,"minimum":1,"default":500,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response List Rubricas Api V1 Payroll Rubricas Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/pdv/diagnose":{"post":{"tags":["PDV"],"summary":"Roda diagnostico pre-abertura PDV","operationId":"pdv_diagnose_api_v1_pdv_diagnose_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DiagnosePayload"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Pdv Diagnose Api V1 Pdv Diagnose Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/pdv/sessions":{"post":{"tags":["PDV"],"summary":"Abre nova sessao PDV","operationId":"open_session_api_v1_pdv_sessions_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OpenSessionPayload"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Open Session Api V1 Pdv Sessions Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/pdv/sessions/{session_id}/start":{"post":{"tags":["PDV"],"summary":"Transiciona sessao para ongoing","operationId":"start_session_api_v1_pdv_sessions__session_id__start_post","parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"integer","exclusiveMinimum":0,"title":"Session Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Start Session Api V1 Pdv Sessions  Session Id  Start Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/pdv/sessions/{session_id}/sale":{"post":{"tags":["PDV"],"summary":"Registra venda","operationId":"record_sale_api_v1_pdv_sessions__session_id__sale_post","parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"integer","title":"Session Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MovementPayload"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Record Sale Api V1 Pdv Sessions  Session Id  Sale Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/pdv/sessions/{session_id}/close":{"post":{"tags":["PDV"],"summary":"Encerra sessao","operationId":"close_session_api_v1_pdv_sessions__session_id__close_post","parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"integer","title":"Session Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CloseSessionPayload"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Close Session Api V1 Pdv Sessions  Session Id  Close Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/pdv/sessions/{session_id}":{"get":{"tags":["PDV"],"summary":"Le sessao PDV","operationId":"get_session_api_v1_pdv_sessions__session_id__get","parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"integer","title":"Session Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Session Api V1 Pdv Sessions  Session Id  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/pdv/healthz":{"get":{"tags":["PDV"],"summary":"Healthcheck PDV","operationId":"pdv_healthz_api_v1_pdv_healthz_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Pdv Healthz Api V1 Pdv Healthz Get"}}}}}}},"/api/v1/pix/providers":{"get":{"tags":["Pix"],"summary":"Lista PSPs disponiveis","operationId":"providers_status_api_v1_pix_providers_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Providers Status Api V1 Pix Providers Get"}}}}}}},"/api/v1/pix/charges":{"post":{"tags":["Pix"],"summary":"Cria cobranca PIX p/ deposito wallet","operationId":"create_charge_api_v1_pix_charges_post","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PixChargeIn"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Create Charge Api V1 Pix Charges Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["Pix"],"summary":"List Charges","operationId":"list_charges_api_v1_pix_charges_get","parameters":[{"name":"status","in":"query","required":false,"schema":{"type":"string","default":"","title":"Status"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":100,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response List Charges Api V1 Pix Charges Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/pix/callback/{provider}":{"post":{"tags":["Pix"],"summary":"Webhook PSP (publico, valida signature)","operationId":"pix_callback_api_v1_pix_callback__provider__post","parameters":[{"name":"provider","in":"path","required":true,"schema":{"type":"string","minLength":1,"title":"Provider"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Pix Callback Api V1 Pix Callback  Provider  Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/pix/bank-callback/{bank_code}/{tenant_id}":{"post":{"tags":["Pix"],"summary":"Webhook banco direto (Frente 6) - publico com HMAC","description":"Webhook endpoint para bancos diretos (Frente 6).\n\nBancos enviam POST com payload JSON + HMAC-SHA256 no header X-Signature.\nBankPixService valida assinatura via webhook_secret armazenado em\nbank_credentials.\n\nTenant_id eh parte da URL porque banco nao tem como saber qual\ntenant deve receber - cada tenant configura URL unica do webhook\nem /financeiro/pix-dinamico.\n\nReturns:\n    {ok, txid, charge_id, event_type, log_id} ou\n    {ok, idempotent: true, txid}.\n\nRaises:\n    HTTPException 401: HMAC invalido.\n    HTTPException 400: payload mal formado.\n    HTTPException 404: banco/tenant nao configurado.","operationId":"bank_pix_callback_api_v1_pix_bank_callback__bank_code___tenant_id__post","parameters":[{"name":"bank_code","in":"path","required":true,"schema":{"type":"string","minLength":3,"maxLength":3,"title":"Bank Code"}},{"name":"tenant_id","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":64,"title":"Tenant Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Bank Pix Callback Api V1 Pix Bank Callback  Bank Code   Tenant Id  Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/pix/bank-status/{bank_code}/{tenant_id}":{"get":{"tags":["Pix"],"summary":"Status do adapter bancario (Frente 6) - healthcheck publico","description":"Endpoint publico para monitorar saude do adapter.\n\nUtil para Status page (Frente 28) e debug. NAO devolve\ncredenciais - apenas {bank_code, configured, active, sandbox,\nlast_tested_at}.","operationId":"bank_pix_status_api_v1_pix_bank_status__bank_code___tenant_id__get","parameters":[{"name":"bank_code","in":"path","required":true,"schema":{"type":"string","minLength":3,"maxLength":3,"title":"Bank Code"}},{"name":"tenant_id","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":64,"title":"Tenant Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Bank Pix Status Api V1 Pix Bank Status  Bank Code   Tenant Id  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/products":{"get":{"tags":["Products"],"summary":"Lista produtos","description":"Lista produtos. Filtros opcionais: `q` (nome/SKU) e `ncm` (exato).\n\n**Scope**: `read:products`.","operationId":"list_products_api_v1_products_get","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Size"}},{"name":"q","in":"query","required":false,"schema":{"type":"string","default":"","title":"Q"}},{"name":"ncm","in":"query","required":false,"schema":{"type":"string","default":"","title":"Ncm"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PagedResponse_ProductOut_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Products"],"summary":"Cria produto","description":"**Scope**: `write:products`.","operationId":"create_product_api_v1_products_post","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProductCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProductOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/products/{product_id}":{"get":{"tags":["Products"],"summary":"Detalhe do produto","description":"**Scope**: `read:products`.","operationId":"get_product_api_v1_products__product_id__get","parameters":[{"name":"product_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Product Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProductOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["Products"],"summary":"Atualiza produto","description":"Atualizacao parcial. **Scope**: `write:products`.","operationId":"update_product_api_v1_products__product_id__put","parameters":[{"name":"product_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Product Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProductUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProductOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/products/search/by-ncm/{ncm}":{"get":{"tags":["Products"],"summary":"Lista produtos por NCM","description":"**Scope**: `read:products`.","operationId":"list_by_ncm_api_v1_products_search_by_ncm__ncm__get","parameters":[{"name":"ncm","in":"path","required":true,"schema":{"type":"string","minLength":4,"maxLength":10,"title":"Ncm"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Size"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PagedResponse_ProductOut_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/purchases/dashboard":{"get":{"tags":["Purchases"],"summary":"KPIs de compras","description":"**Scope**: `read:purchases`.","operationId":"dashboard_api_v1_purchases_dashboard_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Dashboard Api V1 Purchases Dashboard Get"}}}}}}},"/api/v1/purchases/orders":{"get":{"tags":["Purchases"],"summary":"Pedidos de compra","description":"**Scope**: `read:purchases`.","operationId":"list_orders_api_v1_purchases_orders_get","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Size"}},{"name":"state","in":"query","required":false,"schema":{"type":"string","default":"","title":"State"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response List Orders Api V1 Purchases Orders Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/purchases/replenishment-suggestions":{"get":{"tags":["Purchases"],"summary":"Sugestoes de reposicao","description":"ABC analysis-based replenishment. **Scope**: `read:purchases`.","operationId":"suggestions_api_v1_purchases_replenishment_suggestions_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Suggestions Api V1 Purchases Replenishment Suggestions Get"}}}}}}},"/api/v1/purchases/match-xml":{"post":{"tags":["Purchases"],"summary":"Match de XML de NF-e recebida a pedido de compra","description":"**Scope**: `write:purchases`.\n\nPayload: `{xml_b64: str, purchase_order_id?: int}`. Quando\n`purchase_order_id` for omitido, faz match heuristico por CNPJ\nemitente + valor total proximo.","operationId":"match_xml_api_v1_purchases_match_xml_post","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Payload"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Match Xml Api V1 Purchases Match Xml Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/received-invoices":{"get":{"tags":["Received Invoices"],"summary":"Lista NF-e recebidas (DFe)","description":"Lista DFe (Documentos Fiscais Eletronicos) recebidos via SEFAZ.\n\n**Scope**: `read:received-invoices`.","operationId":"list_received_api_v1_received_invoices_get","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Size"}},{"name":"manifestation","in":"query","required":false,"schema":{"type":"string","default":"","title":"Manifestation"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PagedResponse_ReceivedInvoiceOut_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/received-invoices/{record_id}/manifest":{"post":{"tags":["Received Invoices"],"summary":"Manifestacao do destinatario","description":"Envia manifestacao do destinatario SEFAZ (ciencia/confirmacao/\ndesconhecimento/operacao nao realizada).\n\n**Scope**: `write:received-invoices`.","operationId":"manifest_dfe_api_v1_received_invoices__record_id__manifest_post","parameters":[{"name":"record_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Record Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ManifestBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OkResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/received-invoices/{record_id}/xml":{"get":{"tags":["Received Invoices"],"summary":"XML de uma NF-e recebida","description":"**Scope**: `read:received-invoices`.","operationId":"get_xml_api_v1_received_invoices__record_id__xml_get","parameters":[{"name":"record_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Record Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}},"application/xml":{}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/reports/templates":{"post":{"tags":["Financial Reports"],"summary":"Cria template DRE/Balanco/DFC","operationId":"create_template_api_v1_reports_templates_post","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateTemplatePayload"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Create Template Api V1 Reports Templates Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["Financial Reports"],"summary":"Lista templates do tenant","operationId":"list_templates_api_v1_reports_templates_get","parameters":[{"name":"template_kind","in":"query","required":false,"schema":{"anyOf":[{"type":"string","pattern":"^(dre|balanco|dfc|dlpa)$"},{"type":"null"}],"title":"Template Kind"}},{"name":"only_active","in":"query","required":false,"schema":{"type":"boolean","default":true,"title":"Only Active"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","additionalProperties":true},"title":"Response List Templates Api V1 Reports Templates Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/reports/templates/{template_id}":{"get":{"tags":["Financial Reports"],"summary":"Le template completo","operationId":"get_template_api_v1_reports_templates__template_id__get","parameters":[{"name":"template_id","in":"path","required":true,"schema":{"type":"integer","exclusiveMinimum":0,"title":"Template Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Template Api V1 Reports Templates  Template Id  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/reports/templates/{template_id}/run":{"post":{"tags":["Financial Reports"],"summary":"Executa template no periodo","operationId":"run_template_api_v1_reports_templates__template_id__run_post","parameters":[{"name":"template_id","in":"path","required":true,"schema":{"type":"integer","title":"Template Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunTemplatePayload"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Run Template Api V1 Reports Templates  Template Id  Run Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/reports/runs/{run_id}":{"get":{"tags":["Financial Reports"],"summary":"Le resultado de uma execucao","operationId":"get_run_api_v1_reports_runs__run_id__get","parameters":[{"name":"run_id","in":"path","required":true,"schema":{"type":"integer","title":"Run Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Run Api V1 Reports Runs  Run Id  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/reports/healthz":{"get":{"tags":["Financial Reports"],"summary":"Healthcheck reports","operationId":"reports_healthz_api_v1_reports_healthz_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Reports Healthz Api V1 Reports Healthz Get"}}}}}}},"/api/v1/sales/dashboard":{"get":{"tags":["Sales"],"summary":"KPIs de vendas","description":"**Scope**: `read:sales`.","operationId":"dashboard_api_v1_sales_dashboard_get","parameters":[{"name":"months","in":"query","required":false,"schema":{"type":"integer","maximum":60,"minimum":1,"default":12,"title":"Months"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Dashboard Api V1 Sales Dashboard Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/sales/quotes":{"get":{"tags":["Sales"],"summary":"Lista orcamentos","description":"**Scope**: `read:sales`.","operationId":"list_quotes_api_v1_sales_quotes_get","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Size"}},{"name":"state","in":"query","required":false,"schema":{"type":"string","default":"","title":"State"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PagedResponse_QuoteOut_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/sales/orders":{"get":{"tags":["Sales"],"summary":"Pedidos de venda","description":"**Scope**: `read:sales`.","operationId":"list_orders_api_v1_sales_orders_get","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Size"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response List Orders Api V1 Sales Orders Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/sales/returns":{"get":{"tags":["Sales"],"summary":"Devolucoes de venda (account.move out_refund)","description":"**Scope**: `read:sales`.","operationId":"list_returns_api_v1_sales_returns_get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":100,"title":"Limit"}},{"name":"date_from","in":"query","required":false,"schema":{"type":"string","pattern":"^(\\d{4}-\\d{2}-\\d{2})?$","default":"","title":"Date From"}},{"name":"date_to","in":"query","required":false,"schema":{"type":"string","pattern":"^(\\d{4}-\\d{2}-\\d{2})?$","default":"","title":"Date To"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response List Returns Api V1 Sales Returns Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/sales/commissions":{"get":{"tags":["Sales"],"summary":"Comissoes de vendedores (agregadas por vendedor)","description":"**Scope**: `read:sales`. Calcula 2% como comissao default.","operationId":"list_commissions_api_v1_sales_commissions_get","parameters":[{"name":"salesperson_id","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Salesperson Id"}},{"name":"period_from","in":"query","required":false,"schema":{"type":"string","pattern":"^(\\d{4}-\\d{2}-\\d{2})?$","default":"","title":"Period From"}},{"name":"period_to","in":"query","required":false,"schema":{"type":"string","pattern":"^(\\d{4}-\\d{2}-\\d{2})?$","default":"","title":"Period To"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":100,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response List Commissions Api V1 Sales Commissions Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1-sandbox/health":{"get":{"tags":["Sandbox"],"summary":"Status do sandbox + counts por tabela","description":"Status atual do schema sandbox + ultimo reset.","operationId":"sandbox_health_api_v1_sandbox_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Sandbox Health Api V1 Sandbox Health Get"}}}}}}},"/api/v1-sandbox/reset":{"post":{"tags":["Sandbox"],"summary":"Reset manual do sandbox (TRUNCATE)","description":"Reset sandbox manualmente. Requer header X-Sandbox-Mode.","operationId":"sandbox_reset_api_v1_sandbox_reset_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Sandbox Reset Api V1 Sandbox Reset Post"}}}}}}},"/api/v1-sandbox/info":{"get":{"tags":["Sandbox"],"summary":"Info da configuracao sandbox + uso","description":"Info detalhada do sandbox.","operationId":"sandbox_info_api_v1_sandbox_info_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Sandbox Info Api V1 Sandbox Info Get"}}}}}}},"/api/v1/sefaz/status/{uf}":{"get":{"tags":["SEFAZ"],"summary":"Status SEFAZ por UF","description":"**Scope**: `read:sefaz`. Cache de 60s salvo `force_refresh=true`.","operationId":"status_uf_api_v1_sefaz_status__uf__get","parameters":[{"name":"uf","in":"path","required":true,"schema":{"type":"string","minLength":2,"maxLength":2,"title":"Uf"}},{"name":"ambiente","in":"query","required":false,"schema":{"type":"string","description":"homologacao | producao","default":"homologacao","title":"Ambiente"},"description":"homologacao | producao"},{"name":"force_refresh","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Force Refresh"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SefazStatusOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/sefaz/status":{"get":{"tags":["SEFAZ"],"summary":"Status de TODAS as 27 UFs","description":"Snapshot do sefaz_poller (cache em DB). **Scope**: `read:sefaz`.","operationId":"status_all_api_v1_sefaz_status_get","parameters":[{"name":"ambiente","in":"query","required":false,"schema":{"type":"string","default":"producao","title":"Ambiente"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Status All Api V1 Sefaz Status Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/sefaz/history/{uf}":{"get":{"tags":["SEFAZ"],"summary":"Historico de transicoes da UF","description":"Transicoes (OK->FAIL, etc.) da UF dentro da janela.\n\n**Scope**: `read:sefaz`.","operationId":"history_api_v1_sefaz_history__uf__get","parameters":[{"name":"uf","in":"path","required":true,"schema":{"type":"string","minLength":2,"maxLength":2,"title":"Uf"}},{"name":"hours_back","in":"query","required":false,"schema":{"type":"integer","maximum":8760,"minimum":1,"description":"Janela em horas (default 30d)","default":720,"title":"Hours Back"},"description":"Janela em horas (default 30d)"},{"name":"only_degradations","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Only Degradations"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"default":100,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response History Api V1 Sefaz History  Uf  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/services":{"get":{"tags":["Services"],"summary":"Lista servicos","description":"Lista servicos (filtra produtos com type=service).\n\n**Scope**: `read:services`. Filtros: `q` e `lc116`.","operationId":"list_services_api_v1_services_get","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Size"}},{"name":"q","in":"query","required":false,"schema":{"type":"string","default":"","title":"Q"}},{"name":"lc116","in":"query","required":false,"schema":{"type":"string","default":"","title":"Lc116"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PagedResponse_ServiceOut_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Services"],"summary":"Cria servico","description":"**Scope**: `write:services`.","operationId":"create_service_api_v1_services_post","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/services/{service_id}":{"get":{"tags":["Services"],"summary":"Detalhe do servico","description":"**Scope**: `read:services`.","operationId":"get_service_api_v1_services__service_id__get","parameters":[{"name":"service_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Service Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["Services"],"summary":"Atualiza servico","description":"Atualizacao parcial. **Scope**: `write:services`.","operationId":"update_service_api_v1_services__service_id__put","parameters":[{"name":"service_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Service Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceOut"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/services/search/by-lc116/{lc116_code}":{"get":{"tags":["Services"],"summary":"Lista por codigo LC-116","description":"**Scope**: `read:services`.","operationId":"list_by_lc116_api_v1_services_search_by_lc116__lc116_code__get","parameters":[{"name":"lc116_code","in":"path","required":true,"schema":{"type":"string","minLength":3,"maxLength":10,"title":"Lc116 Code"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Size"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PagedResponse_ServiceOut_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/stock/overview":{"get":{"tags":["Stock"],"summary":"Saldo de estoque consolidado","description":"**Scope**: `read:stock`.","operationId":"overview_api_v1_stock_overview_get","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Size"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PagedResponse_StockOverviewItem_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/stock/lots":{"get":{"tags":["Stock"],"summary":"Lotes e validades","description":"**Scope**: `read:stock`.","operationId":"list_lots_api_v1_stock_lots_get","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Size"}},{"name":"expiring_in_days","in":"query","required":false,"schema":{"type":"integer","maximum":365,"minimum":0,"default":0,"title":"Expiring In Days"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PagedResponse_LotOut_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/stock/pickings":{"get":{"tags":["Stock"],"summary":"Movimentacoes (entrada/saida/transferencia)","description":"**Scope**: `read:stock`.","operationId":"list_pickings_api_v1_stock_pickings_get","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Size"}},{"name":"state","in":"query","required":false,"schema":{"type":"string","default":"","title":"State"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PagedResponse_PickingOut_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/stock/alerts":{"get":{"tags":["Stock"],"summary":"Alertas (validades, minimos)","description":"**Scope**: `read:stock`.","operationId":"list_alerts_api_v1_stock_alerts_get","parameters":[{"name":"acknowledged","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Acknowledged"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PagedResponse_StockAlertOut_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/stock/abc":{"get":{"tags":["Stock"],"summary":"Analise ABC","description":"Classificacao ABC por receita acumulada. **Scope**: `read:stock`.","operationId":"abc_analysis_api_v1_stock_abc_get","parameters":[{"name":"months","in":"query","required":false,"schema":{"type":"integer","maximum":60,"minimum":1,"default":12,"title":"Months"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PagedResponse_AbcRow_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/stock/inventory-adjustment":{"post":{"tags":["Stock"],"summary":"Ajuste de inventario via stock.quant","description":"**Scope**: `write:stock`. Ajuste direto de stock.quant.\n\nPayload: `{product_id, location_id, new_quantity, reason?}`","operationId":"create_inventory_adjustment_api_v1_stock_inventory_adjustment_post","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Payload"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Create Inventory Adjustment Api V1 Stock Inventory Adjustment Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/storefront/config":{"get":{"tags":["Storefront"],"summary":"Le configuracao loja","description":"Le config atual. Scope: read:storefront. 404 se nao configurada.","operationId":"get_store_config_api_v1_storefront_config_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Get Store Config Api V1 Storefront Config Get"}}}}}},"put":{"tags":["Storefront"],"summary":"Upsert configuracao loja virtual","description":"Cria/atualiza configuracao da loja. Scope: write:storefront.","operationId":"configure_store_api_v1_storefront_config_put","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StorefrontConfigPayload"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Configure Store Api V1 Storefront Config Put"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/storefront/products":{"post":{"tags":["Storefront"],"summary":"Publica produto na vitrine","operationId":"publish_product_api_v1_storefront_products_post","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublishProductPayload"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProductResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["Storefront"],"summary":"Lista produtos publicados","operationId":"list_products_api_v1_storefront_products_get","parameters":[{"name":"only_featured","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Only Featured"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":100,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ProductResponse"},"title":"Response List Products Api V1 Storefront Products Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/storefront/healthz":{"get":{"tags":["Storefront"],"summary":"Healthcheck do servico storefront","operationId":"storefront_healthz_api_v1_storefront_healthz_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HealthcheckResponse"}}}}}}},"/api/v1/tax/diagnose":{"post":{"tags":["Tax"],"summary":"Diagnostico pre-apuracao","description":"Roda dossie de pre-apuracao para a competencia/CNPJ.\n\n**Scope**: `read:diagnosis`.","operationId":"diagnose_api_v1_tax_diagnose_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DiagnoseBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DiagnoseResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/tax/apuration/{competencia}":{"get":{"tags":["Tax"],"summary":"Apuracao mensal (preview)","description":"Calcula apuracao mensal de tributos. **Scope**: `read:tax`.","operationId":"apurate_api_v1_tax_apuration__competencia__get","parameters":[{"name":"competencia","in":"path","required":true,"schema":{"type":"string","pattern":"^\\d{2}/\\d{4}$","title":"Competencia"}},{"name":"cnpj","in":"query","required":false,"schema":{"type":"string","description":"CNPJ da empresa (vazio = matriz)","default":"","title":"Cnpj"},"description":"CNPJ da empresa (vazio = matriz)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApurationResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/tax/rules":{"get":{"tags":["Tax"],"summary":"Lista regras tributarias ativas","description":"Catalogo de regras (config/tax_rules.toml).\n\n**Scope**: `read:tax`.","operationId":"list_rules_api_v1_tax_rules_get","parameters":[{"name":"tax_type","in":"query","required":false,"schema":{"type":"string","default":"","title":"Tax Type"}},{"name":"include_inactive","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Include Inactive"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":100,"title":"Size"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PagedResponse_TaxRuleOut_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/tax/regimes/sublimite/{uf}":{"get":{"tags":["Tax"],"summary":"Verifica sublimite Simples Nacional","description":"**Scope**: `read:tax`. Verifica se a empresa estourou o sublimite\nestadual do Simples Nacional (R$ 3.6M ou 1.8M conforme UF).","operationId":"check_sublimite_endpoint_api_v1_tax_regimes_sublimite__uf__get","parameters":[{"name":"uf","in":"path","required":true,"schema":{"type":"string","minLength":2,"maxLength":2,"title":"Uf"}},{"name":"receita","in":"query","required":true,"schema":{"type":"number","minimum":0,"description":"Receita acumulada 12m","title":"Receita"},"description":"Receita acumulada 12m"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Check Sublimite Endpoint Api V1 Tax Regimes Sublimite  Uf  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/webhooks/catalog":{"get":{"tags":["Webhooks"],"summary":"Lista event_types suportados","operationId":"webhook_catalog_api_v1_webhooks_catalog_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CatalogOut"}}}}}}},"/api/v1/webhooks":{"get":{"tags":["Webhooks"],"summary":"Lista webhooks do tenant","operationId":"list_webhooks_api_v1_webhooks_get","parameters":[{"name":"only_active","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Only Active"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response List Webhooks Api V1 Webhooks Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Webhooks"],"summary":"Registra webhook","operationId":"create_webhook_api_v1_webhooks_post","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Create Webhook Api V1 Webhooks Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/webhooks/{webhook_id}":{"get":{"tags":["Webhooks"],"summary":"Detalhe de 1 webhook","operationId":"get_webhook_api_v1_webhooks__webhook_id__get","parameters":[{"name":"webhook_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Webhook Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Webhook Api V1 Webhooks  Webhook Id  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["Webhooks"],"summary":"Atualiza webhook","operationId":"update_webhook_api_v1_webhooks__webhook_id__patch","parameters":[{"name":"webhook_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Webhook Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Update Webhook Api V1 Webhooks  Webhook Id  Patch"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Webhooks"],"summary":"Remove webhook","operationId":"delete_webhook_api_v1_webhooks__webhook_id__delete","parameters":[{"name":"webhook_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Webhook Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/webhooks/{webhook_id}/deliveries":{"get":{"tags":["Webhooks"],"summary":"Historico de deliveries de 1 webhook","operationId":"list_deliveries_api_v1_webhooks__webhook_id__deliveries_get","parameters":[{"name":"webhook_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Webhook Id"}},{"name":"status","in":"query","required":false,"schema":{"type":"string","default":"","title":"Status"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":100,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response List Deliveries Api V1 Webhooks  Webhook Id  Deliveries Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/webhooks/deliveries/{delivery_id}/resend":{"post":{"tags":["Webhooks"],"summary":"Re-enfileira delivery failed/delivered","operationId":"resend_delivery_api_v1_webhooks_deliveries__delivery_id__resend_post","parameters":[{"name":"delivery_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Delivery Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Resend Delivery Api V1 Webhooks Deliveries  Delivery Id  Resend Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/webhooks/test":{"post":{"tags":["Webhooks"],"summary":"Dispara webhook de teste com payload sintetico","description":"**Scope**: `write:webhooks`.\n\nPayload obrigatorio: `{url: str, event_type?: str, secret?: str}`.\n\nDispara HTTP POST imediato contra `url` com payload sintetico do\n`event_type` (default: 'webhook.test'). Retorna status HTTP + corpo\ntruncado da resposta. NAO grava em webhook_deliveries (uso de\ndebugging por developers).","operationId":"test_webhook_api_v1_webhooks_test_post","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Payload"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Test Webhook Api V1 Webhooks Test Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"AbcRow":{"properties":{"product_id":{"type":"integer","title":"Product Id"},"product_name":{"type":"string","title":"Product Name"},"cumulative_revenue_pct":{"type":"number","title":"Cumulative Revenue Pct","default":0.0},"classification":{"type":"string","title":"Classification","description":"A | B | C","default":"C"}},"type":"object","required":["product_id","product_name"],"title":"AbcRow"},"AdsCampaignSpec":{"properties":{"name":{"type":"string","maxLength":200,"minLength":1,"title":"Name"},"objective":{"type":"string","enum":["sales","traffic","leads","brand","app_install","video_views"],"title":"Objective","default":"traffic"},"budget_daily_cents":{"type":"integer","minimum":0.0,"title":"Budget Daily Cents","default":0},"budget_total_cents":{"type":"integer","minimum":0.0,"title":"Budget Total Cents","default":0},"start_date":{"type":"string","title":"Start Date","default":""},"end_date":{"type":"string","title":"End Date","default":""},"audience":{"additionalProperties":true,"type":"object","title":"Audience"},"creative":{"additionalProperties":true,"type":"object","title":"Creative"}},"type":"object","required":["name"],"title":"AdsCampaignSpec","description":"Spec normalizada de campanha (input do create)."},"ApurationLine":{"properties":{"label":{"type":"string","title":"Label"},"base":{"type":"number","title":"Base","default":0.0},"aliquot":{"type":"number","title":"Aliquot","default":0.0},"value":{"type":"number","title":"Value","default":0.0}},"type":"object","required":["label"],"title":"ApurationLine"},"ApurationResult":{"properties":{"competencia":{"type":"string","title":"Competencia"},"cnpj":{"type":"string","title":"Cnpj"},"receita_bruta":{"type":"number","title":"Receita Bruta","default":0.0},"impostos":{"items":{"$ref":"#/components/schemas/ApurationLine"},"type":"array","title":"Impostos"},"total_impostos":{"type":"number","title":"Total Impostos","default":0.0},"via":{"type":"string","title":"Via","description":"odoo | engine | mock","default":""}},"type":"object","required":["competencia","cnpj"],"title":"ApurationResult"},"AuthorizeIn":{"properties":{"application_id":{"type":"integer","title":"Application Id"},"redirect_uri":{"type":"string","title":"Redirect Uri"},"scopes":{"items":{"type":"string"},"type":"array","title":"Scopes"},"code_challenge":{"type":"string","title":"Code Challenge"},"code_challenge_method":{"type":"string","title":"Code Challenge Method","default":"S256"},"state":{"type":"string","title":"State","default":""},"user_login":{"type":"string","title":"User Login","default":""}},"type":"object","required":["application_id","redirect_uri","scopes","code_challenge"],"title":"AuthorizeIn"},"AuthorizeOut":{"properties":{"code":{"type":"string","title":"Code"},"expires_in":{"type":"integer","title":"Expires In"},"state":{"type":"string","title":"State","default":""}},"type":"object","required":["code","expires_in"],"title":"AuthorizeOut"},"BOMComponentPayload":{"properties":{"component_product_id":{"type":"integer","exclusiveMinimum":0.0,"title":"Component Product Id"},"qty":{"type":"number","exclusiveMinimum":0.0,"title":"Qty"},"unit_cost":{"type":"number","minimum":0.0,"title":"Unit Cost","default":0},"component_name":{"type":"string","title":"Component Name","default":""},"line_number":{"type":"integer","title":"Line Number","default":0}},"type":"object","required":["component_product_id","qty"],"title":"BOMComponentPayload"},"Body_oauth_revoke_api_v1_oauth_revoke_post":{"properties":{"token":{"type":"string","title":"Token"},"token_type_hint":{"type":"string","title":"Token Type Hint","default":""}},"type":"object","required":["token"],"title":"Body_oauth_revoke_api_v1_oauth_revoke_post"},"Body_oauth_token_api_v1_oauth_token_post":{"properties":{"grant_type":{"type":"string","title":"Grant Type"},"code":{"type":"string","title":"Code","default":""},"code_verifier":{"type":"string","title":"Code Verifier","default":""},"redirect_uri":{"type":"string","title":"Redirect Uri","default":""},"client_id":{"type":"string","title":"Client Id","default":""},"refresh_token":{"type":"string","title":"Refresh Token","default":""}},"type":"object","required":["grant_type"],"title":"Body_oauth_token_api_v1_oauth_token_post"},"Body_upload_cnd_api_v1_compliance_cnd_upload_post":{"properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","title":"File","description":"PDF da CND"},"cnpj":{"type":"string","title":"Cnpj"},"issuer":{"type":"string","title":"Issuer","description":"RFB | PGFN | FGTS | SEFAZ-SP | ..."}},"type":"object","required":["file","cnpj","issuer"],"title":"Body_upload_cnd_api_v1_compliance_cnd_upload_post"},"CampaignCreateIn":{"properties":{"account_id":{"type":"integer","exclusiveMinimum":0.0,"title":"Account Id"},"spec":{"$ref":"#/components/schemas/AdsCampaignSpec"}},"type":"object","required":["account_id","spec"],"title":"CampaignCreateIn"},"CanonicalOrder":{"properties":{"channel":{"type":"string","pattern":"^(mercadolivre|shopee|shopify|amazon|nuvemshop|manual)$","title":"Channel","description":"Canal de origem do pedido. Validado contra whitelist de canais suportados."},"external_order_id":{"type":"string","maxLength":100,"minLength":1,"title":"External Order Id","description":"ID do pedido no sistema de origem."},"customer_name":{"type":"string","maxLength":200,"title":"Customer Name","default":""},"customer_email":{"type":"string","maxLength":200,"title":"Customer Email","default":""},"customer_cnpj_cpf":{"type":"string","maxLength":20,"title":"Customer Cnpj Cpf","default":""},"customer_address":{"type":"string","maxLength":500,"title":"Customer Address","default":""},"items":{"items":{"$ref":"#/components/schemas/CanonicalOrderItem"},"type":"array","title":"Items","description":"Lista de items do pedido. Pode ser vazia para pedidos rejeitados de marketplace."},"total_amount":{"type":"number","minimum":0.0,"title":"Total Amount","default":0.0},"order_date":{"type":"string","title":"Order Date","description":"ISO YYYY-MM-DD","default":""},"raw_data":{"additionalProperties":true,"type":"object","title":"Raw Data","description":"Payload original do canal para debug."}},"type":"object","required":["channel","external_order_id"],"title":"CanonicalOrder","description":"Pedido canonico - independente de canal de origem."},"CanonicalOrderItem":{"properties":{"sku":{"type":"string","maxLength":100,"minLength":1,"title":"Sku"},"product_name":{"type":"string","maxLength":300,"title":"Product Name","default":""},"quantity":{"type":"number","exclusiveMinimum":0.0,"title":"Quantity"},"unit_price":{"type":"number","minimum":0.0,"title":"Unit Price"},"subtotal":{"type":"number","minimum":0.0,"title":"Subtotal","default":0.0}},"type":"object","required":["sku","quantity","unit_price"],"title":"CanonicalOrderItem"},"CartIn":{"properties":{"partner_id":{"type":"integer","title":"Partner Id","default":0},"partner_cpf":{"type":"string","title":"Partner Cpf","default":""},"sale_kind":{"type":"string","title":"Sale Kind","default":"nfe"},"lines":{"items":{"$ref":"#/components/schemas/CartLine"},"type":"array","title":"Lines"}},"type":"object","title":"CartIn"},"CartLine":{"properties":{"product_id":{"type":"integer","title":"Product Id","default":0},"product_name":{"type":"string","title":"Product Name","default":""},"category":{"type":"string","title":"Category","default":""},"quantity":{"type":"number","title":"Quantity","default":1.0},"unit_price_cents":{"type":"integer","minimum":0.0,"title":"Unit Price Cents"}},"type":"object","required":["unit_price_cents"],"title":"CartLine"},"CatalogOut":{"properties":{"supported_event_types":{"items":{"type":"string"},"type":"array","title":"Supported Event Types"},"retry_policy_minutes":{"items":{"type":"integer"},"type":"array","title":"Retry Policy Minutes","description":"Backoff exponencial (minutos) por tentativa","default":[1,5,15,60,360,1440]},"hmac_header":{"type":"string","title":"Hmac Header","default":"X-Delfica-Signature"}},"type":"object","required":["supported_event_types"],"title":"CatalogOut"},"CceBody":{"properties":{"record_id":{"type":"integer","minimum":1.0,"title":"Record Id"},"correction_text":{"type":"string","maxLength":1000,"minLength":15,"title":"Correction Text"},"sequence":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Sequence"}},"type":"object","required":["record_id","correction_text"],"title":"CceBody"},"CertificateInfo":{"properties":{"installed":{"type":"boolean","title":"Installed","default":false},"subject":{"type":"string","title":"Subject","default":""},"not_before":{"type":"string","title":"Not Before","default":""},"not_after":{"type":"string","title":"Not After","default":""},"days_to_expire":{"type":"integer","title":"Days To Expire","default":0},"cnpj":{"type":"string","title":"Cnpj","default":""}},"type":"object","title":"CertificateInfo"},"ChannelInventoryPayload":{"properties":{"channel":{"type":"string","pattern":"^(mercadolivre|shopee|magalu|amazon|generic)$","title":"Channel"},"sku":{"type":"string","maxLength":80,"minLength":1,"title":"Sku"},"product_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Product Id"},"published_qty":{"type":"number","minimum":0.0,"title":"Published Qty"},"buffer_qty":{"type":"number","minimum":0.0,"title":"Buffer Qty","default":0}},"type":"object","required":["channel","sku","published_qty"],"title":"ChannelInventoryPayload"},"ChatBody":{"properties":{"message":{"type":"string","maxLength":4000,"minLength":1,"title":"Message"},"context":{"additionalProperties":true,"type":"object","title":"Context","description":"Contexto opcional (competencia, cnpj, etc.)"}},"type":"object","required":["message"],"title":"ChatBody"},"ChatResponse":{"properties":{"answer":{"type":"string","title":"Answer"},"citations":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Citations"},"usage":{"additionalProperties":true,"type":"object","title":"Usage"}},"type":"object","required":["answer"],"title":"ChatResponse"},"ClickRegisterIn":{"properties":{"campaign_id":{"type":"integer","exclusiveMinimum":0.0,"title":"Campaign Id"},"utm_source":{"type":"string","title":"Utm Source","default":""},"utm_medium":{"type":"string","title":"Utm Medium","default":""},"utm_campaign":{"type":"string","title":"Utm Campaign","default":""},"destination_url":{"type":"string","minLength":1,"title":"Destination Url"}},"type":"object","required":["campaign_id","destination_url"],"title":"ClickRegisterIn"},"CloseSessionPayload":{"properties":{"cash_close":{"type":"number","minimum":0.0,"title":"Cash Close"}},"type":"object","required":["cash_close"],"title":"CloseSessionPayload"},"CnabRemessaBody":{"properties":{"bank":{"type":"string","title":"Bank","description":"itau | bradesco | santander | bb | sicoob | sicredi"},"receivable_ids":{"items":{"type":"integer"},"type":"array","minItems":1,"title":"Receivable Ids"}},"type":"object","required":["bank","receivable_ids"],"title":"CnabRemessaBody"},"CndOut":{"properties":{"id":{"type":"integer","title":"Id"},"cnpj":{"type":"string","title":"Cnpj"},"issuer":{"type":"string","title":"Issuer","default":""},"status":{"type":"string","title":"Status","default":""},"valid_until":{"type":"string","title":"Valid Until","default":""},"uploaded_at":{"type":"string","title":"Uploaded At","default":""},"file_size":{"type":"integer","title":"File Size","default":0}},"type":"object","required":["id","cnpj"],"title":"CndOut"},"CodeGenerateIn":{"properties":{"program_id":{"type":"integer","exclusiveMinimum":0.0,"title":"Program Id"},"quantity":{"type":"integer","maximum":10000.0,"exclusiveMinimum":0.0,"title":"Quantity"},"prefix":{"type":"string","title":"Prefix","default":""},"max_uses":{"type":"integer","title":"Max Uses","default":1},"partner_id":{"type":"integer","title":"Partner Id","default":0},"expires_at":{"type":"string","title":"Expires At","default":""}},"type":"object","required":["program_id","quantity"],"title":"CodeGenerateIn"},"CommitIn":{"properties":{"cart":{"$ref":"#/components/schemas/CartIn"},"code":{"type":"string","title":"Code","default":""},"sale_kind":{"type":"string","title":"Sale Kind","description":"nfe|nfse|nfce|pos|ecommerce|subscription|sale_order"},"sale_ref":{"type":"string","minLength":1,"title":"Sale Ref"}},"type":"object","required":["cart","sale_kind","sale_ref"],"title":"CommitIn"},"CompleteProductionPayload":{"properties":{"consumptions":{"items":{"$ref":"#/components/schemas/ConsumptionItem"},"type":"array","title":"Consumptions"},"qty_produced":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Qty Produced"}},"type":"object","title":"CompleteProductionPayload"},"ComplianceStatus":{"properties":{"cnpj":{"type":"string","title":"Cnpj"},"overall":{"type":"string","title":"Overall","description":"ok | warning | blocker","default":"unknown"},"items":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Items"},"snapshot_at":{"type":"string","title":"Snapshot At","default":""}},"type":"object","required":["cnpj"],"title":"ComplianceStatus"},"ConsumptionItem":{"properties":{"component_product_id":{"type":"integer","exclusiveMinimum":0.0,"title":"Component Product Id"},"qty_consumed":{"type":"number","minimum":0.0,"title":"Qty Consumed"},"unit_cost":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Unit Cost"}},"type":"object","required":["component_product_id","qty_consumed"],"title":"ConsumptionItem"},"CreateBOMPayload":{"properties":{"product_id":{"type":"integer","exclusiveMinimum":0.0,"title":"Product Id"},"name":{"type":"string","maxLength":200,"minLength":1,"title":"Name"},"components":{"items":{"$ref":"#/components/schemas/BOMComponentPayload"},"type":"array","minItems":1,"title":"Components"},"unit_qty":{"type":"number","exclusiveMinimum":0.0,"title":"Unit Qty","default":1},"product_name":{"type":"string","title":"Product Name","default":""},"deactivate_previous":{"type":"boolean","title":"Deactivate Previous","default":true}},"type":"object","required":["product_id","name","components"],"title":"CreateBOMPayload"},"CreateLeadPayload":{"properties":{"name":{"type":"string","maxLength":200,"minLength":1,"title":"Name"},"company_name":{"type":"string","title":"Company Name","default":""},"cnpj":{"type":"string","title":"Cnpj","default":""},"email":{"type":"string","title":"Email","default":""},"phone":{"type":"string","title":"Phone","default":""},"origin":{"type":"string","title":"Origin","default":"manual"},"expected_revenue":{"type":"number","minimum":0.0,"title":"Expected Revenue","default":0},"expected_close_date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Expected Close Date"},"owner":{"type":"string","title":"Owner","default":""},"tags":{"items":{"type":"string"},"type":"array","title":"Tags"},"notes":{"type":"string","title":"Notes","default":""}},"type":"object","required":["name"],"title":"CreateLeadPayload"},"CreateProductionPayload":{"properties":{"bom_id":{"type":"integer","exclusiveMinimum":0.0,"title":"Bom Id"},"qty_to_produce":{"type":"number","exclusiveMinimum":0.0,"title":"Qty To Produce"},"order_code":{"type":"string","title":"Order Code","default":""},"notes":{"type":"string","title":"Notes","default":""}},"type":"object","required":["bom_id","qty_to_produce"],"title":"CreateProductionPayload"},"CreateTemplatePayload":{"properties":{"template_kind":{"type":"string","pattern":"^(dre|balanco|dfc|dlpa)$","title":"Template Kind"},"name":{"type":"string","maxLength":200,"minLength":1,"title":"Name"},"description":{"type":"string","title":"Description","default":""},"regime":{"type":"string","pattern":"^(simples|presumido|real|any)$","title":"Regime","default":"any"},"lines":{"items":{"$ref":"#/components/schemas/TemplateLinePayload"},"type":"array","minItems":1,"title":"Lines"}},"type":"object","required":["template_kind","name","lines"],"title":"CreateTemplatePayload"},"CustomerCreate":{"properties":{"name":{"type":"string","maxLength":200,"minLength":2,"title":"Name"},"cnpj_cpf":{"type":"string","title":"Cnpj Cpf","description":"Apenas digitos ou formatado","default":""},"is_company":{"type":"boolean","title":"Is Company","default":true},"email":{"type":"string","title":"Email","default":""},"phone":{"type":"string","title":"Phone","default":""},"street":{"type":"string","title":"Street","default":""},"city":{"type":"string","title":"City","default":""},"state_code":{"type":"string","title":"State Code","default":""},"zip":{"type":"string","title":"Zip","default":""}},"type":"object","required":["name"],"title":"CustomerCreate"},"CustomerOut":{"properties":{"id":{"type":"integer","title":"Id"},"name":{"type":"string","title":"Name"},"email":{"type":"string","title":"Email","default":""},"cnpj_cpf":{"type":"string","title":"Cnpj Cpf","default":""},"is_company":{"type":"boolean","title":"Is Company","default":false},"phone":{"type":"string","title":"Phone","default":""},"street":{"type":"string","title":"Street","default":""},"city":{"type":"string","title":"City","default":""},"state_code":{"type":"string","title":"State Code","description":"UF (sigla)","default":""},"zip":{"type":"string","title":"Zip","default":""},"active":{"type":"boolean","title":"Active","default":true}},"type":"object","required":["id","name"],"title":"CustomerOut","description":"Representacao publica de um cliente."},"CustomerUpdate":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"cnpj_cpf":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cnpj Cpf"},"email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email"},"phone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Phone"},"street":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Street"},"city":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"City"},"state_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"State Code"},"zip":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Zip"},"active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Active"}},"type":"object","title":"CustomerUpdate"},"DasSimplesInput":{"properties":{"receita_bruta_12_meses":{"type":"number","maximum":4800000.0,"exclusiveMinimum":0.0,"title":"Receita Bruta 12 Meses"},"anexo":{"type":"string","pattern":"^(I|II|III|IV|V)$","title":"Anexo","default":"I"},"receita_mes":{"type":"number","exclusiveMinimum":0.0,"title":"Receita Mes"}},"type":"object","required":["receita_bruta_12_meses","receita_mes"],"title":"DasSimplesInput"},"DiagnoseBody":{"properties":{"competencia":{"type":"string","pattern":"^\\d{2}/\\d{4}$","title":"Competencia","description":"MM/AAAA"},"cnpj":{"type":"string","title":"Cnpj","description":"CNPJ da empresa (vazio = matriz)","default":""},"force_refresh":{"type":"boolean","title":"Force Refresh","default":false}},"type":"object","required":["competencia"],"title":"DiagnoseBody"},"DiagnoseIssue":{"properties":{"severity":{"type":"string","title":"Severity","description":"blocker | warning | info","default":"warning"},"code":{"type":"string","title":"Code"},"message":{"type":"string","title":"Message"},"category":{"type":"string","title":"Category","default":""}},"type":"object","required":["code","message"],"title":"DiagnoseIssue"},"DiagnosePayload":{"properties":{"cert_valid":{"type":"boolean","title":"Cert Valid"},"nfce_serie_configured":{"type":"boolean","title":"Nfce Serie Configured"},"sefaz_reachable":{"type":"boolean","title":"Sefaz Reachable"},"printer_available":{"type":"boolean","title":"Printer Available"}},"type":"object","required":["cert_valid","nfce_serie_configured","sefaz_reachable","printer_available"],"title":"DiagnosePayload"},"DiagnoseResult":{"properties":{"competencia":{"type":"string","title":"Competencia"},"cnpj":{"type":"string","title":"Cnpj"},"has_blocker":{"type":"boolean","title":"Has Blocker","default":false},"issues":{"items":{"$ref":"#/components/schemas/DiagnoseIssue"},"type":"array","title":"Issues"},"snapshot_at":{"type":"string","title":"Snapshot At","default":""}},"type":"object","required":["competencia","cnpj"],"title":"DiagnoseResult"},"EmployeeIn":{"properties":{"cpf":{"type":"string","maxLength":14,"minLength":11,"title":"Cpf"},"name":{"type":"string","title":"Name","default":""},"program_id":{"type":"integer","title":"Program Id","default":0},"max_monthly_cents":{"type":"integer","title":"Max Monthly Cents","default":0}},"type":"object","required":["cpf"],"title":"EmployeeIn"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"HealthcheckResponse":{"properties":{"service":{"type":"string","title":"Service"},"tenant_id":{"type":"string","title":"Tenant Id"},"status":{"type":"string","title":"Status"},"store_active":{"type":"boolean","title":"Store Active","default":false},"published_products":{"type":"integer","title":"Published Products","default":0},"active_carts":{"type":"integer","title":"Active Carts","default":0}},"type":"object","required":["service","tenant_id","status"],"title":"HealthcheckResponse"},"InutilizationBody":{"properties":{"serie":{"type":"integer","maximum":999.0,"minimum":0.0,"title":"Serie"},"numero_inicial":{"type":"integer","minimum":1.0,"title":"Numero Inicial"},"numero_final":{"type":"integer","minimum":1.0,"title":"Numero Final"},"justification":{"type":"string","maxLength":255,"minLength":15,"title":"Justification"}},"type":"object","required":["serie","numero_inicial","numero_final","justification"],"title":"InutilizationBody"},"InvoiceLine":{"properties":{"product_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Product Id"},"service_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Service Id"},"description":{"type":"string","title":"Description","default":""},"quantity":{"type":"number","exclusiveMinimum":0.0,"title":"Quantity"},"unit_price":{"type":"number","minimum":0.0,"title":"Unit Price"},"ncm":{"type":"string","title":"Ncm","default":""},"cfop":{"type":"string","title":"Cfop","default":""}},"type":"object","required":["quantity","unit_price"],"title":"InvoiceLine"},"InvoiceLineBody":{"properties":{"product_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Product Id"},"name":{"type":"string","minLength":1,"title":"Name"},"quantity":{"type":"number","exclusiveMinimum":0.0,"title":"Quantity"},"price_unit":{"type":"number","minimum":0.0,"title":"Price Unit"},"ncm":{"type":"string","maxLength":8,"title":"Ncm","default":""},"cfop":{"type":"string","maxLength":4,"title":"Cfop","default":""},"codigo_servico":{"type":"string","maxLength":10,"title":"Codigo Servico","default":""}},"type":"object","required":["name","quantity","price_unit"],"title":"InvoiceLineBody","description":"Linha de item da NF-e/NFS-e."},"InvoiceOut":{"properties":{"id":{"type":"integer","title":"Id"},"number":{"type":"string","title":"Number","default":""},"serie":{"type":"string","title":"Serie","default":""},"document_type":{"type":"string","title":"Document Type","default":"55"},"status":{"type":"string","title":"Status","default":""},"chave_acesso":{"type":"string","title":"Chave Acesso","default":""},"customer_id":{"type":"integer","title":"Customer Id","default":0},"customer_name":{"type":"string","title":"Customer Name","default":""},"total_amount":{"type":"number","title":"Total Amount","default":0.0},"issued_at":{"type":"string","title":"Issued At","default":""},"authorized_at":{"type":"string","title":"Authorized At","default":""}},"type":"object","required":["id"],"title":"InvoiceOut"},"IssueNFSeBody":{"properties":{"customer_id":{"type":"integer","minimum":1.0,"title":"Customer Id"},"municipality_code":{"type":"string","title":"Municipality Code","description":"IBGE 7 digitos. Vazio = matriz da empresa","default":""},"lines":{"items":{"$ref":"#/components/schemas/NFSeLine"},"type":"array","minItems":1,"title":"Lines"},"notes":{"type":"string","title":"Notes","default":""}},"type":"object","required":["customer_id","lines"],"title":"IssueNFSeBody"},"LogActivityPayload":{"properties":{"activity_type":{"type":"string","pattern":"^(call|email|meeting|note|stage_change)$","title":"Activity Type"},"subject":{"type":"string","maxLength":200,"minLength":1,"title":"Subject"},"description":{"type":"string","title":"Description","default":""},"performed_by":{"type":"string","title":"Performed By","default":""},"payload":{"additionalProperties":true,"type":"object","title":"Payload"}},"type":"object","required":["activity_type","subject"],"title":"LogActivityPayload"},"LotOut":{"properties":{"id":{"type":"integer","title":"Id"},"name":{"type":"string","title":"Name"},"product_id":{"type":"integer","title":"Product Id"},"product_name":{"type":"string","title":"Product Name","default":""},"quantity":{"type":"number","title":"Quantity","default":0.0},"expiration_date":{"type":"string","title":"Expiration Date","default":""},"days_to_expiration":{"type":"integer","title":"Days To Expiration","default":0}},"type":"object","required":["id","name","product_id"],"title":"LotOut"},"ManifestBody":{"properties":{"manifestation":{"type":"string","title":"Manifestation","description":"ciencia | confirmacao | desconhecimento | nao_realizada"},"justification":{"type":"string","maxLength":255,"title":"Justification","default":""}},"type":"object","required":["manifestation"],"title":"ManifestBody"},"MarkupOverrideIn":{"properties":{"tenant_id":{"type":"string","minLength":1,"title":"Tenant Id"},"markup_pct":{"type":"number","maximum":50.0,"minimum":0.0,"title":"Markup Pct"},"reason":{"type":"string","title":"Reason","default":""}},"type":"object","required":["tenant_id","markup_pct"],"title":"MarkupOverrideIn"},"MarkupSetGlobalIn":{"properties":{"markup_pct":{"type":"number","maximum":50.0,"minimum":0.0,"title":"Markup Pct"}},"type":"object","required":["markup_pct"],"title":"MarkupSetGlobalIn"},"MovementPayload":{"properties":{"amount":{"type":"number","exclusiveMinimum":0.0,"title":"Amount"},"reason":{"type":"string","title":"Reason","default":""}},"type":"object","required":["amount"],"title":"MovementPayload"},"NFSeLine":{"properties":{"service_id":{"type":"integer","minimum":1.0,"title":"Service Id"},"description":{"type":"string","title":"Description","default":""},"quantity":{"type":"number","exclusiveMinimum":0.0,"title":"Quantity"},"unit_price":{"type":"number","minimum":0.0,"title":"Unit Price"},"lc116_code":{"type":"string","title":"Lc116 Code","default":""}},"type":"object","required":["service_id","quantity","unit_price"],"title":"NFSeLine"},"NFSeOut":{"properties":{"id":{"type":"integer","title":"Id"},"number":{"type":"string","title":"Number","default":""},"rps_number":{"type":"string","title":"Rps Number","default":""},"status":{"type":"string","title":"Status","default":""},"total":{"type":"number","title":"Total","default":0.0},"iss_value":{"type":"number","title":"Iss Value","default":0.0},"issued_at":{"type":"string","title":"Issued At","default":""}},"type":"object","required":["id"],"title":"NFSeOut"},"NextStepsBody":{"properties":{"competencia":{"type":"string","pattern":"^\\d{2}/\\d{4}$","title":"Competencia"},"cnpj":{"type":"string","title":"Cnpj","default":""}},"type":"object","required":["competencia"],"title":"NextStepsBody"},"OAuthStartIn":{"properties":{"platform":{"type":"string","title":"Platform","description":"google|meta|linkedin|tiktok"},"redirect_uri":{"type":"string","minLength":1,"title":"Redirect Uri"},"scopes":{"items":{"type":"string"},"type":"array","title":"Scopes"}},"type":"object","required":["platform","redirect_uri"],"title":"OAuthStartIn"},"OkResponse":{"properties":{"ok":{"type":"boolean","title":"Ok","default":true},"message":{"type":"string","title":"Message","default":""},"detail":{"additionalProperties":true,"type":"object","title":"Detail"}},"type":"object","title":"OkResponse","description":"Resposta padrao para operacoes que nao retornam payload util."},"OpenSessionPayload":{"properties":{"terminal_code":{"type":"string","maxLength":20,"minLength":1,"title":"Terminal Code"},"operator_name":{"type":"string","maxLength":100,"minLength":1,"title":"Operator Name"},"cash_open":{"type":"number","minimum":0.0,"title":"Cash Open","default":0},"diagnosis":{"$ref":"#/components/schemas/DiagnosePayload"}},"type":"object","required":["terminal_code","operator_name","diagnosis"],"title":"OpenSessionPayload"},"OrderIngestResponse":{"properties":{"ok":{"type":"boolean","title":"Ok","default":true},"mp_order_id":{"type":"integer","title":"Mp Order Id","default":0},"external_order_id":{"type":"string","title":"External Order Id","default":""},"channel":{"type":"string","title":"Channel","default":""},"duplicate":{"type":"boolean","title":"Duplicate","default":false},"message":{"type":"string","title":"Message","default":""}},"type":"object","title":"OrderIngestResponse"},"OrderOut":{"properties":{"mp_order_id":{"type":"integer","title":"Mp Order Id"},"channel":{"type":"string","title":"Channel"},"external_order_id":{"type":"string","title":"External Order Id"},"customer_name":{"type":"string","title":"Customer Name","default":""},"customer_email":{"type":"string","title":"Customer Email","default":""},"customer_cnpj_cpf":{"type":"string","title":"Customer Cnpj Cpf","default":""},"items_count":{"type":"integer","title":"Items Count","default":0},"total_amount":{"type":"number","title":"Total Amount","default":0.0},"status":{"type":"string","title":"Status","default":"pending"},"sale_order_id":{"type":"integer","title":"Sale Order Id","default":0},"created_at":{"type":"string","title":"Created At","default":""}},"type":"object","required":["mp_order_id","channel","external_order_id"],"title":"OrderOut"},"OrdersListResponse":{"properties":{"items":{"items":{"$ref":"#/components/schemas/OrderOut"},"type":"array","title":"Items"},"total":{"type":"integer","title":"Total","default":0}},"type":"object","title":"OrdersListResponse"},"PageMeta":{"properties":{"page":{"type":"integer","minimum":1.0,"title":"Page","description":"Pagina atual (1-based).","default":1},"size":{"type":"integer","maximum":200.0,"minimum":0.0,"title":"Size","description":"Tamanho da pagina retornada (pode ser 0 em listas vazias).","default":50},"total":{"type":"integer","minimum":0.0,"title":"Total","description":"Total de itens (se conhecido). 0 quando o backend nao retorna.","default":0},"has_more":{"type":"boolean","title":"Has More","description":"True se ha mais paginas. Util quando total nao eh conhecido.","default":false}},"type":"object","title":"PageMeta","description":"Metadados de pagina."},"PagedResponse_AbcRow_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/AbcRow"},"type":"array","title":"Items"},"meta":{"$ref":"#/components/schemas/PageMeta"}},"type":"object","title":"PagedResponse[AbcRow]"},"PagedResponse_CndOut_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/CndOut"},"type":"array","title":"Items"},"meta":{"$ref":"#/components/schemas/PageMeta"}},"type":"object","title":"PagedResponse[CndOut]"},"PagedResponse_CustomerOut_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/CustomerOut"},"type":"array","title":"Items"},"meta":{"$ref":"#/components/schemas/PageMeta"}},"type":"object","title":"PagedResponse[CustomerOut]"},"PagedResponse_InvoiceOut_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/InvoiceOut"},"type":"array","title":"Items"},"meta":{"$ref":"#/components/schemas/PageMeta"}},"type":"object","title":"PagedResponse[InvoiceOut]"},"PagedResponse_LotOut_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/LotOut"},"type":"array","title":"Items"},"meta":{"$ref":"#/components/schemas/PageMeta"}},"type":"object","title":"PagedResponse[LotOut]"},"PagedResponse_NFSeOut_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/NFSeOut"},"type":"array","title":"Items"},"meta":{"$ref":"#/components/schemas/PageMeta"}},"type":"object","title":"PagedResponse[NFSeOut]"},"PagedResponse_PayableOut_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/PayableOut"},"type":"array","title":"Items"},"meta":{"$ref":"#/components/schemas/PageMeta"}},"type":"object","title":"PagedResponse[PayableOut]"},"PagedResponse_PickingOut_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/PickingOut"},"type":"array","title":"Items"},"meta":{"$ref":"#/components/schemas/PageMeta"}},"type":"object","title":"PagedResponse[PickingOut]"},"PagedResponse_ProductOut_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/ProductOut"},"type":"array","title":"Items"},"meta":{"$ref":"#/components/schemas/PageMeta"}},"type":"object","title":"PagedResponse[ProductOut]"},"PagedResponse_QuoteOut_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/QuoteOut"},"type":"array","title":"Items"},"meta":{"$ref":"#/components/schemas/PageMeta"}},"type":"object","title":"PagedResponse[QuoteOut]"},"PagedResponse_ReceivableOut_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/ReceivableOut"},"type":"array","title":"Items"},"meta":{"$ref":"#/components/schemas/PageMeta"}},"type":"object","title":"PagedResponse[ReceivableOut]"},"PagedResponse_ReceivedInvoiceOut_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/ReceivedInvoiceOut"},"type":"array","title":"Items"},"meta":{"$ref":"#/components/schemas/PageMeta"}},"type":"object","title":"PagedResponse[ReceivedInvoiceOut]"},"PagedResponse_ServiceOut_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/ServiceOut"},"type":"array","title":"Items"},"meta":{"$ref":"#/components/schemas/PageMeta"}},"type":"object","title":"PagedResponse[ServiceOut]"},"PagedResponse_StockAlertOut_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/StockAlertOut"},"type":"array","title":"Items"},"meta":{"$ref":"#/components/schemas/PageMeta"}},"type":"object","title":"PagedResponse[StockAlertOut]"},"PagedResponse_StockOverviewItem_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/StockOverviewItem"},"type":"array","title":"Items"},"meta":{"$ref":"#/components/schemas/PageMeta"}},"type":"object","title":"PagedResponse[StockOverviewItem]"},"PagedResponse_TaxRuleOut_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/TaxRuleOut"},"type":"array","title":"Items"},"meta":{"$ref":"#/components/schemas/PageMeta"}},"type":"object","title":"PagedResponse[TaxRuleOut]"},"PayableOut":{"properties":{"id":{"type":"integer","title":"Id"},"supplier_id":{"type":"integer","title":"Supplier Id","default":0},"supplier_name":{"type":"string","title":"Supplier Name","default":""},"amount":{"type":"number","title":"Amount","default":0.0},"due_date":{"type":"string","title":"Due Date","default":""},"days_overdue":{"type":"integer","title":"Days Overdue","default":0},"state":{"type":"string","title":"State","default":""}},"type":"object","required":["id"],"title":"PayableOut"},"PickingOut":{"properties":{"id":{"type":"integer","title":"Id"},"name":{"type":"string","title":"Name"},"state":{"type":"string","title":"State","default":""},"picking_type":{"type":"string","title":"Picking Type","description":"incoming/outgoing/internal","default":""},"partner_name":{"type":"string","title":"Partner Name","default":""},"scheduled_date":{"type":"string","title":"Scheduled Date","default":""},"qty_total":{"type":"number","title":"Qty Total","default":0.0}},"type":"object","required":["id","name"],"title":"PickingOut"},"PixChargeIn":{"properties":{"amount_cents":{"type":"integer","exclusiveMinimum":0.0,"title":"Amount Cents"},"provider":{"type":"string","title":"Provider","description":"asaas|mercado_pago|stark_bank (default conforme env)","default":""},"payer_name":{"type":"string","title":"Payer Name","default":""},"payer_doc":{"type":"string","title":"Payer Doc","default":""},"expires_seconds":{"type":"integer","title":"Expires Seconds","default":3600}},"type":"object","required":["amount_cents"],"title":"PixChargeIn"},"PixGenerateBody":{"properties":{"invoice_id":{"type":"integer","minimum":1.0,"title":"Invoice Id"},"pix_key":{"type":"string","title":"Pix Key","description":"Vazio = chave default da empresa","default":""}},"type":"object","required":["invoice_id"],"title":"PixGenerateBody"},"ProductCreate":{"properties":{"name":{"type":"string","minLength":1,"title":"Name"},"sku":{"type":"string","title":"Sku","default":""},"ncm":{"type":"string","maxLength":10,"minLength":0,"title":"Ncm","default":""},"cfop":{"type":"string","title":"Cfop","default":""},"unit_price":{"type":"number","minimum":0.0,"title":"Unit Price","default":0.0},"cost_price":{"type":"number","minimum":0.0,"title":"Cost Price","default":0.0}},"type":"object","required":["name"],"title":"ProductCreate"},"ProductOut":{"properties":{"id":{"type":"integer","title":"Id"},"name":{"type":"string","title":"Name"},"sku":{"type":"string","title":"Sku","description":"Codigo interno","default":""},"ncm":{"type":"string","title":"Ncm","default":""},"cfop":{"type":"string","title":"Cfop","default":""},"unit_price":{"type":"number","title":"Unit Price","default":0.0},"cost_price":{"type":"number","title":"Cost Price","default":0.0},"active":{"type":"boolean","title":"Active","default":true}},"type":"object","required":["id","name"],"title":"ProductOut"},"ProductResponse":{"properties":{"storefront_product_id":{"type":"integer","title":"Storefront Product Id"},"sku":{"type":"string","title":"Sku"},"title":{"type":"string","title":"Title"},"slug":{"type":"string","title":"Slug"},"price":{"type":"number","title":"Price"},"published":{"type":"boolean","title":"Published"},"stock_qty":{"type":"number","title":"Stock Qty"},"seo_title":{"type":"string","title":"Seo Title"},"seo_description":{"type":"string","title":"Seo Description"},"featured":{"type":"boolean","title":"Featured"},"categories":{"items":{"type":"string"},"type":"array","title":"Categories"}},"type":"object","required":["storefront_product_id","sku","title","slug","price","published","stock_qty","seo_title","seo_description","featured"],"title":"ProductResponse"},"ProductUpdate":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"sku":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sku"},"ncm":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ncm"},"cfop":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cfop"},"unit_price":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Unit Price"},"cost_price":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Cost Price"},"active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Active"}},"type":"object","title":"ProductUpdate"},"ProgramAppliesTo":{"properties":{"product_ids":{"items":{"type":"integer"},"type":"array","title":"Product Ids"},"product_categories":{"items":{"type":"string"},"type":"array","title":"Product Categories"},"partner_ids":{"items":{"type":"integer"},"type":"array","title":"Partner Ids"},"sale_kinds":{"items":{"type":"string"},"type":"array","title":"Sale Kinds"}},"type":"object","title":"ProgramAppliesTo","description":"Escopo de aplicacao."},"ProgramIn":{"properties":{"name":{"type":"string","maxLength":200,"minLength":1,"title":"Name"},"kind":{"type":"string","enum":["cashback","coupon","employee_discount"],"title":"Kind"},"description":{"type":"string","title":"Description","default":""},"rules":{"$ref":"#/components/schemas/ProgramRules"},"applies_to":{"$ref":"#/components/schemas/ProgramAppliesTo"},"valid_from":{"type":"string","title":"Valid From","default":""},"valid_to":{"type":"string","title":"Valid To","default":""},"max_redemptions":{"type":"integer","title":"Max Redemptions","default":0},"max_per_customer":{"type":"integer","title":"Max Per Customer","default":0},"priority":{"type":"integer","title":"Priority","default":0}},"type":"object","required":["name","kind"],"title":"ProgramIn"},"ProgramRules":{"properties":{"discount_pct":{"type":"number","title":"Discount Pct","default":0.0},"discount_fixed_cents":{"type":"integer","title":"Discount Fixed Cents","default":0},"cashback_pct":{"type":"number","title":"Cashback Pct","default":0.0},"cashback_fixed_cents":{"type":"integer","title":"Cashback Fixed Cents","default":0},"expires_days":{"type":"integer","title":"Expires Days","default":0},"min_total_cents":{"type":"integer","title":"Min Total Cents","default":0},"weekdays":{"items":{"type":"integer"},"type":"array","title":"Weekdays"},"hours":{"items":{"type":"string"},"type":"array","title":"Hours"},"apply_recurring":{"type":"boolean","title":"Apply Recurring","default":false}},"type":"object","title":"ProgramRules","description":"Regras dinamicas do programa (rules_json)."},"PublishProductPayload":{"properties":{"product_id":{"type":"integer","exclusiveMinimum":0.0,"title":"Product Id"},"title":{"type":"string","maxLength":300,"minLength":1,"title":"Title"},"price":{"type":"number","exclusiveMinimum":0.0,"title":"Price"},"description":{"type":"string","title":"Description","default":""},"sku":{"type":"string","title":"Sku","default":""},"stock_qty":{"type":"number","minimum":0.0,"title":"Stock Qty","default":0},"categories":{"items":{"type":"string"},"type":"array","title":"Categories"},"featured":{"type":"boolean","title":"Featured","default":false}},"type":"object","required":["product_id","title","price"],"title":"PublishProductPayload"},"QuoteOut":{"properties":{"id":{"type":"integer","title":"Id"},"name":{"type":"string","title":"Name","default":""},"customer_id":{"type":"integer","title":"Customer Id","default":0},"customer_name":{"type":"string","title":"Customer Name","default":""},"state":{"type":"string","title":"State","default":""},"amount_total":{"type":"number","title":"Amount Total","default":0.0},"date":{"type":"string","title":"Date","default":""}},"type":"object","required":["id"],"title":"QuoteOut"},"ReceivableOut":{"properties":{"id":{"type":"integer","title":"Id"},"invoice_id":{"type":"integer","title":"Invoice Id","default":0},"customer_id":{"type":"integer","title":"Customer Id","default":0},"customer_name":{"type":"string","title":"Customer Name","default":""},"amount":{"type":"number","title":"Amount","default":0.0},"due_date":{"type":"string","title":"Due Date","default":""},"days_overdue":{"type":"integer","title":"Days Overdue","default":0},"state":{"type":"string","title":"State","description":"open | paid | overdue","default":""}},"type":"object","required":["id"],"title":"ReceivableOut"},"ReceivedInvoiceOut":{"properties":{"id":{"type":"integer","title":"Id"},"chave_acesso":{"type":"string","title":"Chave Acesso","default":""},"supplier_cnpj":{"type":"string","title":"Supplier Cnpj","default":""},"supplier_name":{"type":"string","title":"Supplier Name","default":""},"number":{"type":"string","title":"Number","default":""},"issued_at":{"type":"string","title":"Issued At","default":""},"total_amount":{"type":"number","title":"Total Amount","default":0.0},"manifestation":{"type":"string","title":"Manifestation","description":"ciencia | confirmacao | desconhecimento | nao_realizada","default":""}},"type":"object","required":["id"],"title":"ReceivedInvoiceOut"},"ReservePayload":{"properties":{"channel":{"type":"string","maxLength":50,"minLength":1,"title":"Channel"},"sku":{"type":"string","maxLength":80,"minLength":1,"title":"Sku"},"qty":{"type":"number","exclusiveMinimum":0.0,"title":"Qty"}},"type":"object","required":["channel","sku","qty"],"title":"ReservePayload"},"RunTemplatePayload":{"properties":{"competencia_start":{"type":"string","format":"date","title":"Competencia Start"},"competencia_end":{"type":"string","format":"date","title":"Competencia End"},"company_cnpj":{"type":"string","title":"Company Cnpj","default":""}},"type":"object","required":["competencia_start","competencia_end"],"title":"RunTemplatePayload"},"SefazStatusOut":{"properties":{"uf":{"type":"string","title":"Uf"},"ambiente":{"type":"string","title":"Ambiente"},"status":{"type":"string","title":"Status"},"is_available":{"type":"boolean","title":"Is Available","default":false},"cstat":{"type":"string","title":"Cstat","default":""},"xmotivo":{"type":"string","title":"Xmotivo","default":""},"response_time_ms":{"type":"integer","title":"Response Time Ms","default":0},"autorizador":{"type":"string","title":"Autorizador","default":""},"checked_at":{"type":"string","title":"Checked At","default":""}},"type":"object","required":["uf","ambiente","status"],"title":"SefazStatusOut"},"ServiceCreate":{"properties":{"name":{"type":"string","minLength":1,"title":"Name"},"sku":{"type":"string","title":"Sku","default":""},"lc116_code":{"type":"string","title":"Lc116 Code","default":""},"iss_aliquot":{"type":"number","maximum":100.0,"minimum":0.0,"title":"Iss Aliquot","default":0.0},"cnae":{"type":"string","title":"Cnae","default":""},"unit_price":{"type":"number","minimum":0.0,"title":"Unit Price","default":0.0}},"type":"object","required":["name"],"title":"ServiceCreate"},"ServiceOut":{"properties":{"id":{"type":"integer","title":"Id"},"name":{"type":"string","title":"Name"},"sku":{"type":"string","title":"Sku","default":""},"lc116_code":{"type":"string","title":"Lc116 Code","description":"Codigo LC-116/2003","default":""},"iss_aliquot":{"type":"number","maximum":100.0,"minimum":0.0,"title":"Iss Aliquot","default":0.0},"cnae":{"type":"string","title":"Cnae","default":""},"unit_price":{"type":"number","title":"Unit Price","default":0.0},"active":{"type":"boolean","title":"Active","default":true}},"type":"object","required":["id","name"],"title":"ServiceOut"},"ServiceUpdate":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"sku":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sku"},"lc116_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Lc116 Code"},"iss_aliquot":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Iss Aliquot"},"cnae":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cnae"},"unit_price":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Unit Price"},"active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Active"}},"type":"object","title":"ServiceUpdate"},"StatusChangeIn":{"properties":{"status":{"type":"string","title":"Status","description":"draft|active|paused|archived"}},"type":"object","required":["status"],"title":"StatusChangeIn"},"StockAlertOut":{"properties":{"alert_id":{"type":"integer","title":"Alert Id"},"alert_kind":{"type":"string","title":"Alert Kind"},"lot_name":{"type":"string","title":"Lot Name","default":""},"product_name":{"type":"string","title":"Product Name","default":""},"expiration_date":{"type":"string","title":"Expiration Date","default":""},"severity":{"type":"string","title":"Severity","default":"warning"},"acknowledged":{"type":"boolean","title":"Acknowledged","default":false}},"type":"object","required":["alert_id","alert_kind"],"title":"StockAlertOut"},"StockOverviewItem":{"properties":{"product_id":{"type":"integer","title":"Product Id"},"product_name":{"type":"string","title":"Product Name"},"sku":{"type":"string","title":"Sku","default":""},"on_hand":{"type":"number","title":"On Hand","default":0.0},"forecasted":{"type":"number","title":"Forecasted","default":0.0},"incoming":{"type":"number","title":"Incoming","default":0.0},"outgoing":{"type":"number","title":"Outgoing","default":0.0}},"type":"object","required":["product_id","product_name"],"title":"StockOverviewItem"},"StorefrontConfigPayload":{"properties":{"store_name":{"type":"string","maxLength":200,"minLength":1,"title":"Store Name"},"theme":{"type":"string","pattern":"^(minimalist|retail|wholesale)$","title":"Theme","default":"minimalist"},"subdomain":{"type":"string","title":"Subdomain","default":""},"custom_domain":{"type":"string","title":"Custom Domain","default":""},"primary_color":{"type":"string","title":"Primary Color","default":"#0066CC"},"logo_url":{"type":"string","title":"Logo Url","default":""},"store_description":{"type":"string","title":"Store Description","default":""},"email_contact":{"type":"string","title":"Email Contact","default":""},"phone_contact":{"type":"string","title":"Phone Contact","default":""},"active":{"type":"boolean","title":"Active","default":false},"lgpd_terms":{"type":"string","title":"Lgpd Terms","default":""},"terms_of_use":{"type":"string","title":"Terms Of Use","default":""}},"type":"object","required":["store_name"],"title":"StorefrontConfigPayload"},"TaxRuleOut":{"properties":{"id":{"type":"integer","title":"Id"},"name":{"type":"string","title":"Name"},"tax_type":{"type":"string","title":"Tax Type","default":""},"aliquot":{"type":"number","title":"Aliquot","default":0.0},"vigencia_inicio":{"type":"string","title":"Vigencia Inicio","default":""},"vigencia_fim":{"type":"string","title":"Vigencia Fim","default":""},"active":{"type":"boolean","title":"Active","default":true}},"type":"object","required":["id","name"],"title":"TaxRuleOut"},"TemplateLinePayload":{"properties":{"label":{"type":"string","maxLength":300,"minLength":1,"title":"Label"},"line_type":{"type":"string","pattern":"^(header|value|subtotal|total|spacer)$","title":"Line Type","default":"value"},"account_codes":{"items":{"type":"string"},"type":"array","title":"Account Codes"},"sign":{"type":"string","pattern":"^(positive|negative)$","title":"Sign","default":"positive"},"depth":{"type":"integer","maximum":10.0,"minimum":0.0,"title":"Depth","default":0},"formula":{"type":"string","title":"Formula","default":""},"order_index":{"type":"integer","title":"Order Index","default":0}},"type":"object","required":["label"],"title":"TemplateLinePayload"},"TransitionStagePayload":{"properties":{"new_stage":{"type":"string","pattern":"^(qualification|proposal|negotiation|won|lost)$","title":"New Stage"},"reason":{"type":"string","title":"Reason","default":""},"performed_by":{"type":"string","title":"Performed By","default":""},"expected_revenue":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Expected Revenue"}},"type":"object","required":["new_stage"],"title":"TransitionStagePayload"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"WalletAdjustIn":{"properties":{"amount_cents":{"type":"integer","exclusiveMinimum":0.0,"title":"Amount Cents"},"reference":{"type":"string","minLength":1,"title":"Reference"},"metadata":{"additionalProperties":true,"type":"object","title":"Metadata"}},"type":"object","required":["amount_cents","reference"],"title":"WalletAdjustIn"},"WebhookCreate":{"properties":{"url":{"type":"string","title":"Url","description":"URL HTTPS (recomendado) para receber POST"},"events":{"items":{"type":"string"},"type":"array","minItems":1,"title":"Events","description":"event_types - ex: invoice.authorized, dfe.received, order.created, payment.received, sefaz.outage, etc."},"name":{"type":"string","maxLength":200,"title":"Name","default":""},"secret":{"type":"string","maxLength":200,"title":"Secret","description":"Segredo HMAC-SHA256 para assinar payloads (header X-Delfica-Signature). Se vazio, gerado auto.","default":""}},"type":"object","required":["url","events"],"title":"WebhookCreate"},"WebhookUpdate":{"properties":{"url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Url"},"events":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Events"},"name":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"title":"Name"},"active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Active"}},"type":"object","title":"WebhookUpdate"},"accounting_app__api__router__CancelNFeBody":{"properties":{"justificativa":{"type":"string","maxLength":255,"minLength":15,"title":"Justificativa"}},"type":"object","required":["justificativa"],"title":"CancelNFeBody","description":"Payload para cancelamento de NF-e."},"accounting_app__api__router__IOFBody":{"properties":{"valor_operacao":{"type":"number","exclusiveMinimum":0.0,"title":"Valor Operacao"},"prazo_dias":{"type":"integer","minimum":0.0,"title":"Prazo Dias"},"tipo":{"type":"string","enum":["mutuo_pj","mutuo_pf","cheque_especial","factoring"],"title":"Tipo","default":"mutuo_pj"}},"type":"object","required":["valor_operacao","prazo_dias"],"title":"IOFBody"},"accounting_app__api__router__IRRFPFBody":{"properties":{"rendimento_bruto":{"type":"number","minimum":0.0,"title":"Rendimento Bruto"},"dependentes":{"type":"integer","minimum":0.0,"title":"Dependentes","default":0},"pensao_alimenticia":{"type":"number","minimum":0.0,"title":"Pensao Alimenticia","default":0.0},"inss_proprio":{"type":"number","minimum":0.0,"title":"Inss Proprio","default":0.0},"outras_deducoes":{"type":"number","minimum":0.0,"title":"Outras Deducoes","default":0.0},"usar_desconto_simplificado":{"type":"boolean","title":"Usar Desconto Simplificado","default":false}},"type":"object","required":["rendimento_bruto"],"title":"IRRFPFBody"},"accounting_app__api__router__IssueNFeBody":{"properties":{"partner_id":{"type":"integer","exclusiveMinimum":0.0,"title":"Partner Id","description":"ID do cliente no Odoo"},"operation":{"type":"string","enum":["venda","devolucao","transferencia","remessa","ajuste"],"title":"Operation","default":"venda"},"date":{"type":"string","title":"Date","description":"Data emissao ISO; vazio = hoje","default":""},"notes":{"type":"string","maxLength":2000,"title":"Notes","default":""},"lines":{"items":{"$ref":"#/components/schemas/InvoiceLineBody"},"type":"array","minItems":1,"title":"Lines"}},"type":"object","required":["partner_id","lines"],"title":"IssueNFeBody","description":"Payload para emitir NF-e."},"accounting_app__api__router__RegimeSimulatorBody":{"properties":{"receita_bruta_anual":{"type":"number","minimum":0.0,"title":"Receita Bruta Anual"},"activity":{"type":"string","enum":["servico","comercio","industria"],"title":"Activity","default":"servico"},"despesas_dedutiveis_anuais":{"type":"number","minimum":0.0,"title":"Despesas Dedutiveis Anuais","default":0.0},"folha_anual":{"type":"number","minimum":0.0,"title":"Folha Anual","default":0.0},"simples_anexo":{"type":"string","enum":["I","II","III","IV","V"],"title":"Simples Anexo","default":"III"},"aplica_fator_r":{"type":"boolean","title":"Aplica Fator R","default":true}},"type":"object","required":["receita_bruta_anual"],"title":"RegimeSimulatorBody"},"accounting_app__api__routes__calculators__IOFBody":{"properties":{"valor_operacao":{"type":"number","exclusiveMinimum":0.0,"title":"Valor Operacao"},"prazo_dias":{"type":"integer","minimum":1.0,"title":"Prazo Dias"},"tipo":{"type":"string","title":"Tipo","default":"mutuo_pj"}},"type":"object","required":["valor_operacao","prazo_dias"],"title":"IOFBody"},"accounting_app__api__routes__calculators__IRRFPFBody":{"properties":{"rendimento_bruto":{"type":"number","exclusiveMinimum":0.0,"title":"Rendimento Bruto"},"dependentes":{"type":"integer","minimum":0.0,"title":"Dependentes","default":0},"inss_proprio":{"type":"number","minimum":0.0,"title":"Inss Proprio","description":"INSS proprio recolhido pelo empregado (deducao)","default":0.0},"pensao_alimenticia":{"type":"number","minimum":0.0,"title":"Pensao Alimenticia","default":0.0},"outras_deducoes":{"type":"number","minimum":0.0,"title":"Outras Deducoes","default":0.0},"usar_desconto_simplificado":{"type":"boolean","title":"Usar Desconto Simplificado","default":false}},"type":"object","required":["rendimento_bruto"],"title":"IRRFPFBody"},"accounting_app__api__routes__calculators__RegimeSimulatorBody":{"properties":{"receita_bruta_anual":{"type":"number","exclusiveMinimum":0.0,"title":"Receita Bruta Anual"},"activity":{"type":"string","title":"Activity","description":"servico | comercio | industria","default":"servico"},"despesas_dedutiveis_anuais":{"type":"number","minimum":0.0,"title":"Despesas Dedutiveis Anuais","default":0.0},"folha_anual":{"type":"number","minimum":0.0,"title":"Folha Anual","default":0.0},"simples_anexo":{"type":"string","title":"Simples Anexo","description":"I..V","default":"III"},"aplica_fator_r":{"type":"boolean","title":"Aplica Fator R","default":false}},"type":"object","required":["receita_bruta_anual"],"title":"RegimeSimulatorBody"},"accounting_app__api__routes__invoices__CancelNFeBody":{"properties":{"record_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Record Id"},"chave_acesso":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Chave Acesso"},"justification":{"type":"string","maxLength":255,"minLength":15,"title":"Justification"}},"type":"object","required":["justification"],"title":"CancelNFeBody"},"accounting_app__api__routes__invoices__IssueNFeBody":{"properties":{"customer_id":{"type":"integer","minimum":1.0,"title":"Customer Id"},"document_type":{"type":"string","title":"Document Type","description":"55=NF-e, 65=NFC-e","default":"55"},"operation":{"type":"string","title":"Operation","default":"venda"},"lines":{"items":{"$ref":"#/components/schemas/InvoiceLine"},"type":"array","minItems":1,"title":"Lines"},"payment_method":{"type":"string","title":"Payment Method","default":"dinheiro"},"notes":{"type":"string","title":"Notes","default":""}},"type":"object","required":["customer_id","lines"],"title":"IssueNFeBody","description":"Payload para emitir NF-e/NFC-e."}},"securitySchemes":{"ServiceAccountBearer":{"type":"http","scheme":"bearer","bearerFormat":"cbz_<env>_<random>","description":"Service account API key. Crie uma em /admin/service-accounts. **Humanos nao podem usar** - somente users com is_api_only=True."}}},"tags":[{"name":"Health","description":"Health checks (sem auth)."},{"name":"Auth","description":"Validacao de service account."},{"name":"Customers","description":"CRUD de clientes."},{"name":"Products","description":"CRUD de produtos."},{"name":"Services","description":"CRUD de servicos."},{"name":"Invoices","description":"NF-e / NFC-e."},{"name":"Received Invoices","description":"DFe / notas recebidas."},{"name":"NFSe","description":"NFS-e nacional + municipal."},{"name":"Stock","description":"Estoque (read-only)."},{"name":"Tax","description":"Motor tributario + diagnostico."},{"name":"AI","description":"Fiscal AI copilot."},{"name":"SEFAZ","description":"Status de autorizadores."},{"name":"Compliance","description":"CND, certificado, gov."},{"name":"Financial","description":"AR/AP, cobranca, CNAB."},{"name":"Sales","description":"Vendas, orcamentos, pedidos."},{"name":"Purchases","description":"Compras."},{"name":"Calculators","description":"Calculadoras stateless."},{"name":"Payroll","description":"Folha de pagamento (parcial)."},{"name":"Agenda","description":"Calendario fiscal."},{"name":"Guias","description":"DAS/DARF (parcial)."},{"name":"Dashboard","description":"KPIs e metricas."},{"name":"Webhooks","description":"Notificacoes outbound."},{"name":"Public","description":"Endpoints publicos sem auth."}]}