Trocar o segredo
Gera outro segredo; o anterior vale por 24 horas e cada entrega leva as duas assinaturas.
Escopo do app: webhooks:write. Só a chave do app; pelo OAuth, 403.
curl --request POST \
--url https://api.westhetics.io/v1/webhooks/{id}/rotate-secret \
--header 'Authorization: Bearer <token>'const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.westhetics.io/v1/webhooks/{id}/rotate-secret', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.westhetics.io/v1/webhooks/{id}/rotate-secret"
headers = {"Authorization": "Bearer <token>"}
response = requests.post(url, headers=headers)
print(response.text){
"data": {
"id": "<string>",
"integrationId": "<string>",
"url": "<string>",
"description": "<string>",
"events": [
"<string>"
],
"status": "active",
"disabledReason": "manual",
"disabledAt": "<string>",
"failingSince": "<string>",
"lastDeliveryAt": "<string>",
"lastSuccessAt": "<string>",
"hasPreviousSecret": true,
"previousSecretValidUntil": "<string>",
"deliveries": {
"pending": 0,
"failed": 0
},
"createdAt": "<string>",
"updatedAt": "<string>",
"secret": "<string>"
}
}{
"error": {
"code": "bad_request",
"message": "<string>",
"requestId": "<string>",
"fields": {}
}
}{
"error": {
"code": "bad_request",
"message": "<string>",
"requestId": "<string>",
"fields": {}
}
}{
"error": {
"code": "bad_request",
"message": "<string>",
"requestId": "<string>",
"fields": {}
}
}{
"error": {
"code": "bad_request",
"message": "<string>",
"requestId": "<string>",
"fields": {}
}
}Autorizações
A chave do app de integração, criada em Integrações. Escopos: patients:read (Listar, buscar e ler pacientes; os eventos patient..); patients:write (Criar e editar pacientes. Inclui ler.); anamneses:read (Listar e ler anamneses, sem as respostas; os eventos anamnesis..); anamneses:write (Enviar, reenviar e cancelar anamnese. Inclui ler.); anamneses:answers (Ler as respostas da anamnese preenchida. É dado de saúde.); documents:read (Atendimentos, documentos, status da assinatura e o PDF; os eventos appointment.* e signature_request.*.); documents:write (Gerar contrato e termos e enviar para assinatura, reenviar e cancelar. Inclui ler.); catalog:read (Procedimentos, prestadores e modelos de documento da clínica.); webhooks:write (Criar, alterar e remover os webhooks do próprio app pela API.)
curl --request POST \
--url https://api.westhetics.io/v1/webhooks/{id}/rotate-secret \
--header 'Authorization: Bearer <token>'const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.westhetics.io/v1/webhooks/{id}/rotate-secret', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.westhetics.io/v1/webhooks/{id}/rotate-secret"
headers = {"Authorization": "Bearer <token>"}
response = requests.post(url, headers=headers)
print(response.text){
"data": {
"id": "<string>",
"integrationId": "<string>",
"url": "<string>",
"description": "<string>",
"events": [
"<string>"
],
"status": "active",
"disabledReason": "manual",
"disabledAt": "<string>",
"failingSince": "<string>",
"lastDeliveryAt": "<string>",
"lastSuccessAt": "<string>",
"hasPreviousSecret": true,
"previousSecretValidUntil": "<string>",
"deliveries": {
"pending": 0,
"failed": 0
},
"createdAt": "<string>",
"updatedAt": "<string>",
"secret": "<string>"
}
}{
"error": {
"code": "bad_request",
"message": "<string>",
"requestId": "<string>",
"fields": {}
}
}{
"error": {
"code": "bad_request",
"message": "<string>",
"requestId": "<string>",
"fields": {}
}
}{
"error": {
"code": "bad_request",
"message": "<string>",
"requestId": "<string>",
"fields": {}
}
}{
"error": {
"code": "bad_request",
"message": "<string>",
"requestId": "<string>",
"fields": {}
}
}