Raise letters of authority for a client Run in API Explorer

Add MCP server to your AI tool

Allow AI tools and LLMs to interact with the API documentation portal through MCP.

MCP server URL

https://apidocs.plannrcrm.com/mcp

Standard setup for AI tools providing an mcp.json file

mcp.json
{
  "PlannrCRM MCP server": {
    "url": "https://apidocs.plannrcrm.com/mcp"
  }
}

Close
POST /api/v1/addons/pensionlab/clients/{client_id}/letters-of-authority

Raises one letter per plan. Every required client, firm, provider and policy detail is checked first, and all problems are returned together in a 422 before anything is sent to PensionLab. Retrying after a failure does not create duplicate letters.

Headers

  • X-PLANNR-ACCOUNT-UUID string

Path parameters

  • client_id string Required

    The ID of the client.

application/json

Body Required

  • plans array[object] Required

    The plans to raise letters for.

    Hide plans attributes Show plans attributes object
    • plan string Required

      The plan UUID.

    • pensionlab_provider string

      The PensionLab provider UUID, needed when the plan's provider has no unique PensionLab match.

Responses

  • 200 application/json
    Hide response attribute Show response attribute object
    • data array[object]
      Hide data attributes Show data attributes object
      • uuid string
      • created_at string
      • updated_at string
      • client object
        Hide client attributes Show client attributes object
        • uuid string
        • created_at string
        • updated_at string
        • type string
        • role string
        • first_name string
        • last_name string
        • name string
        • email string
        • photo_url string
        • external_references object
          Hide external_references attributes Show external_references attributes object
          • uuid

            The UUID of the resource.

          • created_at

            The timestamp of when the resource was created.

          • updated_at

            The timestamp of when the resource was updated.

          • third_party

            The third party provider with the reference.

          • reference

            The third party reference.

      • second_owner object
        Hide second_owner attributes Show second_owner attributes object
        • uuid string
        • created_at string
        • updated_at string
        • type string
        • role string
        • first_name string
        • last_name string
        • name string
        • email string
        • photo_url string
        • external_references object
          Hide external_references attributes Show external_references attributes object
          • uuid

            The UUID of the resource.

          • created_at

            The timestamp of when the resource was created.

          • updated_at

            The timestamp of when the resource was updated.

          • third_party

            The third party provider with the reference.

          • reference

            The third party reference.

      • plan object
        Hide plan attributes Show plan attributes object
        • uuid string
        • created_at string
        • updated_at string
        • opened_at string
        • name string
        • type string
        • sub_type string
        • abstract_type string
        • policy_number string
        • proposal_reference string
        • status string
        • inactive_at string
        • inactive_reason string
        • is_group_scheme boolean
        • is_sub_group_scheme boolean
        • is_group_scheme_member boolean
        • is_wrap_product boolean
        • is_wrap_child boolean
      • pensionlab_provider object
        Hide pensionlab_provider attributes Show pensionlab_provider attributes object
        • uuid string
        • name string
        • policy_number_format string
        • policy_number_is_nino boolean
        • is_db_only boolean
        • response_estimate_days integer
        • provider object
          Hide provider attributes Show provider attributes object
          • uuid

            UUID of the provider

          • created_at

            The timestamp of when the resource was created.

          • updated_at

            The timestamp of when the resource was updated.

          • name

            Provider name

          • slug

            Provider name slug

      • requested_by object
        Hide requested_by attributes Show requested_by attributes object
        • uuid string
        • created_at string
        • updated_at string
        • type string
        • role string
        • first_name string
        • last_name string
        • name string
        • email string
        • photo_url string
        • external_references object
          Hide external_references attributes Show external_references attributes object
          • uuid

            The UUID of the resource.

          • created_at

            The timestamp of when the resource was created.

          • updated_at

            The timestamp of when the resource was updated.

          • third_party

            The third party provider with the reference.

          • reference

            The third party reference.

      • policy_number string
      • ownership string
      • pensionlab_reference string
      • state string
      • signature_status string
      • raised_at string
  • 422 application/json

    Validation error

    Hide response attributes Show response attributes object
    • message string Required

      A human-readable description of the error.

    • errors object

      Validation messages keyed by the field that failed.

      Hide errors attribute Show errors attribute object
      • * array[string] Additional properties
POST /api/v1/addons/pensionlab/clients/{client_id}/letters-of-authority
curl \
 --request POST 'https://api.plannrcrm.com/api/v1/addons/pensionlab/clients/architecto/letters-of-authority' \
 --header "Authorization: Bearer $ACCESS_TOKEN" \
 --header "Content-Type: application/json" \
 --header "X-PLANNR-ACCOUNT-UUID: {YOUR_PLANNR_ACCOUNT_UUID}" \
 --data '{
  "plans": [
    []
  ]
}'
Request examples
# Headers
X-PLANNR-ACCOUNT-UUID: {YOUR_PLANNR_ACCOUNT_UUID}

# Payload
{
  "plans": [
    []
  ]
}
Response examples (200)
{
  "data": [
    {
      "uuid": "2614c839-cbe0-425e-9ada-c7b5b760a540",
      "created_at": "2026-10-28T10:39:29+00:00",
      "updated_at": "2026-10-28T10:39:29+00:00",
      "client": {
        "uuid": "15e087eb-fbb7-445e-95e7-f1d29f7b6687",
        "created_at": "2026-10-28T10:39:29+00:00",
        "updated_at": "2026-10-28T10:39:29+00:00",
        "type": "client",
        "role": "client",
        "first_name": "Gareth",
        "last_name": "Thompson",
        "name": "Gareth Thompson",
        "email": "gareth@codepotato.co.uk",
        "photo_url": "https://eu.ui-avatars.com/api/?name=Gareth+Thompson",
        "external_references": {
          "uuid": "aa9d829d-1801-43a0-b785-5f68dad9f6d1",
          "created_at": "2026-10-28T10:39:33+00:00",
          "updated_at": "2026-10-28T10:39:33+00:00",
          "third_party": "nucleus",
          "reference": "AB123456"
        }
      },
      "second_owner": {
        "uuid": "77a7eec8-14ab-4230-97a2-dfae6817e0c8",
        "created_at": "2026-10-28T10:39:29+00:00",
        "updated_at": "2026-10-28T10:39:29+00:00",
        "type": "client",
        "role": "client",
        "first_name": "Gareth",
        "last_name": "Thompson",
        "name": "Gareth Thompson",
        "email": "gareth@codepotato.co.uk",
        "photo_url": "https://eu.ui-avatars.com/api/?name=Gareth+Thompson",
        "external_references": {
          "uuid": "aa9d829d-1801-43a0-b785-5f68dad9f6d1",
          "created_at": "2026-10-28T10:39:33+00:00",
          "updated_at": "2026-10-28T10:39:33+00:00",
          "third_party": "nucleus",
          "reference": "AB123456"
        }
      },
      "plan": {
        "uuid": "3d1048e7-2130-4558-a5a4-72933fcf3477",
        "created_at": "2026-10-28T10:39:29+00:00",
        "updated_at": "2026-10-28T10:39:29+00:00",
        "opened_at": "2026-10-28T10:39:29+00:00",
        "name": "Johns ISA",
        "type": "cash_account",
        "sub_type": "lifetime isa",
        "abstract_type": "asset",
        "policy_number": "AVIVA-123",
        "proposal_reference": "AB123456",
        "status": "inactive",
        "inactive_at": "2026-10-28T10:39:29+00:00",
        "inactive_reason": "claimed",
        "is_group_scheme": false,
        "is_sub_group_scheme": false,
        "is_group_scheme_member": false,
        "is_wrap_product": false,
        "is_wrap_child": false
      },
      "pensionlab_provider": {
        "uuid": "864fa4f3-c6e0-43de-8802-17cdbdb473d6",
        "name": "Aviva Life & Pensions UK Ltd",
        "policy_number_format": "123456/PP",
        "policy_number_is_nino": false,
        "is_db_only": false,
        "response_estimate_days": 14,
        "provider": {
          "uuid": "9e838fd2-cbf2-4d1f-931b-094e51c76a61",
          "created_at": "2026-10-28T10:39:33+00:00",
          "updated_at": "2026-10-28T10:39:33+00:00",
          "name": "AJ Bell",
          "slug": "aj-bell"
        }
      },
      "requested_by": {
        "uuid": "8083b139-cf89-4fd4-9a53-a16e379dd8b4",
        "created_at": "2026-10-28T10:39:29+00:00",
        "updated_at": "2026-10-28T10:39:29+00:00",
        "type": "client",
        "role": "client",
        "first_name": "Gareth",
        "last_name": "Thompson",
        "name": "Gareth Thompson",
        "email": "gareth@codepotato.co.uk",
        "photo_url": "https://eu.ui-avatars.com/api/?name=Gareth+Thompson",
        "external_references": {
          "uuid": "aa9d829d-1801-43a0-b785-5f68dad9f6d1",
          "created_at": "2026-10-28T10:39:33+00:00",
          "updated_at": "2026-10-28T10:39:33+00:00",
          "third_party": "nucleus",
          "reference": "AB123456"
        }
      },
      "policy_number": "123456/PP",
      "ownership": "single",
      "pensionlab_reference": "loa123",
      "state": "created",
      "signature_status": "Awaiting signature",
      "raised_at": "2026-10-26T10:00:00+00:00",
      "signing_link_sent_at": "2026-10-26T10:05:00+00:00",
      "signing_link_sent_by": {
        "uuid": "4caf6db3-2fbb-434d-af29-bf4f2f1b4f5b",
        "created_at": "2026-10-28T10:39:29+00:00",
        "updated_at": "2026-10-28T10:39:29+00:00",
        "type": "client",
        "role": "client",
        "first_name": "Gareth",
        "last_name": "Thompson",
        "name": "Gareth Thompson",
        "email": "gareth@codepotato.co.uk",
        "photo_url": "https://eu.ui-avatars.com/api/?name=Gareth+Thompson",
        "external_references": {
          "uuid": "aa9d829d-1801-43a0-b785-5f68dad9f6d1",
          "created_at": "2026-10-28T10:39:33+00:00",
          "updated_at": "2026-10-28T10:39:33+00:00",
          "third_party": "nucleus",
          "reference": "AB123456"
        }
      }
    }
  ]
}
Response examples (422)
{
  "message": "The given data was invalid.",
  "errors": {
    "field": [
      "The field is invalid."
    ]
  }
}