Download OpenAPI specification:OpenAPI (JSON)OpenAPI (YAML)
The Enterprise Front End API.
Applies a partial update to the customer record identified by the supplied external identifier, using JSON Merge Patch semantics (RFC 7396).
Only the fields present in the request body are updated. Omitted fields are
left unchanged. Fields outside the documented allowlist are rejected with a
validation error; attempts to modify system or unmanaged fields (for example,
externalId, email, or state flags) are not permitted.
Fields fall into two tiers. Immediately applicable fields (title,
address) are written straight away and the updated record is returned with
200. Verification-gated fields (firstName, middleName, lastName,
dateOfBirth) are not applied directly: submitting any of them creates a change request
that is verified by an external service — which may approve or reject it — and
the response is 202 Accepted with the change request. Some verifications
also require supporting documents (for example a marriage certificate for a
surname change); the change request indicates whether evidence is required and
which document types. Where a single request mixes both tiers, the immediately
applicable fields are written and a change request is created for the rest.
Authorisation follows the same role-scoped model as the GET endpoint. A Customer may update only their own record; broader roles may update records within their scope.
All successful updates are captured in the audit trail with before-and-after values. The API application log records only request metadata — which fields were updated, when, and by whom — not the values themselves, in line with UK GDPR data minimisation.
Inactive customer records cannot be updated; attempts return 410 Gone.
| externalId required | string The external customer identifier (for example, |
| title | string |
| firstName | string |
| middleName | string |
| lastName | string |
| dateOfBirth | string |
string | |
object (updateFeCustomerAddressRequest) |
{- "title": "string",
- "firstName": "string",
- "middleName": "string",
- "lastName": "string",
- "dateOfBirth": "string",
- "email": "string",
- "address": {
- "addressLine1": "string",
- "addressLine2": "string",
- "city": "string",
- "county": "string",
- "postcode": "string",
- "country": "string"
}
}{- "data": {
- "externalId": "string",
- "email": "string",
- "title": "string",
- "firstName": "string",
- "lastName": "string",
- "dateOfBirth": "string",
- "address": {
- "addressLine1": "string",
- "addressLine2": "string",
- "city": "string",
- "county": "string",
- "postcode": "string",
- "country": "string"
}
}, - "meta": {
- "requestId": "string",
- "timestamp": "string",
- "apiVersion": "string",
- "warnings": [
- {
- "code": "string",
- "message": "string"
}
]
}
}Returns a curated payload of personal details for the customer identified by the supplied external identifier. The response is a shaped data transfer object — internal system fields are not exposed.
Authorisation is role-scoped. A caller with the Customer role may retrieve
only their own record. Callers with broader roles (SchemeAdministrator,
ClaimsAssessor) may retrieve records within their scope. Requests outside
the caller's scope return 403 Forbidden.
Inactive customer records return 410 Gone with a body indicating the record
exists but is no longer active.
| externalId required | string The external customer identifier (for example, |
{- "data": {
- "externalId": "string",
- "email": "string",
- "title": "string",
- "firstName": "string",
- "lastName": "string",
- "dateOfBirth": "string",
- "address": {
- "addressLine1": "string",
- "addressLine2": "string",
- "city": "string",
- "county": "string",
- "postcode": "string",
- "country": "string"
}
}, - "meta": {
- "requestId": "string",
- "timestamp": "string",
- "apiVersion": "string",
- "warnings": [
- {
- "code": "string",
- "message": "string"
}
]
}
}Returns a list of policies for a given customer identified by their reference. The customer is the policy holder.
The response is a paged collection per the Sovereign Health Care API Design
Standards: the data array carries the policy summaries, the pagination
block carries navigation state, and meta carries correlation metadata. A
customer with no qualifying policies receives 200 OK with data: [] —
an empty collection is not an error.
| externalId required | string The external customer identifier (for example, |
| pageSize | integer <int32> Number of policies to return per page, between 1 and 5000. Optional on the first request, where it defaults to 25. Required whenever 'nextPage' is supplied, and must repeat the value used for the first request - the page size cannot change part-way through a paging sequence. |
| nextPage | string Opaque cursor taken from 'pagination.nextPage' of the previous response. Omit to retrieve the first page; echo the value verbatim and do not parse it. |
{- "data": [
- {
- "policyId": "string",
- "policyReference": "string",
- "name": "string",
- "status": "string",
- "customerRole": "string",
- "liveDate": "string",
- "product": {
- "productReference": "string",
- "productName": "string",
- "productVersion": "string",
- "productVersionReference": "string",
- "coverLevel": "string",
- "coverLevelName": "string"
}, - "pricing": {
- "grossPremium": "string",
- "currency": "string",
- "paymentFrequency": "string"
}, - "policyHolder": {
- "contactExternalId": "string",
- "firstName": "string",
- "lastName": "string",
- "fullName": "string"
}, - "createdOn": "string",
- "modifiedOn": "string"
}
], - "pagination": {
- "nextPage": "string",
- "pageSize": 0,
- "totalItems": 0
}, - "meta": {
- "requestId": "string",
- "timestamp": "string",
- "apiVersion": "string",
- "warnings": [
- {
- "code": "string",
- "message": "string"
}
]
}
}Register a new organisation in the downstream Core system.
| name | string Legal entity name (typically as registered with Companies House). |
string | |
| phone | string |
object (createFeOrganisationAddressRequest) | |
object (createFeOrganisationDirectorRequest) |
{- "name": "string",
- "email": "string",
- "phone": "string",
- "address": {
- "addressLine1": "string",
- "addressLine2": "string",
- "city": "string",
- "county": "string",
- "postalCode": "string",
- "country": "string"
}, - "director": {
- "personExternalId": "string",
- "effectiveFrom": "string",
- "effectiveTo": "string",
- "notes": "string"
}
}{- "data": {
- "externalId": "string"
}, - "meta": {
- "requestId": "string",
- "timestamp": "string",
- "apiVersion": "string",
- "warnings": [
- {
- "code": "string",
- "message": "string"
}
]
}
}Applies a partial update to the organisation identified by the supplied external identifier.
Only the fields present in the request body are updated; omitted fields are left
unchanged. Fields outside the documented set are rejected with a validation error,
as are the platform-generated externalId, createdAt and modifiedAt.
Two deliberate divergences from RFC 7396 JSON Merge Patch, both platform conventions rather than quirks of this operation:
An explicit null is a no-op, not a removal. Sending {"email": null} leaves
the stored email untouched rather than clearing it. There is currently no way to
clear an optional field through this endpoint.
director cannot be changed here; it is accepted on create only.
A body that changes nothing is rejected with 400 rather than silently
succeeding. An address may be partial: supplying address with only city set
changes the city and leaves the rest of the stored address intact.
If-Match is accepted with the value *, which requires the organisation to
exist. A concrete ETag is not supported - no endpoint on this platform issues
an ETag, so no caller can hold a valid one, and any other value is rejected with
409 rather than silently ignored.
The response is 200 with an empty body: the stored record is not read back.
Re-read with GET if the current record is needed.
| externalId required | string The external organisation identifier (for example, |
| If-Match | string Optimistic concurrency control. Only |
| name | string |
string | |
| phone | string |
object (updateFeOrganisationAddressRequest) |
{- "name": "string",
- "email": "string",
- "phone": "string",
- "address": {
- "addressLine1": "string",
- "addressLine2": "string",
- "city": "string",
- "county": "string",
- "postalCode": "string",
- "country": "string"
}
}{- "type": "string",
- "title": "string",
- "status": 0,
- "detail": "string",
- "instance": "string",
- "code": "string",
- "errors": [
- {
- "field": "string",
- "code": "string",
- "message": "string"
}
]
}Register a new location for an organisation in the downstream Core system.
| name | string |
| organisationExternalId | string External ID of the organisation this location belongs to. |
| addressLine1 | string |
| addressLine2 | string |
| addressLine3 | string |
| city | string |
| county | string |
| postalCode | string |
| country | string |
| locationCategory | string |
| latitude | number or null <double> |
| longitude | number or null <double> |
| emailAddress | string |
| phoneNumber | string |
| notes | string |
{- "name": "string",
- "organisationExternalId": "string",
- "addressLine1": "string",
- "addressLine2": "string",
- "addressLine3": "string",
- "city": "string",
- "county": "string",
- "postalCode": "string",
- "country": "string",
- "locationCategory": "string",
- "latitude": 0,
- "longitude": 0,
- "emailAddress": "string",
- "phoneNumber": "string",
- "notes": "string"
}{- "data": {
- "externalId": "string"
}, - "meta": {
- "requestId": "string",
- "timestamp": "string",
- "apiVersion": "string",
- "warnings": [
- {
- "code": "string",
- "message": "string"
}
]
}
}Returns the choices (code + label pairs) for the named choice list. Internal numeric identifiers and platform-specific field names are implementation details and are intentionally omitted from the response.
| listName required | string camelCase identifier of the choice list. Case-sensitive exact match against the catalogue. |
{- "data": {
- "name": "string",
- "scope": "string",
- "choices": [
- {
- "code": "string",
- "label": "string"
}
], - "catalogueVersion": "string",
- "catalogueGeneratedAt": "string"
}, - "meta": {
- "requestId": "string",
- "timestamp": "string",
- "apiVersion": "string",
- "warnings": [
- {
- "code": "string",
- "message": "string"
}
]
}
}Returns a lightweight manifest of every choice list available in the
catalogue. Clients call GET /v1/reference-data/{listName} to retrieve
the choices themselves.
{- "data": {
- "items": [
- {
- "name": "string",
- "scope": "string",
- "choiceCount": 0
}
], - "catalogueVersion": "string",
- "catalogueGeneratedAt": "string"
}, - "meta": {
- "requestId": "string",
- "timestamp": "string",
- "apiVersion": "string",
- "warnings": [
- {
- "code": "string",
- "message": "string"
}
]
}
}Returns a fully expanded product payload — provider, provider settings, all versions, and for each version the benefits, benefit coverages, levels, level benefits and level pricing.
| externalId required | string External product reference, example - |
{- "data": {
- "reference": "string",
- "name": "string",
- "description": "string",
- "status": "string",
- "provider": {
- "name": "string",
- "description": "string",
- "settings": [
- {
- "name": "string",
- "value": "string"
}
]
}, - "versions": [
- {
- "number": "string",
- "effectiveFrom": "string",
- "effectiveTo": "string",
- "name": "string",
- "status": "string",
- "pricingMethod": "string",
- "dependentHandling": "string",
- "maxDependentAge": 0,
- "additionalAdultHandling": "string",
- "maxAdditionalAdults": 0,
- "benefits": [
- {
- "name": "string",
- "benefit": "string",
- "status": "string",
- "isCore": true,
- "coveredEntityType": "string",
- "coverage": [
- {
- "name": "string",
- "coveredEntityType": "string",
- "coverageType": "string",
- "status": "string",
- "qualifyingPeriodMonths": 0,
- "benefitPeriodMonths": 0,
- "benefitPeriodBasis": "string",
- "excessType": "string",
- "excessValue": 0,
- "limitType": "string",
- "limitValue": 0,
- "maxReimbursementValue": 0,
- "maxPaybackType": "string",
- "maxPaybackValue": 0,
- "potAllocation": "string",
- "claimBasis": "string"
}
]
}
], - "levels": [
- {
- "level": 0,
- "name": "string",
- "description": "string",
- "status": "string",
- "pricing": [
- {
- "name": "string",
- "memberType": "string",
- "amount": 0,
- "effectiveFrom": "string",
- "approvedOn": "string",
- "effectiveTo": "string",
- "status": "string",
- "rateType": "string",
- "paymentFrequency": "string",
- "formula": "string"
}
], - "benefits": [
- {
- "name": "string",
- "benefit": "string",
- "status": "string",
- "qualifyingPeriod": "string",
- "minReimbursementValue": 0,
- "maxReimbursementValue": 0,
- "maxPaybackType": "string",
- "maxPaybackValue": 0,
- "dependentMinReimbursementValue": 0,
- "dependentMaxReimbursementValue": 0,
- "additionalAdultMinReimbursementValue": 0,
- "additionalAdultMaxReimbursementValue": 0,
- "familySharedPoolValue": 0,
- "dependentSharedPoolValue": 0
}
]
}
]
}
]
}, - "meta": {
- "requestId": "string",
- "timestamp": "string",
- "apiVersion": "string",
- "warnings": [
- {
- "code": "string",
- "message": "string"
}
]
}
}Returns the benefits configured on a product version - the selectable
benefits for a claim line item. Used to populate the benefit picker when
adding a claim line item: the caller selects a benefit and its
reference is sent as the line item's benefitReference.
productVersionReference is the product version's external reference,
obtained from the policy's product version.
| productVersionReference required | string External reference of the product version, used as an alternate key. |
{- "data": {
- "items": [
- {
- "reference": "string",
- "name": "string",
- "benefit": "string",
- "isCore": true,
- "status": "string",
- "coveredEntityType": "string"
}
]
}, - "meta": {
- "requestId": "string",
- "timestamp": "string",
- "apiVersion": "string",
- "warnings": [
- {
- "code": "string",
- "message": "string"
}
]
}
}Returns a fully expanded policy payload - policy details, the resolved product / version / cover level references, pricing, policy holder (person, contact, consents), payer and Direct Debit details, additional adults, dependants, referral data, and recorded audit events.
The response mirrors the structure of the create-policy request body
and adds system-generated identifiers (policyId, policyReference,
contactId, contactExternalId), the policy status, and audit
metadata.
The response also carries the provider that underwrites the policy
(identifier, reference and name), and a coveredEntityReference
(CVE...) on the policy holder, on each additional adult and on each
dependant. Use a coveredEntityReference with
GET /v1/policies/{policyReference}/covered-entities/{coveredEntityReference}
to read the details of that covered entity.
Access is subject to object-level authorization (see
Authentication and authorization in the API description): the
caller must hold an active role on the requested policy. A caller
with no active role receives 404, indistinguishable from an unknown
reference.
| policyReference required | string External policy reference, example - |
{- "data": {
- "policyId": "string",
- "policyReference": "string",
- "contactId": "string",
- "contactExternalId": "string",
- "name": "string",
- "status": "string",
- "channel": "string",
- "quoteReference": "string",
- "liveDate": "string",
- "fundingType": "string",
- "provider": {
- "providerId": "string",
- "providerReference": "string",
- "name": "string"
}, - "product": {
- "productReference": "string",
- "brandReference": "string",
- "coverLevel": "string",
- "productVersion": "string"
}, - "pricing": {
- "source": "string",
- "grossPremium": "string",
- "grossPremiumFormatted": "string",
- "currency": "string",
- "paymentFrequency": "string"
}, - "policyHolder": {
- "coveredEntityReference": "string",
- "contactId": "string",
- "contactExternalId": "string",
- "person": {
- "firstName": "string",
- "lastName": "string",
- "dateOfBirth": "string"
}, - "contact": {
- "emailAddress": "string",
- "phoneMobile": "string",
- "phoneLandline": "string",
- "address": {
- "line1": "string",
- "line2": "string",
- "line3": "string",
- "city": "string",
- "postalCode": "string",
- "countryCode": "string",
- "verified": true,
- "verificationId": "string"
}
}, - "consents": {
- "termsAcceptedOn": "string",
- "ipidAcknowledgedOn": "string",
- "marketingOptIn": true
}
}, - "payer": {
- "person": {
- "firstName": "string",
- "lastName": "string",
- "dateOfBirth": "string"
}, - "contact": {
- "emailAddress": "string",
- "phoneMobile": "string",
- "phoneLandline": "string",
- "address": {
- "line1": "string",
- "line2": "string",
- "line3": "string",
- "city": "string",
- "postalCode": "string",
- "countryCode": "string",
- "verified": true,
- "verificationId": "string"
}
}, - "directDebit": {
- "bankName": "string",
- "accountHolderName": "string",
- "sortCode": "string",
- "accountNumber": "string",
- "collectionDay": 0,
- "verified": true,
- "mandateAcceptedAt": "string"
}
}, - "additionalAdults": [
- {
- "coveredEntityReference": "string",
- "contactId": "string",
- "contactExternalId": "string",
- "person": {
- "firstName": "string",
- "lastName": "string",
- "dateOfBirth": "string"
}
}
], - "dependants": [
- {
- "coveredEntityReference": "string",
- "contactId": "string",
- "contactExternalId": "string",
- "person": {
- "firstName": "string",
- "lastName": "string",
- "dateOfBirth": "string"
}
}
], - "events": [
- {
- "eventType": "string",
- "name": "string",
- "description": "string",
- "eventDate": "string",
- "effectiveDate": "string"
}
], - "referralCode": "string",
- "referringPolicyReference": "string",
- "createdOn": "string",
- "modifiedOn": "string"
}, - "meta": {
- "requestId": "string",
- "timestamp": "string",
- "apiVersion": "string",
- "warnings": [
- {
- "code": "string",
- "message": "string"
}
]
}
}Creates a new policy at Draft status and the supporting customer, policy holder role, covered entity, and audit event records in a single atomic transaction.
Business rules executed during the call:
bannedCustomer flag is true, the application is rejected with
HTTP 400 / CUSTOMER_BANNED.SIMILAR_POLICY_EXISTS
warning is returned in meta.warnings.Atomicity guarantee: if any inner write fails, all writes for the application are rolled back so the caller can cleanly retry.
| startDate | string Requested policy live date. Recorded as the policy's live date and used as the effective-from date for the policy holder role, covered entity, and audit event. |
| fundingType | string |
object (createFePolicyProductRequest) | |
object (createFePolicyPricingRequest) | |
object (createFePolicyHolderRequest) |
{- "startDate": "string",
- "fundingType": "string",
- "product": {
- "productReference": "string",
- "brandReference": "string",
- "coverLevel": "string",
- "productVersion": "string"
}, - "pricing": {
- "grossPremium": 0,
- "currency": "string",
- "paymentFrequency": "string"
}, - "policyHolder": {
- "person": {
- "firstName": "string",
- "lastName": "string",
- "dateOfBirth": "string"
}, - "contact": {
- "emailAddress": "string",
- "phoneMobile": "string",
- "phoneLandline": "string",
- "address": {
- "line1": "string",
- "line2": "string",
- "line3": "string",
- "city": "string",
- "postalCode": "string",
- "countryCode": "string"
}
}, - "directDebit": {
- "collectionDay": 0
}
}
}{- "data": {
- "policyReference": "string",
- "contactExternalId": "string",
- "status": "string",
- "liveDate": "string"
}, - "meta": {
- "requestId": "string",
- "timestamp": "string",
- "apiVersion": "string",
- "warnings": [
- {
- "code": "string",
- "message": "string"
}
]
}
}Appends a new audit / lifecycle event to an existing policy, identified by its public reference. Events provide an immutable, append-only history of what happened to a policy and when - policy creation, cover-level changes, premium changes, cancellations, renewals, and so on - supporting servicing visibility, audit, and FCA record-keeping.
The event is written as a single record linked to the parent policy.
Optional before / after detail (status, funding type, member type,
cover level, premium) may be supplied through the change object for
transition-type events (for example COVER_LEVEL_CHANGE or
PREMIUM_CHANGE).
This operation is append-only: it creates a new event and never mutates the policy header or any existing event. The authenticated principal is recorded against the event as the performer.
Responses follow the Sovereign Health Care API Design Standards: a
successful create returns the created event inside a data + meta
envelope; errors use RFC 9457 application/problem+json.
| policyReference required | string External policy reference, example - |
| eventType | string |
| eventDate | string Timestamp the event occurred (ISO 8601 UTC). |
| effectiveDate | string Business-effective date of the event ( |
| name | string |
| description | string |
| status | string |
| externalId | string |
object (createFePolicyEventChangeRequest) |
{- "eventType": "string",
- "eventDate": "string",
- "effectiveDate": "string",
- "name": "string",
- "description": "string",
- "status": "string",
- "externalId": "string",
- "change": {
- "previousStatus": "string",
- "newStatus": "string",
- "previousFundingType": "string",
- "newFundingType": "string",
- "previousMemberType": "string",
- "newMemberType": "string",
- "previousProductVersionLevelId": "string",
- "newProductVersionLevelId": "string",
- "previousPremium": "string",
- "newPremium": "string",
- "currency": "string"
}
}{- "data": {
- "eventId": "string",
- "policyReference": "string",
- "policyId": "string",
- "eventType": "string",
- "name": "string",
- "description": "string",
- "eventDate": "string",
- "effectiveDate": "string",
- "status": "string",
- "initiatedBy": "string",
- "performedBy": "string",
- "change": {
- "previousStatus": "string",
- "newStatus": "string",
- "previousFundingType": "string",
- "newFundingType": "string",
- "previousMemberType": "string",
- "newMemberType": "string",
- "previousProductVersionLevelId": "string",
- "newProductVersionLevelId": "string",
- "previousPremium": "string",
- "newPremium": "string",
- "currency": "string"
}, - "createdOn": "string"
}, - "meta": {
- "requestId": "string",
- "timestamp": "string",
- "apiVersion": "string",
- "warnings": [
- {
- "code": "string",
- "message": "string"
}
]
}
}Returns the policies on which the authenticated caller currently holds an active policy role.
The caller is resolved from the bearer token's identity to the linked person, and the response lists the policies on which that person holds an active role - a current, active role whose effective period includes today's date.
Each policy appears once; where the caller holds more than one role
on the same policy (for example both Policy Holder and
Payer), all such roles are listed in policyRoleTypes. The
policies are returned in the standard collection envelope data
array; callers with no active policy roles receive an empty data
array.
| pageSize | integer <int32> Number of policies to return per page, between 1 and 5000. Optional on the first request, where it defaults to 25. Required whenever 'nextPage' is supplied, and must repeat the value used for the first request - the page size cannot change part-way through a paging sequence. |
| nextPage | string Opaque cursor taken from 'pagination.nextPage' of the previous response. Omit to retrieve the first page; echo the value verbatim and do not parse it. |
{- "data": [
- {
- "policyReference": "string",
- "name": "string",
- "status": "string",
- "policyRoleTypes": [
- "string"
]
}
], - "pagination": {
- "nextPage": "string",
- "pageSize": 0,
- "totalItems": 0
}, - "meta": {
- "requestId": "string",
- "timestamp": "string",
- "apiVersion": "string",
- "warnings": [
- {
- "code": "string",
- "message": "string"
}
]
}
}Returns the entities covered by the policy - the people (and, for some
products, animals) that claims can be made for. Used to populate the
claimant picker when adding a claim line item: the caller selects a
covered entity and its coveredEntityReference (CVE...) is sent as
the line item's claimantReference.
Only active covered entities are returned.
Access is subject to object-level authorization: the caller must hold an
active role on the policy. A caller with no active role receives 404,
indistinguishable from an unknown reference.
| policyReference required | string External policy reference, example - |
{- "data": {
- "items": [
- {
- "coveredEntityReference": "string",
- "name": "string",
- "entityType": "string",
- "memberType": "string",
- "status": "string",
- "effectiveFrom": "string",
- "effectiveTo": "string",
- "person": {
- "firstName": "string",
- "lastName": "string",
- "fullName": "string",
- "email": "string",
- "dateOfBirth": "string"
}
}
]
}, - "meta": {
- "requestId": "string",
- "timestamp": "string",
- "apiVersion": "string",
- "warnings": [
- {
- "code": "string",
- "message": "string"
}
]
}
}Returns the details of one covered entity on the policy, identified by
its external reference (CVE...). Used to drill into a covered entity
from the policy view, and by processes such as claims evaluation that
need the cover details of a claimant.
The covered entity is a policy administration (PAS) record. The response holds the PAS detail - entity type, member type, status, effective dates and the active exclusions - together with references to the related Core records:
person.personReference (PER...) - the covered person. Use it
with GET /v1/customers/{externalId} in the Customer API.organisations[].organisationReference (ORG...) - the
organisations associated with the covered entity. In this version
that is the employer of the scheme the policy belongs to. Use it
with GET /v1/organisations/{externalId} in the Organisation API.Person and organisation detail (names, contact details, addresses) is deliberately not returned here: it is Core data and is read from the Core APIs with the references above.
Active and inactive covered entities are both returned; status says
which. Only active exclusions are returned.
Access is subject to object-level authorization: the caller must hold
an active role on the policy. The API responds 404 when the policy
is unknown, when the caller holds no active role on it, and when the
covered entity is unknown or belongs to a different policy. The three
cases are indistinguishable.
| policyReference required | string External policy reference, example - |
| coveredEntityReference required | string External reference of the covered entity, example - |
{- "data": {
- "coveredEntityReference": "string",
- "policyReference": "string",
- "name": "string",
- "entityType": "string",
- "memberType": "string",
- "status": "string",
- "effectiveFrom": "string",
- "effectiveTo": "string",
- "person": {
- "personReference": "string"
}, - "schemeReference": "string",
- "organisations": [
- {
- "organisationReference": "string",
- "relationship": "string"
}
], - "exclusions": [
- {
- "name": "string",
- "description": "string",
- "exclusionType": "string",
- "effectiveFrom": "string",
- "effectiveTo": "string"
}
], - "createdOn": "string",
- "modifiedOn": "string"
}, - "meta": {
- "requestId": "string",
- "timestamp": "string",
- "apiVersion": "string",
- "warnings": [
- {
- "code": "string",
- "message": "string"
}
]
}
}Returns the benefit pots on the policy. A benefit pot is the allowance
for one benefit over one benefit period: the amount allocated at the
start of the period (initialAllocation), the amount claimed against
it to date (claimedAmount), and what is left (remainingBalance),
together with the period start and end dates.
Pots are held at benefit level. A benefit may have more than one pot
on the same policy: an Individual pot for each covered entity, or
a pooled Dependants / Family pot shared across the household.
potScope says which, and coveredEntity is present only on
Individual pots.
By default only pots for the current benefit period are returned
(periodStatus = Active). Pass includeHistoricPeriods=true to also
return Expired and Carried Over periods.
Pass coveredEntityReference to return only the pots that apply to
one covered entity - for example to show one person's remaining
cover. The result holds that covered entity's Individual pots
plus the pooled pots the covered entity shares: every Family pot,
and the Dependants pots when the covered entity's member type is
Dependant. Individual pots of other covered entities are left out.
The covered entity must be on this policy; an unknown reference, or
one that belongs to a different policy, gives 400.
Items are ordered by periodStart descending (current period first),
then benefit.name ascending, then potScope (Individual,
Dependants, Family), then coveredEntity.coveredEntityReference.
Access is subject to object-level authorization: the caller must hold
an active role on the policy. A caller with no active role receives
404, indistinguishable from an unknown reference.
| policyReference required | string External policy reference, example - |
| coveredEntityReference | string External reference of a covered entity on this policy ( |
| includeHistoricPeriods | boolean When
|
{- "data": [
- {
- "benefit": {
- "benefitReference": "string",
- "name": "string"
}, - "potScope": "string",
- "coveredEntity": {
- "coveredEntityReference": "string",
- "name": "string"
}, - "periodStart": "string",
- "periodEnd": "string",
- "periodStatus": "string",
- "currency": "string",
- "initialAllocation": 0,
- "carryOverAmount": 0,
- "adjustmentAmount": 0,
- "claimedAmount": 0,
- "clawbackAmount": 0,
- "remainingBalance": 0,
- "sharedPoolPerPersonCap": 0,
- "lastUpdatedOn": "string"
}
], - "meta": {
- "requestId": "string",
- "timestamp": "string",
- "apiVersion": "string",
- "warnings": [
- {
- "code": "string",
- "message": "string"
}
]
}
}Returns the list of active portal role assignments held by the customer. The API derives the Entra object identifier (oid) from the bearer
token and resolves the matching PortalUser records, filtering
to those marked active.
A single Entra identity may hold multiple portal role assignments (for
example, a Customer who is also a SchemeAdministrator on a corporate scheme).
Each assignment is returned as a discrete PortalRole entry.
An authenticated caller with no active portal role assignments receives a
200 OK response with data: []. This is not an error condition — it
indicates a recognised identity that has not yet been onboarded to any
portal role.
This endpoint is the canonical mechanism for portals and broker integrations to discover the caller's available contexts after sign-in. It does not require a path parameter; identity is taken from the bearer token alone.
| pageSize | integer <int32> Number of portal role assignments to return per page, between 1 and 5000. Optional on the first request, where it defaults to 25. Required whenever 'nextPage' is supplied, and must repeat the value used for the first request - the page size cannot change part-way through a paging sequence. |
| nextPage | string Opaque cursor taken from 'pagination.nextPage' of the previous response. Omit to retrieve the first page; echo the value verbatim and do not parse it. |
{- "data": [
- {
- "portalUserId": "string",
- "externalId": "string",
- "name": "string",
- "email": "string",
- "entraObjectId": "string",
- "role": "string",
- "tenantType": "string",
- "isActive": true,
- "lastLogin": "string",
- "person": {
- "contactId": "string",
- "externalId": "string",
- "firstName": "string",
- "lastName": "string",
- "fullName": "string",
- "email": "string"
}, - "organisation": {
- "organisationId": "string",
- "externalId": "string",
- "name": "string"
}
}
], - "pagination": {
- "nextPage": "string",
- "pageSize": 0,
- "totalItems": 0
}, - "meta": {
- "requestId": "string",
- "timestamp": "string",
- "apiVersion": "string",
- "warnings": [
- {
- "code": "string",
- "message": "string"
}
]
}
}Returns the schemes the authenticated caller has access to. Access is granted
via the caller's portal-role scheme assignments. The caller's Entra object
identifier (oid) is resolved from the bearer token; no path parameter is
required. An authenticated caller with no scheme grants receives 200 with an
empty list.
| pageSize | integer <int32> Number of schemes to return per page, between 1 and 5000. Optional on the first request, where it defaults to 25. Required whenever 'nextPage' is supplied, and must repeat the value used for the first request - the page size cannot change part-way through a paging sequence. |
| nextPage | string Opaque cursor taken from 'pagination.nextPage' of the previous response. Omit to retrieve the first page; echo the value verbatim and do not parse it. |
{- "data": [
- {
- "schemeReference": "string",
- "name": "string",
- "organisation": {
- "reference": "string",
- "name": "string"
}, - "effectiveFrom": "string",
- "effectiveTo": "string"
}
], - "pagination": {
- "nextPage": "string",
- "pageSize": 0,
- "totalItems": 0
}, - "meta": {
- "requestId": "string",
- "timestamp": "string",
- "apiVersion": "string",
- "warnings": [
- {
- "code": "string",
- "message": "string"
}
]
}
}Returns a single collection belonging to the scheme, addressed by its collection reference. Provides the header detail (due date, status, member count and totals) for the collection drill-down.
| schemeReference required | string Scheme reference (e.g. SCH000000000). |
| schemeCollectionReference required | string External identifier of the scheme collection. Obtain it from
|
{- "data": {
- "schemeCollectionReference": "string",
- "name": "string",
- "dueDate": "string",
- "collectedDate": "string",
- "collectionStatus": "string",
- "memberCount": 0,
- "totalAmount": {
- "amount": 0,
- "currencyCode": "string"
}, - "collectedAmount": {
- "amount": 0,
- "currencyCode": "string"
}, - "isActive": true
}, - "meta": {
- "requestId": "string",
- "timestamp": "string",
- "apiVersion": "string",
- "warnings": [
- {
- "code": "string",
- "message": "string"
}
]
}
}Returns the per-policy breakdown of a single scheme collection: the policies
the collection is (or will be) applied to, and the amount attributed to each.
The collection must belong to the scheme in the path; otherwise 404 is
returned so a caller cannot read another scheme's breakdown.
| schemeReference required | string Scheme reference (e.g. SCH000000000). |
| schemeCollectionReference required | string External identifier of the scheme collection. Obtain it from
|
| pageSize | integer <int32> Number of breakdown lines to return per page, between 1 and 5000. Optional on the first request, where it defaults to 25. Required whenever 'nextPage' is supplied, and must repeat the value used for the first request. |
| nextPage | string Opaque cursor taken from 'pagination.nextPage' of the previous response. Omit to retrieve the first page; echo the value verbatim and do not parse it. |
{- "data": [
- {
- "name": "string",
- "policyReference": "string",
- "amount": {
- "amount": 0,
- "currencyCode": "string"
}, - "grossAmount": {
- "amount": 0,
- "currencyCode": "string"
}, - "taxAmount": {
- "amount": 0,
- "currencyCode": "string"
}, - "isActive": true
}
], - "pagination": {
- "nextPage": "string",
- "pageSize": 0,
- "totalItems": 0
}, - "meta": {
- "requestId": "string",
- "timestamp": "string",
- "apiVersion": "string",
- "warnings": [
- {
- "code": "string",
- "message": "string"
}
]
}
}Retrieve a page of the collection schedules of a scheme the caller administers - the plan behind the scheme premium collection. Ordered by start date, most recent first. Authorisation: 403 when the caller holds no grant on the scheme - or the scheme is unknown or soft-deleted, which are indistinguishable so scheme references cannot be enumerated; 404 when the caller does not resolve to a portal identity; 410 when that identity is inactive.
| schemeReference required | string Scheme reference (e.g. SCH000000000). |
| pageSize | integer <int32> Number of schedules to return per page, between 1 and 5000. Optional on the first request, where it defaults to 25. Required whenever 'nextPage' is supplied, and must repeat the value used for the first request. |
| nextPage | string Opaque cursor taken from 'pagination.nextPage' of the previous response. Omit to retrieve the first page; echo the value verbatim and do not parse it. |
{- "data": [
- {
- "schemeCollectionScheduleReference": "string",
- "name": "string",
- "startDate": "string",
- "endDate": "string",
- "collectionDay": 0,
- "paymentFrequency": "string",
- "paymentMethod": {
- "reference": "string",
- "name": "string"
}, - "isActive": true
}
], - "pagination": {
- "nextPage": "string",
- "pageSize": 0,
- "totalItems": 0
}, - "meta": {
- "requestId": "string",
- "timestamp": "string",
- "apiVersion": "string",
- "warnings": [
- {
- "code": "string",
- "message": "string"
}
]
}
}Returns the collection history for the scheme, most recent due date first.
Both past and forthcoming collections are included; a forthcoming collection
has no collectedDate. Optionally narrowed by due-date range and status.
| schemeReference required | string Scheme reference (e.g. SCH000000000). |
| dueDateFrom | string Include only collections whose |
| dueDateTo | string Include only collections whose |
| collectionStatus | string Include only collections with this status. |
| pageSize | integer <int32> Number of collections to return per page, between 1 and 5000. Optional on the first request, where it defaults to 25. Required whenever 'nextPage' is supplied, and must repeat the value used for the first request. |
| nextPage | string Opaque cursor taken from 'pagination.nextPage' of the previous response. Omit to retrieve the first page; echo the value verbatim and do not parse it. The filters must be repeated unchanged alongside it. |
{- "data": [
- {
- "schemeCollectionReference": "string",
- "name": "string",
- "dueDate": "string",
- "collectedDate": "string",
- "collectionStatus": "string",
- "memberCount": 0,
- "totalAmount": {
- "amount": 0,
- "currencyCode": "string"
}, - "collectedAmount": {
- "amount": 0,
- "currencyCode": "string"
}, - "isActive": true
}
], - "pagination": {
- "nextPage": "string",
- "pageSize": 0,
- "totalItems": 0
}, - "meta": {
- "requestId": "string",
- "timestamp": "string",
- "apiVersion": "string",
- "warnings": [
- {
- "code": "string",
- "message": "string"
}
]
}
}Returns a single invoice raised against the scheme, addressed by its invoice reference. Provides the header detail (invoice number, dates, status and amounts) for the invoice drill-down.
| schemeReference required | string Scheme reference (e.g. SCH000000000). |
| invoiceReference required | string External identifier of the invoice. Obtain it from |
{- "data": {
- "invoiceReference": "string",
- "invoiceNumber": "string",
- "invoiceDate": "string",
- "dueDate": "string",
- "paidDate": "string",
- "invoiceStatus": "string",
- "grossAmount": {
- "amount": 0,
- "currencyCode": "string"
}, - "netAmount": {
- "amount": 0,
- "currencyCode": "string"
}, - "taxAmount": {
- "amount": 0,
- "currencyCode": "string"
}, - "paidAmount": {
- "amount": 0,
- "currencyCode": "string"
}
}, - "meta": {
- "requestId": "string",
- "timestamp": "string",
- "apiVersion": "string",
- "warnings": [
- {
- "code": "string",
- "message": "string"
}
]
}
}Returns the per-policy breakdown of a single invoice: the policies the
invoice covers, and the amount attributed to each. The breakdown is resolved
through the collection the invoice was raised for. The invoice must belong to
the scheme in the path; otherwise 404 is returned. An invoice that is not
linked to a collection returns an empty list.
| schemeReference required | string Scheme reference (e.g. SCH000000000). |
| invoiceReference required | string External identifier of the invoice. Obtain it from |
| pageSize | integer <int32> Number of breakdown lines to return per page, between 1 and 5000. Optional on the first request, where it defaults to 25. Required whenever 'nextPage' is supplied, and must repeat the value used for the first request. |
| nextPage | string Opaque cursor taken from 'pagination.nextPage' of the previous response. Omit to retrieve the first page; echo the value verbatim and do not parse it. |
{- "data": [
- {
- "name": "string",
- "policyReference": "string",
- "amount": {
- "amount": 0,
- "currencyCode": "string"
}, - "grossAmount": {
- "amount": 0,
- "currencyCode": "string"
}, - "taxAmount": {
- "amount": 0,
- "currencyCode": "string"
}, - "isActive": true
}
], - "pagination": {
- "nextPage": "string",
- "pageSize": 0,
- "totalItems": 0
}, - "meta": {
- "requestId": "string",
- "timestamp": "string",
- "apiVersion": "string",
- "warnings": [
- {
- "code": "string",
- "message": "string"
}
]
}
}Returns the invoices raised against the scheme, most recent invoice date first. Optionally narrowed by invoice-date range and status.
| schemeReference required | string Scheme reference (e.g. SCH000000000). |
| invoiceDateFrom | string Include only invoices whose |
| invoiceDateTo | string Include only invoices whose |
| invoiceStatus | string Include only invoices with this status. |
| pageSize | integer <int32> Number of invoices to return per page, between 1 and 5000. Optional on the first request, where it defaults to 25. Required whenever 'nextPage' is supplied, and must repeat the value used for the first request. |
| nextPage | string Opaque cursor taken from 'pagination.nextPage' of the previous response. Omit to retrieve the first page; echo the value verbatim and do not parse it. The filters must be repeated unchanged alongside it. |
{- "data": [
- {
- "invoiceReference": "string",
- "invoiceNumber": "string",
- "invoiceDate": "string",
- "dueDate": "string",
- "paidDate": "string",
- "invoiceStatus": "string",
- "grossAmount": {
- "amount": 0,
- "currencyCode": "string"
}, - "netAmount": {
- "amount": 0,
- "currencyCode": "string"
}, - "taxAmount": {
- "amount": 0,
- "currencyCode": "string"
}, - "paidAmount": {
- "amount": 0,
- "currencyCode": "string"
}
}
], - "pagination": {
- "nextPage": "string",
- "pageSize": 0,
- "totalItems": 0
}, - "meta": {
- "requestId": "string",
- "timestamp": "string",
- "apiVersion": "string",
- "warnings": [
- {
- "code": "string",
- "message": "string"
}
]
}
}Adds a member to the scheme. firstName, lastName, employeeNumber and email are all required so the member can be matched against existing Person records (a Person is created if none matches). enrolmentDate is set from effectiveDate; the member starts pending.
| externalId required | string Scheme reference (^SCH\d{9}$, e.g. SCH000000000). |
| firstName | string |
| lastName | string |
| employeeNumber | string |
string | |
| effectiveDate | string The enrolment (effective) date for the member. |
| memberType | string |
{- "firstName": "string",
- "lastName": "string",
- "employeeNumber": "string",
- "email": "string",
- "effectiveDate": "string",
- "memberType": "string"
}{- "data": {
- "schemeMemberReference": "string",
- "employeeNumber": "string",
- "personExternalId": "string",
- "firstName": "string",
- "lastName": "string",
- "email": "string",
- "memberType": "string",
- "memberStatus": "string",
- "isActive": true,
- "enrolmentDate": "string",
- "terminationDate": "string",
- "level": {
- "reference": "string",
- "name": "string"
}, - "policyReference": "string",
- "createdAt": "string",
- "modifiedAt": "string"
}, - "meta": {
- "requestId": "string",
- "timestamp": "string",
- "apiVersion": "string",
- "warnings": [
- {
- "code": "string",
- "message": "string"
}
]
}
}Retrieve a page of the members of a scheme the caller administers. Members of every status are returned, including terminated and opted-out. Ordered by employee number. Authorisation: 403 when the caller holds no grant on the scheme - or the scheme is unknown - which are indistinguishable so scheme references cannot be enumerated; 404 when the caller does not resolve to a portal identity; 410 when that identity is inactive.
| externalId required | string Scheme reference (^SCH\d{9}$, e.g. SCH000000000). |
| pageSize | integer <int32> Number of members to return per page, between 1 and 5000. Optional on the first request, where it defaults to 25. Required whenever 'nextPage' is supplied, and must repeat the value used for the first request - the page size cannot change part-way through a paging sequence. |
| nextPage | string Opaque cursor taken from 'pagination.nextPage' of the previous response. Omit to retrieve the first page; echo the value verbatim and do not parse it. |
{- "data": [
- {
- "schemeMemberReference": "string",
- "employeeNumber": "string",
- "personExternalId": "string",
- "firstName": "string",
- "lastName": "string",
- "email": "string",
- "memberType": "string",
- "memberStatus": "string",
- "isActive": true,
- "enrolmentDate": "string",
- "terminationDate": "string",
- "level": {
- "reference": "string",
- "name": "string"
}, - "policyReference": "string",
- "createdAt": "string",
- "modifiedAt": "string"
}
], - "pagination": {
- "nextPage": "string",
- "pageSize": 0,
- "totalItems": 0
}, - "meta": {
- "requestId": "string",
- "timestamp": "string",
- "apiVersion": "string",
- "warnings": [
- {
- "code": "string",
- "message": "string"
}
]
}
}Removes (terminates) a member from the scheme, identified by the unique scheme member reference, with the given effective date. Soft termination: sets terminationDate and status=terminated, preserving the record for audit. The reference resolves to exactly one member within the scheme, so removal is unambiguous even when employee numbers are duplicated.
| externalId required | string Scheme reference (^SCH\d{9}$). |
| schemeMemberReference required | string Unique external-facing identifier of the scheme member to remove. Obtain it from the list-members or add-member response. |
| effectiveDate required | string Effective (termination) date for removing the member. |
| If-Match | string Optimistic concurrency control. Use '*' to require the resource to exist, or provide an ETag from a previous GET. |
{- "type": "string",
- "title": "string",
- "status": 0,
- "detail": "string",
- "instance": "string",
- "code": "string",
- "errors": [
- {
- "field": "string",
- "code": "string",
- "message": "string"
}
]
}Starts a claim against the policy by returning a draft to work in. Drafts
are persistent: if the caller already has an open draft claim for this
policy, that existing draft is returned (200); otherwise a new empty
draft is created (201). The policy is taken from the path, so no request
body is required. Returns only the claim reference.
| policyReference required | string Policy Reference Number |
{- "data": {
- "claimReference": "string"
}, - "meta": {
- "requestId": "string",
- "timestamp": "string",
- "apiVersion": "string",
- "warnings": [
- {
- "code": "string",
- "message": "string"
}
]
}
}Resolve the caller at the edge, then add a line item to a draft claim the caller may see.
| claimReference required | string Claim Reference Number |
| benefitReference | string Reference of the selected benefit, from the mapped benefit dropdown |
| claimantReference | string Reference of the covered entity (claimant) this line item is for, selected from the policy's covered entities. |
| claimDate | string |
| benefitDate | string Date the benefit is claimed for ( |
| totalCost | number <double> Amount claimed for this line, supplied by the caller. Required, positive money value. Used for the benefit-pot balance check (compared against the pot's remaining balance to accept or reject the claim). This is the amount claimed, not the payable amount — totalAmountCovered (after cover limits/excess/co-pay) is derived server-side in a later iteration and is out of scope. Trusted here because the operation only accepts/rejects and moves no money. |
| invoiceReference | string |
{- "benefitReference": "string",
- "claimantReference": "string",
- "claimDate": "string",
- "benefitDate": "string",
- "totalCost": 0,
- "invoiceReference": "string"
}{- "data": {
- "claimLineItemReference": "string",
- "name": "string",
- "lineStatus": "string",
- "claimDate": "string",
- "benefitDate": "string",
- "totalCost": 0,
- "totalAmountCovered": 0,
- "excessApplied": 0,
- "copayApplied": 0,
- "invoiceReference": "string",
- "externalId": "string",
- "benefit": {
- "benefitReference": "string",
- "name": "string"
}, - "claimant": {
- "coveredEntityReference": "string",
- "name": "string"
}
}, - "meta": {
- "requestId": "string",
- "timestamp": "string",
- "apiVersion": "string",
- "warnings": [
- {
- "code": "string",
- "message": "string"
}
]
}
}Retrieve the claims raised against a policy the caller may see, as normalised summaries. Optionally narrowed by claim status and by creation-date range.
| policyReference required | string Policy Reference Number |
| status | string Return only claims in this status. One of: DRAFT, CANCELLED, ABANDONED, SUBMITTED, IN_PROGRESS, FLAGGED_FOR_REVIEW, IN_REVIEW, ON_HOLD, REJECTED, ACCEPTED. Matched case-insensitively. |
| createdFrom | string Return only claims created at or after this ISO-8601 date-time, e.g. 2026-01-01T00:00:00Z. |
| createdTo | string Return only claims created at or before this ISO-8601 date-time, e.g. 2026-01-31T23:59:59Z. Must not be earlier than 'createdFrom'. |
| pageSize | integer <int32> Number of claims to return per page, between 1 and 5000. Optional on the first request, where it defaults to 25. Required whenever 'nextPage' is supplied, and must repeat the value used for the first request - the page size cannot change part-way through a paging sequence. |
| nextPage | string Opaque cursor taken from 'pagination.nextPage' of the previous response. Omit to retrieve the first page; echo the value verbatim and do not parse it. |
{- "data": [
- {
- "claimReference": "string",
- "name": "string",
- "status": "string",
- "subStatus": "string",
- "totalAmountClaimed": 0,
- "totalAmountCovered": 0,
- "lineItemCount": 0,
- "createdAt": "string",
- "updatedAt": "string"
}
], - "pagination": {
- "nextPage": "string",
- "pageSize": 0,
- "totalItems": 0
}, - "meta": {
- "requestId": "string",
- "timestamp": "string",
- "apiVersion": "string",
- "warnings": [
- {
- "code": "string",
- "message": "string"
}
]
}
}Resolve the caller at the edge, then create and submit a complete claim (header + line items) against a policy the caller may see in a single request.
| policyReference required | string Policy Reference Number |
| name | string |
| totalAmountClaimed | number or null <double> |
| payoutBasis | string |
| externalId | string |
Array of objects (createClaimLineItemRequest) |
{- "name": "string",
- "totalAmountClaimed": 0,
- "payoutBasis": "string",
- "externalId": "string",
- "lineItems": [
- {
- "benefitReference": "string",
- "claimantReference": "string",
- "claimDate": "string",
- "benefitDate": "string",
- "totalCost": 0,
- "invoiceReference": "string"
}
]
}{- "data": {
- "claimReference": "string",
- "name": "string",
- "status": "string",
- "rejectionReason": "string",
- "payoutBasis": "string",
- "totalAmountClaimed": 0,
- "policyReference": "string",
- "lineItems": [
- {
- "claimLineItemReference": "string",
- "name": "string",
- "lineStatus": "string",
- "claimDate": "string",
- "benefitDate": "string",
- "totalCost": 0,
- "totalAmountCovered": 0,
- "excessApplied": 0,
- "copayApplied": 0,
- "invoiceReference": "string",
- "externalId": "string",
- "benefit": {
- "benefitReference": "string",
- "name": "string"
}, - "claimant": {
- "coveredEntityReference": "string",
- "name": "string"
}
}
]
}, - "meta": {
- "requestId": "string",
- "timestamp": "string",
- "apiVersion": "string",
- "warnings": [
- {
- "code": "string",
- "message": "string"
}
]
}
}Resolve the caller at the edge, then apply a partial update to a line item on a claim the caller may see. Only the supplied properties change; a property sent as null is cleared.
| claimReference required | string Claim Reference Number |
| claimLineItemReference required | string Claim Line Item Reference Number |
| name | string |
| claimDate | string |
| benefitDate | string |
| totalCost | number or null <double> |
| totalAmountCovered | number or null <double> |
| excessApplied | number or null <double> |
| copayApplied | number or null <double> |
| invoiceReference | string |
| benefitReference | string |
| claimantReference | string |
{- "name": "string",
- "claimDate": "string",
- "benefitDate": "string",
- "totalCost": 0,
- "totalAmountCovered": 0,
- "excessApplied": 0,
- "copayApplied": 0,
- "invoiceReference": "string",
- "benefitReference": "string",
- "claimantReference": "string"
}{- "data": {
- "claimLineItemReference": "string",
- "name": "string",
- "lineStatus": "string",
- "claimDate": "string",
- "benefitDate": "string",
- "totalCost": 0,
- "totalAmountCovered": 0,
- "excessApplied": 0,
- "copayApplied": 0,
- "invoiceReference": "string",
- "externalId": "string",
- "benefit": {
- "benefitReference": "string",
- "name": "string"
}, - "claimant": {
- "coveredEntityReference": "string",
- "name": "string"
}
}, - "meta": {
- "requestId": "string",
- "timestamp": "string",
- "apiVersion": "string",
- "warnings": [
- {
- "code": "string",
- "message": "string"
}
]
}
}Searches the claims on a policy for line items matching the supplied details, so a duplicate can be found before it is paid. Supply the claimant and at least one of the benefit, claim date, benefit date and cost. Every criterion must match exactly. Line items on claims of every status are returned; the caller decides which matter. Read-only. At most 50 matches are returned, with a RESULT_TRUNCATED warning when more exist.
| policyReference required | string Reference of the policy to search, for example POL-0000010031. |
| claimantReference required | string Covered entity reference of the claimant. Must be a covered entity on this policy. |
| benefitReference | string Benefit of the line item. Must exist. Exact match. |
| claimDate | string Claim date of the line item, as YYYY-MM-DD. Exact match. |
| benefitDate | string Date the benefit is claimed for, as YYYY-MM-DD. Exact match. |
| totalCost | number <double> Cost of the line item, to at most 2 decimal places. Exact match. |
| excludeClaimLineItemReference | string Line item being examined. It is left out of the result so it cannot match itself. |
{- "data": [
- {
- "claimReference": "string",
- "claimStatus": "string",
- "claimSubStatus": "string",
- "rejectionReason": "string",
- "claimCreatedAt": "string",
- "claimLineItemReference": "string",
- "lineStatus": "string",
- "claimDate": "string",
- "benefitDate": "string",
- "totalCost": 0,
- "totalAmountCovered": 0,
- "invoiceReference": "string",
- "benefit": {
- "benefitReference": "string",
- "name": "string"
}, - "claimant": {
- "coveredEntityReference": "string",
- "name": "string"
}
}
], - "meta": {
- "requestId": "string",
- "timestamp": "string",
- "apiVersion": "string",
- "warnings": [
- {
- "code": "string",
- "message": "string"
}
]
}
}Returns the events attached to the organisation, most recent first. An event
is a generic record that can be attached to one or more people, organisations
or policies through event associations; this endpoint returns the events with
an active association to the organisation identified in the path. Use the
type query parameter to filter to a single event type.
The caller must hold a current portal-user grant to the organisation. An
organisation that does not exist and an organisation the caller is not
granted both return 404, so organisation existence is not disclosed.
| externalId required | string |
| type | string Include only events of this type. A value outside the enum gives |
| pageSize | integer <int32> Number of events to return per page, between 1 and 5000. Optional on the first request, where it defaults to 25. Required whenever 'nextPage' is supplied, and must repeat the value used for the first request - the page size cannot change part-way through a paging sequence. |
| nextPage | string Opaque cursor taken from 'pagination.nextPage' of the previous response. Omit to retrieve the first page; echo the value verbatim and do not parse it. |
{- "data": [
- {
- "externalId": "string",
- "name": "string",
- "eventType": "string",
- "description": "string",
- "effectiveDate": "string",
- "visibleOnPortals": true,
- "personExternalId": "string",
- "organisationExternalId": "string",
- "createdAt": "string",
- "modifiedAt": "string"
}
], - "pagination": {
- "nextPage": "string",
- "pageSize": 0,
- "totalItems": 0
}, - "meta": {
- "requestId": "string",
- "timestamp": "string",
- "apiVersion": "string",
- "warnings": [
- {
- "code": "string",
- "message": "string"
}
]
}
}