openapi: 3.2.0
info:
version: 0.1.0
title: Whitespace Platform Customer API
description:
Last update 29th May 2025
Our intention is to cover the API calls most of use to those wanting to integrate external systems to the Whitespace Platform. We will give some descriptions about usage, but put full detail in standalone documents at
https://apidocs.whitespace.co.uk/. We intend to have the published endpoints and schemas documented to the level that the code generated can be used safely and without modification to call our APIs safely.
Calls exclusive to brokers or underwriters have a comment of Broker Only and Underwriter Only respectively. All other calls work for both, but functionality might depend on the stage the risk is at, or other contextual factors.
Where certain properties refer to RootID or similar, they are actually referring to the ID of the entire slip, encompassing all stages and instances of the contract. This is a unique 38-character reference starting with the letters IC. If they mention riskID or docID or placingID, these are refering to the ID of a specific document or contract instance within the slip. This is always the RootID of the base slip followed by a double colon, ::, and further characters.
Once your Integration is ready to go live, the URL for production is https://www.whitespaceplatform.com
servers:
- description: Sandbox Environment
url: https://sandbox.whitespace.co.uk/
- description: Tess Environment
url: https://tess.whitespace.co.uk/
- description: Beta Environment
url: https://beta.whitespace.co.uk/
- description: Staging Environment
url: https://staging.whitespace.co.uk/
security:
- bearerAuth: []
tags:
- name: Customer
paths:
/api/customer/{teamID}/{uniqueID}:
get:
summary: Retrieves the additional data across all keys used to store information
description: The document return includes each payload of JSON as keys below customerData.
tags:
- Customer
parameters:
- in: path
name: teamID
schema:
type: string
required: true
description: The team ID for the relevant team that the user belongs to
example: MARINE
- in: path
name: uniqueID
schema:
type: string
required: true
description: An idientifier, usually a reference to an external system
example: XYZ-123
responses:
'200':
description: the defined data document, containing metadata, multiSectionDefinition and definedData
content:
application/json:
schema:
description: The JSON payloads are stored as keyed objects below customerData
examples:
Simple Case:
description: Any JSON data can be stored
value:
_id: CR::ajc_ALL::XYZ-123
_rev: 2-291fbd5a54865c14dc9df55e4be723e2
channels:
- ajc_ALL
createdAt: '2022-06-17 12:32:24'
customerData:
assessed:
RiskLevel: 2
pas_reference:
PASData:
RiskID: IC9E52131E-760A-4D01-8478-39FC5636510E
updated: '2022-06-17T13:26:00'
docID: CR::ajc_ALL::XYZ-123
provenance:
dataHash: ebba086e38e681ef29cc74e960ace8d07f46d50719b3b76ac464c24bf8baee4b
provHash: e4ef8ba5d3bc5a841dc2c9669aee56d253f6fe708b7629090d672cfa72ed98cc
system: LaVAPI
userID: MU4DD606E3-1BDB-4B3B-8342-D7F38EC3C71B
version: 2022-06-16@19:08:18
writtenAt: '2022-06-17 12:45:31'
teamID: ALL
type: RWCustomerData
uniqueID: XYZ-123
updatedAt: '2022-06-17 12:45:31'
/api/customer/{teamID}/{uniqueID}/{key}:
post:
tags:
- Customer
summary: Saves additional data, usually to link to other systems
description: The payload can be any JSON. It is recorded against a unique identifier, usually a reference to an external system. Additionally, a key allows different pieces of data to be recorded against one identifer.
parameters:
- in: path
name: teamID
schema:
type: string
required: true
description: The team ID for the relevant team that the user belongs to
example: MARINE
- in: path
name: uniqueID
schema:
type: string
required: true
description: An idientifier, usually a reference to an external system
example: XYZ-123
- in: path
name: key
schema:
type: string
required: true
description: A key to refer to the JSON for fetching later
example: pas_reference
requestBody:
content:
application/json:
examples:
Any data you like:
description: Any JSON can be stored
value:
PASData:
RiskID: IC9E52131E-760A-4D01-8478-39FC5636510E
updated: '2022-06-17T13:26:00'
schema:
description: Any JSON can be stored
type: object
additionalProperties: {}
responses:
'200':
description: A confirmation of the saved data. Note the document id includes the teamID, uniqueID and key parameters
content:
application/json:
schema:
type: object
properties:
id:
type: string
description: the id of the customer specific document
example: CR::ajc_ALL::XYZ-123
rev:
type: string
description: the revision of the document
example: 1-299083cee917a40a0944fc0d997d2d24
ok:
type: boolean
description: true if the data was saved
example: true
delete:
tags:
- Customer
summary: Deletes additional data
parameters:
- in: path
name: teamID
schema:
type: string
required: true
description: The team ID for the relevant team that the user belongs to
example: MARINE
- in: path
name: uniqueID
schema:
type: string
required: true
description: An idientifier, usually a reference to an external system
example: XYZ-123
- in: path
name: key
schema:
type: string
required: true
description: A key to refer to the JSON for fetching later
example: pas_reference
responses:
'200':
description: A confirmation of the changed data. Note the document id includes the teamID, uniqueID and key parameters
content:
application/json:
schema:
type: object
properties:
id:
type: string
description: the id of the customer specific document
example: CR::ajc_ALL::XYZ-123
rev:
type: string
description: the revision of the document
example: 5-968f8ad0fe3dc5046c208b71a9b7c522
ok:
type: boolean
description: true if the data was saved
example: true
components:
securitySchemes:
bearerAuth:
type: http
scheme: bearer
bearerFormat: JWT