Onboarding
curl --request GET \
--url https://api.sortx.co.uk/contractor-onboarding \
--header 'x-api-key: <api-key>'const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://api.sortx.co.uk/contractor-onboarding', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.sortx.co.uk/contractor-onboarding"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text){
"today": "<string>",
"kpis": {
"inProgress": 123,
"waitingOnYou": 123,
"toReview": 123,
"toChase": 123,
"approvedThisMonth": 123,
"averageDaysToApprove": 123
},
"columns": {
"invited": [
{
"id": "<string>",
"businessName": "<string>",
"trades": [
"<string>"
],
"tradeLabel": "<string>",
"stage": "invited",
"invitedAt": "<string>",
"opened": true,
"filled": 123,
"required": 123,
"lastActivityAt": "<string>",
"stalledDays": 123,
"reviewPill": {
"tone": "ok",
"label": "<string>"
},
"changesRequested": true,
"approvedAt": "<string>",
"contactId": "<string>"
}
],
"uploading": [
{
"id": "<string>",
"businessName": "<string>",
"trades": [
"<string>"
],
"tradeLabel": "<string>",
"stage": "invited",
"invitedAt": "<string>",
"opened": true,
"filled": 123,
"required": 123,
"lastActivityAt": "<string>",
"stalledDays": 123,
"reviewPill": {
"tone": "ok",
"label": "<string>"
},
"changesRequested": true,
"approvedAt": "<string>",
"contactId": "<string>"
}
],
"ready": [
{
"id": "<string>",
"businessName": "<string>",
"trades": [
"<string>"
],
"tradeLabel": "<string>",
"stage": "invited",
"invitedAt": "<string>",
"opened": true,
"filled": 123,
"required": 123,
"lastActivityAt": "<string>",
"stalledDays": 123,
"reviewPill": {
"tone": "ok",
"label": "<string>"
},
"changesRequested": true,
"approvedAt": "<string>",
"contactId": "<string>"
}
],
"approved": [
{
"id": "<string>",
"businessName": "<string>",
"trades": [
"<string>"
],
"tradeLabel": "<string>",
"stage": "invited",
"invitedAt": "<string>",
"opened": true,
"filled": 123,
"required": 123,
"lastActivityAt": "<string>",
"stalledDays": 123,
"reviewPill": {
"tone": "ok",
"label": "<string>"
},
"changesRequested": true,
"approvedAt": "<string>",
"contactId": "<string>"
}
]
},
"signUpPath": "<string>"
}{
"_tag": "TenantCreateRejected",
"reason": "<string>",
"field": "<string>"
}{
"_tag": "Unauthenticated"
}{
"_tag": "TenantSuspended",
"tenantId": "<string>",
"reason": "<string>"
}{
"_tag": "EntitlementMissing",
"tenantId": "<string>",
"moduleId": "<string>"
}{
"_tag": "TenantNotFound",
"slug": "<string>"
}{
"_tag": "WebhookDuplicate",
"integration": "<string>",
"externalId": "<string>"
}{
"_tag": "RateLimited",
"key": "<string>",
"retryAfterSeconds": 123,
"message": "<string>"
}{
"_tag": "IntegrationUnavailable",
"integration": "<string>",
"detail": "<string>"
}contractors
Onboarding
The Onboarding board: KPIs and the pipeline (invited, uploading documents, ready for review, approved this month)
GET
/
contractor-onboarding
Onboarding
curl --request GET \
--url https://api.sortx.co.uk/contractor-onboarding \
--header 'x-api-key: <api-key>'const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://api.sortx.co.uk/contractor-onboarding', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.sortx.co.uk/contractor-onboarding"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text){
"today": "<string>",
"kpis": {
"inProgress": 123,
"waitingOnYou": 123,
"toReview": 123,
"toChase": 123,
"approvedThisMonth": 123,
"averageDaysToApprove": 123
},
"columns": {
"invited": [
{
"id": "<string>",
"businessName": "<string>",
"trades": [
"<string>"
],
"tradeLabel": "<string>",
"stage": "invited",
"invitedAt": "<string>",
"opened": true,
"filled": 123,
"required": 123,
"lastActivityAt": "<string>",
"stalledDays": 123,
"reviewPill": {
"tone": "ok",
"label": "<string>"
},
"changesRequested": true,
"approvedAt": "<string>",
"contactId": "<string>"
}
],
"uploading": [
{
"id": "<string>",
"businessName": "<string>",
"trades": [
"<string>"
],
"tradeLabel": "<string>",
"stage": "invited",
"invitedAt": "<string>",
"opened": true,
"filled": 123,
"required": 123,
"lastActivityAt": "<string>",
"stalledDays": 123,
"reviewPill": {
"tone": "ok",
"label": "<string>"
},
"changesRequested": true,
"approvedAt": "<string>",
"contactId": "<string>"
}
],
"ready": [
{
"id": "<string>",
"businessName": "<string>",
"trades": [
"<string>"
],
"tradeLabel": "<string>",
"stage": "invited",
"invitedAt": "<string>",
"opened": true,
"filled": 123,
"required": 123,
"lastActivityAt": "<string>",
"stalledDays": 123,
"reviewPill": {
"tone": "ok",
"label": "<string>"
},
"changesRequested": true,
"approvedAt": "<string>",
"contactId": "<string>"
}
],
"approved": [
{
"id": "<string>",
"businessName": "<string>",
"trades": [
"<string>"
],
"tradeLabel": "<string>",
"stage": "invited",
"invitedAt": "<string>",
"opened": true,
"filled": 123,
"required": 123,
"lastActivityAt": "<string>",
"stalledDays": 123,
"reviewPill": {
"tone": "ok",
"label": "<string>"
},
"changesRequested": true,
"approvedAt": "<string>",
"contactId": "<string>"
}
]
},
"signUpPath": "<string>"
}{
"_tag": "TenantCreateRejected",
"reason": "<string>",
"field": "<string>"
}{
"_tag": "Unauthenticated"
}{
"_tag": "TenantSuspended",
"tenantId": "<string>",
"reason": "<string>"
}{
"_tag": "EntitlementMissing",
"tenantId": "<string>",
"moduleId": "<string>"
}{
"_tag": "TenantNotFound",
"slug": "<string>"
}{
"_tag": "WebhookDuplicate",
"integration": "<string>",
"externalId": "<string>"
}{
"_tag": "RateLimited",
"key": "<string>",
"retryAfterSeconds": 123,
"message": "<string>"
}{
"_tag": "IntegrationUnavailable",
"integration": "<string>",
"detail": "<string>"
}