Para que o seu webservice possa receber o evento de webhook antes é necessário que tenha sido configurado um Webhook para os Status desejados. Caso ainda não tenha feito isso, veja o tutorial Gerenciando Webhooks.
Recebendo as informações
Através do webhook de mudança de status do Convite o webservice irá receber um requisição JSON com informações do evento.
Exemplo de conteúdo do evento de webhook enviado para o webservice.
Payload enviado
{
"action": "update",
"diff": {
"id": "SW52aXRlOmZjYWYxZWM2LTdlYTMtNDE1Yi05Y2Y4LTM0MzRmNWM0NTU2YQ==",
"status_id": "U3RhdHVzOjQ5OGJhNTk4LTBlYmUtNGNlYi1iNzY2LTJiNGE4MWYyMzUzYQ=="
},
"event_type": "invite_status",
"invite": {
"delivered_at": "2019-11-12T21:55:05.753230",
"due_date": "2019-11-14",
"id": "SW52aXRlOmZjYWYxZWM2LTdlYTMtNDE1Yi05Y2Y4LTM0MzRmNWM0NTU2YQ==",
"in_status_since": "2019-11-21T19:12:37.023763",
"inserted_at": "2019-11-12T21:55:04.220030",
"reference_code": "catata",
"rejected_by_person_at": null,
"status_id": null,
"updated_at": "2019-11-21T19:12:37.023844"
},
"user": {
"email": "dev@yube.com.br",
"id": "VXNlcjpiNzI2ZGZlYi0xOWJhLTRjZDktOTU0MC0wMWMxYTZhZDc1MjM=",
"name": "Yube desenvolvedores"
}
}
Resutlados esperados
Caso o código de resposta do webservice seja 200 então o webhook é tido como bem sucedido.
Caso o código de resposta do webservice seja qualquer coisa diferente de 200 o webhook é tido como falho.
Requisitando as informações do convite
Com as informações do evento do webhook agora podemos fazer uma requisição na API para puxar as informações do convite, informações do colaborador e empresa, documentos e processos.
Query
query ($id: ID!) {
node(id: $id) {
# Convite de Entrada enviado para o colaborador fazer envio da documentação
... on Invite {
__typename
id
deletedAt
deliveredAt
# Dossiê e vinculo entre Colaborador e Empresa
personCompany {
__typename
id
# Informações básicas do colaborador
person {
__typename
id
email
name
}
# Empresa ao qual o colaborador está sendo contratado
company {
__typename
id
nickname
placeName
cnpj
}
}
# Pasta para agrupar a documentação
processes {
__typename
id
category
deletedAt
rejectedByPersonAt
insertedAt
updatedAt
# Dados dos documentos
documents {
__typename
id
name
# Onde são armazenados todas as informações que o usuário preencheu no documento
fieldsValues
filledOnlyByUsers
rejectReasonSentAt
validationStatus
# Layout do Documento
documentTemplate {
__typename
id
fieldsSchema
documentName
}
}
# Layout do Processo
processTemplate {
__typename
id
title
}
}
}
}
}
Variables
{
"id": "SW52aXRlOjQ0Zjg2ODgyLTNmMjYtNGQxZS05Y2M2LTY0ZTViN2EwYjI3NA=="
}
Essa requisição dependente do envio da chave de autenticação.