openapi: 3.0.0 info: title: Z-PRO v4.x.x.x description: Postman Z-PRO v4.x.x.x version: 1.0.0 servers: - url: https://{{BaseUrl}} - url: undefined://{{BASE_URL}} components: securitySchemes: bearerAuth: type: http scheme: bearer security: - bearerAuth: [] tags: - name: 📅 Agendamentos e Lembretes - name: 📣 Campanhas - name: 🔌 Canais e Sessões - name: 👤 Contatos - name: 🏗️ CRM - Pipeline - name: 📊 Dashboard - name: 📤 Envio em Lote - name: 📂 Galeria - name: 👥 Grupos WhatsApp - name: 🟢 Interativo Baileys - name: 📷 Interativo Instagram - name: 💬 Interativo Messenger - name: 🟩 Interativo UazAPI - name: 🔘 Interativo Waba - name: 🏷️ Kanban / Tags / Motivos / Filas - name: 📊 Listagens - name: 🔍 Listagens Utilitárias - name: 📞 Logs de Chamadas - name: 📨 Mensagens - name: 📨 Mensagens Avançadas - name: 👥 Mensagens em Grupo - name: 💼 Oportunidades - name: 📋 Templates WABA - name: 🏢 Tenant API - name: 🎫 Tickets - name: 🎫 Tickets - Extras - name: ✅ To-Do List - name: 👥 Usuários paths: /v2/api/external/{ApiID}/appointment/create: post: tags: - 📅 Agendamentos e Lembretes summary: AppointmentCreate requestBody: content: application/json: schema: type: object example: title: Reunião de Vendas description: Reunião sobre proposta comercial contactId: '{{contactId}}' contactName: João Silva contactPhone: '5511999999999' whatsappId: '{{whatsappId}}' startAt: '2026-04-15T14:00:00.000Z' endAt: '2026-04-15T15:00:00.000Z' status: pending notes: Levar proposta impressa properties: title: type: string description: type: string contactId: type: string contactName: type: string contactPhone: type: string whatsappId: type: string startAt: type: string endAt: type: string status: type: string notes: type: string parameters: - name: ApiID in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/appointment/delete/{id}: post: tags: - 📅 Agendamentos e Lembretes summary: AppointmentDelete requestBody: content: application/json: schema: type: object example: {} parameters: - name: ApiID in: path schema: type: string required: true - name: id in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/appointment/list: get: tags: - 📅 Agendamentos e Lembretes summary: AppointmentList parameters: - name: page in: query schema: type: integer example: '1' - name: limit in: query schema: type: integer example: '20' - name: status in: query schema: type: string description: pending | confirmed | cancelled | completed example: pending - name: startFrom in: query schema: type: number description: Filtrar agendamentos a partir desta data (ISO 8601) example: '2026-04-01T00:00:00.000Z' - name: startTo in: query schema: type: number description: Filtrar agendamentos até esta data (ISO 8601) example: '2026-04-30T23:59:59.000Z' - name: search in: query schema: type: string description: Busca por título ou nome do contato - name: ApiID in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/appointment/show/{id}: get: tags: - 📅 Agendamentos e Lembretes summary: AppointmentShow parameters: - name: ApiID in: path schema: type: string required: true - name: id in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/appointment/update/{id}: post: tags: - 📅 Agendamentos e Lembretes summary: AppointmentUpdate requestBody: content: application/json: schema: type: object example: title: Reunião de Vendas (atualizada) description: Descrição atualizada contactId: '{{contactId}}' contactName: João Silva contactPhone: '5511999999999' whatsappId: '{{whatsappId}}' startAt: '2026-04-15T15:00:00.000Z' endAt: '2026-04-15T16:00:00.000Z' status: confirmed notes: Cliente confirmou presença properties: title: type: string description: type: string contactId: type: string contactName: type: string contactPhone: type: string whatsappId: type: string startAt: type: string endAt: type: string status: type: string notes: type: string parameters: - name: ApiID in: path schema: type: string required: true - name: id in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/scheduleReminder/create: post: tags: - 📅 Agendamentos e Lembretes summary: ScheduleReminderCreate requestBody: content: application/json: schema: type: object example: name: Lembrete 24h antes description: Envia mensagem ao contato 24h antes do agendamento hoursBeforeEvent: 24 messageType: message messageContent: Olá {{nome}}, lembrete da sua reunião amanhã! whatsappId: '{{whatsappId}}' active: true properties: name: type: string description: type: string hoursBeforeEvent: type: number messageType: type: string messageContent: type: string whatsappId: type: string active: type: boolean parameters: - name: ApiID in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/scheduleReminder/delete/{id}: post: tags: - 📅 Agendamentos e Lembretes summary: ScheduleReminderDelete requestBody: content: application/json: schema: type: object example: {} parameters: - name: ApiID in: path schema: type: string required: true - name: id in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/scheduleReminder/list: get: tags: - 📅 Agendamentos e Lembretes summary: ScheduleReminderList parameters: - name: ApiID in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/scheduleReminder/toggle/{id}: post: tags: - 📅 Agendamentos e Lembretes summary: ScheduleReminderToggle requestBody: content: application/json: schema: type: object example: {} parameters: - name: ApiID in: path schema: type: string required: true - name: id in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/scheduleReminder/update/{id}: post: tags: - 📅 Agendamentos e Lembretes summary: ScheduleReminderUpdate requestBody: content: application/json: schema: type: object example: name: Lembrete 48h antes description: Envia mensagem 48h antes do evento hoursBeforeEvent: 48 messageType: message messageContent: Olá {{nome}}, sua reunião é em 2 dias! whatsappId: '{{whatsappId}}' active: true properties: name: type: string description: type: string hoursBeforeEvent: type: number messageType: type: string messageContent: type: string whatsappId: type: string active: type: boolean parameters: - name: ApiID in: path schema: type: string required: true - name: id in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/campaign/cancel/{campaignId}: post: tags: - 📣 Campanhas summary: CampaignCancel requestBody: content: application/json: schema: type: object example: {} parameters: - name: ApiID in: path schema: type: string required: true - name: campaignId in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/campaign/contacts/add/{campaignId}: post: tags: - 📣 Campanhas summary: CampaignContactsAdd requestBody: content: application/json: schema: type: array example: - name: Contato 1 number: '5511999990001' - name: Contato 2 number: '5511999990002' items: type: object properties: name: type: string number: type: string parameters: - name: ApiID in: path schema: type: string required: true - name: campaignId in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/campaign/contacts/{campaignId}: get: tags: - 📣 Campanhas summary: CampaignContactsList parameters: - name: ApiID in: path schema: type: string required: true - name: campaignId in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/campaign/contacts/remove/{campaignId}/{contactId}: post: tags: - 📣 Campanhas summary: CampaignContactsRemove requestBody: content: application/json: schema: type: object example: {} parameters: - name: ApiID in: path schema: type: string required: true - name: campaignId in: path schema: type: string required: true - name: contactId in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/campaign/contacts/removeAll/{campaignId}: post: tags: - 📣 Campanhas summary: CampaignContactsRemoveAll requestBody: content: application/json: schema: type: object example: {} parameters: - name: ApiID in: path schema: type: string required: true - name: campaignId in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/campaign/create: post: tags: - 📣 Campanhas summary: CampaignCreate requestBody: content: application/json: schema: type: object example: name: Campanha Teste start: '2026-04-10T10:00:00.000Z' message1: Olá {nome}! message2: Como vai? message3: Até logo! sessionId: '{{sessionId}}' delay: '5' properties: name: type: string start: type: string message1: type: string message2: type: string message3: type: string sessionId: type: string delay: type: string parameters: - name: ApiID in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/campaign/delete/{campaignId}: post: tags: - 📣 Campanhas summary: CampaignDelete requestBody: content: application/json: schema: type: object example: {} parameters: - name: ApiID in: path schema: type: string required: true - name: campaignId in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/campaign/duplicate/{campaignId}: post: tags: - 📣 Campanhas summary: CampaignDuplicate requestBody: content: application/json: schema: type: object example: {} parameters: - name: ApiID in: path schema: type: string required: true - name: campaignId in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/campaign/list: get: tags: - 📣 Campanhas summary: CampaignList parameters: - name: page in: query schema: type: integer example: '1' - name: limit in: query schema: type: integer example: '10' - name: ApiID in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/campaign/pause/{campaignId}: post: tags: - 📣 Campanhas summary: CampaignPause requestBody: content: application/json: schema: type: object example: {} parameters: - name: ApiID in: path schema: type: string required: true - name: campaignId in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/campaign/report/{campaignId}: get: tags: - 📣 Campanhas summary: CampaignReport parameters: - name: ApiID in: path schema: type: string required: true - name: campaignId in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/campaign/resume/{campaignId}: post: tags: - 📣 Campanhas summary: CampaignResume requestBody: content: application/json: schema: type: object example: {} parameters: - name: ApiID in: path schema: type: string required: true - name: campaignId in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/campaign/skip/{campaignId}: post: tags: - 📣 Campanhas summary: CampaignSkip requestBody: content: application/json: schema: type: object example: {} parameters: - name: ApiID in: path schema: type: string required: true - name: campaignId in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/campaign/start/{campaignId}: post: tags: - 📣 Campanhas summary: CampaignStart requestBody: content: application/json: schema: type: object example: {} parameters: - name: ApiID in: path schema: type: string required: true - name: campaignId in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/campaign/update/{campaignId}: post: tags: - 📣 Campanhas summary: CampaignUpdate requestBody: content: application/json: schema: type: object example: name: Campanha Atualizada start: '2026-04-15T10:00:00.000Z' message1: Olá! message2: Tudo bem? message3: Até logo! sessionId: '{{sessionId}}' properties: name: type: string start: type: string message1: type: string message2: type: string message3: type: string sessionId: type: string parameters: - name: ApiID in: path schema: type: string required: true - name: campaignId in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/createtSession: post: tags: - 🔌 Canais e Sessões summary: CreateSession requestBody: content: application/json: schema: type: object example: name: My WhatsApp Instance status: DISCONNECTED type: baileys properties: name: type: string status: type: string type: type: string parameters: - name: ApiID in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/deleteSession: post: tags: - 🔌 Canais e Sessões summary: DeleteSession requestBody: content: application/json: schema: type: object example: whatsappId: 1 properties: whatsappId: type: number parameters: - name: ApiID in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/requestNewQrCodeSession: post: tags: - 🔌 Canais e Sessões summary: RequestNewQrCode requestBody: content: application/json: schema: type: object example: whatsappId: 1 properties: whatsappId: type: number parameters: - name: ApiID in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/showChannel: post: tags: - 🔌 Canais e Sessões summary: ShowChannelInformation requestBody: content: application/json: schema: type: object example: number: '5515998566622' properties: number: type: string parameters: - name: ApiID in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/showChannelById: post: tags: - 🔌 Canais e Sessões summary: ShowChannelInformationById requestBody: content: application/json: schema: type: object example: id: 43 properties: id: type: number parameters: - name: ApiID in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/qrCodeSession: post: tags: - 🔌 Canais e Sessões summary: ShowQrCode requestBody: content: application/json: schema: type: object example: whatsappId: 1 properties: whatsappId: type: number parameters: - name: ApiID in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/startSession: post: tags: - 🔌 Canais e Sessões summary: StartSession requestBody: content: application/json: schema: type: object example: whatsappId: 1 properties: whatsappId: type: number parameters: - name: ApiID in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/blockContact: post: tags: - 👤 Contatos summary: BlockContact requestBody: content: application/json: schema: type: object example: contactId: 1 blocked: true properties: contactId: type: number blocked: type: boolean parameters: - name: ApiID in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/createContact: post: tags: - 👤 Contatos summary: CreateContact requestBody: content: application/json: schema: type: object example: name: Nome number: '5515998566622' email: contato@email.com cpf: 012.345.678.91 firstName: Nome Principal lastName: Sobrenome businessName: Empresa birthdayDate: 01/01/1990 externalKey: ID_UNICA_DO_SISTEMA_CLIENTE_PARA_EXECUTAR_UMA_ACAO_COM_WEBHOOK validateNumber: true properties: name: type: string number: type: string email: type: string cpf: type: string firstName: type: string lastName: type: string businessName: type: string birthdayDate: type: string externalKey: type: string validateNumber: type: boolean parameters: - name: ApiID in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/getContactExtraInfo: get: tags: - 👤 Contatos summary: GetContactExtraInfo parameters: - name: contactId in: query schema: type: integer description: ID do contato example: '1' - name: ApiID in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/contacts/search: post: tags: - 👤 Contatos summary: SearchContacts requestBody: content: application/json: schema: type: object example: searchParam: '' page: 1 limit: 40 tagId: 1 properties: searchParam: type: string page: type: number limit: type: number tagId: type: number parameters: - name: ApiID in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/showcontact: post: tags: - 👤 Contatos summary: ShowContact requestBody: content: application/json: schema: type: object example: number: '5515998566622' validateNumber: true properties: number: type: string validateNumber: type: boolean parameters: - name: ApiID in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/updateContact: post: tags: - 👤 Contatos summary: UpdateContact requestBody: content: application/json: schema: type: object example: name: Nome number: '5515998566622' email: contato@email.com cpf: 012.345.678.91 firstName: Nome Principal lastName: Sobrenome businessName: Empresa birthdayDate: 01/01/1990 kanban: 2 externalKey: ID_UNICA_DO_SISTEMA_CLIENTE_PARA_EXECUTAR_UMA_ACAO_COM_WEBHOOK validateNumber: true properties: name: type: string number: type: string email: type: string cpf: type: string firstName: type: string lastName: type: string businessName: type: string birthdayDate: type: string kanban: type: number externalKey: type: string validateNumber: type: boolean parameters: - name: ApiID in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/updateContactExtraInfo: post: tags: - 👤 Contatos summary: UpdateContactExtraInfo requestBody: content: application/json: schema: type: object example: contactId: 1 extraInfo: - name: Campo Personalizado 1 value: Valor do campo 1 - name: Campo Personalizado 2 value: Valor do campo 2 properties: contactId: type: number extraInfo: type: array items: type: object properties: name: type: string value: type: string parameters: - name: ApiID in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/updateContactKanban: post: tags: - 👤 Contatos summary: UpdateContactKanban requestBody: content: application/json: schema: type: object example: contactId: 1 kanban: 2 properties: contactId: type: number kanban: type: number parameters: - name: ApiID in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/updateContactWallet: post: tags: - 👤 Contatos summary: UpdateContactWallet requestBody: content: application/json: schema: type: object example: contactId: 1 walletId: 2 properties: contactId: type: number walletId: type: number parameters: - name: ApiID in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/mergecontacts: post: tags: - 👤 Contatos summary: MergeContacts requestBody: content: application/json: schema: type: object example: pairs: - primaryId: 123 duplicateId: 456 - primaryNumber: '5511999999999' duplicateNumber: '551199999999' properties: pairs: type: array items: type: object properties: primaryId: type: number duplicateId: type: number parameters: - name: ApiID in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/findduplicatecontacts: post: tags: - 👤 Contatos summary: FindDuplicateContacts requestBody: content: application/json: schema: type: object example: limit: 500 matchKinds: - nine_digit_variant - cross_collision properties: limit: type: number matchKinds: type: array items: type: string parameters: - name: ApiID in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/unmergecontacts: post: tags: - 👤 Contatos summary: UnmergeContacts requestBody: content: application/json: schema: type: object example: duplicateIds: - 456 mergeLogIds: [] properties: duplicateIds: type: array items: type: number mergeLogIds: type: array items: type: string parameters: - name: ApiID in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/pipeline/create: post: tags: - 🏗️ CRM - Pipeline summary: PipelineCreate requestBody: content: application/json: schema: type: object example: name: Funil de Vendas description: Pipeline principal properties: name: type: string description: type: string parameters: - name: ApiID in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/pipeline/delete/{id}: post: tags: - 🏗️ CRM - Pipeline summary: PipelineDelete requestBody: content: application/json: schema: type: object example: {} parameters: - name: ApiID in: path schema: type: string required: true - name: id in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/pipeline/list: get: tags: - 🏗️ CRM - Pipeline summary: PipelineList parameters: - name: page in: query schema: type: integer example: '1' - name: limit in: query schema: type: integer example: '20' - name: ApiID in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/pipeline/show/{id}: get: tags: - 🏗️ CRM - Pipeline summary: PipelineShow parameters: - name: ApiID in: path schema: type: string required: true - name: id in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/pipeline/update/{id}: post: tags: - 🏗️ CRM - Pipeline summary: PipelineUpdate requestBody: content: application/json: schema: type: object example: name: Funil Atualizado properties: name: type: string parameters: - name: ApiID in: path schema: type: string required: true - name: id in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/stage/create: post: tags: - 🏗️ CRM - Pipeline summary: StageCreate requestBody: content: application/json: schema: type: object example: name: Prospecção pipelineId: '{{pipelineId}}' order: 1 color: '#00a300' properties: name: type: string pipelineId: type: string order: type: number color: type: string parameters: - name: ApiID in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/stage/delete/{id}: post: tags: - 🏗️ CRM - Pipeline summary: StageDelete requestBody: content: application/json: schema: type: object example: {} parameters: - name: ApiID in: path schema: type: string required: true - name: id in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/stage/list: get: tags: - 🏗️ CRM - Pipeline summary: StageList parameters: - name: page in: query schema: type: integer example: '1' - name: limit in: query schema: type: integer example: '20' - name: pipelineId in: query schema: type: string example: '{{pipelineId}}' - name: ApiID in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/stage/show/{id}: get: tags: - 🏗️ CRM - Pipeline summary: StageShow parameters: - name: ApiID in: path schema: type: string required: true - name: id in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/stage/update/{id}: post: tags: - 🏗️ CRM - Pipeline summary: StageUpdate requestBody: content: application/json: schema: type: object example: name: Qualificação properties: name: type: string parameters: - name: ApiID in: path schema: type: string required: true - name: id in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/dash/ticketsAndTimes: get: tags: - 📊 Dashboard summary: DashTicketsAndTimes parameters: - name: startDate in: query schema: type: string example: '2026-03-01' - name: endDate in: query schema: type: string example: '2026-03-31' - name: ApiID in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/dash/ticketsChannels: get: tags: - 📊 Dashboard summary: DashTicketsChannels parameters: - name: startDate in: query schema: type: string example: '2026-03-01' - name: endDate in: query schema: type: string example: '2026-03-31' - name: ApiID in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/dash/ticketsEvolution: get: tags: - 📊 Dashboard summary: DashTicketsEvolution parameters: - name: startDate in: query schema: type: string example: '2026-03-01' - name: endDate in: query schema: type: string example: '2026-03-31' - name: ApiID in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/dash/ticketsEvolutionByValue: get: tags: - 📊 Dashboard summary: DashTicketsEvolutionByValue parameters: - name: startDate in: query schema: type: string example: '2026-03-01' - name: endDate in: query schema: type: string example: '2026-03-31' - name: ApiID in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/dash/ticketsEvolutionChannelsName: get: tags: - 📊 Dashboard summary: DashTicketsEvolutionChannelsName parameters: - name: startDate in: query schema: type: string example: '2026-03-01' - name: endDate in: query schema: type: string example: '2026-03-31' - name: ApiID in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/dash/ticketsPerUser: get: tags: - 📊 Dashboard summary: DashTicketsPerUser parameters: - name: startDate in: query schema: type: string example: '2026-03-01' - name: endDate in: query schema: type: string example: '2026-03-31' - name: ApiID in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/dash/ticketsQueue: get: tags: - 📊 Dashboard summary: DashTicketsQueue parameters: - name: startDate in: query schema: type: string example: '2026-03-01' - name: endDate in: query schema: type: string example: '2026-03-31' - name: ApiID in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/dash/ticketsReasons: get: tags: - 📊 Dashboard summary: DashTicketsReasons parameters: - name: startDate in: query schema: type: string example: '2026-03-01' - name: endDate in: query schema: type: string example: '2026-03-31' - name: ApiID in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/dash/ticketsStatus: get: tags: - 📊 Dashboard summary: DashTicketsStatus parameters: - name: startDate in: query schema: type: string example: '2026-03-01' - name: endDate in: query schema: type: string example: '2026-03-31' - name: ApiID in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/dash/ticketsUser: get: tags: - 📊 Dashboard summary: DashTicketsUser parameters: - name: startDate in: query schema: type: string example: '2026-03-01' - name: endDate in: query schema: type: string example: '2026-03-31' - name: ApiID in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/bulkDispatch/incrementProgress/{dispatchId}: post: tags: - 📤 Envio em Lote summary: BulkDispatchIncrementProgress requestBody: content: application/json: schema: type: object example: success: true properties: success: type: boolean parameters: - name: ApiID in: path schema: type: string required: true - name: dispatchId in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/bulkDispatch/list: get: tags: - 📤 Envio em Lote summary: BulkDispatchList parameters: - name: page in: query schema: type: integer example: '1' - name: limit in: query schema: type: integer example: '20' - name: ApiID in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/bulkDispatch/show/{dispatchId}: get: tags: - 📤 Envio em Lote summary: BulkDispatchShow parameters: - name: ApiID in: path schema: type: string required: true - name: dispatchId in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/bulkDispatch/update/{dispatchId}: post: tags: - 📤 Envio em Lote summary: BulkDispatchUpdate requestBody: content: application/json: schema: type: object example: status: cancelled cancellationReason: Cancelado pelo usuário properties: status: type: string cancellationReason: type: string parameters: - name: ApiID in: path schema: type: string required: true - name: dispatchId in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/bulkFastMessage: post: tags: - 📤 Envio em Lote summary: BulkFastMessage description: 'v2 crossChannelTicketCheck: quando a flag ''Verificar conversa em outros canais'' do tenant esta ligada, destinatarios com ticket aberto ou pendente (em qualquer canal) NAO recebem o disparo. A resposta inclui skipped (contagem) e skippedNumbers (lista). Para ignorar a checagem nesta chamada, envie "skipActiveTicketCheck": false no body.' requestBody: content: application/json: schema: type: object example: whatsappId: '{{whatsappId}}' whatsappType: baileys arrayNumbers: - '5511999990001' - '5511999990002' message: Olá, mensagem rápida! min: 3 max: 8 properties: whatsappId: type: string whatsappType: type: string arrayNumbers: type: array items: type: string message: type: string min: type: number max: type: number parameters: - name: ApiID in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/bulkIndividual: post: tags: - 📤 Envio em Lote summary: BulkIndividual requestBody: content: application/json: schema: type: object example: whatsappId: '{{whatsappId}}' number: '5511999990001' message: Olá, mensagem individual! externalKey: ID_UNICA_DO_SISTEMA_CLIENTE_PARA_EXECUTAR_UMA_ACAO_COM_WEBHOOK properties: whatsappId: type: string number: type: string message: type: string externalKey: type: string parameters: - name: ApiID in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/bulkSendMessage: post: tags: - 📤 Envio em Lote summary: BulkSendMessage description: 'v2 crossChannelTicketCheck: quando a flag ''Verificar conversa em outros canais'' do tenant esta ligada, destinatarios com ticket aberto ou pendente (em qualquer canal) NAO recebem o disparo. A resposta inclui skipped (contagem) e skippedNumbers (lista). Para ignorar a checagem nesta chamada, envie "skipActiveTicketCheck": false no body.' requestBody: content: application/json: schema: type: object example: whatsappId: '{{whatsappId}}' arrayNumbers: - '5511999990001' - '5511999990002' message: Olá, tudo bem? min: 3 max: 8 properties: whatsappId: type: string arrayNumbers: type: array items: type: string message: type: string min: type: number max: type: number parameters: - name: ApiID in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/bulkSendMessageWithVariable: post: tags: - 📤 Envio em Lote summary: BulkSendMessageWithVariable description: 'v2 crossChannelTicketCheck: quando a flag ''Verificar conversa em outros canais'' do tenant esta ligada, o destinatario com ticket aberto ou pendente (em qualquer canal) NAO recebe o disparo. A resposta inclui skipped (contagem) e skippedNumbers (lista). Para ignorar a checagem nesta chamada, envie "skipActiveTicketCheck": false no body.' requestBody: content: application/json: schema: type: object example: whatsappId: '{{whatsappId}}' message: Olá {nome}, seu código é {codigo} dataInput: |- 5511999990001,João,ABC123 5511999990002,Maria,DEF456 min: 3 max: 8 properties: whatsappId: type: string message: type: string dataInput: type: string min: type: number max: type: number parameters: - name: ApiID in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/gallery/delete/{id}: post: tags: - 📂 Galeria summary: GalleryDelete requestBody: content: application/json: schema: type: object example: {} parameters: - name: ApiID in: path schema: type: string required: true - name: id in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/gallery/list: get: tags: - 📂 Galeria summary: GalleryList parameters: - name: pageNumber in: query schema: type: integer example: '1' - name: fileType in: query schema: type: string example: image - name: ApiID in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/gallery/upload: post: tags: - 📂 Galeria summary: GalleryUpload requestBody: content: application/json: schema: type: object example: description: Arquivo de marketing properties: description: type: string parameters: - name: ApiID in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/group/addParticipant: post: tags: - 👥 Grupos WhatsApp summary: GroupAddParticipant requestBody: content: application/json: schema: type: object example: whatsappId: '{{whatsappId}}' groupIds: - '{{groupId}}' participants: - '5511999990001' properties: whatsappId: type: string groupIds: type: array items: type: string participants: type: array items: type: string parameters: - name: ApiID in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/group/changeDescription: post: tags: - 👥 Grupos WhatsApp summary: GroupChangeDescription requestBody: content: application/json: schema: type: object example: whatsappId: '{{whatsappId}}' groupIds: - '{{groupId}}' description: Nova descrição do grupo properties: whatsappId: type: string groupIds: type: array items: type: string description: type: string parameters: - name: ApiID in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/group/changePicture: post: tags: - 👥 Grupos WhatsApp summary: GroupChangePicture requestBody: content: application/json: schema: type: object example: whatsappId: '{{whatsappId}}' groupIds: - '{{groupId}}' picture: https://exemplo.com/foto.jpg properties: whatsappId: type: string groupIds: type: array items: type: string picture: type: string parameters: - name: ApiID in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/group/changeTitle: post: tags: - 👥 Grupos WhatsApp summary: GroupChangeTitle requestBody: content: application/json: schema: type: object example: whatsappId: '{{whatsappId}}' groupIds: - '{{groupId}}' title: Novo Título do Grupo properties: whatsappId: type: string groupIds: type: array items: type: string title: type: string parameters: - name: ApiID in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/group/create: post: tags: - 👥 Grupos WhatsApp summary: GroupCreate requestBody: content: application/json: schema: type: object example: whatsappId: '{{whatsappId}}' titles: - Meu Grupo 1 number: '5511999990001' properties: whatsappId: type: string titles: type: array items: type: string number: type: string parameters: - name: ApiID in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/group/demote: post: tags: - 👥 Grupos WhatsApp summary: GroupDemote requestBody: content: application/json: schema: type: object example: whatsappId: '{{whatsappId}}' groupIds: - '{{groupId}}' participants: - '5511999990001' properties: whatsappId: type: string groupIds: type: array items: type: string participants: type: array items: type: string parameters: - name: ApiID in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/group/getInviteLink: post: tags: - 👥 Grupos WhatsApp summary: GroupGetInviteLink requestBody: content: application/json: schema: type: object example: whatsappId: '{{whatsappId}}' groupId: '{{groupId}}' properties: whatsappId: type: string groupId: type: string parameters: - name: ApiID in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/group/list: post: tags: - 👥 Grupos WhatsApp summary: GroupList requestBody: content: application/json: schema: type: object example: whatsappId: '{{whatsappId}}' properties: whatsappId: type: string parameters: - name: ApiID in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/group/listParticipants: post: tags: - 👥 Grupos WhatsApp summary: GroupListParticipants requestBody: content: application/json: schema: type: object example: whatsappId: '{{whatsappId}}' groupIds: - '{{groupId}}' properties: whatsappId: type: string groupIds: type: array items: type: string parameters: - name: ApiID in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/group/promote: post: tags: - 👥 Grupos WhatsApp summary: GroupPromote requestBody: content: application/json: schema: type: object example: whatsappId: '{{whatsappId}}' groupIds: - '{{groupId}}' participants: - '5511999990001' properties: whatsappId: type: string groupIds: type: array items: type: string participants: type: array items: type: string parameters: - name: ApiID in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/group/removeParticipant: post: tags: - 👥 Grupos WhatsApp summary: GroupRemoveParticipant requestBody: content: application/json: schema: type: object example: whatsappId: '{{whatsappId}}' groupIds: - '{{groupId}}' participants: - '5511999990001' properties: whatsappId: type: string groupIds: type: array items: type: string participants: type: array items: type: string parameters: - name: ApiID in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/group/setAdminsOnly: post: tags: - 👥 Grupos WhatsApp summary: GroupSetAdminsOnly requestBody: content: application/json: schema: type: object example: whatsappId: '{{whatsappId}}' groupIds: - '{{groupId}}' adminsOnly: true properties: whatsappId: type: string groupIds: type: array items: type: string adminsOnly: type: boolean parameters: - name: ApiID in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/group/showById: post: tags: - 👥 Grupos WhatsApp summary: GroupShowById requestBody: content: application/json: schema: type: object example: whatsappId: '{{whatsappId}}' groupId: '{{groupId}}' properties: whatsappId: type: string groupId: type: string parameters: - name: ApiID in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/listGroupInfo: post: tags: - 👥 Grupos WhatsApp summary: ListGroupsInfo requestBody: content: application/json: schema: type: object example: listGroups: true listParticipants: true properties: listGroups: type: boolean listParticipants: type: boolean parameters: - name: ApiID in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/sendInteractive/baileys/quickReply: post: tags: - 🟢 Interativo Baileys summary: BaileysQuickReply requestBody: content: application/json: schema: type: object example: ticketId: 1262 body: text: 'Escolha uma opcao:' footer: text: Rodape opcional buttons: - display_text: Opcao 1 id: op1 - display_text: Opcao 2 id: op2 properties: ticketId: type: number body: type: object properties: text: type: string footer: type: object properties: text: type: string buttons: type: array items: type: object properties: display_text: type: string id: type: string parameters: - name: ApiID in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/sendInteractive/baileys/singleSelect: post: tags: - 🟢 Interativo Baileys summary: BaileysSingleSelect requestBody: content: application/json: schema: type: object example: ticketId: 1262 body: text: 'Escolha uma opcao:' footer: text: Rodape list: title: Ver opcoes sections: - title: Secao 1 rows: - id: '1' title: Item 1 description: Descricao - id: '2' title: Item 2 properties: ticketId: type: number body: type: object properties: text: type: string footer: type: object properties: text: type: string list: type: object properties: title: type: string sections: type: array items: type: object properties: title: type: string rows: type: array items: type: object properties: id: type: string title: type: string description: type: string parameters: - name: ApiID in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/sendInteractive/baileys/pixButton: post: tags: - 🟢 Interativo Baileys summary: BaileysPixButton requestBody: content: application/json: schema: type: object example: ticketId: 1262 pixType: EVP pixKey: chave-aleatoria-uuid pixName: Nome Beneficiario bodyText: 'Pague com PIX:' properties: ticketId: type: number pixType: type: string pixKey: type: string pixName: type: string bodyText: type: string parameters: - name: ApiID in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/sendInteractive/baileys/ctaCopy: post: tags: - 🟢 Interativo Baileys summary: BaileysCtaCopy requestBody: content: application/json: schema: type: object example: ticketId: 1262 body: text: 'Copie seu codigo:' footer: text: Valido por 24h displayText: Copiar codigo copyCode: BR123456789 properties: ticketId: type: number body: type: object properties: text: type: string footer: type: object properties: text: type: string displayText: type: string copyCode: type: string parameters: - name: ApiID in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/sendInteractive/baileys/ctaUrl: post: tags: - 🟢 Interativo Baileys summary: BaileysCtaUrl requestBody: content: application/json: schema: type: object example: ticketId: 1262 body: text: 'Acesse nosso site:' footer: text: Clique para visitar displayText: Visitar site url: https://exemplo.com properties: ticketId: type: number body: type: object properties: text: type: string footer: type: object properties: text: type: string displayText: type: string url: type: string parameters: - name: ApiID in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/sendInteractive/baileys/ctaCall: post: tags: - 🟢 Interativo Baileys summary: BaileysCtaCall requestBody: content: application/json: schema: type: object example: ticketId: 1262 body: text: Precisa de ajuda? footer: text: Ligue para nos displayText: Ligar agora phoneNumber: '+5511999999999' properties: ticketId: type: number body: type: object properties: text: type: string footer: type: object properties: text: type: string displayText: type: string phoneNumber: type: string parameters: - name: ApiID in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{apiId}/sendInteractive/instagram/quickReply: post: tags: - 📷 Interativo Instagram summary: Quick Reply requestBody: content: application/json: schema: type: object example: ticketId: 123 message: 'Escolha uma opção:' quickReplies: - content_type: text title: Sim payload: 'YES' - content_type: text title: Não payload: 'NO' - content_type: user_phone_number properties: ticketId: type: number message: type: string quickReplies: type: array items: type: object properties: content_type: type: string title: type: string payload: type: string parameters: - name: Content-Type in: header schema: type: string example: application/json - name: Authorization in: header schema: type: string example: Bearer {{API_TOKEN}} - name: apiId in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{apiId}/sendInteractive/instagram/buttonTemplate: post: tags: - 📷 Interativo Instagram summary: Button Template requestBody: content: application/json: schema: type: object example: ticketId: 123 message: 'Clique em uma opção:' buttons: - type: postback title: Comprar payload: BUY - type: postback title: Falar com atendente payload: HUMAN properties: ticketId: type: number message: type: string buttons: type: array items: type: object properties: type: type: string title: type: string payload: type: string parameters: - name: Content-Type in: header schema: type: string example: application/json - name: Authorization in: header schema: type: string example: Bearer {{API_TOKEN}} - name: apiId in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{apiId}/sendInteractive/instagram/genericTemplate: post: tags: - 📷 Interativo Instagram summary: Generic Template (cards) requestBody: content: application/json: schema: type: object example: ticketId: 123 elements: - title: Produto 1 subtitle: Descrição image_url: https://... buttons: - type: postback title: Ver payload: PROD_1 properties: ticketId: type: number elements: type: array items: type: object properties: title: type: string subtitle: type: string image_url: type: string buttons: type: array items: type: object properties: type: type: string title: type: string payload: type: string parameters: - name: Content-Type in: header schema: type: string example: application/json - name: Authorization in: header schema: type: string example: Bearer {{API_TOKEN}} - name: apiId in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{apiId}/instagram/iceBreakers: post: tags: - 📷 Interativo Instagram summary: Ice Breakers (get/set/delete) requestBody: content: application/json: schema: type: object example: action: set iceBreakers: - question: Qual o horário? payload: HOURS - question: Vocês fazem entrega? payload: DELIVERY properties: action: type: string iceBreakers: type: array items: type: object properties: question: type: string payload: type: string parameters: - name: Content-Type in: header schema: type: string example: application/json - name: Authorization in: header schema: type: string example: Bearer {{API_TOKEN}} - name: apiId in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{apiId}/instagram/persistentMenu: post: tags: - 📷 Interativo Instagram summary: Persistent Menu (get/set/delete) requestBody: content: application/json: schema: type: object example: action: set composerInputDisabled: false menuItems: - type: postback title: Menu payload: MAIN_MENU - type: web_url title: Site url: https://... properties: action: type: string composerInputDisabled: type: boolean menuItems: type: array items: type: object properties: type: type: string title: type: string payload: type: string parameters: - name: Content-Type in: header schema: type: string example: application/json - name: Authorization in: header schema: type: string example: Bearer {{API_TOKEN}} - name: apiId in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{apiId}/sendInteractive/messenger/quickReply: post: tags: - 💬 Interativo Messenger summary: Quick Reply requestBody: content: application/json: schema: type: object example: ticketId: 123 message: 'Escolha:' quickReplies: - content_type: text title: Sim payload: 'YES' - content_type: text title: Não payload: 'NO' properties: ticketId: type: number message: type: string quickReplies: type: array items: type: object properties: content_type: type: string title: type: string payload: type: string parameters: - name: Content-Type in: header schema: type: string example: application/json - name: Authorization in: header schema: type: string example: Bearer {{API_TOKEN}} - name: apiId in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{apiId}/sendInteractive/messenger/buttonTemplate: post: tags: - 💬 Interativo Messenger summary: Button Template requestBody: content: application/json: schema: type: object example: ticketId: 123 message: 'Opções:' buttons: - type: postback title: Opção 1 payload: OPT_1 - type: web_url title: Visitar url: https://... properties: ticketId: type: number message: type: string buttons: type: array items: type: object properties: type: type: string title: type: string payload: type: string parameters: - name: Content-Type in: header schema: type: string example: application/json - name: Authorization in: header schema: type: string example: Bearer {{API_TOKEN}} - name: apiId in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{apiId}/sendInteractive/messenger/genericTemplate: post: tags: - 💬 Interativo Messenger summary: Generic Template (cards) requestBody: content: application/json: schema: type: object example: ticketId: 123 elements: - title: Card 1 subtitle: Subtítulo image_url: https://... buttons: - type: postback title: Ação payload: ACT properties: ticketId: type: number elements: type: array items: type: object properties: title: type: string subtitle: type: string image_url: type: string buttons: type: array items: type: object properties: type: type: string title: type: string payload: type: string parameters: - name: Content-Type in: header schema: type: string example: application/json - name: Authorization in: header schema: type: string example: Bearer {{API_TOKEN}} - name: apiId in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{apiId}/sendInteractive/messenger/mediaTemplate: post: tags: - 💬 Interativo Messenger summary: Media Template (image/video + botões) requestBody: content: application/json: schema: type: object example: ticketId: 123 mediaType: image mediaUrl: https://exemplo.com/imagem.jpg buttons: - type: postback title: Comprar payload: BUY properties: ticketId: type: number mediaType: type: string mediaUrl: type: string buttons: type: array items: type: object properties: type: type: string title: type: string payload: type: string parameters: - name: Content-Type in: header schema: type: string example: application/json - name: Authorization in: header schema: type: string example: Bearer {{API_TOKEN}} - name: apiId in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{apiId}/sendInteractive/messenger/receiptTemplate: post: tags: - 💬 Interativo Messenger summary: Receipt Template (recibo) requestBody: content: application/json: schema: type: object example: ticketId: 123 receipt: recipient_name: João Silva order_number: ORD-001 currency: BRL payment_method: PIX summary: total_cost: 150 elements: - title: Produto A price: 100 quantity: 1 - title: Produto B price: 50 quantity: 1 properties: ticketId: type: number receipt: type: object properties: recipient_name: type: string order_number: type: string currency: type: string payment_method: type: string summary: type: object properties: total_cost: type: number elements: type: array items: type: object properties: title: type: string price: type: number quantity: type: number parameters: - name: Content-Type in: header schema: type: string example: application/json - name: Authorization in: header schema: type: string example: Bearer {{API_TOKEN}} - name: apiId in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{apiId}/sendInteractive/messenger/messageTag: post: tags: - 💬 Interativo Messenger summary: Message Tag (Marketing/Utility) requestBody: content: application/json: schema: type: object example: ticketId: 123 message: Seu pedido foi aprovado. tag: POST_PURCHASE_UPDATE properties: ticketId: type: number message: type: string tag: type: string parameters: - name: Content-Type in: header schema: type: string example: application/json - name: Authorization in: header schema: type: string example: Bearer {{API_TOKEN}} - name: apiId in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{apiId}/sendInteractive/messenger/customerFeedback: post: tags: - 💬 Interativo Messenger summary: Customer Feedback Template (NPS/CSAT) requestBody: content: application/json: schema: type: object example: ticketId: 123 title: Avalie sua experiência subtitle: Opcional business_privacy_url: https://exemplo.com/privacidade expires_in_days: 7 feedback_screens: - questions: - id: CSAT type: csat title: Como foi nosso atendimento? properties: ticketId: type: number title: type: string subtitle: type: string business_privacy_url: type: string expires_in_days: type: number feedback_screens: type: array items: type: object properties: questions: type: array items: type: object properties: id: type: string type: type: string title: type: string parameters: - name: Content-Type in: header schema: type: string example: application/json - name: Authorization in: header schema: type: string example: Bearer {{API_TOKEN}} - name: apiId in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{apiId}/messenger/greeting: post: tags: - 💬 Interativo Messenger summary: Greeting Text (get/set/delete) requestBody: content: application/json: schema: type: object example: action: set greetings: - locale: default text: Olá! Como podemos ajudar? properties: action: type: string greetings: type: array items: type: object properties: locale: type: string text: type: string parameters: - name: Content-Type in: header schema: type: string example: application/json - name: Authorization in: header schema: type: string example: Bearer {{API_TOKEN}} - name: apiId in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{apiId}/messenger/personas: post: tags: - 💬 Interativo Messenger summary: Personas (list/create/delete) requestBody: content: application/json: schema: type: object example: action: create name: Atendente Ana profilePictureUrl: https://exemplo.com/ana.jpg properties: action: type: string name: type: string profilePictureUrl: type: string parameters: - name: Content-Type in: header schema: type: string example: application/json - name: Authorization in: header schema: type: string example: Bearer {{API_TOKEN}} - name: apiId in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/sendInteractive/uazapi/button: post: tags: - 🟩 Interativo UazAPI summary: UazapiButton requestBody: content: application/json: schema: type: object example: ticketId: 1262 text: 'Escolha uma opcao:' choices: - Opcao 1 - Opcao 2 - Opcao 3 footerText: Rodape opcional imageButton: https://exemplo.com/img.png properties: ticketId: type: number text: type: string choices: type: array items: type: string footerText: type: string imageButton: type: string parameters: - name: ApiID in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/sendInteractive/uazapi/list: post: tags: - 🟩 Interativo UazAPI summary: UazapiList requestBody: content: application/json: schema: type: object example: ticketId: 1262 text: 'Escolha uma opcao:' choices: - Item 1 - Item 2 - Item 3 - Item 4 listButton: Ver opcoes footerText: Selecione uma opcao properties: ticketId: type: number text: type: string choices: type: array items: type: string listButton: type: string footerText: type: string parameters: - name: ApiID in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/sendInteractive/uazapi/poll: post: tags: - 🟩 Interativo UazAPI summary: UazapiPoll requestBody: content: application/json: schema: type: object example: ticketId: 1262 text: Qual sua preferencia? choices: - Opcao A - Opcao B - Opcao C selectableCount: 1 properties: ticketId: type: number text: type: string choices: type: array items: type: string selectableCount: type: number parameters: - name: ApiID in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/sendInteractive/uazapi/carousel: post: tags: - 🟩 Interativo UazAPI summary: UazapiCarousel requestBody: content: application/json: schema: type: object example: ticketId: 1262 text: 'Confira nossas opcoes:' carousel: - text: Produto A image: https://exemplo.com/a.png buttons: - text: Ver detalhes type: REPLY - text: Produto B image: https://exemplo.com/b.png buttons: - text: Comprar type: URL properties: ticketId: type: number text: type: string carousel: type: array items: type: object properties: text: type: string image: type: string buttons: type: array items: type: object properties: text: type: string type: type: string parameters: - name: ApiID in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/sendInteractive/uazapi/pixButton: post: tags: - 🟩 Interativo UazAPI summary: UazapiPixButton requestBody: content: application/json: schema: type: object example: ticketId: 1262 pixType: EVP pixKey: chave-aleatoria-uuid pixName: Nome Beneficiario properties: ticketId: type: number pixType: type: string pixKey: type: string pixName: type: string parameters: - name: ApiID in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/sendInteractive/uazapi/locationButton: post: tags: - 🟩 Interativo UazAPI summary: UazapiLocationButton requestBody: content: application/json: schema: type: object example: ticketId: 1262 text: 'Por favor, compartilhe sua localizacao:' properties: ticketId: type: number text: type: string parameters: - name: ApiID in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/sendInteractive/uazapi/requestPayment: post: tags: - 🟩 Interativo UazAPI summary: UazapiRequestPayment requestBody: content: application/json: schema: type: object example: ticketId: 1262 amount: 150 title: 'Pedido #001' text: 'Sua cobranca esta pronta:' footer: Vencimento em 3 dias itemName: Produto X invoiceNumber: NF-001 pixType: EVP pixKey: chave-aleatoria-uuid pixName: Nome Beneficiario properties: ticketId: type: number amount: type: number title: type: string text: type: string footer: type: string itemName: type: string invoiceNumber: type: string pixType: type: string pixKey: type: string pixName: type: string parameters: - name: ApiID in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/sendButtonWABA: post: tags: - 🔘 Interativo Waba summary: SendButtonWABA requestBody: content: application/json: schema: type: object example: number: '5515998566622' message: 'Escolha uma opção:' button1: Opção 1 button2: Opção 2 button3: Opção 3 ticketId: 1262 properties: number: type: string message: type: string button1: type: string button2: type: string button3: type: string ticketId: type: number parameters: - name: ApiID in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/sendListWABA: post: tags: - 🔘 Interativo Waba summary: SendListWABA requestBody: content: application/json: schema: type: object example: number: '5515998566622' header: Menu Principal body: 'Escolha uma opção da lista:' footer: Selecione uma opção button_text: Ver opções sections: - title: Seção 1 rows: - id: '1' title: Opção 1 description: Descrição da opção 1 - id: '2' title: Opção 2 description: Descrição da opção 2 ticketId: 1262 properties: number: type: string header: type: string body: type: string footer: type: string button_text: type: string sections: type: array items: type: object properties: title: type: string rows: type: array items: type: object properties: id: type: string title: type: string description: type: string ticketId: type: number parameters: - name: ApiID in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/createKanban: post: tags: - 🏷️ Kanban / Tags / Motivos / Filas summary: CreateKanban requestBody: content: application/json: schema: type: object example: name: Coluna 1 properties: name: type: string parameters: - name: ApiID in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/createQueueData: post: tags: - 🏷️ Kanban / Tags / Motivos / Filas summary: CreateQueueData requestBody: content: application/json: schema: type: object example: queue: Suporte isActive: true properties: queue: type: string isActive: type: boolean parameters: - name: ApiID in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/createReason: post: tags: - 🏷️ Kanban / Tags / Motivos / Filas summary: CreateReason requestBody: content: application/json: schema: type: object example: name: Resolvido properties: name: type: string parameters: - name: ApiID in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/createTag: post: tags: - 🏷️ Kanban / Tags / Motivos / Filas summary: CreateTag requestBody: content: application/json: schema: type: object example: tag: Urgente color: '#FF0000' isActive: true properties: tag: type: string color: type: string isActive: type: boolean parameters: - name: ApiID in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/deleteKanban/{id}: post: tags: - 🏷️ Kanban / Tags / Motivos / Filas summary: DeleteKanban requestBody: content: application/json: schema: type: object example: {} parameters: - name: ApiID in: path schema: type: string required: true - name: id in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/deleteQueueData/{id}: post: tags: - 🏷️ Kanban / Tags / Motivos / Filas summary: DeleteQueueData requestBody: content: application/json: schema: type: object example: {} parameters: - name: ApiID in: path schema: type: string required: true - name: id in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/deleteReason/{id}: post: tags: - 🏷️ Kanban / Tags / Motivos / Filas summary: DeleteReason requestBody: content: application/json: schema: type: object example: {} parameters: - name: ApiID in: path schema: type: string required: true - name: id in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/deleteTag/{id}: post: tags: - 🏷️ Kanban / Tags / Motivos / Filas summary: DeleteTag requestBody: content: application/json: schema: type: object example: {} parameters: - name: ApiID in: path schema: type: string required: true - name: id in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/listKanban: get: tags: - 🏷️ Kanban / Tags / Motivos / Filas summary: ListKanban parameters: - name: ApiID in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/listReasons: get: tags: - 🏷️ Kanban / Tags / Motivos / Filas summary: ListReasons parameters: - name: ApiID in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/updateKanban/{id}: post: tags: - 🏷️ Kanban / Tags / Motivos / Filas summary: UpdateKanban requestBody: content: application/json: schema: type: object example: name: Coluna Atualizada properties: name: type: string parameters: - name: ApiID in: path schema: type: string required: true - name: id in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/updateQueueData/{id}: post: tags: - 🏷️ Kanban / Tags / Motivos / Filas summary: UpdateQueueData requestBody: content: application/json: schema: type: object example: queue: Suporte v2 isActive: true properties: queue: type: string isActive: type: boolean parameters: - name: ApiID in: path schema: type: string required: true - name: id in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/updateReason/{id}: post: tags: - 🏷️ Kanban / Tags / Motivos / Filas summary: UpdateReason requestBody: content: application/json: schema: type: object example: name: Resolvido com sucesso properties: name: type: string parameters: - name: ApiID in: path schema: type: string required: true - name: id in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/updateTagData/{id}: post: tags: - 🏷️ Kanban / Tags / Motivos / Filas summary: UpdateTagData requestBody: content: application/json: schema: type: object example: tag: Urgente v2 color: '#CC0000' properties: tag: type: string color: type: string parameters: - name: ApiID in: path schema: type: string required: true - name: id in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/getAllSessionApis: get: tags: - 📊 Listagens summary: GetAllSessionApis parameters: - name: ApiID in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/listChannels: get: tags: - 📊 Listagens summary: ListChannels parameters: - name: ApiID in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/listContacts: get: tags: - 📊 Listagens summary: ListContacts parameters: - name: pageNumber in: query schema: type: integer description: Número da página example: '1' - name: searchParam in: query schema: type: string description: Parâmetro de busca (opcional) - name: walletId in: query schema: type: string description: ID da wallet (opcional) - name: tagId in: query schema: type: string description: ID da tag (opcional) - name: ApiID in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/listOpportunities: get: tags: - 📊 Listagens summary: ListOpportunities parameters: - name: page in: query schema: type: integer description: Número da página example: '1' - name: limit in: query schema: type: integer description: Limite de resultados por página example: '40' - name: status in: query schema: type: string description: Status da oportunidade (opcional) - name: pipelineId in: query schema: type: string description: ID do pipeline (opcional) - name: ApiID in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/listQueues: get: tags: - 📊 Listagens summary: ListQueues parameters: - name: ApiID in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/listSessions: get: tags: - 📊 Listagens summary: ListSessions parameters: - name: ApiID in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/listTags: get: tags: - 📊 Listagens summary: ListTags parameters: - name: isActive in: query schema: type: boolean description: Filtrar por tags ativas (true/false) example: 'true' - name: ApiID in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/listTickets: get: tags: - 📊 Listagens summary: ListTickets parameters: - name: pageNumber in: query schema: type: integer description: Número da página example: '1' - name: status in: query schema: type: string description: Status do ticket (open, pending, closed) example: open - name: searchParam in: query schema: type: string description: Parâmetro de busca (opcional) - name: queuesIds in: query schema: type: string description: IDs das filas (opcional) - name: whatsappIds in: query schema: type: string description: IDs dos canais (opcional) - name: ApiID in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/listAutoReplies: get: tags: - 🔍 Listagens Utilitárias summary: ListAutoReplies parameters: - name: ApiID in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/listChatFlows: get: tags: - 🔍 Listagens Utilitárias summary: ListChatFlows parameters: - name: ApiID in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/listFastReplies: get: tags: - 🔍 Listagens Utilitárias summary: ListFastReplies parameters: - name: ApiID in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/callLog/list: get: tags: - 📞 Logs de Chamadas summary: CallLogList parameters: - name: page in: query schema: type: integer example: '1' - name: limit in: query schema: type: integer example: '20' - name: ApiID in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/callLog/show/{id}: get: tags: - 📞 Logs de Chamadas summary: CallLogShow parameters: - name: ApiID in: path schema: type: string required: true - name: id in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/wavoip/calls: get: tags: - 📞 Logs de Chamadas summary: WavoipCallList parameters: - name: page in: query schema: type: integer example: '1' - name: limit in: query schema: type: integer example: '20' - name: ApiID in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/wavoip/calls/{id}: get: tags: - 📞 Logs de Chamadas summary: WavoipCallShow parameters: - name: ApiID in: path schema: type: string required: true - name: id in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/getMessageByMessageId: get: tags: - 📨 Mensagens summary: GetMessageByMessageId parameters: - name: messageId in: query schema: type: string description: 'ID da mensagem retornado pela Meta (ex: wamid.xxxxx)' example: wamid.xxxxx - name: ApiID in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}: post: tags: - 📨 Mensagens summary: SendMessageAPIText requestBody: content: application/json: schema: type: object example: body: A mensagem desejada number: '5515998566622' externalKey: ID_UNICA_DO_SISTEMA_CLIENTE_PARA_EXECUTAR_UMA_ACAO_COM_WEBHOOK isClosed: false validateNumber: true properties: body: type: string number: type: string externalKey: type: string isClosed: type: boolean validateNumber: type: boolean parameters: - name: ApiID in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/url: post: tags: - 📨 Mensagens summary: SendMessageAPIFileURL requestBody: content: application/json: schema: type: object example: mediaUrl: https://comunidadezdg.com.br/wp-content/uploads/2022/07/icon100.png body: A mensagem desejada number: '5515998566622' externalKey: ID_UNICA_DO_SISTEMA_CLIENTE_PARA_EXECUTAR_UMA_ACAO_COM_WEBHOOK isClosed: false validateNumber: true properties: mediaUrl: type: string body: type: string number: type: string externalKey: type: string isClosed: type: boolean validateNumber: type: boolean parameters: - name: ApiID in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/base64: post: tags: - 📨 Mensagens summary: SendMessageAPITextBase64 requestBody: content: application/json: schema: type: object example: body: A mensagem desejada number: '5515998566622' base64Data: iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg== mimeType: image/png fileName: exemplo_imagem isClosed: false validateNumber: true properties: body: type: string number: type: string base64Data: type: string mimeType: type: string fileName: type: string isClosed: type: boolean validateNumber: type: boolean parameters: - name: ApiID in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/voice: post: tags: - 📨 Mensagens summary: SendMessageAPIVoice requestBody: content: application/json: schema: type: object example: audio: https://comunidadezdg.com.br/wp-content/uploads/2022/12/audio.ogg number: '5515998566622' externalKey: ID_UNICA_DO_SISTEMA_CLIENTE_PARA_EXECUTAR_UMA_ACAO_COM_WEBHOOK isClosed: false properties: audio: type: string number: type: string externalKey: type: string isClosed: type: boolean parameters: - name: ApiID in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/params/: get: tags: - 📨 Mensagens summary: SendMessageParams parameters: - name: body in: query schema: type: string description: Texto da mensagem que será enviada example: A%20mensagem%20desejadaa - name: number in: query schema: type: integer description: 'Número do WhatsApp do destinatário (formato: 5511999999999)' example: '5515998566622' - name: externalKey in: query schema: type: string description: Chave única do sistema para identificação (valor gerado do seu lado para controle do envio e não pode se repetir) example: ID_UNICA_DO_SISTEMA_CLIENTE_PARA_EXECUTAR_UMA_ACAO_COM_WEBHOOK - name: bearertoken in: query schema: type: string description: Token de autenticação example: '{{BearerToken}}' - name: isClosed in: query schema: type: boolean description: Define se o ticket será fechado após o envio example: 'false' - name: validateNumber in: query schema: type: boolean description: Validar numero (opcional, padrao true). Se false, usa o numero exatamente como enviado, sem normalizacao do 9o digito BR (recomendado p/ WABA). example: 'true' - name: ApiID in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/searchMessages: get: tags: - 📨 Mensagens Avançadas summary: SearchMessages parameters: - name: ticketId in: query schema: type: string example: '{{ticketId}}' - name: searchParam in: query schema: type: string example: olá - name: page in: query schema: type: integer example: '1' - name: limit in: query schema: type: integer example: '20' - name: ApiID in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/sendLocation: post: tags: - 📨 Mensagens Avançadas summary: SendLocation requestBody: content: application/json: schema: type: object example: number: '5511999990001' latitude: -23.5505 longitude: -46.6333 name: São Paulo address: Av. Paulista, 1000 ticketId: null externalKey: ID_UNICA_DO_SISTEMA_CLIENTE_PARA_EXECUTAR_UMA_ACAO_COM_WEBHOOK properties: number: type: string latitude: type: number longitude: type: number name: type: string address: type: string ticketId: type: string nullable: true externalKey: type: string parameters: - name: ApiID in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/sendVcard: post: tags: - 📨 Mensagens Avançadas summary: SendVcard requestBody: content: application/json: schema: type: object example: number: '5511999990001' contact: - fullName: João Silva wuid: 5511999990002@s.whatsapp.net phoneNumber: '5511999990002' ticketId: null externalKey: ID_UNICA_DO_SISTEMA_CLIENTE_PARA_EXECUTAR_UMA_ACAO_COM_WEBHOOK properties: number: type: string contact: type: array items: type: object properties: fullName: type: string wuid: type: string phoneNumber: type: string ticketId: type: string nullable: true externalKey: type: string parameters: - name: ApiID in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/group: post: tags: - 👥 Mensagens em Grupo summary: SendGroupMessageAPIText requestBody: content: application/json: schema: type: object example: body: A mensagem desejada number: '12356818915189153' externalKey: ID_UNICA_DO_SISTEMA_CLIENTE_PARA_EXECUTAR_UMA_ACAO_COM_WEBHOOK isClosed: false properties: body: type: string number: type: string externalKey: type: string isClosed: type: boolean parameters: - name: ApiID in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/groupMediaUrl: post: tags: - 👥 Mensagens em Grupo summary: SendMessageAPIFileURLGroup requestBody: content: application/json: schema: type: object example: mediaUrl: https://comunidadezdg.com.br/wp-content/uploads/2022/07/icon100.png body: A mensagem desejada number: '12356818915189153' externalKey: ID_UNICA_DO_SISTEMA_CLIENTE_PARA_EXECUTAR_UMA_ACAO_COM_WEBHOOK isClosed: false properties: mediaUrl: type: string body: type: string number: type: string externalKey: type: string isClosed: type: boolean parameters: - name: ApiID in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/createOpportunity: post: tags: - 💼 Oportunidades summary: CreateOpportunity requestBody: content: application/json: schema: type: object example: number: '5535912345678' contactName: Nome do Contato email: contato@email.com name: Nome da Oportunidade 2 value: 10000 status: open pipelineId: 16 stageId: 7 responsibleId: 1 closingForecast: '2024-12-31' description: Descrição da oportunidade validateNumber: true properties: number: type: string contactName: type: string email: type: string name: type: string value: type: number status: type: string pipelineId: type: number stageId: type: number responsibleId: type: number closingForecast: type: string description: type: string validateNumber: type: boolean parameters: - name: ApiID in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/deleteOpportunity: post: tags: - 💼 Oportunidades summary: DeleteOpportunity requestBody: content: application/json: schema: type: object example: opportunityId: 19 properties: opportunityId: type: number parameters: - name: ApiID in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/updateOpportunity: post: tags: - 💼 Oportunidades summary: UpdateOpportunity requestBody: content: application/json: schema: type: object example: opportunityId: 30 name: Nome da Oportunidade 2 API value: 500 status: open pipelineId: 16 stageId: 7 responsibleId: 1 closingForecast: '2024-12-31' description: Descrição da oportunidade properties: opportunityId: type: number name: type: string value: type: number status: type: string pipelineId: type: number stageId: type: number responsibleId: type: number closingForecast: type: string description: type: string parameters: - name: ApiID in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/template: post: tags: - 📋 Templates WABA summary: SendTemplateWaba description: 'A resposta retorna o ticketId do atendimento criado ou reutilizado. Exemplo: { "success": true, "data": { "message": "Message sent successfully", "ticketId": 123 } }' requestBody: content: application/json: schema: type: object example: number: '5515998566622' isClosed: false templateData: messaging_product: whatsapp to: '5515998566622' type: template template: name: hello_world language: code: en_US validateNumber: true properties: number: type: string isClosed: type: boolean templateData: type: object properties: messaging_product: type: string to: type: string type: type: string template: type: object properties: name: type: string language: type: object properties: code: type: string validateNumber: type: boolean parameters: - name: ApiID in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/templateBody: post: tags: - 📋 Templates WABA summary: SendTemplateWabaBody description: 'A resposta retorna o ticketId do atendimento criado ou reutilizado. Exemplo: { "success": true, "data": { "message": "Message sent successfully", "ticketId": 123 } }' requestBody: content: application/json: schema: type: object example: number: '5515998566622' isClosed: false templateData: messaging_product: whatsapp to: '5515998566622' type: template template: name: hello_world language: code: en_US validateNumber: true properties: number: type: string isClosed: type: boolean templateData: type: object properties: messaging_product: type: string to: type: string type: type: string template: type: object properties: name: type: string language: type: object properties: code: type: string validateNumber: type: boolean parameters: - name: ApiID in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/templateMarketingBody: post: tags: - 📋 Templates WABA summary: SendTemplateWabaMarketing description: 'A resposta retorna o ticketId do atendimento criado ou reutilizado. Exemplo: { "success": true, "data": { "message": "Message sent successfully", "ticketId": 123 } }' requestBody: content: application/json: schema: type: object example: number: '5515998566622' isClosed: false templateData: messaging_product: whatsapp to: '5515998566622' type: template template: name: hello_world language: code: en_US validateNumber: true properties: number: type: string isClosed: type: boolean templateData: type: object properties: messaging_product: type: string to: type: string type: type: string template: type: object properties: name: type: string language: type: object properties: code: type: string validateNumber: type: boolean parameters: - name: ApiID in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /tenantCreateApi: post: tags: - 🏢 Tenant API summary: CreateApi requestBody: content: application/json: schema: type: object example: name: API 1 sessionId: 1 urlServiceStatus: null urlMessageStatus: null userId: 1 authToken: '123456' tenant: 1 properties: name: type: string sessionId: type: number urlServiceStatus: type: string nullable: true urlMessageStatus: type: string nullable: true userId: type: number authToken: type: string tenant: type: number responses: '200': description: Successful response content: application/json: {} /tenantApiCreateSession: post: tags: - 🏢 Tenant API summary: CreateSessionTenant requestBody: content: application/json: schema: type: object example: tenant: 1 name: My WhatsApp Instance status: DISCONNECTED type: baileys properties: tenant: type: number name: type: string status: type: string type: type: string responses: '200': description: Successful response content: application/json: {} /tenantDeleteApi: post: tags: - 🏢 Tenant API summary: DeleteApi requestBody: content: application/json: schema: type: object example: sessionId: 43 userId: 1 tenant: 1 apiId: 5ec32c80-4549-4256-8ed1-ed57b86396c3 properties: sessionId: type: number userId: type: number tenant: type: number apiId: type: string responses: '200': description: Successful response content: application/json: {} /tenantApiListTenants: get: tags: - 🏢 Tenant API summary: ListTenants responses: '200': description: Successful response content: application/json: {} /tenantApiShowTenant: post: tags: - 🏢 Tenant API summary: ShowTenant requestBody: content: application/json: schema: type: object example: id: 1 properties: id: type: number responses: '200': description: Successful response content: application/json: {} /tenantApiStoreTenant: post: tags: - 🏢 Tenant API summary: StoreTenant requestBody: content: application/json: schema: type: object example: status: active name: Empresa Exemplo maxUsers: 3 maxConnections: 3 acceptTerms: true email: user@example.com password: securePassword123! userName: Pedro Bastos profile: admin paymentGateway: stripe stripeCustomerId: cus_XXXXXXXXXXXXXX stripeToken: sk_live_XXXXXXXXXXXXXXXX properties: status: type: string name: type: string maxUsers: type: number maxConnections: type: number acceptTerms: type: boolean email: type: string password: type: string userName: type: string profile: type: string paymentGateway: type: string stripeCustomerId: type: string stripeToken: type: string responses: '200': description: Successful response content: application/json: {} /tenantApiUpdateTenant: post: tags: - 🏢 Tenant API summary: UpdateTenant requestBody: content: application/json: schema: type: object example: identity: '07122989674' status: active maxUsers: 100 maxConnections: 10 paymentGateway: asaas supportChatEnabled: enabled menuVisibility: - Groups - MassDispatch - Kanban - Tasks - Api - ChatBot - Reports - Campaigns - PrivateChat - Teams - AllowedChannels allowedChannels: - waba - baileys - whatsapp - meow - evo - zapi - uazapi - telegram - hub - webchat - webmail - wabaoauth - instagramoauth - facebookoauth channelConnectionLimits: waba: 0 baileys: 0 whatsapp: 0 meow: 0 evo: 0 zapi: 0 uazapi: 0 telegram: 0 hub: 0 webchat: 0 webmail: 0 wabaoauth: 0 instagramoauth: 0 facebookoauth: 0 oauthEnabled: false oauthProxyUrl: https://proxy.exemplo.com/oauth instagramWebhookProxyUrl: https://proxy.exemplo.com/instagram/webhook instagramWebhookProxySecret: secret_instagram messengerWebhookProxyUrl: https://proxy.exemplo.com/messenger/webhook messengerWebhookProxySecret: secret_messenger properties: identity: type: string status: type: string maxUsers: type: number maxConnections: type: number paymentGateway: type: string supportChatEnabled: type: string menuVisibility: type: array items: type: string allowedChannels: type: array items: type: string channelConnectionLimits: type: object properties: waba: type: number baileys: type: number whatsapp: type: number meow: type: number evo: type: number zapi: type: number uazapi: type: number telegram: type: number hub: type: number webchat: type: number webmail: type: number wabaoauth: type: number instagramoauth: type: number facebookoauth: type: number oauthEnabled: type: boolean oauthProxyUrl: type: string instagramWebhookProxyUrl: type: string instagramWebhookProxySecret: type: string messengerWebhookProxyUrl: type: string messengerWebhookProxySecret: type: string responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/addTag: post: tags: - 🎫 Tickets summary: AddTag requestBody: content: application/json: schema: type: object example: ticketId: 4 tagId: 1 properties: ticketId: type: number tagId: type: number parameters: - name: ApiID in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/addTagContact: post: tags: - 🎫 Tickets summary: AddTagContact requestBody: content: application/json: schema: type: object example: contactId: 123 tagId: 1 validateNumber: true properties: contactId: type: number tagId: type: number validateNumber: type: boolean parameters: - name: ApiID in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/removeTagContact: post: tags: - 🎫 Tickets summary: RemoveTagContact requestBody: content: application/json: schema: type: object example: number: '5511999999999' tagIds: - 1 - 2 validateNumber: true properties: number: type: string tagIds: type: array items: type: number validateNumber: type: boolean parameters: - name: ApiID in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/createNotes: post: tags: - 🎫 Tickets summary: CreateNotes requestBody: content: application/json: schema: type: object example: notes: Mensagem da nota ticketId: 1262 userId: 1 idFront: ID_UNICA_DO_SISTEMA_CLIENTE_PARA_EXECUTAR_UMA_ACAO_COM_WEBHOOK properties: notes: type: string ticketId: type: number userId: type: number idFront: type: string parameters: - name: ApiID in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/createTicket: post: tags: - 🎫 Tickets summary: CreateTicketWebmail requestBody: content: application/json: schema: type: object example: body: Mensagem inicial do ticket por email email: contato@exemplo.com channelId: 17841443941506796 externalKey: ID_UNICA_DO_SISTEMA_CLIENTE_PARA_EXECUTAR_UMA_ACAO_COM_WEBHOOK userId: 3 status: pending name: Nome do Contato firstName: Nome lastName: Sobrenome validateNumber: true properties: body: type: string email: type: string channelId: type: number externalKey: type: string userId: type: number status: type: string name: type: string firstName: type: string lastName: type: string validateNumber: type: boolean parameters: - name: ApiID in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/listNotes: get: tags: - 🎫 Tickets summary: ListNotes parameters: - name: ticketId in: query schema: type: integer description: ID do ticket example: '1262' - name: ApiID in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/removeTag: post: tags: - 🎫 Tickets summary: RemoveTag requestBody: content: application/json: schema: type: object example: ticketId: 4 tagId: 1 properties: ticketId: type: number tagId: type: number parameters: - name: ApiID in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/sendPresence: post: tags: - 🎫 Tickets summary: SendPresence requestBody: content: application/json: schema: type: object example: ticketId: 1262 state: typing properties: ticketId: type: number state: type: string parameters: - name: ApiID in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/updatequeue: post: tags: - 🎫 Tickets summary: SetQueue requestBody: content: application/json: schema: type: object example: ticketId: 4 queueId: 1 properties: ticketId: type: number queueId: type: number parameters: - name: ApiID in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/updatetag: post: tags: - 🎫 Tickets summary: SetTag requestBody: content: application/json: schema: type: object example: ticketId: 4 tag: 1 properties: ticketId: type: number tag: type: number parameters: - name: ApiID in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/updateticketinfo: post: tags: - 🎫 Tickets summary: SetTicketInfo requestBody: content: application/json: schema: type: object example: ticketId: 1262 userId: 1 status: pending queueId: null typebotStatus: false chatgptStatus: false dialogflowStatus: false difyStatus: false n8nStatus: false chatFlowId: null properties: ticketId: type: number userId: type: number status: type: string queueId: type: string nullable: true typebotStatus: type: boolean chatgptStatus: type: boolean dialogflowStatus: type: boolean difyStatus: type: boolean n8nStatus: type: boolean chatFlowId: type: string nullable: true parameters: - name: ApiID in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/showAllMessages: post: tags: - 🎫 Tickets summary: ShowAllMessages requestBody: content: application/json: schema: type: object example: ticket: '123' properties: ticket: type: string parameters: - name: ApiID in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/showallticket: post: tags: - 🎫 Tickets summary: ShowAllTicketInformation requestBody: content: application/json: schema: type: object example: number: '5515998566622' properties: number: type: string parameters: - name: ApiID in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/showticket: post: tags: - 🎫 Tickets summary: ShowTicketInformation requestBody: content: application/json: schema: type: object example: number: '5515998566622' properties: number: type: string parameters: - name: ApiID in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/showticketchatbot: post: tags: - 🎫 Tickets summary: ShowTicketInformationChatBot requestBody: content: application/json: schema: type: object example: number: '5515998566622' properties: number: type: string parameters: - name: ApiID in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/updateNote: post: tags: - 🎫 Tickets summary: UpdateNote requestBody: content: application/json: schema: type: object example: noteId: 1 notes: Conteúdo atualizado da nota properties: noteId: type: number notes: type: string parameters: - name: ApiID in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/updateTicketChannel: post: tags: - 🎫 Tickets summary: UpdateTicketChannel requestBody: content: application/json: schema: type: object example: ticketId: 1262 whatsappId: 1 channel: whatsapp properties: ticketId: type: number whatsappId: type: number channel: type: string parameters: - name: ApiID in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/ticket/pause/end/{ticketId}: post: tags: - 🎫 Tickets - Extras summary: EndTicketPause requestBody: content: application/json: schema: type: object example: {} parameters: - name: ApiID in: path schema: type: string required: true - name: ticketId in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/listTicketEvaluations: get: tags: - 🎫 Tickets - Extras summary: ListTicketEvaluations parameters: - name: page in: query schema: type: integer example: '1' - name: limit in: query schema: type: integer example: '20' - name: ApiID in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/sendEvaluation: post: tags: - 🎫 Tickets - Extras summary: SendEvaluation requestBody: content: application/json: schema: type: object example: ticketId: 1262 body: '' externalKey: '' force: false properties: ticketId: type: number body: type: string externalKey: type: string force: type: boolean parameters: - name: ApiID in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/ticket/pause/logs/{ticketId}: get: tags: - 🎫 Tickets - Extras summary: ListTicketPauseLogs parameters: - name: ApiID in: path schema: type: string required: true - name: ticketId in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/showTicketById: post: tags: - 🎫 Tickets - Extras summary: ShowTicketById requestBody: content: application/json: schema: type: object example: ticketId: '{{ticketId}}' properties: ticketId: type: string parameters: - name: ApiID in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/ticket/pause/start/{ticketId}: post: tags: - 🎫 Tickets - Extras summary: StartTicketPause requestBody: content: application/json: schema: type: object example: pauseReason: Aguardando cliente properties: pauseReason: type: string parameters: - name: ApiID in: path schema: type: string required: true - name: ticketId in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/ticket/share: post: tags: - 🎫 Tickets - Extras summary: TicketShareCreate requestBody: content: application/json: schema: type: object example: ticketId: '{{ticketId}}' inviteUrl: https://app.example.com/shared properties: ticketId: type: string inviteUrl: type: string parameters: - name: ApiID in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/ticket/share/{ticketId}: get: tags: - 🎫 Tickets - Extras summary: TicketShareShow parameters: - name: ApiID in: path schema: type: string required: true - name: ticketId in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/todo/create: post: tags: - ✅ To-Do List summary: TodoCreate requestBody: content: application/json: schema: type: object example: name: Ligar para cliente description: Confirmar proposta owner: João ownerId: '{{userId}}' status: pending priority: high properties: name: type: string description: type: string owner: type: string ownerId: type: string status: type: string priority: type: string parameters: - name: ApiID in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/todo/delete/{id}: post: tags: - ✅ To-Do List summary: TodoDelete requestBody: content: application/json: schema: type: object example: {} parameters: - name: ApiID in: path schema: type: string required: true - name: id in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/todo/list: get: tags: - ✅ To-Do List summary: TodoList parameters: - name: ApiID in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/todo/logs/{userId}: get: tags: - ✅ To-Do List summary: TodoLogs parameters: - name: ApiID in: path schema: type: string required: true - name: userId in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/todo/update/{id}: post: tags: - ✅ To-Do List summary: TodoUpdate requestBody: content: application/json: schema: type: object example: status: finished properties: status: type: string parameters: - name: ApiID in: path schema: type: string required: true - name: id in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/createUser: post: tags: - 👥 Usuários summary: CreateUser requestBody: content: application/json: schema: type: object example: email: usuario@example.com password: senha123 name: Nome do Usuário profile: user properties: email: type: string password: type: string name: type: string profile: type: string parameters: - name: ApiID in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/getUserStatus: get: tags: - 👥 Usuários summary: GetUserStatus parameters: - name: userId in: query schema: type: integer description: ID do usuário example: '1' - name: ApiID in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/listUsers: get: tags: - 👥 Usuários summary: ListUsers parameters: - name: pageNumber in: query schema: type: integer description: Número da página example: '1' - name: searchParam in: query schema: type: string description: Parâmetro de busca (opcional) - name: ApiID in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {} /v2/api/external/{ApiID}/updateUser: post: tags: - 👥 Usuários summary: UpdateUser requestBody: content: application/json: schema: type: object example: userId: 1 name: Nome Atualizado email: novoemail@example.com properties: userId: type: number name: type: string email: type: string parameters: - name: ApiID in: path schema: type: string required: true responses: '200': description: Successful response content: application/json: {}