Every API here is available over the APIs.io API and to AI agents over MCP.
openapi: 3.2.0
info:
title: Submission API
description: This API collection enables Underwriters to retrieve information about Submission requests that have been supplied by a Broker as well as manage their negotiation of terms of cover.
version: '1'
servers:
- url: https://sand-api.londonmarketgroup.co.uk/ppl/nextgen/submissions
description: Joint Integration testing (JIT2) environment
tags:
- name: submission
description: Enables the retrieval of Submissions for Underwriters.
paths:
/submissions:
get:
tags:
- submission
description: Returns a list of all Submission records based upon various query parameters. Pagination functionality is supported on this operation.
operationId: Submission_GetAll_v1
parameters:
- name: X-Auth-Impersonated-User
in: header
description: The email address of the Requesting User or the Impersonated User.
schema:
type: string
pattern: ^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$
- name: X-Auth-Team
in: header
description: A list of system-generated unique identifiers for each Underwriter Team, with a format and structure defined by the technology used.
required: true
schema:
pattern: ^(?:[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12})(?:,[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12})*$
type: array
items:
type: string
- name: createdDate
in: query
description: 'The date timestamp when the entity was created.
Search using range method, e.g. createdDate=range(date1,date2).'
schema:
type: string
pattern: ^range\(\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{3}Z,\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{3}Z\)$
- name: modifiedDate
in: query
description: 'The date timestamp when the entity was modified.
Search using range method, e.g. modifiedDate=range(date1,date2).'
schema:
type: string
pattern: ^range\(\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{3}Z,\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{3}Z\)$
- name: clientName
in: query
description: "The name by which the Broker User knows the client for the purposes of seeking insurance. \nSearch using contains method, e.g. clientName=contains(astring)."
schema:
type: string
pattern: ^contains\(.{1,40}\)$
- name: brokerTeamName
in: query
description: "The name of the Broker Team, as defined by the broker organisation. \nSearch using contains method, e.g. brokerTeamName=contains(astring)."
schema:
type: string
pattern: ^contains\(.{1,256}\)$
- name: brokerOrganisationName
in: query
description: 'Name of the Organisation the User belongs to.
Search using contains method, e.g. brokerOrganisationName=contains(astring).'
schema:
type: string
pattern: ^contains\(.{1,256}\)$
- name: brokerCompanyName
in: query
description: 'Name of the Company the User belongs to.
Search using contains method, e.g. brokerCompanyName=contains(astring).'
schema:
type: string
pattern: ^contains\(.{1,256}\)$
- name: brokerUserEmail
in: query
description: 'The User email of the broker User.
Search using multiple exact match method, e.g. brokerUserEmail=email1,email2,email3.'
schema:
type: string
pattern: ^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+(,[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+)*$
- name: brokerFirstName
in: query
description: 'The first name of the Broker User.
Search using contains method, e.g. brokerFirstName=contains(astring).'
schema:
type: string
pattern: ^contains\(.{1,30}\)$
- name: brokerLastName
in: query
description: 'The last name of the Broker User.
Search using contains method, e.g. brokerLastName=contains(astring).'
schema:
type: string
pattern: ^contains\(.{1,30}\)$
- name: underwriterTeamId
in: query
description: 'A system-generated unique identifier for an Underwriter Team, with a format and structure defined by the technology used.
Search using multiple exact match method, e.g. underwriterTeamId=id1,id2,id3.'
schema:
type: string
pattern: ^(?:[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12})(?:,[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12})*$
- name: underwriterTeamName
in: query
description: 'The name of the Underwriter Team, as defined by the underwriter organisation.
Search using contains method, e.g. underwriterTeamName=contains(astring).'
schema:
type: string
pattern: ^contains\(.{1,256}\)$
- name: underwriterCompanyName
in: query
description: 'Name of the Company the User belongs to.
Search using contains method, e.g. underwriterCompanyName=contains(astring).'
schema:
type: string
pattern: ^contains\(.{1,256}\)$
- name: underwriterUserEmail
in: query
description: 'The User email of the underwriter User.
Search using multiple exact match method, e.g. underwriterUserEmail=email1,email2,email3.'
schema:
type: string
pattern: ^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+(,[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+)*$
- name: underwriterFirstName
in: query
description: 'The first name of the Underwriter User.
Search using contains method, e.g. underwriterFirstName=contains(astring).'
schema:
type: string
pattern: ^contains\(.{1,30}\)$
- name: underwriterLastName
in: query
description: 'The last name of the Underwriter User.
Search using contains method, e.g. underwriterLastName=contains(astring).'
schema:
type: string
pattern: ^contains\(.{1,30}\)$
- name: type
in: query
description: 'The type of the Submission.
Search using multiple exact match method, e.g. type=code1,code2,code3.'
schema:
type: string
pattern: ^(.*)(,.*)*$
- name: status
in: query
description: 'The status of the Submission.
Search using multiple exact match method, e.g. status=code1,code2,code3.'
schema:
type: string
pattern: ^(.*)(,.*)*$
- name: receivedDate
in: query
description: 'The date and timestamp when the Submission.
Search using range method, e.g. receivedDate=range(date1,date2).'
schema:
type: string
pattern: ^range\(\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{3}Z,\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{3}Z\)$
- name: description
in: query
description: 'A description of the Contract supplied by the Broker.
Search using contains method, e.g. description=contains(astring).'
schema:
type: string
pattern: ^contains\(.{1,256}\)$
- name: uniqueMarketReference
in: query
description: 'The reference allocated by the broker to identify the Contract for use within the placement process, as a concatenation of the Broker Code and Broker Contract Reference.
Search using multiple exact match method, e.g. uniqueMarketReference=umr1,umr2,umr3.'
schema:
type: string
pattern: ^(B\d{4}[A-Z0-9]{1,12})(,B\d{4}[A-Z0-9]{1,12})*$
- name: sectionStatus
in: query
description: 'The code that represents the Section status.
Search using multiple exact match method, e.g. sectionStatus=code1,code2,code3.'
schema:
type: string
pattern: ^(.*)(,.*)*$
- name: inceptionDate
in: query
description: 'The date on which the (re)insurance contract/section comes into force.
Search using range method, e.g. inceptionDate=range(date1,date2).'
schema:
type: string
pattern: ^range\(\d{4}-\d{2}-\d{2},\d{4}-\d{2}-\d{2}\)$
- name: expiryDate
in: query
description: 'The date on which the (re)insurance Contract or Section ceases cover.
Search using range method, e.g. expiryDate=range(date1,date2).'
schema:
type: string
pattern: ^range\(\d{4}-\d{2}-\d{2},\d{4}-\d{2}-\d{2}\)$
- name: sort
in: query
description: 'Sorting field and order (unique field only).
Use + before the field name for ascending order, use - for descending order.'
schema:
type: string
pattern: ^[+-]?\w+$
- name: pageNumber
in: query
description: Number of the page to be retrieved.
schema:
type: integer
format: int32
minimum: 1
example: 1
- name: pageSize
in: query
description: Size of the page to be retrieved.
schema:
type: integer
format: int32
minimum: 1
maximum: 200
example: 200
- name: submissionId
in: query
description: 'A system-generated unique identifier for a Submission, with a format and structure defined by the technology used.
Search using multiple exact match method, e.g. submissionId=id1,id2,id3.'
schema:
type: string
pattern: ^(?:[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12})(?:,[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}){0,9}$
- name: contractId
in: query
description: 'A system-generated unique identifier for a Contract, with a format and structure defined by the technology used.
Search using multiple exact match method, e.g. contractId=id1,id2,id3.'
schema:
type: string
pattern: ^(?:[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12})(?:,[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}){0,9}$
- name: sectionId
in: query
description: 'A system-generated unique identifier for a Section, with a format and structure defined by the technology used.
Search using multiple exact match method, e.g. sectionId=id1,id2,id3.'
schema:
type: string
pattern: ^(?:[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12})(?:,[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}){0,9}$
responses:
'200':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/response_submissions_getall'
'400':
description: Mandatory header parameter is missing from the request.
content:
application/json:
schema:
$ref: '#/components/schemas/error_document'
'401':
description: Authentication error.
content:
application/json:
schema:
$ref: '#/components/schemas/error_document'
'404':
description: Invalid team or user.
content:
application/json:
schema:
$ref: '#/components/schemas/error_document'
'414':
description: The maximum field length of the URI provided for the request has been exceeded.
content:
application/json:
schema:
$ref: '#/components/schemas/error_document'
'429':
description: Too many requests.
content:
application/json:
schema:
$ref: '#/components/schemas/error_document'
'500':
description: Internal server error
content:
application/json:
schema:
$ref: '#/components/schemas/error_document'
/submissions/{submissionId}:
get:
tags:
- submission
description: Returns a single Submission record. This record includes structured data pertaining to a single Contract offering (and any subsequent Sections, if applicable) as well as references to download (1) the Market Reform Contract (MRC) document; and (2) any associated Supporting Documents. Collectively the information presents an offer for consideration.
operationId: Submission_GetById_v1
parameters:
- name: X-Auth-Impersonated-User
in: header
description: The email address of the Requesting User or the Impersonated User.
schema:
type: string
pattern: ^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$
- name: X-Auth-Team
in: header
description: A system-generated unique identifier for a Underwriter Team, with a format and structure defined by the technology used.
required: true
schema:
type: string
pattern: ^[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}$
- name: submissionId
in: path
description: A system-generated unique identifier for a Submission, with a format and structure defined by the technology used.
required: true
schema:
type: string
pattern: ^[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}$
responses:
'200':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/submission_getbyid'
'400':
description: Mandatory header parameter is missing from the request.
content:
application/json:
schema:
$ref: '#/components/schemas/error_document'
'401':
description: Authentication error.
content:
application/json:
schema:
$ref: '#/components/schemas/error_document'
'404':
description: Invalid team or user.
content:
application/json:
schema:
$ref: '#/components/schemas/error_document'
'414':
description: The maximum field length of the URI provided for the request has been exceeded.
content:
application/json:
schema:
$ref: '#/components/schemas/error_document'
'429':
description: Too many requests.
content:
application/json:
schema:
$ref: '#/components/schemas/error_document'
'500':
description: Internal server error
content:
application/json:
schema:
$ref: '#/components/schemas/error_document'
/submissions/{submissionId}/send:
post:
tags:
- submission
description: Initiates the operation to send the latest Underwriter responses as part of a response to a Submission back to the Broker. The outcome of each Negotiation will either (1) agree unconditionally to the terms; (2) conditionally agree upon a change of terms; or (3) decline the offer.
operationId: Submission_Send_v1
parameters:
- name: X-Auth-Impersonated-User
in: header
description: The email address of the Requesting User or the Impersonated User.
schema:
type: string
pattern: ^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$
- name: X-Auth-Team
in: header
description: A system-generated unique identifier for a Underwriter Team, with a format and structure defined by the technology used.
required: true
schema:
type: string
pattern: ^[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}$
- name: submissionId
in: path
description: A system-generated unique identifier for a Submission, with a format and structure defined by the technology used.
required: true
schema:
type: string
pattern: ^[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}$
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/submission_send_input'
required: true
responses:
'200':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/submission_send_output'
'400':
description: Mandatory header parameter is missing from the request.
content:
application/json:
schema:
$ref: '#/components/schemas/error_document'
'401':
description: Authentication error.
content:
application/json:
schema:
$ref: '#/components/schemas/error_document'
'404':
description: Invalid team or user.
content:
application/json:
schema:
$ref: '#/components/schemas/error_document'
'414':
description: The maximum field length of the URI provided for the request has been exceeded.
content:
application/json:
schema:
$ref: '#/components/schemas/error_document'
'429':
description: Too many requests.
content:
application/json:
schema:
$ref: '#/components/schemas/error_document'
'500':
description: Internal server error
content:
application/json:
schema:
$ref: '#/components/schemas/error_document'
components:
schemas:
section_excess:
required:
- amount
- basis_type
- currency_code
- type
type: object
properties:
type:
type: string
description: The code that represents the type of excess.
default: ''
currency_code:
type: string
description: The 3-character code that represents the currency in ISO 4217 standard.
default: ''
amount:
type: number
description: The excess amount applicable prior to any liability the insurer has agreed to cover under the terms of the insurance Contract or Section.
example: 0.1
basis_type:
type: string
description: The code that represents the basis of the excess.
default: ''
type_description:
type: string
description: A bespoke description of the excess type, where not provisioned under the existing reference data type codes.
default: ''
basis_description:
type: string
description: A bespoke description of the excess basis type, where not provisioned under the existing reference data basis type codes.
default: ''
additionalProperties: false
description: A collection of data items that represents the Excess(es) applicable prior to any liability the insurer has agreed to cover under the terms of the insurance Contract or Section.
response_submissions_getall:
required:
- count
- page_number
- page_size
- submissions
- total_results
type: object
properties:
submissions:
type: array
description: List of submission retrieved
items:
$ref: '#/components/schemas/submission_getall'
page_number:
type: integer
description: Number of the page retrieved
format: int32
example: 0
page_size:
type: integer
description: Size of the page retrieved
format: int32
example: 0
count:
type: integer
description: The number of records on the current page
format: int32
example: 0
total_results:
type: integer
description: Total number of results
format: int64
example: 1234567891234567
additionalProperties: false
description: ''
submission_contract_getall:
required:
- broker_code
- broker_contract_reference
- contract_id
- description
- sections
- unique_market_reference
type: object
properties:
contract_id:
type: string
description: A system-generated unique identifier for a Contract, with a format and structure defined by the technology used.
default: ''
description:
type: string
description: A description of the Contract supplied by the Broker.
default: ''
broker_code:
type: string
description: A 4-digit Broker code that represents a broker organisation.
default: ''
broker_contract_reference:
type: string
description: The reference allocated by the broker to identify the Contract.
default: ''
unique_market_reference:
type: string
description: The reference allocated by the broker to identify the Contract for use within the placement process, as a concatenation of the Broker Code and Broker Contract Reference.
default: ''
sections:
type: array
description: A representation of a specific partition of the overall risk to be insured. A section can be based upon the cover type, coverage (e.g. class of business) and/or layer (limit of liability).
items:
$ref: '#/components/schemas/submission_section_getall'
additionalProperties: false
description: A collection of insurance Contracts.
underwriter_user:
required:
- user_email
type: object
properties:
user_email:
type: string
description: The email address of the User.
default: ''
first_name:
type: string
description: The first name of the User.
default: ''
last_name:
type: string
description: The last name of the User.
default: ''
additionalProperties: false
description: The User information of the Underwriter User responsible for the Participation.
period_date:
required:
- expiry_date
- inception_date
type: object
properties:
inception_date:
type: string
description: The date on which the (re)insurance Contract or Section comes into force.
format: date
example: '2014-12-31T00:00:00.000Z'
expiry_date:
type: string
description: The date on which the (re)insurance Contract or Section ceases cover.
format: date
example: '2014-12-31T00:00:00.000Z'
qualifier_type:
type: string
description: The code that represents the period qualifier type.
default: ''
qualifier_description:
type: string
description: A description of the period qualifier, captured when there is a no alignment to the reference data code.
default: ''
additionalProperties: false
description: A collection of data items to denote the Contract or Section period using specific dates.
section_binding_information:
type: object
properties:
signed_line_basis:
type: string
description: The basis upon which all signed lines are applied to the Order of a Contract or Section.
default: ''
additionalProperties: false
description: The Binding Information relevant to a Contract or Section.
section_risk:
required:
- allocation_percentage
- risk_code
type: object
properties:
risk_code:
type: string
description: The regulatory code that represents the risk for a risk classification.
default: ''
allocation_percentage:
type: number
description: The percentage of the total premium that is deemed to be the allocation of covering a particular risk code.
example: 0.1
additionalProperties: false
description: A collection of data items to represent the regulatory risk classification for a Contract or Section. Only supports Lloyds Agency Type Risk Codes.
submission_getall:
required:
- broker_team
- broker_user
- client_name
- description
- general_message
- metadata
- placement_type
- programme
- received_date
- status
- submission_id
- submission_type
- underwriter_team
- underwriter_user
type: object
properties:
submission_id:
type: string
description: A system-generated unique identifier for a Submission, with a format and structure defined by the technology used.
default: ''
metadata:
$ref: '#/components/schemas/metadata'
placement_type:
type: string
description: The code that represents the Placement type.
default: ''
client_name:
type: string
description: The name by which the Broker User knows the client for the purposes of seeking insurance.
default: ''
description:
type: string
description: A description of the Placement supplied by the Broker.
default: ''
general_message:
type: string
description: A general message sent to all participating underwriters included in this Submission Pack.
default: ''
broker_team:
$ref: '#/components/schemas/broker_team_org_company_no_id'
broker_user:
$ref: '#/components/schemas/broker_user'
underwriter_team:
$ref: '#/components/schemas/underwriter_team_no_org'
underwriter_user:
$ref: '#/components/schemas/underwriter_user'
submission_type:
type: string
description: The type of the Submission.
default: ''
status:
type: string
description: The status of the Submission.
default: ''
received_date:
type: string
description: The date and timestamp when the Submission.
format: date-time
example: '2014-12-31T00:00:00.000Z'
programme:
$ref: '#/components/schemas/submission_programme_getall'
additionalProperties: false
description: Submission structure for Get All
underwriter_team_no_org:
required:
- company_name
- team_id
- team_name
type: object
properties:
team_id:
type: string
description: A system-generated unique identifier for a Underwriter Team, with a format and structure defined by the technology used.
default: ''
team_name:
type: string
description: The name of the Underwriter Team, as defined by the carrier organisation.
default: ''
company_name:
type: string
description: Name of the Company the User belongs to.
default: ''
additionalProperties: false
description: The Team information of the Underwriter Team responsible for the Participation.
notification:
required:
- category_type
- notification_id
- status
- type
type: object
properties:
notification_id:
type: string
description: A system-generated unique identifier for a Notification, with a format and structure defined by the technology used.
default: ''
category_type:
type: string
description: Identifies the category type of the notification that is being processed in an asynchronous manner.
default: ''
type:
type: string
description: Identifies the type of notification that is being processed in an asynchronous manner.
default: ''
status:
type: string
description: The code that represents the Notification status.
default: ''
additionalProperties: false
description: 'The Notification information relating to the Document. '
submission_section_send:
required:
- section_id
- status
type: object
properties:
section_id:
type: string
description: A system-generated unique identifier for a Section, with a format and structure defined by the technology used.
default: ''
reference:
type: string
description: A reference of the Section supplied by the Broker.
default: ''
description:
type: string
description: A description of the Section supplied by the Broker.
default: ''
status:
type: string
description: The code that represents the Section status.
default: ''
additionalProperties: false
description: A representation of a specific partition of the overall risk to be insured. A section can be based upon the cover type, coverage (e.g. class of business) and/or layer (limit of liability).
submission_contract_getbyid:
required:
- broker_code
- broker_contract_reference
- broker_team
- broker_user
- contract_id
- contract_type
- cover_type
- description
- insureds
- sections
- sequence_number
- status
- unique_market_reference
- version
type: object
properties:
contract_id:
type: string
description: A system-generated unique identifier for a Contract, with a format and structure defined by the technology used.
default: ''
broker_team:
$ref: '#/components/schemas/broker_team_company_no_id'
broker_user:
$ref: '#/components/schemas/broker_user'
sequence_number:
type: integer
description: The sequence number in which the Contracts are ordered.
format: int32
example: 0
description:
type: string
description: A description of the Contract supplied by the Broker.
default: ''
broker_code:
type: string
description: A 4-digit Broker code that represents a broker organisation.
default: ''
broker_contract_reference:
type: string
description: The reference allocated by the broker to identify the Contract.
default: ''
unique_market_reference:
type: string
description: The reference allocated by the broker to identify the Contract for use within the placement process, as a concatenation of the Broker Code and Broker Contract Reference.
default: ''
version:
type: integer
description: The current version of the Contract.
format: int32
example: 0
contract_type:
type: string
description: The code that represents the contract type.
default: ''
cover_type:
type: string
description: The code that represents the cover type.
default: ''
status:
type: string
description: The code that represents the Contract status.
default: ''
insureds:
type: array
description: A collection of individuals or organisations, and their relationship within a contract of insurance.
items:
$ref: '#/components/schemas/contract_insured'
sections:
type: array
description: A representation of a specific partition of the overall risk to be insured. A section can be based upon the cover type, coverage (e.g. class of business) and/or layer (limit of liability).
items:
$ref: '#/components/schemas/submission_section_getbyid'
additionalProperties: false
description: A collection of insurance Contracts.
geographic_coverage:
required:
- code
- type
type: object
properties:
type:
type: string
description: indicates the type of the geographic coverage, either as a single country or a geographic region.
default: ''
code:
type: string
description: The code that represents the value of the country or region based on the geographic coverage type.
# --- truncated at 32 KB (57 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/ppl-london-market/refs/heads/main/openapi/ppl-london-market-submission-api-openapi.yml