PPL

PPL Contract API

Enables the creation and management of Contract structured data.

Operations 6

GET /contracts #
POST /contracts #
GET /contracts/{contractId} #
PUT /contracts/{contractId} #
DELETE /contracts/{contractId} #
POST /contracts/{contractId}/assignRoles #

Documentation

📖
Documentation
https://developer.pplnextgen.com/placements
📖
APIReference
https://developer.pplnextgen.com/Placements/Technical-Model
📖
Documentation
https://developer.pplnextgen.com/Placements/Key-Details-On-API
📖
Documentation
https://developer.pplnextgen.com/Placements/Information-Model
📖
Documentation
https://developer.pplnextgen.com/Placements/Business-Process-Model
📖
Documentation
https://developer.pplnextgen.com/submissions
📖
APIReference
https://developer.pplnextgen.com/Submissions/Technical-Model
📖
Documentation
https://developer.pplnextgen.com/Submissions/Key-Details-On-API
📖
Documentation
https://developer.pplnextgen.com/Submissions/Information-Model
📖
Documentation
https://developer.pplnextgen.com/organisations
📖
APIReference
https://developer.pplnextgen.com/Organisations/Technical-Model
📖
Documentation
https://developer.pplnextgen.com/Organisations/Key-Details-On-API
📖
Documentation
https://developer.pplnextgen.com/Organisations/Information-Model
📖
Documentation
https://developer.pplnextgen.com/documents
📖
APIReference
https://developer.pplnextgen.com/Documents/Technical-Model
📖
Documentation
https://developer.pplnextgen.com/Documents/Key-Details-On-API
📖
Documentation
https://developer.pplnextgen.com/Documents/Information-Model
📖
Documentation
https://developer.pplnextgen.com/events
📖
APIReference
https://developer.pplnextgen.com/Events/Technical-Model
📖
Documentation
https://developer.pplnextgen.com/Events/Key-Details-On-API
📖
Documentation
https://developer.pplnextgen.com/Events/Information-Model

Specifications

Other Resources

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/ppl-london-market-contract-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

ppl-london-market-contract-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: placement Contract API
  description: "This API collection provides the capability to manage aspects of the Placement structure. \nThis includes that overall management of Placements, Programmes, Contracts as well as any Sections within a Contract. This also includes the ability to set up carrier/underwriter participants for insurance placement purposes."
  version: '1'
servers:
- url: https://sand-api.londonmarketgroup.co.uk/ppl/nextgen/placements
  description: Joint Integration testing (JIT2) environment
tags:
- name: contract
  description: Enables the creation and management of Contract structured data.
paths:
  /contracts:
    get:
      tags:
      - contract
      description: Returns a list of Contract records, based upon various query parameters. Pagination functionality is supported on this operation.
      operationId: Contract_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 Broker 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: 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: brokerEmail
        in: query
        description: 'The User email of the Broker User responsible for the Contract.

          Search using multiple exact match method, e.g. brokerEmail=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 responsible for the Contract.

          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 responsible for the Contract.

          Search using contains method, e.g. brokerLastName=contains(astring).'
        schema:
          type: string
          pattern: ^contains\(.{1,30}\)$
      - 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: status
        in: query
        description: 'The code that represents the Contract status.

          Search using multiple exact match method, e.g. status=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: 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: placementId
        in: query
        description: 'A system-generated unique identifier for a Placement, with a format and structure defined by the technology used.

          Search using multiple exact match method, e.g. placementId=id1,id2,id3.'
        schema:
          type: string
          pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})(,[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})*$
      - name: companyName
        in: query
        description: 'Name of the Company the User belongs to.

          Search using contains method, e.g. companyName=contains(astring).'
        schema:
          type: string
          pattern: ^contains\(.{1,256}\)$
      - name: brokerTeamId
        in: query
        description: "A system-generated unique identifier for a Broker Team, with a format and structure defined by the technology used. \nSearch using multiple exact match method, e.g. brokerTeamId=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: 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: contractType
        in: query
        description: 'The code that represents the contract type.

          Search using multiple exact match method, e.g. contractType=code1,code2,code3.'
        schema:
          type: string
          pattern: ^(.*)(,.*)*$
      - name: coverType
        in: query
        description: 'The code that represents the cover type.

          Search using multiple exact match method, e.g. coverType=code1,code2,code3.'
        schema:
          type: string
          pattern: ^(.*)(,.*)*$
      - name: firstSignAndCloseDate
        in: query
        description: 'The date and timestamp of when a contract was first signed and closed.

          Search using range method, e.g. firstSignAndCloseDate=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: productCode
        in: query
        description: 'The code that represents the insurance product under this Contract or Section.

          Search using multiple exact match method, e.g. productCode=code1,code2,code3.'
        schema:
          type: string
          pattern: ^(.*)(,.*)*$
      - 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
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/response_contracts_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'
    post:
      tags:
      - contract
      description: Creates a Contract record under the Placement structure. This will also create the "default" Section of information, which is necessary for adding Underwriters and Facility markets for underwriting purposes.
      operationId: Contract_Post_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 Broker 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}$
      requestBody:
        description: Contract structure for creation.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/contract_post'
        required: true
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/contract_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'
      x-codegen-request-body-name: contract
  /contracts/{contractId}:
    get:
      tags:
      - contract
      description: Returns a single Contract record. This record will contain core Contract information, that includes data attributes that summarise information about the risk to be insured, as well as a summarised list of any Contract Sections that exist within the Contract.
      operationId: Contract_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 Broker 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: contractId
        in: path
        description: A system-generated unique identifier for a Contract, 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/contract_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'
    put:
      tags:
      - contract
      description: Updates the Contract record. This will also update the "default" Section of information.
      operationId: Contract_Put_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 Broker 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: X-Last-Modified
        in: header
        description: The date timestamp to be used to validate an update operation.
        required: true
        schema:
          type: string
          format: date-time
        example: '2014-12-31T23:59:59.938Z'
      - name: contractId
        in: path
        description: A system-generated unique identifier for a Contract, 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:
        description: Contract structure for updates.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/contract_put'
        required: true
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/contract_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'
      x-codegen-request-body-name: contract
    delete:
      tags:
      - contract
      description: Deletes a Contract record, where the record is in a state that enables its deletion.
      operationId: Contract_Delete_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 Broker 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: contractId
        in: path
        description: A system-generated unique identifier for a Contract, 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: {}
        '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'
  /contracts/{contractId}/assignRoles:
    post:
      tags:
      - contract
      description: Initiates the asynchronous operation to assign the contractual roles to Participations and their Stamps on the Contract. Where a specific Slip Leader has been identified, the process will take this into consideration during the assignment process.
      operationId: Contract_AssignRoles_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 Broker Team, with a format and structure defined by the technology used. For most operations, one and only one UUID is expected. Where collection-based operations are involved, comma-separated UUID values may be supplied.
        required: true
        schema:
          type: string
          pattern: ^[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}$
      - name: contractId
        in: path
        description: A system-generated unique identifier for a Contract, 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:
        description: Contract input structure for assign roles.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/contract_assignroles'
        required: false
      responses:
        '200':
          description: Contract output structure for assign roles.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/contract_assignroles_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'
      x-codegen-request-body-name: contract
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: ''
          pattern: ^[A-Z]{3}$
        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: ''
          pattern: ^.{1,512}$
        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: ''
          pattern: ^.{1,512}$
      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.
    contract_default_section_getbyid:
      required:
      - default_section_id
      - period
      - stamp_permission_type
      type: object
      properties:
        default_section_id:
          type: string
          description: A system-generated unique identifier for a Section, with a format and structure defined by the technology used.
          default: ''
        period:
          $ref: '#/components/schemas/period'
        geographic_coverage:
          $ref: '#/components/schemas/geographic_coverage'
        conveyance_description:
          type: string
          description: A description of the subject matter insured or nature of liability.
          default: ''
        interest_description:
          type: string
          description: A description of the interest insured or nature of liability.
          default: ''
        order_type:
          type: string
          description: The code that represents the written line type, either a percentage or an amount.
          default: ''
        order_currency_code:
          type: string
          description: The 3-character code that represents the currency in ISO 4217 standard.
          default: ''
        order_percentage:
          type: number
          description: The amount or percentage of the insured's risk that is covered by this Contract or Section.
          example: 0.1
        written_line_basis:
          type: string
          description: The basis upon which all written lines are applied to the Order of a Contract or Section.
          default: ''
        product_code:
          type: string
          description: The code that represents the insurance product under this Contract or Section.
          default: ''
        line_of_business:
          type: string
          description: The code that represents the line of business of the insurance product under this Contract or Section.
          default: ''
        class_of_business:
          type: string
          description: The code that represents the class of business of the insurance product under this Contract or Section.
          default: ''
        settlement_due_date:
          type: string
          description: The date and timestamp by when any instalment or payment of premium on this Contract or Section is expected to be paid to insurers.
          format: date
          example: '2014-12-31'
        installment_period_of_credit_days:
          type: integer
          description: The number of days of credit applied to when any instalment or payment of premium is due.
          format: int32
          example: 0
        adjustment_period_of_credit_days:
          type: integer
          description: The number of days after the date(s) specified for the provision of adjustments that insurers expect the final adjustment(s) of premium (if any) to be paid.
          format: int32
          example: 0
        stamp_permission_type:
          type: string
          description: The code that represents the permitted territory type for the Contract or Section.
          default: ''
        year_of_account:
          type: integer
          description: The year of account to which any premium payment for this Contract or Section is allocated to. This is usually required on risks where the contract period exceeds 18 months.
          format: int32
          example: 0
        risk_classification:
          type: array
          description: A collection of data items to represent the regulatory risk classification for a Contract or Section. Only supports Lloyds Agency Type Risk Codes.
          items:
            $ref: '#/components/schemas/section_risk'
        limits:
          type: array
          description: A collection of data items that represents the Limit(s) of any liability the insurer has agreed to cover under the terms of the insurance Contract or Section.
          items:
            $ref: '#/components/schemas/section_limit'
        excesses:
          type: array
          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.
          items:
            $ref: '#/components/schemas/section_excess'
        deductibles:
          type: array
          description: A collection of data items that represent the deductible(s) that are applied against the payment of a claim, within a Contract or Section.
          items:
            $ref: '#/components/schemas/section_deductible'
        premiums:
          type: array
          description: A collection of data items that represents the financial amount to cover the risk(s) under the terms of the insurance Contract or Section.
          items:
            $ref: '#/components/schemas/section_premium'
        binding_information:
          $ref: '#/components/schemas/section_binding_information'
      additionalProperties: false
      description: The default section of the contract represents the summary of the overall risk to be insured under the Contract.
    contract_post:
      required:
      - broker_code
      - broker_contract_reference
      - default_section
      - description
      - placement_id
      - user_email
      type: object
      properties:
        placement_id:
          type: string
          description: A system-generated unique identifier for a Placement, with a format and structure defined by the technology used.
          default: ''
          pattern: ^[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}$
        programme_id:
          type: string
          description: A system-generated unique identifier for a Programme, with a format and structure defined by the technology used.
          default: ''
          pattern: ^[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}$
        description:
          type: string
          description: A description of the Contract supplied by the Broker.
          default: ''
          pattern: ^.{1,256}$
        user_email:
          type: string
          description: The User information of the Broker User responsible for the Contract. The email address of the User.
          default: ''
          pattern: ^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$
        broker_code:
          type: string
          description: A 4-digit Broker code that represents a broker organisation.
          default: ''
          pattern: ^\d{4}$
        broker_contract_reference:
          type: string
          description: The reference allocated by the broker to identify the Contract.
          default: ''
          pattern: ^[A-Z0-9]{1,12}$
        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: ''
        insureds:
          type: array
          description: A collection of individuals or organisations, and their relationship within a contract of insurance.
          items:
            $ref: '#/components/schemas/contract_insured'
        default_section:
          $ref: '#/components/schemas/contract_default_section_postput'
      additionalProperties: false
      description: Contract structure for creates
    period_date:
      required:
      - expiry_date
      - inception_date
      type: object
      properties:
        inception_date:
          type: string
          description: The date on which the (re

# --- truncated at 32 KB (65 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/ppl-london-market/refs/heads/main/openapi/ppl-london-market-contract-api-openapi.yml