openapi: 3.0.3 info: title: CBRDoc description: '' version: 1.0.0 servers: - url: 'https://api2.cbrdoc.com.br' tags: - name: Login description: '' - name: 'Carteira (Pré pago)' description: '' - name: 'Categorias de serviços' description: '' - name: Cliente description: '' - name: Compras description: '' - name: 'Configurações de documentos' description: '' - name: Contato description: '' - name: 'Faturas (Pré pago)' description: '' - name: 'Faturas (Pós pago)' description: '' - name: Grupos description: '' - name: 'Grupos de permissões' description: '' - name: IA description: '' - name: 'Itens de compra' description: '' - name: 'Meus arquivos' description: '' - name: Notificações description: '' - name: Recorrências description: '' - name: Relatórios description: '' - name: Serviços description: '' - name: 'Serviços por Categoria' 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: null nullable: false password: type: string description: '' example: null nullable: false 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: null nullable: false required: - access_token parameters: - in: path name: provider description: '' example: 10 required: true schema: type: integer /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: null nullable: false required: - token /wallets/deposits: post: summary: 'Deposita créditos na carteira de um cliente pré pago' operationId: depositaCrditosNaCarteiraDeUmClientePrPago description: '' parameters: [] responses: { } tags: - 'Carteira (Pré pago)' requestBody: required: true content: application/json: schema: type: object properties: amount: type: decimal description: 'De 0 até 2 decimais.' example: null nullable: false payment_method: type: string description: '' example: null nullable: false enum: - credit-card - bank-slip - pix credit_card_document_number: type: string description: ' This field is required when payment_method is credit-card. CPF/CNPJ, apenas números.' example: null nullable: false credit_card_holder_name: type: string description: 'This field is required when payment_method is credit-card.' example: null nullable: false credit_card_number: type: string description: ' This field is required when payment_method is credit-card. Número do cartão de crédito, apenas números.' example: null nullable: false credit_card_cvv: type: string description: 'This field is required when payment_method is credit-card. Não pode ser superior a 4 caracteres.' example: null nullable: false credit_card_due_date: type: string description: 'This field is required when payment_method is credit-card. Deve ser uma data válida. Must be a valid date in the format Y-m. Deve ser uma data posterior ou igual a 2025-09.' example: null nullable: false send_email_after_approved: type: boolean description: ' Enviar email após a aprovação dos créditos? Default: true' example: null nullable: false required: - amount - payment_method - 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 /service-categories: get: summary: 'Listar as categorias de serviços' operationId: listarAsCategoriasDeServios 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: services" 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: services" example: null nullable: false - in: query name: append description: "Propriedades disponíveis para incluir na resposta. Múltiplas devem ser separadas com vírgula. \n Disponíveis: services.is_favorite, services.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: services.is_favorite, services.can_be_monitored" example: null nullable: false - 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, menu_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, menu_order" example: null nullable: false - in: query name: filter description: "Campos disponíveis para filtrar. Ex: filter[nome_campo]=valor ou filter[nome_campo]=valor1,valor2. \n Disponíveis: services_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: services_type" example: null nullable: false responses: { } tags: - 'Categorias de serviços' /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 nullable: false - 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, used_storage, prepaid, total_ai_tokens_used_current_month, ai_tokens_above_limit_this_month" 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, used_storage, prepaid, total_ai_tokens_used_current_month, ai_tokens_above_limit_this_month" example: null nullable: false responses: { } tags: - Cliente patch: summary: 'Atualiza os dados do cadastro do cliente' operationId: atualizaOsDadosDoCadastroDoCliente description: '' parameters: [] responses: { } 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: null nullable: false address_zip_code: type: string description: 'Não pode ser superior a 8 caracteres.' example: null nullable: true address_public_place: type: string description: 'Não pode ser superior a 120 caracteres.' example: null nullable: true address_number: type: string description: 'Não pode ser superior a 8 caracteres.' example: null nullable: true address_complement: type: string description: 'Não pode ser superior a 60 caracteres.' example: null nullable: true address_neighborhood: type: string description: 'Não pode ser superior a 80 caracteres.' example: null nullable: true address_city: type: string description: 'Não pode ser superior a 120 caracteres.' example: null nullable: true address_uf: type: string description: 'Não pode ser superior a 2 caracteres.' example: null nullable: true group_mandatory_on_purchase: type: boolean description: ' Indica se deve é obgrigatório relacionar ao menos 1 grupo durante a criação da compra' example: null nullable: true /purchases: post: summary: 'Cria uma compra' operationId: criaUmaCompra 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: null nullable: false shipping_address_zip_code: type: string description: ' Deve ser 8 caracteres. Obrigatório quando algumas das orders tiver o formato papel ou combo' example: null 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: null 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: null 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: null 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: null 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: null 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: null 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: null nullable: false post_payment_method: type: string description: 'This field is required when post_payment is true.' example: null nullable: true enum: - credit-card - bank-slip - pix groups_ids: type: array description: 'The id of an existing record in the App\Models\Group table. Os ids dos grupos que serão relacionados aos itens da compra. Consulte em link' example: null items: type: integer orders: type: array description: 'Deve ter pelo menos 1 item.' example: null items: type: object properties: name: type: string description: 'Não pode ser superior a 120 caracteres.' example: null nullable: false service_id: type: integer description: 'The id of an existing record in the App\Models\Service table. O ID do serviço. Consulte em link' example: null nullable: false service_category_id: type: integer description: 'The id of an existing record in the App\Models\ServiceCategory table. A categoria do serviço. Está disponível nos campos do serviço.' example: null nullable: false auto_purchase_certificate_from_result_negative: type: boolean description: '' example: null nullable: false auto_purchase_certificate_from_result_positive: type: boolean description: '' example: null nullable: false 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: - name - service_id - service_category_id - 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: null 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 nullable: false - 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 nullable: false - 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, orders.service_category" 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, orders.service_category" example: null nullable: false - 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 nullable: false - 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" 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" example: null nullable: false - 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 nullable: false 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: 'The id of an existing record in the App\Models\Group table. Os ids dos grupos que serão relacionados aos itens da compra. Consulte em link' example: null items: type: integer orders: type: array description: 'Deve ter pelo menos 1 item.' example: null items: type: object properties: name: type: string description: 'Não pode ser superior a 120 caracteres.' example: null nullable: false service_id: type: integer description: 'The id of an existing record in the App\Models\Service table. O ID do serviço. Consulte em link' example: null nullable: false service_category_id: type: integer description: 'The id of an existing record in the App\Models\ServiceCategory table. A categoria do serviço. Está disponível nos campos do serviço.' example: null nullable: false auto_purchase_certificate_from_result_negative: type: boolean description: '' example: null nullable: false auto_purchase_certificate_from_result_positive: type: boolean description: '' example: null nullable: false 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: - name - service_id - service_category_id - 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: null 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, orders.service_category" 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, orders.service_category" example: null nullable: false - 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 nullable: false responses: { } tags: - Compras parameters: - in: path name: id description: 'The ID of the purchase.' example: 10 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: null nullable: false 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: 'This field is required when quote_status is reject. Não pode ser superior a 120 caracteres.' example: null 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: - in: query name: groupBy description: ' Indica se arquivos .zip devem criar a estrutura baseada na compra ou no registro do item da compra.' example: purchase required: false schema: type: string description: ' Indica se arquivos .zip devem criar a estrutura baseada na compra ou no registro do item da compra.' example: purchase nullable: false enum: - purchase - register responses: { } tags: - Compras 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: false required: false schema: type: boolean description: ' Indica se cada resultado encontrado para uma pesquisa deve ser mostrado em uma linha diferente.' example: false nullable: false responses: { } 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. Must be one of:' required: true schema: type: string examples: omitted: summary: 'When the value is omitted' value: '' /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: null nullable: false 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: null items: type: object properties: service_id: type: integer description: 'The id of an existing record in the App\Models\Service table.' example: null nullable: false ai_model_id: type: integer description: '' example: null nullable: false 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: '' example: null 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 resultado de pesquisa' operationId: definirCompraAutomticaDeCertidesAPartirDeResultadoDePesquisa 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: '' example: null 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 nullable: false - 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 nullable: false - 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 nullable: false - 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 nullable: false responses: { } tags: - 'Configurações de documentos' post: summary: 'Criar um modelo de prazo de vencimento de documento' operationId: criarUmModeloDePrazoDeVencimentoDeDocumento description: '' parameters: [] responses: { } tags: - 'Configurações de documentos' requestBody: required: true content: application/json: schema: type: object properties: service_id: type: integer description: 'The id of an existing record in the App\Models\Service table.' example: null nullable: false expiration_days: type: integer description: 'Deve ser pelo menos 1.' example: null nullable: false 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: { } tags: - 'Configurações de documentos' requestBody: required: true content: application/json: schema: type: object properties: service_id: type: integer description: 'The id of an existing record in the App\Models\Service table.' example: null nullable: false expiration_days: type: integer description: 'Deve ser pelo menos 1.' example: null nullable: false 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 /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: null nullable: false body: type: string description: 'Não pode ser superior a 10000 caracteres.' example: null nullable: false required: - subject - body '/invoices/{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 nullable: false - 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 nullable: false - 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 nullable: false - 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 nullable: false - 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 nullable: false 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/{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 nullable: false 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 nullable: false - 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 nullable: false - 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 nullable: false - 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 nullable: false - 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 nullable: false 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 /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 nullable: false - 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 nullable: false 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: array description: 'Deve ter pelo menos 1 item.' example: null items: type: object properties: name: type: string description: 'Deve ser único. Não pode ser superior a 60 caracteres.' example: null nullable: false required: - name required: - groups '/groups/{group_id}': put: summary: 'Alterar um grupo' operationId: alterarUmGrupo description: '' parameters: [] responses: { } tags: - Grupos requestBody: required: true content: application/json: schema: type: object properties: name: type: string description: 'Deve ser único. Não pode ser superior a 60 caracteres.' example: null nullable: false 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 nullable: false - 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 nullable: false responses: { } tags: - 'Grupos de permissões' /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 nullable: false - 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 nullable: false - 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, service.category1, service.category2, 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, service.category1, service.category2, customer, customer_count, customerExists" example: null nullable: false - 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 nullable: false - 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 nullable: false - 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 nullable: false responses: { } tags: - IA post: summary: 'Criar um modelo personalizado de IA' operationId: criarUmModeloPersonalizadoDeIA 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 120 caracteres.' example: null nullable: false document_name: type: string description: 'This field is required when service_id is null. Não pode ser superior a 120 caracteres.' example: null nullable: true service_id: type: integer description: 'The id of an existing record in the App\Models\Service table.' example: null nullable: true questions: type: array description: 'Deve ter pelo menos 1 item.' example: null items: type: object properties: question_to_send_to_ai: type: string description: ' A soma dos caracteres de todos os questions.question_to_send_to_ai não pode ser superior a50000 caracteres.' example: null nullable: false label_show_user: type: string description: 'Não pode ser superior a 60 caracteres. Não pode ser superior a 60 caracteres.' example: null nullable: false required: - question_to_send_to_ai - label_show_user required: - name - questions '/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 nullable: false - 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 nullable: false responses: { } tags: - IA parameters: - in: path name: id description: 'The ID of the model.' example: 10 required: true schema: type: integer '/ai/models/{aiModel_id}': put: summary: 'Altera um modelo personalizado de IA' operationId: alteraUmModeloPersonalizadoDeIA 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 120 caracteres.' example: null nullable: false document_name: type: string description: 'This field is required when service_id is null. Não pode ser superior a 120 caracteres.' example: null nullable: true service_id: type: integer description: 'The id of an existing record in the App\Models\Service table.' example: null nullable: true questions: type: array description: 'Deve ter pelo menos 1 item.' example: null items: type: object properties: question_to_send_to_ai: type: string description: ' A soma dos caracteres de todos os questions.question_to_send_to_ai não pode ser superior a50000 caracteres.' example: null nullable: false label_show_user: type: string description: 'Não pode ser superior a 60 caracteres. Não pode ser superior a 60 caracteres.' example: null nullable: false required: - question_to_send_to_ai - label_show_user required: - name - questions 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: distinctio required: true schema: type: string '/ai/threads/{aiThread_id}': get: summary: 'Retorna os dados de uma thread' operationId: retornaOsDadosDeUmaThread 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, 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, messages_count" example: null nullable: false - 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 nullable: false responses: { } tags: - IA parameters: - in: path name: aiThread_id description: 'The ID of the aiThread.' example: 10 required: true schema: type: integer /ai/threads: get: summary: 'Listar as threads de IA iniciadas pelo usuário' operationId: listarAsThreadsDeIAIniciadasPeloUsurio 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 nullable: false - 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 nullable: false - 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, 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, messages_count" example: null nullable: false - 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 nullable: false - 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 nullable: false responses: { } tags: - IA post: summary: 'Inicia uma nova conversa com a IA' operationId: iniciaUmaNovaConversaComAIA description: '' parameters: [] responses: { } tags: - IA '/ai/threads/{aiThread_id}/messages': post: summary: 'Adiciona uma mensagem em uma conversa existente com a IA' operationId: adicionaUmaMensagemEmUmaConversaExistenteComAIA description: '' parameters: [] responses: { } tags: - IA requestBody: required: true content: application/json: schema: type: object properties: message: type: string description: '' example: null nullable: false files_ids: type: array description: 'Não pode ter mais do que 50 itens.' example: null 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: aiThread_id description: 'The ID of the aiThread.' example: 10 required: true schema: type: integer /ai/threads/files: post: summary: 'Faz upload de um arquivo para ser usado em uma mensagem da thread' operationId: fazUploadDeUmArquivoParaSerUsadoEmUmaMensagemDaThread 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: 'Um ou múltiplos arquivos com menos de 70MB cada (pdf,doc,docx,pptx,txt). Máximo 20 arquivos. Máximo de 500MB no total.' example: null 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 nullable: false - 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 nullable: false - 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, service_category, service_category_count, service_categoryExists, 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, 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, service_category, service_category_count, service_categoryExists, 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, originated_from, originated_from_count, originated_fromExists" example: null nullable: false - 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, 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, 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 nullable: false - 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" 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" example: null nullable: false - 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, status, service_id, group_id, user_id, purchase.recurrence_id, ai, purchase_id, ocr_content, expired, has_active_challenge, has_extracted_summary, originated_from_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, status, service_id, group_id, user_id, purchase.recurrence_id, ai, purchase_id, ocr_content, expired, has_active_challenge, has_extracted_summary, originated_from_id" example: null nullable: false 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, service_category, service_category_count, service_categoryExists, 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, 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, service_category, service_category_count, service_categoryExists, 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, originated_from, originated_from_count, originated_fromExists" example: null nullable: false - 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, 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, 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 nullable: false - 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, status, service_id, group_id, user_id, purchase.recurrence_id, ai, purchase_id, ocr_content, expired, has_active_challenge, has_extracted_summary, originated_from_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, status, service_id, group_id, user_id, purchase.recurrence_id, ai, purchase_id, ocr_content, expired, has_active_challenge, has_extracted_summary, originated_from_id" example: null nullable: false responses: { } tags: - 'Itens de compra' parameters: - in: path name: id description: 'The ID of the order.' example: 10 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: null nullable: false 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: ' Os ids dos grupos para associar ou um array vazio para remover todos os grupos associados.' example: null 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: null nullable: false 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: { } tags: - 'Itens de compra' requestBody: required: true content: application/json: schema: type: object properties: via: type: string description: '' example: null nullable: false enum: - link - whatsapp - email destination_email: type: string description: 'This field is required when via is email. Deve ser um endereço de e-mail válido.' example: null nullable: false 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: { } 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: - in: query name: groupBy description: ' Indica se arquivos .zip devem criar a estrutura baseada na compra ou no registro do item da compra.' example: purchase required: false schema: type: string description: ' Indica se arquivos .zip devem criar a estrutura baseada na compra ou no registro do item da compra.' example: purchase nullable: false enum: - purchase - register responses: { } tags: - 'Itens de compra' 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: null nullable: false description: type: string description: 'Não pode ser superior a 32000 caracteres.' example: null nullable: false 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: files: type: array description: 'Até 50 arquivos de no máximo 10Mb cada. Formatos aceitos:pdf,jpg,png' example: null items: type: string description: type: string description: 'Não pode ser superior a 2000 caracteres.' example: null nullable: false required: - files - description 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: 'Um ou múltiplos arquivos com menos de 70MB cada (pdf, jpg, jpeg, png). Máximo 50 arquivos. Máximo de 500MB no total.' example: null items: type: string 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. Must be a valid date in the format Y-m-d.' example: null 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: ' The id of an existing record in the App\Models\Service table. O ID do serviço. Consulte em link' example: null nullable: false service_category_id: type: integer description: ' The id of an existing record in the App\Models\ServiceCategory table. A categoria do serviço. Está disponível nos campos do serviço.' example: null nullable: false 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: - service_id - service_category_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: null 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 nullable: false properties: { } service_id: type: integer description: 'The id of an existing record in the App\Models\Service table.' example: null nullable: false service_category_id: type: integer description: 'The id of an existing record in the App\Models\ServiceCategory table.' example: null nullable: false required: - detailed_service_data - service_id - service_category_id required: - detailed_services_data '/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: ' Os ids dos grupos para associar ou um array vazio para remover todos os grupos associados.' example: null items: type: integer parameters: - in: path name: purchase_id description: 'The ID of the purchase.' example: 10 required: true schema: type: integer /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 nullable: false - 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 nullable: false - 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, 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, parent, parent_count, parentExists, ocr, ocr_count, ocrExists, ocr.pages" example: null nullable: false - 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 nullable: false - 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 nullable: false - 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 nullable: false 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, 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, parent, parent_count, parentExists, ocr, ocr_count, ocrExists, ocr.pages" example: null nullable: false - 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 nullable: false responses: { } tags: - 'Meus arquivos' parameters: - in: path name: id description: 'The ID of the explorer.' example: 10 required: true schema: type: integer '/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: ' Os ids dos grupos para associar ou um array vazio para remover todos os grupos associados.' example: null 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: 'The id of an existing record in the App\Models\Service table.' example: null 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: null nullable: false 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: order required: true schema: type: string description: ' Valor fixo: folder' example: order nullable: false enum: - folder - order - uploaded_file - ai 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: null nullable: false 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 nullable: false enum: - purchase - register - directory responses: { } tags: - 'Meus arquivos' 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: 'Um ou múltiplos arquivos com menos de 70MB cada (pdf, jpg, jpeg, png). Máximo 50 arquivos. Máximo de 500MB no total.' example: null items: type: string parent_id: type: integer description: ' O ID do pai, deve ser uma pasta.' example: null nullable: true service_id: type: integer description: 'The id of an existing record in the App\Models\Service table.' example: null nullable: true groups_ids: type: array description: '' example: null 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: aut 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 nullable: false - 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 nullable: false - 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 nullable: false - 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 nullable: false 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 notificaçoes do usuário como lidas' operationId: marcaNotificaoesDoUsurioComoLidas description: '' parameters: [] responses: { } tags: - Notificações parameters: - in: path name: notifications description: '' example: 000003b9-46fb-471a-9a37-8ce5d3a3a36b required: true schema: type: string '/notifications/{notifications}/unread': put: summary: 'Marca notificaçoes do usuário como não lidas' operationId: marcaNotificaoesDoUsurioComoNoLidas description: '' parameters: [] responses: { } tags: - Notificações parameters: - in: path name: notifications description: '' example: 000003b9-46fb-471a-9a37-8ce5d3a3a36b 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: 000003b9-46fb-471a-9a37-8ce5d3a3a36b required: true schema: type: string /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 nullable: false - 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 nullable: false - 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 nullable: false - 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 nullable: false - 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 nullable: false - 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 nullable: false responses: { } tags: - Recorrências post: summary: 'Criar uma recorrência' operationId: criarUmaRecorrncia description: '' parameters: [] responses: { } 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: null nullable: false starts_at: type: string description: ' Deve ser uma data válida. Must be a valid date in the format Y-m-d. Deve ser uma data posterior a hoje. A data que a recorrência irá rodar a primeira vez. Deve ser uma data válida para a frequência selecionada.' example: null nullable: false frequency: type: string description: '' example: null nullable: false enum: - weekly - monthly - yearly - every_x_days monthly_day_of_month: type: integer description: 'This field is required when frequency is monthly. Deve ser entre 1 e 31.' example: null nullable: false yearly_day: type: integer description: 'This field is required when frequency is yearly. Deve ser entre 1 e 31.' example: null nullable: false yearly_month: type: integer description: 'This field is required when frequency is yearly. Deve ser entre 1 e 12.' example: null nullable: false weekly_happens_on: type: object description: 'This field is required when frequency is weekly. Não pode ter mais do que 7 itens.' example: null nullable: false properties: { } every_x_days_number_of_days: type: integer description: 'This field is required when frequency is every_x_days. Deve ser pelo menos 1.' example: null nullable: false specific_time: type: string description: 'Must be a valid date in the format H:i.' example: null nullable: true groups_ids: type: array description: 'Deve ter pelo menos 0 itens.' example: null items: type: integer notify_result_changes_in_items: type: boolean description: '' example: null nullable: false items: type: array description: '' example: null items: type: object properties: order_id: type: integer description: 'The id of an existing record in the App\Models\Order table.' example: null nullable: false required: - order_id required: - name - starts_at - frequency - notify_result_changes_in_items - 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 nullable: false - 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 nullable: false responses: { } tags: - Recorrências parameters: - in: path name: id description: 'The ID of the recurrence.' example: 10 required: true schema: type: integer /recurrences/by-purchase: post: summary: 'Criar uma recorrência a partir de uma compra' operationId: criarUmaRecorrnciaAPartirDeUmaCompra description: '' parameters: [] responses: { } 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: null nullable: false starts_at: type: string description: ' Deve ser uma data válida. Must be a valid date in the format Y-m-d. Deve ser uma data posterior a hoje. A data que a recorrência irá rodar a primeira vez. Deve ser uma data válida para a frequência selecionada.' example: null nullable: false frequency: type: string description: '' example: null nullable: false enum: - weekly - monthly - yearly - every_x_days monthly_day_of_month: type: integer description: 'This field is required when frequency is monthly. Deve ser entre 1 e 31.' example: null nullable: false yearly_day: type: integer description: 'This field is required when frequency is yearly. Deve ser entre 1 e 31.' example: null nullable: false yearly_month: type: integer description: 'This field is required when frequency is yearly. Deve ser entre 1 e 12.' example: null nullable: false weekly_happens_on: type: object description: 'This field is required when frequency is weekly. Não pode ter mais do que 7 itens.' example: null nullable: false properties: { } every_x_days_number_of_days: type: integer description: 'This field is required when frequency is every_x_days. Deve ser pelo menos 1.' example: null nullable: false specific_time: type: string description: 'Must be a valid date in the format H:i.' example: null nullable: true groups_ids: type: array description: 'Deve ter pelo menos 0 itens.' example: null items: type: integer notify_result_changes_in_items: type: boolean description: '' example: null nullable: false purchase_id: type: integer description: '' example: null nullable: false required: - name - starts_at - frequency - notify_result_changes_in_items - purchase_id '/recurrences/{recurrence_id}': put: summary: 'Alterar uma recorrência' operationId: alterarUmaRecorrncia description: '' parameters: [] responses: { } 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: null nullable: false starts_at: type: string description: ' Deve ser uma data válida. Must be a valid date in the format Y-m-d. Deve ser uma data posterior a hoje. A data que a recorrência irá rodar a primeira vez. Deve ser uma data válida para a frequência selecionada.' example: null nullable: false frequency: type: string description: '' example: null nullable: false enum: - weekly - monthly - yearly - every_x_days monthly_day_of_month: type: integer description: 'This field is required when frequency is monthly. Deve ser entre 1 e 31.' example: null nullable: false yearly_day: type: integer description: 'This field is required when frequency is yearly. Deve ser entre 1 e 31.' example: null nullable: false yearly_month: type: integer description: 'This field is required when frequency is yearly. Deve ser entre 1 e 12.' example: null nullable: false weekly_happens_on: type: object description: 'This field is required when frequency is weekly. Não pode ter mais do que 7 itens.' example: null nullable: false properties: { } every_x_days_number_of_days: type: integer description: 'This field is required when frequency is every_x_days. Deve ser pelo menos 1.' example: null nullable: false specific_time: type: string description: 'Must be a valid date in the format H:i.' example: null nullable: true groups_ids: type: array description: 'Deve ter pelo menos 0 itens.' example: null items: type: integer notify_result_changes_in_items: type: boolean description: '' example: null nullable: false items: type: array description: '' example: null items: type: object properties: id: type: number description: ' O ID de um item existente nessa recorrência. Se informado, o ID será mantido e o item atualizado. Se não informado, um novo item será criado.' example: null nullable: true order_id: type: integer description: 'The id of an existing record in the App\Models\Order table.' example: null nullable: false required: - order_id required: - name - starts_at - frequency - notify_result_changes_in_items - 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: { } 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|inactive 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: { } tags: - Relatórios requestBody: required: false content: application/json: schema: type: object properties: begin_date: type: string description: 'Deve ser uma data válida. Must be a valid date in the format Y-m-d.' example: null nullable: true end_date: type: string description: 'Deve ser uma data válida. Must be a valid date in the format Y-m-d.' example: null nullable: true explorer_item_id: type: array description: '' example: null items: type: integer purchase_id: type: array description: '' example: null items: type: integer ai_model_id: type: array description: '' example: null items: type: integer 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|xlsx '/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: { } tags: - Relatórios requestBody: required: false content: application/json: schema: type: object properties: one_result_per_row: type: boolean description: ' Indica se cada resultado encontrado para uma pesquisa deve ser mostrado em uma linha diferente.' example: null nullable: false 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. Must be a valid date in the format Y-m.' example: null nullable: false end_date: type: string description: 'Deve ser uma data válida. Must be a valid date in the format Y-m.' example: null nullable: false 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 /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. Must be a valid date in the format Y-m-d.' example: null nullable: false end_date: type: string description: 'Deve ser uma data válida. Must be a valid date in the format Y-m-d.' example: null nullable: false 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. Must be a valid date in the format Y-m-d.' example: null nullable: false end_date: type: string description: 'Deve ser uma data válida. Must be a valid date in the format Y-m-d.' example: null nullable: false 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. Must be a valid date in the format Y-m.' example: null nullable: false end_date: type: string description: 'Deve ser uma data válida. Must be a valid date in the format Y-m.' example: null nullable: false 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: 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: category1, category1_count, category1Exists, category2, category2_count, category2Exists, 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: category1, category1_count, category1Exists, category2, category2_count, category2Exists, ai_default_model, ai_default_model_count, ai_default_modelExists, ai_default_model.questions" example: null nullable: false - 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 nullable: false - 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 nullable: false - 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, category1_id, category2_id, 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, category1_id, category2_id, type, can_trigger_automatic_purchase, order_summary_available" example: null nullable: false 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: category1, category1_count, category1Exists, category2, category2_count, category2Exists, 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: category1, category1_count, category1Exists, category2, category2_count, category2Exists, aiDefaultModel, aiDefaultModel_count, aiDefaultModelExists" example: null nullable: false - 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 nullable: false responses: { } tags: - Serviços parameters: - in: path name: id description: 'The ID of the service.' example: 10 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: category1, category1_count, category1Exists, category2, category2_count, category2Exists, 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: category1, category1_count, category1Exists, category2, category2_count, category2Exists, aiDefaultModel, aiDefaultModel_count, aiDefaultModelExists" example: null nullable: false - 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 nullable: false responses: { } tags: - Serviços parameters: - in: path name: code description: 'O código do serviço' example: certidao-nascimento required: true schema: type: string '/services/{serviceId}/categories/{serviceCategoryId}/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: serviceId description: '' example: 10 required: true schema: type: integer - in: path name: serviceCategoryId description: '' example: 10 required: true schema: type: integer '/services/{serviceId}/categories/{serviceCategoryId}/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: serviceId description: '' example: 10 required: true schema: type: integer - in: path name: serviceCategoryId description: '' example: 10 required: true schema: type: integer - 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/{serviceId}/categories/{serviceCategoryId}/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: serviceId description: '' example: 10 required: true schema: type: integer - in: path name: serviceCategoryId description: '' example: 10 required: true schema: type: integer - 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/{serviceId}/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: serviceId description: '' example: 10 required: true schema: type: integer /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/{serviceId}/categories/{serviceCategoryId}/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: serviceId description: '' example: 10 required: true schema: type: integer - in: path name: serviceCategoryId description: '' example: 10 required: true schema: type: integer '/services/{serviceId}/categories/{serviceCategoryId}/prices-shipping-info': put: summary: 'Calcula o preço e prazo de entrega de um serviço' operationId: calculaOPreoEPrazoDeEntregaDeUmServio 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: serviceId description: '' example: 10 required: true schema: type: integer - in: path name: serviceCategoryId description: '' example: 10 required: true schema: type: integer '/services/{serviceId}/categories/{serviceCategoryId}/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: serviceId description: '' example: 10 required: true schema: type: integer - in: path name: serviceCategoryId description: '' example: 10 required: true schema: type: integer '/services/{serviceId}/categories/{serviceCategoryId}/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: serviceId description: '' example: 10 required: true schema: type: integer - in: path name: serviceCategoryId description: '' example: 10 required: true schema: type: integer - 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: null 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 nullable: false properties: { } service_id: type: integer description: 'The id of an existing record in the App\Models\Service table.' example: null nullable: false service_category_id: type: integer description: 'The id of an existing record in the App\Models\ServiceCategory table.' example: null nullable: false required: - detailed_service_data - service_id - service_category_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 nullable: false - 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 nullable: false - 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 nullable: false responses: { } tags: - Serviços '/service-categories/{serviceCategory}/services/most-used': get: summary: 'Lista os 5 serviços mais usados de uma categoria específica' operationId: listaOs5ServiosMaisUsadosDeUmaCategoriaEspecfica description: '' parameters: [] responses: { } tags: - 'Serviços por Categoria' parameters: - in: path name: serviceCategory description: '' example: 1 required: true schema: type: integer '/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: { } 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: null nullable: false 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: { } tags: - Usuários requestBody: required: true content: application/json: schema: type: object properties: email: type: string description: ' O email do usuário' example: null nullable: false required: - email security: [] /users: post: summary: 'Criar um usuário' operationId: criarUmUsurio description: '' parameters: [] responses: { } tags: - Usuários requestBody: required: true content: application/json: schema: type: object properties: name: type: string description: 'Não pode ser superior a 60 caracteres.' example: null nullable: false email: type: string description: 'Deve ser um endereço de e-mail válido. Não pode ser superior a 200 caracteres.' example: null nullable: false password: type: string description: 'Não pode ser superior a 255 caracteres.' example: null nullable: false phone: type: string description: 'Não pode ser superior a 15 caracteres.' example: null nullable: true permissions: type: array description: '' example: null items: type: integer required: - name - email - 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 nullable: false - 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 nullable: false - 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, 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, notifications_preferences, notifications_preferences_count, notifications_preferencesExists" example: null nullable: false - in: query name: append description: "Propriedades disponíveis para incluir na resposta. Múltiplas devem ser separadas com vírgula. \n Disponíveis: total_ai_tokens_used_current_month, ai_tokens_above_limit_this_month, customer.total_ai_tokens_used_current_month, customer.ai_tokens_above_limit_this_month" 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: total_ai_tokens_used_current_month, ai_tokens_above_limit_this_month, customer.total_ai_tokens_used_current_month, customer.ai_tokens_above_limit_this_month" example: null nullable: false - 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 nullable: false 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 nullable: false - 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 nullable: false - 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, 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, notifications_preferences, notifications_preferences_count, notifications_preferencesExists" example: null nullable: false - in: query name: append description: "Propriedades disponíveis para incluir na resposta. Múltiplas devem ser separadas com vírgula. \n Disponíveis: total_ai_tokens_used_current_month, ai_tokens_above_limit_this_month, customer.total_ai_tokens_used_current_month, customer.ai_tokens_above_limit_this_month" 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: total_ai_tokens_used_current_month, ai_tokens_above_limit_this_month, customer.total_ai_tokens_used_current_month, customer.ai_tokens_above_limit_this_month" example: null nullable: false 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, 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, notifications_preferences, notifications_preferences_count, notifications_preferencesExists" example: null nullable: false - in: query name: append description: "Propriedades disponíveis para incluir na resposta. Múltiplas devem ser separadas com vírgula. \n Disponíveis: total_ai_tokens_used_current_month, ai_tokens_above_limit_this_month, customer.total_ai_tokens_used_current_month, customer.ai_tokens_above_limit_this_month" 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: total_ai_tokens_used_current_month, ai_tokens_above_limit_this_month, customer.total_ai_tokens_used_current_month, customer.ai_tokens_above_limit_this_month" example: null nullable: false responses: { } tags: - Usuários parameters: - in: path name: id description: 'The ID of the user.' example: 10 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, 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, notifications_preferences, notifications_preferences_count, notifications_preferencesExists" example: null nullable: false - in: query name: append description: "Propriedades disponíveis para incluir na resposta. Múltiplas devem ser separadas com vírgula. \n Disponíveis: total_ai_tokens_used_current_month, ai_tokens_above_limit_this_month, customer.total_ai_tokens_used_current_month, customer.ai_tokens_above_limit_this_month" 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: total_ai_tokens_used_current_month, ai_tokens_above_limit_this_month, customer.total_ai_tokens_used_current_month, customer.ai_tokens_above_limit_this_month" example: null nullable: false responses: { } tags: - Usuários '/users/{user_id}/permissions': put: summary: 'Alterar as permissões de um usuário' operationId: alterarAsPermissesDeUmUsurio description: '' parameters: [] responses: { } tags: - Usuários requestBody: required: true content: application/json: schema: type: object properties: permissions: type: array description: '' example: null 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: { } tags: - Usuários requestBody: required: true content: application/json: schema: type: object properties: bank_slip_notification_via: type: array description: '' example: null items: type: string enum: - database - mail placed_purchase_notification_via: type: array description: '' example: null items: type: string enum: - database - mail pending_action_notification_via: type: array description: '' example: null items: type: string enum: - database - mail finished_order_notification_via: type: array description: '' example: null items: type: string enum: - database - mail finished_purchase_notification_via: type: array description: '' example: null items: type: string enum: - database - mail refunded_order_notification_via: type: array description: '' example: null items: type: string enum: - database - mail spreadsheet_placed_purchase_notification_via: type: object description: '' example: null nullable: false properties: { } certificate_expired_notification_via: type: array description: '' example: null items: type: string enum: - database - mail system_information_notification_via: type: array description: '' example: null items: type: string enum: - database - mail system_unavailable_notification_via: type: array description: '' example: null items: type: string enum: - database - mail summary_extracted_notification_via: type: array description: '' example: null items: type: string enum: - database - mail order_challenge_notification_via: type: array description: '' example: null items: type: string enum: - database - mail spreadsheet_placed_purchase_notification: type: array description: '' example: null items: type: string enum: - database - mail required: - bank_slip_notification_via - placed_purchase_notification_via - pending_action_notification_via - finished_order_notification_via - finished_purchase_notification_via - refunded_order_notification_via - certificate_expired_notification_via - system_information_notification_via - system_unavailable_notification_via - summary_extracted_notification_via - order_challenge_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: { } 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: null nullable: false new_password: type: string description: 'Não pode ser superior a 255 caracteres.' example: null nullable: false 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