About Gupy webhooks

A webhook is an event notification system. When a specific event occurs in Gupy, a JSON with the data is triggered to a URL registered in the webhook.

Upon receipt of the webhook, the target system can take the steps you need.

An example of use is the hiring of the candidate, where an event is triggered with the data of the candidate hired for the registered URL.

Thus, the developer can use the data of this new employee and update the database of employees of the target system.

In this example, the target system would receive a message like this:

POST https://mycompany.com/callback
Authorization: XXXXXX
{
  "companyName": "ACME",
  "id": "24e99765-8583-4be5-87ae-489c86642964",
  "event": "candidate.hired",
  "date": "2019-06-19T23:48:46.952Z",
  "data": {
    "job": {
      "id": 19139,
      "name": "Developer"
      "departmentCode": "D-100",
      "roleCode": "R-200",
      "branchCode": "B-300",
    },
    "application": {
      "id": 2937132,
      "vacancyCode": null,
      "score": 71.570454783086,
      "preHiringInformation": {},
      "tags": ["tagHired"],
      "hiringDate": "2019-06-19T03:00:00.000Z",
      "currentStep": {
        "id": 86547,
        "name": "Contratação"
      }
    },
    "candidate": {
      "id": 1999450,
      "name": "John",
      "lastName": "Doe",
      "email": "[email protected]",
      "identificationDocument": "25272626207",
      "countryOfOrigin": "Brasil",
      "birthdate": "1994-11-16",
      "addressZipCode": "",
      "addressStreet": "Rua Haddock Lobo",
      "addressNumber": "595 - 10º andar",
      "addressCity": "São Paulo",
      "addressState": "São Paulo",
      "addressStateShortName": "SP",
      "addressCountry": "Brasil",
      "addressCountryShortName": "BR",
      "mobileNumber": "+5511999990000",
      "phoneNumber": "+551130000000",
      "schooling": "technical_course",
      "schoolingStatus": "complete",
      "disabilities": false,
      "gender": "Male"
    }
  }
}

We will expect a 200 OK response status from your server. If your server does not return this status, the API will attempt to send the notification over the next 2 hours with an increasing delay. The first attempt will happen after 1 minute, and the next ones after 5, 15, 30 minutes. Once the delay hits 30 minutes it will stay constant until the end of the retry period.

Note that you can also specify the authorization header that will be sent.

Notification Properties

Every notification will be sent with the following properties:

PropertyTypeDescription
idstringIndentification of the event that generated the identification, can be used for deduplication
companyNamestringThe name of the Gupy customer
eventstringName of the event that generated the notification.
datedatetimeDate of the event that generated the notification
dataobjectNotification data.

Available Notifications

At this moment, the following events are available:

EventDescription
application.createdSent when a candidate applies for a job or is assigned to a job in the platform.
application.completedSent when a candidate completes the application for a job
application.movedSent when a candidate is moved between steps of a job.
application.assignedSent when an application is assigned to another job.
application.pre-hiring-information-filledSent when the candidate completes the pre-hiring step
candidate.hiredSent when a candidate is hired by the company.
job.publishedSent when a job is published
job.status-changedSent when the status of a job is changed (eg. from published to frozen.
job.changedSent every time a job is changed.
pre-employee.movedSent when a pre-employee in an admission process is moved from a status to another.

❗️

Important Notes

The URL used to receive the webhook MUST be a valid, publicly exposed, HTTPS address. To configure the webhook, see Webhook Configurarion.

URLs with high rate of error (100% of errors in the last 7 days) will be removed without notice.

Webhook expects a response in 30000ms. If the response has not occurred before this time, we consider it a timeout, consequently, an error.

The system guarantees at least once delivery, meaning that there can be multiple notification of the same event, use id property to identify duplicates.

There is no guaratee of order of delivery, use date property to verify which event happened first and sort the events. i.e. an application.moved can be notified before application.created

DO NOT USE services like requestcatcher which can expose data.

When we set a value in the clientHeaders, the default header 'Content-type: application/json;charset=utf-8' is no longer sent because the header values become what was defined. If it is necessary for the Content-type to always have the default value, we recommend including it in the clientHeaders

Sender IP addresses

In order to receive our webhooks, your servers must be able to receive HTTPS requests from the following IP addresses. Don't forget to create entry rules in your firewall for these IPs:

  • 3.225.75.195
  • 3.213.125.198
  • 3.81.178.137
  • 18.235.49.246
  • 18.209.132.16
  • 34.231.178.88
  • 34.237.26.228
  • 52.3.10.144
  • 54.87.127.240