openapi: 3.0.3 info: title: CBRDoc description: '' version: 1.0.0 servers: - url: 'https://api2.cbrdoc.com.br' tags: - name: Login description: '' - name: 'Autenticação em duas etapas' description: '' - name: 'Campos personalizados' description: '' - name: 'Carteira (Pré pago)' description: '' - name: Cliente description: '' - name: Compras description: '' - name: 'Configurações de documentos' description: '' - name: Contato description: '' - name: Dossiês description: '' - name: 'Faturas (Pré pago)' description: '' - name: 'Faturas (Pós pago)' description: '' - name: Gestor description: '' - name: Grupos description: '' - name: 'Grupos de permissões' description: '' - name: 'Grupos de usuários' description: '' - name: IA description: '' - name: 'Itens de compra' description: '' - name: 'Mapa de relacionamentos de empresas' description: '' - name: 'Meus arquivos' description: '' - name: Notificações description: '' - name: Outros description: '' - name: Recorrências description: '' - name: Relatórios description: '' - name: Serviços description: '' - name: Usuários description: '' components: securitySchemes: default: type: http scheme: bearer description: 'Para obter um token use o endpoint /login e utilize o atributo access_token.' security: - default: [] paths: /login: post: summary: '' operationId: postLogin description: '' parameters: [] responses: {} tags: - Login requestBody: required: true content: application/json: schema: type: object properties: email: type: string description: 'Deve ser um endereço de e-mail válido.' example: sofia.balestero@example.com password: type: string description: '' example: Senha@123 required: - email - password security: [] '/login/sso/{provider}': post: summary: '' operationId: postLoginSsoProvider description: '' parameters: [] responses: {} tags: - Login requestBody: required: true content: application/json: schema: type: object properties: access_token: type: string description: '' example: 4e0c4ff2481a57e870574bca75304ec5d2c578df131b80ede1701c85c5d2ac98 required: - access_token parameters: - in: path name: provider description: '' example: google required: true schema: type: string /login/validate-captcha: post: summary: '' operationId: postLoginValidateCaptcha description: '' parameters: [] responses: {} tags: - Login requestBody: required: true content: application/json: schema: type: object properties: token: type: string description: '' example: 25f4f4acacfdbfb692e09b8bd58ce542f003e2a4fdb5a0ab3ccac993e1868f25 required: - token /users/resend-verification-email: post: summary: '' operationId: postUsersResendVerificationEmail description: '' parameters: [] responses: {} tags: - Login requestBody: required: true content: application/json: schema: type: object properties: email: type: string description: 'Deve ser um endereço de e-mail válido. Deve corresponder a um valor já cadastrado.' example: tessalia33@example.org required: - email /two-factor/enable: post: summary: 'Habilitar a autenticação em duas etapas' operationId: habilitarAAutenticaoEmDuasEtapas description: '' parameters: [] responses: {} tags: - 'Autenticação em duas etapas' /two-factor/disable: put: summary: 'Desabilitar a autenticação em duas etapas' operationId: desabilitarAAutenticaoEmDuasEtapas description: '' parameters: [] responses: {} tags: - 'Autenticação em duas etapas' /two-factor/confirm: post: summary: 'Confirmar a ativação da autenticação em duas etapas' operationId: confirmarAAtivaoDaAutenticaoEmDuasEtapas description: '' parameters: [] responses: {} tags: - 'Autenticação em duas etapas' requestBody: required: true content: application/json: schema: type: object properties: code: type: string description: '' example: meu-codigo required: - code /two-factor/login: post: summary: 'Concluir o login enviando o código de duas etapas' operationId: concluirOLoginEnviandoOCdigoDeDuasEtapas description: '' parameters: [] responses: {} tags: - 'Autenticação em duas etapas' requestBody: required: true content: application/json: schema: type: object properties: challenge_token: type: string description: 'Deve ter pelo menos 10 caracteres.' example: 8d1cbffd159ca143d7e61c41dd48c34a2d3b82e0882b1d59f851640d3ad5788a code: type: string description: 'Este campo é obrigatório quando recovery_code for not present.' example: meu-codigo nullable: true recovery_code: type: string description: 'Este campo é obrigatório quando code for not present.' example: '763405' nullable: true required: - challenge_token /customers/custom-fields: get: summary: 'Listar todos os campos personalizados' operationId: listarTodosOsCamposPersonalizados description: '' parameters: - in: query name: include description: "Relações disponíveis para incluir na resposta. Múltiplas devem ser separadas com vírgula. \n Disponíveis: service, service_count, serviceExists, user, user_count, userExists, customer, customer_count, customerExists" example: null required: false schema: type: string description: "Relações disponíveis para incluir na resposta. Múltiplas devem ser separadas com vírgula. \n Disponíveis: service, service_count, serviceExists, user, user_count, userExists, customer, customer_count, customerExists" example: null - in: query name: filter description: "Campos disponíveis para filtrar. Ex: filter[nome_campo]=valor ou filter[nome_campo]=valor1,valor2. \n Disponíveis: service_id, user_id, customer_id" example: null required: false schema: type: 'string[]' description: "Campos disponíveis para filtrar. Ex: filter[nome_campo]=valor ou filter[nome_campo]=valor1,valor2. \n Disponíveis: service_id, user_id, customer_id" example: null responses: {} tags: - 'Campos personalizados' post: summary: 'Criar um campo personalizado' operationId: criarUmCampoPersonalizado description: '' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: id: 1 customer_id: 97 user_id: 495 service_id: 801 code: meu-codigo label: 'Meu label' type: exemplo required: true select_options: [] created_at: '2026-10-02T20:24:11.968407Z' updated_at: '2026-10-02T20:24:11.968522Z' order: 1 properties: id: type: integer example: 1 customer_id: type: integer example: 97 user_id: type: integer example: 495 service_id: type: integer example: 801 code: type: string example: meu-codigo label: type: string example: 'Meu label' type: type: string example: exemplo required: type: boolean example: true select_options: type: array example: [] created_at: type: string example: '2026-10-02T20:24:11.968407Z' updated_at: type: string example: '2026-10-02T20:24:11.968522Z' order: type: integer example: 1 tags: - 'Campos personalizados' requestBody: required: true content: application/json: schema: type: object properties: code: type: string description: 'Não pode ser superior a 255 caracteres.' example: meu-codigo label: type: string description: 'Não pode ser superior a 255 caracteres.' example: 'Meu label' type: type: string description: '' example: string enum: - string - integer - decimal - select - boolean required: type: boolean description: '' example: true select_options: type: array description: 'Este campo é obrigatório quando type for select. Deve ter pelo menos 1 item.' example: - [] items: type: object nullable: true properties: value: type: string description: 'Este campo é obrigatório quando type for select. Não pode ser superior a 255 caracteres.' example: exemplo label: type: string description: 'Este campo é obrigatório quando type for select. Não pode ser superior a 255 caracteres.' example: 'Meu label' service_id: type: integer description: 'Deve corresponder a um valor já cadastrado.' example: 908 nullable: true order: type: integer description: 'Deve ser pelo menos 0.' example: 0 required: - code - label - type - required - order '/customers/custom-fields/{customerCustomOrderField_id}': put: summary: 'Editar um campo personalizado' operationId: editarUmCampoPersonalizado description: '' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: id: 1 customer_id: 452 user_id: 465 service_id: 904 code: meu-codigo label: 'Meu label' type: exemplo required: true select_options: [] created_at: '2026-10-02T20:24:11.993355Z' updated_at: '2026-10-02T20:24:11.993491Z' order: 1 properties: id: type: integer example: 1 customer_id: type: integer example: 452 user_id: type: integer example: 465 service_id: type: integer example: 904 code: type: string example: meu-codigo label: type: string example: 'Meu label' type: type: string example: exemplo required: type: boolean example: true select_options: type: array example: [] created_at: type: string example: '2026-10-02T20:24:11.993355Z' updated_at: type: string example: '2026-10-02T20:24:11.993491Z' order: type: integer example: 1 tags: - 'Campos personalizados' requestBody: required: true content: application/json: schema: type: object properties: code: type: string description: 'Não pode ser superior a 255 caracteres.' example: meu-codigo label: type: string description: 'Não pode ser superior a 255 caracteres.' example: 'Meu label' type: type: string description: '' example: string enum: - string - integer - decimal - select - boolean required: type: boolean description: '' example: true select_options: type: array description: 'Este campo é obrigatório quando type for select. Deve ter pelo menos 1 item.' example: - [] items: type: object nullable: true properties: value: type: string description: 'Este campo é obrigatório quando type for select. Não pode ser superior a 255 caracteres.' example: exemplo label: type: string description: 'Este campo é obrigatório quando type for select. Não pode ser superior a 255 caracteres.' example: 'Meu label' service_id: type: integer description: 'Deve corresponder a um valor já cadastrado.' example: 63 nullable: true order: type: integer description: 'Deve ser pelo menos 0.' example: 0 required: - code - label - type - required - order parameters: - in: path name: customerCustomOrderField_id description: 'The ID of the customerCustomOrderField.' example: 10 required: true schema: type: integer '/customers/custom-fields/{customFields}': delete: summary: 'Excluir um ou múltiplos campos personalizados' operationId: excluirUmOuMltiplosCamposPersonalizados description: '' parameters: [] responses: {} tags: - 'Campos personalizados' parameters: - in: path name: customFields description: '' example: magni required: true schema: type: string /wallets/deposits: post: summary: 'Deposita créditos na carteira de um cliente pré pago' operationId: depositaCrditosNaCarteiraDeUmClientePrPago description: '' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: id: 1 customer_id: 66 user_id: 83 order_id: 912 operation: C approved_at: '2026-10-02T20:24:13.790038Z' amount: 1.5 payment_method: credit-card backoffice_id: 6346946 bank_slip_url: 'http://santiago.br/voluptatem-nulla-facilis-ad-veniam-vel-ut-placeat.html' bank_slip_barcode: exemplo bonus_amount: 1.5 send_email_after_approved: true purchase_id: 341 type: refund backoffice_reason: 'Labore sit minus ut saepe.' pix_qr_code: dj-5724 pix_hash: exemplo created_at: '2026-10-02T20:24:13.790944Z' updated_at: '2026-10-02T20:24:13.791104Z' properties: id: type: integer example: 1 customer_id: type: integer example: 66 user_id: type: integer example: 83 order_id: type: integer example: 912 operation: type: string example: C approved_at: type: string example: '2026-10-02T20:24:13.790038Z' amount: type: number example: 1.5 payment_method: type: string example: credit-card backoffice_id: type: integer example: 6346946 bank_slip_url: type: string example: 'http://santiago.br/voluptatem-nulla-facilis-ad-veniam-vel-ut-placeat.html' bank_slip_barcode: type: string example: exemplo bonus_amount: type: number example: 1.5 send_email_after_approved: type: boolean example: true purchase_id: type: integer example: 341 type: type: string example: refund backoffice_reason: type: string example: 'Labore sit minus ut saepe.' pix_qr_code: type: string example: dj-5724 pix_hash: type: string example: exemplo created_at: type: string example: '2026-10-02T20:24:13.790944Z' updated_at: type: string example: '2026-10-02T20:24:13.791104Z' tags: - 'Carteira (Pré pago)' requestBody: required: true content: application/json: schema: type: object properties: payment_method: type: string description: '' example: credit-card enum: - credit-card - bank-slip - pix amount: type: number description: '' example: 1.5 credit_card_document_number: type: string description: 'Este campo é obrigatório quando payment_method for credit-card.' example: '12531053913' credit_card_holder_name: type: string description: 'Este campo é obrigatório quando payment_method for credit-card.' example: 'Dr. Mary Ramos Rico' credit_card_number: type: string description: '@var array $invoiceRules Este campo é obrigatório quando payment_method for credit-card.' example: '5041750789870110' credit_card_cvv: type: string description: 'Este campo é obrigatório quando payment_method for credit-card. Não pode ser superior a 4 caracteres.' example: 981 credit_card_due_date: type: string description: 'Este campo é obrigatório quando payment_method for credit-card. Deve ser uma data válida no formato Y-m. Deve ser uma data posterior ou igual a 2026-10.' example: 05/27 send_email_after_approved: type: boolean description: '' example: true required: - payment_method - amount - send_email_after_approved '/wallets/deposits/bonus-for-value/{deposit_value}': get: summary: 'Calcula o valor do bônus para um determinado valor de compra de créditos' operationId: calculaOValorDoBnusParaUmDeterminadoValorDeCompraDeCrditos description: '' parameters: [] responses: {} tags: - 'Carteira (Pré pago)' parameters: - in: path name: deposit_value description: 'Valor do depósito desejado. De 0 a 2 decimais.' example: 100.59 required: true schema: type: decimal /customers: get: summary: 'Visualizar o cliente logado' operationId: visualizarOClienteLogado description: '' parameters: - in: query name: include description: "Relações disponíveis para incluir na resposta. Múltiplas devem ser separadas com vírgula. \n Disponíveis: orders_count, automatic_ai_analysis, automatic_ai_analysis_count, automatic_ai_analysisExists, services_automatic_purchase_enabled_by_default, services_automatic_purchase_enabled_by_default_count, services_automatic_purchase_enabled_by_defaultExists, services_automatic_ai_analysis, services_automatic_ai_analysis_count, services_automatic_ai_analysisExists, services_automatic_orders_summary, services_automatic_orders_summary_count, services_automatic_orders_summaryExists, services_automatic_purchase_enabled_from_ai_analysis, services_automatic_purchase_enabled_from_ai_analysis_count, services_automatic_purchase_enabled_from_ai_analysisExists, users, users_count, usersExists" example: null required: false schema: type: string description: "Relações disponíveis para incluir na resposta. Múltiplas devem ser separadas com vírgula. \n Disponíveis: orders_count, automatic_ai_analysis, automatic_ai_analysis_count, automatic_ai_analysisExists, services_automatic_purchase_enabled_by_default, services_automatic_purchase_enabled_by_default_count, services_automatic_purchase_enabled_by_defaultExists, services_automatic_ai_analysis, services_automatic_ai_analysis_count, services_automatic_ai_analysisExists, services_automatic_orders_summary, services_automatic_orders_summary_count, services_automatic_orders_summaryExists, services_automatic_purchase_enabled_from_ai_analysis, services_automatic_purchase_enabled_from_ai_analysis_count, services_automatic_purchase_enabled_from_ai_analysisExists, users, users_count, usersExists" example: null - in: query name: append description: "Propriedades disponíveis para incluir na resposta. Múltiplas devem ser separadas com vírgula. \n Disponíveis: account_balance, account_balance_total_bonuses, used_storage, prepaid, total_ai_tokens_remaining, ai_tokens_above_limit, plan_free_emoluments_orders_remaining, plan_ai_extractions_remaining" example: null required: false schema: type: string description: "Propriedades disponíveis para incluir na resposta. Múltiplas devem ser separadas com vírgula. \n Disponíveis: account_balance, account_balance_total_bonuses, used_storage, prepaid, total_ai_tokens_remaining, ai_tokens_above_limit, plan_free_emoluments_orders_remaining, plan_ai_extractions_remaining" example: null responses: 200: description: '' content: application/json: schema: type: object example: id: 1 name: 'Violeta Valência' corporate_name: Galvão-Pontes entity_type: PF phone: '8946592881' document_number: '17965485532' address_zip_code: '76292091' address_public_place: 'Av. Rayane' address_number: '973' address_complement: 'Apto 12' address_neighborhood: Centro address_city: 'Willian do Sul' address_uf: PB backoffice_email: santiago00@example.org sync_with_backoffice: true postpaid: true explorer_item_file_upload_enabled: true ai_enrich_data_enabled: true group_mandatory_on_purchase: true demands_approval_purchases_over_value: 1.5 created_from_passport: true generate_services_summary: true show_shipping_info_on_orders: 1 credit_bonus_disabled: 1 control_downloaded_orders_by: user plan: exemplo plan_max_users: 1 plan_analytics_enabled_until: '2026-10-02' plan_free_emoluments_orders_included: 1 plan_free_dossiers_orders_included: 1 plan_ai_extractions_included: 1 plan_ai_tokens_included: 1 plan_paid_until: '2026-10-02' plan_changed_at: '2026-10-02' created_at: '2026-10-02T20:24:11.902072Z' updated_at: '2026-10-02T20:24:11.902166Z' api_access_enabled: true properties: id: type: integer example: 1 name: type: string example: 'Violeta Valência' corporate_name: type: string example: Galvão-Pontes entity_type: type: string example: PF phone: type: string example: '8946592881' document_number: type: string example: '17965485532' address_zip_code: type: string example: '76292091' address_public_place: type: string example: 'Av. Rayane' address_number: type: string example: '973' address_complement: type: string example: 'Apto 12' address_neighborhood: type: string example: Centro address_city: type: string example: 'Willian do Sul' address_uf: type: string example: PB backoffice_email: type: string example: santiago00@example.org sync_with_backoffice: type: boolean example: true postpaid: type: boolean example: true explorer_item_file_upload_enabled: type: boolean example: true ai_enrich_data_enabled: type: boolean example: true group_mandatory_on_purchase: type: boolean example: true demands_approval_purchases_over_value: type: number example: 1.5 created_from_passport: type: boolean example: true generate_services_summary: type: boolean example: true show_shipping_info_on_orders: type: integer example: 1 credit_bonus_disabled: type: integer example: 1 control_downloaded_orders_by: type: string example: user plan: type: string example: exemplo plan_max_users: type: integer example: 1 plan_analytics_enabled_until: type: string example: '2026-10-02' plan_free_emoluments_orders_included: type: integer example: 1 plan_free_dossiers_orders_included: type: integer example: 1 plan_ai_extractions_included: type: integer example: 1 plan_ai_tokens_included: type: integer example: 1 plan_paid_until: type: string example: '2026-10-02' plan_changed_at: type: string example: '2026-10-02' created_at: type: string example: '2026-10-02T20:24:11.902072Z' updated_at: type: string example: '2026-10-02T20:24:11.902166Z' api_access_enabled: type: boolean example: true tags: - Cliente patch: summary: 'Atualiza os dados do cadastro do cliente' operationId: atualizaOsDadosDoCadastroDoCliente description: '' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: id: 1 name: 'Dr. Emanuel Duarte Mendonça' corporate_name: 'Marés e Associados' entity_type: PF phone: '3327298815' document_number: '94163045902' address_zip_code: '63066609' address_public_place: 'Avenida Anita' address_number: '71711' address_complement: 'Apto 12' address_neighborhood: Centro address_city: 'São Manuel' address_uf: RS backoffice_email: ian.aragao@example.com sync_with_backoffice: true postpaid: true explorer_item_file_upload_enabled: true ai_enrich_data_enabled: true group_mandatory_on_purchase: true demands_approval_purchases_over_value: 1.5 created_from_passport: true generate_services_summary: true show_shipping_info_on_orders: 1 credit_bonus_disabled: 1 control_downloaded_orders_by: user plan: exemplo plan_max_users: 1 plan_analytics_enabled_until: '2026-10-02' plan_free_emoluments_orders_included: 1 plan_free_dossiers_orders_included: 1 plan_ai_extractions_included: 1 plan_ai_tokens_included: 1 plan_paid_until: '2026-10-02' plan_changed_at: '2026-10-02' created_at: '2026-10-02T20:24:11.941169Z' updated_at: '2026-10-02T20:24:11.941306Z' api_access_enabled: true properties: id: type: integer example: 1 name: type: string example: 'Dr. Emanuel Duarte Mendonça' corporate_name: type: string example: 'Marés e Associados' entity_type: type: string example: PF phone: type: string example: '3327298815' document_number: type: string example: '94163045902' address_zip_code: type: string example: '63066609' address_public_place: type: string example: 'Avenida Anita' address_number: type: string example: '71711' address_complement: type: string example: 'Apto 12' address_neighborhood: type: string example: Centro address_city: type: string example: 'São Manuel' address_uf: type: string example: RS backoffice_email: type: string example: ian.aragao@example.com sync_with_backoffice: type: boolean example: true postpaid: type: boolean example: true explorer_item_file_upload_enabled: type: boolean example: true ai_enrich_data_enabled: type: boolean example: true group_mandatory_on_purchase: type: boolean example: true demands_approval_purchases_over_value: type: number example: 1.5 created_from_passport: type: boolean example: true generate_services_summary: type: boolean example: true show_shipping_info_on_orders: type: integer example: 1 credit_bonus_disabled: type: integer example: 1 control_downloaded_orders_by: type: string example: user plan: type: string example: exemplo plan_max_users: type: integer example: 1 plan_analytics_enabled_until: type: string example: '2026-10-02' plan_free_emoluments_orders_included: type: integer example: 1 plan_free_dossiers_orders_included: type: integer example: 1 plan_ai_extractions_included: type: integer example: 1 plan_ai_tokens_included: type: integer example: 1 plan_paid_until: type: string example: '2026-10-02' plan_changed_at: type: string example: '2026-10-02' created_at: type: string example: '2026-10-02T20:24:11.941169Z' updated_at: type: string example: '2026-10-02T20:24:11.941306Z' api_access_enabled: type: boolean example: true tags: - Cliente requestBody: required: false content: application/json: schema: type: object properties: phone: type: string description: 'Não pode ser superior a 20 caracteres.' example: '18929792076' address_zip_code: type: string description: 'Não pode ser superior a 8 caracteres.' example: '77085024' nullable: true address_public_place: type: string description: 'Não pode ser superior a 120 caracteres.' example: 'Av. Luna Verdara' nullable: true address_number: type: string description: 'Não pode ser superior a 8 caracteres.' example: '28086' nullable: true address_complement: type: string description: 'Não pode ser superior a 60 caracteres.' example: 'Apto 12' nullable: true address_neighborhood: type: string description: 'Não pode ser superior a 80 caracteres.' example: Centro nullable: true address_city: type: string description: 'Não pode ser superior a 120 caracteres.' example: "Vitor d'Oeste" nullable: true address_uf: type: string description: 'Não pode ser superior a 2 caracteres.' example: RR nullable: true group_mandatory_on_purchase: type: boolean description: '' example: true nullable: true /customers/plan/stats: get: summary: 'Visualizar as estatísticas de uso do plano do cliente logado no mês atual' operationId: visualizarAsEstatsticasDeUsoDoPlanoDoClienteLogadoNoMsAtual description: '' parameters: - in: query name: include description: "Relações disponíveis para incluir na resposta. Múltiplas devem ser separadas com vírgula. \n Disponíveis: orders_count, automatic_ai_analysis, automatic_ai_analysis_count, automatic_ai_analysisExists, services_automatic_purchase_enabled_by_default, services_automatic_purchase_enabled_by_default_count, services_automatic_purchase_enabled_by_defaultExists, services_automatic_ai_analysis, services_automatic_ai_analysis_count, services_automatic_ai_analysisExists, services_automatic_orders_summary, services_automatic_orders_summary_count, services_automatic_orders_summaryExists, services_automatic_purchase_enabled_from_ai_analysis, services_automatic_purchase_enabled_from_ai_analysis_count, services_automatic_purchase_enabled_from_ai_analysisExists, users, users_count, usersExists" example: null required: false schema: type: string description: "Relações disponíveis para incluir na resposta. Múltiplas devem ser separadas com vírgula. \n Disponíveis: orders_count, automatic_ai_analysis, automatic_ai_analysis_count, automatic_ai_analysisExists, services_automatic_purchase_enabled_by_default, services_automatic_purchase_enabled_by_default_count, services_automatic_purchase_enabled_by_defaultExists, services_automatic_ai_analysis, services_automatic_ai_analysis_count, services_automatic_ai_analysisExists, services_automatic_orders_summary, services_automatic_orders_summary_count, services_automatic_orders_summaryExists, services_automatic_purchase_enabled_from_ai_analysis, services_automatic_purchase_enabled_from_ai_analysis_count, services_automatic_purchase_enabled_from_ai_analysisExists, users, users_count, usersExists" example: null - in: query name: append description: "Propriedades disponíveis para incluir na resposta. Múltiplas devem ser separadas com vírgula. \n Disponíveis: account_balance, account_balance_total_bonuses, used_storage, prepaid, total_ai_tokens_remaining, ai_tokens_above_limit, plan_free_emoluments_orders_remaining, plan_ai_extractions_remaining" example: null required: false schema: type: string description: "Propriedades disponíveis para incluir na resposta. Múltiplas devem ser separadas com vírgula. \n Disponíveis: account_balance, account_balance_total_bonuses, used_storage, prepaid, total_ai_tokens_remaining, ai_tokens_above_limit, plan_free_emoluments_orders_remaining, plan_ai_extractions_remaining" example: null responses: {} tags: - Cliente /purchases: post: summary: 'Cria uma compra' operationId: criaUmaCompra description: '' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: id: 1 backoffice_code: '1420268907949' user_id: 563 customer_id: 513 placed_at: '2026-10-02T20:24:12.818282Z' name: 'Ana Leon Santiago Jr.' total_cost: 194.71 total_estimated_cost_postpaid_customer: 1.5 type: Mixed shipping_address_zip_code: '16613719' shipping_address_neighborhood: Centro shipping_address_public_place: 'Largo Emilly Duarte' shipping_address_number: '35528' shipping_address_city: "Pena d'Oeste" shipping_address_uf: RO shipping_address_complement: 'Apto 12' shipping_address_is_international: true shipping_address_country: exemplo imported_at: '2026-10-02T20:24:12.819573Z' recurrence_id: 39 automatic_generated_from_id: 683 created_at: '2026-10-02T20:24:12.819676Z' updated_at: '2026-10-02T20:24:12.819717Z' quoted_cost_postpaid_customer: '484.93' quoted_rejected_reason: 'Ut eos quidem fugiat qui rerum.' quote_appraiser_id: 884 status: creating backoffice_hash: exemplo created_using_spreadsheet: 1 finished_at: '2026-10-02T20:24:12.819963Z' properties: id: type: integer example: 1 backoffice_code: type: string example: '1420268907949' user_id: type: integer example: 563 customer_id: type: integer example: 513 placed_at: type: string example: '2026-10-02T20:24:12.818282Z' name: type: string example: 'Ana Leon Santiago Jr.' total_cost: type: number example: 194.71 total_estimated_cost_postpaid_customer: type: number example: 1.5 type: type: string example: Mixed shipping_address_zip_code: type: string example: '16613719' shipping_address_neighborhood: type: string example: Centro shipping_address_public_place: type: string example: 'Largo Emilly Duarte' shipping_address_number: type: string example: '35528' shipping_address_city: type: string example: "Pena d'Oeste" shipping_address_uf: type: string example: RO shipping_address_complement: type: string example: 'Apto 12' shipping_address_is_international: type: boolean example: true shipping_address_country: type: string example: exemplo imported_at: type: string example: '2026-10-02T20:24:12.819573Z' recurrence_id: type: integer example: 39 automatic_generated_from_id: type: integer example: 683 created_at: type: string example: '2026-10-02T20:24:12.819676Z' updated_at: type: string example: '2026-10-02T20:24:12.819717Z' quoted_cost_postpaid_customer: type: string example: '484.93' quoted_rejected_reason: type: string example: 'Ut eos quidem fugiat qui rerum.' quote_appraiser_id: type: integer example: 884 status: type: string example: creating backoffice_hash: type: string example: exemplo created_using_spreadsheet: type: integer example: 1 finished_at: type: string example: '2026-10-02T20:24:12.819963Z' tags: - Compras requestBody: required: true content: application/json: schema: type: object properties: name: type: string description: 'Não pode ser superior a 120 caracteres.' example: 'Robson Vicente Teles' shipping_address_zip_code: type: string description: ' Deve ser 8 caracteres. Obrigatório quando algumas das orders tiver o formato papel ou combo' example: '87130239' nullable: true shipping_address_number: type: string description: ' Não pode ser superior a 8 caracteres. Obrigatório quando algumas das orders tiver o formato papel ou combo' example: '18631' nullable: true shipping_address_neighborhood: type: string description: ' Não pode ser superior a 80 caracteres. Obrigatório quando algumas das orders tiver o formato papel ou combo' example: Centro nullable: true shipping_address_public_place: type: string description: ' Não pode ser superior a 120 caracteres. Obrigatório quando algumas das orders tiver o formato papel ou combo' example: 'Av. Cervantes' nullable: true shipping_address_city: type: string description: ' Não pode ser superior a 120 caracteres. Obrigatório quando algumas das orders tiver o formato papel ou combo' example: 'Marés do Norte' nullable: true shipping_address_uf: type: string description: ' Não pode ser superior a 2 caracteres. Obrigatório quando algumas das orders tiver o formato papel ou combo' example: RR nullable: true shipping_address_complement: type: string description: ' Não pode ser superior a 60 caracteres. Obrigatório quando algumas das orders tiver o formato papel ou combo' example: 'Apto 12' nullable: true post_payment: type: boolean description: " Indica se o pagamento será realizado depois (Boleto/Pix/Cartão de crédito). O pedido entra no status aguardando pagamento caso esse campo seja true.\n Se o pagamento for através de créditos ou por contrato, enviar false." example: true post_payment_method: type: string description: 'This field is required when post_payment is true.' example: credit-card enum: - credit-card - bank-slip - pix nullable: true groups_ids: type: array description: 'Os ids dos grupos que serão relacionados aos itens da compra. Consulte em link' example: - 545 - 759 items: type: integer orders: type: array description: 'Deve ter pelo menos 1 item.' example: - [] items: type: object properties: name: type: string description: 'Não pode ser superior a 120 caracteres.' example: 'Milena Marques Neto' service_id: type: integer description: 'O ID do serviço. Consulte em link' example: 250 nullable: true service_code: type: string description: 'This field is required when orders.*.service_id is not present. Must match an existing stored value. O código do serviço. Consulte em link' example: nf-9756 nullable: true auto_purchase_certificate_from_result_negative: type: boolean description: '' example: true auto_purchase_certificate_from_result_positive: type: boolean description: '' example: true detailed_service_data: type: object description: ' Os dados específicos do serviço vão dentro deste objeto. Consulte em link' example: [] properties: {} custom_fields: type: object description: ' Os Campos personalizados da sua conta vão aqui. Consulte em link' example: [] properties: {} nullable: true required: - name - detailed_service_data shopping_cart_id: type: string description: " Cada compra processada gerada um hash a partir dos dados da requisição. É feita uma validação para que não existam duas compras iguais, para evitar duplicação.\n Caso você deseje criar duas compras com os mesmos dados, é possível enviando valores diferentes nesse campo para cada chamada." example: caf25e368b64bafaf18eca52cea4f67e9f72a828dfc474e8d4b386aabcf945ef nullable: true required: - name - post_payment - groups_ids - orders get: summary: 'Listar as compras' operationId: listarAsCompras description: 'O retorno é paginado' parameters: - in: query name: page description: 'a página desejada' example: 1 required: false schema: type: integer description: 'a página desejada' example: 1 - in: query name: per-page description: 'quantidade de registros por página (padrão é 20, máx 30)' example: 10 required: false schema: type: integer description: 'quantidade de registros por página (padrão é 20, máx 30)' example: 10 - in: query name: include description: "Relações disponíveis para incluir na resposta. Múltiplas devem ser separadas com vírgula. \n Disponíveis: orders, orders_count, ordersExists, orders.ocr, orders.groups, orders.service, first_order, first_order_count, first_orderExists, first_order.service, waiting_invoice_payment, waiting_invoice_payment_count, waiting_invoice_paymentExists, user, user_count, userExists, customer, customer_count, customerExists, quote_appraiser, quote_appraiser_count, quote_appraiserExists, recurrence, recurrence_count, recurrenceExists" example: null required: false schema: type: string description: "Relações disponíveis para incluir na resposta. Múltiplas devem ser separadas com vírgula. \n Disponíveis: orders, orders_count, ordersExists, orders.ocr, orders.groups, orders.service, first_order, first_order_count, first_orderExists, first_order.service, waiting_invoice_payment, waiting_invoice_payment_count, waiting_invoice_paymentExists, user, user_count, userExists, customer, customer_count, customerExists, quote_appraiser, quote_appraiser_count, quote_appraiserExists, recurrence, recurrence_count, recurrenceExists" example: null - in: query name: append description: "Propriedades disponíveis para incluir na resposta. Múltiplas devem ser separadas com vírgula. \n Disponíveis: orders.ai_service_name, orders_status_count, downloadable_orders_ids, orders_count, orders_expired_count, orders_status_count, last_status_change_at, has_ai_extracted_data, has_ai_analysis_pending, orders.has_ai_extracted_data, orders.has_ai_analysis_pending, originated_from_orders, first_order.ai_service_name, orders.has_ai_extracted_data, orders.has_ai_analysis_pending, downloaded_orders_ids, downloadable_orders_ids_not_downloaded" example: null required: false schema: type: string description: "Propriedades disponíveis para incluir na resposta. Múltiplas devem ser separadas com vírgula. \n Disponíveis: orders.ai_service_name, orders_status_count, downloadable_orders_ids, orders_count, orders_expired_count, orders_status_count, last_status_change_at, has_ai_extracted_data, has_ai_analysis_pending, orders.has_ai_extracted_data, orders.has_ai_analysis_pending, originated_from_orders, first_order.ai_service_name, orders.has_ai_extracted_data, orders.has_ai_analysis_pending, downloaded_orders_ids, downloadable_orders_ids_not_downloaded" example: null - in: query name: sort description: "Campos disponíveis para ordenação. Para ordenar decrescentemente use o sinal de - antes do nome do campo Ex: -nome_campo. \n Múltiplos devem ser separadas com vírgula. Disponíveis: id, name, placed_at, type, finished_at" example: null required: false schema: type: string description: "Campos disponíveis para ordenação. Para ordenar decrescentemente use o sinal de - antes do nome do campo Ex: -nome_campo. \n Múltiplos devem ser separadas com vírgula. Disponíveis: id, name, placed_at, type, finished_at" example: null - in: query name: filter description: "Campos disponíveis para filtrar. Ex: filter[nome_campo]=valor ou filter[nome_campo]=valor1,valor2. \n Disponíveis: name_or_id_or_register, placed_between, status, orders.service_id, orders.group_id, user_id, recurrence_id, ai, automatic_generated, recurrence_generated" example: null required: false schema: type: 'string[]' description: "Campos disponíveis para filtrar. Ex: filter[nome_campo]=valor ou filter[nome_campo]=valor1,valor2. \n Disponíveis: name_or_id_or_register, placed_between, status, orders.service_id, orders.group_id, user_id, recurrence_id, ai, automatic_generated, recurrence_generated" example: null responses: {} tags: - Compras '/purchases/{purchase_id}/orders': post: summary: 'Cria um novo item dentro de uma compra existente' operationId: criaUmNovoItemDentroDeUmaCompraExistente description: 'Disponível apenas para clientes pós pagos' parameters: [] responses: {} tags: - Compras requestBody: required: true content: application/json: schema: type: object properties: groups_ids: type: array description: 'Os ids dos grupos que serão relacionados aos itens da compra. Consulte em link' example: - 774 - 508 items: type: integer orders: type: array description: 'Deve ter pelo menos 1 item.' example: - [] items: type: object properties: name: type: string description: 'Não pode ser superior a 120 caracteres.' example: 'Regiane Andréia Ortega Filho' service_id: type: integer description: 'O ID do serviço. Consulte em link' example: 842 nullable: true service_code: type: string description: 'This field is required when orders.*.service_id is not present. Must match an existing stored value. O código do serviço. Consulte em link' example: pv-4443 nullable: true auto_purchase_certificate_from_result_negative: type: boolean description: '' example: true auto_purchase_certificate_from_result_positive: type: boolean description: '' example: true detailed_service_data: type: object description: ' Os dados específicos do serviço vão dentro deste objeto. Consulte em link' example: [] properties: {} custom_fields: type: object description: ' Os Campos personalizados da sua conta vão aqui. Consulte em link' example: [] properties: {} nullable: true required: - name - detailed_service_data shopping_cart_id: type: string description: " Cada compra processada gerada um hash a partir dos dados da requisição. É feita uma validação para que não existam duas compras iguais, para evitar duplicação.\n Caso você deseje criar duas compras com os mesmos dados, é possível enviando valores diferentes nesse campo para cada chamada." example: bdb6fc9f12fb9ed44d6ce25d6847d6d1dba27a08070bde302d712f2293edd1be nullable: true required: - groups_ids - orders parameters: - in: path name: purchase_id description: 'The ID of the purchase.' example: 10 required: true schema: type: integer '/purchases/{id}': get: summary: 'Visualizar uma compra' operationId: visualizarUmaCompra description: '' parameters: - in: query name: include description: "Relações disponíveis para incluir na resposta. Múltiplas devem ser separadas com vírgula. \n Disponíveis: orders, orders_count, ordersExists, orders.ocr, orders.groups, orders.service, first_order, first_order_count, first_orderExists, first_order.service, waiting_invoice_payment, waiting_invoice_payment_count, waiting_invoice_paymentExists, user, user_count, userExists, customer, customer_count, customerExists, quote_appraiser, quote_appraiser_count, quote_appraiserExists, recurrence, recurrence_count, recurrenceExists" example: null required: false schema: type: string description: "Relações disponíveis para incluir na resposta. Múltiplas devem ser separadas com vírgula. \n Disponíveis: orders, orders_count, ordersExists, orders.ocr, orders.groups, orders.service, first_order, first_order_count, first_orderExists, first_order.service, waiting_invoice_payment, waiting_invoice_payment_count, waiting_invoice_paymentExists, user, user_count, userExists, customer, customer_count, customerExists, quote_appraiser, quote_appraiser_count, quote_appraiserExists, recurrence, recurrence_count, recurrenceExists" example: null - in: query name: append description: "Propriedades disponíveis para incluir na resposta. Múltiplas devem ser separadas com vírgula. \n Disponíveis: orders.ai_service_name, orders_status_count, downloadable_orders_ids, orders_count, orders_expired_count, orders_status_count, last_status_change_at, has_ai_extracted_data, has_ai_analysis_pending, orders.has_ai_extracted_data, orders.has_ai_analysis_pending, originated_from_orders, first_order.ai_service_name, orders.has_ai_extracted_data, orders.has_ai_analysis_pending, downloaded_orders_ids, downloadable_orders_ids_not_downloaded" example: null required: false schema: type: string description: "Propriedades disponíveis para incluir na resposta. Múltiplas devem ser separadas com vírgula. \n Disponíveis: orders.ai_service_name, orders_status_count, downloadable_orders_ids, orders_count, orders_expired_count, orders_status_count, last_status_change_at, has_ai_extracted_data, has_ai_analysis_pending, orders.has_ai_extracted_data, orders.has_ai_analysis_pending, originated_from_orders, first_order.ai_service_name, orders.has_ai_extracted_data, orders.has_ai_analysis_pending, downloaded_orders_ids, downloadable_orders_ids_not_downloaded" example: null responses: 200: description: '' content: application/json: schema: type: object example: id: 1 backoffice_code: '1420268168168' user_id: 835 customer_id: 44 placed_at: '2026-10-02T20:24:12.876729Z' name: 'Matheus Paz Jr.' total_cost: 97.09 total_estimated_cost_postpaid_customer: 1.5 type: Mixed shipping_address_zip_code: '71316327' shipping_address_neighborhood: Centro shipping_address_public_place: 'Rua Joaquim' shipping_address_number: '9531' shipping_address_city: 'Porto Sheila do Leste' shipping_address_uf: MS shipping_address_complement: 'Apto 12' shipping_address_is_international: true shipping_address_country: exemplo imported_at: '2026-10-02T20:24:12.878335Z' recurrence_id: 879 automatic_generated_from_id: 635 created_at: '2026-10-02T20:24:12.878519Z' updated_at: '2026-10-02T20:24:12.878605Z' quoted_cost_postpaid_customer: '228.66' quoted_rejected_reason: 'Est reprehenderit delectus vero quos.' quote_appraiser_id: 383 status: creating backoffice_hash: exemplo created_using_spreadsheet: 1 finished_at: '2026-10-02T20:24:12.878978Z' properties: id: type: integer example: 1 backoffice_code: type: string example: '1420268168168' user_id: type: integer example: 835 customer_id: type: integer example: 44 placed_at: type: string example: '2026-10-02T20:24:12.876729Z' name: type: string example: 'Matheus Paz Jr.' total_cost: type: number example: 97.09 total_estimated_cost_postpaid_customer: type: number example: 1.5 type: type: string example: Mixed shipping_address_zip_code: type: string example: '71316327' shipping_address_neighborhood: type: string example: Centro shipping_address_public_place: type: string example: 'Rua Joaquim' shipping_address_number: type: string example: '9531' shipping_address_city: type: string example: 'Porto Sheila do Leste' shipping_address_uf: type: string example: MS shipping_address_complement: type: string example: 'Apto 12' shipping_address_is_international: type: boolean example: true shipping_address_country: type: string example: exemplo imported_at: type: string example: '2026-10-02T20:24:12.878335Z' recurrence_id: type: integer example: 879 automatic_generated_from_id: type: integer example: 635 created_at: type: string example: '2026-10-02T20:24:12.878519Z' updated_at: type: string example: '2026-10-02T20:24:12.878605Z' quoted_cost_postpaid_customer: type: string example: '228.66' quoted_rejected_reason: type: string example: 'Est reprehenderit delectus vero quos.' quote_appraiser_id: type: integer example: 383 status: type: string example: creating backoffice_hash: type: string example: exemplo created_using_spreadsheet: type: integer example: 1 finished_at: type: string example: '2026-10-02T20:24:12.878978Z' tags: - Compras parameters: - in: path name: id description: 'The ID of the purchase.' example: 0-9 required: true schema: type: integer '/purchases/{purchase_id}/name': patch: summary: 'Renomear uma compra' operationId: renomearUmaCompra description: '' parameters: [] responses: {} tags: - Compras requestBody: required: true content: application/json: schema: type: object properties: name: type: string description: 'Não pode ser superior a 120 caracteres.' example: 'Samuel Jerônimo Roque' required: - name parameters: - in: path name: purchase_id description: 'The ID of the purchase.' example: 10 required: true schema: type: integer '/purchases/{purchase_id}/quote/{quoteStatus}': put: summary: 'Aprova/rejeita um orçamento de compra' operationId: aprovarejeitaUmOramentoDeCompra description: 'Disponível apenas para clientes pós pagos' parameters: [] responses: {} tags: - Compras requestBody: required: false content: application/json: schema: type: object properties: quoted_rejected_reason: type: string description: 'Este campo é obrigatório quando quote_status for reject. Não pode ser superior a 120 caracteres.' example: 'Non iusto ducimus nisi accusantium quia fuga.' nullable: true parameters: - in: path name: purchase_id description: 'The ID of the purchase.' example: 10 required: true schema: type: integer - in: path name: quoteStatus description: 'Must be one of:' example: null required: true schema: type: string '/purchases/{purchases}/download': get: summary: 'Faz download (.zip) dos arquivos de uma ou múltiplas compras.' operationId: fazDownloadzipDosArquivosDeUmaOuMltiplasCompras description: '' parameters: [] responses: {} tags: - Compras requestBody: required: false content: application/json: schema: type: object properties: group_by: type: string description: '' example: purchase enum: - purchase - register parameters: - in: path name: purchases description: 'Ids das compras desejadas.' example: '123,456,789' required: true schema: type: string '/purchases/{ids}/report/{format}': get: summary: 'Faz download do relatório de uma ou múltiplas compras.' operationId: fazDownloadDoRelatrioDeUmaOuMltiplasCompras description: '' parameters: - in: query name: oneResultPerRow description: ' Indica se cada resultado encontrado para uma pesquisa deve ser mostrado em uma linha diferente.' example: true required: false schema: type: boolean description: ' Indica se cada resultado encontrado para uma pesquisa deve ser mostrado em uma linha diferente.' example: true responses: 200: description: '' content: application/json: schema: type: object example: file_path: exemplo download_name: exemplo properties: file_path: type: string example: exemplo download_name: type: string example: exemplo tags: - Compras parameters: - in: path name: ids description: 'Ids das compras desejadas.' example: '123,456,789' required: true schema: type: string - in: path name: format description: 'Optional parameter. O formato do relatório. Se omitido, o padrão é xlsx.' required: true schema: type: string examples: omitted: summary: 'When the value is omitted' value: '' /purchases/prices-shipping-info: put: summary: 'Calcula o preço e prazo de entrega da compra' operationId: calculaOPreoEPrazoDeEntregaDaCompra description: '' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: purchase: [] items: [] properties: purchase: type: array example: [] items: type: array example: [] tags: - Compras requestBody: required: true content: application/json: schema: type: object properties: orders: type: array description: 'Deve ter pelo menos 1 item.' example: - [] items: type: object properties: service_id: type: integer description: 'Must match an existing stored value.' example: 533 detailed_service_data: type: string description: '' example: [] required: - service_id - detailed_service_data required: - orders /automations/automatic-purchases: put: summary: 'Definir compra automática de certidões a partir de resultado de pesquisa' operationId: definirCompraAutomticaDeCertidesAPartirDeResultadoDePesquisa description: '' parameters: [] responses: {} tags: - 'Configurações de documentos' requestBody: required: false content: application/json: schema: type: object properties: services: type: object description: 'Deve ter pelo menos 0 itens.' example: [] properties: {} /automations/automatic-ai-analysis: put: summary: 'Definir compra automática de certidões a partir de resultado de pesquisa' operationId: definirCompraAutomticaDeCertidesAPartirDeResultadoDePesquisa description: '' parameters: [] responses: {} tags: - 'Configurações de documentos' requestBody: required: false content: application/json: schema: type: object properties: automatic_analysis_enabled: type: array description: '' example: - [] items: type: object properties: service_id: type: integer description: 'Deve corresponder a um valor já cadastrado.' example: 33 ai_model_id: type: integer description: '' example: 673 required: - service_id - ai_model_id /automations/automatic-orders-summary: put: summary: 'Definir geração automática da ficha do pedido' operationId: definirGeraoAutomticaDaFichaDoPedido description: '' parameters: [] responses: {} tags: - 'Configurações de documentos' requestBody: required: true content: application/json: schema: type: object properties: services_ids_automatic_order_summary: type: array description: 'Deve corresponder a um valor já cadastrado.' example: - 1 items: type: integer required: - services_ids_automatic_order_summary /automations/automatic-purchases-from-ai-analysis: put: summary: 'Definir compra automática de certidões a partir de dados extraídos com IA' operationId: definirCompraAutomticaDeCertidesAPartirDeDadosExtradosComIA description: '' parameters: [] responses: {} tags: - 'Configurações de documentos' requestBody: required: true content: application/json: schema: type: object properties: automatic_purchase_from_ai_analysis_enabled: type: array description: 'Deve corresponder a um valor já cadastrado.' example: - 1 items: type: integer required: - automatic_purchase_from_ai_analysis_enabled /customer-service-expirations: get: summary: 'Listar os Prazos de vencimento de documento' operationId: listarOsPrazosDeVencimentoDeDocumento description: 'O retorno é paginado' parameters: - in: query name: page description: 'a página desejada' example: 1 required: false schema: type: integer description: 'a página desejada' example: 1 - in: query name: per-page description: 'quantidade de registros por página (padrão é 20, máx 30)' example: 10 required: false schema: type: integer description: 'quantidade de registros por página (padrão é 20, máx 30)' example: 10 - in: query name: include description: "Relações disponíveis para incluir na resposta. Múltiplas devem ser separadas com vírgula. \n Disponíveis: customer, customer_count, customerExists, service, service_count, serviceExists" example: null required: false schema: type: string description: "Relações disponíveis para incluir na resposta. Múltiplas devem ser separadas com vírgula. \n Disponíveis: customer, customer_count, customerExists, service, service_count, serviceExists" example: null - in: query name: filter description: "Campos disponíveis para filtrar. Ex: filter[nome_campo]=valor ou filter[nome_campo]=valor1,valor2. \n Disponíveis: service_id" example: null required: false schema: type: 'string[]' description: "Campos disponíveis para filtrar. Ex: filter[nome_campo]=valor ou filter[nome_campo]=valor1,valor2. \n Disponíveis: service_id" example: null responses: {} tags: - 'Configurações de documentos' post: summary: 'Criar um modelo de prazo de vencimento de documento' operationId: criarUmModeloDePrazoDeVencimentoDeDocumento description: '' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: id: 1 user_id: 150 customer_id: 367 service_id: 669 expiration_days: 1 created_at: '2026-10-02T20:24:11.806014Z' updated_at: '2026-10-02T20:24:11.806216Z' properties: id: type: integer example: 1 user_id: type: integer example: 150 customer_id: type: integer example: 367 service_id: type: integer example: 669 expiration_days: type: integer example: 1 created_at: type: string example: '2026-10-02T20:24:11.806014Z' updated_at: type: string example: '2026-10-02T20:24:11.806216Z' tags: - 'Configurações de documentos' requestBody: required: true content: application/json: schema: type: object properties: service_id: type: integer description: 'Deve corresponder a um valor já cadastrado.' example: 939 expiration_days: type: integer description: 'Deve ser pelo menos 1.' example: 1 required: - service_id - expiration_days '/customer-service-expirations/{customerServiceExpiration_id}': put: summary: 'Alterar um modelo de prazo de vencimento de documento' operationId: alterarUmModeloDePrazoDeVencimentoDeDocumento description: '' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: id: 1 user_id: 749 customer_id: 530 service_id: 354 expiration_days: 1 created_at: '2026-10-02T20:24:11.824982Z' updated_at: '2026-10-02T20:24:11.825284Z' properties: id: type: integer example: 1 user_id: type: integer example: 749 customer_id: type: integer example: 530 service_id: type: integer example: 354 expiration_days: type: integer example: 1 created_at: type: string example: '2026-10-02T20:24:11.824982Z' updated_at: type: string example: '2026-10-02T20:24:11.825284Z' tags: - 'Configurações de documentos' requestBody: required: true content: application/json: schema: type: object properties: service_id: type: integer description: 'Deve corresponder a um valor já cadastrado.' example: 579 expiration_days: type: integer description: 'Deve ser pelo menos 1.' example: 1 required: - service_id - expiration_days delete: summary: 'Excluir um modelo de prazo de vencimento de documento' operationId: excluirUmModeloDePrazoDeVencimentoDeDocumento description: '' parameters: [] responses: {} tags: - 'Configurações de documentos' parameters: - in: path name: customerServiceExpiration_id description: 'The ID of the customerServiceExpiration.' example: 10 required: true schema: type: integer /customer-service-similarity-window: get: summary: 'Listar as janelas de similaridade de documento' operationId: listarAsJanelasDeSimilaridadeDeDocumento description: 'O retorno é paginado' parameters: - in: query name: page description: 'a página desejada' example: 1 required: false schema: type: integer description: 'a página desejada' example: 1 - in: query name: per-page description: 'quantidade de registros por página (padrão é 20, máx 30)' example: 10 required: false schema: type: integer description: 'quantidade de registros por página (padrão é 20, máx 30)' example: 10 - in: query name: include description: "Relações disponíveis para incluir na resposta. Múltiplas devem ser separadas com vírgula. \n Disponíveis: customer, customer_count, customerExists, service, service_count, serviceExists" example: null required: false schema: type: string description: "Relações disponíveis para incluir na resposta. Múltiplas devem ser separadas com vírgula. \n Disponíveis: customer, customer_count, customerExists, service, service_count, serviceExists" example: null - in: query name: filter description: "Campos disponíveis para filtrar. Ex: filter[nome_campo]=valor ou filter[nome_campo]=valor1,valor2. \n Disponíveis: service_id" example: null required: false schema: type: 'string[]' description: "Campos disponíveis para filtrar. Ex: filter[nome_campo]=valor ou filter[nome_campo]=valor1,valor2. \n Disponíveis: service_id" example: null responses: {} tags: - 'Configurações de documentos' post: summary: "Quando um novo pedido está sendo criado pela interface o sistema consulta se existe um pedido similar já existente, se existir,\nconfirma com o usuário se ele quer prosseguir com a compra. Essa consulta busca em toda a história de pedidos da conta." operationId: quandoUmNovoPedidoEstSendoCriadoPelaInterfaceOSistemaConsultaSeExisteUmPedidoSimilarJExistenteSeExistirConfirmaComOUsurioSeEleQuerProsseguirComACompraEssaConsultaBuscaEmTodaAHistriaDePedidosDaConta description: "Esse endpoint permite limitar a busca a um período de dias, últimos 60 dias, por exemplo, por serviço.\nVocê pode configurar que para certidão de nascimento busque as similares apenas nos últimos 30 dias, ao invés do período completo.\n\nO endpoint de consulta de similares está disponível para consulta aqui no link" parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: id: 1 user_id: 654 customer_id: 796 service_id: 260 window_days: 1 created_at: '2026-10-02T20:24:11.853710Z' updated_at: '2026-10-02T20:24:11.853901Z' properties: id: type: integer example: 1 user_id: type: integer example: 654 customer_id: type: integer example: 796 service_id: type: integer example: 260 window_days: type: integer example: 1 created_at: type: string example: '2026-10-02T20:24:11.853710Z' updated_at: type: string example: '2026-10-02T20:24:11.853901Z' tags: - 'Configurações de documentos' requestBody: required: true content: application/json: schema: type: object properties: service_id: type: integer description: 'Deve corresponder a um valor já cadastrado.' example: 86 window_days: type: integer description: 'Deve ser pelo menos 1.' example: 1 required: - service_id - window_days '/customer-service-similarity-window/{customerServiceSimilarityWindow_id}': put: summary: 'Alterar um modelo de janela de similaridade de documento' operationId: alterarUmModeloDeJanelaDeSimilaridadeDeDocumento description: '' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: id: 1 user_id: 277 customer_id: 894 service_id: 819 window_days: 1 created_at: '2026-10-02T20:24:11.877010Z' updated_at: '2026-10-02T20:24:11.877203Z' properties: id: type: integer example: 1 user_id: type: integer example: 277 customer_id: type: integer example: 894 service_id: type: integer example: 819 window_days: type: integer example: 1 created_at: type: string example: '2026-10-02T20:24:11.877010Z' updated_at: type: string example: '2026-10-02T20:24:11.877203Z' tags: - 'Configurações de documentos' requestBody: required: true content: application/json: schema: type: object properties: window_days: type: integer description: 'Deve ser pelo menos 1.' example: 1 required: - window_days delete: summary: 'Excluir um modelo de janela de similaridade de documento' operationId: excluirUmModeloDeJanelaDeSimilaridadeDeDocumento description: '' parameters: [] responses: {} tags: - 'Configurações de documentos' parameters: - in: path name: customerServiceSimilarityWindow_id description: 'The ID of the customerServiceSimilarityWindow.' example: 10 required: true schema: type: integer /contacts/help: post: summary: 'Envia um email, para o suporte, com solicitação de ajuda' operationId: enviaUmEmailParaOSuporteComSolicitaoDeAjuda description: '' parameters: [] responses: {} tags: - Contato requestBody: required: true content: application/json: schema: type: object properties: subject: type: string description: 'Não pode ser superior a 900 caracteres.' example: 'Sapiente suscipit illo.' body: type: string description: 'Não pode ser superior a 10000 caracteres.' example: 'Magni non aut corporis culpa inventore maxime debitis.' required: - subject - body /dossiers: get: summary: 'Listar dossiês' operationId: listarDossis description: '' parameters: - in: query name: filter description: "Campos disponíveis para filtrar. Ex: filter[nome_campo]=valor ou filter[nome_campo]=valor1,valor2. \n Disponíveis: name_or_person_document, status, expired" example: null required: false schema: type: 'string[]' description: "Campos disponíveis para filtrar. Ex: filter[nome_campo]=valor ou filter[nome_campo]=valor1,valor2. \n Disponíveis: name_or_person_document, status, expired" example: null responses: {} tags: - Dossiês /dossiers/never-ordered: get: summary: 'Listar pessoas/empresas para as quais nunca foi feito um dossiê' operationId: listarPessoasempresasParaAsQuaisNuncaFoiFeitoUmDossi description: '' parameters: - in: query name: filter description: "Campos disponíveis para filtrar. Ex: filter[nome_campo]=valor ou filter[nome_campo]=valor1,valor2. \n Disponíveis: person_document" example: null required: false schema: type: 'string[]' description: "Campos disponíveis para filtrar. Ex: filter[nome_campo]=valor ou filter[nome_campo]=valor1,valor2. \n Disponíveis: person_document" example: null responses: {} tags: - Dossiês '/invoices/{id}': get: summary: 'Visualizar uma fatura pelo ID' operationId: visualizarUmaFaturaPeloID description: '' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: id: 1 customer_id: 674 user_id: 825 order_id: 211 operation: C approved_at: '2026-10-02T20:24:12.374682Z' amount: 1.5 payment_method: credit-card backoffice_id: 1554314 bank_slip_url: 'http://www.molina.com/id-nihil-reiciendis-ipsa-similique-cupiditate.html' bank_slip_barcode: exemplo bonus_amount: 1.5 send_email_after_approved: true purchase_id: 698 type: refund backoffice_reason: 'Voluptas sequi provident ut quia et eveniet illum.' pix_qr_code: qq-5580 pix_hash: exemplo created_at: '2026-10-02T20:24:12.376065Z' updated_at: '2026-10-02T20:24:12.376174Z' properties: id: type: integer example: 1 customer_id: type: integer example: 674 user_id: type: integer example: 825 order_id: type: integer example: 211 operation: type: string example: C approved_at: type: string example: '2026-10-02T20:24:12.374682Z' amount: type: number example: 1.5 payment_method: type: string example: credit-card backoffice_id: type: integer example: 1554314 bank_slip_url: type: string example: 'http://www.molina.com/id-nihil-reiciendis-ipsa-similique-cupiditate.html' bank_slip_barcode: type: string example: exemplo bonus_amount: type: number example: 1.5 send_email_after_approved: type: boolean example: true purchase_id: type: integer example: 698 type: type: string example: refund backoffice_reason: type: string example: 'Voluptas sequi provident ut quia et eveniet illum.' pix_qr_code: type: string example: qq-5580 pix_hash: type: string example: exemplo created_at: type: string example: '2026-10-02T20:24:12.376065Z' updated_at: type: string example: '2026-10-02T20:24:12.376174Z' tags: - 'Faturas (Pré pago)' parameters: - in: path name: id description: 'The ID of the invoice.' example: 0-9 required: true schema: type: string '/invoices/by-period/{year}/{month}': get: summary: 'Listar as faturas da conta' operationId: listarAsFaturasDaConta description: 'O retorno é paginado por padrão' parameters: - in: query name: page description: 'a página desejada' example: 1 required: false schema: type: integer description: 'a página desejada' example: 1 - in: query name: per-page description: 'quantidade de registros por página (padrão é 20, máx 30)' example: 10 required: false schema: type: integer description: 'quantidade de registros por página (padrão é 20, máx 30)' example: 10 - in: query name: include description: "Relações disponíveis para incluir na resposta. Múltiplas devem ser separadas com vírgula. \n Disponíveis: purchase, purchase_count, purchaseExists, purchase.orders, user, user_count, userExists" example: null required: false schema: type: string description: "Relações disponíveis para incluir na resposta. Múltiplas devem ser separadas com vírgula. \n Disponíveis: purchase, purchase_count, purchaseExists, purchase.orders, user, user_count, userExists" example: null - in: query name: sort description: "Campos disponíveis para ordenação. Para ordenar decrescentemente use o sinal de - antes do nome do campo Ex: -nome_campo. \n Múltiplos devem ser separadas com vírgula. Disponíveis: purchase.name, operation, amount, purchase.backoffice_code, user.name" example: null required: false schema: type: string description: "Campos disponíveis para ordenação. Para ordenar decrescentemente use o sinal de - antes do nome do campo Ex: -nome_campo. \n Múltiplos devem ser separadas com vírgula. Disponíveis: purchase.name, operation, amount, purchase.backoffice_code, user.name" example: null - in: query name: filter description: "Campos disponíveis para filtrar. Ex: filter[nome_campo]=valor ou filter[nome_campo]=valor1,valor2. \n Disponíveis: operation, purchase_name_or_id, ids" example: null required: false schema: type: 'string[]' description: "Campos disponíveis para filtrar. Ex: filter[nome_campo]=valor ou filter[nome_campo]=valor1,valor2. \n Disponíveis: operation, purchase_name_or_id, ids" example: null responses: {} tags: - 'Faturas (Pré pago)' parameters: - in: path name: year description: '' example: 2023 required: true schema: type: integer - in: path name: month description: '' example: 1 required: true schema: type: integer '/invoices/by-period/{year}/{month}/stats': get: summary: 'Listar estatísticas das faturas' operationId: listarEstatsticasDasFaturas description: '' parameters: - in: query name: filter description: "Campos disponíveis para filtrar. Ex: filter[nome_campo]=valor ou filter[nome_campo]=valor1,valor2. \n Disponíveis: approved_only" example: null required: false schema: type: 'string[]' description: "Campos disponíveis para filtrar. Ex: filter[nome_campo]=valor ou filter[nome_campo]=valor1,valor2. \n Disponíveis: approved_only" example: null responses: {} tags: - 'Faturas (Pré pago)' parameters: - in: path name: year description: '' example: 2023 required: true schema: type: integer - in: path name: month description: '' example: 1 required: true schema: type: integer '/invoice-postpaids/{year}/{month}': get: summary: 'Listar as faturas da conta' operationId: listarAsFaturasDaConta description: 'O retorno é paginado' parameters: - in: query name: page description: 'a página desejada' example: 1 required: false schema: type: integer description: 'a página desejada' example: 1 - in: query name: per-page description: 'quantidade de registros por página (padrão é 20, máx 30)' example: 10 required: false schema: type: integer description: 'quantidade de registros por página (padrão é 20, máx 30)' example: 10 - in: query name: include description: "Relações disponíveis para incluir na resposta. Múltiplas devem ser separadas com vírgula. \n Disponíveis: order, order_count, orderExists, order.user, customer, customer_count, customerExists" example: null required: false schema: type: string description: "Relações disponíveis para incluir na resposta. Múltiplas devem ser separadas com vírgula. \n Disponíveis: order, order_count, orderExists, order.user, customer, customer_count, customerExists" example: null - in: query name: sort description: "Campos disponíveis para ordenação. Para ordenar decrescentemente use o sinal de - antes do nome do campo Ex: -nome_campo. \n Múltiplos devem ser separadas com vírgula. Disponíveis: order.name, order.backoffice_code, fiscal_amount, debit_amount" example: null required: false schema: type: string description: "Campos disponíveis para ordenação. Para ordenar decrescentemente use o sinal de - antes do nome do campo Ex: -nome_campo. \n Múltiplos devem ser separadas com vírgula. Disponíveis: order.name, order.backoffice_code, fiscal_amount, debit_amount" example: null - in: query name: filter description: "Campos disponíveis para filtrar. Ex: filter[nome_campo]=valor ou filter[nome_campo]=valor1,valor2. \n Disponíveis: order_name_or_id, ids" example: null required: false schema: type: 'string[]' description: "Campos disponíveis para filtrar. Ex: filter[nome_campo]=valor ou filter[nome_campo]=valor1,valor2. \n Disponíveis: order_name_or_id, ids" example: null responses: {} tags: - 'Faturas (Pós pago)' parameters: - in: path name: year description: '' example: 2023 required: true schema: type: integer - in: path name: month description: '' example: 1 required: true schema: type: integer '/invoice-postpaids/{year}/{month}/stats': get: summary: 'Listar estatísticas das faturas' operationId: listarEstatsticasDasFaturas description: '' parameters: [] responses: {} tags: - 'Faturas (Pós pago)' parameters: - in: path name: year description: '' example: 2023 required: true schema: type: integer - in: path name: month description: '' example: 1 required: true schema: type: integer '/gestor/customers/{customer_backoffice_id}/backoffice-email': patch: summary: "Altera o email da conta (backoffice_email), sincronizando o email do primeiro usuário da conta\ne avisando o Backoffice externo." operationId: alteraOEmailDaContabackofficeEmailSincronizandoOEmailDoPrimeiroUsurioDaContaEAvisandoOBackofficeExterno description: '' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: id: 1 name: 'Paulo Benites Aguiar' corporate_name: 'Faro e Dominato Ltda.' entity_type: PF phone: '21938854846' document_number: '04737011541' address_zip_code: '13376627' address_public_place: 'Rua Suelen' address_number: '1' address_complement: 'Apto 12' address_neighborhood: Centro address_city: 'Vila James do Norte' address_uf: ES backoffice_email: lmolina@example.org sync_with_backoffice: true postpaid: true explorer_item_file_upload_enabled: true ai_enrich_data_enabled: true group_mandatory_on_purchase: true demands_approval_purchases_over_value: 1.5 created_from_passport: true generate_services_summary: true show_shipping_info_on_orders: 1 credit_bonus_disabled: 1 control_downloaded_orders_by: user plan: exemplo plan_max_users: 1 plan_analytics_enabled_until: '2026-10-02' plan_free_emoluments_orders_included: 1 plan_free_dossiers_orders_included: 1 plan_ai_extractions_included: 1 plan_ai_tokens_included: 1 plan_paid_until: '2026-10-02' plan_changed_at: '2026-10-02' created_at: '2026-10-02T20:24:12.209523Z' updated_at: '2026-10-02T20:24:12.209622Z' api_access_enabled: true properties: id: type: integer example: 1 name: type: string example: 'Paulo Benites Aguiar' corporate_name: type: string example: 'Faro e Dominato Ltda.' entity_type: type: string example: PF phone: type: string example: '21938854846' document_number: type: string example: '04737011541' address_zip_code: type: string example: '13376627' address_public_place: type: string example: 'Rua Suelen' address_number: type: string example: '1' address_complement: type: string example: 'Apto 12' address_neighborhood: type: string example: Centro address_city: type: string example: 'Vila James do Norte' address_uf: type: string example: ES backoffice_email: type: string example: lmolina@example.org sync_with_backoffice: type: boolean example: true postpaid: type: boolean example: true explorer_item_file_upload_enabled: type: boolean example: true ai_enrich_data_enabled: type: boolean example: true group_mandatory_on_purchase: type: boolean example: true demands_approval_purchases_over_value: type: number example: 1.5 created_from_passport: type: boolean example: true generate_services_summary: type: boolean example: true show_shipping_info_on_orders: type: integer example: 1 credit_bonus_disabled: type: integer example: 1 control_downloaded_orders_by: type: string example: user plan: type: string example: exemplo plan_max_users: type: integer example: 1 plan_analytics_enabled_until: type: string example: '2026-10-02' plan_free_emoluments_orders_included: type: integer example: 1 plan_free_dossiers_orders_included: type: integer example: 1 plan_ai_extractions_included: type: integer example: 1 plan_ai_tokens_included: type: integer example: 1 plan_paid_until: type: string example: '2026-10-02' plan_changed_at: type: string example: '2026-10-02' created_at: type: string example: '2026-10-02T20:24:12.209523Z' updated_at: type: string example: '2026-10-02T20:24:12.209622Z' api_access_enabled: type: boolean example: true tags: - Gestor requestBody: required: true content: application/json: schema: type: object properties: account_email: type: string description: 'Deve ser um endereço de e-mail válido. Não pode ser superior a 120 caracteres.' example: dacruz.theo@example.org required: - account_email parameters: - in: path name: customer_backoffice_id description: 'The ID of the customer backoffice.' example: 10 required: true schema: type: integer '/gestor/users/{user_id}/password': patch: summary: 'Altera a senha de um usuário de cliente.' operationId: alteraASenhaDeUmUsurioDeCliente description: '' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: id: 1 customer_id: 696 name: 'Sr. Alessandro Garcia Leon' email: amanda17@example.org email_verified_at: '2026-10-02T20:24:12.228876Z' phone: '6325703268' isolated_orders: true last_login_at: '2026-10-02T20:24:12.229221Z' created_at: '2026-10-02T20:24:12.229306Z' updated_at: '2026-10-02T20:24:12.229360Z' free_order_summary_remaining: 1 two_factor_confirmed_at: '2026-10-02T20:24:12.229412Z' properties: id: type: integer example: 1 customer_id: type: integer example: 696 name: type: string example: 'Sr. Alessandro Garcia Leon' email: type: string example: amanda17@example.org email_verified_at: type: string example: '2026-10-02T20:24:12.228876Z' phone: type: string example: '6325703268' isolated_orders: type: boolean example: true last_login_at: type: string example: '2026-10-02T20:24:12.229221Z' created_at: type: string example: '2026-10-02T20:24:12.229306Z' updated_at: type: string example: '2026-10-02T20:24:12.229360Z' free_order_summary_remaining: type: integer example: 1 two_factor_confirmed_at: type: string example: '2026-10-02T20:24:12.229412Z' tags: - Gestor requestBody: required: true content: application/json: schema: type: object properties: password: type: string description: 'Não pode ser superior a 255 caracteres.' example: Senha@123 required: - password parameters: - in: path name: user_id description: 'The ID of the user.' example: 10 required: true schema: type: integer '/gestor/users/{user_id}/email': patch: summary: "Altera o email de um usuário de cliente. Se for o primeiro usuário da conta, sincroniza também\no email da conta (backoffice_email) e avisa o Backoffice externo." operationId: alteraOEmailDeUmUsurioDeClienteSeForOPrimeiroUsurioDaContaSincronizaTambmOEmailDaContabackofficeEmailEAvisaOBackofficeExterno description: '' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: id: 1 customer_id: 520 name: 'João Gustavo Burgos Neto' email: verdugo.josefina@example.org email_verified_at: '2026-10-02T20:24:12.248444Z' phone: '4320829354' isolated_orders: true last_login_at: '2026-10-02T20:24:12.248668Z' created_at: '2026-10-02T20:24:12.248766Z' updated_at: '2026-10-02T20:24:12.248851Z' free_order_summary_remaining: 1 two_factor_confirmed_at: '2026-10-02T20:24:12.249001Z' properties: id: type: integer example: 1 customer_id: type: integer example: 520 name: type: string example: 'João Gustavo Burgos Neto' email: type: string example: verdugo.josefina@example.org email_verified_at: type: string example: '2026-10-02T20:24:12.248444Z' phone: type: string example: '4320829354' isolated_orders: type: boolean example: true last_login_at: type: string example: '2026-10-02T20:24:12.248668Z' created_at: type: string example: '2026-10-02T20:24:12.248766Z' updated_at: type: string example: '2026-10-02T20:24:12.248851Z' free_order_summary_remaining: type: integer example: 1 two_factor_confirmed_at: type: string example: '2026-10-02T20:24:12.249001Z' tags: - Gestor requestBody: required: true content: application/json: schema: type: object properties: email: type: string description: 'Deve ser um endereço de e-mail válido. Não pode ser superior a 120 caracteres.' example: qpontes@example.org required: - email parameters: - in: path name: user_id description: 'The ID of the user.' example: 10 required: true schema: type: integer /groups: get: summary: 'Listar os grupos' operationId: listarOsGrupos description: 'O retorno é paginado' parameters: - in: query name: page description: 'a página desejada' example: 1 required: false schema: type: integer description: 'a página desejada' example: 1 - in: query name: per-page description: 'quantidade de registros por página (padrão é 20, máx 30)' example: 10 required: false schema: type: integer description: 'quantidade de registros por página (padrão é 20, máx 30)' example: 10 responses: {} tags: - Grupos post: summary: 'Criar um ou múltiplos grupos' operationId: criarUmOuMltiplosGrupos description: '' parameters: [] responses: {} tags: - Grupos requestBody: required: true content: application/json: schema: type: object properties: groups: type: object description: 'Deve ter pelo menos 1 item.' example: [] properties: {} required: - groups '/groups/{group_id}': put: summary: 'Alterar um grupo' operationId: alterarUmGrupo description: '' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: id: 1 customer_id: 936 name: 'Júlia Mendes Rezende' color: exemplo created_at: '2026-10-02T20:24:12.285322Z' updated_at: '2026-10-02T20:24:12.285433Z' properties: id: type: integer example: 1 customer_id: type: integer example: 936 name: type: string example: 'Júlia Mendes Rezende' color: type: string example: exemplo created_at: type: string example: '2026-10-02T20:24:12.285322Z' updated_at: type: string example: '2026-10-02T20:24:12.285433Z' tags: - Grupos requestBody: required: true content: application/json: schema: type: object properties: name: type: string description: 'Não pode ser superior a 60 caracteres.' example: 'Dr. Isabella Silvana Dias' required: - name delete: summary: 'Excluir um grupo' operationId: excluirUmGrupo description: '' parameters: [] responses: {} tags: - Grupos parameters: - in: path name: group_id description: 'The ID of the group.' example: 10 required: true schema: type: integer /permission-groups: get: summary: 'Listar os grupos de permissões' operationId: listarOsGruposDePermisses description: '' parameters: - in: query name: include description: "Relações disponíveis para incluir na resposta. Múltiplas devem ser separadas com vírgula. \n Disponíveis: permissions" example: null required: false schema: type: string description: "Relações disponíveis para incluir na resposta. Múltiplas devem ser separadas com vírgula. \n Disponíveis: permissions" example: null - in: query name: sort description: "Campos disponíveis para ordenação. Para ordenar decrescentemente use o sinal de - antes do nome do campo Ex: -nome_campo. \n Múltiplos devem ser separadas com vírgula. Disponíveis: name, order" example: null required: false schema: type: string description: "Campos disponíveis para ordenação. Para ordenar decrescentemente use o sinal de - antes do nome do campo Ex: -nome_campo. \n Múltiplos devem ser separadas com vírgula. Disponíveis: name, order" example: null responses: {} tags: - 'Grupos de permissões' /user-groups: get: summary: '' operationId: getUserGroups description: '' parameters: [] responses: {} tags: - 'Grupos de usuários' post: summary: '' operationId: postUserGroups description: '' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: id: 1 customer_id: 328 parent_id: 39 name: 'Augusto Roque Neto' description: 'Qui molestiae fuga quo omnis.' properties: id: type: integer example: 1 customer_id: type: integer example: 328 parent_id: type: integer example: 39 name: type: string example: 'Augusto Roque Neto' description: type: string example: 'Qui molestiae fuga quo omnis.' tags: - 'Grupos de usuários' requestBody: required: true content: application/json: schema: type: object properties: name: type: string description: 'Não pode ser superior a 255 caracteres.' example: 'Sra. Alana Beltrão Filho' description: type: string description: 'Não pode ser superior a 255 caracteres.' example: 'Numquam quod et nihil at ut iure in.' nullable: true parent_id: type: integer description: '' example: 141 nullable: true required: - name '/user-groups/{userGroup_id}/members': get: summary: '' operationId: getUserGroupsUserGroup_idMembers description: '' parameters: [] responses: {} tags: - 'Grupos de usuários' put: summary: 'Substituir os membros de um grupo' operationId: substituirOsMembrosDeUmGrupo description: '' parameters: [] responses: {} tags: - 'Grupos de usuários' requestBody: required: true content: application/json: schema: type: object properties: users_ids: type: array description: '' example: - 776 - 807 items: type: integer required: - users_ids parameters: - in: path name: userGroup_id description: 'The ID of the userGroup.' example: 10 required: true schema: type: integer '/user-groups/{userGroup_id}': put: summary: '' operationId: putUserGroupsUserGroup_id description: '' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: id: 1 customer_id: 849 parent_id: 439 name: 'Benício Leonardo Urias' description: 'Modi nesciunt modi earum non quidem qui.' properties: id: type: integer example: 1 customer_id: type: integer example: 849 parent_id: type: integer example: 439 name: type: string example: 'Benício Leonardo Urias' description: type: string example: 'Modi nesciunt modi earum non quidem qui.' tags: - 'Grupos de usuários' requestBody: required: false content: application/json: schema: type: object properties: name: type: string description: 'Não pode ser superior a 255 caracteres.' example: 'Murilo Saito Romero Neto' description: type: string description: '' example: 'Qui pariatur perferendis quis repellat et quaerat.' nullable: true parent_id: type: integer description: '' example: 79 nullable: true delete: summary: '' operationId: deleteUserGroupsUserGroup_id description: '' parameters: [] responses: {} tags: - 'Grupos de usuários' parameters: - in: path name: userGroup_id description: 'The ID of the userGroup.' example: 10 required: true schema: type: integer '/user-groups/{userGroup_id}/members/{user_id}': put: summary: 'Adicionar um usuário a um grupo' operationId: adicionarUmUsurioAUmGrupo description: '' parameters: [] responses: {} tags: - 'Grupos de usuários' delete: summary: 'Remover um usuário de um grupo' operationId: removerUmUsurioDeUmGrupo description: '' parameters: [] responses: {} tags: - 'Grupos de usuários' parameters: - in: path name: userGroup_id description: 'The ID of the userGroup.' example: 10 required: true schema: type: integer - in: path name: user_id description: 'The ID of the user.' example: 10 required: true schema: type: integer /ai/models: get: summary: 'Listar os modelos de IA disponíveis para o cliente' operationId: listarOsModelosDeIADisponveisParaOCliente description: 'O retorno é paginado' parameters: - in: query name: page description: 'a página desejada' example: 1 required: false schema: type: integer description: 'a página desejada' example: 1 - in: query name: per-page description: 'quantidade de registros por página (padrão é 20, máx 30)' example: 10 required: false schema: type: integer description: 'quantidade de registros por página (padrão é 20, máx 30)' example: 10 - in: query name: include description: "Relações disponíveis para incluir na resposta. Múltiplas devem ser separadas com vírgula. \n Disponíveis: service, service_count, serviceExists, customer, customer_count, customerExists" example: null required: false schema: type: string description: "Relações disponíveis para incluir na resposta. Múltiplas devem ser separadas com vírgula. \n Disponíveis: service, service_count, serviceExists, customer, customer_count, customerExists" example: null - in: query name: append description: "Propriedades disponíveis para incluir na resposta. Múltiplas devem ser separadas com vírgula. \n Disponíveis: questions, extracted_fields" example: null required: false schema: type: string description: "Propriedades disponíveis para incluir na resposta. Múltiplas devem ser separadas com vírgula. \n Disponíveis: questions, extracted_fields" example: null - in: query name: sort description: "Campos disponíveis para ordenação. Para ordenar decrescentemente use o sinal de - antes do nome do campo Ex: -nome_campo. \n Múltiplos devem ser separadas com vírgula. Disponíveis: id, name" example: null required: false schema: type: string description: "Campos disponíveis para ordenação. Para ordenar decrescentemente use o sinal de - antes do nome do campo Ex: -nome_campo. \n Múltiplos devem ser separadas com vírgula. Disponíveis: id, name" example: null - in: query name: filter description: "Campos disponíveis para filtrar. Ex: filter[nome_campo]=valor ou filter[nome_campo]=valor1,valor2. \n Disponíveis: name_or_id, visibility, service_id" example: null required: false schema: type: 'string[]' description: "Campos disponíveis para filtrar. Ex: filter[nome_campo]=valor ou filter[nome_campo]=valor1,valor2. \n Disponíveis: name_or_id, visibility, service_id" example: null responses: {} tags: - IA post: summary: 'Criar um modelo personalizado de IA' operationId: criarUmModeloPersonalizadoDeIA description: '' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: id: 1 service_id: 82 customer_id: 229 name: 'Sr. Luan Romero' document_name: documento.pdf created_at: '2026-10-02T20:24:11.488801Z' updated_at: '2026-10-02T20:24:11.488912Z' fixed_schema: true hidden_schema: true download_as_xml: true allow_multiple_files_to_be_joined: true example_html_content: exemplo properties: id: type: integer example: 1 service_id: type: integer example: 82 customer_id: type: integer example: 229 name: type: string example: 'Sr. Luan Romero' document_name: type: string example: documento.pdf created_at: type: string example: '2026-10-02T20:24:11.488801Z' updated_at: type: string example: '2026-10-02T20:24:11.488912Z' fixed_schema: type: boolean example: true hidden_schema: type: boolean example: true download_as_xml: type: boolean example: true allow_multiple_files_to_be_joined: type: boolean example: true example_html_content: type: string example: exemplo tags: - IA requestBody: required: true content: application/json: schema: type: object properties: name: type: string description: 'Não pode ser superior a 120 caracteres.' example: 'Srta. Mary Salgado Dias Sobrinho' document_name: type: string description: 'Este campo é obrigatório quando service_id for null. Não pode ser superior a 120 caracteres.' example: documento.pdf nullable: true service_id: type: integer description: 'Deve corresponder a um valor já cadastrado.' example: 280 nullable: true allow_multiple_files_to_be_joined: type: boolean description: '' example: true questions: type: array description: 'Deve ter pelo menos 1 item.' example: - [] items: type: object properties: question_to_send_to_ai: type: string description: '' example: 'Qual é o status desse pedido?' label_show_user: type: string description: 'Não pode ser superior a 60 caracteres.' example: 'Meu label' required: - question_to_send_to_ai - label_show_user required: - name - allow_multiple_files_to_be_joined '/ai/models/{id}': get: summary: 'Visualizar um modelo de IA' operationId: visualizarUmModeloDeIA description: '' parameters: - in: query name: include description: "Relações disponíveis para incluir na resposta. Múltiplas devem ser separadas com vírgula. \n Disponíveis: service, service_count, serviceExists, customer, customer_count, customerExists" example: null required: false schema: type: string description: "Relações disponíveis para incluir na resposta. Múltiplas devem ser separadas com vírgula. \n Disponíveis: service, service_count, serviceExists, customer, customer_count, customerExists" example: null - in: query name: append description: "Propriedades disponíveis para incluir na resposta. Múltiplas devem ser separadas com vírgula. \n Disponíveis: questions" example: null required: false schema: type: string description: "Propriedades disponíveis para incluir na resposta. Múltiplas devem ser separadas com vírgula. \n Disponíveis: questions" example: null responses: 200: description: '' content: application/json: schema: type: object example: id: 1 service_id: 205 customer_id: 334 name: 'Maximiano Henrique Casanova' document_name: documento.pdf created_at: '2026-10-02T20:24:11.440929Z' updated_at: '2026-10-02T20:24:11.441729Z' fixed_schema: true hidden_schema: true download_as_xml: true allow_multiple_files_to_be_joined: true example_html_content: exemplo properties: id: type: integer example: 1 service_id: type: integer example: 205 customer_id: type: integer example: 334 name: type: string example: 'Maximiano Henrique Casanova' document_name: type: string example: documento.pdf created_at: type: string example: '2026-10-02T20:24:11.440929Z' updated_at: type: string example: '2026-10-02T20:24:11.441729Z' fixed_schema: type: boolean example: true hidden_schema: type: boolean example: true download_as_xml: type: boolean example: true allow_multiple_files_to_be_joined: type: boolean example: true example_html_content: type: string example: exemplo tags: - IA parameters: - in: path name: id description: 'The ID of the model.' example: 0-9 required: true schema: type: string '/ai/models/{aiModel_id}': put: summary: 'Altera um modelo personalizado de IA' operationId: alteraUmModeloPersonalizadoDeIA description: '' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: id: 1 service_id: 304 customer_id: 33 name: 'Everton Saraiva Bezerra' document_name: documento.pdf created_at: '2026-10-02T20:24:11.518533Z' updated_at: '2026-10-02T20:24:11.518646Z' fixed_schema: true hidden_schema: true download_as_xml: true allow_multiple_files_to_be_joined: true example_html_content: exemplo properties: id: type: integer example: 1 service_id: type: integer example: 304 customer_id: type: integer example: 33 name: type: string example: 'Everton Saraiva Bezerra' document_name: type: string example: documento.pdf created_at: type: string example: '2026-10-02T20:24:11.518533Z' updated_at: type: string example: '2026-10-02T20:24:11.518646Z' fixed_schema: type: boolean example: true hidden_schema: type: boolean example: true download_as_xml: type: boolean example: true allow_multiple_files_to_be_joined: type: boolean example: true example_html_content: type: string example: exemplo tags: - IA requestBody: required: true content: application/json: schema: type: object properties: name: type: string description: 'Não pode ser superior a 120 caracteres.' example: 'Moisés Filipe Sepúlveda' document_name: type: string description: 'Este campo é obrigatório quando service_id for null. Não pode ser superior a 120 caracteres.' example: documento.pdf nullable: true service_id: type: integer description: 'Deve corresponder a um valor já cadastrado.' example: 379 nullable: true allow_multiple_files_to_be_joined: type: boolean description: '' example: true questions: type: array description: 'Deve ter pelo menos 1 item.' example: - [] items: type: object properties: question_to_send_to_ai: type: string description: '' example: 'Qual é o status desse pedido?' label_show_user: type: string description: 'Não pode ser superior a 60 caracteres.' example: 'Meu label' required: - question_to_send_to_ai - label_show_user required: - name - allow_multiple_files_to_be_joined parameters: - in: path name: aiModel_id description: 'The ID of the aiModel.' example: 10 required: true schema: type: integer '/ai/models/{aiModels}': delete: summary: 'Excluir um modelo de IA' operationId: excluirUmModeloDeIA description: '' parameters: [] responses: {} tags: - IA parameters: - in: path name: aiModels description: '' example: exemplo required: true schema: type: string '/ai/conversations/{aiConversation_id}': get: summary: 'Retorna os dados de uma conversa com a IA' operationId: retornaOsDadosDeUmaConversaComAIA description: '' parameters: - in: query name: include description: "Relações disponíveis para incluir na resposta. Múltiplas devem ser separadas com vírgula. \n Disponíveis: first_message, first_message_count, first_messageExists, order, order_count, orderExists, messages_count" example: null required: false schema: type: string description: "Relações disponíveis para incluir na resposta. Múltiplas devem ser separadas com vírgula. \n Disponíveis: first_message, first_message_count, first_messageExists, order, order_count, orderExists, messages_count" example: null - in: query name: append description: "Propriedades disponíveis para incluir na resposta. Múltiplas devem ser separadas com vírgula. \n Disponíveis: files_count" example: null required: false schema: type: string description: "Propriedades disponíveis para incluir na resposta. Múltiplas devem ser separadas com vírgula. \n Disponíveis: files_count" example: null - in: query name: filter description: "Campos disponíveis para filtrar. Ex: filter[nome_campo]=valor ou filter[nome_campo]=valor1,valor2. \n Disponíveis: origin, order_id" example: null required: false schema: type: 'string[]' description: "Campos disponíveis para filtrar. Ex: filter[nome_campo]=valor ou filter[nome_campo]=valor1,valor2. \n Disponíveis: origin, order_id" example: null responses: 200: description: '' content: application/json: schema: type: object example: id: 1 name: 'Sr. Gian Guilherme Abreu Sobrinho' user_id: 199 order_id: 775 origin: chatbot finished_at: '2026-10-02T20:24:11.546522Z' created_at: '2026-10-02T20:24:11.546661Z' is_running: true total_tokens: 1 deleted_at: '2026-10-02T20:24:11.546785Z' properties: id: type: integer example: 1 name: type: string example: 'Sr. Gian Guilherme Abreu Sobrinho' user_id: type: integer example: 199 order_id: type: integer example: 775 origin: type: string example: chatbot finished_at: type: string example: '2026-10-02T20:24:11.546522Z' created_at: type: string example: '2026-10-02T20:24:11.546661Z' is_running: type: boolean example: true total_tokens: type: integer example: 1 deleted_at: type: string example: '2026-10-02T20:24:11.546785Z' tags: - IA delete: summary: 'Deletar uma conversa com a IA' operationId: deletarUmaConversaComAIA description: '' parameters: [] responses: {} tags: - IA parameters: - in: path name: aiConversation_id description: 'The ID of the aiConversation.' example: 10 required: true schema: type: integer /ai/conversations: get: summary: 'Listar as conversas de IA iniciadas pelo usuário' operationId: listarAsConversasDeIAIniciadasPeloUsurio description: 'O retorno é paginado' parameters: - in: query name: page description: 'a página desejada' example: 1 required: false schema: type: integer description: 'a página desejada' example: 1 - in: query name: per-page description: 'quantidade de registros por página (padrão é 20, máx 30)' example: 10 required: false schema: type: integer description: 'quantidade de registros por página (padrão é 20, máx 30)' example: 10 - in: query name: include description: "Relações disponíveis para incluir na resposta. Múltiplas devem ser separadas com vírgula. \n Disponíveis: first_message, first_message_count, first_messageExists, order, order_count, orderExists, messages_count" example: null required: false schema: type: string description: "Relações disponíveis para incluir na resposta. Múltiplas devem ser separadas com vírgula. \n Disponíveis: first_message, first_message_count, first_messageExists, order, order_count, orderExists, messages_count" example: null - in: query name: append description: "Propriedades disponíveis para incluir na resposta. Múltiplas devem ser separadas com vírgula. \n Disponíveis: files_count" example: null required: false schema: type: string description: "Propriedades disponíveis para incluir na resposta. Múltiplas devem ser separadas com vírgula. \n Disponíveis: files_count" example: null - in: query name: sort description: "Campos disponíveis para ordenação. Para ordenar decrescentemente use o sinal de - antes do nome do campo Ex: -nome_campo. \n Múltiplos devem ser separadas com vírgula. Disponíveis: id, name, created_at" example: null required: false schema: type: string description: "Campos disponíveis para ordenação. Para ordenar decrescentemente use o sinal de - antes do nome do campo Ex: -nome_campo. \n Múltiplos devem ser separadas com vírgula. Disponíveis: id, name, created_at" example: null - in: query name: filter description: "Campos disponíveis para filtrar. Ex: filter[nome_campo]=valor ou filter[nome_campo]=valor1,valor2. \n Disponíveis: origin, order_id" example: null required: false schema: type: 'string[]' description: "Campos disponíveis para filtrar. Ex: filter[nome_campo]=valor ou filter[nome_campo]=valor1,valor2. \n Disponíveis: origin, order_id" example: null responses: {} tags: - IA post: summary: 'Inicia uma nova conversa com a IA' operationId: iniciaUmaNovaConversaComAIA description: '' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: id: 1 name: 'Dr. Caio Júlio Leon' user_id: 730 order_id: 726 origin: chatbot finished_at: '2026-10-02T20:24:11.576509Z' created_at: '2026-10-02T20:24:11.576613Z' is_running: true total_tokens: 1 deleted_at: '2026-10-02T20:24:11.576681Z' properties: id: type: integer example: 1 name: type: string example: 'Dr. Caio Júlio Leon' user_id: type: integer example: 730 order_id: type: integer example: 726 origin: type: string example: chatbot finished_at: type: string example: '2026-10-02T20:24:11.576509Z' created_at: type: string example: '2026-10-02T20:24:11.576613Z' is_running: type: boolean example: true total_tokens: type: integer example: 1 deleted_at: type: string example: '2026-10-02T20:24:11.576681Z' tags: - IA requestBody: required: true content: application/json: schema: type: object properties: name: type: string description: 'Não pode ser superior a 50 caracteres.' example: 'Cynthia Barros' order_id: type: integer description: '' example: 540 nullable: true required: - name '/ai/conversations/{aiConversation_id}/messages': post: summary: 'Adiciona uma mensagem em uma conversa existente com a IA' operationId: adicionaUmaMensagemEmUmaConversaExistenteComAIA description: '' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: id: 1 ai_conversation_id: 434 send_by: exemplo message: 'Doloremque sequi occaecati id modi est.' created_at: '2026-10-02T20:24:11.597951Z' files_ids: - 490 - 546 properties: id: type: integer example: 1 ai_conversation_id: type: integer example: 434 send_by: type: string example: exemplo message: type: string example: 'Doloremque sequi occaecati id modi est.' created_at: type: string example: '2026-10-02T20:24:11.597951Z' files_ids: type: array example: - 490 - 546 items: type: integer tags: - IA requestBody: required: true content: application/json: schema: type: object properties: message: type: string description: '' example: 'Quaerat autem nisi qui aut et odio aspernatur.' files_ids: type: array description: '' example: - 712 - 744 items: type: string required: - message get: summary: 'Adiciona uma mensagem em uma conversa existente com a IA' operationId: adicionaUmaMensagemEmUmaConversaExistenteComAIA description: '' parameters: [] responses: {} tags: - IA parameters: - in: path name: aiConversation_id description: 'The ID of the aiConversation.' example: 10 required: true schema: type: integer '/ai/conversations/{aiConversation_id}/messages/{aiMessage_id}/feedback/{feedback}': put: summary: 'Registra feedback do usuário para uma mensagem da conversa' operationId: registraFeedbackDoUsurioParaUmaMensagemDaConversa description: '' parameters: [] responses: {} tags: - IA parameters: - in: path name: aiConversation_id description: 'The ID of the aiConversation.' example: 10 required: true schema: type: integer - in: path name: aiMessage_id description: 'The ID of the aiMessage.' example: 10 required: true schema: type: integer - in: path name: feedback description: 'The feedback.Must be one of:' example: null required: true schema: type: string '/ai/conversations/{aiConversation_id}/name': patch: summary: 'Atualiza o nome da conversa com a IA' operationId: atualizaONomeDaConversaComAIA description: '' parameters: [] responses: {} tags: - IA requestBody: required: true content: application/json: schema: type: object properties: name: type: string description: 'Não pode ser superior a 50 caracteres.' example: 'Srta. Naomi Rangel Alcantara' required: - name parameters: - in: path name: aiConversation_id description: 'The ID of the aiConversation.' example: 10 required: true schema: type: integer /ai/conversations/files: post: summary: 'Faz upload de um arquivo para ser usado em uma mensagem da conversa' operationId: fazUploadDeUmArquivoParaSerUsadoEmUmaMensagemDaConversa description: "Os ID's dos arquivos são retornados na mesma ordem de envio" parameters: [] responses: {} tags: - IA requestBody: required: true content: multipart/form-data: schema: type: object properties: files: type: array description: 'Não pode ser superior a 71680 caracteres.' example: - exemplo items: type: string required: - files /orders: get: summary: 'Listar os itens de compras' operationId: listarOsItensDeCompras description: 'O retorno é paginado' parameters: - in: query name: page description: 'a página desejada' example: 1 required: false schema: type: integer description: 'a página desejada' example: 1 - in: query name: per-page description: 'quantidade de registros por página (padrão é 20, máx 30)' example: 10 required: false schema: type: integer description: 'quantidade de registros por página (padrão é 20, máx 30)' example: 10 - in: query name: include description: "Relações disponíveis para incluir na resposta. Múltiplas devem ser separadas com vírgula. \n Disponíveis: groups, groups_count, groupsExists, purchase, purchase_count, purchaseExists, service, service_count, serviceExists, user, user_count, userExists, customer, customer_count, customerExists, explorer_item, explorer_item_count, explorer_itemExists, explorer_item.groups, explorer_item.ai_question_history, purchase.waiting_invoice_payment, purchase.recurrence, ocr, ocr_count, ocrExists, ocr.pages, active_challenge, active_challenge_count, active_challengeExists, challenges, challenges_count, challengesExists, originated_from, originated_from_count, originated_fromExists" example: null required: false schema: type: string description: "Relações disponíveis para incluir na resposta. Múltiplas devem ser separadas com vírgula. \n Disponíveis: groups, groups_count, groupsExists, purchase, purchase_count, purchaseExists, service, service_count, serviceExists, user, user_count, userExists, customer, customer_count, customerExists, explorer_item, explorer_item_count, explorer_itemExists, explorer_item.groups, explorer_item.ai_question_history, purchase.waiting_invoice_payment, purchase.recurrence, ocr, ocr_count, ocrExists, ocr.pages, active_challenge, active_challenge_count, active_challengeExists, challenges, challenges_count, challengesExists, originated_from, originated_from_count, originated_fromExists" example: null - in: query name: append description: "Propriedades disponíveis para incluir na resposta. Múltiplas devem ser separadas com vírgula. \n Disponíveis: ai_service_name, refundable, result_details, explorer_item.file, has_ai_extracted_data, has_ai_analysis_pending, explorer_item_id, ai_service_name, refundable, refundable_value, purchase.downloadable_orders_ids, place_order_default_values, is_expired, can_be_downloaded, explorer_item.ai_enrich_data_available, explorer_item.depends_on_ocr_to_request_ai, previous_order_id_same_purchase, next_order_id_same_purchase, purchase.orders_count, index_in_purchase, can_accept_additional_information, times_downloaded, explorer_item.ai_data, is_summary_extraction_queued, is_get_ai_answers_queued, originated_from_backoffice_code, explorer_item.ai_model_name" example: null required: false schema: type: string description: "Propriedades disponíveis para incluir na resposta. Múltiplas devem ser separadas com vírgula. \n Disponíveis: ai_service_name, refundable, result_details, explorer_item.file, has_ai_extracted_data, has_ai_analysis_pending, explorer_item_id, ai_service_name, refundable, refundable_value, purchase.downloadable_orders_ids, place_order_default_values, is_expired, can_be_downloaded, explorer_item.ai_enrich_data_available, explorer_item.depends_on_ocr_to_request_ai, previous_order_id_same_purchase, next_order_id_same_purchase, purchase.orders_count, index_in_purchase, can_accept_additional_information, times_downloaded, explorer_item.ai_data, is_summary_extraction_queued, is_get_ai_answers_queued, originated_from_backoffice_code, explorer_item.ai_model_name" example: null - in: query name: sort description: "Campos disponíveis para ordenação. Para ordenar decrescentemente use o sinal de - antes do nome do campo Ex: -nome_campo. \n Múltiplos devem ser separadas com vírgula. Disponíveis: id, name, placed_at, type, finished_at" example: null required: false schema: type: string description: "Campos disponíveis para ordenação. Para ordenar decrescentemente use o sinal de - antes do nome do campo Ex: -nome_campo. \n Múltiplos devem ser separadas com vírgula. Disponíveis: id, name, placed_at, type, finished_at" example: null - in: query name: filter description: "Campos disponíveis para filtrar. Ex: filter[nome_campo]=valor ou filter[nome_campo]=valor1,valor2. \n Disponíveis: id, register, result, name_or_id_or_register, placed_between, valid_until_between, status, service_id, group_id, user_id, purchase.recurrence_id, ai, purchase_id, ocr_content, expired, has_active_challenge, recurrence_generated, has_extracted_summary, originated_from_id, person_document, detailed_service_data.modelo_ia_id" example: null required: false schema: type: 'string[]' description: "Campos disponíveis para filtrar. Ex: filter[nome_campo]=valor ou filter[nome_campo]=valor1,valor2. \n Disponíveis: id, register, result, name_or_id_or_register, placed_between, valid_until_between, status, service_id, group_id, user_id, purchase.recurrence_id, ai, purchase_id, ocr_content, expired, has_active_challenge, recurrence_generated, has_extracted_summary, originated_from_id, person_document, detailed_service_data.modelo_ia_id" example: null responses: {} tags: - 'Itens de compra' '/orders/{id}': get: summary: 'Visualizar um item de compra' operationId: visualizarUmItemDeCompra description: '' parameters: - in: query name: include description: "Relações disponíveis para incluir na resposta. Múltiplas devem ser separadas com vírgula. \n Disponíveis: groups, groups_count, groupsExists, purchase, purchase_count, purchaseExists, service, service_count, serviceExists, user, user_count, userExists, customer, customer_count, customerExists, explorer_item, explorer_item_count, explorer_itemExists, explorer_item.groups, explorer_item.ai_question_history, purchase.waiting_invoice_payment, purchase.recurrence, ocr, ocr_count, ocrExists, ocr.pages, active_challenge, active_challenge_count, active_challengeExists, challenges, challenges_count, challengesExists, originated_from, originated_from_count, originated_fromExists" example: null required: false schema: type: string description: "Relações disponíveis para incluir na resposta. Múltiplas devem ser separadas com vírgula. \n Disponíveis: groups, groups_count, groupsExists, purchase, purchase_count, purchaseExists, service, service_count, serviceExists, user, user_count, userExists, customer, customer_count, customerExists, explorer_item, explorer_item_count, explorer_itemExists, explorer_item.groups, explorer_item.ai_question_history, purchase.waiting_invoice_payment, purchase.recurrence, ocr, ocr_count, ocrExists, ocr.pages, active_challenge, active_challenge_count, active_challengeExists, challenges, challenges_count, challengesExists, originated_from, originated_from_count, originated_fromExists" example: null - in: query name: append description: "Propriedades disponíveis para incluir na resposta. Múltiplas devem ser separadas com vírgula. \n Disponíveis: ai_service_name, refundable, result_details, explorer_item.file, has_ai_extracted_data, has_ai_analysis_pending, explorer_item_id, ai_service_name, refundable, refundable_value, purchase.downloadable_orders_ids, place_order_default_values, is_expired, can_be_downloaded, explorer_item.ai_enrich_data_available, explorer_item.depends_on_ocr_to_request_ai, previous_order_id_same_purchase, next_order_id_same_purchase, purchase.orders_count, index_in_purchase, can_accept_additional_information, times_downloaded, explorer_item.ai_data, is_summary_extraction_queued, is_get_ai_answers_queued, originated_from_backoffice_code, explorer_item.ai_model_name" example: null required: false schema: type: string description: "Propriedades disponíveis para incluir na resposta. Múltiplas devem ser separadas com vírgula. \n Disponíveis: ai_service_name, refundable, result_details, explorer_item.file, has_ai_extracted_data, has_ai_analysis_pending, explorer_item_id, ai_service_name, refundable, refundable_value, purchase.downloadable_orders_ids, place_order_default_values, is_expired, can_be_downloaded, explorer_item.ai_enrich_data_available, explorer_item.depends_on_ocr_to_request_ai, previous_order_id_same_purchase, next_order_id_same_purchase, purchase.orders_count, index_in_purchase, can_accept_additional_information, times_downloaded, explorer_item.ai_data, is_summary_extraction_queued, is_get_ai_answers_queued, originated_from_backoffice_code, explorer_item.ai_model_name" example: null - in: query name: filter description: "Campos disponíveis para filtrar. Ex: filter[nome_campo]=valor ou filter[nome_campo]=valor1,valor2. \n Disponíveis: id, register, result, name_or_id_or_register, placed_between, valid_until_between, status, service_id, group_id, user_id, purchase.recurrence_id, ai, purchase_id, ocr_content, expired, has_active_challenge, recurrence_generated, has_extracted_summary, originated_from_id, person_document, detailed_service_data.modelo_ia_id" example: null required: false schema: type: 'string[]' description: "Campos disponíveis para filtrar. Ex: filter[nome_campo]=valor ou filter[nome_campo]=valor1,valor2. \n Disponíveis: id, register, result, name_or_id_or_register, placed_between, valid_until_between, status, service_id, group_id, user_id, purchase.recurrence_id, ai, purchase_id, ocr_content, expired, has_active_challenge, recurrence_generated, has_extracted_summary, originated_from_id, person_document, detailed_service_data.modelo_ia_id" example: null responses: 200: description: '' content: application/json: schema: type: object example: id: 1 backoffice_code: '6620985' purchase_id: 484 status: creating user_id: 918 customer_id: 379 service_id: 553 name: 'Joaquin Solano' register: exemplo person_document: exemplo result: positive location_info: [] placed_at: '2026-10-02T20:24:12.502346Z' detailed_service_data: [] custom_fields: [] verification_code: cq-7965 estimated_at: '2026-10-02T20:24:12.502590Z' finished_at: '2026-10-02T20:24:12.502648Z' status_details: 'Et alias iste voluptas at asperiores quasi iste quae.' annotations: 'Eaque expedita dolore deleniti et consequuntur id.' backoffice_detailed_service_fulfillment_data: [] total_cost: 196.43 total_estimated_cost_postpaid_customer: 1.5 included_in_plan: 1 provider_fee: 1.5 file_preview_url: 'http://www.pacheco.com.br/expedita-rerum-explicabo-consequatur-magni' comments: exemplo valid_until: '2026-10-02' originated_from_id: 222 auto_purchase_certificate_from_result_positive: true auto_purchase_certificate_from_result_negative: true last_status_change_at: '2026-10-02T20:24:12.503456Z' created_at: '2026-10-02T20:24:12.503531Z' updated_at: '2026-10-02T20:24:12.503569Z' imported_at: '2026-10-02T20:24:12.503610Z' extracted_summary: [] recurrence_item_id: 536 is_chain_complete: true file_id_vector_store: exemplo backoffice_hash: exemplo automatic_purchase_observations: exemplo properties: id: type: integer example: 1 backoffice_code: type: string example: '6620985' purchase_id: type: integer example: 484 status: type: string example: creating user_id: type: integer example: 918 customer_id: type: integer example: 379 service_id: type: integer example: 553 name: type: string example: 'Joaquin Solano' register: type: string example: exemplo person_document: type: string example: exemplo result: type: string example: positive location_info: type: array example: [] placed_at: type: string example: '2026-10-02T20:24:12.502346Z' detailed_service_data: type: array example: [] custom_fields: type: array example: [] verification_code: type: string example: cq-7965 estimated_at: type: string example: '2026-10-02T20:24:12.502590Z' finished_at: type: string example: '2026-10-02T20:24:12.502648Z' status_details: type: string example: 'Et alias iste voluptas at asperiores quasi iste quae.' annotations: type: string example: 'Eaque expedita dolore deleniti et consequuntur id.' backoffice_detailed_service_fulfillment_data: type: array example: [] total_cost: type: number example: 196.43 total_estimated_cost_postpaid_customer: type: number example: 1.5 included_in_plan: type: integer example: 1 provider_fee: type: number example: 1.5 file_preview_url: type: string example: 'http://www.pacheco.com.br/expedita-rerum-explicabo-consequatur-magni' comments: type: string example: exemplo valid_until: type: string example: '2026-10-02' originated_from_id: type: integer example: 222 auto_purchase_certificate_from_result_positive: type: boolean example: true auto_purchase_certificate_from_result_negative: type: boolean example: true last_status_change_at: type: string example: '2026-10-02T20:24:12.503456Z' created_at: type: string example: '2026-10-02T20:24:12.503531Z' updated_at: type: string example: '2026-10-02T20:24:12.503569Z' imported_at: type: string example: '2026-10-02T20:24:12.503610Z' extracted_summary: type: array example: [] recurrence_item_id: type: integer example: 536 is_chain_complete: type: boolean example: true file_id_vector_store: type: string example: exemplo backoffice_hash: type: string example: exemplo automatic_purchase_observations: type: string example: exemplo tags: - 'Itens de compra' parameters: - in: path name: id description: 'The ID of the order.' example: 0-9 required: true schema: type: integer '/orders/{id}/result-details': get: summary: 'Filtrar e paginar os resultados detalhados de um pedido' operationId: filtrarEPaginarOsResultadosDetalhadosDeUmPedido description: '' parameters: - in: query name: include description: "Relações disponíveis para incluir na resposta. Múltiplas devem ser separadas com vírgula. \n Disponíveis: groups, groups_count, groupsExists, purchase, purchase_count, purchaseExists, service, service_count, serviceExists, user, user_count, userExists, customer, customer_count, customerExists, explorer_item, explorer_item_count, explorer_itemExists, explorer_item.groups, explorer_item.ai_question_history, purchase.waiting_invoice_payment, purchase.recurrence, ocr, ocr_count, ocrExists, ocr.pages, active_challenge, active_challenge_count, active_challengeExists, challenges, challenges_count, challengesExists, originated_from, originated_from_count, originated_fromExists" example: null required: false schema: type: string description: "Relações disponíveis para incluir na resposta. Múltiplas devem ser separadas com vírgula. \n Disponíveis: groups, groups_count, groupsExists, purchase, purchase_count, purchaseExists, service, service_count, serviceExists, user, user_count, userExists, customer, customer_count, customerExists, explorer_item, explorer_item_count, explorer_itemExists, explorer_item.groups, explorer_item.ai_question_history, purchase.waiting_invoice_payment, purchase.recurrence, ocr, ocr_count, ocrExists, ocr.pages, active_challenge, active_challenge_count, active_challengeExists, challenges, challenges_count, challengesExists, originated_from, originated_from_count, originated_fromExists" example: null - in: query name: append description: "Propriedades disponíveis para incluir na resposta. Múltiplas devem ser separadas com vírgula. \n Disponíveis: ai_service_name, refundable, result_details, explorer_item.file, has_ai_extracted_data, has_ai_analysis_pending, explorer_item_id, ai_service_name, refundable, refundable_value, purchase.downloadable_orders_ids, place_order_default_values, is_expired, can_be_downloaded, explorer_item.ai_enrich_data_available, explorer_item.depends_on_ocr_to_request_ai, previous_order_id_same_purchase, next_order_id_same_purchase, purchase.orders_count, index_in_purchase, can_accept_additional_information, times_downloaded, explorer_item.ai_data, is_summary_extraction_queued, is_get_ai_answers_queued, originated_from_backoffice_code, explorer_item.ai_model_name" example: null required: false schema: type: string description: "Propriedades disponíveis para incluir na resposta. Múltiplas devem ser separadas com vírgula. \n Disponíveis: ai_service_name, refundable, result_details, explorer_item.file, has_ai_extracted_data, has_ai_analysis_pending, explorer_item_id, ai_service_name, refundable, refundable_value, purchase.downloadable_orders_ids, place_order_default_values, is_expired, can_be_downloaded, explorer_item.ai_enrich_data_available, explorer_item.depends_on_ocr_to_request_ai, previous_order_id_same_purchase, next_order_id_same_purchase, purchase.orders_count, index_in_purchase, can_accept_additional_information, times_downloaded, explorer_item.ai_data, is_summary_extraction_queued, is_get_ai_answers_queued, originated_from_backoffice_code, explorer_item.ai_model_name" example: null - in: query name: filter description: "Campos disponíveis para filtrar. Ex: filter[nome_campo]=valor ou filter[nome_campo]=valor1,valor2. \n Disponíveis: id, register, result, name_or_id_or_register, placed_between, valid_until_between, status, service_id, group_id, user_id, purchase.recurrence_id, ai, purchase_id, ocr_content, expired, has_active_challenge, recurrence_generated, has_extracted_summary, originated_from_id, person_document, detailed_service_data.modelo_ia_id" example: null required: false schema: type: 'string[]' description: "Campos disponíveis para filtrar. Ex: filter[nome_campo]=valor ou filter[nome_campo]=valor1,valor2. \n Disponíveis: id, register, result, name_or_id_or_register, placed_between, valid_until_between, status, service_id, group_id, user_id, purchase.recurrence_id, ai, purchase_id, ocr_content, expired, has_active_challenge, recurrence_generated, has_extracted_summary, originated_from_id, person_document, detailed_service_data.modelo_ia_id" example: null responses: {} tags: - 'Itens de compra' parameters: - in: path name: id description: 'The ID of the order.' example: 0-9 required: true schema: type: integer '/orders/{order_id}/name': patch: summary: 'Renomear um item de compra' operationId: renomearUmItemDeCompra description: '' parameters: [] responses: {} tags: - 'Itens de compra' requestBody: required: true content: application/json: schema: type: object properties: name: type: string description: 'Não pode ser superior a 120 caracteres.' example: 'Demian Alcantara' required: - name parameters: - in: path name: order_id description: 'The ID of the order.' example: 10 required: true schema: type: integer '/orders/{order_id}/cancel': post: summary: 'Cancelar um item de compra' operationId: cancelarUmItemDeCompra description: '' parameters: [] responses: {} tags: - 'Itens de compra' parameters: - in: path name: order_id description: 'The ID of the order.' example: 10 required: true schema: type: integer '/orders/{order_id}/groups': put: summary: 'Associa grupos a um item de compra' operationId: associaGruposAUmItemDeCompra description: '' parameters: [] responses: {} tags: - 'Itens de compra' requestBody: required: false content: application/json: schema: type: object properties: groups_ids: type: array description: '' example: - 354 - 970 items: type: integer parameters: - in: path name: order_id description: 'The ID of the order.' example: 10 required: true schema: type: integer '/orders/{order_id}/annotation': patch: summary: 'Altera as anotações de um item de compra' operationId: alteraAsAnotaesDeUmItemDeCompra description: '' parameters: [] responses: {} tags: - 'Itens de compra' requestBody: required: true content: application/json: schema: type: object properties: annotations: type: string description: 'Não pode ser superior a 60000 caracteres.' example: 'Molestiae optio sed ut aliquam tenetur quia.' required: - annotations parameters: - in: path name: order_id description: 'The ID of the order.' example: 10 required: true schema: type: integer '/orders/{order_id}/refund': post: summary: 'Cancelar um item de uma compra' operationId: cancelarUmItemDeUmaCompra description: '' parameters: [] responses: {} tags: - 'Itens de compra' parameters: - in: path name: order_id description: 'The ID of the order.' example: 10 required: true schema: type: integer '/orders/{order_id}/share': post: summary: 'Compartilha um item de compra para ser acessado por uma pessoa que não possui um usuário na plataforma' operationId: compartilhaUmItemDeCompraParaSerAcessadoPorUmaPessoaQueNoPossuiUmUsurioNaPlataforma description: '' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: order_id: 961 shared_by_user_id: 390 expiration_at: '2026-10-02T20:24:12.611310Z' via: link generated_link: exemplo destination_email: matias.luna@example.org created_at: '2026-10-02T20:24:12.611660Z' updated_at: '2026-10-02T20:24:12.611729Z' properties: order_id: type: integer example: 961 shared_by_user_id: type: integer example: 390 expiration_at: type: string example: '2026-10-02T20:24:12.611310Z' via: type: string example: link generated_link: type: string example: exemplo destination_email: type: string example: matias.luna@example.org created_at: type: string example: '2026-10-02T20:24:12.611660Z' updated_at: type: string example: '2026-10-02T20:24:12.611729Z' tags: - 'Itens de compra' requestBody: required: true content: application/json: schema: type: object properties: via: type: string description: '' example: link enum: - link - whatsapp - email destination_email: type: string description: 'Este campo é obrigatório quando via for email. Deve ser um endereço de e-mail válido.' example: renato.sandoval@example.com nullable: true required: - via parameters: - in: path name: order_id description: 'The ID of the order.' example: 10 required: true schema: type: integer '/orders/shared/{token}': get: summary: 'Visualiza um item de compra compartilhado' operationId: visualizaUmItemDeCompraCompartilhado description: '' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: file_path: exemplo download_name: exemplo properties: file_path: type: string example: exemplo download_name: type: string example: exemplo tags: - 'Itens de compra' parameters: - in: path name: token description: 'O token de compartilhamento' example: 00xGuH88g182Q3efZdBrblBzdF2xNeBmAV required: true schema: type: string '/orders/{ids}/download': get: summary: 'Faz download dos arquivos de um (.pdf) ou múltiplos itens de compra (.zip).' operationId: fazDownloadDosArquivosDeUmpdfOuMltiplosItensDeComprazip description: '' parameters: [] responses: {} tags: - 'Itens de compra' requestBody: required: false content: application/json: schema: type: object properties: group_by: type: string description: '' example: purchase enum: - purchase - register parameters: - in: path name: ids description: '' example: '123,456,789' required: true schema: type: string '/orders/{order_id}/problem': post: summary: 'Reporta um problema, relacionado a este item de compra, por email para nossa equipe' operationId: reportaUmProblemaRelacionadoAEsteItemDeCompraPorEmailParaNossaEquipe description: '' parameters: [] responses: {} tags: - 'Itens de compra' requestBody: required: false content: application/json: schema: type: object properties: subject: type: string description: 'Não pode ser superior a 75 caracteres.' example: 'Quaerat at optio.' description: type: string description: 'Não pode ser superior a 32000 caracteres.' example: 'Aliquam pariatur cumque non et sequi quam nulla.' parameters: - in: path name: order_id description: 'The ID of the order.' example: 10 required: true schema: type: integer '/orders/{order_id}/additional-information': post: summary: 'Adicionar informações adicionais a um item de compra' operationId: adicionarInformaesAdicionaisAUmItemDeCompra description: '' parameters: [] responses: {} tags: - 'Itens de compra' requestBody: required: true content: application/json: schema: type: object properties: description: type: string description: 'Não pode ser superior a 2000 caracteres.' example: 'Ut quis voluptatum et.' files: type: array description: 'Não pode ser superior a 71680 caracteres.' example: - exemplo items: type: string required: - description - files parameters: - in: path name: order_id description: 'The ID of the order.' example: 10 required: true schema: type: integer /orders/temp-file: post: summary: 'Faz upload de um arquivo temporário para ser usado posteriormente em um item de compra' operationId: fazUploadDeUmArquivoTemporrioParaSerUsadoPosteriormenteEmUmItemDeCompra description: 'Os caminhos dos arquivos são retornados na mesma ordem de envio' parameters: [] responses: {} tags: - 'Itens de compra' requestBody: required: true content: multipart/form-data: schema: type: object properties: files: type: array description: 'Deve ser um arquivo. Não pode ser superior a 70000 kilobytes.' items: type: string format: binary required: - files '/orders/{order_id}/valid-until': patch: summary: 'Alterar a data de validade de um item de compra' operationId: alterarADataDeValidadeDeUmItemDeCompra description: '' parameters: [] responses: {} tags: - 'Itens de compra' requestBody: required: false content: application/json: schema: type: object properties: valid_until: type: string description: 'Deve ser uma data válida no formato Y-m-d.' example: '1986-10-05' nullable: true parameters: - in: path name: order_id description: 'The ID of the order.' example: 10 required: true schema: type: integer '/orders/{order_id}/detailed-progress': get: summary: 'Visualizar os detalhes do progresso de um item de compra' operationId: visualizarOsDetalhesDoProgressoDeUmItemDeCompra description: '' parameters: [] responses: {} tags: - 'Itens de compra' parameters: - in: path name: order_id description: 'The ID of the order.' example: 10 required: true schema: type: integer '/orders/{order_id}/attached-files': get: summary: 'Listar os links dos arquivos anexados ao pedido' operationId: listarOsLinksDosArquivosAnexadosAoPedido description: '' parameters: [] responses: {} tags: - 'Itens de compra' parameters: - in: path name: order_id description: 'The ID of the order.' example: 10 required: true schema: type: integer '/orders/{order_id}/summary': get: summary: 'Extrai a ficha do item de compra' operationId: extraiAFichaDoItemDeCompra description: '' parameters: [] responses: {} tags: - 'Itens de compra' parameters: - in: path name: order_id description: 'The ID of the order.' example: 10 required: true schema: type: integer /orders/similar: put: summary: 'Retorna o item de compra mais recente com os mesmos dados enviados para verificar se já existe um item similar' operationId: retornaOItemDeCompraMaisRecenteComOsMesmosDadosEnviadosParaVerificarSeJExisteUmItemSimilar description: '' parameters: [] responses: {} tags: - 'Itens de compra' requestBody: required: true content: application/json: schema: type: object properties: service_id: type: integer description: 'O ID do serviço. Consulte em link' example: 834 detailed_service_data: type: object description: ' Os dados específicos do serviço vão dentro deste objeto. Consulte em link' example: [] properties: {} required: - service_id - detailed_service_data /orders/similars: put: summary: 'Retorna os pedidos similares' operationId: retornaOsPedidosSimilares description: 'Retorna um array de objetos, na mesma ordem, com o campo most_recent_similar_order, dos itens enviados no payload, indicando se existem pedidos similares' parameters: [] responses: {} tags: - 'Itens de compra' requestBody: required: true content: application/json: schema: type: object properties: detailed_services_data: type: array description: 'Deve ter pelo menos 1 item.' example: - [] items: type: object properties: detailed_service_data: type: object description: 'Os dados específicos do serviço vão dentro deste objeto. Consulte em link' example: null properties: {} service_id: type: integer description: 'Must match an existing stored value.' example: 696 required: - detailed_service_data - service_id required: - detailed_services_data '/orders/{order_id}/history': get: summary: 'Visualizar o histórico detalhado de um item de compra' operationId: visualizarOHistricoDetalhadoDeUmItemDeCompra description: '' parameters: [] responses: {} tags: - 'Itens de compra' parameters: - in: path name: order_id description: 'The ID of the order.' example: 10 required: true schema: type: integer '/purchases/{purchase_id}/groups': put: summary: 'Associa grupos a todos os itens de uma compra' operationId: associaGruposATodosOsItensDeUmaCompra description: '' parameters: [] responses: {} tags: - 'Itens de compra' requestBody: required: false content: application/json: schema: type: object properties: groups_ids: type: array description: '' example: - 123 - 283 items: type: integer parameters: - in: path name: purchase_id description: 'The ID of the purchase.' example: 10 required: true schema: type: integer '/company-relationship-map/company/{cnpj}': get: summary: '' operationId: getCompanyRelationshipMapCompanyCnpj description: '' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: cnpj: '23615926000197' corporate_name: "D'ávila Comercial Ltda." trade_name: exemplo registration_status: exemplo main_activity_code: vk-0190 main_activity_description: exemplo federative_unit_abbr: exemplo city: "Tessália d'Oeste" social_capital: exemplo legal_nature: exemplo size: exemplo opening_date: '1973-06-07' emails: [] partners: exemplo properties: cnpj: type: string example: '23615926000197' corporate_name: type: string example: "D'ávila Comercial Ltda." trade_name: type: string example: exemplo registration_status: type: string example: exemplo main_activity_code: type: string example: vk-0190 main_activity_description: type: string example: exemplo federative_unit_abbr: type: string example: exemplo city: type: string example: "Tessália d'Oeste" social_capital: type: string example: exemplo legal_nature: type: string example: exemplo size: type: string example: exemplo opening_date: type: string example: '1973-06-07' emails: type: array example: [] partners: type: string example: exemplo tags: - 'Mapa de relacionamentos de empresas' parameters: - in: path name: cnpj description: '' example: '24979227000199' required: true schema: type: string '/company-relationship-map/company/{cnpj}/graph': get: summary: '' operationId: getCompanyRelationshipMapCompanyCnpjGraph description: '' parameters: - in: query name: layers description: 'Profundidade da expansão. Cada camada traz vínculos indiretos (sócios das empresas, outras empresas dos sócios, etc). Mínimo 1, máximo 3. Padrão: 1.' example: 1 required: false schema: type: integer description: 'Profundidade da expansão. Cada camada traz vínculos indiretos (sócios das empresas, outras empresas dos sócios, etc). Mínimo 1, máximo 3. Padrão: 1.' example: 1 responses: 200: description: '' content: application/json: schema: type: object example: nodes: [] edges: [] properties: nodes: type: array example: [] edges: type: array example: [] tags: - 'Mapa de relacionamentos de empresas' requestBody: required: false content: application/json: schema: type: object properties: layers: type: integer description: 'Deve ser pelo menos 1. Não pode ser superior a 3.' example: 2 nullable: true parameters: - in: path name: cnpj description: '' example: '10548777000149' required: true schema: type: string '/company-relationship-map/person/{cpf}/graph': get: summary: '' operationId: getCompanyRelationshipMapPersonCpfGraph description: '' parameters: - in: query name: layers description: 'Profundidade da expansão. Cada camada traz vínculos indiretos (sócios das empresas, outras empresas dos sócios, etc). Mínimo 1, máximo 3. Padrão: 1.' example: 1 required: false schema: type: integer description: 'Profundidade da expansão. Cada camada traz vínculos indiretos (sócios das empresas, outras empresas dos sócios, etc). Mínimo 1, máximo 3. Padrão: 1.' example: 1 responses: 200: description: '' content: application/json: schema: type: object example: nodes: [] edges: [] properties: nodes: type: array example: [] edges: type: array example: [] tags: - 'Mapa de relacionamentos de empresas' requestBody: required: false content: application/json: schema: type: object properties: layers: type: integer description: 'Deve ser pelo menos 1. Não pode ser superior a 3.' example: 2 nullable: true parameters: - in: path name: cpf description: '' example: '48604454578' required: true schema: type: string '/company-relationship-map/person/{cpf}/companies': get: summary: 'Retorna a(s) pessoa(s) associada(s) a um CPF (ou miolo) e as empresas em que participam, direto da base da Receita, sem custo de enriquecimento.' operationId: retornaAsPessoasAssociadasAUmCPFouMioloEAsEmpresasEmQueParticipamDiretoDaBaseDaReceitaSemCustoDeEnriquecimento description: '' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: cpf_core: exemplo total: 1 notice: exemplo people: exemplo properties: cpf_core: type: string example: exemplo total: type: integer example: 1 notice: type: string example: exemplo people: type: string example: exemplo tags: - 'Mapa de relacionamentos de empresas' parameters: - in: path name: cpf description: '' example: '38178579693' required: true schema: type: string /company-relationship-map/person/by-node: get: summary: 'Enriquece os dados de uma pessoa a partir de um nó do grafo (id do nó + CNPJ de origem), resolvendo a identidade na fonte complementar.' operationId: enriqueceOsDadosDeUmaPessoaAPartirDeUmNDoGrafoidDoN+CNPJDeOrigemResolvendoAIdentidadeNaFonteComplementar description: '' parameters: - in: query name: node_id description: 'ID interno do nó de pessoa, como veio do grafo/busca.' example: 'PF_***331209**-CARLOS M. VIEIRA' required: false schema: type: string description: 'ID interno do nó de pessoa, como veio do grafo/busca.' example: 'PF_***331209**-CARLOS M. VIEIRA' - in: query name: cnpj_origin description: 'CNPJ em que a pessoa aparece como sócia (origem da resolução).' example: '44555666000190' required: false schema: type: string description: 'CNPJ em que a pessoa aparece como sócia (origem da resolução).' example: '44555666000190' responses: 200: description: '' content: application/json: schema: type: object example: state: enriched message: 'Odio quod corrupti voluptatem sed ratione in.' package: identification: name: 'Dr. Elias Ferraz Cordeiro Filho' cpf_status: exemplo age: 1 contacts: phones: [] emails: [] addresses: [] related_people: exemplo links: exemplo cpf_masked: exemplo cpf_unmasked: exemplo enriched_at: '1984-10-29' cache: true person_key: exemplo can_reveal: true properties: state: type: string example: enriched message: type: string example: 'Odio quod corrupti voluptatem sed ratione in.' package: type: object properties: identification: type: object properties: name: type: string example: 'Dr. Elias Ferraz Cordeiro Filho' cpf_status: type: string example: exemplo age: type: integer example: 1 contacts: type: object properties: phones: type: array example: [] emails: type: array example: [] addresses: type: array example: [] related_people: type: string example: exemplo links: type: string example: exemplo cpf_masked: type: string example: exemplo cpf_unmasked: type: string example: exemplo enriched_at: type: string example: '1984-10-29' cache: type: boolean example: true person_key: type: string example: exemplo can_reveal: type: boolean example: true tags: - 'Mapa de relacionamentos de empresas' requestBody: required: true content: application/json: schema: type: object properties: node_id: type: string description: 'Must match the regex /\^PF_\.\+/\.' example: 586 cnpj_origin: type: string description: '' example: exemplo required: - node_id - cnpj_origin '/company-relationship-map/person/{cpf}': get: summary: 'Enriquece os dados de uma pessoa a partir do CPF completo (contatos, idade, situação do CPF, pessoas relacionadas e vínculos).' operationId: enriqueceOsDadosDeUmaPessoaAPartirDoCPFCompletocontatosIdadeSituaoDoCPFPessoasRelacionadasEVnculos description: '' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: state: enriched message: 'Unde ipsum illum ab deserunt.' package: identification: name: 'Ricardo Lovato Santana Jr.' cpf_status: exemplo age: 1 contacts: phones: [] emails: [] addresses: [] related_people: exemplo links: exemplo cpf_masked: exemplo cpf_unmasked: exemplo enriched_at: '1997-02-10' cache: true person_key: exemplo can_reveal: true properties: state: type: string example: enriched message: type: string example: 'Unde ipsum illum ab deserunt.' package: type: object properties: identification: type: object properties: name: type: string example: 'Ricardo Lovato Santana Jr.' cpf_status: type: string example: exemplo age: type: integer example: 1 contacts: type: object properties: phones: type: array example: [] emails: type: array example: [] addresses: type: array example: [] related_people: type: string example: exemplo links: type: string example: exemplo cpf_masked: type: string example: exemplo cpf_unmasked: type: string example: exemplo enriched_at: type: string example: '1997-02-10' cache: type: boolean example: true person_key: type: string example: exemplo can_reveal: type: boolean example: true tags: - 'Mapa de relacionamentos de empresas' parameters: - in: path name: cpf description: '' example: '52576962319' required: true schema: type: string '/company-relationship-map/graph/node/{nodeId}/expand': get: summary: '' operationId: getCompanyRelationshipMapGraphNodeNodeIdExpand description: '' parameters: - in: query name: layers description: 'Profundidade da expansão. Cada camada traz vínculos indiretos. Mínimo 1, máximo 3. Padrão: 1.' example: 1 required: false schema: type: integer description: 'Profundidade da expansão. Cada camada traz vínculos indiretos. Mínimo 1, máximo 3. Padrão: 1.' example: 1 responses: 200: description: '' content: application/json: schema: type: object example: nodes: [] edges: [] properties: nodes: type: array example: [] edges: type: array example: [] tags: - 'Mapa de relacionamentos de empresas' requestBody: required: false content: application/json: schema: type: object properties: layers: type: integer description: 'Deve ser pelo menos 1. Não pode ser superior a 3.' example: 2 nullable: true parameters: - in: path name: nodeId description: '' example: 10 required: true schema: type: string /company-relationship-map/search: get: summary: '' operationId: getCompanyRelationshipMapSearch description: '' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: results: [] properties: results: type: array example: [] tags: - 'Mapa de relacionamentos de empresas' requestBody: required: true content: application/json: schema: type: object properties: query: type: string description: 'Deve ter pelo menos 2 caracteres.' example: maxime type: type: string description: '' example: company enum: - company - person nullable: true situation: type: string description: '' example: active enum: - active - closed nullable: true required: - query /explorer: get: summary: 'Lista os itens de meus arquivos' operationId: listaOsItensDeMeusArquivos description: '' parameters: - in: query name: page description: 'a página desejada' example: 1 required: false schema: type: integer description: 'a página desejada' example: 1 - in: query name: per-page description: 'quantidade de registros por página (padrão é 20, máx 30)' example: 10 required: false schema: type: integer description: 'quantidade de registros por página (padrão é 20, máx 30)' example: 10 - in: query name: include description: "Relações disponíveis para incluir na resposta. Múltiplas devem ser separadas com vírgula. \n Disponíveis: order, order_count, orderExists, owner, owner_count, ownerExists, customer, customer_count, customerExists, order.service, service, service_count, serviceExists, groups, groups_count, groupsExists, children, children_count, childrenExists, children.service, children.owner, parent, parent_count, parentExists, ocr, ocr_count, ocrExists, ocr.pages" example: null required: false schema: type: string description: "Relações disponíveis para incluir na resposta. Múltiplas devem ser separadas com vírgula. \n Disponíveis: order, order_count, orderExists, owner, owner_count, ownerExists, customer, customer_count, customerExists, order.service, service, service_count, serviceExists, groups, groups_count, groupsExists, children, children_count, childrenExists, children.service, children.owner, parent, parent_count, parentExists, ocr, ocr_count, ocrExists, ocr.pages" example: null - in: query name: append description: "Propriedades disponíveis para incluir na resposta. Múltiplas devem ser separadas com vírgula. \n Disponíveis: file, breadcrumb, ai_data, ai_model_name, ai_enrich_data_available, depends_on_ocr_to_request_ai" example: null required: false schema: type: string description: "Propriedades disponíveis para incluir na resposta. Múltiplas devem ser separadas com vírgula. \n Disponíveis: file, breadcrumb, ai_data, ai_model_name, ai_enrich_data_available, depends_on_ocr_to_request_ai" example: null - in: query name: sort description: "Campos disponíveis para ordenação. Para ordenar decrescentemente use o sinal de - antes do nome do campo Ex: -nome_campo. \n Múltiplos devem ser separadas com vírgula. Disponíveis: id, created_at, last_operation_at, name, type" example: null required: false schema: type: string description: "Campos disponíveis para ordenação. Para ordenar decrescentemente use o sinal de - antes do nome do campo Ex: -nome_campo. \n Múltiplos devem ser separadas com vírgula. Disponíveis: id, created_at, last_operation_at, name, type" example: null - in: query name: filter description: "Campos disponíveis para filtrar. Ex: filter[nome_campo]=valor ou filter[nome_campo]=valor1,valor2. \n Disponíveis: type, owner_id, name, exact_name, created_between, group_id, ai, service_id, parent_id" example: null required: false schema: type: 'string[]' description: "Campos disponíveis para filtrar. Ex: filter[nome_campo]=valor ou filter[nome_campo]=valor1,valor2. \n Disponíveis: type, owner_id, name, exact_name, created_between, group_id, ai, service_id, parent_id" example: null responses: {} tags: - 'Meus arquivos' '/explorer/{id}': get: summary: 'Visualizar um item dos meus arquivos' operationId: visualizarUmItemDosMeusArquivos description: '' parameters: - in: query name: include description: "Relações disponíveis para incluir na resposta. Múltiplas devem ser separadas com vírgula. \n Disponíveis: order, order_count, orderExists, owner, owner_count, ownerExists, customer, customer_count, customerExists, order.service, service, service_count, serviceExists, groups, groups_count, groupsExists, children, children_count, childrenExists, children.service, children.owner, parent, parent_count, parentExists, ocr, ocr_count, ocrExists, ocr.pages" example: null required: false schema: type: string description: "Relações disponíveis para incluir na resposta. Múltiplas devem ser separadas com vírgula. \n Disponíveis: order, order_count, orderExists, owner, owner_count, ownerExists, customer, customer_count, customerExists, order.service, service, service_count, serviceExists, groups, groups_count, groupsExists, children, children_count, childrenExists, children.service, children.owner, parent, parent_count, parentExists, ocr, ocr_count, ocrExists, ocr.pages" example: null - in: query name: append description: "Propriedades disponíveis para incluir na resposta. Múltiplas devem ser separadas com vírgula. \n Disponíveis: file, breadcrumb, ai_data, ai_model_name, ai_enrich_data_available, depends_on_ocr_to_request_ai" example: null required: false schema: type: string description: "Propriedades disponíveis para incluir na resposta. Múltiplas devem ser separadas com vírgula. \n Disponíveis: file, breadcrumb, ai_data, ai_model_name, ai_enrich_data_available, depends_on_ocr_to_request_ai" example: null responses: 200: description: '' content: application/json: schema: type: object example: id: 1 owner_id: 420 customer_id: 101 parent_id: 767 order_id: 151 name: 'Sra. Dirce Camacho' created_at: '2026-10-02T20:24:12.054952Z' type: folder last_operation_at: '2026-10-02T20:24:12.055356Z' file_size_bytes: 1 ocr_requested_at: '2026-10-02T20:24:12.055525Z' service_id: 684 ai_input_type: file ai_request_pending: true updated_at: '2026-10-02T20:24:12.055799Z' ocr_failed: true ocr_available: true file_id_vector_store: exemplo properties: id: type: integer example: 1 owner_id: type: integer example: 420 customer_id: type: integer example: 101 parent_id: type: integer example: 767 order_id: type: integer example: 151 name: type: string example: 'Sra. Dirce Camacho' created_at: type: string example: '2026-10-02T20:24:12.054952Z' type: type: string example: folder last_operation_at: type: string example: '2026-10-02T20:24:12.055356Z' file_size_bytes: type: integer example: 1 ocr_requested_at: type: string example: '2026-10-02T20:24:12.055525Z' service_id: type: integer example: 684 ai_input_type: type: string example: file ai_request_pending: type: boolean example: true updated_at: type: string example: '2026-10-02T20:24:12.055799Z' ocr_failed: type: boolean example: true ocr_available: type: boolean example: true file_id_vector_store: type: string example: exemplo tags: - 'Meus arquivos' parameters: - in: path name: id description: 'The ID of the explorer.' example: 0-9 required: true schema: type: string '/explorer/{explorerItem_id}/groups': put: summary: 'Associa grupos a um item de meus arquivos' operationId: associaGruposAUmItemDeMeusArquivos description: '' parameters: [] responses: {} tags: - 'Meus arquivos' requestBody: required: false content: application/json: schema: type: object properties: groups_ids: type: array description: '' example: - 730 - 450 items: type: integer parameters: - in: path name: explorerItem_id description: 'The ID of the explorerItem.' example: 10 required: true schema: type: integer '/explorer/{explorerItem_id}/service': patch: summary: 'Altera o serviço de um item de meus arquivos. Somente para itens do tipo upload' operationId: alteraOServioDeUmItemDeMeusArquivosSomenteParaItensDoTipoUpload description: '' parameters: [] responses: {} tags: - 'Meus arquivos' requestBody: required: false content: application/json: schema: type: object properties: service_id: type: integer description: 'Deve corresponder a um valor já cadastrado.' example: 842 nullable: true parameters: - in: path name: explorerItem_id description: 'The ID of the explorerItem.' example: 10 required: true schema: type: integer '/explorer/{explorerItem_id}/name': patch: summary: 'Renomear um item dos meus arquivos' operationId: renomearUmItemDosMeusArquivos description: '' parameters: [] responses: {} tags: - 'Meus arquivos' requestBody: required: true content: application/json: schema: type: object properties: name: type: string description: 'Não pode ser superior a 120 caracteres.' example: 'Sr. Ivan Cordeiro Filho' required: - name parameters: - in: path name: explorerItem_id description: 'The ID of the explorerItem.' example: 10 required: true schema: type: integer '/explorer/{explorerItem_id}': delete: summary: 'Excluir um item de meus arquivos' operationId: excluirUmItemDeMeusArquivos description: '' parameters: [] responses: {} tags: - 'Meus arquivos' parameters: - in: path name: explorerItem_id description: 'The ID of the explorerItem.' example: 10 required: true schema: type: integer '/explorer/{ids}/parent/root': patch: summary: 'Move um ou múltiplos itens de meus arquivos para dentro de uma pasta ou para a raíz' operationId: moveUmOuMltiplosItensDeMeusArquivosParaDentroDeUmaPastaOuParaARaz description: '' parameters: [] responses: {} tags: - 'Meus arquivos' parameters: - in: path name: ids description: '' example: '123,456,789' required: true schema: type: string '/explorer/{ids}/parent/{parent_id}': patch: summary: 'Move um ou múltiplos itens de meus arquivos para dentro de uma pasta ou para a raíz' operationId: moveUmOuMltiplosItensDeMeusArquivosParaDentroDeUmaPastaOuParaARaz description: '' parameters: [] responses: {} tags: - 'Meus arquivos' parameters: - in: path name: ids description: '' example: '123,456,789' required: true schema: type: string - in: path name: parent_id description: 'The ID of the parent.' example: 10 required: true schema: type: integer '/explorer/{type}': post: summary: 'Cria uma pasta' operationId: criaUmaPasta description: '' parameters: - in: query name: type description: ' Valor fixo: folder' example: uploaded_file required: true schema: type: string description: ' Valor fixo: folder' example: uploaded_file enum: - folder - order - uploaded_file - ai responses: 200: description: '' content: application/json: schema: type: object example: id: 1 owner_id: 615 customer_id: 468 parent_id: 963 order_id: 14 name: 'Nicolas Saito Faria' created_at: '2026-10-02T20:24:12.144370Z' type: folder last_operation_at: '2026-10-02T20:24:12.144541Z' file_size_bytes: 1 ocr_requested_at: '2026-10-02T20:24:12.144676Z' service_id: 540 ai_input_type: file ai_request_pending: true updated_at: '2026-10-02T20:24:12.144816Z' ocr_failed: true ocr_available: true file_id_vector_store: exemplo properties: id: type: integer example: 1 owner_id: type: integer example: 615 customer_id: type: integer example: 468 parent_id: type: integer example: 963 order_id: type: integer example: 14 name: type: string example: 'Nicolas Saito Faria' created_at: type: string example: '2026-10-02T20:24:12.144370Z' type: type: string example: folder last_operation_at: type: string example: '2026-10-02T20:24:12.144541Z' file_size_bytes: type: integer example: 1 ocr_requested_at: type: string example: '2026-10-02T20:24:12.144676Z' service_id: type: integer example: 540 ai_input_type: type: string example: file ai_request_pending: type: boolean example: true updated_at: type: string example: '2026-10-02T20:24:12.144816Z' ocr_failed: type: boolean example: true ocr_available: type: boolean example: true file_id_vector_store: type: string example: exemplo tags: - 'Meus arquivos' requestBody: required: true content: application/json: schema: type: object properties: name: type: string description: 'Não pode ser superior a 120 caracteres.' example: 'Dr. Naomi Louise Rios' required: - name parameters: - in: path name: type description: 'Valor fixo: folder' example: null required: true schema: type: string '/explorer/{ids}/download': get: summary: 'Faz download dos arquivos de um ou múltiplos itens de de meus arquivos (.zip).' operationId: fazDownloadDosArquivosDeUmOuMltiplosItensDeDeMeusArquivoszip description: '' parameters: - in: query name: groupBy description: ' Indica se arquivos .zip devem criar a estrutura baseada nos diretórios, compra ou no registro do item da compra.' example: directory required: false schema: type: string description: ' Indica se arquivos .zip devem criar a estrutura baseada nos diretórios, compra ou no registro do item da compra.' example: directory enum: - purchase - register - directory responses: {} tags: - 'Meus arquivos' requestBody: required: true content: application/json: schema: type: object properties: group_by: type: string description: '' example: purchase enum: - purchase - register - directory required: - group_by parameters: - in: path name: ids description: '' example: '123,456,789' required: true schema: type: string /explorer/upload: post: summary: 'Faz upload de arquivos para "Meus Arquivos"' operationId: fazUploadDeArquivosParaMeusArquivos description: '' parameters: [] responses: {} tags: - 'Meus arquivos' requestBody: required: true content: multipart/form-data: schema: type: object properties: files: type: array description: 'Não pode ser superior a 71680 caracteres.' example: - exemplo items: type: string parent_id: type: integer description: '' example: 873 nullable: true service_id: type: integer description: 'Deve corresponder a um valor já cadastrado.' example: 103 nullable: true groups_ids: type: array description: '' example: - 755 - 210 items: type: integer required: - files - groups_ids '/explorer/{explorerItem_id}/ai/models/{aiModelFromCustomerOrPublic}/answers': get: summary: 'Busca as respostas de IA para um item de meus arquivos usando um modelo específico.' operationId: buscaAsRespostasDeIAParaUmItemDeMeusArquivosUsandoUmModeloEspecfico description: Assincrono parameters: [] responses: {} tags: - 'Meus arquivos' parameters: - in: path name: explorerItem_id description: 'The ID of the explorerItem.' example: 10 required: true schema: type: integer - in: path name: aiModelFromCustomerOrPublic description: '' example: exemplo required: true schema: type: string /notifications: get: summary: 'Listar as notificações do usuário' operationId: listarAsNotificaesDoUsurio description: 'O retorno é paginado' parameters: - in: query name: page description: 'a página desejada' example: 1 required: false schema: type: integer description: 'a página desejada' example: 1 - in: query name: per-page description: 'quantidade de registros por página (padrão é 20, máx 30)' example: 10 required: false schema: type: integer description: 'quantidade de registros por página (padrão é 20, máx 30)' example: 10 - in: query name: sort description: "Campos disponíveis para ordenação. Para ordenar decrescentemente use o sinal de - antes do nome do campo Ex: -nome_campo. \n Múltiplos devem ser separadas com vírgula. Disponíveis: created_at" example: null required: false schema: type: string description: "Campos disponíveis para ordenação. Para ordenar decrescentemente use o sinal de - antes do nome do campo Ex: -nome_campo. \n Múltiplos devem ser separadas com vírgula. Disponíveis: created_at" example: null - in: query name: filter description: "Campos disponíveis para filtrar. Ex: filter[nome_campo]=valor ou filter[nome_campo]=valor1,valor2. \n Disponíveis: read, type" example: null required: false schema: type: 'string[]' description: "Campos disponíveis para filtrar. Ex: filter[nome_campo]=valor ou filter[nome_campo]=valor1,valor2. \n Disponíveis: read, type" example: null responses: {} tags: - Notificações /notifications/all/read: put: summary: 'Marca todas as notificações do usuário como lidas' operationId: marcaTodasAsNotificaesDoUsurioComoLidas description: '' parameters: [] responses: {} tags: - Notificações /notifications/all/unread: put: summary: 'Marca todas as notificações do usuário como não lidas' operationId: marcaTodasAsNotificaesDoUsurioComoNoLidas description: '' parameters: [] responses: {} tags: - Notificações '/notifications/{notifications}/read': put: summary: 'Marca uma notificação do usuário como lida' operationId: marcaUmaNotificaoDoUsurioComoLida description: '' parameters: [] responses: {} tags: - Notificações parameters: - in: path name: notifications description: '' example: exemplo required: true schema: type: string '/notifications/{notifications}/unread': put: summary: 'Marca uma notificação do usuário como não lida' operationId: marcaUmaNotificaoDoUsurioComoNoLida description: '' parameters: [] responses: {} tags: - Notificações parameters: - in: path name: notifications description: '' example: exemplo required: true schema: type: string /notifications/all: delete: summary: 'Excluir todas as notificações do usuário' operationId: excluirTodasAsNotificaesDoUsurio description: '' parameters: [] responses: {} tags: - Notificações '/notifications/{notifications}': delete: summary: 'Excluir notificações do usuário' operationId: excluirNotificaesDoUsurio description: '' parameters: [] responses: {} tags: - Notificações parameters: - in: path name: notifications description: '' example: exemplo required: true schema: type: string '/person-data-by-cpf/{cpf}': get: summary: 'Consulta dados de uma empresa pelo cnpj' operationId: consultaDadosDeUmaEmpresaPeloCnpj description: '' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: valid: true name: 'Srta. Manoela da Silva' gender: exemplo age: 1 mother_name: exemplo father_name: exemplo nationality: exemplo properties: valid: type: boolean example: true name: type: string example: 'Srta. Manoela da Silva' gender: type: string example: exemplo age: type: integer example: 1 mother_name: type: string example: exemplo father_name: type: string example: exemplo nationality: type: string example: exemplo tags: - Outros security: [] parameters: - in: path name: cpf description: '' example: '07684237241' required: true schema: type: string /health: get: summary: 'Indica se a API está disponível' operationId: indicaSeAAPIEstDisponvel description: '' parameters: [] responses: {} tags: - Outros security: [] /recurrences: get: summary: 'Listar as recorrências do cliente' operationId: listarAsRecorrnciasDoCliente description: 'O retorno é paginado' parameters: - in: query name: page description: 'a página desejada' example: 1 required: false schema: type: integer description: 'a página desejada' example: 1 - in: query name: per-page description: 'quantidade de registros por página (padrão é 20, máx 30)' example: 10 required: false schema: type: integer description: 'quantidade de registros por página (padrão é 20, máx 30)' example: 10 - in: query name: include description: "Relações disponíveis para incluir na resposta. Múltiplas devem ser separadas com vírgula. \n Disponíveis: items, items_count, itemsExists, owner, owner_count, ownerExists, items.order, groups, groups_count, groupsExists, customer, customer_count, customerExists" example: null required: false schema: type: string description: "Relações disponíveis para incluir na resposta. Múltiplas devem ser separadas com vírgula. \n Disponíveis: items, items_count, itemsExists, owner, owner_count, ownerExists, items.order, groups, groups_count, groupsExists, customer, customer_count, customerExists" example: null - in: query name: append description: "Propriedades disponíveis para incluir na resposta. Múltiplas devem ser separadas com vírgula. \n Disponíveis: purchases_ids, items.service_can_be_monitored" example: null required: false schema: type: string description: "Propriedades disponíveis para incluir na resposta. Múltiplas devem ser separadas com vírgula. \n Disponíveis: purchases_ids, items.service_can_be_monitored" example: null - in: query name: sort description: "Campos disponíveis para ordenação. Para ordenar decrescentemente use o sinal de - antes do nome do campo Ex: -nome_campo. \n Múltiplos devem ser separadas com vírgula. Disponíveis: id, name, created_at" example: null required: false schema: type: string description: "Campos disponíveis para ordenação. Para ordenar decrescentemente use o sinal de - antes do nome do campo Ex: -nome_campo. \n Múltiplos devem ser separadas com vírgula. Disponíveis: id, name, created_at" example: null - in: query name: filter description: "Campos disponíveis para filtrar. Ex: filter[nome_campo]=valor ou filter[nome_campo]=valor1,valor2. \n Disponíveis: name_or_id, owner_id, created_between" example: null required: false schema: type: 'string[]' description: "Campos disponíveis para filtrar. Ex: filter[nome_campo]=valor ou filter[nome_campo]=valor1,valor2. \n Disponíveis: name_or_id, owner_id, created_between" example: null responses: {} tags: - Recorrências post: summary: 'Criar uma recorrência' operationId: criarUmaRecorrncia description: '' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: id: 1 name: 'Sra. Sarah Serrano Azevedo Jr.' keep_original_groups_from_items: 1 starts_at: '2026-10-02' next_at: '2026-10-02' last_at: '2026-10-02' frequency: weekly monthly_day_of_month: 1 weekly_happens_on: [] yearly_month: 1 yearly_day: 1 owner_id: 859 customer_id: 785 active: true every_x_days_number_of_days: 1 specific_time: '14:30' created_at: '2026-10-02T20:24:13.035902Z' updated_at: '2026-10-02T20:24:13.036130Z' notify_result_changes_in_items: 1 properties: id: type: integer example: 1 name: type: string example: 'Sra. Sarah Serrano Azevedo Jr.' keep_original_groups_from_items: type: integer example: 1 starts_at: type: string example: '2026-10-02' next_at: type: string example: '2026-10-02' last_at: type: string example: '2026-10-02' frequency: type: string example: weekly monthly_day_of_month: type: integer example: 1 weekly_happens_on: type: array example: [] yearly_month: type: integer example: 1 yearly_day: type: integer example: 1 owner_id: type: integer example: 859 customer_id: type: integer example: 785 active: type: boolean example: true every_x_days_number_of_days: type: integer example: 1 specific_time: type: string example: '14:30' created_at: type: string example: '2026-10-02T20:24:13.035902Z' updated_at: type: string example: '2026-10-02T20:24:13.036130Z' notify_result_changes_in_items: type: integer example: 1 tags: - Recorrências requestBody: required: true content: application/json: schema: type: object properties: name: type: string description: 'Não pode ser superior a 45 caracteres.' example: 'Dr. Thales Enzo Dias' starts_at: type: string description: 'Deve ser uma data válida no formato Y-m-d. Deve ser uma data posterior a hoje.' example: '2006-01-14' frequency: type: string description: '' example: weekly enum: - weekly - monthly - yearly - every_x_days monthly_day_of_month: type: integer description: 'Este campo é obrigatório quando frequency for monthly. Deve ser entre 1 e 31.' example: 16 yearly_day: type: integer description: 'Este campo é obrigatório quando frequency for yearly. Deve ser entre 1 e 31.' example: 16 yearly_month: type: integer description: 'Este campo é obrigatório quando frequency for yearly. Deve ser entre 1 e 12.' example: 7 weekly_happens_on: type: object description: 'Este campo é obrigatório quando frequency for weekly. Não pode ter mais do que 7 itens.' example: [] properties: {} every_x_days_number_of_days: type: integer description: 'Este campo é obrigatório quando frequency for every_x_days. Deve ser pelo menos 1.' example: 1 specific_time: type: string description: 'Deve ser uma data válida no formato H:i.' example: '14:30' nullable: true items: type: object description: '' example: [] properties: {} groups_ids: type: array description: '' example: - 808 - 801 items: type: integer notify_result_changes_in_items: type: boolean description: '' example: true required: - name - starts_at - frequency - notify_result_changes_in_items '/recurrences/{id}': get: summary: 'Visualizar uma recorrência' operationId: visualizarUmaRecorrncia description: '' parameters: - in: query name: include description: "Relações disponíveis para incluir na resposta. Múltiplas devem ser separadas com vírgula. \n Disponíveis: items, items_count, itemsExists, owner, owner_count, ownerExists, items.order, groups, groups_count, groupsExists, customer, customer_count, customerExists" example: null required: false schema: type: string description: "Relações disponíveis para incluir na resposta. Múltiplas devem ser separadas com vírgula. \n Disponíveis: items, items_count, itemsExists, owner, owner_count, ownerExists, items.order, groups, groups_count, groupsExists, customer, customer_count, customerExists" example: null - in: query name: append description: "Propriedades disponíveis para incluir na resposta. Múltiplas devem ser separadas com vírgula. \n Disponíveis: purchases_ids, items.service_can_be_monitored" example: null required: false schema: type: string description: "Propriedades disponíveis para incluir na resposta. Múltiplas devem ser separadas com vírgula. \n Disponíveis: purchases_ids, items.service_can_be_monitored" example: null responses: 200: description: '' content: application/json: schema: type: object example: id: 1 name: 'Rogério Santos Toledo' keep_original_groups_from_items: 1 starts_at: '2026-10-02' next_at: '2026-10-02' last_at: '2026-10-02' frequency: weekly monthly_day_of_month: 1 weekly_happens_on: [] yearly_month: 1 yearly_day: 1 owner_id: 344 customer_id: 539 active: true every_x_days_number_of_days: 1 specific_time: '14:30' created_at: '2026-10-02T20:24:13.011612Z' updated_at: '2026-10-02T20:24:13.011709Z' notify_result_changes_in_items: 1 properties: id: type: integer example: 1 name: type: string example: 'Rogério Santos Toledo' keep_original_groups_from_items: type: integer example: 1 starts_at: type: string example: '2026-10-02' next_at: type: string example: '2026-10-02' last_at: type: string example: '2026-10-02' frequency: type: string example: weekly monthly_day_of_month: type: integer example: 1 weekly_happens_on: type: array example: [] yearly_month: type: integer example: 1 yearly_day: type: integer example: 1 owner_id: type: integer example: 344 customer_id: type: integer example: 539 active: type: boolean example: true every_x_days_number_of_days: type: integer example: 1 specific_time: type: string example: '14:30' created_at: type: string example: '2026-10-02T20:24:13.011612Z' updated_at: type: string example: '2026-10-02T20:24:13.011709Z' notify_result_changes_in_items: type: integer example: 1 tags: - Recorrências parameters: - in: path name: id description: 'The ID of the recurrence.' example: 0-9 required: true schema: type: integer /recurrences/by-purchase: post: summary: 'Criar uma recorrência a partir de uma compra' operationId: criarUmaRecorrnciaAPartirDeUmaCompra description: '' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: id: 1 name: 'Sr. Thomas Casanova Neto' keep_original_groups_from_items: 1 starts_at: '2026-10-02' next_at: '2026-10-02' last_at: '2026-10-02' frequency: weekly monthly_day_of_month: 1 weekly_happens_on: [] yearly_month: 1 yearly_day: 1 owner_id: 43 customer_id: 175 active: true every_x_days_number_of_days: 1 specific_time: '14:30' created_at: '2026-10-02T20:24:13.055733Z' updated_at: '2026-10-02T20:24:13.055827Z' notify_result_changes_in_items: 1 properties: id: type: integer example: 1 name: type: string example: 'Sr. Thomas Casanova Neto' keep_original_groups_from_items: type: integer example: 1 starts_at: type: string example: '2026-10-02' next_at: type: string example: '2026-10-02' last_at: type: string example: '2026-10-02' frequency: type: string example: weekly monthly_day_of_month: type: integer example: 1 weekly_happens_on: type: array example: [] yearly_month: type: integer example: 1 yearly_day: type: integer example: 1 owner_id: type: integer example: 43 customer_id: type: integer example: 175 active: type: boolean example: true every_x_days_number_of_days: type: integer example: 1 specific_time: type: string example: '14:30' created_at: type: string example: '2026-10-02T20:24:13.055733Z' updated_at: type: string example: '2026-10-02T20:24:13.055827Z' notify_result_changes_in_items: type: integer example: 1 tags: - Recorrências requestBody: required: true content: application/json: schema: type: object properties: name: type: string description: 'Não pode ser superior a 45 caracteres.' example: 'Lara Ortiz Reis Neto' starts_at: type: string description: 'Deve ser uma data válida no formato Y-m-d. Deve ser uma data posterior a hoje.' example: '2004-10-24' frequency: type: string description: '' example: weekly enum: - weekly - monthly - yearly - every_x_days monthly_day_of_month: type: integer description: 'Este campo é obrigatório quando frequency for monthly. Deve ser entre 1 e 31.' example: 16 yearly_day: type: integer description: 'Este campo é obrigatório quando frequency for yearly. Deve ser entre 1 e 31.' example: 16 yearly_month: type: integer description: 'Este campo é obrigatório quando frequency for yearly. Deve ser entre 1 e 12.' example: 7 weekly_happens_on: type: object description: 'Este campo é obrigatório quando frequency for weekly. Não pode ter mais do que 7 itens.' example: [] properties: {} every_x_days_number_of_days: type: integer description: 'Este campo é obrigatório quando frequency for every_x_days. Deve ser pelo menos 1.' example: 1 specific_time: type: string description: 'Deve ser uma data válida no formato H:i.' example: '14:30' nullable: true purchase_id: type: integer description: '' example: 615 groups_ids: type: array description: '' example: - 215 - 670 items: type: integer notify_result_changes_in_items: type: boolean description: '' example: true required: - name - starts_at - frequency - purchase_id - notify_result_changes_in_items '/recurrences/{recurrence_id}': put: summary: 'Alterar uma recorrência' operationId: alterarUmaRecorrncia description: '' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: id: 1 name: 'Elizabeth Elaine Montenegro Jr.' keep_original_groups_from_items: 1 starts_at: '2026-10-02' next_at: '2026-10-02' last_at: '2026-10-02' frequency: weekly monthly_day_of_month: 1 weekly_happens_on: [] yearly_month: 1 yearly_day: 1 owner_id: 338 customer_id: 966 active: true every_x_days_number_of_days: 1 specific_time: '14:30' created_at: '2026-10-02T20:24:13.079282Z' updated_at: '2026-10-02T20:24:13.079381Z' notify_result_changes_in_items: 1 properties: id: type: integer example: 1 name: type: string example: 'Elizabeth Elaine Montenegro Jr.' keep_original_groups_from_items: type: integer example: 1 starts_at: type: string example: '2026-10-02' next_at: type: string example: '2026-10-02' last_at: type: string example: '2026-10-02' frequency: type: string example: weekly monthly_day_of_month: type: integer example: 1 weekly_happens_on: type: array example: [] yearly_month: type: integer example: 1 yearly_day: type: integer example: 1 owner_id: type: integer example: 338 customer_id: type: integer example: 966 active: type: boolean example: true every_x_days_number_of_days: type: integer example: 1 specific_time: type: string example: '14:30' created_at: type: string example: '2026-10-02T20:24:13.079282Z' updated_at: type: string example: '2026-10-02T20:24:13.079381Z' notify_result_changes_in_items: type: integer example: 1 tags: - Recorrências requestBody: required: true content: application/json: schema: type: object properties: name: type: string description: 'Não pode ser superior a 45 caracteres.' example: 'Noel Beltrão Pedrosa Filho' starts_at: type: string description: 'Deve ser uma data válida no formato Y-m-d. Deve ser uma data posterior a hoje.' example: '1989-05-24' frequency: type: string description: '' example: weekly enum: - weekly - monthly - yearly - every_x_days monthly_day_of_month: type: integer description: 'Este campo é obrigatório quando frequency for monthly. Deve ser entre 1 e 31.' example: 16 yearly_day: type: integer description: 'Este campo é obrigatório quando frequency for yearly. Deve ser entre 1 e 31.' example: 16 yearly_month: type: integer description: 'Este campo é obrigatório quando frequency for yearly. Deve ser entre 1 e 12.' example: 7 weekly_happens_on: type: object description: 'Este campo é obrigatório quando frequency for weekly. Não pode ter mais do que 7 itens.' example: [] properties: {} every_x_days_number_of_days: type: integer description: 'Este campo é obrigatório quando frequency for every_x_days. Deve ser pelo menos 1.' example: 1 specific_time: type: string description: 'Deve ser uma data válida no formato H:i.' example: '14:30' nullable: true items: type: object description: '' example: [] properties: {} groups_ids: type: array description: '' example: - 265 - 15 items: type: integer notify_result_changes_in_items: type: boolean description: '' example: true required: - name - starts_at - frequency - notify_result_changes_in_items parameters: - in: path name: recurrence_id description: 'The ID of the recurrence.' example: 10 required: true schema: type: integer '/recurrences/{recurrence_id}/{newSituation}': patch: summary: 'Ativar/desativar uma recorrência' operationId: ativardesativarUmaRecorrncia description: '' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: id: 1 name: 'Manoela Ferraz Tamoio Sobrinho' keep_original_groups_from_items: 1 starts_at: '2026-10-02' next_at: '2026-10-02' last_at: '2026-10-02' frequency: weekly monthly_day_of_month: 1 weekly_happens_on: [] yearly_month: 1 yearly_day: 1 owner_id: 527 customer_id: 287 active: true every_x_days_number_of_days: 1 specific_time: '14:30' created_at: '2026-10-02T20:24:13.098025Z' updated_at: '2026-10-02T20:24:13.098197Z' notify_result_changes_in_items: 1 properties: id: type: integer example: 1 name: type: string example: 'Manoela Ferraz Tamoio Sobrinho' keep_original_groups_from_items: type: integer example: 1 starts_at: type: string example: '2026-10-02' next_at: type: string example: '2026-10-02' last_at: type: string example: '2026-10-02' frequency: type: string example: weekly monthly_day_of_month: type: integer example: 1 weekly_happens_on: type: array example: [] yearly_month: type: integer example: 1 yearly_day: type: integer example: 1 owner_id: type: integer example: 527 customer_id: type: integer example: 287 active: type: boolean example: true every_x_days_number_of_days: type: integer example: 1 specific_time: type: string example: '14:30' created_at: type: string example: '2026-10-02T20:24:13.098025Z' updated_at: type: string example: '2026-10-02T20:24:13.098197Z' notify_result_changes_in_items: type: integer example: 1 tags: - Recorrências parameters: - in: path name: recurrence_id description: 'The ID of the recurrence.' example: 10 required: true schema: type: integer - in: path name: newSituation description: '' example: active required: true schema: type: string '/recurrences/{recurrence_id}/items/{recurrenceItems}': delete: summary: 'Excluir um ou múltiplos itens de uma recorrência' operationId: excluirUmOuMltiplosItensDeUmaRecorrncia description: '' parameters: [] responses: {} tags: - Recorrências parameters: - in: path name: recurrence_id description: 'The ID of the recurrence.' example: 10 required: true schema: type: integer - in: path name: recurrenceItems description: 'Ids dos items que serão excluídos.' example: '123,456,789' required: true schema: type: string '/reports/ai-answers/{format}': get: summary: 'Gera um relatório com as respostas dos pedidos de inteligência artificial' operationId: geraUmRelatrioComAsRespostasDosPedidosDeIntelignciaArtificial description: '' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: file_path: exemplo download_name: exemplo properties: file_path: type: string example: exemplo download_name: type: string example: exemplo tags: - Relatórios parameters: - in: path name: format description: 'Optional parameter.' required: true schema: type: string examples: omitted: summary: 'When the value is omitted' value: '' present: summary: 'When the value is present' value: csv '/reports/orders/{format}': get: summary: 'Gera um relatório com os itens de compras de acordo com os filtros utilizados' operationId: geraUmRelatrioComOsItensDeComprasDeAcordoComOsFiltrosUtilizados description: '' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: file_path: exemplo download_name: exemplo properties: file_path: type: string example: exemplo download_name: type: string example: exemplo tags: - Relatórios requestBody: required: true content: application/json: schema: type: object properties: one_result_per_row: type: boolean description: '' example: true required: - one_result_per_row parameters: - in: path name: format description: 'Optional parameter. Must be one of:' required: true schema: type: string examples: omitted: summary: 'When the value is omitted' value: '' '/reports/users/{format}': get: summary: 'Gera um relatório com os usuários de acordo com os filtros utilizados' operationId: geraUmRelatrioComOsUsuriosDeAcordoComOsFiltrosUtilizados description: '' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: file_path: exemplo download_name: exemplo properties: file_path: type: string example: exemplo download_name: type: string example: exemplo tags: - Relatórios requestBody: required: false content: application/json: schema: type: object properties: filter: type: string description: '' example: active enum: - active - deleted - all parameters: - in: path name: format description: 'Optional parameter. Must be one of:' required: true schema: type: string examples: omitted: summary: 'When the value is omitted' value: '' /reports/number-orders-per-month: get: summary: 'Retorna a quantidade de itens de compra mês a mês em um período de tempo' operationId: retornaAQuantidadeDeItensDeCompraMsAMsEmUmPerodoDeTempo description: '' parameters: [] responses: {} tags: - Relatórios requestBody: required: true content: application/json: schema: type: object properties: begin_date: type: string description: 'Deve ser uma data válida no formato Y-m.' example: '1999-01-08' end_date: type: string description: 'Deve ser uma data válida no formato Y-m.' example: '2026-07-14' required: - begin_date - end_date /reports/number-orders-per-status: get: summary: 'Retorna a quantidade de itens de compra por status' operationId: retornaAQuantidadeDeItensDeCompraPorStatus description: '' parameters: [] responses: {} tags: - Relatórios requestBody: required: false content: application/json: schema: type: object properties: begin_date: type: string description: 'Deve ser uma data válida no formato Y-m-d.' example: '2017-05-11' nullable: true end_date: type: string description: 'Deve ser uma data válida no formato Y-m-d.' example: '2018-09-06' nullable: true only_from_logged_user: type: boolean description: '' example: true nullable: true /reports/order-stats: get: summary: 'Retorna a quantidade de itens de compra, valor gastos e preço médio durante o período desejado' operationId: retornaAQuantidadeDeItensDeCompraValorGastosEPreoMdioDuranteOPerodoDesejado description: '' parameters: [] responses: {} tags: - Relatórios requestBody: required: true content: application/json: schema: type: object properties: begin_date: type: string description: 'Deve ser uma data válida no formato Y-m-d.' example: '1991-12-17' end_date: type: string description: 'Deve ser uma data válida no formato Y-m-d.' example: '1981-03-18' required: - begin_date - end_date /reports/ai-stats: get: summary: 'Retorna a quantidade de análises de IA, valor gastos e preço médio durante o período desejado' operationId: retornaAQuantidadeDeAnlisesDeIAValorGastosEPreoMdioDuranteOPerodoDesejado description: '' parameters: [] responses: {} tags: - Relatórios requestBody: required: true content: application/json: schema: type: object properties: begin_date: type: string description: 'Deve ser uma data válida no formato Y-m-d.' example: '1990-09-20' end_date: type: string description: 'Deve ser uma data válida no formato Y-m-d.' example: '2024-07-19' required: - begin_date - end_date /reports/number-ai-analysis-per-month: get: summary: 'Retorna a quantidade de análises de IA mês a mês em um período de tempo' operationId: retornaAQuantidadeDeAnlisesDeIAMsAMsEmUmPerodoDeTempo description: '' parameters: [] responses: {} tags: - Relatórios requestBody: required: true content: application/json: schema: type: object properties: begin_date: type: string description: 'Deve ser uma data válida no formato Y-m.' example: '1990-07-14' end_date: type: string description: 'Deve ser uma data válida no formato Y-m.' example: '2001-04-02' required: - begin_date - end_date '/reports/invoices/{year}/{month}': get: summary: 'Retorna as faturas de um cliente, pré pago, durante um mês do ano' operationId: retornaAsFaturasDeUmClientePrPagoDuranteUmMsDoAno description: '' parameters: [] responses: {} tags: - Relatórios parameters: - in: path name: year description: '' example: 2023 required: true schema: type: integer - in: path name: month description: '' example: 1 required: true schema: type: integer '/reports/invoice-postpaids/{year}/{month}': get: summary: 'Retorna as faturas de um cliente, pós pago, durante um mês do ano' operationId: retornaAsFaturasDeUmClientePsPagoDuranteUmMsDoAno description: '' parameters: [] responses: {} tags: - Relatórios parameters: - in: path name: year description: '' example: 2023 required: true schema: type: integer - in: path name: month description: '' example: 1 required: true schema: type: integer '/services/{service_id}/custom-order-fields': get: summary: 'Lista campos personalizados de um serviço' operationId: listaCamposPersonalizadosDeUmServio description: "Retorna todos os campos personalizados específicos do serviço\nmais todos os campos globais (que servem para todos os serviços),\nordenado pelo label" parameters: [] responses: {} tags: - Serviços parameters: - in: path name: service_id description: 'The ID of the service.' example: 10 required: true schema: type: integer /services: get: summary: 'Lista os serviços' operationId: listaOsServios description: '' parameters: - in: query name: include description: "Relações disponíveis para incluir na resposta. Múltiplas devem ser separadas com vírgula. \n Disponíveis: ai_default_model, ai_default_model_count, ai_default_modelExists, ai_default_model.questions" example: null required: false schema: type: string description: "Relações disponíveis para incluir na resposta. Múltiplas devem ser separadas com vírgula. \n Disponíveis: ai_default_model, ai_default_model_count, ai_default_modelExists, ai_default_model.questions" example: null - in: query name: append description: "Propriedades disponíveis para incluir na resposta. Múltiplas devem ser separadas com vírgula. \n Disponíveis: is_favorite, can_be_monitored, automatic_purchase_has_options" example: null required: false schema: type: string description: "Propriedades disponíveis para incluir na resposta. Múltiplas devem ser separadas com vírgula. \n Disponíveis: is_favorite, can_be_monitored, automatic_purchase_has_options" example: null - in: query name: sort description: "Campos disponíveis para ordenação. Para ordenar decrescentemente use o sinal de - antes do nome do campo Ex: -nome_campo. \n Múltiplos devem ser separadas com vírgula. Disponíveis: name" example: null required: false schema: type: string description: "Campos disponíveis para ordenação. Para ordenar decrescentemente use o sinal de - antes do nome do campo Ex: -nome_campo. \n Múltiplos devem ser separadas com vírgula. Disponíveis: name" example: null - in: query name: filter description: "Campos disponíveis para filtrar. Ex: filter[nome_campo]=valor ou filter[nome_campo]=valor1,valor2. \n Disponíveis: ai_enabled, type, can_trigger_automatic_purchase, order_summary_available" example: null required: false schema: type: 'string[]' description: "Campos disponíveis para filtrar. Ex: filter[nome_campo]=valor ou filter[nome_campo]=valor1,valor2. \n Disponíveis: ai_enabled, type, can_trigger_automatic_purchase, order_summary_available" example: null responses: {} tags: - Serviços /services/most-used: get: summary: 'Lista os 5 serviços mais usados' operationId: listaOs5ServiosMaisUsados description: '' parameters: [] responses: {} tags: - Serviços '/services/{id}': get: summary: 'Visualizar um serviço' operationId: visualizarUmServio description: '' parameters: - in: query name: include description: "Relações disponíveis para incluir na resposta. Múltiplas devem ser separadas com vírgula. \n Disponíveis: aiDefaultModel, aiDefaultModel_count, aiDefaultModelExists" example: null required: false schema: type: string description: "Relações disponíveis para incluir na resposta. Múltiplas devem ser separadas com vírgula. \n Disponíveis: aiDefaultModel, aiDefaultModel_count, aiDefaultModelExists" example: null - in: query name: append description: "Propriedades disponíveis para incluir na resposta. Múltiplas devem ser separadas com vírgula. \n Disponíveis: is_favorite, aiDefaultModel.questions" example: null required: false schema: type: string description: "Propriedades disponíveis para incluir na resposta. Múltiplas devem ser separadas com vírgula. \n Disponíveis: is_favorite, aiDefaultModel.questions" example: null responses: 200: description: '' content: application/json: schema: type: object example: id: 1 code: meu-codigo name: 'Noa Lira Faro' description: 'Enim eum tempore nesciunt velit et qui.' tags: [] type: Certificate ai_enabled: true spreadsheet_purchase_available: true instant_delivery: true short_name: exemplo details_main_attribute: exemplo auto_purchase_certificate_available_result_positive: true auto_purchase_certificate_available_result_negative: true verification_code_attributes: exemplo created_at: '2026-10-02T20:24:13.262254Z' updated_at: '2026-10-02T20:24:13.262450Z' keywords: [] free_emoluments: true show_new_tag: true properties: id: type: integer example: 1 code: type: string example: meu-codigo name: type: string example: 'Noa Lira Faro' description: type: string example: 'Enim eum tempore nesciunt velit et qui.' tags: type: array example: [] type: type: string example: Certificate ai_enabled: type: boolean example: true spreadsheet_purchase_available: type: boolean example: true instant_delivery: type: boolean example: true short_name: type: string example: exemplo details_main_attribute: type: string example: exemplo auto_purchase_certificate_available_result_positive: type: boolean example: true auto_purchase_certificate_available_result_negative: type: boolean example: true verification_code_attributes: type: string example: exemplo created_at: type: string example: '2026-10-02T20:24:13.262254Z' updated_at: type: string example: '2026-10-02T20:24:13.262450Z' keywords: type: array example: [] free_emoluments: type: boolean example: true show_new_tag: type: boolean example: true tags: - Serviços parameters: - in: path name: id description: 'The ID of the service.' example: 0-9 required: true schema: type: integer '/services/code/{code}': get: summary: 'Visualizar um serviço pelo código' operationId: visualizarUmServioPeloCdigo description: '' parameters: - in: query name: include description: "Relações disponíveis para incluir na resposta. Múltiplas devem ser separadas com vírgula. \n Disponíveis: aiDefaultModel, aiDefaultModel_count, aiDefaultModelExists" example: null required: false schema: type: string description: "Relações disponíveis para incluir na resposta. Múltiplas devem ser separadas com vírgula. \n Disponíveis: aiDefaultModel, aiDefaultModel_count, aiDefaultModelExists" example: null - in: query name: append description: "Propriedades disponíveis para incluir na resposta. Múltiplas devem ser separadas com vírgula. \n Disponíveis: aiDefaultModel.questions, is_favorite" example: null required: false schema: type: string description: "Propriedades disponíveis para incluir na resposta. Múltiplas devem ser separadas com vírgula. \n Disponíveis: aiDefaultModel.questions, is_favorite" example: null responses: 200: description: '' content: application/json: schema: type: object example: id: 1 code: meu-codigo name: 'Srta. Anita de Oliveira Salgado' description: 'Maiores fuga asperiores dignissimos rerum modi animi sit incidunt.' tags: [] type: Certificate ai_enabled: true spreadsheet_purchase_available: true instant_delivery: true short_name: exemplo details_main_attribute: exemplo auto_purchase_certificate_available_result_positive: true auto_purchase_certificate_available_result_negative: true verification_code_attributes: exemplo created_at: '2026-10-02T20:24:13.273736Z' updated_at: '2026-10-02T20:24:13.273844Z' keywords: [] free_emoluments: true show_new_tag: true properties: id: type: integer example: 1 code: type: string example: meu-codigo name: type: string example: 'Srta. Anita de Oliveira Salgado' description: type: string example: 'Maiores fuga asperiores dignissimos rerum modi animi sit incidunt.' tags: type: array example: [] type: type: string example: Certificate ai_enabled: type: boolean example: true spreadsheet_purchase_available: type: boolean example: true instant_delivery: type: boolean example: true short_name: type: string example: exemplo details_main_attribute: type: string example: exemplo auto_purchase_certificate_available_result_positive: type: boolean example: true auto_purchase_certificate_available_result_negative: type: boolean example: true verification_code_attributes: type: string example: exemplo created_at: type: string example: '2026-10-02T20:24:13.273736Z' updated_at: type: string example: '2026-10-02T20:24:13.273844Z' keywords: type: array example: [] free_emoluments: type: boolean example: true show_new_tag: type: boolean example: true tags: - Serviços parameters: - in: path name: code description: 'O código do serviço' example: certidao-nascimento required: true schema: type: string '/services/{serviceCode}/federative-units': get: summary: 'Retorna os estados onde o serviço está disponível' operationId: retornaOsEstadosOndeOServioEstDisponvel description: '' parameters: [] responses: {} tags: - Serviços parameters: - in: path name: serviceCode description: 'O código do serviço. Consulte em link' example: certidao-nascimento required: true schema: type: string '/services/{serviceCode}/federative-units/{federativeUnitAbbr}': get: summary: 'Retorna as cidades, de um estado, onde o serviço está disponível' operationId: retornaAsCidadesDeUmEstadoOndeOServioEstDisponvel description: '' parameters: [] responses: {} tags: - Serviços parameters: - in: path name: serviceCode description: 'O código do serviço. Consulte em link' example: certidao-nascimento required: true schema: type: string - in: path name: federativeUnitAbbr description: 'A url da unidade federativa. Disponíveis podem ser obtidos em link' example: SP required: true schema: type: string '/services/{serviceCode}/federative-units/{federativeUnitAbbr}/{cityUrl}': get: summary: 'Retorna os cartórios, de um estado/cidade, onde o serviço está disponível' operationId: retornaOsCartriosDeUmEstadocidadeOndeOServioEstDisponvel description: '' parameters: [] responses: {} tags: - Serviços parameters: - in: path name: serviceCode description: 'O código do serviço. Consulte em link' example: certidao-nascimento required: true schema: type: string - in: path name: federativeUnitAbbr description: 'A url da unidade federativa. Disponíveis podem ser obtidos em link' example: SP required: true schema: type: string - in: path name: cityUrl description: 'A url da cidade. Disponíveis podem ser obtidos em link' example: SAO_PAULO required: true schema: type: string '/services/{serviceCode}/favorite': put: summary: 'Define um serviço como favorito' operationId: defineUmServioComoFavorito description: '' parameters: [] responses: {} tags: - Serviços delete: summary: 'Remove um serviço dos favoritos' operationId: removeUmServioDosFavoritos description: '' parameters: [] responses: {} tags: - Serviços parameters: - in: path name: serviceCode description: 'O código do serviço. Consulte em link' example: certidao-nascimento required: true schema: type: string /services/dont-know-book-page-price: get: summary: 'Retorna o custo extra de não saber o livro e página da certidão' operationId: retornaOCustoExtraDeNoSaberOLivroEPginaDaCertido description: '' parameters: [] responses: {} tags: - Serviços /services/tax-price: get: summary: 'Retorna o valor da taxa de serviço' operationId: retornaOValorDaTaxaDeServio description: '' parameters: [] responses: {} tags: - Serviços '/services/{serviceCode}/available-formats': put: summary: 'Verifica os formatos disponíveis de um serviço' operationId: verificaOsFormatosDisponveisDeUmServio description: '' parameters: [] responses: {} tags: - Serviços requestBody: required: true content: application/json: schema: type: object properties: detailed_service_data: type: array description: 'Os dados específicos do serviço vão dentro deste objeto. Consulte em link' example: null items: type: object required: - detailed_service_data parameters: - in: path name: serviceCode description: 'O código do serviço. Consulte em link' example: certidao-nascimento required: true schema: type: string '/services/{serviceCode}/prices-shipping-info': put: summary: 'Calcula o preço e prazo de entrega de um serviço' operationId: calculaOPreoEPrazoDeEntregaDeUmServio description: '' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: price: 1.5 estimated_price_postpaid_customer: 1.5 estimated_delivery_days: [] all_items_included_in_plan: true properties: price: type: number example: 1.5 estimated_price_postpaid_customer: type: number example: 1.5 estimated_delivery_days: type: array example: [] all_items_included_in_plan: type: boolean example: true tags: - Serviços requestBody: required: true content: application/json: schema: type: object properties: detailed_service_data: type: array description: 'Os dados específicos do serviço vão dentro deste objeto. Consulte em link' example: null items: type: object required: - detailed_service_data parameters: - in: path name: serviceCode description: 'O código do serviço. Consulte em link' example: certidao-nascimento required: true schema: type: string '/services/{serviceCode}/extras-prices-shipping-info': put: summary: 'Calcula o preço e dias adicionados no prazos de entrega para os adicionais do serviço' operationId: calculaOPreoEDiasAdicionadosNoPrazosDeEntregaParaOsAdicionaisDoServio description: '' parameters: [] responses: {} tags: - Serviços requestBody: required: true content: application/json: schema: type: object properties: detailed_service_data: type: array description: 'Os dados específicos do serviço vão dentro deste objeto. Consulte em link' example: null items: type: object required: - detailed_service_data parameters: - in: path name: serviceCode description: 'O código do serviço. Consulte em link' example: certidao-nascimento required: true schema: type: string '/services/{serviceCode}/extra-informations/{info}': put: summary: 'Retorna as informações extras necessárias para o serviço.' operationId: retornaAsInformaesExtrasNecessriasParaOServio description: "Alguns serviços exigem dados que estão restritos a uma lista de valores.\nAqui essas informações podem ser consultadas" parameters: [] responses: {} tags: - Serviços requestBody: required: true content: application/json: schema: type: object properties: detailed_service_data: type: array description: 'Os dados específicos do serviço vão dentro deste objeto. Consulte em link' example: null items: type: object required: - detailed_service_data parameters: - in: path name: serviceCode description: 'O código do serviço. Consulte em link' example: certidao-nascimento required: true schema: type: string - in: path name: info description: '' example: modelo required: true schema: type: string /services/registers: put: summary: 'Retorna os registros' operationId: retornaOsRegistros description: 'Retorna um array de strings, na mesma ordem, o valor do campo de registro, de acordo com o serviço, dos itens enviados no payload' parameters: [] responses: {} tags: - Serviços requestBody: required: true content: application/json: schema: type: object properties: detailed_services_data: type: array description: 'Deve ter pelo menos 1 item.' example: - [] items: type: object properties: detailed_service_data: type: object description: 'Os dados específicos do serviço vão dentro deste objeto. Consulte em link' example: null properties: {} service_id: type: integer description: 'Must match an existing stored value.' example: 569 required: - detailed_service_data - service_id required: - detailed_services_data /services/automatic-purchases-from-ai-analysis-available: get: summary: 'Retorna as automações de compra automática, a partir de extração de dados, disponíveis' operationId: retornaAsAutomaesDeCompraAutomticaAPartirDeExtraoDeDadosDisponveis description: '' parameters: - in: query name: include description: "Relações disponíveis para incluir na resposta. Múltiplas devem ser separadas com vírgula. \n Disponíveis: service, service_count, serviceExists" example: null required: false schema: type: string description: "Relações disponíveis para incluir na resposta. Múltiplas devem ser separadas com vírgula. \n Disponíveis: service, service_count, serviceExists" example: null - in: query name: sort description: "Campos disponíveis para ordenação. Para ordenar decrescentemente use o sinal de - antes do nome do campo Ex: -nome_campo. \n Múltiplos devem ser separadas com vírgula. Disponíveis: description" example: null required: false schema: type: string description: "Campos disponíveis para ordenação. Para ordenar decrescentemente use o sinal de - antes do nome do campo Ex: -nome_campo. \n Múltiplos devem ser separadas com vírgula. Disponíveis: description" example: null - in: query name: filter description: "Campos disponíveis para filtrar. Ex: filter[nome_campo]=valor ou filter[nome_campo]=valor1,valor2. \n Disponíveis: service_id" example: null required: false schema: type: 'string[]' description: "Campos disponíveis para filtrar. Ex: filter[nome_campo]=valor ou filter[nome_campo]=valor1,valor2. \n Disponíveis: service_id" example: null responses: {} tags: - Serviços '/password-reset/{token}': get: summary: 'Busca o registro de redefinição de senha pelo token para verificar se é válido' operationId: buscaORegistroDeRedefinioDeSenhaPeloTokenParaVerificarSeVlido description: '' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: user_id: 576 requested_at: '2026-10-02T20:24:12.756166Z' expiration_at: '2026-10-02T20:24:12.756311Z' already_used: true properties: user_id: type: integer example: 576 requested_at: type: string example: '2026-10-02T20:24:12.756166Z' expiration_at: type: string example: '2026-10-02T20:24:12.756311Z' already_used: type: boolean example: true tags: - Usuários security: [] patch: summary: 'Redefine a senha de um usuário através de um token de recuperação de senha válido' operationId: redefineASenhaDeUmUsurioAtravsDeUmTokenDeRecuperaoDeSenhaVlido description: '' parameters: [] responses: {} tags: - Usuários requestBody: required: true content: application/json: schema: type: object properties: new_password: type: string description: 'Não pode ser superior a 255 caracteres.' example: Senha@123 required: - new_password security: [] parameters: - in: path name: token description: '' example: 0010905473ade9284a1c6404ec3648c56a170cc571ca771822e26cc2d5e602c1 required: true schema: type: string /password-reset: post: summary: 'Criar um token de recuperação de senha' operationId: criarUmTokenDeRecuperaoDeSenha description: '' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: user_id: 729 requested_at: '2026-10-02T20:24:12.780422Z' expiration_at: '2026-10-02T20:24:12.780568Z' already_used: true properties: user_id: type: integer example: 729 requested_at: type: string example: '2026-10-02T20:24:12.780422Z' expiration_at: type: string example: '2026-10-02T20:24:12.780568Z' already_used: type: boolean example: true tags: - Usuários requestBody: required: true content: application/json: schema: type: object properties: email: type: string description: '' example: nathalia69@example.org required: - email security: [] '/user-groups/user/{user_id}': put: summary: '' operationId: putUserGroupsUserUser_id description: '' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: id: 1 customer_id: 850 name: 'Sr. Tomás Saito Neto' email: bianca32@example.net email_verified_at: '2026-10-02T20:24:13.579467Z' phone: '4344756671' isolated_orders: true last_login_at: '2026-10-02T20:24:13.579698Z' created_at: '2026-10-02T20:24:13.579781Z' updated_at: '2026-10-02T20:24:13.579844Z' free_order_summary_remaining: 1 two_factor_confirmed_at: '2026-10-02T20:24:13.579924Z' properties: id: type: integer example: 1 customer_id: type: integer example: 850 name: type: string example: 'Sr. Tomás Saito Neto' email: type: string example: bianca32@example.net email_verified_at: type: string example: '2026-10-02T20:24:13.579467Z' phone: type: string example: '4344756671' isolated_orders: type: boolean example: true last_login_at: type: string example: '2026-10-02T20:24:13.579698Z' created_at: type: string example: '2026-10-02T20:24:13.579781Z' updated_at: type: string example: '2026-10-02T20:24:13.579844Z' free_order_summary_remaining: type: integer example: 1 two_factor_confirmed_at: type: string example: '2026-10-02T20:24:13.579924Z' tags: - Usuários requestBody: required: false content: application/json: schema: type: object properties: groups_ids: type: array description: '' example: - 496 - 722 items: type: integer parameters: - in: path name: user_id description: 'The ID of the user.' example: 10 required: true schema: type: integer /users: post: summary: 'Criar um usuário' operationId: criarUmUsurio description: '' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: id: 1 customer_id: 242 name: 'Srta. Taís Prado Saraiva' email: cordeiro.viviane@example.net email_verified_at: '2026-10-02T20:24:13.597894Z' phone: '63981512059' isolated_orders: true last_login_at: '2026-10-02T20:24:13.598134Z' created_at: '2026-10-02T20:24:13.598222Z' updated_at: '2026-10-02T20:24:13.598281Z' free_order_summary_remaining: 1 two_factor_confirmed_at: '2026-10-02T20:24:13.598355Z' properties: id: type: integer example: 1 customer_id: type: integer example: 242 name: type: string example: 'Srta. Taís Prado Saraiva' email: type: string example: cordeiro.viviane@example.net email_verified_at: type: string example: '2026-10-02T20:24:13.597894Z' phone: type: string example: '63981512059' isolated_orders: type: boolean example: true last_login_at: type: string example: '2026-10-02T20:24:13.598134Z' created_at: type: string example: '2026-10-02T20:24:13.598222Z' updated_at: type: string example: '2026-10-02T20:24:13.598281Z' free_order_summary_remaining: type: integer example: 1 two_factor_confirmed_at: type: string example: '2026-10-02T20:24:13.598355Z' tags: - Usuários requestBody: required: true content: application/json: schema: type: object properties: email: type: string description: 'Deve ser um endereço de e-mail válido. Não pode ser superior a 200 caracteres.' example: irene.carvalho@example.net name: type: string description: 'Não pode ser superior a 60 caracteres.' example: 'Ohana da Cruz Neto' password: type: string description: 'Não pode ser superior a 255 caracteres.' example: Senha@123 permissions: type: array description: 'Deve corresponder a um valor já cadastrado.' example: - 1 items: type: integer phone: type: string description: 'Não pode ser superior a 15 caracteres.' example: '1320487154' nullable: true required: - email - name - password - permissions get: summary: 'Listar os usuários da conta' operationId: listarOsUsuriosDaConta description: 'O retorno é paginado' parameters: - in: query name: page description: 'a página desejada' example: 1 required: false schema: type: integer description: 'a página desejada' example: 1 - in: query name: per-page description: 'quantidade de registros por página (padrão é 20, máx 30)' example: 10 required: false schema: type: integer description: 'quantidade de registros por página (padrão é 20, máx 30)' example: 10 - in: query name: include description: "Relações disponíveis para incluir na resposta. Múltiplas devem ser separadas com vírgula. \n Disponíveis: permissions, permissions_count, permissionsExists, groups, groups_count, groupsExists, notifications_preferences, notifications_preferences_count, notifications_preferencesExists" example: null required: false schema: type: string description: "Relações disponíveis para incluir na resposta. Múltiplas devem ser separadas com vírgula. \n Disponíveis: permissions, permissions_count, permissionsExists, groups, groups_count, groupsExists, notifications_preferences, notifications_preferences_count, notifications_preferencesExists" example: null - in: query name: append description: "Propriedades disponíveis para incluir na resposta. Múltiplas devem ser separadas com vírgula. \n Disponíveis: customer.total_ai_tokens_remaining, customer.ai_tokens_above_limit" example: null required: false schema: type: string description: "Propriedades disponíveis para incluir na resposta. Múltiplas devem ser separadas com vírgula. \n Disponíveis: customer.total_ai_tokens_remaining, customer.ai_tokens_above_limit" example: null - in: query name: filter description: "Campos disponíveis para filtrar. Ex: filter[nome_campo]=valor ou filter[nome_campo]=valor1,valor2. \n Disponíveis: name_or_email" example: null required: false schema: type: 'string[]' description: "Campos disponíveis para filtrar. Ex: filter[nome_campo]=valor ou filter[nome_campo]=valor1,valor2. \n Disponíveis: name_or_email" example: null responses: {} tags: - Usuários /users/trashed: get: summary: 'Listar os usuários excluídos da conta' operationId: listarOsUsuriosExcludosDaConta description: 'O retorno é paginado' parameters: - in: query name: page description: 'a página desejada' example: 1 required: false schema: type: integer description: 'a página desejada' example: 1 - in: query name: per-page description: 'quantidade de registros por página (padrão é 20, máx 30)' example: 10 required: false schema: type: integer description: 'quantidade de registros por página (padrão é 20, máx 30)' example: 10 - in: query name: include description: "Relações disponíveis para incluir na resposta. Múltiplas devem ser separadas com vírgula. \n Disponíveis: permissions, permissions_count, permissionsExists, groups, groups_count, groupsExists, notifications_preferences, notifications_preferences_count, notifications_preferencesExists" example: null required: false schema: type: string description: "Relações disponíveis para incluir na resposta. Múltiplas devem ser separadas com vírgula. \n Disponíveis: permissions, permissions_count, permissionsExists, groups, groups_count, groupsExists, notifications_preferences, notifications_preferences_count, notifications_preferencesExists" example: null - in: query name: append description: "Propriedades disponíveis para incluir na resposta. Múltiplas devem ser separadas com vírgula. \n Disponíveis: customer.total_ai_tokens_remaining, customer.ai_tokens_above_limit" example: null required: false schema: type: string description: "Propriedades disponíveis para incluir na resposta. Múltiplas devem ser separadas com vírgula. \n Disponíveis: customer.total_ai_tokens_remaining, customer.ai_tokens_above_limit" example: null responses: {} tags: - Usuários /users/manage-data-permission-users-count: get: summary: 'Visualizar a quantidade de usuários da conta com a permissão de gerenciar usuários e dados da empresa' operationId: visualizarAQuantidadeDeUsuriosDaContaComAPermissoDeGerenciarUsuriosEDadosDaEmpresa description: '' parameters: [] responses: {} tags: - Usuários '/users/{id}': get: summary: 'Visualizar um usuário' operationId: visualizarUmUsurio description: '' parameters: - in: query name: include description: "Relações disponíveis para incluir na resposta. Múltiplas devem ser separadas com vírgula. \n Disponíveis: permissions, permissions_count, permissionsExists, groups, groups_count, groupsExists, notifications_preferences, notifications_preferences_count, notifications_preferencesExists" example: null required: false schema: type: string description: "Relações disponíveis para incluir na resposta. Múltiplas devem ser separadas com vírgula. \n Disponíveis: permissions, permissions_count, permissionsExists, groups, groups_count, groupsExists, notifications_preferences, notifications_preferences_count, notifications_preferencesExists" example: null - in: query name: append description: "Propriedades disponíveis para incluir na resposta. Múltiplas devem ser separadas com vírgula. \n Disponíveis: customer.total_ai_tokens_remaining, customer.ai_tokens_above_limit" example: null required: false schema: type: string description: "Propriedades disponíveis para incluir na resposta. Múltiplas devem ser separadas com vírgula. \n Disponíveis: customer.total_ai_tokens_remaining, customer.ai_tokens_above_limit" example: null responses: 200: description: '' content: application/json: schema: type: object example: id: 1 customer_id: 745 name: 'Tábata Daiane Gusmão' email: queiros.thalia@example.net email_verified_at: '2026-10-02T20:24:13.643806Z' phone: '97904147486' isolated_orders: true last_login_at: '2026-10-02T20:24:13.644125Z' created_at: '2026-10-02T20:24:13.644216Z' updated_at: '2026-10-02T20:24:13.644279Z' free_order_summary_remaining: 1 two_factor_confirmed_at: '2026-10-02T20:24:13.644364Z' properties: id: type: integer example: 1 customer_id: type: integer example: 745 name: type: string example: 'Tábata Daiane Gusmão' email: type: string example: queiros.thalia@example.net email_verified_at: type: string example: '2026-10-02T20:24:13.643806Z' phone: type: string example: '97904147486' isolated_orders: type: boolean example: true last_login_at: type: string example: '2026-10-02T20:24:13.644125Z' created_at: type: string example: '2026-10-02T20:24:13.644216Z' updated_at: type: string example: '2026-10-02T20:24:13.644279Z' free_order_summary_remaining: type: integer example: 1 two_factor_confirmed_at: type: string example: '2026-10-02T20:24:13.644364Z' tags: - Usuários parameters: - in: path name: id description: 'The ID of the user.' example: 0-9 required: true schema: type: integer /users/with-visible-orders: get: summary: 'Listar os usuários da conta que o usuário logado pode ver os pedidos' operationId: listarOsUsuriosDaContaQueOUsurioLogadoPodeVerOsPedidos description: '' parameters: - in: query name: include description: "Relações disponíveis para incluir na resposta. Múltiplas devem ser separadas com vírgula. \n Disponíveis: permissions, permissions_count, permissionsExists, groups, groups_count, groupsExists, notifications_preferences, notifications_preferences_count, notifications_preferencesExists" example: null required: false schema: type: string description: "Relações disponíveis para incluir na resposta. Múltiplas devem ser separadas com vírgula. \n Disponíveis: permissions, permissions_count, permissionsExists, groups, groups_count, groupsExists, notifications_preferences, notifications_preferences_count, notifications_preferencesExists" example: null - in: query name: append description: "Propriedades disponíveis para incluir na resposta. Múltiplas devem ser separadas com vírgula. \n Disponíveis: customer.total_ai_tokens_remaining, customer.ai_tokens_above_limit" example: null required: false schema: type: string description: "Propriedades disponíveis para incluir na resposta. Múltiplas devem ser separadas com vírgula. \n Disponíveis: customer.total_ai_tokens_remaining, customer.ai_tokens_above_limit" example: null responses: {} tags: - Usuários '/users/{user_id}/permissions': put: summary: 'Alterar as permissões de um usuário' operationId: alterarAsPermissesDeUmUsurio description: '' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: id: 1 customer_id: 32 name: 'Sr. André Amaral Caldeira' email: veronica.molina@example.net email_verified_at: '2026-10-02T20:24:13.673289Z' phone: '32943986365' isolated_orders: true last_login_at: '2026-10-02T20:24:13.673518Z' created_at: '2026-10-02T20:24:13.673573Z' updated_at: '2026-10-02T20:24:13.673610Z' free_order_summary_remaining: 1 two_factor_confirmed_at: '2026-10-02T20:24:13.673657Z' properties: id: type: integer example: 1 customer_id: type: integer example: 32 name: type: string example: 'Sr. André Amaral Caldeira' email: type: string example: veronica.molina@example.net email_verified_at: type: string example: '2026-10-02T20:24:13.673289Z' phone: type: string example: '32943986365' isolated_orders: type: boolean example: true last_login_at: type: string example: '2026-10-02T20:24:13.673518Z' created_at: type: string example: '2026-10-02T20:24:13.673573Z' updated_at: type: string example: '2026-10-02T20:24:13.673610Z' free_order_summary_remaining: type: integer example: 1 two_factor_confirmed_at: type: string example: '2026-10-02T20:24:13.673657Z' tags: - Usuários requestBody: required: true content: application/json: schema: type: object properties: permissions: type: array description: 'Deve corresponder a um valor já cadastrado.' example: - 1 items: type: integer required: - permissions parameters: - in: path name: user_id description: 'The ID of the user.' example: 10 required: true schema: type: integer '/users/{user_id}/notifications-preferences': put: summary: 'Alterar as preferências de notificação do usuário' operationId: alterarAsPrefernciasDeNotificaoDoUsurio description: "database - São as notificações que aparecem no sistema.\nmail - São as notificações enviadas por email." parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: id: 1 customer_id: 460 name: 'Dr. Vinícius Alves Neto' email: benez.heloisa@example.com email_verified_at: '2026-10-02T20:24:13.704781Z' phone: '4747172467' isolated_orders: true last_login_at: '2026-10-02T20:24:13.705078Z' created_at: '2026-10-02T20:24:13.705184Z' updated_at: '2026-10-02T20:24:13.705262Z' free_order_summary_remaining: 1 two_factor_confirmed_at: '2026-10-02T20:24:13.705350Z' properties: id: type: integer example: 1 customer_id: type: integer example: 460 name: type: string example: 'Dr. Vinícius Alves Neto' email: type: string example: benez.heloisa@example.com email_verified_at: type: string example: '2026-10-02T20:24:13.704781Z' phone: type: string example: '4747172467' isolated_orders: type: boolean example: true last_login_at: type: string example: '2026-10-02T20:24:13.705078Z' created_at: type: string example: '2026-10-02T20:24:13.705184Z' updated_at: type: string example: '2026-10-02T20:24:13.705262Z' free_order_summary_remaining: type: integer example: 1 two_factor_confirmed_at: type: string example: '2026-10-02T20:24:13.705350Z' tags: - Usuários requestBody: required: true content: application/json: schema: type: object properties: bank_slip_notification_via: type: array description: '' example: - database - mail items: type: string enum: - database - mail placed_purchase_notification_via: type: array description: '' example: - database - mail items: type: string enum: - database - mail finished_order_notification_via: type: array description: '' example: - database - mail items: type: string enum: - database - mail pending_action_notification_via: type: array description: '' example: - database - mail items: type: string enum: - database - mail refunded_order_notification_via: type: array description: '' example: - database - mail items: type: string enum: - database - mail spreadsheet_placed_purchase_notification_via: type: object description: '' example: [] properties: {} finished_purchase_notification_via: type: array description: '' example: - database - mail items: type: string enum: - database - mail certificate_expired_notification_via: type: array description: '' example: - database - mail items: type: string enum: - database - mail system_information_notification_via: type: array description: '' example: - database - mail items: type: string enum: - database - mail system_unavailable_notification_via: type: array description: '' example: - database - mail items: type: string enum: - database - mail summary_extracted_notification_via: type: array description: '' example: - database - mail items: type: string enum: - database - mail order_challenge_notification_via: type: array description: '' example: - database - mail items: type: string enum: - database - mail failed_purchase_notification_via: type: array description: '' example: - database - mail items: type: string enum: - database - mail order_finished_positive_result_via: type: array description: '' example: - database - mail items: type: string enum: - database - mail canceled_order_notification_via: type: array description: '' example: - database - mail items: type: string enum: - database - mail spreadsheet_placed_purchase_notification: type: array description: '' example: - database - mail items: type: string enum: - database - mail required: - bank_slip_notification_via - placed_purchase_notification_via - finished_order_notification_via - pending_action_notification_via - refunded_order_notification_via - finished_purchase_notification_via - certificate_expired_notification_via - system_information_notification_via - system_unavailable_notification_via - summary_extracted_notification_via - order_challenge_notification_via - failed_purchase_notification_via - order_finished_positive_result_via - canceled_order_notification_via - spreadsheet_placed_purchase_notification parameters: - in: path name: user_id description: 'The ID of the user.' example: 10 required: true schema: type: integer '/users/{user_id}/password': patch: summary: 'Alterar a senha do usuário' operationId: alterarASenhaDoUsurio description: '' parameters: [] responses: 200: description: '' content: application/json: schema: type: object example: id: 1 customer_id: 563 name: 'Dr. Iasmin Alice Rosa Filho' email: iferminiano@example.org email_verified_at: '2026-10-02T20:24:13.728346Z' phone: '8333031479' isolated_orders: true last_login_at: '2026-10-02T20:24:13.728553Z' created_at: '2026-10-02T20:24:13.728620Z' updated_at: '2026-10-02T20:24:13.728681Z' free_order_summary_remaining: 1 two_factor_confirmed_at: '2026-10-02T20:24:13.728762Z' properties: id: type: integer example: 1 customer_id: type: integer example: 563 name: type: string example: 'Dr. Iasmin Alice Rosa Filho' email: type: string example: iferminiano@example.org email_verified_at: type: string example: '2026-10-02T20:24:13.728346Z' phone: type: string example: '8333031479' isolated_orders: type: boolean example: true last_login_at: type: string example: '2026-10-02T20:24:13.728553Z' created_at: type: string example: '2026-10-02T20:24:13.728620Z' updated_at: type: string example: '2026-10-02T20:24:13.728681Z' free_order_summary_remaining: type: integer example: 1 two_factor_confirmed_at: type: string example: '2026-10-02T20:24:13.728762Z' tags: - Usuários requestBody: required: true content: application/json: schema: type: object properties: current_password: type: string description: 'Não pode ser superior a 255 caracteres.' example: Senha@123 new_password: type: string description: 'Não pode ser superior a 255 caracteres.' example: Senha@123 required: - current_password - new_password parameters: - in: path name: user_id description: 'The ID of the user.' example: 10 required: true schema: type: integer '/users/{users}': delete: summary: 'Excluir um ou múltiplos usuários' operationId: excluirUmOuMltiplosUsurios description: '' parameters: [] responses: {} tags: - Usuários parameters: - in: path name: users description: '' example: 1 required: true schema: type: integer '/users/request-admin-enable-automatic-purchase/service/{service_id}': put: summary: 'Envia email para um administrador solicitando ativação da compra automática a pedido de um usuário' operationId: enviaEmailParaUmAdministradorSolicitandoAtivaoDaCompraAutomticaAPedidoDeUmUsurio description: '' parameters: [] responses: {} tags: - Usuários parameters: - in: path name: service_id description: 'The ID of the service.' example: 10 required: true schema: type: integer '/users/request-admin-enable-automatic-order-summary/service/{service_id}': put: summary: 'Envia email para um administrador solicitando ativação da ficha automática a pedido de um usuário' operationId: enviaEmailParaUmAdministradorSolicitandoAtivaoDaFichaAutomticaAPedidoDeUmUsurio description: '' parameters: [] responses: {} tags: - Usuários parameters: - in: path name: service_id description: 'The ID of the service.' example: 10 required: true schema: type: integer