Record repair call out
curl --request POST \
--url https://api.sortx.co.uk/maintenance-pro/repairs/{id}/call-out \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"requestId": "<string>",
"calendarEventId": "<string>",
"amountMinor": 123,
"borneBy": "<string>",
"currency": "<string>",
"note": "<string>"
}
'const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
requestId: '<string>',
calendarEventId: '<string>',
amountMinor: 123,
borneBy: '<string>',
currency: '<string>',
note: '<string>'
})
};
fetch('https://api.sortx.co.uk/maintenance-pro/repairs/{id}/call-out', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.sortx.co.uk/maintenance-pro/repairs/{id}/call-out"
payload = {
"requestId": "<string>",
"calendarEventId": "<string>",
"amountMinor": 123,
"borneBy": "<string>",
"currency": "<string>",
"note": "<string>"
}
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text){
"repairId": "<string>",
"details": [
{
"calendarEventId": "<string>",
"outcomeId": "<string>",
"timeOnSiteMinutes": 123,
"doorPhoto": {
"id": "<string>",
"name": "<string>"
},
"calledTenant": true,
"cardLeft": true,
"refusedBy": "tenant",
"keySet": {
"id": "<string>",
"reference": "<string>",
"label": "<string>"
},
"contractorConfirmed": true,
"contractorExplanation": "<string>"
}
],
"callOuts": [
{
"id": "<string>",
"calendarEventId": "<string>",
"amountMinor": 123,
"currency": "<string>",
"borneBy": "agency",
"note": "<string>",
"recordedBy": "<string>",
"recordedAt": "<string>"
}
],
"noShows": {
"contractor": "<string>",
"count": 123,
"suggestChange": true
},
"failedAccess": {
"inARow": 123,
"suggestClose": true
},
"arrangement": {
"id": "<string>",
"via": "tenant",
"note": "<string>",
"contactId": "<string>",
"contactName": "<string>",
"recordedBy": "<string>",
"recordedAt": "<string>"
},
"arrangementHistory": [
{
"id": "<string>",
"via": "tenant",
"note": "<string>",
"contactId": "<string>",
"contactName": "<string>",
"recordedBy": "<string>",
"recordedAt": "<string>"
}
],
"arrangementRevision": 123,
"fixedReply": {
"doneAt": "<string>",
"dueAt": "<string>",
"overdue": true,
"taskOpen": true
}
}{
"_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>"
}maintenance-pro
Record repair call out
Record a call-out charge on a failed-access visit, borne by the agency or the landlord (never the tenant)
POST
/
maintenance-pro
/
repairs
/
{id}
/
call-out
Record repair call out
curl --request POST \
--url https://api.sortx.co.uk/maintenance-pro/repairs/{id}/call-out \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"requestId": "<string>",
"calendarEventId": "<string>",
"amountMinor": 123,
"borneBy": "<string>",
"currency": "<string>",
"note": "<string>"
}
'const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
requestId: '<string>',
calendarEventId: '<string>',
amountMinor: 123,
borneBy: '<string>',
currency: '<string>',
note: '<string>'
})
};
fetch('https://api.sortx.co.uk/maintenance-pro/repairs/{id}/call-out', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.sortx.co.uk/maintenance-pro/repairs/{id}/call-out"
payload = {
"requestId": "<string>",
"calendarEventId": "<string>",
"amountMinor": 123,
"borneBy": "<string>",
"currency": "<string>",
"note": "<string>"
}
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text){
"repairId": "<string>",
"details": [
{
"calendarEventId": "<string>",
"outcomeId": "<string>",
"timeOnSiteMinutes": 123,
"doorPhoto": {
"id": "<string>",
"name": "<string>"
},
"calledTenant": true,
"cardLeft": true,
"refusedBy": "tenant",
"keySet": {
"id": "<string>",
"reference": "<string>",
"label": "<string>"
},
"contractorConfirmed": true,
"contractorExplanation": "<string>"
}
],
"callOuts": [
{
"id": "<string>",
"calendarEventId": "<string>",
"amountMinor": 123,
"currency": "<string>",
"borneBy": "agency",
"note": "<string>",
"recordedBy": "<string>",
"recordedAt": "<string>"
}
],
"noShows": {
"contractor": "<string>",
"count": 123,
"suggestChange": true
},
"failedAccess": {
"inARow": 123,
"suggestClose": true
},
"arrangement": {
"id": "<string>",
"via": "tenant",
"note": "<string>",
"contactId": "<string>",
"contactName": "<string>",
"recordedBy": "<string>",
"recordedAt": "<string>"
},
"arrangementHistory": [
{
"id": "<string>",
"via": "tenant",
"note": "<string>",
"contactId": "<string>",
"contactName": "<string>",
"recordedBy": "<string>",
"recordedAt": "<string>"
}
],
"arrangementRevision": 123,
"fixedReply": {
"doneAt": "<string>",
"dueAt": "<string>",
"overdue": true,
"taskOpen": true
}
}{
"_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>"
}Authorizations
A workspace API key (Settings → API keys), scoped to <group>:read / <group>:write.
Path Parameters
Body
application/json
Response
Success
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes