Create webhooks so EVO will notify outside systems every time a certain event happens:
headers is optional*
filters are optional, filters are only available for webhooks of type 'NewSale' and won't be stored for other event types
POST
{
"IdBranch": "Branch number that webhook will be registered (Only available when using a multilocation key, ignored otherwise)"
"eventType": "Type: String. Specifies the type of event that will trigger this webhook. Available Types: 'NewSale', 'CreateMember', 'AlterMember', 'EndedSessionActivity', 'ClearedDebt', 'AlterReceivables', 'Freeze', 'RecurrentSale', 'entries', 'ActivityEnroll', 'SalesItensUpdated', 'CreateMembership', 'AlterMembership', 'CreateService', 'AlterService', 'CreateProduct', 'AlterProduct', 'TransferMember', 'TransferProspect', 'NewInvoice', 'CancelInvoice'",
"urlCallback": "Type: String. Url that will be called after the event. The API that will receive the request must accept the type POST and the content in the following format",
"headers": [
{"name": "Type: string", "value": "Type string"}
],
"filters": [
{
"FilterType": "Type: string. Specifies the filter that will be executed. Available Types: 'SaleItemDescription',
"Value": "Type: string. String that will be used to filter"
}
]
}
POST
{
"IdW12": "Type: Int. Unique gym ID",
"IdBranch": "Type: Int. Branch number",
"IdRecord": "Type: Int. Generate resource primary key",
"EventType": "Type: String. Webhook event type. Ex: 'NewSale'"
}
Criar Webhook
Descrição
Os webhooks permitem que o EVO notifique sistemas externos sempre que ocorrer um evento específico. Com isso, é possível integrar outros sistemas ao EVO e automatizar ações baseadas nos eventos capturados.
Parâmetros do Webhook
Parâmetro | Tipo | Descrição |
---|---|---|
idBranch | String | Número da filial onde o webhook será registrado. Apenas disponível ao usar uma chave multilocalização, ignorado caso contrário. |
eventType | String | Especifica o tipo de evento que acionará este webhook. |
urlCallback | String | URL que será chamada após o evento ocorrer. A API que receberá a requisição deve aceitar o tipo POST e o conteúdo no formato especificado. |
headers | Array | Opcional. Lista de cabeçalhos personalizados que serão incluídos na requisição. Cada cabeçalho é um objeto com name (tipo: string) e value (tipo: string). |
filters | Array | Opcional. Lista de filtros aplicáveis somente para webhooks do tipo 'NewSale'. Ler explicação abaixo. |
Campo filters
filters
Cada filtro deve ser um objeto com os campos:
FilterType
(string) → Tipo de filtro a ser aplicado. Atualmente, o tipo disponível é 'SaleItemDescription'.
Value
(string) → Valor utilizado para filtragem. A correspondência é feita por contém (substring), ou seja, se o valor informado estiver presente em qualquer parte da descrição do item de venda, o filtro será satisfeito.
Regras de Avaliação de Múltiplos Filtros
Quando mais de um filtro for cadastrado, a validação é feita como uma condição OU. Exemplo:
"filters": [
{ "FilterType": "SaleItemDescription", "Value": "ANUAL" },
{ "FilterType": "SaleItemDescription", "Value": "MENSAL" }
]
Nesse caso, o webhook será disparado sempre que a descrição do item de venda contiver "ANUAL" ou "MENSAL".
Eventos Disponíveis
🛒 Vendas
eventType | Descrição |
---|---|
NewSale | Ativado sempre que uma nova venda é realizada no sistema EVO ou pelo Site/Totem. Obs.: Não inclui vendas geradas automaticamente pela recorrência. |
RecurrentSale | Ativado sempre que um contrato é renovado automaticamente na recorrência. |
SalesItensUpdated | Ativado sempre que um novo item de venda é adicionado em uma Página de Vendas. |
👤 Clientes (Membros)
eventType | Descrição |
---|---|
CreateMember | Ativado sempre que uma oportunidade é convertida em cliente. |
AlterMember | Ativado sempre que as informações pessoais de um cliente são alteradas ou quando o cliente é excluído. Obs.: Não inclui mudança de status de ativo para inativo. |
Freeze | Ativado sempre que é feita uma suspensão em um aluno ou quando a suspensão é removida. |
TransferMember | Ativado sempre que um cliente (membro) é transferido de uma filial para outra. |
🎯 Oportunidades (Prospects)
eventType | Descrição |
---|---|
TransferProspect | Ativado sempre que uma oportunidade (prospect) é transferida de uma filial para outra. |
💳 Financeiro
eventType | Descrição |
---|---|
ClearedDebt | Ativado sempre que um cliente paga um saldo devedor em aberto, seja manualmente pela recepção ou pela cobrança automatizada do sistema. |
AlterReceivables | Ativado sempre que as informações de um recebimento no Contas a Receber são editadas. |
NewInvoice | Ativado sempre que uma nova fatura é gerada no sistema (independente se foi criada por venda recorrente, avulsa ou lançamento manual). |
CancelInvoice | Ativado sempre que uma fatura existente é cancelada no sistema. |
📄 Contratos (Membership)
eventType | Descrição |
---|---|
CreateMembership | Ativado sempre que um novo tipo de contrato é criado. |
AlterMembership | Ativado sempre que uma informação do contrato é alterada. |
🛠️ Serviços
eventType | Descrição |
---|---|
CreateService | Ativado sempre que um novo tipo de serviço é criado. |
AlterService | Ativado sempre que um tipo de serviço é alterado. |
📦 Produtos
eventType | Descrição |
---|---|
CreateProduct | Ativado sempre que um novo tipo de produto é criado. |
AlterProduct | Ativado sempre que um tipo de produto é alterado. |
🏋️ Atividades e Acessos
eventType | Descrição |
---|---|
EndedSessionActivity | Ativado sempre que uma sessão da Grade é finalizada. |
Entries | Ativado sempre que uma entrada é registrada pelo controle de acesso. |
ActivityEnroll | Ativado sempre que um aluno se agenda para uma atividade da grade. |
Exemplo de Criação do Webhook
{
"idBranch": 1,
"eventType": "NewSale",
"urlCallback": "https://minhaapi.com/webhook/evo",
"headers": [
{ "name": "Authorization", "value": "Bearer token_123" },
{ "name": "Content-Type", "value": "application/json" }
],
"filters": [
{
"FilterType": "SaleItemDescription",
"Value": "Plano Premium"
}
]
}