PPL

PPL Organisations API

Retrieves the organisation reference data held in the platform that is a prerequisite for interacting with Placement and Firm Order resources - broker and carrier organisations, their team structures, members and roles, market facilities, market underwriters and underwriter stamps. OpenAPI 3.0.1, 7 paths and 7 operations.

OpenAPI Specification

ppl-london-market-organisations.json Raw ↑
{
  "openapi": "3.0.1",
  "info": {
    "title": "organisation",
    "description": "This API collection provides the capability to retrieve Organisation information held in the platform that is a prerequisite for interacting with Placement and Firm Order resources. \n\nThis includes broker and carrier organisation information, including team structures, members and their roles, as well as market information that broker organisations are authorised to engage with for insurance placement activities with specified carriers and underwriters.",
    "version": "1"
  },
  "servers": [
    {
      "url": "https://sand-api.londonmarketgroup.co.uk/ppl/nextgen/organisations",
      "description": "Joint Integration testing (JIT2) environment"
    }
  ],
  "tags": [
    {
      "name": "health"
    },
	{
      "name": "version"
    },
    {
      "name": "organisation"
    }
  ],
  "paths": {
    "/brokerOrganisations": {
      "get": {
        "tags": [
          "organisation"
        ],
        "description": "This end point returns a list of both Broker Teams and Team Members for which the requestor is a member of. This is required in order to support the creation and management of Placements, Programmes and Contract records in the platform, as well as any reassignments of Placements, Programmes and Contracts.",
        "operationId": "brokerOrganisations_v1",
        "parameters": [
          {
            "name": "X-Auth-Impersonated-User",
            "in": "header",
            "description": "The email address of the Impersonator User.",
            "schema": {
              "type": "string",
              "pattern": "^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\\.[a-zA-Z0-9-.]+$"
            }
          },
          {
            "name": "companyId",
            "in": "query",
            "description": "A system-generated unique identifier for a Company, with a format and structure defined by the technology used.\nSearch using single exact match method, e.g. companyId=guid.",
            "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/organisation_broker"
                }
              }
            }
          },
		  "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"
                }
              }
            }
          }
        }
      }
    },
    "/carrierOrganisations": {
      "get": {
        "tags": [
          "organisation"
        ],
        "description": "This end point returns a list of both Carrier Teams and Team Members for which the requestor is a member of. This is required in order to support the management of Submissions and Negotiation records in the platform, as well as any reassignments of Submissions and Negotiations.",
        "operationId": "carrierOrganisations_v1",
        "parameters": [
          {
            "name": "X-Auth-Impersonated-User",
            "in": "header",
            "description": "The email address of the Impersonator User.",
            "schema": {
              "type": "string",
              "pattern": "^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\\.[a-zA-Z0-9-.]+$"
            }
          },
          {
            "name": "companyId",
            "in": "query",
            "description": "A system-generated unique identifier for a Company, with a format and structure defined by the technology used.\nSearch using single exact match method, e.g. companyId=guid.",
            "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/organisation_carrier"
                }
              }
            }
          },
		  "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"
                }
              }
            }
          }
        }
      }
    },
    "/marketFacilities": {
      "get": {
        "tags": [
          "organisation"
        ],
        "description": "Returns a list of Master Facility markets on the platform that the Broker Team has been authorised to utilise on a Contract and /or Section. ",
        "operationId": "brokerMarkets_Facilities_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": "search",
            "in": "query",
            "description": "The text supplied as part of a "contains-based" searchable attribute upon an operation. This field is used for both for open market searching (based upon Carrier and/or Underwriter Name) and facility contract searching (based upon the Contract UMR or Contract Description).",
            "schema": {
              "type": "string",
              "pattern": "^.{1,256}$"
            }
          },
          {
            "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_facilities"
                }
              }
            }
          },
		  "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"
                }
              }
            }
          }
        }
      }
    },
    "/marketUnderwriters": {
      "get": {
        "tags": [
          "organisation"
        ],
        "description": "Returns a list of Carrier Company firms and its Underwriters that a Broker Team is authorised to engage with for insurance placement purposes.",
        "operationId": "brokerMarkets_Underwriters_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": "placementId",
            "in": "query",
            "description": "A system-generated unique identifier for a Placement, with a format and structure defined by the technology used.\nSearch using single exact match method, e.g. placementId=placement1.",
            "schema": {
              "type": "string",
              "pattern": "^[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}$"
            }
          },
          {
            "name": "offPlatform",
            "in": "query",
            "description": "Indicates where an Underwriter is off platform (true) or not (false).\nSearch using single exact match method, e.g. offPlatform=true/false.",
            "schema": {
              "type": "string",
			  "pattern": "^([Tt][Rr][Uu][Ee]|[Ff][Aa][Ll][Ss][Ee])$"
            }
          },
          {
            "name": "search",
            "in": "query",
            "description": "The text supplied as part of a "contains-based" searchable attribute upon an operation. This field is used for both for open market searching (based upon Carrier and/or Underwriter Name) and facility contract searching (based upon the Contract UMR or Contract Description).",
            "schema": {
              "type": "string",
              "pattern": "^.{1,320}$"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "description": "Sorting field and order (unique field only).\nUse + 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_underwriters"
                }
              }
            }
          },
		  "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"
                }
              }
            }
          }
        }
      }
    },
    "/marketUnderwriters/{underwriterEmail}/stamps": {
      "get": {
        "tags": [
          "organisation"
        ],
        "description": "Returns a list of Carrier Stamps that (i) a specified Underwriter has the authority to underwrite risks with; and (ii) that a Broker Team is authorised to engage with.",
        "operationId": "brokerMarkets_Stamps_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": "underwriterEmail",
            "in": "path",
            "description": "The email address of the Underwriter.",
            "required": true,
            "schema": {
              "type": "string",
			  "pattern": "^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\\.[a-zA-Z0-9-.]+$"
            }
          },
          {
            "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_underwriter_stamps"
                }
              }
            }
          },
		  "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"
                }
              }
            }
          }
        }
      }
    },
    "/health": {
      "get": {
        "tags": [
          "health"
        ],
        "description": "Checks the health of this Organisation Resource API.",
        "operationId": "Health",
        "responses": {
          "200": {
            "description": "UP if ok.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/health"
                }
              }
            }
          }
        }
      }
    },
    "/version": {
      "get": {
        "tags": [
          "version"
        ],
        "description": "Checks the version of this Organisation Resource API.",
        "operationId": "Version",
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/version"
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "address": {
        "required": [
          "city",
          "country",
          "line_1",
          "post_code"
        ],
        "type": "object",
        "properties": {
          "line_1": {
            "type": "string",
            "description": "The first line of an address.",
            "default": ""
          },
          "line_2": {
            "type": "string",
            "description": "The second line of an address.",
            "default": ""
          },
          "city": {
            "type": "string",
            "description": "The city of an address.",
            "default": ""
          },
          "region": {
            "type": "string",
            "description": "The region, also known as the country subdivision, of an address.",
            "default": ""
          },
          "post_code": {
            "type": "string",
            "description": "The postal code of an address.",
            "default": ""
          },
          "country": {
            "type": "string",
            "description": "The ISO3166 alpha-2 code that represents the country as part of an address.",
            "default": ""
          }
        },
        "description": "The primary address where the node is situated."
      },
      "branch_broker": {
        "required": [
          "address",
          "name",
          "teams"
        ],
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Name of the Branch.",
            "default": ""
          },
          "address": {
            "$ref": "#/components/schemas/address"
          },
          "teams": {
            "type": "array",
            "description": "A list of Teams that are owned within a Branch.",
            "items": {
              "$ref": "#/components/schemas/team_broker"
            }
          }
        },
        "description": "Branch structure (broker focused)."
      },
      "branch_carrier": {
        "required": [
          "address",
          "name",
          "teams"
        ],
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Name of the Branch.",
            "default": ""
          },
          "address": {
            "$ref": "#/components/schemas/address"
          },
          "teams": {
            "type": "array",
            "description": "A list of Teams that are owned within a Branch.",
            "items": {
              "$ref": "#/components/schemas/team_carrier"
            }
          }
        },
        "description": "Branch structure (carrier focused)."
      },
      "company_broker": {
        "required": [
          "address",
          "branches",
          "id",
          "name"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "A system-generated unique identifier for a Company, with a format and structure defined by the technology used.",
            "default": ""
          },
          "name": {
            "type": "string",
            "description": "The name of the Company, which is also referred to as the trading entity of the Organisation.",
            "default": ""
          },
          "address": {
            "$ref": "#/components/schemas/address"
          },
          "branches": {
            "type": "array",
            "description": "A list of Branches that are part of the Company hierarchy.",
            "items": {
              "$ref": "#/components/schemas/branch_broker"
            }
          }
        },
        "description": "Company structure (broker focused)."
      },
      "company_carrier": {
        "required": [
          "address",
          "branches",
          "id",
          "name"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "A system-generated unique identifier for a Company, with a format and structure defined by the technology used.",
            "default": ""
          },
          "duns_number": {
            "type": "string",
            "description": "The code that describes the identification of the given code set.",
            "default": ""
          },
          "name": {
            "type": "string",
            "description": "The name of the Company, which is also referred to as the trading entity of the Organisation.",
            "default": ""
          },
          "address": {
            "$ref": "#/components/schemas/address"
          },
          "stamps": {
            "type": "array",
            "description": "List of Stamp References this Company has access to.",
            "items": {
              "$ref": "#/components/schemas/stamps_carrier_ref"
            }
          },
          "branches": {
            "type": "array",
            "description": "A list of Branches that are part of the Company hierarchy.",
            "items": {
              "$ref": "#/components/schemas/branch_carrier"
            }
          }
        },
        "description": "Company structure (carrier focused)."
      },
      "health": {
        "type": "object",
        "properties": {
          "health": {
            "type": "string",
            "description": "health value",
            "default": ""
          }
        },
        "description": "Health endpoint payload"
      },
      "line_conditions": {
        "required": [
          "active",
          "description",
          "global",
          "line_condition_id"
        ],
        "type": "object",
        "properties": {
          "line_condition_id": {
            "type": "string",
            "description": "A system-generated unique identifier for a Line Condition, with a format and structure defined by the technology used.",
            "default": ""
          },
          "description": {
            "type": "string",
            "description": "A description of the line condition.",
            "default": ""
          },
          "global": {
            "type": "boolean",
            "description": "Flag indicating that the line condition has been added by PPL admin and is applicable to all stamps within the platform.",
            "example": false
          },
          "active": {
            "type": "boolean",
            "description": "Indicates where a Line Condition is currently active (true) or not (false).",
            "example": false
          },
          "stamps": {
            "type": "array",
            "description": "List of Stamp References where the following Line Condition can be applied.",
            "items": {
              "$ref": "#/components/schemas/stamps_carrier_ref"
            }
          }
        },
        "description": "List of Line Conditions the Carrier Organisation has access to."
      },
      "member_broker": {
        "required": [
          "active_member",
          "first_name",
          "is_technical_user",
          "last_name",
          "role",
          "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": ""
          },
          "role": {
            "type": "string",
            "description": "The role of the Member within the Team.",
            "default": ""
          },
          "active_member": {
            "type": "boolean",
            "description": "Indicates where a Team Member is currently active (true) or not (false).",
            "example": false
          },
          "is_technical_user": {
            "type": "boolean",
            "description": "Indicates where a Team Member is a Technical User (true) or not (false), i.e. Service Account.",
            "example": false
          }
        },
        "description": "The User information of a Team Member."
      },
      "member_carrier": {
        "required": [
          "active_member",
          "first_name",
          "is_technical_user",
          "last_name",
          "role",
          "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": ""
          },
          "role": {
            "type": "string",
            "description": "The role of the Member within the Team.",
            "default": ""
          },
          "active_member": {
            "type": "boolean",
            "description": "Indicates where a Team Member is currently active (true) or not (false).",
            "example": false
          },
          "is_technical_user": {
            "type": "boolean",
            "description": "Indicates where a Team Member is a Technical User (true) or not (false), i.e. Service Account.",
            "example": false
          },
          "stamps": {
            "type": "array",
            "description": "List of Stamp References this user has access to.",
            "items": {
              "$ref": "#/components/schemas/stamps_carrier_ref"
            }
          }
        },
        "description": "The User information of a Team Member."
      },
      "metadata_no_user": {
        "type": "object",
        "

# --- 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-organisations.json