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'"
}
Documentação do Webhook
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. Tipos Disponíveis: 'NewSale', 'CreateMember', 'AlterMember', 'EndedSessionActivity', 'ClearedDebt', 'AlterReceivables', 'Freeze', 'RecurrentSale', 'entries', 'ActivityEnroll', 'SalesItensUpdated', 'CreateMembership', 'AlterMembership', 'CreateService', 'AlterService', 'CreateProduct', 'AlterProduct', 'TransferMember', 'TransferProspect'. |
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'. Cada filtro é um objeto com os campos FilterType e Value . |
FilterType | String | Tipo de filtro que será aplicado. Tipos disponíveis: 'SaleItemDescription'. |
Value | String | Valor usado como critério para o filtro especificado. |
IdW12 | Integer | ID exclusivo da academia onde o evento ocorreu. |
IdRecord | Integer | Chave primária do recurso gerado pelo evento, usada para identificar o recurso específico. |
EventType | String | Tipo de evento do webhook (por exemplo, 'NewSale'), indicando o evento específico que disparou a notificação. |
Descrição dos Tipos de Evento (eventType
) do Webhook
eventType
) do WebhookNewSale
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.
CreateMember
CreateMember
Ativado sempre que uma oportunidade é convertida em cliente.
AlterMember
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
EndedSessionActivity
EndedSessionActivity
Ativado sempre que uma sessão da Grade é finalizada.
ClearedDebt
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
AlterReceivables
Ativado sempre que as informações de um recebimento no Contas a Receber são editadas.
Freeze
Freeze
Ativado sempre que é feita uma suspensão em um aluno ou quando a suspensão é removida.
RecurrentSale
RecurrentSale
Ativado sempre que um contrato é renovado automaticamente na recorrência.
Entries
Entries
Ativado sempre que uma entrada é registrada pelo controle de acesso.
ActivityEnroll
ActivityEnroll
Ativado sempre que um aluno se agenda para uma atividade da grade.
SalesItensUpdated
SalesItensUpdated
Ativado sempre que um novo item de venda é adicionado em uma Página de Vendas.
CreateMembership
CreateMembership
Ativado sempre que um novo tipo de contrato é criado.
AlterMembership
AlterMembership
Ativado sempre que uma informação do contrato é alterada.
CreateService
CreateService
Ativado sempre que um novo tipo de serviço é criado.
AlterService
AlterService
Ativado sempre que um tipo de serviço é alterado.
CreateProduct
CreateProduct
Ativado sempre que um novo tipo de produto é criado.
AlterProduct
AlterProduct
Ativado sempre que um tipo de produto é alterado.
Exemplo de Criação do Webhook
Para registrar um webhook no EVO, envie uma requisição POST
com os parâmetros desejados. Abaixo está um exemplo de como a estrutura JSON deve ser:
POST /webhook/create
{
"IdBranch": "Número da filial onde o webhook será registrado (apenas disponível ao usar uma chave multilocalização(idBranch = 0), ignorado caso contrário)",
"eventType": "Tipo: String. Especifica o tipo de evento que acionará este webhook. Tipos Disponíveis: 'NewSale', 'CreateMember', 'AlterMember', 'EndedSessionActivity', 'ClearedDebt', 'AlterReceivables', 'Freeze', 'RecurrentSale', 'entries', 'ActivityEnroll', 'SalesItensUpdated', 'CreateMembership', 'AlterMembership', 'CreateService', 'AlterService', 'CreateProduct', 'AlterProduct', 'TransferMember', 'TransferProspect'",
"urlCallback": "Tipo: 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":(Not required) [
{"name": "Tipo: string", "value": "Tipo: string"}
],
"filters":(Not required) [
{
"FilterType": "Tipo: string. Especifica o filtro que será aplicado. Tipos Disponíveis: 'SaleItemDescription'",
"Value": "Tipo: string. Valor que será usado como critério de filtro"
}
]
}