{"openapi":"3.1.0","info":{"title":"ZapToBox API para clientes","version":"1.1.0","description":"Integração servidor a servidor. Crie uma chave em Gestão > Integrações. Cada chave pertence a uma conexão e age como seu criador, com os escopos escolhidos e as permissões atuais. Requer conexão ativa e acesso pago do criador; reservas e etiquetas pessoais mantêm suas regras. Use HTTPS e nunca publique a chave no frontend. Saldo, usuários da conta, cobrança e administração do servidor não estão expostos por esta API."},"servers":[{"url":"/api/v1/public","description":"Mesmo backend que serviu este documento"}],"security":[{"ApiKey":[]}],"paths":{"/chats":{"get":{"summary":"Listar conversas","tags":["Conversas"],"operationId":"get__chats","description":"Escopo obrigatório: chats:read.","x-scope":"chats:read","parameters":[{"in":"query","name":"after","schema":{"type":"integer","minimum":0,"maximum":9007199254740991},"description":"Cursor devolvido como nextCursor pela página anterior."},{"in":"query","name":"limit","schema":{"type":"integer","minimum":1,"maximum":100,"default":100}}],"responses":{"200":{"description":"Operação concluída.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/Resource"}},"nextCursor":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"nextOffset":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]}},"required":["items"],"additionalProperties":false}},"required":["data"],"additionalProperties":false}}}},"400":{"description":"Dados inválidos.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Chave ausente.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Chave sem escopo, expirada, revogada ou autor sem permissão.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Recurso fora da conexão ou inexistente.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Conflito de versão, reserva ou idempotência. Releia o recurso.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Limite de 120 requisições por minuto por IP. Aguarde Retry-After.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/chats/{chatId}":{"get":{"summary":"Consultar uma conversa","tags":["Conversas"],"operationId":"get__chats_chatId","description":"Escopo obrigatório: chats:read.","x-scope":"chats:read","parameters":[{"in":"path","name":"chatId","required":true,"schema":{"type":"integer","minimum":1,"maximum":9007199254740991}}],"responses":{"200":{"description":"Operação concluída.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/Resource"}},"required":["data"],"additionalProperties":false}}}},"400":{"description":"Dados inválidos.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Chave ausente.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Chave sem escopo, expirada, revogada ou autor sem permissão.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Recurso fora da conexão ou inexistente.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Conflito de versão, reserva ou idempotência. Releia o recurso.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Limite de 120 requisições por minuto por IP. Aguarde Retry-After.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/queues":{"get":{"summary":"Listar filas","tags":["Filas"],"operationId":"get__queues","description":"Escopo obrigatório: queues:read. Lista completa; máximo de 100 filas por conexão.","x-scope":"queues:read","parameters":[],"responses":{"200":{"description":"Operação concluída.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/Queue"}},"nextCursor":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"nextOffset":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]}},"required":["items"],"additionalProperties":false}},"required":["data"],"additionalProperties":false}}}},"400":{"description":"Dados inválidos.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Chave ausente.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Chave sem escopo, expirada, revogada ou autor sem permissão.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Recurso fora da conexão ou inexistente.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Conflito de versão, reserva ou idempotência. Releia o recurso.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Limite de 120 requisições por minuto por IP. Aguarde Retry-After.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"summary":"Criar fila","tags":["Filas"],"operationId":"post__queues","description":"Escopo obrigatório: queues:write. Membros devem ter assento pago ativo e permissão para atender. Há no máximo uma fila padrão.","x-scope":"queues:write","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/QueueInput"},"example":{"name":"Vendas","enabled":true,"members":[],"mode":"manual","capacity":10,"keywords":["comprar","preço"],"priority":1,"isDefault":false}}}},"responses":{"201":{"description":"Operação concluída.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/Queue"}},"required":["data"],"additionalProperties":false}}}},"400":{"description":"Dados inválidos.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Chave ausente.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Chave sem escopo, expirada, revogada ou autor sem permissão.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Recurso fora da conexão ou inexistente.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Conflito de versão, reserva ou idempotência. Releia o recurso.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Limite de 120 requisições por minuto por IP. Aguarde Retry-After.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/queues/{queueId}":{"get":{"summary":"Consultar uma fila e sua versão","tags":["Filas"],"operationId":"get__queues_queueId","description":"Escopo obrigatório: queues:read.","x-scope":"queues:read","parameters":[{"in":"path","name":"queueId","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Operação concluída.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/Queue"}},"required":["data"],"additionalProperties":false}}}},"400":{"description":"Dados inválidos.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Chave ausente.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Chave sem escopo, expirada, revogada ou autor sem permissão.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Recurso fora da conexão ou inexistente.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Conflito de versão, reserva ou idempotência. Releia o recurso.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Limite de 120 requisições por minuto por IP. Aguarde Retry-After.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"put":{"summary":"Atualizar fila","tags":["Filas"],"operationId":"put__queues_queueId","description":"Escopo obrigatório: queues:write. Envie todos os dados e a versão lida. Concorrência retorna 409 STALE_QUEUE.","x-scope":"queues:write","parameters":[{"in":"path","name":"queueId","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/QueueUpdate"},"example":{"name":"Vendas","enabled":true,"members":[],"mode":"manual","capacity":10,"keywords":["comprar","preço"],"priority":1,"isDefault":false,"version":1}}}},"responses":{"200":{"description":"Operação concluída.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/Queue"}},"required":["data"],"additionalProperties":false}}}},"400":{"description":"Dados inválidos.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Chave ausente.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Chave sem escopo, expirada, revogada ou autor sem permissão.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Recurso fora da conexão ou inexistente.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Conflito de versão, reserva ou idempotência. Releia o recurso.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Limite de 120 requisições por minuto por IP. Aguarde Retry-After.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"summary":"Excluir fila","tags":["Filas"],"operationId":"delete__queues_queueId","description":"Escopo obrigatório: queues:write. Exige a versão atual. Desvincula as conversas e incrementa suas versões de roteamento, preservando reservas e mensagens.","x-scope":"queues:write","parameters":[{"in":"path","name":"queueId","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Version"}}}},"responses":{"200":{"description":"Operação concluída.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/Resource"}},"required":["data"],"additionalProperties":false}}}},"400":{"description":"Dados inválidos.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Chave ausente.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Chave sem escopo, expirada, revogada ou autor sem permissão.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Recurso fora da conexão ou inexistente.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Conflito de versão, reserva ou idempotência. Releia o recurso.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Limite de 120 requisições por minuto por IP. Aguarde Retry-After.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/participants":{"get":{"summary":"Listar atendentes com acesso ativo","tags":["Filas"],"operationId":"get__participants","description":"Escopo obrigatório: participants:read. Use id em members, assignee e userId. canReceiveReservation indica elegibilidade para filas e transferências.","x-scope":"participants:read","parameters":[],"responses":{"200":{"description":"Operação concluída.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/Resource"}},"nextCursor":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"nextOffset":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]}},"required":["items"],"additionalProperties":false}},"required":["data"],"additionalProperties":false}}}},"400":{"description":"Dados inválidos.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Chave ausente.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Chave sem escopo, expirada, revogada ou autor sem permissão.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Recurso fora da conexão ou inexistente.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Conflito de versão, reserva ou idempotência. Releia o recurso.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Limite de 120 requisições por minuto por IP. Aguarde Retry-After.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/chats/{chatId}/routing":{"get":{"summary":"Consultar fila, prioridade e VIP da conversa","tags":["Conversas"],"operationId":"get__chats_chatId_routing","description":"Escopo obrigatório: chats:read. Inclui motivos válidos para encerramento. Consulte o catálogo de filas em /queues com queues:read.","x-scope":"chats:read","parameters":[{"in":"path","name":"chatId","required":true,"schema":{"type":"integer","minimum":1,"maximum":9007199254740991}}],"responses":{"200":{"description":"Operação concluída.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/RoutingResult"}},"required":["data"],"additionalProperties":false}}}},"400":{"description":"Dados inválidos.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Chave ausente.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Chave sem escopo, expirada, revogada ou autor sem permissão.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Recurso fora da conexão ou inexistente.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Conflito de versão, reserva ou idempotência. Releia o recurso.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Limite de 120 requisições por minuto por IP. Aguarde Retry-After.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"patch":{"summary":"Alterar fila, prioridade e VIP da conversa","tags":["Conversas"],"operationId":"patch__chats_chatId_routing","description":"Escopo obrigatório: chats:write. Envie a versão atual. Não transfere nem libera reservas; 409 STALE_ROUTING se outra pessoa alterou o atendimento.","x-scope":"chats:write","parameters":[{"in":"path","name":"chatId","required":true,"schema":{"type":"integer","minimum":1,"maximum":9007199254740991}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Routing"},"example":{"queueId":null,"priority":2,"vip":true,"closeReason":null,"version":0}}}},"responses":{"200":{"description":"Operação concluída.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/Routing"}},"required":["data"],"additionalProperties":false}}}},"400":{"description":"Dados inválidos.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Chave ausente.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Chave sem escopo, expirada, revogada ou autor sem permissão.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Recurso fora da conexão ou inexistente.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Conflito de versão, reserva ou idempotência. Releia o recurso.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Limite de 120 requisições por minuto por IP. Aguarde Retry-After.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/chats/{chatId}/workflow":{"get":{"summary":"Consultar estado do atendimento","tags":["Conversas"],"operationId":"get__chats_chatId_workflow","description":"Escopo obrigatório: chats:read.","x-scope":"chats:read","parameters":[{"in":"path","name":"chatId","required":true,"schema":{"type":"integer","minimum":1,"maximum":9007199254740991}}],"responses":{"200":{"description":"Operação concluída.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/Resource"}},"required":["data"],"additionalProperties":false}}}},"400":{"description":"Dados inválidos.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Chave ausente.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Chave sem escopo, expirada, revogada ou autor sem permissão.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Recurso fora da conexão ou inexistente.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Conflito de versão, reserva ou idempotência. Releia o recurso.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Limite de 120 requisições por minuto por IP. Aguarde Retry-After.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"patch":{"summary":"Alterar estado ou adiar atendimento","tags":["Conversas"],"operationId":"patch__chats_chatId_workflow","description":"Escopo obrigatório: chats:write. snoozed exige snoozedUntil futuro em até um ano. Alterar estado não libera a reserva.","x-scope":"chats:write","parameters":[{"in":"path","name":"chatId","required":true,"schema":{"type":"integer","minimum":1,"maximum":9007199254740991}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Workflow"}}}},"responses":{"200":{"description":"Operação concluída.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/Resource"}},"required":["data"],"additionalProperties":false}}}},"400":{"description":"Dados inválidos.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Chave ausente.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Chave sem escopo, expirada, revogada ou autor sem permissão.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Recurso fora da conexão ou inexistente.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Conflito de versão, reserva ou idempotência. Releia o recurso.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Limite de 120 requisições por minuto por IP. Aguarde Retry-After.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/tags":{"get":{"summary":"Listar etiquetas visíveis ao criador da chave","tags":["Etiquetas"],"operationId":"get__tags","description":"Escopo obrigatório: tags:read. Inclui etiquetas globais e somente as pessoais do criador da chave.","x-scope":"tags:read","parameters":[],"responses":{"200":{"description":"Operação concluída.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/Resource"}},"required":["data"],"additionalProperties":false}}}},"400":{"description":"Dados inválidos.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Chave ausente.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Chave sem escopo, expirada, revogada ou autor sem permissão.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Recurso fora da conexão ou inexistente.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Conflito de versão, reserva ou idempotência. Releia o recurso.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Limite de 120 requisições por minuto por IP. Aguarde Retry-After.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"summary":"Criar etiqueta pessoal ou global","tags":["Etiquetas"],"operationId":"post__tags","description":"Escopo obrigatório: tags:write.","x-scope":"tags:write","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TagInput"}}}},"responses":{"201":{"description":"Operação concluída.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/Resource"}},"required":["data"],"additionalProperties":false}}}},"400":{"description":"Dados inválidos.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Chave ausente.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Chave sem escopo, expirada, revogada ou autor sem permissão.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Recurso fora da conexão ou inexistente.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Conflito de versão, reserva ou idempotência. Releia o recurso.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Limite de 120 requisições por minuto por IP. Aguarde Retry-After.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/tags/{tagId}":{"patch":{"summary":"Editar etiqueta","tags":["Etiquetas"],"operationId":"patch__tags_tagId","description":"Escopo obrigatório: tags:write. Pessoal: somente criador. Global: criador ou proprietário da conexão.","x-scope":"tags:write","parameters":[{"in":"path","name":"tagId","required":true,"schema":{"type":"integer","minimum":1,"maximum":9007199254740991}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TagUpdate"}}}},"responses":{"200":{"description":"Operação concluída.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/Resource"}},"required":["data"],"additionalProperties":false}}}},"400":{"description":"Dados inválidos.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Chave ausente.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Chave sem escopo, expirada, revogada ou autor sem permissão.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Recurso fora da conexão ou inexistente.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Conflito de versão, reserva ou idempotência. Releia o recurso.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Limite de 120 requisições por minuto por IP. Aguarde Retry-After.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"summary":"Remover etiqueta","tags":["Etiquetas"],"operationId":"delete__tags_tagId","description":"Escopo obrigatório: tags:write.","x-scope":"tags:write","parameters":[{"in":"path","name":"tagId","required":true,"schema":{"type":"integer","minimum":1,"maximum":9007199254740991}}],"responses":{"200":{"description":"Operação concluída.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/Resource"}},"required":["data"],"additionalProperties":false}}}},"400":{"description":"Dados inválidos.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Chave ausente.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Chave sem escopo, expirada, revogada ou autor sem permissão.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Recurso fora da conexão ou inexistente.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Conflito de versão, reserva ou idempotência. Releia o recurso.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Limite de 120 requisições por minuto por IP. Aguarde Retry-After.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/chats/{chatId}/tags":{"get":{"summary":"Listar etiquetas visíveis aplicadas à conversa","tags":["Etiquetas"],"operationId":"get__chats_chatId_tags","description":"Escopo obrigatório: tags:read.","x-scope":"tags:read","parameters":[{"in":"path","name":"chatId","required":true,"schema":{"type":"integer","minimum":1,"maximum":9007199254740991}}],"responses":{"200":{"description":"Operação concluída.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/Resource"}},"nextCursor":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"nextOffset":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]}},"required":["items"],"additionalProperties":false}},"required":["data"],"additionalProperties":false}}}},"400":{"description":"Dados inválidos.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Chave ausente.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Chave sem escopo, expirada, revogada ou autor sem permissão.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Recurso fora da conexão ou inexistente.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Conflito de versão, reserva ou idempotência. Releia o recurso.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Limite de 120 requisições por minuto por IP. Aguarde Retry-After.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/chats/{chatId}/tags/{tagId}":{"post":{"summary":"Aplicar etiqueta à conversa","tags":["Etiquetas"],"operationId":"post__chats_chatId_tags_tagId","description":"Escopo obrigatório: tags:write.","x-scope":"tags:write","parameters":[{"in":"path","name":"chatId","required":true,"schema":{"type":"integer","minimum":1,"maximum":9007199254740991}},{"in":"path","name":"tagId","required":true,"schema":{"type":"integer","minimum":1,"maximum":9007199254740991}}],"responses":{"200":{"description":"Operação concluída.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/Resource"}},"required":["data"],"additionalProperties":false}}}},"400":{"description":"Dados inválidos.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Chave ausente.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Chave sem escopo, expirada, revogada ou autor sem permissão.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Recurso fora da conexão ou inexistente.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Conflito de versão, reserva ou idempotência. Releia o recurso.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Limite de 120 requisições por minuto por IP. Aguarde Retry-After.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"summary":"Retirar etiqueta da conversa","tags":["Etiquetas"],"operationId":"delete__chats_chatId_tags_tagId","description":"Escopo obrigatório: tags:write.","x-scope":"tags:write","parameters":[{"in":"path","name":"chatId","required":true,"schema":{"type":"integer","minimum":1,"maximum":9007199254740991}},{"in":"path","name":"tagId","required":true,"schema":{"type":"integer","minimum":1,"maximum":9007199254740991}}],"responses":{"200":{"description":"Operação concluída.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/Resource"}},"required":["data"],"additionalProperties":false}}}},"400":{"description":"Dados inválidos.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Chave ausente.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Chave sem escopo, expirada, revogada ou autor sem permissão.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Recurso fora da conexão ou inexistente.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Conflito de versão, reserva ou idempotência. Releia o recurso.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Limite de 120 requisições por minuto por IP. Aguarde Retry-After.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/chats/{chatId}/reservation":{"get":{"summary":"Consultar reserva da conversa","tags":["Reservas"],"operationId":"get__chats_chatId_reservation","description":"Escopo obrigatório: reservations:read.","x-scope":"reservations:read","parameters":[{"in":"path","name":"chatId","required":true,"schema":{"type":"integer","minimum":1,"maximum":9007199254740991}}],"responses":{"200":{"description":"Operação concluída.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/Resource"}},"required":["data"],"additionalProperties":false}}}},"400":{"description":"Dados inválidos.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Chave ausente.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Chave sem escopo, expirada, revogada ou autor sem permissão.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Recurso fora da conexão ou inexistente.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Conflito de versão, reserva ou idempotência. Releia o recurso.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Limite de 120 requisições por minuto por IP. Aguarde Retry-After.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"summary":"Reservar conversa para o criador da chave","tags":["Reservas"],"operationId":"post__chats_chatId_reservation","description":"Escopo obrigatório: reservations:write. Somente titular ou proprietário libera reservas. Reservas e envios em curso são respeitados.","x-scope":"reservations:write","parameters":[{"in":"path","name":"chatId","required":true,"schema":{"type":"integer","minimum":1,"maximum":9007199254740991}}],"responses":{"200":{"description":"Operação concluída.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/Resource"}},"required":["data"],"additionalProperties":false}}}},"400":{"description":"Dados inválidos.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Chave ausente.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Chave sem escopo, expirada, revogada ou autor sem permissão.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Recurso fora da conexão ou inexistente.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Conflito de versão, reserva ou idempotência. Releia o recurso.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Limite de 120 requisições por minuto por IP. Aguarde Retry-After.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"summary":"Liberar reserva da conversa","tags":["Reservas"],"operationId":"delete__chats_chatId_reservation","description":"Escopo obrigatório: reservations:write. Somente titular ou proprietário libera reservas. Reservas e envios em curso são respeitados.","x-scope":"reservations:write","parameters":[{"in":"path","name":"chatId","required":true,"schema":{"type":"integer","minimum":1,"maximum":9007199254740991}}],"responses":{"200":{"description":"Operação concluída.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/Resource"}},"required":["data"],"additionalProperties":false}}}},"400":{"description":"Dados inválidos.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Chave ausente.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Chave sem escopo, expirada, revogada ou autor sem permissão.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Recurso fora da conexão ou inexistente.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Conflito de versão, reserva ou idempotência. Releia o recurso.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Limite de 120 requisições por minuto por IP. Aguarde Retry-After.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/chats/{chatId}/reservation/transfer":{"post":{"summary":"Transferir reserva a um atendente ativo","tags":["Reservas"],"operationId":"post__chats_chatId_reservation_transfer","description":"Escopo obrigatório: reservations:write. Somente titular ou proprietário. expectedHolderIds deve refletir os titulares retornados pela consulta; protege contra alterações concorrentes.","x-scope":"reservations:write","parameters":[{"in":"path","name":"chatId","required":true,"schema":{"type":"integer","minimum":1,"maximum":9007199254740991}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Transfer"}}}},"responses":{"200":{"description":"Operação concluída.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/Resource"}},"required":["data"],"additionalProperties":false}}}},"400":{"description":"Dados inválidos.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Chave ausente.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Chave sem escopo, expirada, revogada ou autor sem permissão.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Recurso fora da conexão ou inexistente.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Conflito de versão, reserva ou idempotência. Releia o recurso.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Limite de 120 requisições por minuto por IP. Aguarde Retry-After.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/chats/{chatId}/notes":{"get":{"summary":"Listar notas internas","tags":["Notas"],"operationId":"get__chats_chatId_notes","description":"Escopo obrigatório: notes:read. Página padrão de 50 notas; máximo 100. Cursor decrescente before.","x-scope":"notes:read","parameters":[{"in":"path","name":"chatId","required":true,"schema":{"type":"integer","minimum":1,"maximum":9007199254740991}},{"in":"query","name":"before","schema":{"type":"integer","minimum":1,"maximum":9007199254740991},"description":"Cursor devolvido como nextCursor pela página anterior."},{"in":"query","name":"limit","schema":{"type":"integer","minimum":1,"maximum":100,"default":50}}],"responses":{"200":{"description":"Operação concluída.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/Resource"}},"nextCursor":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"nextOffset":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]}},"required":["items"],"additionalProperties":false}},"required":["data"],"additionalProperties":false}}}},"400":{"description":"Dados inválidos.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Chave ausente.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Chave sem escopo, expirada, revogada ou autor sem permissão.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Recurso fora da conexão ou inexistente.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Conflito de versão, reserva ou idempotência. Releia o recurso.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Limite de 120 requisições por minuto por IP. Aguarde Retry-After.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"summary":"Criar nota interna com menções","tags":["Notas"],"operationId":"post__chats_chatId_notes","description":"Escopo obrigatório: notes:write. clientId UUID identifica a intenção e permite repetição segura. Nota é interna; não envia mensagem ao contato.","x-scope":"notes:write","parameters":[{"in":"path","name":"chatId","required":true,"schema":{"type":"integer","minimum":1,"maximum":9007199254740991}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NoteInput"}}}},"responses":{"201":{"description":"Operação concluída.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/Resource"}},"required":["data"],"additionalProperties":false}}}},"400":{"description":"Dados inválidos.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Chave ausente.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Chave sem escopo, expirada, revogada ou autor sem permissão.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Recurso fora da conexão ou inexistente.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Conflito de versão, reserva ou idempotência. Releia o recurso.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Limite de 120 requisições por minuto por IP. Aguarde Retry-After.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/chats/{chatId}/notes/{noteId}":{"patch":{"summary":"Editar nota do criador da chave","tags":["Notas"],"operationId":"patch__chats_chatId_notes_noteId","description":"Escopo obrigatório: notes:write.","x-scope":"notes:write","parameters":[{"in":"path","name":"chatId","required":true,"schema":{"type":"integer","minimum":1,"maximum":9007199254740991}},{"in":"path","name":"noteId","required":true,"schema":{"type":"integer","minimum":1,"maximum":9007199254740991}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NoteUpdate"}}}},"responses":{"200":{"description":"Operação concluída.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/Resource"}},"required":["data"],"additionalProperties":false}}}},"400":{"description":"Dados inválidos.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Chave ausente.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Chave sem escopo, expirada, revogada ou autor sem permissão.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Recurso fora da conexão ou inexistente.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Conflito de versão, reserva ou idempotência. Releia o recurso.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Limite de 120 requisições por minuto por IP. Aguarde Retry-After.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"summary":"Remover nota interna","tags":["Notas"],"operationId":"delete__chats_chatId_notes_noteId","description":"Escopo obrigatório: notes:write. Somente autor ou proprietário da conexão.","x-scope":"notes:write","parameters":[{"in":"path","name":"chatId","required":true,"schema":{"type":"integer","minimum":1,"maximum":9007199254740991}},{"in":"path","name":"noteId","required":true,"schema":{"type":"integer","minimum":1,"maximum":9007199254740991}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Version"}}}},"responses":{"200":{"description":"Operação concluída.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/Resource"}},"required":["data"],"additionalProperties":false}}}},"400":{"description":"Dados inválidos.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Chave ausente.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Chave sem escopo, expirada, revogada ou autor sem permissão.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Recurso fora da conexão ou inexistente.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Conflito de versão, reserva ou idempotência. Releia o recurso.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Limite de 120 requisições por minuto por IP. Aguarde Retry-After.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/contacts":{"get":{"summary":"Listar contatos","tags":["Contatos"],"operationId":"get__contacts","description":"Escopo obrigatório: contacts:read.","x-scope":"contacts:read","parameters":[{"in":"query","name":"after","schema":{"type":"integer","minimum":0,"maximum":9007199254740991},"description":"Cursor devolvido como nextCursor pela página anterior."},{"in":"query","name":"limit","schema":{"type":"integer","minimum":1,"maximum":100,"default":100}}],"responses":{"200":{"description":"Operação concluída.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/Resource"}},"nextCursor":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"nextOffset":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]}},"required":["items"],"additionalProperties":false}},"required":["data"],"additionalProperties":false}}}},"400":{"description":"Dados inválidos.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Chave ausente.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Chave sem escopo, expirada, revogada ou autor sem permissão.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Recurso fora da conexão ou inexistente.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Conflito de versão, reserva ou idempotência. Releia o recurso.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Limite de 120 requisições por minuto por IP. Aguarde Retry-After.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/contact-fields":{"get":{"summary":"Listar campos personalizados e versão do esquema","tags":["Contatos"],"operationId":"get__contact_fields","description":"Escopo obrigatório: contact-fields:read.","x-scope":"contact-fields:read","parameters":[],"responses":{"200":{"description":"Operação concluída.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/Resource"}},"required":["data"],"additionalProperties":false}}}},"400":{"description":"Dados inválidos.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Chave ausente.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Chave sem escopo, expirada, revogada ou autor sem permissão.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Recurso fora da conexão ou inexistente.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Conflito de versão, reserva ou idempotência. Releia o recurso.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Limite de 120 requisições por minuto por IP. Aguarde Retry-After.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"summary":"Criar campo personalizado","tags":["Contatos"],"operationId":"post__contact_fields","description":"Escopo obrigatório: contact-fields:write.","x-scope":"contact-fields:write","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FieldInput"}}}},"responses":{"201":{"description":"Operação concluída.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/Resource"}},"required":["data"],"additionalProperties":false}}}},"400":{"description":"Dados inválidos.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Chave ausente.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Chave sem escopo, expirada, revogada ou autor sem permissão.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Recurso fora da conexão ou inexistente.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Conflito de versão, reserva ou idempotência. Releia o recurso.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Limite de 120 requisições por minuto por IP. Aguarde Retry-After.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/contact-fields/{fieldId}":{"patch":{"summary":"Editar definição de campo personalizado","tags":["Contatos"],"operationId":"patch__contact_fields_fieldId","description":"Escopo obrigatório: contact-fields:write. O tipo é imutável; opções em uso não podem ser removidas.","x-scope":"contact-fields:write","parameters":[{"in":"path","name":"fieldId","required":true,"schema":{"type":"integer","minimum":1,"maximum":9007199254740991}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FieldUpdate"}}}},"responses":{"200":{"description":"Operação concluída.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/Resource"}},"required":["data"],"additionalProperties":false}}}},"400":{"description":"Dados inválidos.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Chave ausente.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Chave sem escopo, expirada, revogada ou autor sem permissão.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Recurso fora da conexão ou inexistente.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Conflito de versão, reserva ou idempotência. Releia o recurso.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Limite de 120 requisições por minuto por IP. Aguarde Retry-After.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"summary":"Excluir campo e seus valores","tags":["Contatos"],"operationId":"delete__contact_fields_fieldId","description":"Escopo obrigatório: contact-fields:write.","x-scope":"contact-fields:write","parameters":[{"in":"path","name":"fieldId","required":true,"schema":{"type":"integer","minimum":1,"maximum":9007199254740991}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Version"}}}},"responses":{"200":{"description":"Operação concluída.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/Resource"}},"required":["data"],"additionalProperties":false}}}},"400":{"description":"Dados inválidos.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Chave ausente.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Chave sem escopo, expirada, revogada ou autor sem permissão.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Recurso fora da conexão ou inexistente.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Conflito de versão, reserva ou idempotência. Releia o recurso.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Limite de 120 requisições por minuto por IP. Aguarde Retry-After.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/contacts/{contactId}/fields":{"get":{"summary":"Consultar valores e versões dos campos de um contato","tags":["Contatos"],"operationId":"get__contacts_contactId_fields","description":"Escopo obrigatório: contacts:read.","x-scope":"contacts:read","parameters":[{"in":"path","name":"contactId","required":true,"schema":{"type":"integer","minimum":1,"maximum":9007199254740991}}],"responses":{"200":{"description":"Operação concluída.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/Resource"}},"required":["data"],"additionalProperties":false}}}},"400":{"description":"Dados inválidos.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Chave ausente.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Chave sem escopo, expirada, revogada ou autor sem permissão.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Recurso fora da conexão ou inexistente.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Conflito de versão, reserva ou idempotência. Releia o recurso.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Limite de 120 requisições por minuto por IP. Aguarde Retry-After.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"patch":{"summary":"Atualizar valores dos campos de um contato","tags":["Contatos"],"operationId":"patch__contacts_contactId_fields","description":"Escopo obrigatório: contacts:write. Requer version do contato e schemaVersion atuais. Os valores devem corresponder ao tipo de cada campo.","x-scope":"contacts:write","parameters":[{"in":"path","name":"contactId","required":true,"schema":{"type":"integer","minimum":1,"maximum":9007199254740991}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FieldValues"}}}},"responses":{"200":{"description":"Operação concluída.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/Resource"}},"required":["data"],"additionalProperties":false}}}},"400":{"description":"Dados inválidos.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Chave ausente.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Chave sem escopo, expirada, revogada ou autor sem permissão.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Recurso fora da conexão ou inexistente.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Conflito de versão, reserva ou idempotência. Releia o recurso.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Limite de 120 requisições por minuto por IP. Aguarde Retry-After.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/reminders":{"get":{"summary":"Listar lembretes criados ou atribuídos ao autor da chave","tags":["Lembretes"],"operationId":"get__reminders","description":"Escopo obrigatório: reminders:read.","x-scope":"reminders:read","parameters":[{"in":"query","name":"offset","schema":{"type":"integer","minimum":0,"maximum":9007199254740991},"description":"Quantidade de itens já recebidos."},{"in":"query","name":"limit","schema":{"type":"integer","minimum":1,"maximum":100,"default":100}}],"responses":{"200":{"description":"Operação concluída.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/Resource"}},"nextCursor":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"nextOffset":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]}},"required":["items"],"additionalProperties":false}},"required":["data"],"additionalProperties":false}}}},"400":{"description":"Dados inválidos.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Chave ausente.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Chave sem escopo, expirada, revogada ou autor sem permissão.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Recurso fora da conexão ou inexistente.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Conflito de versão, reserva ou idempotência. Releia o recurso.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Limite de 120 requisições por minuto por IP. Aguarde Retry-After.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"summary":"Criar lembrete","tags":["Lembretes"],"operationId":"post__reminders","description":"Escopo obrigatório: reminders:write. Vencimento futuro em até um ano; responsável com acesso ativo.","x-scope":"reminders:write","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReminderInput"}}}},"responses":{"201":{"description":"Operação concluída.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/Resource"}},"required":["data"],"additionalProperties":false}}}},"400":{"description":"Dados inválidos.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Chave ausente.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Chave sem escopo, expirada, revogada ou autor sem permissão.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Recurso fora da conexão ou inexistente.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Conflito de versão, reserva ou idempotência. Releia o recurso.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Limite de 120 requisições por minuto por IP. Aguarde Retry-After.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/reminders/{reminderId}/complete":{"post":{"summary":"Concluir lembrete do autor ou responsável","tags":["Lembretes"],"operationId":"post__reminders_reminderId_complete","description":"Escopo obrigatório: reminders:write.","x-scope":"reminders:write","parameters":[{"in":"path","name":"reminderId","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Operação concluída.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/Resource"}},"required":["data"],"additionalProperties":false}}}},"400":{"description":"Dados inválidos.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Chave ausente.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Chave sem escopo, expirada, revogada ou autor sem permissão.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Recurso fora da conexão ou inexistente.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Conflito de versão, reserva ou idempotência. Releia o recurso.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Limite de 120 requisições por minuto por IP. Aguarde Retry-After.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/opportunities":{"get":{"summary":"Listar oportunidades de venda","tags":["Oportunidades"],"operationId":"get__opportunities","description":"Escopo obrigatório: opportunities:read.","x-scope":"opportunities:read","parameters":[{"in":"query","name":"offset","schema":{"type":"integer","minimum":0,"maximum":9007199254740991},"description":"Quantidade de itens já recebidos."},{"in":"query","name":"limit","schema":{"type":"integer","minimum":1,"maximum":100,"default":100}}],"responses":{"200":{"description":"Operação concluída.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/Resource"}},"nextCursor":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"nextOffset":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]}},"required":["items"],"additionalProperties":false}},"required":["data"],"additionalProperties":false}}}},"400":{"description":"Dados inválidos.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Chave ausente.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Chave sem escopo, expirada, revogada ou autor sem permissão.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Recurso fora da conexão ou inexistente.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Conflito de versão, reserva ou idempotência. Releia o recurso.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Limite de 120 requisições por minuto por IP. Aguarde Retry-After.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"summary":"Criar oportunidade de venda","tags":["Oportunidades"],"operationId":"post__opportunities","description":"Escopo obrigatório: opportunities:write.","x-scope":"opportunities:write","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OpportunityInput"}}}},"responses":{"201":{"description":"Operação concluída.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/Resource"}},"required":["data"],"additionalProperties":false}}}},"400":{"description":"Dados inválidos.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Chave ausente.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Chave sem escopo, expirada, revogada ou autor sem permissão.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Recurso fora da conexão ou inexistente.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Conflito de versão, reserva ou idempotência. Releia o recurso.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Limite de 120 requisições por minuto por IP. Aguarde Retry-After.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/opportunity-stages":{"get":{"summary":"Consultar etapas válidas do funil","tags":["Oportunidades"],"operationId":"get__opportunity_stages","description":"Escopo obrigatório: opportunities:read.","x-scope":"opportunities:read","parameters":[],"responses":{"200":{"description":"Operação concluída.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/Resource"}},"required":["data"],"additionalProperties":false}}}},"400":{"description":"Dados inválidos.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Chave ausente.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Chave sem escopo, expirada, revogada ou autor sem permissão.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Recurso fora da conexão ou inexistente.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Conflito de versão, reserva ou idempotência. Releia o recurso.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Limite de 120 requisições por minuto por IP. Aguarde Retry-After.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/opportunities/{opportunityId}":{"put":{"summary":"Atualizar oportunidade com controle de versão","tags":["Oportunidades"],"operationId":"put__opportunities_opportunityId","description":"Escopo obrigatório: opportunities:write.","x-scope":"opportunities:write","parameters":[{"in":"path","name":"opportunityId","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OpportunityUpdate"}}}},"responses":{"200":{"description":"Operação concluída.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/Resource"}},"required":["data"],"additionalProperties":false}}}},"400":{"description":"Dados inválidos.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Chave ausente.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Chave sem escopo, expirada, revogada ou autor sem permissão.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Recurso fora da conexão ou inexistente.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Conflito de versão, reserva ou idempotência. Releia o recurso.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Limite de 120 requisições por minuto por IP. Aguarde Retry-After.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"summary":"Excluir oportunidade","tags":["Oportunidades"],"operationId":"delete__opportunities_opportunityId","description":"Escopo obrigatório: opportunities:write.","x-scope":"opportunities:write","parameters":[{"in":"path","name":"opportunityId","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Operação concluída.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/Resource"}},"required":["data"],"additionalProperties":false}}}},"400":{"description":"Dados inválidos.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Chave ausente.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Chave sem escopo, expirada, revogada ou autor sem permissão.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Recurso fora da conexão ou inexistente.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Conflito de versão, reserva ou idempotência. Releia o recurso.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Limite de 120 requisições por minuto por IP. Aguarde Retry-After.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/reports/history":{"get":{"summary":"Consultar histórico e indicadores de atendimento","tags":["Relatórios"],"operationId":"get__reports_history","description":"Escopo obrigatório: reports:read. Período máximo 366 dias e 10.000 atendimentos; reduza o período se exceder o limite. Retorno JSON.","x-scope":"reports:read","parameters":[{"in":"query","name":"from","required":true,"schema":{"type":"string","format":"date-time"}},{"in":"query","name":"to","required":true,"schema":{"type":"string","format":"date-time"}}],"responses":{"200":{"description":"Operação concluída.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/Resource"}},"required":["data"],"additionalProperties":false}}}},"400":{"description":"Dados inválidos.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Chave ausente.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Chave sem escopo, expirada, revogada ou autor sem permissão.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Recurso fora da conexão ou inexistente.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Conflito de versão, reserva ou idempotência. Releia o recurso.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Limite de 120 requisições por minuto por IP. Aguarde Retry-After.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/flows":{"get":{"summary":"Listar automações","tags":["Automações"],"operationId":"get__flows","description":"Escopo obrigatório: flows:read. Máximo 100 definições por conexão.","x-scope":"flows:read","parameters":[],"responses":{"200":{"description":"Operação concluída.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/Resource"}},"nextCursor":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"nextOffset":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]}},"required":["items"],"additionalProperties":false}},"required":["data"],"additionalProperties":false}}}},"400":{"description":"Dados inválidos.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Chave ausente.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Chave sem escopo, expirada, revogada ou autor sem permissão.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Recurso fora da conexão ou inexistente.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Conflito de versão, reserva ou idempotência. Releia o recurso.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Limite de 120 requisições por minuto por IP. Aguarde Retry-After.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"summary":"Criar automação","tags":["Automações"],"operationId":"post__flows","description":"Escopo obrigatório: flows:write.","x-scope":"flows:write","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FlowInput"}}}},"responses":{"201":{"description":"Operação concluída.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/Resource"}},"required":["data"],"additionalProperties":false}}}},"400":{"description":"Dados inválidos.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Chave ausente.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Chave sem escopo, expirada, revogada ou autor sem permissão.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Recurso fora da conexão ou inexistente.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Conflito de versão, reserva ou idempotência. Releia o recurso.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Limite de 120 requisições por minuto por IP. Aguarde Retry-After.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/flows/{flowId}":{"put":{"summary":"Atualizar automação","tags":["Automações"],"operationId":"put__flows_flowId","description":"Escopo obrigatório: flows:write.","x-scope":"flows:write","parameters":[{"in":"path","name":"flowId","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FlowUpdate"}}}},"responses":{"200":{"description":"Operação concluída.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/Resource"}},"required":["data"],"additionalProperties":false}}}},"400":{"description":"Dados inválidos.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Chave ausente.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Chave sem escopo, expirada, revogada ou autor sem permissão.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Recurso fora da conexão ou inexistente.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Conflito de versão, reserva ou idempotência. Releia o recurso.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Limite de 120 requisições por minuto por IP. Aguarde Retry-After.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"summary":"Excluir automação e cancelar execuções pendentes","tags":["Automações"],"operationId":"delete__flows_flowId","description":"Escopo obrigatório: flows:write.","x-scope":"flows:write","parameters":[{"in":"path","name":"flowId","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Operação concluída.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/Resource"}},"required":["data"],"additionalProperties":false}}}},"400":{"description":"Dados inválidos.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Chave ausente.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Chave sem escopo, expirada, revogada ou autor sem permissão.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Recurso fora da conexão ou inexistente.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Conflito de versão, reserva ou idempotência. Releia o recurso.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Limite de 120 requisições por minuto por IP. Aguarde Retry-After.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/flows/{flowId}/run":{"post":{"summary":"Agendar execução de automação para uma conversa","tags":["Automações"],"operationId":"post__flows_flowId_run","description":"Escopo obrigatório: flows:run.","x-scope":"flows:run","parameters":[{"in":"path","name":"flowId","required":true,"schema":{"type":"string","format":"uuid"}},{"in":"header","name":"Idempotency-Key","required":true,"schema":{"type":"string","format":"uuid"},"description":"UUID v4. Reutilize somente para repetir o mesmo pedido; payload diferente gera 409."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FlowRun"}}}},"responses":{"202":{"description":"Agendado. Consulte /runs/{runId}; ainda não confirma envio ao WhatsApp.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/Resource"}},"required":["data"],"additionalProperties":false}}}},"400":{"description":"Dados inválidos.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Chave ausente.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Chave sem escopo, expirada, revogada ou autor sem permissão.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Recurso fora da conexão ou inexistente.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Conflito de versão, reserva ou idempotência. Releia o recurso.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Limite de 120 requisições por minuto por IP. Aguarde Retry-After.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/messages":{"post":{"summary":"Agendar mensagem de texto","tags":["Mensagens"],"operationId":"post__messages","description":"Escopo obrigatório: messages:send. Entrega assíncrona. Qualquer reserva humana impede o envio automático, inclusive a do criador da chave. Chave, acesso e reserva são revalidados pelo worker. Uma falha incerta não é reenviada automaticamente.","x-scope":"messages:send","parameters":[{"in":"header","name":"Idempotency-Key","required":true,"schema":{"type":"string","format":"uuid"},"description":"UUID v4. Reutilize somente para repetir o mesmo pedido; payload diferente gera 409."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MessageInput"}}}},"responses":{"202":{"description":"Agendado. Consulte /runs/{runId}; ainda não confirma envio ao WhatsApp.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/Resource"}},"required":["data"],"additionalProperties":false}}}},"400":{"description":"Dados inválidos.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Chave ausente.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Chave sem escopo, expirada, revogada ou autor sem permissão.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Recurso fora da conexão ou inexistente.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Conflito de versão, reserva ou idempotência. Releia o recurso.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Limite de 120 requisições por minuto por IP. Aguarde Retry-After.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/runs/{runId}":{"get":{"summary":"Consultar resultado de envio ou automação","tags":["Automações"],"operationId":"get__runs_runId","description":"Escopo obrigatório: chats:read. status completed confirma conclusão; failed, cancelled e uncertain exigem análise. error contém o código da falha.","x-scope":"chats:read","parameters":[{"in":"path","name":"runId","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Operação concluída.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/Resource"}},"required":["data"],"additionalProperties":false}}}},"400":{"description":"Dados inválidos.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Chave ausente.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Chave sem escopo, expirada, revogada ou autor sem permissão.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Recurso fora da conexão ou inexistente.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Conflito de versão, reserva ou idempotência. Releia o recurso.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Limite de 120 requisições por minuto por IP. Aguarde Retry-After.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/integrations":{"get":{"summary":"Listar integrações sem segredos","tags":["Integrações"],"operationId":"get__integrations","description":"Escopo obrigatório: integrations:read.","x-scope":"integrations:read","parameters":[],"responses":{"200":{"description":"Operação concluída.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/Resource"}},"nextCursor":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"nextOffset":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]}},"required":["items"],"additionalProperties":false}},"required":["data"],"additionalProperties":false}}}},"400":{"description":"Dados inválidos.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Chave ausente.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Chave sem escopo, expirada, revogada ou autor sem permissão.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Recurso fora da conexão ou inexistente.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Conflito de versão, reserva ou idempotência. Releia o recurso.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Limite de 120 requisições por minuto por IP. Aguarde Retry-After.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"summary":"Criar integração e obter segredo uma única vez","tags":["Integrações"],"operationId":"post__integrations","description":"Escopo obrigatório: integrations:write.","x-scope":"integrations:write","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationInput"}}}},"responses":{"201":{"description":"Operação concluída.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/Resource"}},"required":["data"],"additionalProperties":false}}}},"400":{"description":"Dados inválidos.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Chave ausente.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Chave sem escopo, expirada, revogada ou autor sem permissão.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Recurso fora da conexão ou inexistente.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Conflito de versão, reserva ou idempotência. Releia o recurso.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Limite de 120 requisições por minuto por IP. Aguarde Retry-After.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/integrations/{endpointId}":{"patch":{"summary":"Ativar ou desativar integração","tags":["Integrações"],"operationId":"patch__integrations_endpointId","description":"Escopo obrigatório: integrations:write.","x-scope":"integrations:write","parameters":[{"in":"path","name":"endpointId","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationToggle"}}}},"responses":{"200":{"description":"Operação concluída.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/Resource"}},"required":["data"],"additionalProperties":false}}}},"400":{"description":"Dados inválidos.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Chave ausente.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Chave sem escopo, expirada, revogada ou autor sem permissão.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Recurso fora da conexão ou inexistente.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Conflito de versão, reserva ou idempotência. Releia o recurso.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Limite de 120 requisições por minuto por IP. Aguarde Retry-After.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/records":{"get":{"summary":"Listar registros importados de sistemas externos","tags":["Integrações"],"operationId":"get__records","description":"Escopo obrigatório: integrations:read.","x-scope":"integrations:read","parameters":[{"in":"query","name":"offset","schema":{"type":"integer","minimum":0,"maximum":9007199254740991},"description":"Quantidade de itens já recebidos."},{"in":"query","name":"limit","schema":{"type":"integer","minimum":1,"maximum":100,"default":100}}],"responses":{"200":{"description":"Operação concluída.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/Resource"}},"nextCursor":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"nextOffset":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]}},"required":["items"],"additionalProperties":false}},"required":["data"],"additionalProperties":false}}}},"400":{"description":"Dados inválidos.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Chave ausente.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Chave sem escopo, expirada, revogada ou autor sem permissão.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Recurso fora da conexão ou inexistente.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Conflito de versão, reserva ou idempotência. Releia o recurso.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Limite de 120 requisições por minuto por IP. Aguarde Retry-After.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"summary":"Importar ou atualizar registro externo","tags":["Integrações"],"operationId":"post__records","description":"Escopo obrigatório: integrations:write.","x-scope":"integrations:write","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RecordInput"}}}},"responses":{"200":{"description":"Operação concluída.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/Resource"}},"required":["data"],"additionalProperties":false}}}},"400":{"description":"Dados inválidos.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Chave ausente.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Chave sem escopo, expirada, revogada ou autor sem permissão.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Recurso fora da conexão ou inexistente.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Conflito de versão, reserva ou idempotência. Releia o recurso.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Limite de 120 requisições por minuto por IP. Aguarde Retry-After.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/consent/{chatId}":{"put":{"summary":"Registrar consentimento ou descadastro de campanhas","tags":["Contatos"],"operationId":"put__consent_chatId","description":"Escopo obrigatório: contacts:write. Além do escopo, o criador precisa da permissão manage_campaigns. Descadastro cancela campanhas pendentes para a conversa.","x-scope":"contacts:write","parameters":[{"in":"path","name":"chatId","required":true,"schema":{"type":"integer","minimum":1,"maximum":9007199254740991}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Consent"}}}},"responses":{"200":{"description":"Operação concluída.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/Resource"}},"required":["data"],"additionalProperties":false}}}},"400":{"description":"Dados inválidos.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Chave ausente.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Chave sem escopo, expirada, revogada ou autor sem permissão.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Recurso fora da conexão ou inexistente.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Conflito de versão, reserva ou idempotência. Releia o recurso.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Limite de 120 requisições por minuto por IP. Aguarde Retry-After.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}},"components":{"securitySchemes":{"ApiKey":{"type":"http","scheme":"bearer","bearerFormat":"ztb_*","description":"Authorization: Bearer ztb_... (chave criada no painel)"}},"schemas":{"QueueInput":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":80},"enabled":{"type":"boolean"},"members":{"type":"array","items":{"type":"integer","minimum":1,"maximum":9007199254740991},"maxItems":100},"mode":{"enum":["manual","round_robin","least_busy"]},"capacity":{"type":"integer","minimum":1,"maximum":200},"keywords":{"type":"array","items":{"type":"string","minLength":1,"maxLength":50},"maxItems":30},"priority":{"type":"integer","minimum":0,"maximum":3},"isDefault":{"type":"boolean"}},"required":["name","enabled","members","mode","capacity"],"additionalProperties":false},"QueueUpdate":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":80},"enabled":{"type":"boolean"},"members":{"type":"array","items":{"type":"integer","minimum":1,"maximum":9007199254740991},"maxItems":100},"mode":{"enum":["manual","round_robin","least_busy"]},"capacity":{"type":"integer","minimum":1,"maximum":200},"keywords":{"type":"array","items":{"type":"string","minLength":1,"maxLength":50},"maxItems":30},"priority":{"type":"integer","minimum":0,"maximum":3},"isDefault":{"type":"boolean"},"version":{"type":"integer","minimum":1,"maximum":9007199254740991}},"required":["name","enabled","members","mode","capacity","version"],"additionalProperties":false},"Queue":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"name":{"type":"string","minLength":1,"maxLength":80},"enabled":{"type":"boolean"},"members":{"type":"array","items":{"type":"integer","minimum":1,"maximum":9007199254740991},"maxItems":100},"mode":{"enum":["manual","round_robin","least_busy"]},"capacity":{"type":"integer","minimum":1,"maximum":200},"keywords":{"type":"array","items":{"type":"string","minLength":1,"maxLength":50},"maxItems":30},"priority":{"type":"integer","minimum":0,"maximum":3},"isDefault":{"type":"boolean"},"version":{"type":"integer","minimum":1,"maximum":9007199254740991}},"required":["id","name","enabled","members","mode","capacity","keywords","priority","isDefault","version"],"additionalProperties":false},"Version":{"type":"object","properties":{"version":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["version"],"additionalProperties":false},"Routing":{"type":"object","properties":{"queueId":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}]},"priority":{"type":"integer","minimum":0,"maximum":3},"vip":{"type":"boolean"},"closeReason":{"anyOf":[{"type":"string","minLength":1,"maxLength":80},{"type":"null"}]},"version":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["queueId","priority","vip","version"],"additionalProperties":false},"RoutingResult":{"type":"object","properties":{"routing":{"$ref":"#/components/schemas/Routing"},"closeReasons":{"type":"array","items":{"type":"string","minLength":1,"maxLength":80}}},"required":["routing","closeReasons"],"additionalProperties":false},"Workflow":{"type":"object","properties":{"status":{"enum":["new","open","waiting_customer","waiting_team","snoozed","resolved","closed"]},"snoozedUntil":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]},"version":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["status","version"],"additionalProperties":false},"TagInput":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":50},"color":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"scope":{"enum":["personal","global"]}},"required":["name","color","scope"],"additionalProperties":false},"TagUpdate":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":50},"color":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"}},"required":[],"additionalProperties":false},"Transfer":{"type":"object","properties":{"userId":{"type":"integer","minimum":1,"maximum":9007199254740991},"expectedHolderIds":{"type":"array","items":{"type":"integer","minimum":1,"maximum":9007199254740991},"maxItems":200}},"required":["userId","expectedHolderIds"],"additionalProperties":false},"NoteInput":{"type":"object","properties":{"clientId":{"type":"string","format":"uuid"},"body":{"type":"string","minLength":1,"maxLength":10000},"mentionedUserIds":{"type":"array","items":{"type":"integer","minimum":1,"maximum":9007199254740991},"maxItems":20}},"required":["clientId","body"],"additionalProperties":false},"NoteUpdate":{"type":"object","properties":{"body":{"type":"string","minLength":1,"maxLength":10000},"mentionedUserIds":{"type":"array","items":{"type":"integer","minimum":1,"maximum":9007199254740991},"maxItems":20},"version":{"type":"integer","minimum":1,"maximum":9007199254740991}},"required":["body","version"],"additionalProperties":false},"FieldInput":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":50},"type":{"enum":["text","number","date","boolean","select"]},"options":{"type":"array","items":{"type":"string","minLength":1,"maxLength":100},"maxItems":50},"required":{"type":"boolean"}},"required":["name","type"],"additionalProperties":false},"FieldUpdate":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":50},"options":{"type":"array","items":{"type":"string","minLength":1,"maxLength":100},"maxItems":50},"required":{"type":"boolean"},"version":{"type":"integer","minimum":1,"maximum":9007199254740991}},"required":["version"],"additionalProperties":false},"FieldValues":{"type":"object","properties":{"version":{"type":"integer","minimum":0,"maximum":9007199254740991},"schemaVersion":{"type":"integer","minimum":0,"maximum":9007199254740991},"values":{"type":"array","items":{"type":"object","properties":{"fieldId":{"type":"integer","minimum":1,"maximum":9007199254740991},"value":{}},"required":["fieldId","value"],"additionalProperties":false},"maxItems":50}},"required":["version","schemaVersion","values"],"additionalProperties":false},"ReminderInput":{"type":"object","properties":{"chatId":{"type":"integer","minimum":1,"maximum":9007199254740991},"title":{"type":"string","minLength":1,"maxLength":200},"assignee":{"type":"integer","minimum":1,"maximum":9007199254740991},"dueAt":{"type":"string","format":"date-time"}},"required":["chatId","title","assignee","dueAt"],"additionalProperties":false},"OpportunityInput":{"type":"object","properties":{"chatId":{"type":"integer","minimum":1,"maximum":9007199254740991},"title":{"type":"string","minLength":1,"maxLength":150},"stage":{"type":"string","minLength":1,"maxLength":80},"amountCents":{"type":"integer","minimum":0,"maximum":100000000000},"assignee":{"type":"integer","minimum":1,"maximum":9007199254740991}},"required":["chatId","title","stage","amountCents","assignee"],"additionalProperties":false},"OpportunityUpdate":{"type":"object","properties":{"chatId":{"type":"integer","minimum":1,"maximum":9007199254740991},"title":{"type":"string","minLength":1,"maxLength":150},"stage":{"type":"string","minLength":1,"maxLength":80},"amountCents":{"type":"integer","minimum":0,"maximum":100000000000},"assignee":{"type":"integer","minimum":1,"maximum":9007199254740991},"version":{"type":"integer","minimum":1,"maximum":9007199254740991}},"required":["chatId","title","stage","amountCents","assignee","version"],"additionalProperties":false},"MessageInput":{"type":"object","properties":{"chatId":{"type":"integer","minimum":1,"maximum":9007199254740991},"text":{"type":"string","minLength":1,"maxLength":4000}},"required":["chatId","text"],"additionalProperties":false},"FlowRun":{"type":"object","properties":{"chatId":{"type":"integer","minimum":1,"maximum":9007199254740991}},"required":["chatId"],"additionalProperties":false},"FlowInput":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":100},"enabled":{"type":"boolean"},"definition":{"type":"object","description":"Definição validada pelo editor de automações: trigger, keyword e nodes (máximo 40). Consulte docs/automation-v2.md."}},"required":["name","enabled","definition"],"additionalProperties":false},"FlowUpdate":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":100},"enabled":{"type":"boolean"},"definition":{"type":"object"},"version":{"type":"integer","minimum":1,"maximum":9007199254740991}},"required":["name","enabled","definition","version"],"additionalProperties":false},"IntegrationInput":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":100},"kind":{"enum":["webhook","crm","ecommerce"]},"url":{"type":"string","format":"uri","maxLength":2000,"description":"HTTPS público, porta 443, sem credenciais; endereços privados são recusados."},"events":{"type":"array","items":{"enum":["message.received","message.sent","automation.completed","automation.handoff","campaign.completed","crm.sync"]},"maxItems":6}},"required":["name","kind","url","events"],"additionalProperties":false},"IntegrationToggle":{"type":"object","properties":{"enabled":{"type":"boolean"}},"required":["enabled"],"additionalProperties":false},"RecordInput":{"type":"object","properties":{"endpointId":{"type":"string","format":"uuid"},"id":{"type":"string","minLength":1,"maxLength":100},"type":{"enum":["contact","order","deal","ticket"]},"chatId":{"anyOf":[{"type":"integer","minimum":1,"maximum":9007199254740991},{"type":"null"}]},"data":{"type":"object","additionalProperties":true,"description":"Máximo 16.000 caracteres JSON."}},"required":["endpointId","id","type","data"],"additionalProperties":false},"Consent":{"type":"object","properties":{"granted":{"type":"boolean"},"evidence":{"type":"string","minLength":1,"maxLength":1000}},"required":["granted","evidence"],"additionalProperties":false},"Empty":{"type":"object","properties":{},"required":[],"additionalProperties":false},"Error":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","minLength":1,"maxLength":200},"message":{"type":"string","minLength":1,"maxLength":1000}},"required":["code","message"],"additionalProperties":true}},"required":["error"],"additionalProperties":false},"Resource":{"type":"object","additionalProperties":true}}},"x-scope-catalog":[{"id":"chats:read","label":"Consultar conversas e execuções","permissions":["view_conversations"]},{"id":"chats:write","label":"Alterar fila, prioridade e estado dos atendimentos","permissions":["manage_conversations"]},{"id":"messages:send","label":"Agendar envio de mensagens de texto","permissions":["send_messages"]},{"id":"queues:read","label":"Consultar filas","permissions":["view_conversations"]},{"id":"queues:write","label":"Criar, editar e remover filas","permissions":["manage_queues"]},{"id":"participants:read","label":"Consultar atendentes ativos da conexão","permissions":["view_conversations"]},{"id":"tags:read","label":"Consultar etiquetas globais e pessoais do autor","permissions":["view_conversations"]},{"id":"tags:write","label":"Gerenciar e aplicar etiquetas","permissions":["manage_tags"]},{"id":"reservations:read","label":"Consultar reservas das conversas","permissions":["view_conversations"]},{"id":"reservations:write","label":"Reservar, liberar e transferir conversas","permissions":["manage_conversations"]},{"id":"notes:read","label":"Consultar notas internas","permissions":["view_conversations"]},{"id":"notes:write","label":"Criar e gerenciar notas internas","permissions":["manage_conversations"]},{"id":"contacts:read","label":"Consultar contatos e seus campos","permissions":["view_conversations"]},{"id":"contacts:write","label":"Atualizar valores dos campos de contatos e consentimento","permissions":["manage_conversations"]},{"id":"contact-fields:read","label":"Consultar definições de campos personalizados","permissions":["view_conversations"]},{"id":"contact-fields:write","label":"Gerenciar definições de campos personalizados","permissions":["manage_contact_fields"]},{"id":"reminders:read","label":"Consultar lembretes do autor","permissions":["view_conversations"]},{"id":"reminders:write","label":"Criar e concluir lembretes","permissions":["manage_conversations"]},{"id":"opportunities:read","label":"Consultar oportunidades e etapas de venda","permissions":["manage_pipeline"]},{"id":"opportunities:write","label":"Gerenciar oportunidades de venda","permissions":["manage_pipeline"]},{"id":"reports:read","label":"Consultar indicadores e histórico de atendimento","permissions":["view_reports"]},{"id":"flows:read","label":"Consultar automações","permissions":["manage_automation"]},{"id":"flows:write","label":"Gerenciar automações","permissions":["manage_automation"]},{"id":"flows:run","label":"Executar automações","permissions":["manage_automation"]},{"id":"integrations:read","label":"Consultar integrações e registros externos","permissions":["manage_integrations"]},{"id":"integrations:write","label":"Gerenciar integrações e importar registros externos","permissions":["manage_integrations"]}]}