12Build REST contractor v1.1

This REST API can be used by contractor contacts with an apiKey.
Activate the 12Build API in your company profile and generate an apiKey under the general rights of your user.
An example postman file can be found here.
For questions about this api, please contact support@12build.com

getToken

/tokens
Parameters
Parameter Required Type Pattern Description Deprecated
login 1 query
apiKey 1 query
forceNew query ^0|1$
Response
{
    "token": "5756cbe60ac41227b718df64f0ae9b5f2c76607b3a889066339f7cfdd241dccf55cf50c5173e9220294feff189aec45cf103e23d6b649981110f49a2c4c28457",
    "expireDate": "1450341052"
}

addProject

/project
Parameters
Parameter Required Type Pattern Description Deprecated
name 1 query ^[\p{L}\p{Nd}\p{Zs}\p{P}\p{Sm}]*$
product query ^tender|none$ default tender, product none requires groupmanager access
companyGroupId query ^\d+ default 0, fill to set as hidden project
phase query ^Calculatie|Inkoop|Uitvoering$ use phaseId instead, you can call GET /project/phases/ to get a list of all available phases.
classificationSystems query comma separated classification systems
phaseId query ^\d+
calcNumber query
status query
workNumber query
address_1 query
address_2 query
zip query
city query
country query use countryCode instead
countryCode query ^[\p{L}]{2}$
client query
manager query
architect query
constructor query
calculator query
inkoper query
werkvoorbereider query
plannedStart query
plannedComplete query
deadlineDate query ^[0-9]{10}$ unix timestamp
reason query ^prijsopgave|aanbesteding|start van het inkooptraject$
questionsDate query ^[0-9]{10}$ unix timestamp
questionsTime query ^2[0-3]|1[0-9]|[1-9]?$ hour number 1-23
updateDate query ^[0-9]{10}$ unix timestamp
updateTime query ^2[0-3]|1[0-9]|[1-9]?$ hour number 1-23
tenderDate query ^[0-9]{10}$ unix timestamp
inspectionDate query ^[0-9]{10}$ unix timestamp
buildingSectors query ^(Bouw|Infra|Woningbouw|Utiliteitsbouw|Grondwerk|Wegenbouw|Waterbouw|Offshore Maritiem|,)*$ comma separated sector names
buildingActivities query ^(Verbouw|Restauratie|Herbestemming|Nieuwbouw|Renovatie|Onderhoud|Sloopwerk|Kabels & Leidingen|Modulair bouwen|,)*$ comma separated activity names
buildingFunctions query ^(Woon|Bijeenkomst|Cel|Gezondheid|Industrie|Kantoor|Logies|Onderwijs|Sport|Winkel|Riolering|Bestrating|Spoorinfra|Bruggen|Tunnels|Kadebescherming|Steiger, damwand en oevervoorzieningen|Dijken|Terreininrichting|Civieltechnische gebouwen|Parkeergarages|Kunstwerk|Gemaal|Horeca|Parkeer|Agrarisch|Openbare Verlichting|Verkeersregelinstallatie|Overig|Bouwwerk geen gebouw zijnde|Monument|Kerk|Klooster|Vandværk|Defensie|Distributie|Kinderdagverblijf|Datacenters|,)*$ comma separated function names
externalUrl query
externalProgram query
sharePointSiteId query The id of the SharePoint site resource. See: https://docs.microsoft.com/en-us/graph/api/resources/site?view=graph-rest-1.0
sharePointSiteWebUrl query The web url of the SharePoint site.
allowSharePointSiteSelection query Determine whether users should be able to select another SharePoint site to synchronize documents with.
autodeskHubId query The hub id of the Autodesk site resource. See: https://forge.autodesk.com/en/docs/data/v2/reference/http/
autodeskProjectId query The project id of the Autodesk site resource. See: https://forge.autodesk.com/en/docs/data/v2/reference/http/
allowAutodeskSiteSelection query Determine whether users should be able to select another Autodesk site to synchronize documents with.
Response
{
    "id": 1234567,
    "name": "projectname"
}

listProjects

/project/list
Parameters
Parameter Required Type Pattern Description Deprecated
active query ^[0-1]$
product query ^tender|none$ default tender, product none requires groupmanager access
pageSize query positive integer, default unlimited
page query positive integer, default 1
Response
[
    {
        "id": "1234567",
        "name": "projectname",
        "calcNumber": "cal-123",
        "workNumber": "werk-123",
        "companyId": "1234567",
        "city": "Rijssen",
        "type": "default",
        "phaseName": "Calculatie",
        "phaseId": 123456,
        "active": true
    }
]

listProjectsByType

/project/list/{type}
Parameters
Parameter Required Type Pattern Description Deprecated
type 1 template ^default|template|all$ default default
active query ^[0-1]$
Response
[
    {
        "id": "1234567",
        "name": "projectname",
        "calcNumber": "cal-123",
        "workNumber": "werk-123",
        "companyId": "1234567",
        "city": "Rijssen",
        "type": "default",
        "phaseName": "Calculatie",
        "phaseId": 123456,
        "active": true
    }
]

searchExternalData

/project/{projectId}/document/searchExternalData
Parameters
Parameter Required Type Pattern Description Deprecated
projectId 1 template
externalData 1 query
Response
[
    {
        "id": "6448805",
        "name": "gebruikershandleiding-ha-2",
        "extension": "pdf",
        "size": "2647455",
        "ctime": "1455176227",
        "deleted": "0",
        "externalData": "KEY_990099"
    }
]

listDocument

/project/{projectId}/document/list
Parameters
Parameter Required Type Pattern Description Deprecated
projectId 1 template
product query ^tender$ default tender
phaseName query ^Calculatie|Inkoop|Uitvoering$ use phaseId instead, you can call GET /project/phases/ to get a list of all available phases.
phaseId query ^\d+
Response
[
    {
        "id": 6350571,
        "name": "hgf",
        "type": "project",
        "documents": [
            {
                "id": "6448805",
                "deleted": "0",
                "extension": "pdf",
                "name": "gebruikershandleiding-ha-2",
                "order": 0,
                "versioningGroup": "~~~6448805",
                "size": "2647455",
                "ctime": "1455176227",
                "externalData": "KEY_990099",
                "type": "project",
                "fileUrl": "file/project/6448805"
            }
        ],
        "documentGroups": [
            {
                "id": 6350590,
                "name": "sub1",
                "type": "project",
                "documents": [
                    {
                        "id": "6448805",
                        "deleted": "0",
                        "extension": "pdf",
                        "name": "gebruikershandleiding-ha-2",
                        "order": 0,
                        "versioningGroup": "~~~6448805",
                        "size": "2647455",
                        "ctime": "1455176227",
                        "externalData": "KEY_990099",
                        "type": "project",
                        "fileUrl": "file/project/6448805"
                    }
                ]
            }
        ]
    }
]

listCommunication

/project/{projectId}/communication/{phaseId}/list
Parameters
Parameter Required Type Pattern Description Deprecated
projectId 1 template
product query ^tender$ default tender
phaseName query ^Calculatie|Inkoop|Uitvoering$ use phaseId instead, you can call GET /project/phases/ to get a list of all available phases.
phaseId template ^\d+
syncChecked query ^0|1$ only return specialist which are checked for synchronization
Response
[
    {
        "id": 1234567,
        "name": "Betonwerk en metselwerk",
        "externalData": "MG-123",
        "codeIds": [
            531,
            532
        ],
        "codes": "21, 22",
        "communication": [
            {
                "id": 1122334,
                "specialistId": "7654321",
                "status": "unknown|rejected|calculating|offer|offerwaiting|granted|inbudget|notgranted",
                "obsolete": "0",
                "deadlineDate": "1450341052",
                "dateOfferReceived": "1450341052",
                "datePurchase": "1450341052",
                "dateWorkStart": "1450341052",
                "offerPrice": "1000.50",
                "offerPrice2": "2000.50",
                "correctedOfferPrice": "1500.75",
                "expiryDate": "1450341052",
                "syncChecked": "1",
                "specialist": {
                    "name": "Subcontractor name",
                    "cocNumber": "05888888",
                    "locationNumber": "123456789012",
                    "vatNumber": "NL123456789B01",
                    "address_1": "Ernst Machstraat 10",
                    "zip": "7442DL",
                    "city": "Nijverdal",
                    "phone": "0880228420",
                    "phoneWithPrefix": "+31880228420"
                },
                "statusChanges": [
                    {
                        "changeDate": "1450341052",
                        "oldStatus": "calculating",
                        "newStatus": "offer"
                    }
                ]
            }
        ]
    }
]

getCommunication

/project/{projectId}/communication/{communicationId}
Parameters
Parameter Required Type Pattern Description Deprecated
projectId 1 template
communicationId 1 template
Response
[
    {
        "id": "1234567",
        "type": "request",
        "subType": "",
        "dateSent": 1666872465,
        "deadlineDate": 1668872465,
        "subject": "Offerteaanvraag",
        "manualAdd": false,
        "description": "message text",
        "language": "nl",
        "companyName": "Subcontractor name",
        "address_1": "Nijverdalseweg 1435",
        "zip": "7468 AG",
        "city": "Rijssen",
        "cocNumber": "05888888",
        "locationNumber": "123456789012",
        "vatNumber": "NL123456789B01",
        "phone": "0623648714",
        "phoneWithPrefix": "+31623648714",
        "sender": {
            "contactName": "Sender name",
            "email": "sender@12build.com"
        },
        "receivers": [
            {
                "contactName": "Receiver name",
                "email": "receiver@12build.com"
            }
        ],
        "attachments": [
            {
                "id": 1234567,
                "type": "project",
                "name": "documentname",
                "extension": "pdf",
                "size": "816094"
            },
            {
                "id": 1234568,
                "type": "project",
                "name": "documentname2",
                "extension": "pdf",
                "size": "2647455"
            }
        ],
        "workComponentAttachments": [
            {
                "id": 1234567,
                "type": "messageGroup",
                "name": "documentname",
                "extension": "pdf",
                "size": "816094"
            },
            {
                "id": 1234568,
                "type": "messageGroup",
                "name": "documentname2",
                "extension": "pdf",
                "size": "2647455"
            }
        ]
    },
    {
        "id": "2345678",
        "type": "response",
        "subType": "",
        "dateSent": 1667872465,
        "deadlineDate": 0,
        "subject": "Offerte",
        "manualAdd": true,
        "description": "message text",
        "language": "nl",
        "companyName": "aeub onderhoud",
        "address_1": "Nijverdalseweg 143",
        "zip": "7461 AG",
        "city": "Rijssen",
        "cocNumber": "05888888",
        "locationNumber": "123456789012",
        "vatNumber": "NL123456789B01",
        "phone": "0548 54 06 52",
        "phoneWithPrefix": "+31548540652",
        "sender": {
            "contactName": "Sender name",
            "email": "sender@12build.com"
        },
        "receivers": [
            {
                "contactName": "Receiver name",
                "email": "receiver@12build.com"
            }
        ],
        "attachments": [
            {
                "id": 1234567,
                "type": "attachment",
                "name": "documentname",
                "extension": "pdf",
                "size": "363044"
            }
        ],
        "workComponentAttachments": [
            {
                "id": 1234567,
                "type": "messageGroup",
                "name": "documentname",
                "extension": "pdf",
                "size": "816094"
            },
            {
                "id": 1234568,
                "type": "messageGroup",
                "name": "documentname2",
                "extension": "pdf",
                "size": "2647455"
            }
        ]
    }
]

getProject

/project/{id}
Parameters
Parameter Required Type Pattern Description Deprecated
id 1 template
userActivity query ^[0-1]$ default false, set true for user activity statistics
Response
{
    "id": "1234567",
    "name": "projectname",
    "calcNumber": "1234",
    "workNumber": "",
    "address_1": "Nijverdalseweg 143",
    "address_2": "second address line",
    "zip": "7461AG",
    "city": "Rijssen",
    "countryCode": "nl",
    "country": "Nederland",
    "phaseId": "123456",
    "client": "...",
    "manager": "...",
    "architect": "...",
    "constructor": "...",
    "calculator": "...",
    "inkoper": "...",
    "werkvoorbereider": "..."
}

createDocument

/project/{id}
Parameters
Parameter Required Type Pattern Description Deprecated
id 1 template
product query ^tender$ default tender
phase query ^Calculatie|Inkoop|Uitvoering$ use phaseId instead, you can call GET /project/phases/ to get a list of all available phases.
phaseId query ^\d+
file_contents 1 file
issueDate query ^[0-9]{10}$ unix timestamp
receiveDate query ^[0-9]{10}$ unix timestamp
sentDate query ^[0-9]{10}$ unix timestamp
specPage query
author query
kind query
path query folder to store document in /folderA/folderAa/
externalData query
statusText query
versionText query version e.g. 2f
Response
{
    "id": "6448813",
    "name": "documentname",
    "externalData": ""
}

getDocument

/document/{id}
Parameters
Parameter Required Type Pattern Description Deprecated
id 1 template
Response
{
    "id": "1234567",
    "type": "project",
    "deleted": false,
    "author": "",
    "color": false,
    "contribute": 0,
    "extension": "pdf",
    "issueDate": 1529649125,
    "kind": "",
    "name": "fileName",
    "receiveDate": 0,
    "specPage": "",
    "statusText": "",
    "versionText": "",
    "size": "816094",
    "duplex": true,
    "ctime": "1455176218",
    "sentDate": 0,
    "externalData": "...",
    "uploadedViaApi": false,
    "fileUrl": "file/project/1234567"
}

removeDocument

/document/{id}
Parameters
Parameter Required Type Pattern Description Deprecated
id 1 template
Response
{
    "id": "1234567",
    "name": "filename",
    "extension": "pdf",
    "size": "816094",
    "ctime": "1455176218",
    "deleted": "1"
}

setDocument

/document/{id}
Parameters
Parameter Required Type Pattern Description Deprecated
id 1 template
name query
issueDate query ^[0-9]{10}$ unix timestamp
receiveDate query ^[0-9]{10}$ unix timestamp
sentDate query ^[0-9]{10}$ unix timestamp
specPage query
author query
kind query
statusText query
versionText query version e.g. 2f
externalData query
Response
{
    "id": "1234567",
    "name": "fileName",
    "extension": "pdf",
    "size": "816094",
    "ctime": "1455176218",
    "deleted": "0",
    "externalData": "..."
}

listDocumentGroups

/project/{projectId}/document/group
Parameters
Parameter Required Type Pattern Description Deprecated
projectId 1 template \d+
Response
[
    {
        "id": 1234567,
        "projectId": 123,
        "name": "group name",
        "order": 1
    }
]

listPhases

/project/phases/
Parameters
Parameter Required Type Pattern Description Deprecated
Response
[
    {
        "product": {
            "template": {
                "phase": 123457
            }
        }
    }
]

listProjectPhases

/project/{projectId}/phases
Parameters
Parameter Required Type Pattern Description Deprecated
projectId 1 template \d+
Response
[
    {
        "product": {
            "template": {
                "phase": 123457
            }
        }
    }
]

updateProject

/project/{projectId}
Parameters
Parameter Required Type Pattern Description Deprecated
projectId 1 template \d+
name query ^[\p{L}\p{Nd}\p{Zs}\p{P}\p{Sm}]*$
companyGroupId query ^\d+ default 0, fill to set as hidden project
phase query ^(Calculatie|Inkoop|Uitvoering)$ use phaseId instead, you can call GET /project/phases/ to get a list of all available phases.
phaseId query \d+
status query ^(unknown|scored|not_scored)$
calcNumber query
workNumber query
address_1 query
address_2 query
zip query
city query
countryCode query ^[\p{L}]{2}$
client query
manager query
architect query
constructor query
calculator query
inkoper query
werkvoorbereider query
plannedStart query
plannedComplete query
deadlineDate query ^[0-9]{10}$ unix timestamp
reason query ^prijsopgave|aanbesteding|start van het inkooptraject$
questionsDate query ^[0-9]{10}$ unix timestamp
questionsTime query ^2[0-3]|1[0-9]|[1-9]?$ hour number 1-23
updateDate query ^[0-9]{10}$ unix timestamp
updateTime query ^2[0-3]|1[0-9]|[1-9]?$ hour number 1-23
tenderDate query ^[0-9]{10}$ unix timestamp
inspectionDate query ^[0-9]{10}$ unix timestamp
classificationSystems query comma separated classification systems
buildingSectors query ^(Bouw|Infra|Woningbouw|Utiliteitsbouw|Grondwerk|Wegenbouw|Waterbouw|Offshore Maritiem|,)*$ comma separated sector names
buildingActivities query ^(Verbouw|Restauratie|Herbestemming|Nieuwbouw|Renovatie|Onderhoud|Sloopwerk|Kabels & Leidingen|Modulair bouwen|,)*$ comma separated activity names
buildingFunctions query ^(Woon|Bijeenkomst|Cel|Gezondheid|Industrie|Kantoor|Logies|Onderwijs|Sport|Winkel|Riolering|Bestrating|Spoorinfra|Bruggen|Tunnels|Kadebescherming|Steiger, damwand en oevervoorzieningen|Dijken|Terreininrichting|Civieltechnische gebouwen|Parkeergarages|Kunstwerk|Gemaal|Horeca|Parkeer|Agrarisch|Openbare Verlichting|Verkeersregelinstallatie|Overig|Bouwwerk geen gebouw zijnde|Monument|Kerk|Klooster|Vandværk|Defensie|Distributie|Kinderdagverblijf|Datacenters|,)*$ comma separated function names
externalUrl query
externalProgram query
sharePointSiteId query The id of the SharePoint site resource. See: https://docs.microsoft.com/en-us/graph/api/resources/site?view=graph-rest-1.0
sharePointSiteWebUrl query The web url of the SharePoint site.
allowSharePointSiteSelection query Determine whether users should be able to select another SharePoint site to synchronize documents with.
autodeskHubId query The hub id of the Autodesk site resource. See: https://forge.autodesk.com/en/docs/data/v2/reference/http/
autodeskProjectId query The project id of the Autodesk site resource. See: https://forge.autodesk.com/en/docs/data/v2/reference/http/
allowAutodeskSiteSelection query Determine whether users should be able to select another Autodesk site to synchronize documents with.
Response
[
    {
        "id": 1234567,
        "name": "example project",
        "status": "scored"
    }
]

removeProject

/project/{projectId}
Parameters
Parameter Required Type Pattern Description Deprecated
projectId 1 template \d+ only projects with product none can be deleted, requires groupmanager access
Response

                            

closeProject

/project/{projectId}/close
Parameters
Parameter Required Type Pattern Description Deprecated
projectId 1 template \d+
Response
[
    {
        "id": 1234567,
        "name": "example project",
        "closedPhases": [
            "array of closed phases"
        ]
    }
]

openProject

/project/{projectId}/open
Parameters
Parameter Required Type Pattern Description Deprecated
projectId 1 template \d+
Response
[
    {
        "id": 1234567,
        "name": "example project",
        "openPhases": [
            "array of open phases"
        ]
    }
]

closeProjectPhase

/project/{projectId}/projectphase/close
Parameters
Parameter Required Type Pattern Description Deprecated
projectId 1 template \d+
phase query ^(All|Calculatie|Inkoop|Uitvoering|,)*$ comma separated allowed phase names use phaseId instead, you can call GET /project/phases/ to get a list of all available phases.
phaseId query \d+ comma separated allowed phaseIds
Response
[
    {
        "id": 1234567,
        "name": "example project",
        "closedPhases": [
            "array of closed phases"
        ]
    }
]

openProjectPhase

/project/{projectId}/projectphase/open
Parameters
Parameter Required Type Pattern Description Deprecated
projectId 1 template \d+
phase query ^(All|Calculatie|Inkoop|Uitvoering|,)*$ comma separated allowed phase names use phaseId instead, you can call GET /project/phases/ to get a list of all available phases.
phaseId query \d+ comma separated allowed phaseIds
Response
[
    {
        "id": 1234567,
        "name": "example project",
        "openPhases": [
            "array of open phases"
        ]
    }
]

createDocumentGroup

/project/{projectId}/document/group
Parameters
Parameter Required Type Pattern Description Deprecated
projectId 1 template \d+
name 1 query .*[^ ].*
parentId query \d+
order query \d+
Response
[
    {
        "id": 1234567,
        "projectId": 123,
        "name": "group name",
        "order": 1
    }
]

getDocumentGroup

/document/group/{documentGroupId}
Parameters
Parameter Required Type Pattern Description Deprecated
documentGroupId 1 template \d+
Response
[
    {
        "id": 1234567,
        "projectId": 123,
        "name": "group name",
        "order": 1
    }
]

updateDocumentGroup

/document/group/{documentGroupId}
Parameters
Parameter Required Type Pattern Description Deprecated
documentGroupId 1 template \d+
name query .*[^ ].*
parentId query \d+
order query \d+
Response
[
    {
        "id": 1234567,
        "projectId": 123,
        "name": "group name",
        "order": 1
    }
]

deleteDocumentGroup

/document/group/{documentGroupId}
Parameters
Parameter Required Type Pattern Description Deprecated
documentGroupId 1 template \d+
Response

                            

addDocumentToDocumentGroup

/documents/groups/{documentGroupId}/{phaseId}/{fileName}
Parameters
Parameter Required Type Pattern Description Deprecated
documentGroupId 1 template \d+
fileName 1 template
phaseId 1 template \d+ call GET /project/phases/ to get a list of all available phases
Response
{
    "documentId": 1
}

setExternalReference

/document/{documentId}/externalreference
Parameters
Parameter Required Type Pattern Description Deprecated
documentId 1 template \d+
type 1 query
referenceId 1 query
Response
{
    "document": {
        "id": 1234567,
        "name": "document name"
    },
    "reference": {
        "type": "givenType",
        "referenceId": "givenReferenceId"
    }
}

getFile

/file/{documentType}/{documentId}
Parameters
Parameter Required Type Pattern Description Deprecated
documentType 1 template ^project|attachment|common|messageGroup$
documentId 1 template
Response
Binary file download

getMessagePdf

/message/{messageId}/pdf
Parameters
Parameter Required Type Pattern Description Deprecated
messageId 1 template \d+
Response
Binary file download

getRelations

/relation/list
Parameters
Parameter Required Type Pattern Description Deprecated
relation query (?:^|(?<= ))(gold|green|black|stabu-specific)(?:(?= )|$)
dataKey query optional search for key in relationData
dataValue query optional search for value in relationData, dataKey is required, will filter explicitly on empty value when provided
pageSize query positive integer, default unlimited
page query positive integer, default 1
Response
[
    {
        "company": [],
        "address": [],
        "relation": [],
        "relationData": []
    }
]

addRelation

/relation
Parameters
Parameter Required Type Pattern Description Deprecated
companyId 1 query ^[1-9][0-9]*$
relation 1 query (?:^|(?<= ))(gold|green|black)(?:(?= )|$)
Response
{
    "id": 1,
    "companyId": 5,
    "relation": "gold"
}

removeRelation

/relation
Parameters
Parameter Required Type Pattern Description Deprecated
companyId 1 query ^[1-9][0-9]*$
Response
[]

updateRelation

/relation
Parameters
Parameter Required Type Pattern Description Deprecated
companyId 1 query ^[1-9][0-9]*$
relation 1 query (?:^|(?<= ))(gold|green|black)(?:(?= )|$)
Response
{
    "id": 1,
    "companyId": 5,
    "relation": "gold"
}

addRelationData

/relation/{companyId}
Parameters
Parameter Required Type Pattern Description Deprecated
companyId 1 template ^[1-9][0-9]*$
key 1 query
value 1 query
source query
showInProfile query ^[0-1]$ default 0
type query ^url|text$ default text
Response
{
    "companyId": "1234567",
    "key": "myCompanyNumber",
    "value": "C123",
    "source": "ERP",
    "showInProfile": 0,
    "type": "text"
}

removeRelationData

/relation/{companyId}
Parameters
Parameter Required Type Pattern Description Deprecated
companyId 1 template ^[1-9][0-9]*$
key 1 query
Response
[]

updateRelationData

/relation/{companyId}
Parameters
Parameter Required Type Pattern Description Deprecated
companyId 1 template ^[1-9][0-9]*$
key 1 query
value 1 query
source query
Response
{
    "companyId": "1234567",
    "key": "myCompanyNumber",
    "value": "C123",
    "source": "ERP"
}

listChapters

/chapters/list/{classificationSystemId}
Parameters
Parameter Required Type Pattern Description Deprecated
classificationSystemId 1 template \d+
Response
[
    {
        "123": {
            "id": 123,
            "number": "05",
            "name": "Chapter name",
            "description": "Chapter description"
        }
    }
]

listCompanyClassificationSystems

/classification-systems/list
Parameters
Parameter Required Type Pattern Description Deprecated
Response
[
    {
        "id": 1,
        "name": "stabu",
        "description": "Classification system description"
    }
]

listAllClassificationSystems

/classification-systems/list/all
Parameters
Parameter Required Type Pattern Description Deprecated
Response
[
    {
        "id": 1,
        "name": "stabu",
        "description": "Classification system description"
    }
]

getSpecialist

/specialist/{companyId}
Parameters
Parameter Required Type Pattern Description Deprecated
companyId 1 template \d+
Response
[
    {
        "id": 1,
        "name": "SpecialistsRUs"
    }
]

createSpecialist

/specialist
Parameters
Parameter Required Type Pattern Description Deprecated
name 1 query
description query
registrationNumber 1 query \d+
countryCode 1 query
Response
{
    "data": {
        "id": 1234567,
        "name": "example specialist"
    }
}

addWorkComponent

/work-component
Parameters
Parameter Required Type Pattern Description Deprecated
product query ^tender$ default tender
projectId 1 query \d+$ Project id
name 1 query ^[\p{L}\p{Nd}\p{Zs}\p{P}\p{Sm}]*$ Work component name
stabuChapterIds query Array with stabu chapter IDs
internalNote query
plannedStart query
plannedComplete query
externalData query
Response
{
    "workComponentId": 1
}

updateWorkComponent

/work-component/{workComponentId}
Parameters
Parameter Required Type Pattern Description Deprecated
workComponentId 1 template \d+ Work component id
name query ^[\p{L}\p{Nd}\p{Zs}\p{P}\p{Sm}]*$ Work component name
stabuChapterIds query Array with stabu chapter IDs
internalNote query
plannedStart query
plannedComplete query
externalData query
Response
{
    "workComponentId": 1
}

deleteWorkComponent

/work-component/{workComponentId}
Parameters
Parameter Required Type Pattern Description Deprecated
workComponentId 1 template \d+ Work component id
Response
{}

addInvitation

/invitation
Parameters
Parameter Required Type Pattern Description Deprecated
workComponentId 1 query \d+$ Work component id
phaseId 1 query \d+$ Phase id
companyId 1 query \d+$ Company id
status query The status of the invitation
Response
{
    "id": 1,
    "workComponentId": 2,
    "phaseId": 3,
    "specialistId": 4,
    "status": "offer"
}

getInvitation

/invitation/{id}
Parameters
Parameter Required Type Pattern Description Deprecated
id 1 template \d+$ Invitation id
Response
{
    "id": 1,
    "workComponentId": 2,
    "phaseId": 3,
    "specialistId": 4,
    "status": "offer"
}

getBudgetRowsForInvitation

/invitation/{id}/budgetRows
Parameters
Parameter Required Type Pattern Description Deprecated
id 1 template \d+$ Invitation id
Response
{
    "data": [
        {
            "rows": [
                {
                    "name": {
                        "id": 257,
                        "budgetRowId": 16,
                        "value": "Work item 1",
                        "formattedValue": "Work item 1",
                        "prefixedValue": "Work item 1"
                    },
                    "projectSpecMt": {
                        "id": 258,
                        "budgetRowId": 16,
                        "value": "",
                        "formattedValue": "",
                        "prefixedValue": ""
                    },
                    "numberOfUnits": {
                        "id": 259,
                        "budgetRowId": 16,
                        "value": "10",
                        "formattedValue": "10",
                        "prefixedValue": "10"
                    },
                    "unit": {
                        "id": 260,
                        "budgetRowId": 16,
                        "value": "m3",
                        "formattedValue": "m3",
                        "prefixedValue": "m3"
                    },
                    "details": {
                        "id": 261,
                        "budgetRowId": 16,
                        "value": "Work item 1 details",
                        "formattedValue": "Work item 1 details",
                        "prefixedValue": "Work item 1 details"
                    },
                    "measurement": {
                        "id": 265,
                        "budgetRowId": 16,
                        "value": "",
                        "formattedValue": "",
                        "prefixedValue": ""
                    },
                    "rowNumber": {
                        "id": 268,
                        "budgetRowId": 16,
                        "value": "1",
                        "formattedValue": "1",
                        "prefixedValue": "1"
                    },
                    "totalPriceReferenceId": {
                        "id": 269,
                        "budgetRowId": 16,
                        "value": "",
                        "formattedValue": "",
                        "prefixedValue": ""
                    },
                    "pricePerUnit": {
                        "id": 271,
                        "budgetRowId": 16,
                        "value": "15",
                        "formattedValue": "15",
                        "prefixedValue": "\u20ac 15"
                    },
                    "totalPrice": {
                        "id": 272,
                        "budgetRowId": 16,
                        "value": "150",
                        "formattedValue": "150",
                        "prefixedValue": "150"
                    }
                },
                {
                    "name": {
                        "id": 274,
                        "budgetRowId": 17,
                        "value": "Work item 2",
                        "formattedValue": "Work item 2",
                        "prefixedValue": "Work item 2"
                    },
                    "projectSpecMt": {
                        "id": 275,
                        "budgetRowId": 17,
                        "value": "",
                        "formattedValue": "",
                        "prefixedValue": ""
                    },
                    "numberOfUnits": {
                        "id": 276,
                        "budgetRowId": 17,
                        "value": "20",
                        "formattedValue": "20",
                        "prefixedValue": "20"
                    },
                    "unit": {
                        "id": 277,
                        "budgetRowId": 17,
                        "value": "m3",
                        "formattedValue": "m3",
                        "prefixedValue": "m3"
                    },
                    "details": {
                        "id": 278,
                        "budgetRowId": 17,
                        "value": "Work item 2 details",
                        "formattedValue": "Work item 2 details",
                        "prefixedValue": "Work item 2 details"
                    },
                    "measurement": {
                        "id": 282,
                        "budgetRowId": 17,
                        "value": "",
                        "formattedValue": "",
                        "prefixedValue": ""
                    },
                    "rowNumber": {
                        "id": 285,
                        "budgetRowId": 17,
                        "value": "2",
                        "formattedValue": "2",
                        "prefixedValue": "2"
                    },
                    "totalPriceReferenceId": {
                        "id": 286,
                        "budgetRowId": 17,
                        "value": "",
                        "formattedValue": "",
                        "prefixedValue": ""
                    },
                    "pricePerUnit": {
                        "id": 288,
                        "budgetRowId": 17,
                        "value": "25",
                        "formattedValue": "25",
                        "prefixedValue": "\u20ac 25"
                    },
                    "totalPrice": {
                        "id": 289,
                        "budgetRowId": 17,
                        "value": "500",
                        "formattedValue": "500",
                        "prefixedValue": "500"
                    }
                },
                {
                    "name": {
                        "id": 291,
                        "budgetRowId": 18,
                        "value": "Work item 3",
                        "formattedValue": "Work item 3",
                        "prefixedValue": "Work item 3"
                    },
                    "projectSpecMt": {
                        "id": 292,
                        "budgetRowId": 18,
                        "value": "",
                        "formattedValue": "",
                        "prefixedValue": ""
                    },
                    "numberOfUnits": {
                        "id": 293,
                        "budgetRowId": 18,
                        "value": "30",
                        "formattedValue": "30",
                        "prefixedValue": "30"
                    },
                    "unit": {
                        "id": 294,
                        "budgetRowId": 18,
                        "value": "amount",
                        "formattedValue": "amount",
                        "prefixedValue": "amount"
                    },
                    "details": {
                        "id": 295,
                        "budgetRowId": 18,
                        "value": "Work item 3 details",
                        "formattedValue": "Work item 3 details",
                        "prefixedValue": "Work item 3 details"
                    },
                    "measurement": {
                        "id": 299,
                        "budgetRowId": 18,
                        "value": "",
                        "formattedValue": "",
                        "prefixedValue": ""
                    },
                    "rowNumber": {
                        "id": 302,
                        "budgetRowId": 18,
                        "value": "3",
                        "formattedValue": "3",
                        "prefixedValue": "3"
                    },
                    "totalPriceReferenceId": {
                        "id": 303,
                        "budgetRowId": 18,
                        "value": "",
                        "formattedValue": "",
                        "prefixedValue": ""
                    },
                    "pricePerUnit": {
                        "id": 305,
                        "budgetRowId": 18,
                        "value": "10",
                        "formattedValue": "10",
                        "prefixedValue": "\u20ac 10"
                    },
                    "totalPrice": {
                        "id": 306,
                        "budgetRowId": 18,
                        "value": "300",
                        "formattedValue": "300",
                        "prefixedValue": "300"
                    }
                }
            ],
            "budgetId": 1,
            "messageId": 30,
            "specialistId": 12,
            "specialistName": "BoQ Sub Contractor 1"
        }
    ]
}

updateInvitation

/invitation/{id}
Parameters
Parameter Required Type Pattern Description Deprecated
id 1 template \d+$ Invitation id
status query ^(unknown|rejected|calculating|offer|offerwaiting|granted|inbudget|notgranted)$ The new status of the invitation.
Response
{
    "id": 1,
    "workComponentId": 2,
    "phaseId": 3,
    "specialistId": 4,
    "status": "offer"
}

deleteInvitation

/invitation/{id}
Parameters
Parameter Required Type Pattern Description Deprecated
id 1 template \d+$ Invitation id
Response

                            

findCompanyByRegistrationNumber

/company/findByRegistrationNumber/{country}/{registrationNumber}
Parameters
Parameter Required Type Pattern Description Deprecated
country 1 template ^[a-z]{2}$ The ISO 3166 country code.
registrationNumber 1 template A company registration number. E.g. for Dutch companies the Chamber of Commerce number (kvk-nummer).
Response
{
    "data": [
        {
            "id": 1,
            "cocCity": "",
            "cocType": "",
            "cocNumber": "12345678",
            "locationNumber": "123456789012",
            "vatNumber": "NL123456789B01",
            "name": "Specialist R Us",
            "phone": "0612341234",
            "website": "www",
            "phoneWithPrefix": "+31612341234"
        }
    ]
}

listBudgetRows

/budgetrow/{budgetId}
Parameters
Parameter Required Type Pattern Description Deprecated
budgetId 1 template \d+$ Budget id
workCategoryId query \d+$ Work category id (Message group id)
Response
{
    "data": [
        {
            "budgetRowId": 4,
            "originalBudgetRowId": 1,
            "properties": {
                "name": {
                    "id": 53,
                    "budgetRowId": 4,
                    "value": "Offerte:",
                    "formattedValue": "Offerte:",
                    "prefixedValue": "Offerte:"
                },
                "unit": {
                    "id": 54,
                    "budgetRowId": 4,
                    "value": "",
                    "formattedValue": "",
                    "prefixedValue": ""
                },
                "measurement": {
                    "id": 55,
                    "budgetRowId": 4,
                    "value": "0",
                    "formattedValue": "",
                    "prefixedValue": ""
                },
                "numberOfUnits": {
                    "id": 56,
                    "budgetRowId": 4,
                    "value": "0",
                    "formattedValue": "",
                    "prefixedValue": ""
                },
                "details": {
                    "id": 57,
                    "budgetRowId": 4,
                    "value": "",
                    "formattedValue": "",
                    "prefixedValue": ""
                },
                "totalPriceReferenceId": {
                    "id": 60,
                    "budgetRowId": 4,
                    "value": "",
                    "formattedValue": "",
                    "prefixedValue": ""
                },
                "projectSpecMt": {
                    "id": 61,
                    "budgetRowId": 4,
                    "value": "",
                    "formattedValue": "",
                    "prefixedValue": ""
                },
                "pricePerUnit": {
                    "id": 63,
                    "budgetRowId": 4,
                    "value": "",
                    "formattedValue": "",
                    "prefixedValue": "\u20ac "
                },
                "totalPrice": {
                    "id": 64,
                    "budgetRowId": 4,
                    "value": "",
                    "formattedValue": "",
                    "prefixedValue": ""
                },
                "rowNumber": {
                    "id": 0,
                    "budgetRowId": 4,
                    "value": "4",
                    "formattedValue": "4",
                    "prefixedValue": "4"
                }
            },
            "links": [
                {
                    "budgetRowId": 4,
                    "className": "MessageGroup",
                    "objectId": 60,
                    "isMessageGroup": false
                }
            ]
        }
    ]
}

addBudgetRow

/budgetrow
Parameters
Parameter Required Type Pattern Description Deprecated
budgetId 1 query \d+$ Budget id
rowNumber query \d+$ Row id
properties 1 query Allowed values: details, docNumber, hideAmount, importReference, measurement, name, numberOfUnits, pricePerUnit, totalPrice, totalPriceReferenceId, projectSpecMt, required, rowNumber, sendToSpecialist, unit, messageGroupBudget, totalPriceExcluded, priceType, importType, children, elementType
messageGroupId query \d+$ Message group id (Work category id)
workCategoryId query \d+$ Work category id (Message group id)
Response
{
    "budgetId": 1,
    "rowNumber": 2,
    "properties": {
        "price": "150",
        "measurement": "",
        "projectSpecMt": "",
        "details": "Detailed text",
        "unit": "meters",
        "numberOfUnits": "9834",
        "name": "Some name"
    }
}

addBudgetRows

/budgetrows
Parameters
Parameter Required Type Pattern Description Deprecated
budgetId 1 query \d+$ Budget id
budgetRows 1 query Array of arrays containing a rowNumber and properties (Allowed values: details, docNumber, hideAmount, importReference, measurement, name, numberOfUnits, pricePerUnit, totalPrice, totalPriceReferenceId, projectSpecMt, required, rowNumber, sendToSpecialist, unit, messageGroupBudget, totalPriceExcluded, priceType, importType, children, elementType)
messageGroupId query \d+$ Message group id (Work category id)
workCategoryId query \d+$ Work category id (Message group id)
Response
{
    "budgetId": 1,
    "budgetRows": [
        {
            "rowNumber": 2,
            "properties": {
                "price": "150",
                "measurement": "",
                "projectSpecMt": "",
                "details": "Detailed text",
                "unit": "meters",
                "numberOfUnits": "9834",
                "name": "Some name"
            }
        },
        {
            "rowNumber": 3,
            "properties": {
                "price": "200",
                "measurement": "",
                "projectSpecMt": "",
                "details": "Detailed text 2",
                "unit": "kilometers",
                "numberOfUnits": "1256",
                "name": "Random name"
            }
        }
    ]
}

updateBudgetRow

/budgetrow
Parameters
Parameter Required Type Pattern Description Deprecated
budgetRowId 1 query \d+$ Budget row id
properties 1 query Budget row properties
Response
{
    "budgetRowId": 1,
    "properties": {
        "price": "150",
        "measurement": "",
        "projectSpecMt": "",
        "details": "Detailed text",
        "unit": "meters",
        "numberOfUnits": "9834",
        "name": "Some name"
    }
}

updateBudgetRows

/budgetrows
Parameters
Parameter Required Type Pattern Description Deprecated
budgetRows 1 query Array of arrays containing an id and properties (Allowed values: details, docNumber, hideAmount, importReference, measurement, name, numberOfUnits, pricePerUnit, totalPrice, totalPriceReferenceId, projectSpecMt, required, rowNumber, sendToSpecialist, unit, messageGroupBudget, totalPriceExcluded, priceType, importType, children, elementType)
Response
{
    "budgetRows": [
        {
            "id": 2,
            "properties": {
                "price": "150",
                "measurement": "",
                "projectSpecMt": "",
                "details": "Detailed text",
                "unit": "meters",
                "numberOfUnits": "9834",
                "name": "Some name"
            }
        },
        {
            "rowNumber": 3,
            "properties": {
                "price": "200",
                "measurement": "",
                "projectSpecMt": "",
                "details": "Detailed text 2",
                "unit": "kilometers",
                "numberOfUnits": "1256",
                "name": "Random name"
            }
        }
    ]
}

createBudget

/budget
Parameters
Parameter Required Type Pattern Description Deprecated
projectId 1 query \d+$ Project id
phaseId query \d+$ Phase id
Response
{
    "projectId": 1,
    "phaseId": 2
}

getBudget

/budget
Parameters
Parameter Required Type Pattern Description Deprecated
projectId 1 query \d+$ Project id
phaseId 1 query \d+$ Phase id
Response
{
    "projectId": 1,
    "phaseId": 2
}

deleteBudgetRow

/budgetrow/{budgetRowId}
Parameters
Parameter Required Type Pattern Description Deprecated
budgetRowId 1 template \d+$ Budget row id
Response

                            

deleteBudgetRows

/budgetrows
Parameters
Parameter Required Type Pattern Description Deprecated
budgetRowIds 1 query Array containing budget row IDs
Response
{
    "budgetRowIds": [
        1,
        2,
        3,
        4,
        5
    ]
}

linkBudgetRow

/budgetrow/link
Parameters
Parameter Required Type Pattern Description Deprecated
budgetRowId 1 query \d+$ Budget row id
messageGroupId query \d+$ Message group id (Work category id)
workCategoryId query \d+$ Work category id (Message group id)
Response

                            

unlinkBudgetRow

/budgetrow/unlink
Parameters
Parameter Required Type Pattern Description Deprecated
budgetRowId 1 query \d+$ Budget row id
messageGroupId query \d+$ Message group id (Work category id)
workCategoryId query \d+$ Work category id (Message group id)
Response

                            

getDocumentGroupWorkCategoryLinks

/document/group/{documentGroupId}/links
Parameters
Parameter Required Type Pattern Description Deprecated
documentGroupId 1 template \d+$
Response
{
    "data": {
        "workCategoryIds": [
            43,
            44,
            45,
            46
        ]
    }
}

updateDocumentGroupWorkCategory

/document/group/{documentGroupId}/links
Parameters
Parameter Required Type Pattern Description Deprecated
documentGroupId 1 template \d+$
workCategoryIds query Array of workCategoryIds
Response
{
    "data": {
        "workCategoryIds": [
            43,
            44,
            45,
            46
        ]
    }
}