Confirm repair authority
curl --request POST \
--url https://api.sortx.co.uk/maintenance-pro/repair-authority/{authorityId}/confirm \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"requestId": "<string>",
"expectedRevision": 123,
"confirmedOn": "<string>",
"confirmedNote": "<string>"
}
'const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
requestId: '<string>',
expectedRevision: 123,
confirmedOn: '<string>',
confirmedNote: '<string>'
})
};
fetch('https://api.sortx.co.uk/maintenance-pro/repair-authority/{authorityId}/confirm', 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/repair-authority/{authorityId}/confirm"
payload = {
"requestId": "<string>",
"expectedRevision": 123,
"confirmedOn": "<string>",
"confirmedNote": "<string>"
}
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text){
"id": "<string>",
"scope": "landlord",
"propertyId": "<string>",
"landlordContactId": "<string>",
"label": "<string>",
"revision": 123,
"live": {
"id": "<string>",
"authorityId": "<string>",
"version": 123,
"status": "draft",
"policy": {
"currency": "<string>",
"vatBasis": "inc_vat",
"standardLimitMinor": 123,
"standardOwnerTold": "immediately",
"monthlyCapMinor": 123,
"quoteSteps": [
{
"overMinor": 123,
"quotes": 123
}
],
"rules": [
{
"id": "<string>",
"kind": "emergency",
"categories": [
"<string>"
],
"limitMinor": 123,
"aboveLimit": "quote_to_owner",
"ownerTold": "immediately"
}
],
"approvers": [
{
"contactId": "<string>",
"waitHours": 123
}
],
"noAnswer": "escalate_to_staff",
"noAnswerUnderMinor": 123,
"sourceDocumentId": "<string>",
"sourceNote": "<string>"
},
"summary": [
"<string>"
],
"confirmedVia": "management_agreement",
"confirmedOn": "<string>",
"confirmedNote": "<string>",
"createdAt": "<string>",
"liveFrom": "<string>",
"supersededAt": "<string>"
},
"draft": {
"id": "<string>",
"authorityId": "<string>",
"version": 123,
"status": "draft",
"policy": {
"currency": "<string>",
"vatBasis": "inc_vat",
"standardLimitMinor": 123,
"standardOwnerTold": "immediately",
"monthlyCapMinor": 123,
"quoteSteps": [
{
"overMinor": 123,
"quotes": 123
}
],
"rules": [
{
"id": "<string>",
"kind": "emergency",
"categories": [
"<string>"
],
"limitMinor": 123,
"aboveLimit": "quote_to_owner",
"ownerTold": "immediately"
}
],
"approvers": [
{
"contactId": "<string>",
"waitHours": 123
}
],
"noAnswer": "escalate_to_staff",
"noAnswerUnderMinor": 123,
"sourceDocumentId": "<string>",
"sourceNote": "<string>"
},
"summary": [
"<string>"
],
"confirmedVia": "management_agreement",
"confirmedOn": "<string>",
"confirmedNote": "<string>",
"createdAt": "<string>",
"liveFrom": "<string>",
"supersededAt": "<string>"
},
"history": [
{
"id": "<string>",
"authorityId": "<string>",
"version": 123,
"status": "draft",
"policy": {
"currency": "<string>",
"vatBasis": "inc_vat",
"standardLimitMinor": 123,
"standardOwnerTold": "immediately",
"monthlyCapMinor": 123,
"quoteSteps": [
{
"overMinor": 123,
"quotes": 123
}
],
"rules": [
{
"id": "<string>",
"kind": "emergency",
"categories": [
"<string>"
],
"limitMinor": 123,
"aboveLimit": "quote_to_owner",
"ownerTold": "immediately"
}
],
"approvers": [
{
"contactId": "<string>",
"waitHours": 123
}
],
"noAnswer": "escalate_to_staff",
"noAnswerUnderMinor": 123,
"sourceDocumentId": "<string>",
"sourceNote": "<string>"
},
"summary": [
"<string>"
],
"confirmedVia": "management_agreement",
"confirmedOn": "<string>",
"confirmedNote": "<string>",
"createdAt": "<string>",
"liveFrom": "<string>",
"supersededAt": "<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>"
}maintenance-pro
Confirm repair authority
Record the owner’s confirmation of the draft: it becomes the live policy for new repairs (owner or admin)
POST
/
maintenance-pro
/
repair-authority
/
{authorityId}
/
confirm
Confirm repair authority
curl --request POST \
--url https://api.sortx.co.uk/maintenance-pro/repair-authority/{authorityId}/confirm \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"requestId": "<string>",
"expectedRevision": 123,
"confirmedOn": "<string>",
"confirmedNote": "<string>"
}
'const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
requestId: '<string>',
expectedRevision: 123,
confirmedOn: '<string>',
confirmedNote: '<string>'
})
};
fetch('https://api.sortx.co.uk/maintenance-pro/repair-authority/{authorityId}/confirm', 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/repair-authority/{authorityId}/confirm"
payload = {
"requestId": "<string>",
"expectedRevision": 123,
"confirmedOn": "<string>",
"confirmedNote": "<string>"
}
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text){
"id": "<string>",
"scope": "landlord",
"propertyId": "<string>",
"landlordContactId": "<string>",
"label": "<string>",
"revision": 123,
"live": {
"id": "<string>",
"authorityId": "<string>",
"version": 123,
"status": "draft",
"policy": {
"currency": "<string>",
"vatBasis": "inc_vat",
"standardLimitMinor": 123,
"standardOwnerTold": "immediately",
"monthlyCapMinor": 123,
"quoteSteps": [
{
"overMinor": 123,
"quotes": 123
}
],
"rules": [
{
"id": "<string>",
"kind": "emergency",
"categories": [
"<string>"
],
"limitMinor": 123,
"aboveLimit": "quote_to_owner",
"ownerTold": "immediately"
}
],
"approvers": [
{
"contactId": "<string>",
"waitHours": 123
}
],
"noAnswer": "escalate_to_staff",
"noAnswerUnderMinor": 123,
"sourceDocumentId": "<string>",
"sourceNote": "<string>"
},
"summary": [
"<string>"
],
"confirmedVia": "management_agreement",
"confirmedOn": "<string>",
"confirmedNote": "<string>",
"createdAt": "<string>",
"liveFrom": "<string>",
"supersededAt": "<string>"
},
"draft": {
"id": "<string>",
"authorityId": "<string>",
"version": 123,
"status": "draft",
"policy": {
"currency": "<string>",
"vatBasis": "inc_vat",
"standardLimitMinor": 123,
"standardOwnerTold": "immediately",
"monthlyCapMinor": 123,
"quoteSteps": [
{
"overMinor": 123,
"quotes": 123
}
],
"rules": [
{
"id": "<string>",
"kind": "emergency",
"categories": [
"<string>"
],
"limitMinor": 123,
"aboveLimit": "quote_to_owner",
"ownerTold": "immediately"
}
],
"approvers": [
{
"contactId": "<string>",
"waitHours": 123
}
],
"noAnswer": "escalate_to_staff",
"noAnswerUnderMinor": 123,
"sourceDocumentId": "<string>",
"sourceNote": "<string>"
},
"summary": [
"<string>"
],
"confirmedVia": "management_agreement",
"confirmedOn": "<string>",
"confirmedNote": "<string>",
"createdAt": "<string>",
"liveFrom": "<string>",
"supersededAt": "<string>"
},
"history": [
{
"id": "<string>",
"authorityId": "<string>",
"version": 123,
"status": "draft",
"policy": {
"currency": "<string>",
"vatBasis": "inc_vat",
"standardLimitMinor": 123,
"standardOwnerTold": "immediately",
"monthlyCapMinor": 123,
"quoteSteps": [
{
"overMinor": 123,
"quotes": 123
}
],
"rules": [
{
"id": "<string>",
"kind": "emergency",
"categories": [
"<string>"
],
"limitMinor": 123,
"aboveLimit": "quote_to_owner",
"ownerTold": "immediately"
}
],
"approvers": [
{
"contactId": "<string>",
"waitHours": 123
}
],
"noAnswer": "escalate_to_staff",
"noAnswerUnderMinor": 123,
"sourceDocumentId": "<string>",
"sourceNote": "<string>"
},
"summary": [
"<string>"
],
"confirmedVia": "management_agreement",
"confirmedOn": "<string>",
"confirmedNote": "<string>",
"createdAt": "<string>",
"liveFrom": "<string>",
"supersededAt": "<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>"
}Authorizations
A workspace API key (Settings → API keys), scoped to <group>:read / <group>:write.
Path Parameters
Body
application/json
Response
Success
Available options:
landlord, property Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes