Whitespace · Authentication Profile
Whitespace London Authentication
Authentication
Whitespace secures its APIs with http across 1 declared security scheme, as derived from its OpenAPI definitions.
InsuranceUnited KingdomReinsuranceProperty and CasualtyInsurtechBrokerUnderwritingPlacing PlatformLondon MarketLloyd's of LondonACORDMarket Infrastructure
Methods: http
Schemes: 1
OAuth flows:
API key in:
Security Schemes
bearerAuth http
scheme: bearer
Source
Authentication Profile
generated: '2026-07-25'
method: searched
source: openapi/whitespace-london-platform-openapi.yml
docs:
- https://apidocs.whitespace.co.uk/Obtaining_and_Using_a_Service_Token_for_the_API.pdf
- https://apidocs.whitespace.co.uk/Refresh_Token_Guide_v1.0.pdf
- https://apidocs.whitespace.co.uk/Obtaining_and_Using_a_Renewable_Token_for_the_API.pdf
- https://apidocs.whitespace.co.uk/Getting_Started_with_the_Whitespace_API.pdf
summary:
types:
- http
http_schemes:
- bearer
bearer_format: JWT
self_serve: false
oauth2: false
oidc: false
mtls: false
api_key: false
second_factor: IP allowlisting (contractually required on Production)
schemes:
- name: bearerAuth
type: http
scheme: bearer
bearerFormat: JWT
applied: 'global — security: [{bearerAuth: []}]'
sources:
- openapi/whitespace-london-platform-openapi.yml
credentials:
- kind: service token
audience: system-to-system integrations (dedicated service accounts, recommended)
issued_by: Whitespace Support (support@whitespace.co.uk), out of band
issued_since: January 2022
delivery: >-
A password-protected zip containing one JSON file per account, provided within 3 working
days (GMT); the password is sent separately as a secure email.
payload_keys:
- key: token
description: The value passed in the Authorization Bearer header.
- key: kid
description: Identifier used to revoke the token.
- key: expiry
description: Expiry date of the token.
max_lifetime: 1 year
account_naming: wssvc_COMPANYID_contact.email@youremail.domain
ip_allowlist: >-
Required on PRODUCTION as the contractually-mandated second authentication factor.
Multiple IPs or a reasonable range are accepted; a universal 0.0.0.0-255.255.255.255
range is refused. IPs are optional (but recommended) on SANDBOX.
expiry_monitoring: >-
Whitespace monitors token expiry on PRODUCTION and warns clients; SANDBOX expiry is not
monitored and must be tracked by the integrator.
usage: 'Authorization: Bearer <token>'
- kind: renewable / user token
audience: desktop, mobile and web applications acting for a logged-in platform user
flow: browser-redirect authorization-code-like exchange (not OAuth 2.0, not OIDC)
steps:
- GET {ROOT}/auth/apiLogin?email={email}[&client_id={client_id}] returns a redirect URL
- The user completes password entry and MFA at that URL
- The redirect back carries code and state parameters
- 'POST the code and state values to {ROOT}/auth/apiLogin?email={email} — returns a token'
- Refresh by calling {ROOT}/auth/apiRefresh with the Authorization Bearer header
token_lifetime: 1 hour
refresh_window: >-
Call /auth/apiRefresh every 15-45 minutes. The call errors if the token has expired or
if the current token is less than 10 minutes old.
client_id: >-
Web implementations must register their redirect URL with Whitespace and be issued a
client_id out of band before generating tokens.
note: >-
Also the credential used by the CSharpUtils utilities (settings key "renewableToken",
copied by the user from the platform's user settings panel).
multi_organisation:
name: SUMO (Single User, Multiple Organisation)
header: 'UserID: MU<36-character identifier>'
discovery: GET /api/shared/corporate — filter the "members" arrays for the user's uniqueID
service_tokens: Not supported for SUMO; a separate token is required per corporate identity.
error_without_header: '{"reason": "Invalid WSAUTH: Valid UserID must be supplied", "error": true}'
failure_mode:
status: 401
body: '{"error": true, "reason": "Invalid WSAUTH"}'
causes:
- Token expired or revoked
- Associated platform user is not in Live or ReadOnly state (Draft/Suspended are rejected)
- Source IP address is not on the allowlist
- ReadOnly users attempting a POST
anonymous_endpoints:
- GET /api/version
onboarding:
self_serve: false
path: >-
Request Sandbox user accounts and an API service account from support@whitespace.co.uk,
then Sandbox service bus queue(s), then Production service account(s) and queue(s).
commercial_terms: https://www.whitespace.co.uk/interchange-agreement
scopes:
supported: false
note: >-
There is no OAuth 2.0 authorization server and no scope surface. Authorisation is
enforced by platform role (broker / underwriter), user state (Live / ReadOnly) and
Couchbase channel membership (companyID_teamID) rather than by token scopes — see
conventions/whitespace-london-conventions.yml.