Skip to main content

OAS Purchase to Pay

This OpenAPI specification defines a set of APIs for the exchange of the SETU Purchase to Pay V2 messages. SETU has created several standardized messages to facilitate the processes involved in ordering and selecting human resources, assigning the human resource using the assignment, and reporting time and expenses. This includes staffing orders, human resources, assignments, timecards and invoices. The APIs are designed to be implemented primarily by backoffice systems of both the staffing customer and the staffing supplier. This page provides documentation about the OpenAPI specification.

The APIs are organized into tags for easy navigation and include descriptions for each set of APIs. The available tags include Staffing Order, Human Resource, Assignment, Timecard, and Invoice, which include the API calls related to the different sets of SETU Purchase to Pay messages. Additionally, this API specification also provides tags for common processes that our encountered during the use of the Purchase to Pay messages. These processes include the creation, retrieval, update, and deletion of various resources necessary for the purchase-to-pay process.

The request body of each API call in the OpenAPI specification is based on versions of the standardized message structure developed by SETU, ensuring that the request and response data adhere to a common and standardized format. This facilitates interoperability and ease of use across different software systems. The request body is available in both JSON and XML formats. More information about the SETU standards can be found here.

SETU API for Purchase to Pay (1.0)

Download OpenAPI specification:Download

License: MIT

Set of API specifications that allows for the exchange of information related to purchase-to-pay processes. The JSON and XML schemas for the requestBody of each API call can be found on the SETU GitHub.

Staffing Order (RFQ)

Staffing Order is used by a staffing customer to request (an) employee(s) for an open position.

Submit a new staffing order (RFQ)

path Parameters
id
required
string
header Parameters
setuVersionId
required
string
Example: 2.0

Specification of the SETU standard version that is used as body message.

Content-Type
required
string
Enum: "application/json" "application/xml"
Example: application/json
Request Body schema:

Complete staffing order message as specified by SETU. A message may have multiple versions that can differ. This message contains the order type 'RFQ'.

required
object
object
required
object
orderType
required
string
Enum: "Order" "RFQ"
required
object
Array of objects
object
object
object
reasonOfChange
string
comments
string
customerSpecificRequirements
string <uri-reference>

Responses

Request samples

Content type
{
  • "documentId": {
    },
  • "supplier": {
    },
  • "customer": {
    },
  • "orderType": "Order",
  • "positionProfile": {
    },
  • "payRates": [
    ],
  • "requestForQuotationDetails": {
    },
  • "resourceClassificationInclusion": {
    },
  • "staffingIds": {
    },
  • "reasonOfChange": "string",
  • "comments": "string",
  • "customerSpecificRequirements": "../dictionary"
}

Retrieve information about an existing staffing order (RFQ)

path Parameters
id
required
string

Responses

Response samples

Content type
{
  • "documentId": {
    },
  • "supplier": {
    },
  • "customer": {
    },
  • "orderType": "Order",
  • "positionProfile": {
    },
  • "payRates": [
    ],
  • "requestForQuotationDetails": {
    },
  • "resourceClassificationInclusion": {
    },
  • "staffingIds": {
    },
  • "reasonOfChange": "string",
  • "comments": "string",
  • "customerSpecificRequirements": "../dictionary"
}

Update an existing staffing order (RFQ)

path Parameters
id
required
string
header Parameters
setuVersionId
required
string
Example: 2.0

Specification of the SETU standard version that is used as body message.

Content-Type
required
string
Enum: "application/json" "application/xml"
Example: application/json
Request Body schema:
required
object
object
required
object
orderType
required
string
Enum: "Order" "RFQ"
required
object
Array of objects
object
object
object
reasonOfChange
string
comments
string
customerSpecificRequirements
string <uri-reference>

Responses

Request samples

Content type
{
  • "documentId": {
    },
  • "supplier": {
    },
  • "customer": {
    },
  • "orderType": "Order",
  • "positionProfile": {
    },
  • "payRates": [
    ],
  • "requestForQuotationDetails": {
    },
  • "resourceClassificationInclusion": {
    },
  • "staffingIds": {
    },
  • "reasonOfChange": "string",
  • "comments": "string",
  • "customerSpecificRequirements": "../dictionary"
}

Response samples

Content type
{
  • "documentId": {
    },
  • "supplier": {
    },
  • "customer": {
    },
  • "orderType": "Order",
  • "positionProfile": {
    },
  • "payRates": [
    ],
  • "requestForQuotationDetails": {
    },
  • "resourceClassificationInclusion": {
    },
  • "staffingIds": {
    },
  • "reasonOfChange": "string",
  • "comments": "string",
  • "customerSpecificRequirements": "../dictionary"
}

Delete an existing staffing order (RFQ)

path Parameters
id
required
string

Responses

Response samples

Content type
{
  • "documentId": {
    },
  • "supplier": {
    },
  • "customer": {
    },
  • "orderType": "Order",
  • "positionProfile": {
    },
  • "payRates": [
    ],
  • "requestForQuotationDetails": {
    },
  • "resourceClassificationInclusion": {
    },
  • "staffingIds": {
    },
  • "reasonOfChange": "string",
  • "comments": "string",
  • "customerSpecificRequirements": "../dictionary"
}

Human Resource

Human Resource is used by the staffing supplier to match a human resource to an open position.

Submit a new human resource

path Parameters
id
required
string
header Parameters
setuVersionId
required
string
Example: 2.0

Specification of the SETU standard version that is used as body message.

Content-Type
required
string
Enum: "application/json" "application/xml"
Example: application/json
Request Body schema:

Complete human resource message as specified by SETU.

required
object
required
object
required
object
required
object
object
Array of objects
object
object
reasonOfChange
string
customerSpecificRequirements
string <uri-reference>

Responses

Request samples

Content type
{
  • "documentId": {
    },
  • "supplier": {
    },
  • "customer": {
    },
  • "person": {
    },
  • "profiles": {
    },
  • "payRates": [
    ],
  • "resourceClassificationInclusion": {
    },
  • "staffingIds": {
    },
  • "reasonOfChange": "string",
  • "customerSpecificRequirements": "../dictionary"
}

Response samples

Content type
{
  • "documentId": {
    },
  • "supplier": {
    },
  • "customer": {
    },
  • "person": {
    },
  • "profiles": {
    },
  • "payRates": [
    ],
  • "resourceClassificationInclusion": {
    },
  • "staffingIds": {
    },
  • "reasonOfChange": "string",
  • "customerSpecificRequirements": "../dictionary"
}

Retrieve information about an existing human resource

path Parameters
id
required
string

Responses

Response samples

Content type
{
  • "documentId": {
    },
  • "supplier": {
    },
  • "customer": {
    },
  • "person": {
    },
  • "profiles": {
    },
  • "payRates": [
    ],
  • "resourceClassificationInclusion": {
    },
  • "staffingIds": {
    },
  • "reasonOfChange": "string",
  • "customerSpecificRequirements": "../dictionary"
}

Update an existing human resource

path Parameters
id
required
string
header Parameters
setuVersionId
required
string
Example: 2.0

Specification of the SETU standard version that is used as body message.

Content-Type
required
string
Enum: "application/json" "application/xml"
Example: application/json
Request Body schema:
required
object
required
object
required
object
required
object
object
Array of objects
object
object
reasonOfChange
string
customerSpecificRequirements
string <uri-reference>

Responses

Request samples

Content type
{
  • "documentId": {
    },
  • "supplier": {
    },
  • "customer": {
    },
  • "person": {
    },
  • "profiles": {
    },
  • "payRates": [
    ],
  • "resourceClassificationInclusion": {
    },
  • "staffingIds": {
    },
  • "reasonOfChange": "string",
  • "customerSpecificRequirements": "../dictionary"
}

Delete an existing human resource

path Parameters
id
required
string

Responses

Response samples

Content type
{
  • "documentId": {
    },
  • "supplier": {
    },
  • "customer": {
    },
  • "person": {
    },
  • "profiles": {
    },
  • "payRates": [
    ],
  • "resourceClassificationInclusion": {
    },
  • "staffingIds": {
    },
  • "reasonOfChange": "string",
  • "customerSpecificRequirements": "../dictionary"
}

Staffing Order (Order)

Staffing Order is used by a staffing customer to order (an) employee(s) for an open position.

Submit a new staffing order (Order)

path Parameters
id
required
string
header Parameters
setuVersionId
required
string
Example: 2.0

Specification of the SETU standard version that is used as body message.

Content-Type
required
string
Enum: "application/json" "application/xml"
Example: application/json
Request Body schema:

Complete staffing order message as specified by SETU. A message may have multiple versions that can differ. This message contains the order type 'Order'.

required
object
object
required
object
orderType
required
string
Enum: "Order" "RFQ"
required
object
Array of objects
object
object
object
reasonOfChange
string
comments
string
customerSpecificRequirements
string <uri-reference>

Responses

Request samples

Content type
{
  • "documentId": {
    },
  • "supplier": {
    },
  • "customer": {
    },
  • "orderType": "Order",
  • "positionProfile": {
    },
  • "payRates": [
    ],
  • "requestForQuotationDetails": {
    },
  • "resourceClassificationInclusion": {
    },
  • "staffingIds": {
    },
  • "reasonOfChange": "string",
  • "comments": "string",
  • "customerSpecificRequirements": "../dictionary"
}

Retrieve information about an existing staffing order (Order)

path Parameters
id
required
string

Responses

Response samples

Content type
{
  • "documentId": {
    },
  • "supplier": {
    },
  • "customer": {
    },
  • "orderType": "Order",
  • "positionProfile": {
    },
  • "payRates": [
    ],
  • "requestForQuotationDetails": {
    },
  • "resourceClassificationInclusion": {
    },
  • "staffingIds": {
    },
  • "reasonOfChange": "string",
  • "comments": "string",
  • "customerSpecificRequirements": "../dictionary"
}

Update an existing staffing order (Order)

path Parameters
id
required
string
header Parameters
setuVersionId
required
string
Example: 2.0

Specification of the SETU standard version that is used as body message.

Content-Type
required
string
Enum: "application/json" "application/xml"
Example: application/json
Request Body schema:
required
object
object
required
object
orderType
required
string
Enum: "Order" "RFQ"
required
object
Array of objects
object
object
object
reasonOfChange
string
comments
string
customerSpecificRequirements
string <uri-reference>

Responses

Request samples

Content type
{
  • "documentId": {
    },
  • "supplier": {
    },
  • "customer": {
    },
  • "orderType": "Order",
  • "positionProfile": {
    },
  • "payRates": [
    ],
  • "requestForQuotationDetails": {
    },
  • "resourceClassificationInclusion": {
    },
  • "staffingIds": {
    },
  • "reasonOfChange": "string",
  • "comments": "string",
  • "customerSpecificRequirements": "../dictionary"
}

Response samples

Content type
{
  • "documentId": {
    },
  • "supplier": {
    },
  • "customer": {
    },
  • "orderType": "Order",
  • "positionProfile": {
    },
  • "payRates": [
    ],
  • "requestForQuotationDetails": {
    },
  • "resourceClassificationInclusion": {
    },
  • "staffingIds": {
    },
  • "reasonOfChange": "string",
  • "comments": "string",
  • "customerSpecificRequirements": "../dictionary"
}

Delete an existing staffing order (Order)

path Parameters
id
required
string

Responses

Response samples

Content type
{
  • "documentId": {
    },
  • "supplier": {
    },
  • "customer": {
    },
  • "orderType": "Order",
  • "positionProfile": {
    },
  • "payRates": [
    ],
  • "requestForQuotationDetails": {
    },
  • "resourceClassificationInclusion": {
    },
  • "staffingIds": {
    },
  • "reasonOfChange": "string",
  • "comments": "string",
  • "customerSpecificRequirements": "../dictionary"
}

Assignment

The Assignment is used to confirm the placement.

Submit a new assignment

path Parameters
id
required
string
header Parameters
setuVersionId
required
string
Example: 2.0

Specification of the SETU standard version that is used as body message.

Content-Type
required
string
Enum: "application/json" "application/xml"
Example: application/json
Request Body schema:

Complete assignment message as specified by SETU.

required
object
object
required
object
object
required
Array of objects non-empty
required
object
required
object
object
reasonOfChange
string
customerSpecificRequirements
string <uri-reference>

Responses

Request samples

Content type
{
  • "documentId": {
    },
  • "supplier": {
    },
  • "customer": {
    },
  • "resourceClassificationInclusion": {
    },
  • "payRates": [
    ],
  • "positionProfile": {
    },
  • "assignedWorker": {
    },
  • "staffingIds": {
    },
  • "reasonOfChange": "string",
  • "customerSpecificRequirements": "../dictionary"
}

Response samples

Content type
{
  • "documentId": {
    },
  • "supplier": {
    },
  • "customer": {
    },
  • "resourceClassificationInclusion": {
    },
  • "payRates": [
    ],
  • "positionProfile": {
    },
  • "assignedWorker": {
    },
  • "staffingIds": {
    },
  • "reasonOfChange": "string",
  • "customerSpecificRequirements": "../dictionary"
}

Retrieve information about an existing assignment

path Parameters
id
required
string

Responses

Response samples

Content type
{
  • "documentId": {
    },
  • "supplier": {
    },
  • "customer": {
    },
  • "resourceClassificationInclusion": {
    },
  • "payRates": [
    ],
  • "positionProfile": {
    },
  • "assignedWorker": {
    },
  • "staffingIds": {
    },
  • "reasonOfChange": "string",
  • "customerSpecificRequirements": "../dictionary"
}

Update an existing assignment

path Parameters
id
required
string
header Parameters
setuVersionId
required
string
Example: 2.0

Specification of the SETU standard version that is used as body message.

Content-Type
required
string
Enum: "application/json" "application/xml"
Example: application/json
Request Body schema:
required
object
object
required
object
object
required
Array of objects non-empty
required
object
required
object
object
reasonOfChange
string
customerSpecificRequirements
string <uri-reference>

Responses

Request samples

Content type
{
  • "documentId": {
    },
  • "supplier": {
    },
  • "customer": {
    },
  • "resourceClassificationInclusion": {
    },
  • "payRates": [
    ],
  • "positionProfile": {
    },
  • "assignedWorker": {
    },
  • "staffingIds": {
    },
  • "reasonOfChange": "string",
  • "customerSpecificRequirements": "../dictionary"
}

Delete an existing assignment

path Parameters
id
required
string

Responses

Response samples

Content type
{
  • "documentId": {
    },
  • "supplier": {
    },
  • "customer": {
    },
  • "resourceClassificationInclusion": {
    },
  • "payRates": [
    ],
  • "positionProfile": {
    },
  • "assignedWorker": {
    },
  • "staffingIds": {
    },
  • "reasonOfChange": "string",
  • "customerSpecificRequirements": "../dictionary"
}

Timecard

The SETU Standard for Reporting Time and Expenses is targeted at the process of reporting time & expenses in the staffing industry.

  • Note This API endpoint includes REST calls about time-internvals and allowances. These consist of line identifiers, which are also used as part of certain REST api paths. They are combined with the resource identifiers as specified on the SETU documentation page. For example, PUT /purchase-to-pay/timecard/c93efb20-1acd-447b-87e7-fadb108d8a0e/time-interval/2 can be used to update or get the information about a time-interval planningline with line ID 2 within a created timecard known by its resource identifier (UUID) as 'c93efb20-1acd-447b-87e7-fadb108d8a0e'.

Submit a new timecard

path Parameters
id
required
string
header Parameters
setuVersionId
required
string
Example: 2.0

Specification of the SETU standard version that is used as body message.

Content-Type
required
string
Enum: "application/json" "application/xml"
Example: application/json
Request Body schema:

Complete timecard message as specified by SETU.

required
object
object
object
object
object
object
referenceNumber
string
purchaseOrderNumber
string
required
object
required
object
object
Array of objects
Array of objects
customerSpecificRequirements
string <uri-reference>

Responses

Request samples

Content type
{
  • "documentId": {
    },
  • "supplier": {
    },
  • "customer": {
    },
  • "department": {
    },
  • "costCenter": {
    },
  • "project": {
    },
  • "referenceNumber": "string",
  • "purchaseOrderNumber": "string",
  • "person": {
    },
  • "period": {
    },
  • "staffingIds": {
    },
  • "timeInterval": [
    ],
  • "allowance": [
    ],
  • "customerSpecificRequirements": "../dictionary"
}

Response samples

Content type
{
  • "documentId": {
    },
  • "supplier": {
    },
  • "customer": {
    },
  • "department": {
    },
  • "costCenter": {
    },
  • "project": {
    },
  • "referenceNumber": "string",
  • "purchaseOrderNumber": "string",
  • "person": {
    },
  • "period": {
    },
  • "staffingIds": {
    },
  • "timeInterval": [
    ],
  • "allowance": [
    ],
  • "customerSpecificRequirements": "../dictionary"
}

Retrieve an existing timecard

path Parameters
id
required
string

Responses

Response samples

Content type
{
  • "documentId": {
    },
  • "supplier": {
    },
  • "customer": {
    },
  • "department": {
    },
  • "costCenter": {
    },
  • "project": {
    },
  • "referenceNumber": "string",
  • "purchaseOrderNumber": "string",
  • "person": {
    },
  • "period": {
    },
  • "staffingIds": {
    },
  • "timeInterval": [
    ],
  • "allowance": [
    ],
  • "customerSpecificRequirements": "../dictionary"
}

Update an existing timecard

Usage Note: The requirements for a PUT operation on a timecard (e.g., determining the deadline for when changes are allowed) are to be agreed upon bilaterally between the involved parties. This is not within the scope of SETU standards and must be handled separately by the parties involved.

path Parameters
id
required
string
header Parameters
setuVersionId
required
string
Example: 2.0

Specification of the SETU standard version that is used as body message.

Content-Type
required
string
Enum: "application/json" "application/xml"
Example: application/json
Request Body schema:
required
object
object
object
object
object
object
referenceNumber
string
purchaseOrderNumber
string
required
object
required
object
object
Array of objects
Array of objects
customerSpecificRequirements
string <uri-reference>

Responses

Request samples

Content type
{
  • "documentId": {
    },
  • "supplier": {
    },
  • "customer": {
    },
  • "department": {
    },
  • "costCenter": {
    },
  • "project": {
    },
  • "referenceNumber": "string",
  • "purchaseOrderNumber": "string",
  • "person": {
    },
  • "period": {
    },
  • "staffingIds": {
    },
  • "timeInterval": [
    ],
  • "allowance": [
    ],
  • "customerSpecificRequirements": "../dictionary"
}

Delete an existing timecard

path Parameters
id
required
string

Responses

Response samples

Content type
{
  • "documentId": {
    },
  • "supplier": {
    },
  • "customer": {
    },
  • "department": {
    },
  • "costCenter": {
    },
  • "project": {
    },
  • "referenceNumber": "string",
  • "purchaseOrderNumber": "string",
  • "person": {
    },
  • "period": {
    },
  • "staffingIds": {
    },
  • "timeInterval": [
    ],
  • "allowance": [
    ],
  • "customerSpecificRequirements": "../dictionary"
}

Submit a new time interval to an existing timecard

path Parameters
id
required
string
Example: e59c8cb9-ab3f-4455-8d63-8bdb2730c545

The identifier of the timecard object

intervalID
required
string
Example: acb88ec7-8d93-4bb8-98e1-f7db0074fdc6

The identifier of the time interval line

header Parameters
setuVersionId
required
string
Example: 2.0

Specification of the SETU standard version that is used as body message.

Request Body schema:

The time interval in the timecard message as specified by SETU. For the actual JSON and XML Schema of allowance and time interval, please refer to the TimeCard Schema.

Array of objects
Array
object
required
object
object
object
object
referenceNumber
string
purchaseOrderLineItem
string
required
object
required
object
timeTotal
string
Array of objects <= 2 items
dayAssignment
string <date>
homeOfficeIndicator
string
Enum: "Home" "Office"
customerSpecificRequirements
string <uri-reference>

Responses

Request samples

Content type
{
  • "timeInterval": [
    ]
}

Response samples

Content type
{
  • "timeInterval": [
    ]
}

Retrieve an existing time interval

Line identifiers are also used as part of certain REST api paths. They are combined with the resource identifiers as specified on the SETU documentation page. For example, PUT /purchase-to-pay/timecard/c93efb20-1acd-447b-87e7-fadb108d8a0e/time-interval/2 can be used to update or get the information about a time-interval planningline with line ID '2' within a created timecard known by its resource identifier (UUID) as 'c93efb20-1acd-447b-87e7-fadb108d8a0e'.

path Parameters
id
required
string
Example: e59c8cb9-ab3f-4455-8d63-8bdb2730c545

The identifier of the timecard object

intervalID
required
string
Example: acb88ec7-8d93-4bb8-98e1-f7db0074fdc6

The identifier of the time interval line

Responses

Response samples

Content type
{
  • "timeInterval": [
    ]
}

Update an existing time interval

path Parameters
id
required
string
Example: e59c8cb9-ab3f-4455-8d63-8bdb2730c545

The identifier of the timecard object

intervalID
required
string
Example: acb88ec7-8d93-4bb8-98e1-f7db0074fdc6

The identifier of the time interval line

header Parameters
setuVersionId
required
string
Example: 2.0

Specification of the SETU standard version that is used as body message.

Request Body schema:
Array of objects
Array
object
required
object
object
object
object
referenceNumber
string
purchaseOrderLineItem
string
required
object
required
object
timeTotal
string
Array of objects <= 2 items
dayAssignment
string <date>
homeOfficeIndicator
string
Enum: "Home" "Office"
customerSpecificRequirements
string <uri-reference>

Responses

Request samples

Content type
{
  • "timeInterval": [
    ]
}

Delete an existing time interval

path Parameters
id
required
string
Example: e59c8cb9-ab3f-4455-8d63-8bdb2730c545

The identifier of the timecard object

intervalID
required
string
Example: acb88ec7-8d93-4bb8-98e1-f7db0074fdc6

The identifier of the time interval line

Responses

Response samples

Content type
{
  • "timeInterval": [
    ]
}

Submit a new allowance to an existing timecard

path Parameters
id
required
string
Example: e59c8cb9-ab3f-4455-8d63-8bdb2730c545

The identifier of the planning constraints object

header Parameters
setuVersionId
required
string
Example: 2.0

Specification of the SETU standard version that is used as body message.

Request Body schema:

The allowance in the timecard message as specified by SETU. For the actual JSON and XML Schema of allowance and time interval, please refer to the TimeCard Schema.

Array of objects
Array
object
required
object
object
object
object
referenceNumber
string
purchaseOrderLineItem
string
required
object
object
Array of objects <= 2 items
object
object
customerSpecificRequirements
string <uri-reference>

Responses

Request samples

Content type
{
  • "allowance": [
    ]
}

Response samples

Content type
{
  • "allowance": [
    ]
}

Retrieve an existing allowance

path Parameters
id
required
string
Example: e59c8cb9-ab3f-4455-8d63-8bdb2730c545

The identifier of the timecard object

allowanceID
required
string
Example: acb88ec7-8d93-4bb8-98e1-f7db0074fdc6

The identifier of the allowance line

Responses

Response samples

Content type
{
  • "allowance": [
    ]
}

Update an existing allowance

path Parameters
id
required
string
Example: e59c8cb9-ab3f-4455-8d63-8bdb2730c545

The identifier of the timecard object

allowanceID
required
string
Example: acb88ec7-8d93-4bb8-98e1-f7db0074fdc6

The identifier of the allowance line

header Parameters
setuVersionId
required
string
Example: 2.0

Specification of the SETU standard version that is used as body message.

Request Body schema:
Array of objects
Array
object
required
object
object
object
object
referenceNumber
string
purchaseOrderLineItem
string
required
object
object
Array of objects <= 2 items
object
object
customerSpecificRequirements
string <uri-reference>

Responses

Request samples

Content type
{
  • "allowance": [
    ]
}

Delete an existing allowance

path Parameters
id
required
string
Example: e59c8cb9-ab3f-4455-8d63-8bdb2730c545

The identifier of the timecard object

allowanceID
required
string
Example: acb88ec7-8d93-4bb8-98e1-f7db0074fdc6

The identifier of the allowance line

Responses

Response samples

Content type
{
  • "allowance": [
    ]
}

Invoice

The SETU Standard for Invoicing is targeted at the process of invoicing in the staffing industry. It deals with electronically sending invoicing information, including corrections. The standard supports the exchange of invoicing information between two organizations; this implies that multi-party collaborations are out of scope.

Create a new invoice

path Parameters
id
required
string
header Parameters
setuVersionId
required
string
Example: 2.0

Specification of the SETU standard version that is used as body message.

Content-Type
required
string
Enum: "application/json" "application/xml"
Example: application/json
Request Body schema:

Complete invoice message as specified by SETU. A message specification may have multiple versions that can differ. See the different versions of the message specifications here: https://setu.semantic-treehouse.nl/message-model/MessageModel_527939af-3e6c-436e-8a85-e749724a8742

object (Invoice)

The XML and JSON Schemas for the Invoice message are specified by SETU. Please find the schemas here https://setu.semantic-treehouse.nl/specifications

Responses

Request samples

Content type
{ }

Retrieve an existing invoice

path Parameters
id
required
string

Responses

Response samples

Content type
{ }

Delete an existing invoice

path Parameters
id
required
string

Responses

Staffing supplier's backoffice APIs

Set of APIs to be implemented by the staffing supplier

Submit a new staffing order (RFQ)

path Parameters
id
required
string
header Parameters
setuVersionId
required
string
Example: 2.0

Specification of the SETU standard version that is used as body message.

Content-Type
required
string
Enum: "application/json" "application/xml"
Example: application/json
Request Body schema:

Complete staffing order message as specified by SETU. A message may have multiple versions that can differ. This message contains the order type 'RFQ'.

required
object
object
required
object
orderType
required
string
Enum: "Order" "RFQ"
required
object
Array of objects
object
object
object
reasonOfChange
string
comments
string
customerSpecificRequirements
string <uri-reference>

Responses

Request samples

Content type
{
  • "documentId": {
    },
  • "supplier": {
    },
  • "customer": {
    },
  • "orderType": "Order",
  • "positionProfile": {
    },
  • "payRates": [
    ],
  • "requestForQuotationDetails": {
    },
  • "resourceClassificationInclusion": {
    },
  • "staffingIds": {
    },
  • "reasonOfChange": "string",
  • "comments": "string",
  • "customerSpecificRequirements": "../dictionary"
}

Update an existing staffing order (RFQ)

path Parameters
id
required
string
header Parameters
setuVersionId
required
string
Example: 2.0

Specification of the SETU standard version that is used as body message.

Content-Type
required
string
Enum: "application/json" "application/xml"
Example: application/json
Request Body schema:
required
object
object
required
object
orderType
required
string
Enum: "Order" "RFQ"
required
object
Array of objects
object
object
object
reasonOfChange
string
comments
string
customerSpecificRequirements
string <uri-reference>

Responses

Request samples

Content type
{
  • "documentId": {
    },
  • "supplier": {
    },
  • "customer": {
    },
  • "orderType": "Order",
  • "positionProfile": {
    },
  • "payRates": [
    ],
  • "requestForQuotationDetails": {
    },
  • "resourceClassificationInclusion": {
    },
  • "staffingIds": {
    },
  • "reasonOfChange": "string",
  • "comments": "string",
  • "customerSpecificRequirements": "../dictionary"
}

Response samples

Content type
{
  • "documentId": {
    },
  • "supplier": {
    },
  • "customer": {
    },
  • "orderType": "Order",
  • "positionProfile": {
    },
  • "payRates": [
    ],
  • "requestForQuotationDetails": {
    },
  • "resourceClassificationInclusion": {
    },
  • "staffingIds": {
    },
  • "reasonOfChange": "string",
  • "comments": "string",
  • "customerSpecificRequirements": "../dictionary"
}

Delete an existing staffing order (RFQ)

path Parameters
id
required
string

Responses

Response samples

Content type
{
  • "documentId": {
    },
  • "supplier": {
    },
  • "customer": {
    },
  • "orderType": "Order",
  • "positionProfile": {
    },
  • "payRates": [
    ],
  • "requestForQuotationDetails": {
    },
  • "resourceClassificationInclusion": {
    },
  • "staffingIds": {
    },
  • "reasonOfChange": "string",
  • "comments": "string",
  • "customerSpecificRequirements": "../dictionary"
}

Submit a new staffing order (Order)

path Parameters
id
required
string
header Parameters
setuVersionId
required
string
Example: 2.0

Specification of the SETU standard version that is used as body message.

Content-Type
required
string
Enum: "application/json" "application/xml"
Example: application/json
Request Body schema:

Complete staffing order message as specified by SETU. A message may have multiple versions that can differ. This message contains the order type 'Order'.

required
object
object
required
object
orderType
required
string
Enum: "Order" "RFQ"
required
object
Array of objects
object
object
object
reasonOfChange
string
comments
string
customerSpecificRequirements
string <uri-reference>

Responses

Request samples

Content type
{
  • "documentId": {
    },
  • "supplier": {
    },
  • "customer": {
    },
  • "orderType": "Order",
  • "positionProfile": {
    },
  • "payRates": [
    ],
  • "requestForQuotationDetails": {
    },
  • "resourceClassificationInclusion": {
    },
  • "staffingIds": {
    },
  • "reasonOfChange": "string",
  • "comments": "string",
  • "customerSpecificRequirements": "../dictionary"
}

Update an existing staffing order (Order)

path Parameters
id
required
string
header Parameters
setuVersionId
required
string
Example: 2.0

Specification of the SETU standard version that is used as body message.

Content-Type
required
string
Enum: "application/json" "application/xml"
Example: application/json
Request Body schema:
required
object
object
required
object
orderType
required
string
Enum: "Order" "RFQ"
required
object
Array of objects
object
object
object
reasonOfChange
string
comments
string
customerSpecificRequirements
string <uri-reference>

Responses

Request samples

Content type
{
  • "documentId": {
    },
  • "supplier": {
    },
  • "customer": {
    },
  • "orderType": "Order",
  • "positionProfile": {
    },
  • "payRates": [
    ],
  • "requestForQuotationDetails": {
    },
  • "resourceClassificationInclusion": {
    },
  • "staffingIds": {
    },
  • "reasonOfChange": "string",
  • "comments": "string",
  • "customerSpecificRequirements": "../dictionary"
}

Response samples

Content type
{
  • "documentId": {
    },
  • "supplier": {
    },
  • "customer": {
    },
  • "orderType": "Order",
  • "positionProfile": {
    },
  • "payRates": [
    ],
  • "requestForQuotationDetails": {
    },
  • "resourceClassificationInclusion": {
    },
  • "staffingIds": {
    },
  • "reasonOfChange": "string",
  • "comments": "string",
  • "customerSpecificRequirements": "../dictionary"
}

Delete an existing staffing order (Order)

path Parameters
id
required
string

Responses

Response samples

Content type
{
  • "documentId": {
    },
  • "supplier": {
    },
  • "customer": {
    },
  • "orderType": "Order",
  • "positionProfile": {
    },
  • "payRates": [
    ],
  • "requestForQuotationDetails": {
    },
  • "resourceClassificationInclusion": {
    },
  • "staffingIds": {
    },
  • "reasonOfChange": "string",
  • "comments": "string",
  • "customerSpecificRequirements": "../dictionary"
}

Submit a new timecard

path Parameters
id
required
string
header Parameters
setuVersionId
required
string
Example: 2.0

Specification of the SETU standard version that is used as body message.

Content-Type
required
string
Enum: "application/json" "application/xml"
Example: application/json
Request Body schema:

Complete timecard message as specified by SETU.

required
object
object
object
object
object
object
referenceNumber
string
purchaseOrderNumber
string
required
object
required
object
object
Array of objects
Array of objects
customerSpecificRequirements
string <uri-reference>

Responses

Request samples

Content type
{
  • "documentId": {
    },
  • "supplier": {
    },
  • "customer": {
    },
  • "department": {
    },
  • "costCenter": {
    },
  • "project": {
    },
  • "referenceNumber": "string",
  • "purchaseOrderNumber": "string",
  • "person": {
    },
  • "period": {
    },
  • "staffingIds": {
    },
  • "timeInterval": [
    ],
  • "allowance": [
    ],
  • "customerSpecificRequirements": "../dictionary"
}

Response samples

Content type
{
  • "documentId": {
    },
  • "supplier": {
    },
  • "customer": {
    },
  • "department": {
    },
  • "costCenter": {
    },
  • "project": {
    },
  • "referenceNumber": "string",
  • "purchaseOrderNumber": "string",
  • "person": {
    },
  • "period": {
    },
  • "staffingIds": {
    },
  • "timeInterval": [
    ],
  • "allowance": [
    ],
  • "customerSpecificRequirements": "../dictionary"
}

Update an existing timecard

Usage Note: The requirements for a PUT operation on a timecard (e.g., determining the deadline for when changes are allowed) are to be agreed upon bilaterally between the involved parties. This is not within the scope of SETU standards and must be handled separately by the parties involved.

path Parameters
id
required
string
header Parameters
setuVersionId
required
string
Example: 2.0

Specification of the SETU standard version that is used as body message.

Content-Type
required
string
Enum: "application/json" "application/xml"
Example: application/json
Request Body schema:
required
object
object
object
object
object
object
referenceNumber
string
purchaseOrderNumber
string
required
object
required
object
object
Array of objects
Array of objects
customerSpecificRequirements
string <uri-reference>

Responses

Request samples

Content type
{
  • "documentId": {
    },
  • "supplier": {
    },
  • "customer": {
    },
  • "department": {
    },
  • "costCenter": {
    },
  • "project": {
    },
  • "referenceNumber": "string",
  • "purchaseOrderNumber": "string",
  • "person": {
    },
  • "period": {
    },
  • "staffingIds": {
    },
  • "timeInterval": [
    ],
  • "allowance": [
    ],
  • "customerSpecificRequirements": "../dictionary"
}

Delete an existing timecard

path Parameters
id
required
string

Responses

Response samples

Content type
{
  • "documentId": {
    },
  • "supplier": {
    },
  • "customer": {
    },
  • "department": {
    },
  • "costCenter": {
    },
  • "project": {
    },
  • "referenceNumber": "string",
  • "purchaseOrderNumber": "string",
  • "person": {
    },
  • "period": {
    },
  • "staffingIds": {
    },
  • "timeInterval": [
    ],
  • "allowance": [
    ],
  • "customerSpecificRequirements": "../dictionary"
}

Submit a new time interval to an existing timecard

path Parameters
id
required
string
Example: e59c8cb9-ab3f-4455-8d63-8bdb2730c545

The identifier of the timecard object

intervalID
required
string
Example: acb88ec7-8d93-4bb8-98e1-f7db0074fdc6

The identifier of the time interval line

header Parameters
setuVersionId
required
string
Example: 2.0

Specification of the SETU standard version that is used as body message.

Request Body schema:

The time interval in the timecard message as specified by SETU. For the actual JSON and XML Schema of allowance and time interval, please refer to the TimeCard Schema.

Array of objects
Array
object
required
object
object
object
object
referenceNumber
string
purchaseOrderLineItem
string
required
object
required
object
timeTotal
string
Array of objects <= 2 items
dayAssignment
string <date>
homeOfficeIndicator
string
Enum: "Home" "Office"
customerSpecificRequirements
string <uri-reference>

Responses

Request samples

Content type
{
  • "timeInterval": [
    ]
}

Response samples

Content type
{
  • "timeInterval": [
    ]
}

Update an existing time interval

path Parameters
id
required
string
Example: e59c8cb9-ab3f-4455-8d63-8bdb2730c545

The identifier of the timecard object

intervalID
required
string
Example: acb88ec7-8d93-4bb8-98e1-f7db0074fdc6

The identifier of the time interval line

header Parameters
setuVersionId
required
string
Example: 2.0

Specification of the SETU standard version that is used as body message.

Request Body schema:
Array of objects
Array
object
required
object
object
object
object
referenceNumber
string
purchaseOrderLineItem
string
required
object
required
object
timeTotal
string
Array of objects <= 2 items
dayAssignment
string <date>
homeOfficeIndicator
string
Enum: "Home" "Office"
customerSpecificRequirements
string <uri-reference>

Responses

Request samples

Content type
{
  • "timeInterval": [
    ]
}

Delete an existing time interval

path Parameters
id
required
string
Example: e59c8cb9-ab3f-4455-8d63-8bdb2730c545

The identifier of the timecard object

intervalID
required
string
Example: acb88ec7-8d93-4bb8-98e1-f7db0074fdc6

The identifier of the time interval line

Responses

Response samples

Content type
{
  • "timeInterval": [
    ]
}

Submit a new allowance to an existing timecard

path Parameters
id
required
string
Example: e59c8cb9-ab3f-4455-8d63-8bdb2730c545

The identifier of the planning constraints object

header Parameters
setuVersionId
required
string
Example: 2.0

Specification of the SETU standard version that is used as body message.

Request Body schema:

The allowance in the timecard message as specified by SETU. For the actual JSON and XML Schema of allowance and time interval, please refer to the TimeCard Schema.

Array of objects
Array
object
required
object
object
object
object
referenceNumber
string
purchaseOrderLineItem
string
required
object
object
Array of objects <= 2 items
object
object
customerSpecificRequirements
string <uri-reference>

Responses

Request samples

Content type
{
  • "allowance": [
    ]
}

Response samples

Content type
{
  • "allowance": [
    ]
}

Update an existing allowance

path Parameters
id
required
string
Example: e59c8cb9-ab3f-4455-8d63-8bdb2730c545

The identifier of the timecard object

allowanceID
required
string
Example: acb88ec7-8d93-4bb8-98e1-f7db0074fdc6

The identifier of the allowance line

header Parameters
setuVersionId
required
string
Example: 2.0

Specification of the SETU standard version that is used as body message.

Request Body schema:
Array of objects
Array
object
required
object
object
object
object
referenceNumber
string
purchaseOrderLineItem
string
required
object
object
Array of objects <= 2 items
object
object
customerSpecificRequirements
string <uri-reference>

Responses

Request samples

Content type
{
  • "allowance": [
    ]
}

Delete an existing allowance

path Parameters
id
required
string
Example: e59c8cb9-ab3f-4455-8d63-8bdb2730c545

The identifier of the timecard object

allowanceID
required
string
Example: acb88ec7-8d93-4bb8-98e1-f7db0074fdc6

The identifier of the allowance line

Responses

Response samples

Content type
{
  • "allowance": [
    ]
}

Create an attachment for future access via an URL.

This endpoint can be used to upload files as attachments and retrieve a unique URL for each uploaded file. The returned URL can be used in future messages or API requests to reference the attached file.

path Parameters
id
required
string
header Parameters
Content-Type
required
string
Enum: "application/json" "application/xml"
Example: application/json
Request Body schema:
required

Request body to upload an embedded attachment.

document
required
string <byte>

Base64-encoded binary content of the document.

mime type
required
string
Enum: "application/pdf" "application/vnd.oasis.opendocument.spreadsheet" "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" "text/csv" "image/png" "image/jpeg"

MIME type of the document being uploaded, e.g., 'application/pdf'. Please see the codelist of the MIME types codes over here: https://stpe.semantic-treehouse.nl/codelist/Codelist_1506927228_00216691

filename
string

Original name of the file, including the extension, e.g., 'document.docx'

Responses

Request samples

Content type
{
  • "document": "string",
  • "mime type": "application/pdf",
  • "filename": "document.docx"
}

Staffing customer's backoffice APIs

Set of APIs to be implemented by the staffing customer

Submit a new human resource

path Parameters
id
required
string
header Parameters
setuVersionId
required
string
Example: 2.0

Specification of the SETU standard version that is used as body message.

Content-Type
required
string
Enum: "application/json" "application/xml"
Example: application/json
Request Body schema:

Complete human resource message as specified by SETU.

required
object
required
object
required
object
required
object
object
Array of objects
object
object
reasonOfChange
string
customerSpecificRequirements
string <uri-reference>

Responses

Request samples

Content type
{
  • "documentId": {
    },
  • "supplier": {
    },
  • "customer": {
    },
  • "person": {
    },
  • "profiles": {
    },
  • "payRates": [
    ],
  • "resourceClassificationInclusion": {
    },
  • "staffingIds": {
    },
  • "reasonOfChange": "string",
  • "customerSpecificRequirements": "../dictionary"
}

Response samples

Content type
{
  • "documentId": {
    },
  • "supplier": {
    },
  • "customer": {
    },
  • "person": {
    },
  • "profiles": {
    },
  • "payRates": [
    ],
  • "resourceClassificationInclusion": {
    },
  • "staffingIds": {
    },
  • "reasonOfChange": "string",
  • "customerSpecificRequirements": "../dictionary"
}

Update an existing human resource

path Parameters
id
required
string
header Parameters
setuVersionId
required
string
Example: 2.0

Specification of the SETU standard version that is used as body message.

Content-Type
required
string
Enum: "application/json" "application/xml"
Example: application/json
Request Body schema:
required
object
required
object
required
object
required
object
object
Array of objects
object
object
reasonOfChange
string
customerSpecificRequirements
string <uri-reference>

Responses

Request samples

Content type
{
  • "documentId": {
    },
  • "supplier": {
    },
  • "customer": {
    },
  • "person": {
    },
  • "profiles": {
    },
  • "payRates": [
    ],
  • "resourceClassificationInclusion": {
    },
  • "staffingIds": {
    },
  • "reasonOfChange": "string",
  • "customerSpecificRequirements": "../dictionary"
}

Delete an existing human resource

path Parameters
id
required
string

Responses

Response samples

Content type
{
  • "documentId": {
    },
  • "supplier": {
    },
  • "customer": {
    },
  • "person": {
    },
  • "profiles": {
    },
  • "payRates": [
    ],
  • "resourceClassificationInclusion": {
    },
  • "staffingIds": {
    },
  • "reasonOfChange": "string",
  • "customerSpecificRequirements": "../dictionary"
}

Submit a new assignment

path Parameters
id
required
string
header Parameters
setuVersionId
required
string
Example: 2.0

Specification of the SETU standard version that is used as body message.

Content-Type
required
string
Enum: "application/json" "application/xml"
Example: application/json
Request Body schema:

Complete assignment message as specified by SETU.

required
object
object
required
object
object
required
Array of objects non-empty
required
object
required
object
object
reasonOfChange
string
customerSpecificRequirements
string <uri-reference>

Responses

Request samples

Content type
{
  • "documentId": {
    },
  • "supplier": {
    },
  • "customer": {
    },
  • "resourceClassificationInclusion": {
    },
  • "payRates": [
    ],
  • "positionProfile": {
    },
  • "assignedWorker": {
    },
  • "staffingIds": {
    },
  • "reasonOfChange": "string",
  • "customerSpecificRequirements": "../dictionary"
}

Response samples

Content type
{
  • "documentId": {
    },
  • "supplier": {
    },
  • "customer": {
    },
  • "resourceClassificationInclusion": {
    },
  • "payRates": [
    ],
  • "positionProfile": {
    },
  • "assignedWorker": {
    },
  • "staffingIds": {
    },
  • "reasonOfChange": "string",
  • "customerSpecificRequirements": "../dictionary"
}

Update an existing assignment

path Parameters
id
required
string
header Parameters
setuVersionId
required
string
Example: 2.0

Specification of the SETU standard version that is used as body message.

Content-Type
required
string
Enum: "application/json" "application/xml"
Example: application/json
Request Body schema:
required
object
object
required
object
object
required
Array of objects non-empty
required
object
required
object
object
reasonOfChange
string
customerSpecificRequirements
string <uri-reference>

Responses

Request samples

Content type
{
  • "documentId": {
    },
  • "supplier": {
    },
  • "customer": {
    },
  • "resourceClassificationInclusion": {
    },
  • "payRates": [
    ],
  • "positionProfile": {
    },
  • "assignedWorker": {
    },
  • "staffingIds": {
    },
  • "reasonOfChange": "string",
  • "customerSpecificRequirements": "../dictionary"
}

Delete an existing assignment

path Parameters
id
required
string

Responses

Response samples

Content type
{
  • "documentId": {
    },
  • "supplier": {
    },
  • "customer": {
    },
  • "resourceClassificationInclusion": {
    },
  • "payRates": [
    ],
  • "positionProfile": {
    },
  • "assignedWorker": {
    },
  • "staffingIds": {
    },
  • "reasonOfChange": "string",
  • "customerSpecificRequirements": "../dictionary"
}

Create a new invoice

path Parameters
id
required
string
header Parameters
setuVersionId
required
string
Example: 2.0

Specification of the SETU standard version that is used as body message.

Content-Type
required
string
Enum: "application/json" "application/xml"
Example: application/json
Request Body schema:

Complete invoice message as specified by SETU. A message specification may have multiple versions that can differ. See the different versions of the message specifications here: https://setu.semantic-treehouse.nl/message-model/MessageModel_527939af-3e6c-436e-8a85-e749724a8742

object (Invoice)

The XML and JSON Schemas for the Invoice message are specified by SETU. Please find the schemas here https://setu.semantic-treehouse.nl/specifications

Responses

Request samples

Content type
{ }

Delete an existing invoice

path Parameters
id
required
string

Responses

Create an attachment for future access via an URL.

This endpoint can be used to upload files as attachments and retrieve a unique URL for each uploaded file. The returned URL can be used in future messages or API requests to reference the attached file.

path Parameters
id
required
string
header Parameters
Content-Type
required
string
Enum: "application/json" "application/xml"
Example: application/json
Request Body schema:
required

Request body to upload an embedded attachment.

document
required
string <byte>

Base64-encoded binary content of the document.

mime type
required
string
Enum: "application/pdf" "application/vnd.oasis.opendocument.spreadsheet" "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" "text/csv" "image/png" "image/jpeg"

MIME type of the document being uploaded, e.g., 'application/pdf'. Please see the codelist of the MIME types codes over here: https://stpe.semantic-treehouse.nl/codelist/Codelist_1506927228_00216691

filename
string

Original name of the file, including the extension, e.g., 'document.docx'

Responses

Request samples

Content type
{
  • "document": "string",
  • "mime type": "application/pdf",
  • "filename": "document.docx"
}

Attachment

API endpoint for attachments. As a responds an URL of the resource location should be provided, where this URL can be used in the SETU messages for future access.

Create an attachment for future access via an URL.

This endpoint can be used to upload files as attachments and retrieve a unique URL for each uploaded file. The returned URL can be used in future messages or API requests to reference the attached file.

path Parameters
id
required
string
header Parameters
Content-Type
required
string
Enum: "application/json" "application/xml"
Example: application/json
Request Body schema:
required

Request body to upload an embedded attachment.

document
required
string <byte>

Base64-encoded binary content of the document.

mime type
required
string
Enum: "application/pdf" "application/vnd.oasis.opendocument.spreadsheet" "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" "text/csv" "image/png" "image/jpeg"

MIME type of the document being uploaded, e.g., 'application/pdf'. Please see the codelist of the MIME types codes over here: https://stpe.semantic-treehouse.nl/codelist/Codelist_1506927228_00216691

filename
string

Original name of the file, including the extension, e.g., 'document.docx'

Responses

Request samples

Content type
{
  • "document": "string",
  • "mime type": "application/pdf",
  • "filename": "document.docx"
}