Recebendo Webhooks

Principais instruções em como receber e utilizar os eventos de Webhooks.
Escrito por Suporte yube
Atualizado 3 anos atrás

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.

Esse artigo foi útil?