The HIRE API enables integration with PageUp for the purposes of processing new employees and activating jobs within PageUp.
All scopes for endpoints on this page are listed below. The authentication page has further scope usage information.
| HTTP | Endpoint | Scope |
|---|---|---|
| GET | Offer | Public.Offer.Read |
| POST | Offer | Public.Offer.Write |
| GET | Job | Public.Job.Read |
| POST | Job | Public.Job.Write |
| PUT | Job | Public.Job.Write |
| GET | SearchApplications | Public.Application.Read |
| POST | SearchApplications | Public.Application.Write |
Root URL:
https://<environment>.<dataCentreId>.pageuppeople.com/v3/<tenantId>/recruitment/hire/...
environment = 'api' for LIVE or 'apiuat' for UAT
dataCentreId = the data centre to connect to (e.g. dc2)
tenantId = the organisation's tenant Id
Examples:
LIVE 6784 environment for dc2: https://api.dc2.pageuppeople.com/v3/6784/recruitment/hire/...
UAT 6784 environment for dc5: https://apiuat.dc5.pageuppeople.com/v3/6784/recruitment/hire/...
Capture applicant details, application form answers, new starter form answers, and offer details to process in your payroll or HRIS solution.
The main consideration would be the number of integrations you need to accomplish; have a discussion as to how many integrations you will require (e.g., if you only need to integrate to one external HRIS system).
For single integrations, the process will typically be:

However, if there are multiple integrations, the same endpoint should be called with the offerActionTypeId querystring to differentiate as to which integration (e.g., you have separate HRIS and Payroll processing providers) is being marked as processed:

It is important to note that these two mechanisms do not work together. If you have been using bTransmitFull in the past and want to shift to offer actions, you will need to backfill old offers with the new offer actions. This needs to be done so that older offers will not re-appear when you retrieve the list of offers that are not yet marked as processed for a specific offer action.
The above illustration is only an example for two integrations. More can be accommodated if needed.
[endpoint_url]/offersRetrieve the list of offers that are accepted, have a completed new starter form, and have not yet been processed.
Common filters (Querystring):
offerActionTypeId = {{offerActionTypeId}}offerAccepted = trueofferProcessed = falseformComplete = trueNOTE: If offerActionTypeId is not included as a querystring, bTransmitFull will be checked but not any offer actions. On the other hand, if offerActionTypeId is used, the value of bTransmitFull will be ignored.
Special filters:
offersAcceptedAfterProcessingAsUnprocessed = true to find candidates that accepted an offer after you have already marked an offer as processed with either bTransmitFull or offerActionTypeId. This typically happens if offers are left unaccepted for a longer period than normal.[endpoint_url]/offers/[offerId]Retrieve the complete list of offer details by PageUp Offer ID.
Where:
{{offerId}} = PUReferenceID[endpoint_url]/offers/[offerId]/onboardingformRetrieve the new starter form answers by PageUp Offer ID.
Where:
{{offerId}} = PUReferenceID[endpoint_url]/applications/[applicationId]/applicationFormRetrieve the application form answers by PageUp Application ID.
Where:
{{applicationId}} = PUReferenceID (under Applications object from the /offers response)[endpoint_url]/applications/[applicationId]/forms/[formtype]Retrieve other form answers by PageUp Application ID.
Where:
{{applicationId}} = PUReferenceID (under Applications object from the /offers response){{formtype}} = additionalinfo The type of form to retrieve.Available form types:
[endpoint_url]/offers/[offerId]/processURL: POST [endpoint_url]/offers/[offerId]/process
Mark the offer as processed using the bTransmitFull flag. This is the scenario applicable to most users, and will ensure that the offer will not appear again on the next round of the API call.
However, proceed to the next section if you have multiple applications that access application data (e.g., an HRIS or ERP other than PageUp). You can only use bTransmitFull if you are not using Offer Actions, which was designed to accommodate multiple integrations. Consult your contact in PageUp for more details.
Ensure:
Where:
{{offerId}} = PUReferenceIDURL: POST [endpoint_url]/offers/[offerId]/process?offerActionTypeId={{offerActionTypeId}}
Mark the offer as processed for the specified offerActionTypeId. This will ensure that the offer will not appear again on the next round of the API call, for that particular offer action. This will, however, ignore bTransmitFull. If you had previously used bTransmitFull, all offers not previously marked as processed with offer actions will need to be backfilled so they don't appear in offer search operations. Consult your contact in PageUp if you wish to use offer actions but you have existing workflows using the bTransmitFull field.
Ensure:
Where:
{{offerId}} = PUReferenceID{{offerActionTypeId}} = string - The name of the specific offer action. This can be arbitrarily assigned, and the consistency of its use is in the discretion of the caller.To download recruitment-related documents (e.g., offer documents, application documents, job documents) from PageUp, you can use specific API endpoints based on the type of document you need:
/offers/{offerId}/applications/{applicationId}/jobs/{jobId}These endpoints return a Documents object for the respective Job, Offer, or Application, which looks like this:
"Documents": [
{
"PUReferenceID": 0,
"Title": "string",
"FileSizeKB": 0,
"Extension": "string",
"MimeType": "string",
"DocumentCategory": "string",
"CreatedDate": "2022-07-11T00:39:30.582Z",
"FileName": "string"
}
]
/document/{id}/downloadurl endpoint (from the Document API) using the PUReferenceID as the {id}.
Refer to the PageUp API documentation for more details on the Document API.The access token request Postman collection is available publicly below (Recruitment API > Hire API):