Platform (Beta)
Endpoints common across the platform used across multiple modules.
Content
Company
Retrieves information about list of companies.
Endpoint
GET /{version}/company
Response
{
"companyId": "1",
"name": "Test Company"
}
Entity
Retrieves information about a list of entities.
Endpoint
GET /{version}/company/{companyId}/entity/{entityId}
Response
{
"id": "1",
"name": "Test Department",
"code": "tenant",
"status": "active"
}GET /{version}/company/{companyId}/entity
Parameters
IncludeInactive (boolean) - false
A filter for the entity active flag, defaults to false.
Response
{
"page": [
{
"id": "1",
"name": "Test Department",
"code": "T001",
"status": "active"
},
{
"id": "2",
"name": "Test Another Department",
"code": "T002",
"status": "disabled"
}
],
"nextCursor": ez438tjgowjr0"
}
Division
Retrieves information about a list of divisions (cost centres).
Endpoint
GET /{version}/company/{companyId}/division/{divisionId}
Response
{
"id": "1",
"companyId": "1",
"entityId": "10",
"name": "",
"glCode": "ABC234",
"status": "active,
}GET /{version}/company/{companyId}/division
Parameters
includeInactive (boolean) - false
A filter for the division active flag, defaults to false.
Response
{
"page": [
{
"id": "1",
"companyId": "1",
"entityId": "10",
"name": "NAME1",
"glCode": "ABC234",
"status": "active,
},
{
"id": "2",
"companyId": "1",
"entityId": "20",
"name": "NAME2",
"glCode": "ABC567",
"status": "disabled,
}
],
"nextCursor": ez438tjgowjr0"
}
Tax Code
Retrieves information about a list of tax code.
Endpoint
GET /{version}/company/{companyId}/taxCode/{taxCodeId}
Response
{
"id": "1",
"companyId": "1",
"entityIds": ["100", "200", "300"],
"name": "",
"code": "ABC234",
"category": "ABC_CATEGORY",
"taxRate": 15.0000,
"isUserDefined": true,
"status": "active"
}GET /{version}/company/{companyId}/taxCode
Parameters
includeInactive (boolean) - false
A filter for the tax code active flag, defaults to false.
entityId (string)
A filter for the entityId of tax code.
category (string)
A filter for the category of tax code.
Response
{
"page": [
{
"id": "1",
"companyId": "1",
"entityIds": ["100", "200", "300"],
"name": "TAXCODE1",
"code": "ABC234",
"category": "ABC_CATEGORY",
"taxRate": 15.0000,
"isUserDefined": true,
"status": "active"
},
{
"id": "2",
"companyId": "1",
"entityIds": ["300", "400"],
"name": "TAXCODE2",
"code": "ABC587",
"category": "DEF_CATEGORY",
"taxRate": 5.0000,
"isUserDefined": false,
"status": "disabled"
}
],
"nextCursor": ez438tjgowjr0"
}
Supplier
A supplier, also referred to as a vendor or in AP as a creditor, refers to an external entity or business providing goods or services to the organisation, suppliers submit invoices for approval and processing, payments are made to suppliers based on their agreed payment terms.
Endpoints
GET /{version}/company/{companyId}/supplier
GET /{version}/company/{companyId}/supplier/{supplierId}
Parameters
active (boolean)
A filter for the supplier active flag, defaults to true.
Response
{
"id": "1234567",
"registrationNumber": "207 890 345 123",
"supplierCode": "DJ1",
"displayName": "John Doe",
"tradingNames": [
"John Doe"
],
"primaryAddress": {
"fullAddress": "",
"address1": "",
"address2": "",
"address3": "",
"suburb": "",
"city": "",
"state": "",
"postCode": "",
"country": ""
},
"emailAddresses": [
"test1@prospend.com",
"test2@prospend.com",
"test3@prospend.com"
],
"legalName": "John Doe Pty Ltd",
"country": "AUS",
"currency": "AUD",
"isActive": true,
"isValidated": true,
"approvedOn": "1970-01-01T00:00:00Z",
"createdOn": "1970-01-01T00:00:00Z",
"updatedOn": "1970-01-01T00:00:00Z"
}
Project
A project, similar to projects in a customer ERP, are entities used for budgeting, cost allocation and tracking, and approvals of both claims and invoices.
Endpoints
GET /{version}/company/{companyId}/project/{projectId}
Response
{
"id" "123",
"companyId": "1",
"name": "Project X",
"projectCode": "PRX",
"externalReference": "PRX",
"costCode": "CC12345",
"defaultExpenseTypeId": "100",
"entityIds": [
"100",
"101",
"102"
],
"portfolios": [
{
"id": "456",
"portfolioCode": "CODE",
"_link": "/company/4/portfolio/456"
}
],
"status": "active",
"createdDate": "1970-01-01T00:00:00Z",
"updatedDate": "1970-01-01T00:00:00Z"
}
GET /{version}/company/{companyId}/project
Parameters
IncludeInactive (boolean) - false
A filter for the project active flag.
portfolioCode (string) - optional
A filter for the projectCode of project.
costCode (string) - optional
A filter for the costCode of project.
minUpdatedDate (string)
A filter for the last updated timestamp. Returns the data updated on or after the specified date-time in UTC.
Example: 2024-08-27 or 2024-08-27T16:25:16Z
Response
{
"page": [
{
"id" "123",
"companyId": "1",
"name": "Project X",
"projectCode": "PRX",
"externalReference": "PRX",
"costCode": "CC12345",
"defaultExpenseTypeId": "100",
"entityIds": [
"100",
"101",
"102"
],
"portfolios": [
{
"id": "456",
"portfolioCode": "CODE",
"_link": "/company/4/portfolio/456"
}
],
"status": "active",
"createdOn": "1970-01-01T00:00:00Z",
"updatedOn": "1970-01-01T00:00:00Z"
}
],
"nextCursor": ez438tjgowjr0"
}
POST /{version}/company/{companyId}/project
Beta Version
Currently supports only a one-to-one relationship with the portfolio.
Request
{
"name": "Project Name",
"projectCode": "CODE-123",
"externalReference": "PRX",
"costCode": "CC12345",
"defaultExpenseTypeId": "100",
"entityIds": [
"100",
"101",
"102"
],
"portfolios": [
{
// This portfolio should be created already
"id": "456",
"portfolioCode": "CODE"
}
]
"status": "active"
}Response
{
"id": "123",
"companyId": "1",
"name": "Project Name",
"projectCode": "CODE-123",
"externalReference": "PRX",
"costCode": "CC12345",
"defaultExpenseTypeId": "100",
"portfolios": [
{
"id": "456",
"portfolioCode": "CODE",
"_link": "/company/4/portfolio/456"
}
],
"status": "active",
"createdDate": "1970-01-01T00:00:00Z",
"updatedDate": "1970-01-01T00:00:00Z"
}
PATCH /{version}/company/{companyId}/project/{projectId}
Warning
If the project is updated with an empty portfolio or a non-existent portfolio, the link between the project and the portfolio will be removed.
Beta Version
- Currently supports only a one-to-one relationship with the portfolio and entity.
- In cases where multiple projects with the same code have been imported by different external systems, this endpoint will update and return all projects associated with that code within the system.
Partial updates are supported by including only the fields to be modified in the request payload.
Request
{
"name": "Updated Name",
"projectCode": "CODE-QWE",
"costCode": "CC38249",
"entityIds": [
"100",
"101",
"102"
],
"portfolios": [
{
"id": "456",
"portfolioCode": "CODE"
}
]
"status": "active"
}Response
{
"id": "123",
"companyId": "1",
"name": "Updated Name",
"projectCode": "CODE-QWE",
"externalReference": "EXT",
"costCode": "CC38249",
"defaultExpenseTypeId": 222,
"entityIds": [
"100",
"101",
"102"
],
"portfolios": [
{
"id": "456",
"portfolioCode": "CODE",
"_link": "/company/4/portfolio/456"
}
],
"status": "active",
"createdDate": "1970-01-01T00:00:00Z",
"updatedDate": "1970-01-01T00:00:00Z"
}
Portfolio
A project portfolio is a group of related projects used for reporting, tracking, and approvals of both claims and invoices. Projects can be related to multiple portfolios and portfolios can contain multiple projects.
Endpoints
GET /{version}/company/{companyId}/portfolio/{portfolioId}
Response
{
"id": "789",
"companyId": "1",
"entityIds": [
"100",
"101",
"103"
],
"name": "Portfolio A",
"code": "CODE-123",
"projects: [
{
"id": "123",
"projectCode": "CODE"
"_link": "/company/4/project/123"
},
{
"id": "456",
"projectCode": "RIJG"
"_link": "/company/4/project/456"
}
]
"status": "active",
"createdDate": "1970-01-01T00:00:00Z",
"updatedDate": "1970-01-01T00:00:00Z"
}
GET /{version}/company/{companyId}/portfolio
Parameters
includeInactive (boolean) - false
A filter for the portfolio active flag.
entityId (string) - optional
A filter for the entityId of portfolio.
portfolioCode (string) - optional
A filter for the portfolioCode of portfolio.
minUpdatedDate (string)
A filter for the last updated timestamp. Returns the data updated on or after the specified date-time in UTC.
Example: 2024-08-27 or 2024-08-27T16:25:16Z
Response
{
"page": [
{
"id": "789",
"companyId": "1",
"entityIds": [
"100",
"101",
"103"
],
"name": "Portfolio A",
"code": "CODE-123",
"projects: [
{
"id": "123",
"companyId": "1",
"projectCode": "CODE",
"_link": "/company/4/project/123"
},
{
"id": "456",
"companyId": "1",
"projectCode": "RIJG",
"_link": "/company/4/project/456"
}
],
"status": "active",
"createdDate": "1970-01-01T00:00:00Z",
"updatedDate": "1970-01-01T00:00:00Z"
}
],
"nextCursor": "xkdfj23882394fj"
}
POST /{version}/company/{companyId}/portfolio
Beta Version
Creation of a linked project is not permitted through this endpoint.
Request Body
entityId (array) : Optional, should be an array, if not provided, add to all integrations, empty is invalid, null -> all entities.
Request
{
"code": "NEW-CODE-123",
"name": "New Portfolio Name",
"status": "active",
"entityIds": [
"100",
"200",
"300"
],
}Response
{
"id": "123",
"companyId": "1",
"name": "New Portfolio Name",
"code": "NEW-CODE-123",
"entityIds": [
"100",
"200",
"300"
],
"projects": [],
"status": "active",
"createdOn": "1970-01-01T00:00:00Z",
"updatedOn": "1970-01-01T00:00:00Z"
}
PATCH /{version}/company/{companyId}/portfolio/{portfolioId}
Beta Version
- Creation of a linked project is not permitted through this endpoint.
- In cases where multiple portfolios with the same code have been imported by different external systems, this endpoint will update and return all portfolios associated with that code within the system.
Partial updates are supported by including only the fields to be modified in the request payload.
Request
{
"code": "CODE-UPDATE-123",
"name": "NAME-UPDATE",
"status": "diabled"
}Response
{
"id": "789",
"companyId": "1",
"entityIds": [
"100",
"101",
"103"
],
"code": "CODE-123",
"name": "Portfolio A",
"projects: [
{
"id": "123",
"projectCode": "CODE"
"_link": "/company/4/project/123"
},
{
"id": "456",
"projectCode": "RIJG"
"_link": "/company/4/project/456"
}
]
"status": "active",
"createdOn": "1970-01-01T00:00:00Z",
"updatedOn": "1970-01-01T00:00:00Z"
}