NAV
http json

Introduction

Welcome to the Clifton Asset Management API! You can use our API to create Contacts, Policy & Pension Applications, Transfer Records and Beneficiaries

We have language bindings in HTTP. You can view code examples in the dark area to the right.

Authentication

To authorize, generate a token:

Make sure to replace D365BearerTokenHere with your API key.

To use our CRM API with server-to-server (S2S) authentication, you will need to be setup as a user in our system. To request access to our development site, please contact crmsupport@clifton-asset.co.uk

A user will be set up in the system and you will be supplied with 3 pieces of information

Field Description
tenant_id This is the GUID of the Azure Directory that we have created for you
client_id The Application (client) ID from the registered App in Azure
client_secret The application secret key we have created for you from the registered App in Azure. The client secret must be URL-encoded before being sent

Aquire an Access Token

GET /{tenant_id}/oauth2/token HTTP/1.1
Host: login.microsoftonline.com
Content-Type: multipart/form-data;

See json tab for Aquire an Access token repsonse

{
    "token_type": "Bearer",
    "expires_in": "3599",
    "ext_expires_in": "3599",
    "expires_on": "15933772474",
    "not_before": "1593768574",
    "resource": "https://cliftonassetdev.crm11.dynamics.com",
    "access_token": "D365BearerTokenHere"
}

HTTP Request

GET https://login.microsoftonline.com/{{tenant_id}}/oauth2/token

This allows the user to login to the service and obtain an API token. The token returned must be used on all subsequent calls to the API in the api-token header field.

Body Data

All fields below are required in the form url-encoded body

Field Data Type Description
grant_type String Value = "client_credentials"
client_id String The firm Id we have created for you
client_secret String The user Id we have created for you
resource String URL for the site

Test The Access Token

GET / HTTP/1.1
https://cliftonassetdev.api.crm11.dynamics.com/api/data/v9.1/WhoAmI
Authorization: Bearer D365BearerTokenHere
Content-Type: application/json

See json tab for repsonse:

{
    "@odata.context": "https://cliftonassetdev.api.crm11.dynamics.com/api/data/v9.1/$metadata#Microsoft.Dynamics.CRM.WhoAmIResponse",
    "BusinessUnitId": "aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa",
    "UserId": "aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa",
    "OrganizationId": "aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa"
}

Once the user has obtained an access token, it can be used to call on any function within the CRM API. To check you have access, try calling the WhoAmI function.

HTTP Request

GET https://cliftonassetdev.api.crm11.dynamics.com/api/data/v9.1/WhoAmI

Headers

Field Data Type Description
Content-Type String Value = "client_credentials"
Authorization String This will be the token type followed by the access token recieved above

Change Log

Release 1.54

Modified Endpoints

Endpoint Description
Create Scheme
  • Added new sippType input: 809130015
  • Get Benefit Events
  • Added benefitApplicationId output to show the related Benefit Application record guid
  • Release 1.53

    New Endpoints

    Endpoint Description
    Get Adviser Contacts
  • A new endpoint to return all Contacts for a given Adviser
  • Get Client Factfind
  • A new endpoint to retrieve the latest Factfind for a client
  • Get Client Assets
  • A new endpoint to retrieve a list of Assets owned by a client
  • Get Client Liabilities
  • A new endpoint to retrieve a list of Liabilities owned by a client
  • Get Client Relationships
  • A new endpoint to retrieve a list of Relationships of a client
  • Modified Endpoints

    Endpoint Description
    Submit Document
  • Added a new "Annual Review" and "Factfind" DocumentFolder option
  • Release 1.52

    New Endpoints

    Endpoint Description
    Submit ATR
  • A new endpoint to create ATR records for a Contact
  • Modified Endpoints

    Endpoint Description
    Submit Document
  • Added a new "ATR" DocumentFolder option
  • Release 1.51

    New Endpoints

    Endpoint Description
    Bulk Update Schemes
  • A new endpoint to update multiple schemes at once for certain fields using inputted scheme references
  • Release 1.50

    Modified Endpoints

    Endpoint Description
    Retrieve Member Details
  • Added a new "withdrawals" output object
  • Cancel Drawdown
  • Added three new inputs as an alternative method of calling this endpoint: "policyNumber", "withdrawalType", and "withdrawalId"
  • Release 1.49

    Modified Endpoints

    Endpoint Description
    Get Transfer
  • Added new transferstatus value: 4 (Funds sent)
  • Get All Transfers by Scheme
  • Added new cam_transferstatus value: 4 (Funds sent)
  • Release 1.48

    New Endpoints

    Endpoint Description
    MVP Profile
  • A new endpoint to retrieve contact information from My Viewpoint
  • Upload Pension Contributions
  • A new endpoint to bulk upload and create pension contributions
  • Release 1.47

    Modified Endpoints

    Endpoint Description
    Create Scheme
  • Added new sippType inputs: 809130013, 809130014
  • Release 1.46

    Modified Endpoints

    Endpoint Description
    Create Contact
  • Set Financial Adviser Contact as a required parameter.
  • Release 1.45

    Modified Endpoints

    Endpoint Description
    Create Financial Adviser Contact
  • Added an optional Email Address input
  • Drawdown Setup
  • Added the following drawdownOption input values: Custom Regular Income (15), Partial UFPLS, Phased UFPLS Income: 30, Full PCLS, Custom Regular Income: 32, Partial PCLS, Custom Regular Income: 33, Full UFPLS, Custom Regular Income: 34, Partial UFPLS, Custom Regular Income: 35, Full PCLS Single Payment, Custom Regular Income: 36, Partial PCLS Single Payment, Custom Regular Income: 37, Full Single Payment, Custom Regular Income: 38, Partial Single Payment, Custom Regular Income: 39
  • Release 1.44

    Modified Endpoints

    Endpoint Description
    Create Scheme
  • Added a new schemeType input: 17 and a new sippType input: 809130012
  • Release 1.43

    Modified Endpoints

    Endpoint Description
    Create Pension Contribution
  • Added a new field, Investor Ref (Policy No.)
  • Get Pension Contribution Applications
  • Added a new field, Investor Ref (Policy No.)
  • Update Pension contribution
  • Added a new field, Investor Ref (Policy No.)
  • Release 1.42

    New Endpoints

    Endpoint Description
    Update Scheme
  • Added a new endpoint that can be used to update certain fields on a Scheme using an inputted Scheme Reference
  • Modified Endpoints

    Endpoint Description
    Get Scheme by Scheme Ref
  • Added the following new percentage fields as outputs: ongoingAdviserFeePercentage, investmentCostsPercentage, and platformFeesPercentage
  • Create Scheme
  • Added the following new decimal percentage fields: ongoingAdviserFee, platformFee, and investmentCosts
  • Release 1.41

    Modified Endpoints

    Endpoint Description
    Update Beneficiary
  • Added details to explain how to update a Nomination of Beneficiary's status so that it can be closed.
  • Retrieve Member Details
  • Changed the ltaUsed field to the new tfcUsed field
  • Drawdown Setup
  • Changed the ltaUsed field to the new tfcUsed field
  • Release 1.40

    Modified Endpoints

    Endpoint Description
    Create Scheme
  • Added the following new sippType inputs: 809130009, 809130010, and 809130011
  • Get Received Contributions
  • Added an Investment Date field, which shows the date that the Contribution was invested
  • Release 1.39

    Modified Endpoints

    Endpoint Description
    Create Contact
  • Added an External Client ID field, to be used by select third parties to provide us with a reference to their system.
  • Release 1.38

    New Endpoints

    Endpoint Description
    Create Financial Adviser Contact
  • Added a new endpoint that creates a Financial Adviser contact against an existing Financial Adviser account.
  • Modified Endpoints

    Endpoint Description
    Create Scheme
  • Added a new sippType input, 809130008
  • Get Bank Account Transactions
  • Added a new response field called direction, which indicates if the Transaction is inbound or outbound.
  • Removed Endpoints

    Endpoint Description
    [Get Financial Transactions]
  • Removed the Get Financial Transactions endpoint.
  • Release 1.37

    Modified Endpoints

    Endpoint Description
    Drawdown Setup
  • Removed Bank Name input field.
  • Get All Transfers by Scheme
  • Added a Policy Number response field.
  • Update Contact
  • Added a note to the description clarifying the syntax of lookup fields. Lookup fields must be suffixed with "@odata.bind" when using this endpoint.
  • Release 1.36

    Modified Endpoints

    Endpoint Description
    Drawdown Setup
  • Added additional options to the investmentPathway input field: 5, 6. Also added labels to each input value.
  • Release 1.35.2

    Modified Endpoints

    Endpoint Description
    Drawdown Setup
  • The Payment Day and the Bank Name fields are no longer required.
  • Release 1.35.1

    Modified Endpoints

    Endpoint Description
    Create Contact
  • The limit for retirement age has been raised to 110. The parameter description has also been updated to highlight this.
  • Create Pension Contribution
  • The Address fields are no longer required for Contributions with the Contribution Type of Employer
  • Create Transfer
  • The Provider Address fields are no longer required
  • Submit Document
  • Updated endpoint to allow the use of different file extensions
  • Update Pension Contribution Status
  • Added "Received" status option
  • Release 1.35

    Modified Endpoints

    Endpoint Description
    Submit Document
  • Added a new Document Folder option called Application
  • Create Pension Contribution
  • The Email Address field is no longer required for Contributions with the Contribution Type of Personal
  • Create Contact
  • The familystatuscode field is no longer required
  • Release 1.34

    Modified Endpoints

    Endpoint Description
    Create Transfers
  • Earmarking and Sharing are no longer required fields
  • Create Scheme
  • Added a new boolean input field, "beneficiaryFund", which is used to indicate if a client is a Beneficiary Fund.
  • New Endpoints

    Endpoint Description
    Get Received Contributions
  • This endpoint returns any Received Pension Contribution records associated with the inputted Scheme Reference.
  • Get Pension Contribution Applications
  • This endpoint returns any Contribution Applications associated with the inputted Scheme Reference.
  • Get All Transfers by Scheme
  • This endpoint returns any Transfers associated with the inputted Scheme Reference.
  • Release 1.33

    Modified Endpoints

    Endpoint Description
    Create contact
  • New endpoint name cam_createcontact (case sensitive)
  • Parameter name changes
    • Old: cam_FinancialAdviserContact@odata.bind
      New: cam_FinancialAdviserContact
      Old: cam_financialadviser_Account@odata.bind
      New: cam_financialadviser_Account

    Release 1.32

    Modified Endpoints

    Endpoint Description
    Drawdown Setup
  • Added the following new values for the drawdownOption field:
    • Full Lump Sum Income: 8
    • Partial Lump Sum Income: 9
    • Full Lump Sum Income, Regular Income: 28
    • Partial Lump Sum Income, Regular Income: 29
  • Get Scheme by Scheme Ref
  • Added the Funds Last Calculated Date field to Get Scheme by Scheme Ref endpoint
  • Get Transfer
  • Added the Due Date Task Date and Last Note Date to Get Transfer endpoint
  • Release 1.31

    Modified Endpoints

    Endpoint Description
    Create Scheme
  • Added a new, required field to record the type of SIPP being used. It accepts three possible values: (809130003, 809130005 and 809130006):
    • sippType
  • Release 1.30

    Modified Endpoints

    Endpoint Description
    Drawdown Setup
  • Added the following optional fields to record Stronger Nudge data:
    • guidanceAppointmentAttendance
    • guidanceAppointmentDate
    • adviceAppointmentAttendance
    • adviceAppointmentDate
    • recentlyReceivedGuidance
    • recentlyReceivedAdvice
    • doesNotWantAdvice
  • Get Transfer/ Get Transfer by Policy No
  • Added confirmed transfer values to both endpoints
  • Release 1.20

    New Endpoints

    Endpoint Description
    Get Bank Account Transactions
  • This endpoint retrieves the Financial Transaction records for all Bank Accounts related to a Scheme
  • Release 1.19

    Modified Endpoints

    Endpoint Description
    Get Scheme by Scheme Ref
  • This Endpoint no longer uses a URL query. Total Bank Balance has also been added as a Response Field.
  • Release 1.18

    New Endpoints

    Endpoint Description
    Cancel Drawdown
  • Created a new Endpoint that cancels a Live Drawdown Event.
  • Amend Drawdown
  • Created a new Endpoint that amends a Live Drawdown Event by creating a new Application and Benefit Application.
  • Modified Endpoints

    Endpoint Description
    Get Benefit Events
  • Formerly called "Get Scheme Member Events". Now additionally brings back the Scheme Member Event Id and the Next Payment Date and can be filtered by Event Status and exclude Ad Hoc events
  • Release 1.17

    Modified Endpoints

    Endpoint Description
    Drawdown Setup
  • Added a new, optional field called investmentRef.
  • Submit Document
  • Added a new documentFolder option called "Illustration". Added a new field called productType, which is to be used alongside the "Illustration" documentFolder option.
  • Release 1.16

    Modified Endpoints

    Endpoint Description
    Submit Document
  • Changed the "Clifton - My Viewpoint" documentFolder parameter option to be "Adviser - My Viewpoint" rather than being Clifton-specific. It now generates the document in one of our SharePoint sites based on the client's Financial Adviser.
  • Release 1.15

    Modified Endpoints

    Endpoint Description
    Create Pension Contribution
  • Added a new input parameter: Pre-funded RAS Amount
  • Update Pension Contribution
  • Added a new input parameter: Pre-funded RAS Amount
  • Release 1.14

    New Endpoints

    Endpoint Description
    Update Transfer
  • Endpoint to update the transfer amount and date the transfer has occurred identified by its GUID
  • Get Transfer by Policy No
  • Endpoint to return internal GUID using the policy number from the external provider
  • Get Contact ID & Scheme Ref
  • Endpoint to retrieve the CRM GUID of the Contact and Scheme Ref (if applicable) of an inputted Policy Number or Platform Investor Number
  • Modified Endpoints

    Endpoint Description
    Submit Document
  • Added new KFI/SMPI option for sending illustration through the API
  • Release 1.13

    New Endpoints

    Endpoint Description

    Modified Endpoints

    Endpoint Description
    Update Message
  • Endpoint URI updated to /cam_updatemessage
  • Message ID now required as request body parameter
  • Release 1.12

    New Endpoints

    Endpoint Description

    Modified Endpoints

    Endpoint Description
    Create Scheme
  • Benefit Application input parameter added
  • Create Benefit Application
  • Scheme Ref no longer required
  • Benefit Application ID Response Added
  • Retrieve Member Details
  • New response field for Flat Fee added
  • Release 1.1

    This release includes a new endpoint for submiting benefit applications which will return a single sign on link for a clients drawdown journey via CTC.

    Exitsting endpoints have also been modified to return a response object to help user's identify any encountered errors whilst using the API.

    New Endpoints

    Endpoint Description
    Create Benefit Application
  • Endpoint to create benefit applications and retrieve SSO link for drawdown journey
  • Update Message
  • Endpoint to allow users to update existing messages
  • Modified Endpoints

    Endpoint Description
    Create Beneficiaries
  • Generic response object added
  • Create Contribution
  • Generic response object added
  • Create Policy Valuation
  • Generic response object added
  • Create Scheme
  • Generic response object added
  • Create Transfer
  • Generic response object added
  • Create Investment
  • Generic response object added
  • Submit Illustration
  • Generic response object added
  • Submit Document
  • New document type field for URL downloads added
  • New document reference field added
  • New field for document folder added
  • Create Thread
  • Generic response object added
  • Response added for Thread entity reference
  • Create Message
  • Optional field for attachment flag
  • Optional field for document reference.
  • Generic response object added
  • Response added for Message entity reference
  • Retrieve Member Details
  • Response object for newly created benefit applications
  • Drawdown Setup
  • Non-required Pension Wise Access field added
  • Contacts

    Create Contact

    POST /cam_createcontact HTTP/1.1
    Host: https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/
    Authorization: Bearer AuthorizationTokenHere
    Content-Type: application/json
    
    {
        "as_contactstatus": 809130002,
        "cam_title": 809130000,
        "firstname": "Some",
        "lastname": "One",
        "emailaddress1": "some.one@clifton-asset.co.uk",
        "cam_nationality": "UK",
         "gendercode": 1,
         "cam_ninumber": "AG103759D",
         "address1_line1": "Home",
        "address1_line2": "Home Lane",
        "address1_line3": "Somewhere",
         "address1_city": "SomeCity",
         "address1_county": "SomeCounty",
         "address1_postalcode": "HU3 2BA",
         "familystatuscode": 2,
         "cam_birthdate": "1981-2-28",
         "telephone1": "+447742999742",
         "telephone2": "+441483742999",       
         "mobilephone": "07777123999",
         "cam_retirementageint": 25,
         "cam_FinancialAdviserContact": "/contacts(35c445bc-46d5-e911-813c-00155d0a060c)",
         "cam_financialadviser_Account": "/(d2ae4bdb-7424-e911-8129-00155d0a060c)",
         "cam_employmentstatus": 809130001,   
         "cam_sourceofwealth": 809130000,   
         "cam_sourceofwealthstring": "yesterday",
         "cam_annualearnings": 99000.00,
         "cam_previouslytakenflexiaccessbenefits": 1,
         "cam_taxrelief": 809130000
    }
    

    The above command returns HTTP response 200 with JSON content structured like this :

    HTTP/1.1 200 OK
    
    {
        "@odata.context": "https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/$metadata#Microsoft.Dynamics.CRM.cam_createcontactResponse",
        "response": {
            "@odata.type": "#Microsoft.Dynamics.CRM.contact",
            "@odata.etag": "W/\"244663019\"",
            "contactid": "e8e07ee8-8eff-ed11-8f6c-002248c6f659",
            "fullname": "Some One"
        }
    }
    
    
    {
        "@odata.context": "https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/$metadata#Microsoft.Dynamics.CRM.cam_createcontactResponse",
        "message": "Created OK",
        "response": {
            "@odata.type": "#Microsoft.Dynamics.CRM.contact",
            "@odata.etag": "W/\"242803279\"",
            "contactid": "1e09d025-1aeb-ed11-8847-002248c6bbda",
            "fullname": "Some One"
        }
    }
    

    This endpoint creates a Contact.

    HTTP Request

    POST https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/cam_createcontact

    Fields

    Field Type Required Description
    as_contactstatus int Yes Allowed Values (
    Customer: 809130002)
    cam_title int Yes Allowed Values (
    Mr: 809130000,
    Ms: 809130001,
    Mrs: 809130002,
    Miss: 809130003,
    Dr: 809130004,
    Master: 809130005,
    Capt: 809130006,
    Prof: 809130007,
    Reverend: 809130008,
    Sir: 809130009,
    Lord: 809130010,
    Lady: 809130011,
    Other: 809130012)
    firstname string Yes The Contacts First Name
    middlename string No The Contacts Middle Name
    lastname string Yes The Contacts Last Name
    telephone1 string No The Contacts primary business phone number
    telephone2 string No The Contacts secondary phone number
    mobilephone string No The Contacts mobile phone number
    emailaddress1 string Yes The Contacts email address
    cam_nationality string Yes The Contacts nationality
    gendercode int Yes Allowed Values (
    Male: 1,
    Female: 2)
    cam_ninumber string Yes The Contacts national insurance number
    address1_line1 string Yes First line of the Contacts address
    address1_line2 string No Second line of the Contacts address
    address1_line3 string No Third line of the Contacts address
    address1_city string Yes The Contacts city
    address1_county string No The Contacts county
    address1_postalcode string Yes The Contacts post code
    cam_birthdate string Yes The Contacts Date of Birth
    familystatuscode int No Allowed Values (
    Single: 1,
    Married: 2,
    Civil Partner: 5,
    Divorced: 6,
    Cohabiting: 7,
    Widowed: 8)
    cam_retirementageint int No The Contacts retirement age (must be between 20 and 110)
    cam_FinancialAdviserContact lookup No* See Get Financial Adviser Contact to return the GUID
    cam_financialadviser_Account lookup No Use the Firm ID we provided you
    cam_employmentstatus int No Allowed Values (
    Employed: 809130000,
    Self Employed: 809130001,
    Unemployed: 809130002,
    Student: 809130003,
    Child: 809130004,
    Carer: 809130005,
    Child Carer: 809130006,
    Pensioner: 809130007,
    Other: 809130008 )
    cam_sourceofwealth int No The Contacts primary source of wealth Allowed Values (
    Salary: 809130000,
    Variable Remuneration: 809130001,
    Investment Income or Sale of Investments: 809130002,
    Pension Income: 809130003,
    Sale of Main Residence: 809130004,
    Sale of Other Property: 809130005,
    Business Interests: 809130006,
    Inheritence: 809130007,
    Gift: 809130008,
    Financial Settlements: 809130009,
    Lottery/Betting/Casino: 809130010,
    Other: 809130011)
    cam_sourceofwealthstring string No Alternative source of wealth string
    cam_annualearnings decimal No The Contacts Annual Earnings
    cam_previouslytakenflexiaccessbenefits int No Allowed Values (
    false: 0,
    true: 1)
    cam_taxrelief int No Allowed Values (809130000, 809130001, 809130002, 809130003) See Tax Relief Lookup
    cam_externalclientid string No External Client Identifier to be used by select third parties

    Tax Relief Lookup

    Key Value
    809130000 I have relevant UK earnings chargeable to income tax or general earnings from overseas Crown employment subject to UK tax, in this tax year
    809130001 I have or will have been resident in the UK at some time during this year
    809130002 I, or my spouse, are in overseas Crown employment, but for this tax year do not have general earnings from overseas Crown employment subject to UK tax
    809130003 My spouse has for this tax year general earnings from overseas Crown employment subject to UK tax

    Get All Contacts

    GET /contacts HTTP/1.1
    Host: https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/
    Authorization: Bearer AuthorizationTokenHere
    
    

    The above command returns JSON structured like this:

    "@odata.context": "https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/$metadata#contacts/$entity",
    "value":
    [
      {
        "@odata.etag": "W/\"80794831\"",
        "contactid": "fe7926bc-6490-ea11-a811-000d3a86d74d",
        "cam_title": 809130005,
        "firstname": "Obi",
        "middlename": "Wan",
        "lastname": "Kenobi",
        "telephone1": "01275813700",
        "telephone2": null,
        "mobilephone": "07790963725",
        "emailaddress1": "BenKenobi@gmail.com",
        "cam_nationality": "GB",
        "gendercode": 1,
        "cam_ninumber": "JJ112234A",
        "address1_line1": "2 Sandy Hut Road",
        "address1_line2": "Mos Eisley",
        "address1_line3": null,
        "address1_city": "Tatooine",
        "address1_county": "Somerset",
        "address1_postalcode": "TA17AT",
        "cam_birthdate": "1977-05-03T23:00:00Z",
        "familystatuscode": 1,
        "cam_retirementageint": 65,
        "cam_employmentstatus": 809130001,
        "cam_sourceofwealth" : 809130000,
        "cam_sourceofwealthstring" : "Divorce Settlement",
        "cam_annualearnings" : 35000.00, 
        "cam_taxrelief": 809130002,
        "cam_previouslytakenflexiaccessbenefits": 0,
        "_cam_financialadviser_value": "4415083c-8fb4-4fdf-92d1-807b542587db",
        "_cam_financialadvisercontact_value": "861e0b81-170e-41c3-bde2-13a9a8d7984f",
        "createdon": "2020-07-22T13:49:45Z",
        "modifiedon": "2020-07-22T13:49:56Z"
      },
      {
        "@odata.etag": "W/\"82747829\"",
        "contactid": "fcdab33b-beaf-ea11-a812-000d3a86f6ce",
        "cam_title": 809130000,
        "firstname": "Tony",
        "middlename": "A",
        "lastname": "Stark",
        "telephone1" : "01275813700",
        "mobilephone" : "07791232323",
        "emailaddress1": "tony@starkenterprises.com",
        "gendercode": 1,
        "cam_ninumber": "AB121212A",
        "address1_line1": "10880 Malibu Point",
        "address1_line2": "",
        "address1_city": "Bristol",
        "address1_postalcode": "BS200DD",
        "cam_birthdate": "1965-01-01T00:00:00Z",
        "familystatuscode": 2,
        "cam_nationality": "American",
        "cam_retirementageint": "65",
        "cam_employmentstatus": 809130001,
        "cam_sourceofwealth" : 809130000,
        "cam_annualearnings" : 50000.00, 
        "cam_taxrelief": 809130003,
        "cam_previouslytakenflexiaccessbenefits": 0,
        "_cam_financialadviser_value": "d2ae4bdb-7424-e911-8129-00155d0a060c",
        "_cam_financialadvisercontact_value": "35c445bc-46d5-e911-813c-00155d0a060c",
        "createdon": "2020-07-22T13:49:45Z",
        "modifiedon": "2020-07-22T13:49:56Z"
      }
    ]
    

    This endpoint retrieves all Contacts.

    HTTP Request

    GET https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/contacts

    Get Adviser Contacts

    POST  https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/cam_getadvisercontacts HTTP/1.1
    Host: https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/
    Authorization: Bearer AuthorizationTokenHere
    Content-Type: application/json
    
    {
        "adviserEmailAddress": "joe.bloggs@example.com"
    }
    
    

    The above command returns HTTP structured like this:

    {
        "@odata.context": "https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/$metadata#Microsoft.Dynamics.CRM.cam_getadvisercontactsResponse",
        "response": {
            "@odata.type": "#Microsoft.Dynamics.CRM.expando",
            "responseKey": 0,
            "message": "25 Contacts found"
        },
        "contacts": [
            {
                "@odata.type": "#Microsoft.Dynamics.CRM.contact",
                "@odata.etag": "W/\"385520515\"",
                "firstname": "Arzhel",
                "lastname": "Schmitt",
                "preferredcontactmethodcode": 1,
                "cam_retirementageint": 65,
                "contactid": "809976ab-08a7-ea11-a812-000d3a86d6ba",
                "cam_birthdate": "1966-12-18T13:17:10Z",
                "cam_lastclientmeeting": "2025-11-06T08:00:00Z",
                "cam_potentiallyvulnerable": true,
                "cam_title": 809130009,
                "cam_contactvulnerability": "809130000,809130001,809130002",
                "adviser_x002e_fullname": "Alan Crook"
            },
            {
                "@odata.type": "#Microsoft.Dynamics.CRM.contact",
                "@odata.etag": "W/\"385492660\"",
                "firstname": "Bahman",
                "lastname": "Heimisson",
                "preferredcontactmethodcode": 1,
                "cam_retirementageint": 70,
                "contactid": "2bb27ff3-23ff-ea11-a813-000d3a86d6ba",
                "gendercode": 1,
                "cam_birthdate": "1942-11-05T22:10:21Z",
                "familystatuscode": 6,
                "cam_title": 809130000,
                "adviser_x002e_fullname": "Alan Crook"
            },
            {
                "@odata.type": "#Microsoft.Dynamics.CRM.contact",
                "@odata.etag": "W/\"386946005\"",
                "firstname": "Ruth",
                "lastname": "Mathiasen",
                "preferredcontactmethodcode": 1,
                "cam_retirementageint": 60,
                "contactid": "bed85615-36ed-ea11-a815-000d3a86d6ba",
                "gendercode": 1,
                "cam_birthdate": "1957-06-16T16:19:20Z",
                "familystatuscode": 1,
                "cam_title": 809130000,
                "adviser_x002e_fullname": "Alan Crook"
            },
            {
                "@odata.type": "#Microsoft.Dynamics.CRM.contact",
                "@odata.etag": "W/\"387899857\"",
                "lastname": "McGough",
                "preferredcontactmethodcode": 1,
                "cam_retirementageint": 75,
                "contactid": "4b419b53-b5d4-ef11-8ee9-000d3a871e21",
                "cam_birthdate": "1978-05-25T02:35:10Z",
                "cam_potentiallyvulnerable": false,
                "cam_title": 809130009,
                "adviser_x002e_fullname": "Alan Crook"
            },
            {
                "@odata.type": "#Microsoft.Dynamics.CRM.contact",
                "@odata.etag": "W/\"382423182\"",
                "lastname": "Valiente",
                "preferredcontactmethodcode": 1,
                "contactid": "f1a7caa0-62d9-ef11-8eea-000d3a871e21",
                "cam_birthdate": "1988-10-22T22:08:41Z",
                "cam_potentiallyvulnerable": false,
                "adviser_x002e_fullname": "Alan Crook"
            },
            {
                "@odata.type": "#Microsoft.Dynamics.CRM.contact",
                "@odata.etag": "W/\"387899919\"",
                "firstname": "Ishmael",
                "lastname": "Christison",
                "preferredcontactmethodcode": 1,
                "contactid": "d030720c-fae2-ef11-9342-000d3a871e21",
                "gendercode": 1,
                "cam_birthdate": "2009-12-03T07:03:13Z",
                "cam_potentiallyvulnerable": false,
                "cam_title": 809130009,
                "adviser_x002e_fullname": "Alan Crook"
            },
            {
                "@odata.type": "#Microsoft.Dynamics.CRM.contact",
                "@odata.etag": "W/\"385498790\"",
                "firstname": "Raganhildis",
                "lastname": "Ito",
                "preferredcontactmethodcode": 1,
                "contactid": "8f87e22e-2e01-ed11-82e6-000d3a875606",
                "gendercode": 1,
                "cam_birthdate": "1976-04-21T09:36:06Z",
                "cam_potentiallyvulnerable": false,
                "familystatuscode": 1,
                "cam_title": 809130000,
                "adviser_x002e_fullname": "Alan Crook"
            },
            {
                "@odata.type": "#Microsoft.Dynamics.CRM.contact",
                "@odata.etag": "W/\"387900691\"",
                "firstname": "2",
                "lastname": "42",
                "preferredcontactmethodcode": 1,
                "cam_retirementageint": 75,
                "contactid": "325a5cb7-97e5-ec11-bb3c-002248008c0f",
                "cam_birthdate": "1992-10-14T16:44:17Z",
                "cam_lastclientmeeting": "2025-05-12T12:05:00Z",
                "cam_potentiallyvulnerable": true,
                "familystatuscode": 1,
                "cam_title": 809130009,
                "cam_contactvulnerability": "809130000,809130001,809130002,809130003,809130004,809130005,809130006",
                "adviser_x002e_fullname": "Alan Crook"
            },
            {
                "@odata.type": "#Microsoft.Dynamics.CRM.contact",
                "@odata.etag": "W/\"383096182\"",
                "firstname": "Guiomar",
                "lastname": "De Wit",
                "preferredcontactmethodcode": 1,
                "contactid": "dd4c73bc-1e41-f011-877a-0022481aa695",
                "cam_birthdate": "1951-11-10T10:20:05Z",
                "cam_potentiallyvulnerable": false,
                "cam_title": 809130009,
                "adviser_x002e_fullname": "Alan Crook"
            },
            {
                "@odata.type": "#Microsoft.Dynamics.CRM.contact",
                "@odata.etag": "W/\"382709963\"",
                "firstname": "Amadeus",
                "lastname": "Zeni",
                "preferredcontactmethodcode": 1,
                "contactid": "de3e0874-de2a-ed11-9db2-0022481ab18e",
                "cam_birthdate": "1969-11-20T12:10:35Z",
                "cam_potentiallyvulnerable": false,
                "cam_title": 809130000,
                "adviser_x002e_fullname": "Alan Crook"
            },
            {
                "@odata.type": "#Microsoft.Dynamics.CRM.contact",
                "@odata.etag": "W/\"386928850\"",
                "firstname": "Eleuterio",
                "lastname": "Lambert",
                "preferredcontactmethodcode": 1,
                "contactid": "ddec9299-2c5d-ee11-8def-0022481b5507",
                "gendercode": 1,
                "cam_birthdate": "1997-08-18T04:45:02Z",
                "cam_potentiallyvulnerable": false,
                "familystatuscode": 1,
                "cam_title": 809130000,
                "adviser_x002e_fullname": "Alan Crook"
            },
            {
                "@odata.type": "#Microsoft.Dynamics.CRM.contact",
                "@odata.etag": "W/\"382379470\"",
                "firstname": "Sota",
                "lastname": "Pesce",
                "preferredcontactmethodcode": 1,
                "contactid": "d14ddbe7-7381-ef11-ac21-0022481b5bad",
                "gendercode": 2,
                "cam_birthdate": "1978-09-29T19:50:48Z",
                "cam_potentiallyvulnerable": false,
                "cam_title": 809130002,
                "adviser_x002e_fullname": "Alan Crook"
            },
            {
                "@odata.type": "#Microsoft.Dynamics.CRM.contact",
                "@odata.etag": "W/\"382944666\"",
                "firstname": "Abioye",
                "lastname": "Pesce",
                "preferredcontactmethodcode": 1,
                "contactid": "d94ddbe7-7381-ef11-ac21-0022481b5bad",
                "gendercode": 1,
                "cam_birthdate": "1993-11-13T04:32:20Z",
                "cam_potentiallyvulnerable": false,
                "cam_title": 809130000,
                "adviser_x002e_fullname": "Alan Crook"
            },
            {
                "@odata.type": "#Microsoft.Dynamics.CRM.contact",
                "@odata.etag": "W/\"386880601\"",
                "firstname": "Raisa",
                "lastname": "Abarca",
                "preferredcontactmethodcode": 1,
                "cam_retirementageint": 75,
                "contactid": "5d64fca4-98c6-ee11-9079-002248c6f659",
                "cam_birthdate": "1966-09-14T17:08:27Z",
                "cam_potentiallyvulnerable": false,
                "cam_title": 809130004,
                "adviser_x002e_fullname": "Alan Crook"
            },
            {
                "@odata.type": "#Microsoft.Dynamics.CRM.contact",
                "@odata.etag": "W/\"386906019\"",
                "firstname": "Ludmilla",
                "lastname": "Dickens",
                "preferredcontactmethodcode": 1,
                "contactid": "31f1e822-9608-f011-bae4-002248c76343",
                "gendercode": 1,
                "cam_birthdate": "2006-10-13T13:40:26Z",
                "cam_potentiallyvulnerable": false,
                "cam_title": 809130004,
                "adviser_x002e_fullname": "Alan Crook"
            },
            {
                "@odata.type": "#Microsoft.Dynamics.CRM.contact",
                "@odata.etag": "W/\"382743036\"",
                "firstname": "Bruce",
                "lastname": "Lyndon",
                "preferredcontactmethodcode": 1,
                "contactid": "2f745bd4-4827-f011-8c4e-6045bd0b04e5",
                "gendercode": 1,
                "cam_birthdate": "1992-03-30T16:50:09Z",
                "cam_potentiallyvulnerable": false,
                "cam_title": 809130000,
                "adviser_x002e_fullname": "Alan Crook"
            },
            {
                "@odata.type": "#Microsoft.Dynamics.CRM.contact",
                "@odata.etag": "W/\"383054567\"",
                "firstname": "Gerbald",
                "lastname": "Nyilas",
                "preferredcontactmethodcode": 1,
                "contactid": "9302d869-1a41-f011-8779-6045bd0b0c43",
                "cam_birthdate": "2009-11-27T22:21:20Z",
                "cam_potentiallyvulnerable": false,
                "cam_title": 809130009,
                "adviser_x002e_fullname": "Alan Crook"
            },
            {
                "@odata.type": "#Microsoft.Dynamics.CRM.contact",
                "@odata.etag": "W/\"383634966\"",
                "firstname": "Heard",
                "lastname": "Thorburn",
                "preferredcontactmethodcode": 1,
                "contactid": "0bfbb9c0-9926-f011-8c4d-6045bd0b0c43",
                "cam_birthdate": "1959-08-25T01:28:25Z",
                "cam_potentiallyvulnerable": false,
                "cam_title": 809130011,
                "adviser_x002e_fullname": "Alan Crook"
            },
            {
                "@odata.type": "#Microsoft.Dynamics.CRM.contact",
                "@odata.etag": "W/\"385215308\"",
                "firstname": "Kore",
                "lastname": "Horák",
                "preferredcontactmethodcode": 1,
                "contactid": "8139476e-9bfd-ef11-bae3-6045bd0b0c43",
                "cam_birthdate": "1976-07-22T15:34:22Z",
                "cam_potentiallyvulnerable": false,
                "cam_title": 809130009,
                "adviser_x002e_fullname": "Alan Crook"
            },
            {
                "@odata.type": "#Microsoft.Dynamics.CRM.contact",
                "@odata.etag": "W/\"386970365\"",
                "firstname": "Raimondo",
                "lastname": "Shimizu",
                "preferredcontactmethodcode": 1,
                "contactid": "47af1aeb-c74d-f011-877b-6045bd0b0fca",
                "cam_birthdate": "2000-04-13T07:36:35Z",
                "cam_potentiallyvulnerable": false,
                "adviser_x002e_fullname": "Alan Crook"
            },
            {
                "@odata.type": "#Microsoft.Dynamics.CRM.contact",
                "@odata.etag": "W/\"386995483\"",
                "firstname": "Åžahnaz",
                "lastname": "Azarola",
                "preferredcontactmethodcode": 1,
                "cam_retirementageint": 150,
                "contactid": "e6d6e940-1658-f011-bec2-6045bd0b0fca",
                "gendercode": 1,
                "cam_birthdate": "1965-04-06T02:14:10Z",
                "cam_potentiallyvulnerable": false,
                "cam_title": 809130000,
                "adviser_x002e_fullname": "Alan Crook"
            },
            {
                "@odata.type": "#Microsoft.Dynamics.CRM.contact",
                "@odata.etag": "W/\"385433577\"",
                "firstname": "Ioannes",
                "lastname": "Adcock",
                "preferredcontactmethodcode": 1,
                "cam_retirementageint": 65,
                "contactid": "0dd2bc85-7276-ef11-a670-6045bd0b2e58",
                "gendercode": 1,
                "cam_birthdate": "2004-07-06T06:40:54Z",
                "cam_potentiallyvulnerable": false,
                "familystatuscode": 2,
                "cam_title": 809130000,
                "adviser_x002e_fullname": "Alan Crook"
            },
            {
                "@odata.type": "#Microsoft.Dynamics.CRM.contact",
                "@odata.etag": "W/\"385490925\"",
                "firstname": "Abena",
                "lastname": "Filippi",
                "preferredcontactmethodcode": 1,
                "contactid": "6184746e-a0e3-ef11-9341-6045bd0e0ff3",
                "cam_birthdate": "1971-05-18T00:06:04Z",
                "cam_potentiallyvulnerable": false,
                "adviser_x002e_fullname": "Alan Crook"
            },
            {
                "@odata.type": "#Microsoft.Dynamics.CRM.contact",
                "@odata.etag": "W/\"382353059\"",
                "firstname": "Barend",
                "lastname": "Kraus",
                "preferredcontactmethodcode": 1,
                "contactid": "be78b0ee-bde7-ef11-9341-6045bd0e0ff3",
                "cam_birthdate": "1962-07-14T19:34:38Z",
                "cam_potentiallyvulnerable": false,
                "cam_title": 809130009,
                "adviser_x002e_fullname": "Alan Crook"
            },
            {
                "@odata.type": "#Microsoft.Dynamics.CRM.contact",
                "@odata.etag": "W/\"382690343\"",
                "firstname": "Usagi",
                "lastname": "Romeijnsen",
                "preferredcontactmethodcode": 1,
                "contactid": "253c3c62-9ec6-ef11-b8e8-6045bd0e0ff3",
                "gendercode": 1,
                "cam_birthdate": "1966-06-23T16:29:23Z",
                "cam_potentiallyvulnerable": false,
                "familystatuscode": 2,
                "cam_title": 809130009,
                "adviser_x002e_fullname": "Alan Crook"
            }
        ]
    }
    
    

    This endpoint retrieves a list of Contacts for a specific Adviser

    HTTP Request

    POST https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/cam_getadvisercontacts

    Fields

    Field Type Required Description
    adviserEmailAddress string Yes The Adviser's email address

    Response Fields

    Field Type Description
    cam_title int The title of the Contact as an integer. Possible Values (
    Sir: 809130009,
    Lord: 809130010,
    Lady: 809130011,
    Mr: 809130000,
    Ms: 809130001,
    Mrs: 809130002,
    Miss: 809130003,
    Dr: 809130004,
    Master: 809130005,
    Capt: 809130006,
    Prof: 809130007,
    Reverend: 809130008,
    Other: 809130012,
    Major: 809130013)
    firstname string The first name of the Contact
    middlename string The middle name(s) of the Contact
    lastname string The last name of the Contact
    nickname string The preferred name of the Contact
    contactid string The unique identifier of the Contact
    cam_birthdate DateTime The Contact's date of birth
    gendercode int The Contact's gender as an integer. Possible Values: (
    Male: 1,
    Female: 2)
    familystatuscode int The marital status of the Contact as an integer. Possible Values: (
    Single: 1,
    Married: 2,
    Civil Partner: 5,
    Divorced: 6,
    Cohabiting: 7,
    Widowed: 8)
    cam_residentfortax string Tax residence status of the Contact
    cam_potentiallyvulnerable bool Boolean representing whether the Contact is potentially vulnerable
    cam_contactvulnerability int An integer representing how the Contact is vulnerable. Possible Values: (
    Health: 809130000,
    Disability: 809130001,
    Life Events: 809130002,
    Resilience: 809130003,
    Capability: 809130004,
    Age: 809130005,
    Miscellaneous/Other: 809130006)
    cam_retirementageint int The age the Contact intends to retire
    preferredcontactmethodcode int An integer representing the Contact's preferred method of contact. Possible Values: (
    Fax: 4,
    Any: 1,
    Email: 2,
    Phone: 3,
    Mail: 5,
    Twitter: 6)
    cam_annualreviewfrequency int An integer representing the frequency of the Contact's review meetings. Possible Values: (
    Monthly: 809130000,
    Quarterly: 809130001,
    Half Yearly: 809130002,
    Annually: 809130003)
    cam_nextannualreviewdate DateTime The date of the Contact's next review meeting
    cam_lastclientmeeting DateTime The date of the last meeting with the Contact
    adviser_x002e_fullname string The name of the Contact's Adviser

    Get Individual Contact

    GET /contacts(fcdab33b-beaf-ea11-a812-000d3a86f6ce) HTTP/1.1
    Host: https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/
    OData-MaxVersion: 4.0
    OData-Version: 4.0
    Authorization: Bearer AuthorizationTokenHere
    
    

    The above command returns JSON structured like this:

    {
        "@odata.context": "https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/$metadata#contacts/$entity",
        "@odata.etag": "W/\"86575831\"",
        "contactid": "fcdab33b-beaf-ea11-a812-000d3a86f6ce",
        "cam_title": 809130005,
        "firstname": "Obi",
        "middlename": "Wan",
        "lastname": "Kenobi",
        "telephone1": "01275813700",
        "telephone2": null,
        "mobilephone": "07790963725",
        "emailaddress1": "BenKenobi@gmail.com",
        "cam_nationality": "GB",
        "gendercode": 1,
        "cam_ninumber": "JJ112234A",
        "address1_line1": "2 Sandy Hut Road",
        "address1_line2": "Mos Eisley",
        "address1_line3": null,
        "address1_city": "Tatooine",
        "address1_county": "Somerset",
        "address1_postalcode": "TA17AT",
        "cam_birthdate": "1977-05-03T23:00:00Z",
        "familystatuscode": 1,
        "cam_retirementageint": 65,
        "_cam_financialadviser_value": "d2ae4bdb-7424-e911-8129-00155d0a060c",
        "_cam_financialadvisercontact_value": "35c445bc-46d5-e911-813c-00155d0a060c",
        "createdon": "2020-07-22T13:49:45Z",
        "modifiedon": "2020-07-22T13:49:56Z"
      }
    
    

    This endpoint retrieves an individual Contact identified by their GUID.

    HTTP Request

    GET https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/contacts(GUID)

    URL Parameters

    Parameter Description
    GUID The GUID of the Contact to retrieve

    Get Contact ID & Scheme Ref

    POST  https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/cam_getcontactidschemeref HTTP/1.1
    Host: https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/
    Authorization: Bearer AuthorizationTokenHere
    Content-Type: application/json
    
    {
        "policyNo": "CT000000743",
        "platformInvestorNo": "MGI00026030"
    }
    
    

    The above command returns HTTP structured like this:

    {
        "@odata.context": "https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/$metadata#Microsoft.Dynamics.CRM.cam_getcontactidschemerefResponse",
        "contactId": "12cbdfa5-dcdc-dd11-b179-001517456d35",
        "schemeRef": "SSAS/00297",
        "response": {
            "@odata.type": "#Microsoft.Dynamics.CRM.expando",
            "responseKey": 0,
            "message": ""
        }
    }
    
    

    This endpoint retrieves the Contact ID and Scheme Ref of an inputted Policy Number or Platform Investor Number.

    HTTP Request

    POST https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/cam_getcontactidschemeref

    Fields

    Field Type Required Description
    policyNo string No The Policy number
    platformInvestorNo string No The Platform Investor number

    Response Fields

    Field Type Description
    contactId string The unique identifier of the associated Contact
    schemeRef string The Reference code of the associated Scheme

    Update Contact

    PATCH /contacts(fcdab33b-beaf-ea11-a812-000d3a86f6ce) HTTP/1.1
    Host: https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/
    Authorization: Bearer D365BearerTokenHere
    Content-Type: application/json
    
    {
        "address1_line1": "25 Corellia Street",
        "address1_line2": "",
        "address1_city": "Manchester",
        "address1_county": "Greater Manchester",
        "address1_postalcode": "M11 6DB",
        "cam_FinancialAdviserContact@odata.bind": "/contacts(c9b6c70f-ce0a-ee11-8f6e-0022481b5499)",
        "cam_financialadviser_Account@odata.bind": "/accounts(3b60b1fe-c7b2-ed11-83ff-0022481b59ce)"
    }
    
    

    The above command returns HTTP structured like this:

    HTTP/1.1 204 No Content
    OData-Version: 4.0
    OData-EntityId: [Organization URI]/api/data/v9.1/contacts(fcdab33b-beaf-ea11-a812-000d3a86f6ce)
    
    

    This endpoint updates an individual Contact identified by their GUID.

    HTTP Request

    PATCH https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/contacts(GUID)

    URL Parameters

    Parameter Description
    GUID The GUID of the Contact to update

    Fields

    See Create Contact for available fields to update. Please note that any lookup field names must be suffixed with "@odata.bind". For example, "cam_FinancialAdviserContact@odata.bind".

    Submit ATR

    POST  https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/cam_submitatr HTTP/1.1
    Host: https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/
    Authorization: Bearer AuthorizationTokenHere
    Content-Type: application/json
    
    {
        "clientId": 1774,
        "riskProfile": 7,
        "dateGenerated": "2020-04-05",
        "atrData": "[{\"question_id\": 1, \"question\": \"I would enjoy exploring investment opportunities for my money.\", \"response\": \"I strongly agree with this statement\"}, {\"question_id\": 2, \"question\": \"I would go for the best possible return even if there were risk involved.\", \"response\": \"Always\"}, {\"question_id\": 3, \"question\": \"How would you describe your typical attitude when making important financial decisions?\", \"response\": \"Very adventurous\"}, {\"question_id\": 4, \"question\": \"If I had money invested in shares I would be nervous about the stock market falling in the short term.\", \"response\": \"I strongly agree with this statement\"}]"
    }
    

    The above command returns HTTP structured like this:

    {
        "@odata.context": "https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/$metadata#Microsoft.Dynamics.CRM.cam_submitatrResponse",
        "contactId": "0e434ee4-c3aa-ec11-9841-00224800a81c",
        "response": {
            "@odata.type": "#Microsoft.Dynamics.CRM.expando",
            "responseKey": 0,
            "message": "ATR record created succesfully"
        }
    }
    
    

    This endpoint creates an Attitude to Risk record against a Contact.

    HTTP Request

    POST https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/cam_submitatr

    Fields

    Field Type Required Description
    clientId int Yes Client Reference Number
    riskProfile int Yes Risk Profile result between 1 and 10
    dateGenerated string Yes The date the ATR was generated. This must be parsable as DateTime
    atrData string Yes A Json formatted string of ATR Questionnaire Result data (see the example submission provided for the format)

    Response Fields

    Field Type Description
    contactId string The unique identifier of the Contact associated with the provided clientId input parameter

    Factfinds

    Get Client Factfind

    POST  https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/cam_getclientfactfind HTTP/1.1
    Host: https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/
    Authorization: Bearer AuthorizationTokenHere
    Content-Type: application/json
    
    {
        "contactId": "7f7b21f4-ad50-ee11-be6f-002248c6f6b4"
    }
    
    

    The above command returns HTTP structured like this:

    {
        "@odata.context": "https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/$metadata#Microsoft.Dynamics.CRM.cam_getclientfactfindResponse",
        "response": {
            "@odata.type": "#Microsoft.Dynamics.CRM.expando",
            "responseKey": 0,
            "message": "FactFind Retrieved"
        },
        "factFind": {
            "@odata.type": "#Microsoft.Dynamics.CRM.cam_factfind",
            "@odata.etag": "W/\"388344260\"",
            "cam_factfindid": "853b44eb-4366-f011-bec3-002248c68e0b",
            "cam_smoker": false,
            "_cam_employername_value": "c7ddf656-791b-404b-bf55-30ea43bc2206",
            "cam_bonusovertimefeescommissionetc": 1000.0000,
            "createdon": "2025-07-21T15:04:02Z",
            "cam_doyouhavealastingpowerofattorney": 0,
            "cam_stateofhealthmedicalconditions": 809130000,
            "cam_grosssalaryincome": 3000.0000,
            "cam_doyouhaveawill": 1,
            "_transactioncurrencyid_value": "30ff8a36-f408-ea11-a814-000d3a86d7e0",
            "attitudetorisk_x002e_cam_agreedcapacityforloss": 809130000,
            "employer_x002e_name": "24 Globe Limited"
        }
    }
    

    This endpoint retrieves the latest Factfind for a given Contact

    HTTP Request

    POST https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/cam_getclientfactfind

    Fields

    Field Type Required Description
    contactId string Yes The unique identifier of the Contact

    Response Fields

    Field Type Description
    factFind EntityCollection Returns select fields from the latest Factfind record
    cam_factfindid string String representative of the Factfind record's guid
    cam_placeofbirth string The Contact's place of birth
    cam_stateofhealthmedicalconditions int Integer representative of the state of a Contact's health. Possible values: (
    Excellent: 809130000,
    Good: 809130001,
    Poor: 809130002)
    cam_smoker bool Is the Contact a smoker?
    cam_employmentstatus int Integer representative of a Contact's employment status. Possible Values: (
    Employed: 809130000,
    Self-Employed: 809130001,
    Director: 809130002,
    Retired: 809130003,
    Carer: 809130004,
    Other: 809130005)
    employer_x002e_name string The name of the Contact's employer
    cam_occupation string The Contact's occupation
    cam_employmentstarted DateTime The date the Contact started employment
    cam_grosssalaryincome decimal The Contact's gross salary/income
    cam_bonusovertimefeescommissionetc decimal The Contact's total bonuses, overtime, fees, and commission
    cam_occupationalpensions decimal The Contact's occupational pension(s) value
    cam_otherincome decimal The Contact's other income
    cam_totalexpenditure decimal The Contact's total expenditure
    cam_doyouhaveawill bool Does the Contact have a will?
    cam_mywillisdated DateTime Date of the Contact's will
    cam_doyouhavealastingpowerofattorney bool Does the Contact have an LPA in place?
    cam_areyouthebeneficiaryofatrusttrustincome string Text describing if the Contact is the beneficiary of a trust/trust income
    cam_risklevel int Contact's Risk Level as a representative integer. Possible Values: (
    1: 809130000,
    2: 809130001,
    3: 809130002,
    4: 809130003,
    5: 809130004,
    6: 809130005,
    7: 809130006,
    8: 809130007,
    9: 809130008,
    10: 809130009)
    attitudetorisk_x002e_cam_agreedcapacityforloss int Representative integer of the Contact's capacity for loss. Possible values: (
    High: 809130000,
    Medium: 809130001,
    Low: 809130002,
    N/A: 809130003)

    Get Client Assets

    POST  https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/cam_getclientassets HTTP/1.1
    Host: https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/
    Authorization: Bearer AuthorizationTokenHere
    Content-Type: application/json
    
    {
        "contactId": "7f7b21f4-ad50-ee11-be6f-002248c6f6b4"
    }
    
    

    The above command returns HTTP structured like this:

    {
        "@odata.context": "https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/$metadata#Microsoft.Dynamics.CRM.cam_getclientassetsResponse",
        "response": {
            "@odata.type": "#Microsoft.Dynamics.CRM.expando",
            "responseKey": 0,
            "message": "7 Assets found"
        },
        "assets": [
            {
                "@odata.type": "#Microsoft.Dynamics.CRM.expando",
                "name": "Vartan Sacco//15 WEY CLOSE, ALDERSHOT  ",
                "assetType": "Property",
                "value@odata.type": "#Decimal",
                "value": 650000.0000,
                "valuationDate@odata.type": "#DateTimeOffset",
                "valuationDate": "2025-04-01T23:00:00Z",
                "purchasePrice@odata.type": "#Decimal",
                "purchasePrice": 500000.0000000000,
                "purchaseDate@odata.type": "#DateTimeOffset",
                "purchaseDate": "2018-01-01T00:00:00Z"
            },
            {
                "@odata.type": "#Microsoft.Dynamics.CRM.expando",
                "name": "Vartan Sacco/Advance Mortgage Funding Limited/-  ",
                "assetType": "Protection",
                "productType": "Personal Protection",
                "value@odata.type": "#Decimal",
                "value": 5000.0000,
                "valuationDate@odata.type": "#DateTimeOffset",
                "valuationDate": "2025-07-23T23:00:00Z",
                "sumAssuredBenefit@odata.type": "#Decimal",
                "sumAssuredBenefit": 56456.0000,
                "premiumType": "Guaranteed",
                "defferredWaitingPeriod": "test",
                "benefitTerm": "65",
                "underwritingStatus": "Ordinary Rates",
                "provider": {
                    "@odata.type": "#Microsoft.Dynamics.CRM.cam_provider",
                    "cam_provider": "1ecbe041-9c20-ee11-9967-002248c6f5ad",
                    "__DisplayName__": "Advance Mortgage Funding Limited"
                }
            },
            {
                "@odata.type": "#Microsoft.Dynamics.CRM.expando",
                "name": "Vartan Sacco / Platform One Limited / Property / Property Test",
                "assetType": "Property",
                "productType": "Property",
                "provider": {
                    "@odata.type": "#Microsoft.Dynamics.CRM.cam_provider",
                    "cam_provider": "1b265d87-b1bc-eb11-8235-0022481a6702",
                    "__DisplayName__": "Platform One Limited"
                }
            },
            {
                "@odata.type": "#Microsoft.Dynamics.CRM.expando",
                "name": "Vartan Sacco / Aegon (Cofunds) / Onshore Bond / Test 2",
                "assetType": "Investment",
                "productType": "Onshore Bond",
                "provider": {
                    "@odata.type": "#Microsoft.Dynamics.CRM.cam_provider",
                    "cam_provider": "d6b14458-26c6-ec11-a7b5-0022481ab94b",
                    "__DisplayName__": "Aegon (Cofunds)"
                }
            },
            {
                "@odata.type": "#Microsoft.Dynamics.CRM.expando",
                "name": "Vartan Sacco / Adrdn Funds Managers Limited / Additional Voluntary Contribution / Test 3",
                "assetType": "Pension",
                "productType": "Additional Voluntary Contribution",
                "value@odata.type": "#Decimal",
                "value": 254.0000,
                "valuationDate@odata.type": "#DateTimeOffset",
                "valuationDate": "2025-07-24T23:00:00Z",
                "provider": {
                    "@odata.type": "#Microsoft.Dynamics.CRM.cam_provider",
                    "cam_provider": "4089b9d9-e077-ed11-81ac-0022481b5ec4",
                    "__DisplayName__": "Adrdn Funds Managers Limited"
                },
                "wrapperApplication": {
                    "@odata.type": "#Microsoft.Dynamics.CRM.cam_wrapperapplication",
                    "cam_wrapperapplication": "b2e47fce-d55b-f011-bec2-0022481aa665",
                    "__DisplayName__": "Kambujiya Cannon/ ML Invest SIPP/ 08/07/2025 08:30"
                }
            },
            {
                "@odata.type": "#Microsoft.Dynamics.CRM.expando",
                "name": "Vartan Sacco / Advance Mortgage Funding Limited / Personal Protection / Test 4",
                "assetType": "Protection",
                "productType": "Personal Protection",
                "premiumType": "Guaranteed",
                "premiumFrequency": "Quarterly",
                "defferredWaitingPeriod": "56",
                "benefitTerm": "45",
                "underwritingStatus": "Ordinary Rates",
                "provider": {
                    "@odata.type": "#Microsoft.Dynamics.CRM.cam_provider",
                    "cam_provider": "1ecbe041-9c20-ee11-9967-002248c6f5ad",
                    "__DisplayName__": "Advance Mortgage Funding Limited"
                }
            },
            {
                "@odata.type": "#Microsoft.Dynamics.CRM.expando",
                "name": "DSIPP/10511",
                "assetType": "Pension Scheme",
                "productType": "SIPP - Directus",
                "value@odata.type": "#Decimal",
                "value": 5044.0000
            }
        ]
    }
    
    

    This endpoint retrieves a list of Assets for a given Contact

    HTTP Request

    POST https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/cam_getclientassets

    Fields

    Field Type Required Description
    contactId string Yes The unique identifier of the Contact

    Response Fields

    Field Type Description
    assets EntityCollection Returns select fields from the Assets owned by this Contact*
    name string Name of the asset
    assetType string The type of asset (e.g. Pension, Investment, Property)
    productType string The sub-category of the asset type (e.g. ISA, GIA, SSAS, DSIPP)
    value decimal The monetary value of the asset
    valuationDate DateTime The date on which the asset value was acquired
    provider entity Entity containing the Provider's name and guid
    wrapperApplication entity Entity containing the Wrapper Application's name and guid
    purchasePrice decimal Property Exclusive - the price of the property when purchased
    purchaseDate DateTime Property Exclusive - the date the property was purchased
    sumAssuredBenefit decimal Protection Exclusive - the sum assured benefit amount
    premiumType string Protection Exclusive - the premium type
    premiumFrequency string Protection Exclusive - the premium frequency
    deferredWaitingPeriod string Protection Exclusive - the deferred waiting period
    benefitTerm string Protection Exclusive - The benefit term
    underwritingStatus string Protection Exclusive - The underwriting terms

    Get Client Liabilities

    POST  https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/cam_getclientliabilities HTTP/1.1
    Host: https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/
    Authorization: Bearer AuthorizationTokenHere
    Content-Type: application/json
    
    {
        "contactId": "7f7b21f4-ad50-ee11-be6f-002248c6f6b4"
    }
    
    

    The above command returns HTTP structured like this:

    {
        "@odata.context": "https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/$metadata#Microsoft.Dynamics.CRM.cam_getclientliabilitiesResponse",
        "response": {
            "@odata.type": "#Microsoft.Dynamics.CRM.expando",
            "responseKey": 0,
            "message": "3 Liabilities found"
        },
        "liabilities": [
            {
                "@odata.type": "#Microsoft.Dynamics.CRM.cam_liability",
                "@odata.etag": "W/\"387906603\"",
                "_transactioncurrencyid_value": "30ff8a36-f408-ea11-a814-000d3a86d7e0",
                "cam_name": "Vartan Sacco / Car Finance / 31/03/2025 13:39",
                "cam_balance": 350.0000,
                "cam_liabilitytype": 809130003,
                "cam_enddate": "2025-04-21T23:00:00Z",
                "cam_interestrate": 6.0,
                "cam_liabilityid": "75087690-350e-f011-9989-6045bd0b0c43"
            },
            {
                "@odata.type": "#Microsoft.Dynamics.CRM.cam_liability",
                "@odata.etag": "W/\"387906606\"",
                "_transactioncurrencyid_value": "30ff8a36-f408-ea11-a814-000d3a86d7e0",
                "cam_name": "Vartan Sacco / Credit Card / 31/03/2025 13:39",
                "cam_balance": 550.0000,
                "cam_liabilitytype": 809130001,
                "cam_enddate": "2025-05-22T23:00:00Z",
                "cam_interestrate": 5.0,
                "cam_liabilityid": "76087690-350e-f011-9989-6045bd0b0c43"
            },
            {
                "@odata.type": "#Microsoft.Dynamics.CRM.cam_liability",
                "@odata.etag": "W/\"387906609\"",
                "_transactioncurrencyid_value": "30ff8a36-f408-ea11-a814-000d3a86d7e0",
                "cam_name": "Vartan Sacco / Mortgage / 15/05/2025 13:50",
                "cam_balance": 7000.0000,
                "cam_liabilitytype": 809130000,
                "cam_enddate": "2025-05-22T23:00:00Z",
                "cam_interestrate": 4.0,
                "cam_liabilityid": "6b1b6e9d-9331-f011-8c4e-6045bd0b0fca"
            }
        ]
    }
    
    

    This endpoint retrieves a list of Liabilities for a given Contact

    HTTP Request

    POST https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/cam_getclientliabilities

    Fields

    Field Type Required Description
    contactId string Yes The unique identifier of the Contact

    Response Fields

    Field Type Description
    liabilities EntityCollection Returns select fields from the Liabilities owned by this Contact
    cam_liabilityid string String representing the guid of the Liability record
    cam_name string The name of the Liability
    cam_liabilitytype int Integer representing the type of Liability. Possible Values: Values (
    Mortgage: 809130000,
    Credit Card: 809130001,
    Loan: 809130002,
    Car Finance: 809130003,
    Other: 809130004)
    cam_balance decimal The balance of the Liability
    cam_interestrate float The interest rate of the Liability
    cam_enddate DateTime The end date of the Liability

    Get Client Relationships

    POST  https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/cam_getclientrelationships HTTP/1.1
    Host: https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/
    Authorization: Bearer AuthorizationTokenHere
    Content-Type: application/json
    
    {
        "contactId": "58b16377-0cf9-ef11-bae3-6045bd0be2a0"
    }
    
    

    The above command returns HTTP structured like this:

    {
        "@odata.context": "https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/$metadata#Microsoft.Dynamics.CRM.cam_getclientrelationshipsResponse",
        "dependentCount": 1,
        "response": {
            "@odata.type": "#Microsoft.Dynamics.CRM.expando",
            "responseKey": 0,
            "message": "2 Relationships found"
        },
        "relationships": [
            {
                "@odata.type": "#Microsoft.Dynamics.CRM.connection",
                "@odata.etag": "W/\"383014234\"",
                "connectionid": "1a5169cb-6806-f011-bae3-002248c76343",
                "role_x002e_name": "Spouse/Partner",
                "contact_x002e_fullname": "Kacper Burke",
                "contact_x002e_cam_birthdate": "1991-02-08T16:47:27Z"
            },
            {
                "@odata.type": "#Microsoft.Dynamics.CRM.connection",
                "@odata.etag": "W/\"387946023\"",
                "cam_dependentuntil": "2025-07-21T23:00:00Z",
                "cam_financiallydependent": 1,
                "connectionid": "0c3843c8-0c67-f011-bec2-6045bd0b0c43",
                "role_x002e_name": "Child",
                "contact_x002e_fullname": "Cola Albu",
                "contact_x002e_cam_birthdate": "2006-03-20T13:13:30Z"
            }
        ]
    }
    
    

    This endpoint retrieves a list of Relationships for a given Contact

    HTTP Request

    POST https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/cam_getclientrelationships

    Fields

    Field Type Required Description
    contactId string Yes The unique identifier of the Contact

    Response Fields

    Field Type Description
    dependentCount int Number of Connections considered dependents
    relationships EntityCollection Returns select fields from the Connections related to a Contact record
    connectionid string The unique identifier of the Connection record
    cam_financiallydependent int Integer representative of whether the Connection is financially dependent. Possible Values: (
    Yes: 1,
    No: 0)
    cam_dependentuntil DateTime The date the Connection is dependent until
    role_x002e_name string The relationship type
    contact_x002e_fullname string The name of the person connected with this Contact
    contact_x002e_cam_birthdate DateTime The date of birth of the person connected with this Contact

    Financial Advisers

    Get Financial Adviser Contacts

    GET /contacts?$select=firstname,lastname,contactid&$filter=_parentcustomerid_value%20eq%20d2ae4bdb-7424-e911-8129-00155d0a060c HTTP/1.1
    Host: https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/
    Authorization: Bearer AuthorizationTokenHere
    Content-Type: application/json
    
    

    The above command returns JSON structured like this:

    {
        "@odata.context": "https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/$metadata#contacts(firstname,lastname,contactid)",
        "value": [
            {
                "@odata.etag": "W/\"49930068\"",
                "firstname": "Darth",
                "lastname": "Vader",
                "contactid": "dadf71aa-bbe0-490c-9b03-5302e53d0f19"
            },
            {
                "@odata.etag": "W/\"49930068\"",
                "firstname": "Emperor",
                "lastname": "Palpatine",
                "contactid": "0a6c9a3f-f6b1-49de-9aaf-8543c71fb9da"
            }
        ]
    }
    

    This query returns the Name and ID fields of all Contacts for the Financial Adviser Firm specified in the url query.

    HTTP Request

    GET https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/contacts?$select=firstname,lastname,contactid&$filter=_parentcustomerid_value%20eq%20FirmId

    URL Parameters

    Parameter Description
    FirmId The GUID for the Financial Adviser Firm

    Create Financial Adviser Contact

    This endpoint creates a Financial Adviser Contact.

    POST /cam_CreateFinancialAdviserContact HTTP/1.1
    Host: https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/
    Authorization: Bearer AuthorizationTokenHere
    Content-Type: application/json
    
    {
        "accountId": "3b60b1fe-c7b2-ed11-83ff-0022481b59ce",
        "title": 809130000,
        "firstName": "John",
        "lastName": "Smith"
    }
    

    The above command returns HTTP structured like this:

    HTTP/1.1 
    
    {
        "@odata.context": "https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/$metadata#Microsoft.Dynamics.CRM.cam_CreateFinancialAdviserContactResponse",
        "financialAdviserContactId": "accffae2-5188-ee11-be36-002248c6f659",
        "response": {
            "@odata.type": "#Microsoft.Dynamics.CRM.expando",
            "responseKey": 0,
            "message": "Financial Adviser Contact created succesfully"
        }
    }
    
    

    The above command returns JSON structured like this:

    {
        "@odata.context": "https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/$metadata#Microsoft.Dynamics.CRM.cam_CreateFinancialAdviserContactResponse",
        "financialAdviserContactId": "accffae2-5188-ee11-be36-002248c6f659",
        "response": {
            "@odata.type": "#Microsoft.Dynamics.CRM.expando",
            "responseKey": 0,
            "message": "Financial Adviser Contact created succesfully"
        }
    }
    

    HTTP Request

    POST https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/cam_CreateFinancialAdviserContact

    Fields

    Field Type Required Description
    accountId string Yes The account GUID for the Financial Adviser Firm
    title int Yes Allowed Values (
    Mr: 809130000,
    Ms: 809130001,
    Mrs: 809130002,
    Miss: 809130003,
    Dr: 809130004,
    Master: 809130005,
    Capt: 809130006,
    Prof: 809130007,
    Reverend: 809130008,
    Sir: 809130009,
    Lord: 809130010,
    Lady: 809130011,
    Other: 809130012)
    firstName string Yes The Financial Adviser Contact's First Name
    lastName string Yes The Financial Adviser Contact's Last Name
    emailAddress string No The Email Address of the Financial Adviser

    Response Fields

    Field Type Description
    financialAdviserContactId string GUID for the newly created Financial Adviser Contact
    response object See Generic Api Response Fields

    Schemes

    Create Scheme

    POST  https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/cam_createscheme HTTP/1.1
    Host: https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/
    Authorization: Bearer D365BearerTokenHere
    Content-Type: application/json
    
    {
        "contactId": "fcdab33b-beaf-ea11-a812-000d3a86f6ce",
        "benefitApplicationId": "6d2d4d9e-b9e5-4594-b793-4a2dadade6b9",
        "schemeType": 16,
        "sippType": 809130003
    }
    
    

    The above command returns HTTP structured like this:

    {
        "@odata.context": "https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/$metadata#Microsoft.Dynamics.CRM.cam_createschemeResponse",
        "schemeReference": "MLSIPP/00001",
        "response": {
            "@odata.type": "#Microsoft.Dynamics.CRM.expando",
            "responseKey": 0,
            "message": ""
        },
    }
    
    

    HTTP Request

    POST https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/cam_createscheme

    Body Data

    Field Type Required Description
    contactId string Yes The GUID of the contact the Scheme is for
    schemeType int Yes Allowed Values (ML SIPP: 16, 17)
    sippType int Yes Allowed Values (809130003, 809130005, 809130006, 809130007, 809130008, 809130009, 809130010, 809130011, 809130012, 809130013, 809130014,809130015)
    For more information on what SIPP Type to use for your firm, please contact Morgan Lloyd
    benefitApplicationId string No The GUID of the Benefit Application for the new scheme
    beneficiaryFund bool No Set to True if the client is a Beneficiary Fund
    ongoingAdviserFeePercentage decimal No The Ongoing Adviser Fee as a Percentage Decimal (must be between 0 and 100)
    platformFeePercentage decimal No The Platform Fee as a Percentage Decimal (must be between 0 and 100)
    investmentCostsPercentage decimal No The Investment Costs as a Percentage Decimal (must be between 0 and 100)

    Response Fields

    Field Type Description
    schemeReference string reference of scheme created
    response object See Generic Api Response Fields

    Update Scheme

    POST  https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/cam_updatescheme HTTP/1.1
    Host: https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/
    Authorization: Bearer D365BearerTokenHere
    Content-Type: application/json
    
    {
        "schemeRef": 16,
        "ongoingAdviserFeePercentage": 40,
        "platformFeePercentage": 20,
        "investmentCostsPercentage": 10
    }
    
    

    The above command returns HTTP structured like this:

    {
        "@odata.context": "https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/$metadata#expando/$entity",
        "@odata.type": "#Microsoft.Dynamics.CRM.expando",
        "responseKey": 200,
        "message": "Updated OK"
    }
    
    

    HTTP Request

    POST https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/cam_updatescheme

    Body Data

    Field Type Required Description
    schemeRef string Yes The Scheme Reference of the Scheme to update
    ongoingAdviserFeePercentage* decimal No The Ongoing Adviser Fee as a Percentage Decimal (must be greater than 0 and less than or equal to 100)
    platformFeePercentage* decimal No The Platform Fee as a Percentage Decimal (must be greater than 0 and less than or equal to 100)
    investmentCostsPercentage* decimal No The Investment Costs as a Percentage Decimal (must be greater than 0 and less than or equal to 100)

    Response Fields

    Field Type Description
    response object See Generic Api Response Fields

    Bulk Update Schemes

    POST  https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/cam_bulkupdateschemes HTTP/1.1
    Host: https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/
    Authorization: Bearer D365BearerTokenHere
    Content-Type: application/json
    
    {
        "schemeUpdates": "[{\"schemeRef\":\"22\",\"ongoingAdviserFeePercentage\":5,\"platformFeePercentage\":1.5,\"investmentCostsPercentage\":2},{\"schemeRef\":\"23\",\"ongoingAdviserFeePercentage\":7.5,\"platformFeePercentage\":3,\"investmentCostsPercentage\":2.5},{\"schemeRef\":\"24\",\"ongoingAdviserFeePercentage\":3,\"platformFeePercentage\":2,\"investmentCostsPercentage\":1.5}]"
    }
    
    

    The above command returns HTTP structured like this:

    {
        "@odata.context": "https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/$metadata#expando/$entity",
        "@odata.type": "#Microsoft.Dynamics.CRM.expando",
        "responseKey": 200,
        "message": "{\"successfulUpdates\":[\"22\",\"23\"],\"failedUpdates\":[{\"schemeRef\":\"24\",\"error\":\"Scheme with Ref 24 cannot be found\"}]}"
    }
    
    

    The JSON tab shows the required JSON structure for the Bulk Update Schemes command. The JSON should then be escaped and submitted as a single string value as shown in the HTTP tab.

    {
        "schemeUpdates": [
            {
                "schemeRef": "22",
                "ongoingAdviserFeePercentage": 5,
                "platformFeePercentage": 1.5,
                "investmentCostsPercentage": 2
            },
            {
                "schemeRef": "23",
                "ongoingAdviserFeePercentage": 7.5,
                "platformFeePercentage": 3,
                "investmentCostsPercentage": 2.5
            },
            {
                "schemeRef": "24",
                "ongoingAdviserFeePercentage": 3,
                "platformFeePercentage": 2,
                "investmentCostsPercentage": 1.5
            }
        ]
    }
    
    

    HTTP Request

    POST https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/cam_bulkupdateschemes

    Body Data

    Field Type Required Description
    schemeUpdates string Yes A JSON array of scheme updates as a single string value.

    Scheme Updates JSON

    Field Type Required Description
    schemeRef string Yes The unique Scheme reference number
    ongoingAdviserFeePercentage* decimal No The Ongoing Adviser Fee as a Percentage Decimal (must be greater than 0 and less than or equal to 100)
    platformFeePercentage* decimal No The Platform Fee as a Percentage Decimal (must be greater than 0 and less than or equal to 100)
    investmentCostsPercentage* decimal No The Investment Costs as a Percentage Decimal (must be greater than 0 and less than or equal to 100)

    Response Fields

    Field Type Description
    response object See Generic Api Response Fields
    message string This is contained in the response object. A JSON object that contains the schemes that were updated successfully (successfulUpdates) and the schemes that failed to update (failedUpdates).

    Message JSON

    Field Type Description
    successfulUpdates array This contains the list of scheme references that were updated successfully as an array of strings.
    failedUpdates array This contains the list of scheme references that failed to update as an array of JSON objects. Each object contains the scheme reference (schemeRef) as a string and the error message (error) as a string.

    Get Scheme by Scheme Ref

    POST https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/cam_getscheme HTTP/1.1
    Host: https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/
    Authorization: Bearer D365BearerTokenHere
    Content-Type: application/json
    
    {
        "schemeRef": "SSAS/01407"
    }
    
    

    The above command returns HTTP structured like this:

    {
        "@odata.context": "https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/$metadata#Microsoft.Dynamics.CRM.cam_getschemeResponse",
        "schemeId": "479b5f1e-005c-eb11-a812-000d3a0cce21",
        "crystallisedFundAmount": 0,
        "uncrystallisedFundAmount": 0,
        "totalBankBalance": -86.4700,
        "ongoingAdviserFeePercentage": 3,
        "investmentCostsPercentage": 36.05,
        "platformFeesPercentage": 3.50,
        "fundsLastCalculatedDate": "2023-02-16T00:00:00Z",
        "response": {
            "@odata.type": "#Microsoft.Dynamics.CRM.expando",
            "responseKey": 0,
            "message": ""
        }
    }
    
    

    This endpoint retrieves Scheme information using an inputted Scheme Reference.

    HTTP Request

    POST https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/cam_getscheme

    Body Data

    Field Type Required Description
    schemeRef string Yes The Scheme Reference field

    Response Fields

    Field Type Description
    schemeId string Unique Identifier for the Scheme
    crystallisedFundAmount Decimal Crystallised Fund Amount
    uncrystallisedFundAmount Decimal Uncrystallised Fund Amount
    totalBankBalance Decimal The Total Bank Balance of the Scheme
    ongoingAdviserFeePercentage Decimal The Ongoing Adviser Fee as a Percentage
    investmentCostsPercentage Decimal The Investment Costs as a Percentage
    platformFeesPercentage Decimal The Platform Fees as a Percentage
    fundsLastCalculatedDate Date Date of last calculation

    Get Contact ID & Scheme Ref

    POST  https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/cam_getcontactidschemeref HTTP/1.1
    Host: https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/
    Authorization: Bearer AuthorizationTokenHere
    Content-Type: application/json
    
    {
        "policyNo": "CT000000743",
        "platformInvestorNo": "MGI00026030"
    }
    
    

    The above command returns HTTP structured like this:

    {
        "@odata.context": "https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/$metadata#Microsoft.Dynamics.CRM.cam_getcontactidschemerefResponse",
        "contactId": "12cbdfa5-dcdc-dd11-b179-001517456d35",
        "schemeRef": "SSAS/00297",
        "response": {
            "@odata.type": "#Microsoft.Dynamics.CRM.expando",
            "responseKey": 0,
            "message": ""
        }
    }
    
    

    This endpoint retrieves the Contact ID and Scheme Ref of an inputted Policy Number or Platform Investor Number.

    HTTP Request

    POST https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/cam_getcontactidschemeref

    Fields

    Field Type Required Description
    policyNo string No The Policy number
    platformInvestorNo string No The Platform Investor number

    Response Fields

    Field Type Description
    contactId string The unique identifier of the associated Contact
    schemeRef string The Reference code of the associated Scheme

    Get Scheme Review Date

    GET https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/cam_schemes HTTP/1.1
    Host: https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/
    Authorization: Bearer D365BearerTokenHere
    
    

    The above command returns HTTP structured like this:

    {
        "@odata.context": "https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/$metadata#cam_schemes(cam_schemeid,cam_reviewdate)",
        "value": [
            {
                "@odata.etag": "W/\"91470009\"",
                "cam_schemeid": "de2a82e1-0db0-dd11-bb47-001517456d34",
                "cam_reviewdate": "2020-10-13"
            }
        ]
    }
    
    

    Example HTTP Request

    GET https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/cam_schemes?$filter=cam_schemeref eq 'MLSIPP/12345'&$select=cam_schemeid,cam_reviewdate

    URL Query Parameters

    Key Value Description
    $filter cam_schemeref eq '{mySchemeRef}' The filter parameter can be used retrieve a scheme by its reference string
    $select cam_schemeid,cam_reviewdate The select parameter can be used to specify individual fields returned in the request. If no select parameter is used all fields will be returned.

    Beneficiaries

    Create Beneficiary

    POST  cam_createbeneficiaries HTTP/1.1
    Host: https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/
    Authorization: Bearer AuthorizationTokenHere
    Content-Type: application/json
    
    {
        "schemeReference": "MLSIPP/00001",
        "cam_nameofbeneficiary": "Pepper Pots",
        "cam_percentageoffund": 50.00,
        "cam_nominationdate": "2020-05-26",
        "cam_relationship": "Wife",
        "cam_address_line1": "10880 Malibu Point",
        "cam_address_line2": null,
        "cam_address_line3": null,
        "cam_city": "Bristol",
        "cam_county": "",
        "cam_postcode": "BS200DD",
        "cam_country": ""
    }
    
    

    The above command returns HTTP structured like this:

    {
    
        "@odata.context": "https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/$metadata#Microsoft.Dynamics.CRM.cam_createbeneficiariesResponse",
        "response": {
            "@odata.type": "#Microsoft.Dynamics.CRM.expando",
            "responseKey": 0,
            "message": ""
        },
        "beneficiary": {
            "@odata.type": "#Microsoft.Dynamics.CRM.cam_nominationofbeneficiary",
            "_cam_schememember_value": "af4e352a-82d5-ea11-a813-000d3a86d7e0",
            "cam_nameofbeneficiary": "Pepper Pots",
            "cam_percentageoffund": 50,
            "cam_nominationdate": "2020-05-26T00:00:00Z",
            "cam_relationship": "Wife",
            "cam_address_line1": "10880 Malibu Point",
            "cam_city": "Bristol",
            "cam_county": "",
            "cam_postcode": "BS200DD",
            "cam_country": ""
        },
        "beneficiaryId": {
            "@odata.type": "#Microsoft.Dynamics.CRM.cam_nominationofbeneficiary",
            "cam_nominationofbeneficiaryid": "ef2c97fb-faf0-ea11-a815-000d3a86f6ce"
        }
    }
    
    

    This endpoint creates a Beneficiary.

    HTTP Request

    POST https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/cam_createbeneficiaries

    Fields

    Field Type Required Description
    schemeReference string Yes The Scheme's unique reference
    cam_nameofbeneficiary string Yes The Beneficiaries Name
    cam_percentageoffund string Yes The Beneficiaries Percentage of Fund
    cam_nominationdate string Yes The date the Beneficiary is nominated
    cam_relationship string Yes The Beneficiaries Relationship to Policy Holder
    cam_address_line1 string Yes The Beneficiaries Address Line 1
    cam_address_line2 string No The Beneficiaries Address Line 2
    cam_address_line3 string No The Beneficiaries Address Line 3
    cam_city string Yes The Beneficiaries City or Town
    cam_county string No The Beneficiaries County
    cam_country string No The Beneficiaries Country of Residence
    cam_postcode string Yes The Beneficiaries Postcode

    Response Fields

    Field Type Description
    beneficiary object Beneficiary object
    beneficiaryId object Object containing the newly created beneficiary Id
    response object See Generic Api Response Fields

    Get All Beneficiaries

    GET  https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/cam_nominationofbeneficiaries HTTP/1.1
    Host: https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/
    Authorization: Bearer AuthorizationTokenHere
    
    

    The above command returns JSON structured like this:

    "@odata.context": "https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/$metadata#cam_nominationofbeneficiaries",
    "value": [
        {
            "@odata.etag": "W/\"79318879\"",
            "_cam_memberapplication_value": "cff27adf-19a2-ea11-a812-000d3a86d63e",
            "cam_postcode": "BS6 5TF",
            "createdon": "2020-05-30T02:04:20Z",
            "cam_nominationofbeneficiaryid": "d0f27adf-19a2-ea11-a812-000d3a86d63e",
            "modifiedon": "2020-05-30T02:04:27Z",
            "cam_beneficiarystatus": 1,
            "cam_percentageoffund": 100.0000000000,
            "cam_country": "GB",
            "cam_nameofbeneficiary": "M Yo Da",
            "cam_address_line1": "1 Forest Street",
            "cam_address_line3": "Dagobah",
            "_cam_schememember_value": "edf27adf-19a2-ea11-a812-000d3a86d63e",
            "cam_nominationdate": "2020-05-29T23:00:00Z",
            "cam_relationship": "Jedi Master",
            "cam_address_line2": null,
            "cam_city": null,
            "cam_county": null
        },
        {
            "@odata.etag": "W/\"81153666\"",
            "_cam_memberapplication_value": "cadd7c2c-7ea6-ea11-a812-000d3a86d63e",
            "cam_postcode": "WS14 9ET",
            "createdon": "2020-06-04T16:12:24Z",
            "cam_nominationofbeneficiaryid": "cbdd7c2c-7ea6-ea11-a812-000d3a86d63e",
            "modifiedon": "2020-06-04T16:12:26Z",
            "cam_beneficiarystatus": 1,
            "cam_percentageoffund": 100.0000000000,
            "cam_country": "GB",
            "cam_nameofbeneficiary": "Mr Ben Ficiary",
            "cam_address_line1": "Waverly Court",
            "cam_address_line3": "Lichfield",
            "_cam_schememember_value": "cedd7c2c-7ea6-ea11-a812-000d3a86d63e",
            "cam_nominationdate": "2020-06-03T23:00:00Z",
            "cam_relationship": "Relation",
            "cam_address_line2": "Wiltell Road",
            "cam_city": null,
            "cam_county": null
        }]
    

    This endpoint retrieves all Beneficiaries.

    HTTP Request

    GET https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/cam_nominationofbeneficiaries

    Get Beneficiaries By Scheme Ref

    POST  https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/cam_schemebeneficiaries HTTP/1.1
    Host: https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/
    Authorization: Bearer AuthorizationTokenHere
    Content-Type: application/json
    
    {
        "schemeReference": "MLSIPP/01101"
    }
    
    

    The above command returns HTTP structured like this:

    
    {
        "@odata.context": "https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/$metadata#cam_schemes",
        "value": [
            {
                "@odata.type": "#Microsoft.Dynamics.CRM.cam_scheme",
                "@odata.etag": "W/\"199521447\"",
                "cam_schemeid": "ee42fe31-07c6-ec11-a7b5-0022481abca3",
                "nom_x002e_cam_nameofbeneficiary": "beneficiary test",
                "nom_x002e_cam_percentageoffund": 100.0000000000,
                "nom_x002e_cam_nominationofbeneficiaryid": "430bed4f-07c6-ec11-a7b5-0022481abca3"
            }
        ]
    }
    
    

    This endpoint returns a collection of Beneficiaries for the given Scheme Reference.

    HTTP Request

    POST https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/cam_schemebeneficiaries

    Fields

    Field Type Required Description
    schemeReference string Yes The Scheme Reference ID

    Get Beneficiary by ID

    GET  https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/cam_nominationofbeneficiaries(d0f27adf-19a2-ea11-a812-000d3a86d63e) HTTP/1.1
    Host: https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/
    Authorization: Bearer AuthorizationTokenHere
    
    

    The above command returns JSON structured like this:

    {
        "@odata.context": "https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/$metadata#cam_nominationofbeneficiaries/$entity",
        "@odata.etag": "W/\"79318879\"",
        "_cam_memberapplication_value": "cff27adf-19a2-ea11-a812-000d3a86d63e",
        "cam_postcode": "BS6 5TF",
        "createdon": "2020-05-30T02:04:20Z",
        "cam_nominationofbeneficiaryid": "d0f27adf-19a2-ea11-a812-000d3a86d63e",
        "modifiedon": "2020-05-30T02:04:27Z",
        "cam_beneficiarystatus": 1,
        "cam_percentageoffund": 100.0000000000,
        "cam_country": "GB",
        "cam_nameofbeneficiary": "M Yo Da",
        "cam_address_line1": "1 Forest Street",
        "cam_address_line3": "Dagobah",
        "_cam_schememember_value": "edf27adf-19a2-ea11-a812-000d3a86d63e",
        "cam_nominationdate": "2020-05-29T23:00:00Z",
        "cam_relationship": "Jedi Master",
        "cam_address_line2": null,
        "cam_city": null,
        "cam_county": null
    }
    

    This endpoint retrieves an individual Beneficiary identified by their GUID.

    HTTP Request

    GET https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/cam_nominationofbeneficiaries(GUID)

    URL Parameters

    Parameter Description
    GUID The GUID of the Beneficiary to retrieve

    Update Beneficiary

    PATCH  https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/cam_nominationofbeneficiaries(d0f27adf-19a2-ea11-a812-000d3a86d63e) HTTP/1.1
    Host: https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/
    Authorization: Bearer AuthorizationTokenHere
    
    {
    
        "cam_percentageoffund": 75.0000000000,
        "cam_address_line1": "12 Forest Street",
        "cam_beneficiarystatus": 0
    }
    
    

    The above command returns HTTP structured like this:

    HTTP/1.1 204 No Content
    OData-Version: 4.0
    OData-EntityId: [Organization URI]/api/data/v9.1/cam_nominationofbeneficiaries(d0f27adf-19a2-ea11-a812-000d3a86d63e)
    
    

    This endpoint updates an individual Beneficiary identified by their GUID.

    HTTP Request

    PATCH https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/cam_nominationofbeneficiaries(GUID)

    URL Parameters

    Parameter Description
    GUID The GUID of the Beneficiary to update

    Fields

    See Create Beneficiary for available fields to update

    This Endpoint can also be used to remove a Beneficiary. To do so, the following field can be used:

    Field Type Description
    cam_beneficiarystatus int Allowed Values (Removed: 0)

    Transfers

    Create Transfer

    POST  https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/cam_createtransfer HTTP/1.1
    Host: https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/
    Authorization: Bearer AuthorizationTokenHere
    Content-Type: application/json
    
    {
        "schemeReference": "MLSIPP/00004",
        "cam_uncrystalllisedtransfervalue": 20000.00,
        "cam_crystallisedtransfervalue": 20000.00,
        "cam_nonprtv": 20000.00,
        "cam_policyno": "0027364",
        "cam_assettype": 1,
        "cam_status": 4,
        "cam_providername": "Aegon",
        "cam_provideraddressline1": "The Share Centre",
        "cam_provideraddressline2": "PO Box 2000",
        "cam_provideraddressline3": "1 Forest Street",
        "cam_providercity": "Aylesbury",
        "cam_providercounty": "Buckinghamshire",
        "cam_providerpostcode": "HP21 8ZB",
        "cam_pensiontype": 14,
        "cam_typeoftransfer": 0,
        "cam_transfertype": 809130000,
        "cam_earmarking": 1,
        "cam_sharing": 1,
        "cam_splitting": 1,
        "cam_crystallised": 0
    }
    
    

    The above command returns HTTP structured like this:

    {
        "@odata.context": "https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/$metadata#Microsoft.Dynamics.CRM.cam_createtransferResponse",
        "response": {
            "@odata.type": "#Microsoft.Dynamics.CRM.expando",
            "responseKey": 0,
            "message": "Value: 0"
        },
        "transfer": {
            "@odata.type": "#Microsoft.Dynamics.CRM.cam_personalpolicy",
            "_as_nprschemeid_value": "380eb728-82d5-ea11-a813-000d3a86d6ba",
            "_cam_policyholderid_value": "16e4abd7-81d5-ea11-a813-000d3a86d6ba",
            "cam_policyno": "34685674",
            "cam_providername": "Aegon",
            "cam_provideraddressline1": "PO Box 17491",
            "cam_providercity": "Edinburgh",
            "cam_providerpostcode": "EH12 1PB",
            "cam_assettype": 1,
            "cam_status": 4,
            "cam_uncrystalllisedtransfervalue": 1000000,
            "cam_crystallisedtransfervalue": 1500000,
            "cam_nonprtv": 2500000,
            "cam_typeoftransfer": 0,
            "cam_transfertype": 809130000,
            "cam_earmarking": 0,
            "cam_sharing": 0,
            "cam_splitting": 0,
            "cam_crystallised": 0,
            "cam_drawdowntype": 0,
            "cam_pensiontype": 11
        },
        "transferId": {
            "@odata.type": "#Microsoft.Dynamics.CRM.cam_personalpolicy",
            "cam_personalpolicyid": "32e2475c-fbf0-ea11-a815-000d3a86f6ce"
        }
    }
    
    

    This endpoint creates a Transfer.

    HTTP Request

    POST https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/cam_createtransfer

    Fields

    Field Type Required Description
    schemeReference string Yes The Scheme Reference the transfer belongs to
    cam_policyno string Yes The Transfer reference number
    cam_providername string Yes The Providers Name
    cam_provideraddressline1 string No The Providers Address line 1
    cam_provideraddressline2 string No The Providers Address line 1
    cam_provideraddressline3 string No The Providers Address line 1
    cam_providercity string No The Providers City or Town
    cam_providercounty string No The Providers County
    cam_providerpostcode string No The Providers Post Code
    cam_assettype int Yes Allowed Values (Pension Plan: 1)
    cam_status int Yes Allowed Values (Transferring: 4)
    cam_uncrystalllisedtransfervalue decimal Yes Uncrystallised Transfer Value
    cam_crystallisedtransfervalue decimal Yes Crystallised Transfer Value
    cam_nonprtv decimal Yes Total Transfer Value
    cam_typeoftransfer int Yes Allowed Values (
    Cash: 0,
    In Specie: 1)
    cam_transfertype int Yes Allowed Values (
    Full: 809130000,
    Partial: 809130001)
    cam_earmarking int No Transfer Earmarking Order - Allowed Values (
    No: 0,
    Yes: 1)
    cam_sharing int No Transfer Sharing Order - Allowed Values (
    No: 0,
    Yes: 1)
    cam_splitting int No Transfer Splitting Order - Allowed Values (
    No: 0,
    Yes: 1)
    cam_crystallised int No Transfer Crystallised Allowed Values (
    Full: 0,
    Partial: 1)
    cam_drawdowntype int No Is the Transfer Capped or Flex Access - Allowed Values (
    Capped drawdown: 0,
    Flexi-access drawdown: 1)
    cam_pensiontype int Yes* Allowed Values (
    Additional Voluntary Contribution: 1,
    Annuity: 2,
    APPP - Protected Rights: 3,
    Bulk Buy-Out Plan: 4,
    Contracted In Money Purchase: 5,
    Contracted Out Money Purchase: 6,
    Drawdown: 7,
    Executive Personal Pension: 8,
    Final Salary Scheme: 9,
    Free Standing Additional Voluntary Contribution: 10,
    Group Personal Pension: 11,
    Group Stakeholder Pension: 12,
    Other: 13
    Personal Pension Plan: 14,
    QROPS: 15,
    Retirement Annuity Contract: 16,
    Section 32 Policy Buy Out Bond: 17,
    Self Invested Personal Pension: 18,
    Small Self Administered Scheme: 19,
    Stakeholder: 20)

    Response Fields

    Field Type Description
    transfer object Transfer object
    transferId object Object containing the newly created Transfer Id
    response object See Generic Api Response Fields

    Get Transfer

    POST  https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/cam_getpensiontransfer HTTP/1.1
    Host: https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/
    Authorization: Bearer AuthorizationTokenHere
    Content-Type: application/json
    
    {
        "clientReference": "c13e4dac-0c16-49a8-8d2b-93f1637f1c7d",
        "policyNo": "5269263"
    }
    
    

    The above command returns HTTP structured like this:

    {
        "@odata.context": "https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/$metadata#Microsoft.Dynamics.CRM.cam_getpensiontransferResponse",
        "daterequested": "2021-05-19",
        "origotransfer": 1,
        "transferstatus": 2,
        "expectedtransfer": "2021-05-25",
        "lastnote": "test2",
        "lastnotedate": "2023-02-28",
        "actualtv": 100.0000,
        "actualcrystallisedtv": 100.0000,
        "actualuncrystallisedtv": 100.0000,
        "duedatetaskdate": "2023-02-21"
    }
    
    

    This endpoint gets a Transfer by Client Reference and Policy No.

    HTTP Request

    POST https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/cam_getpensiontransfer

    Fields

    Field Type Required Description
    clientReference string Yes The contact id for the client the Transfer belongs to
    policyNo string Yes The Transfer reference number

    Response Fields

    Field Type Description
    daterequested string Formatted DateTime value of the Date Requested field on the Transfer
    origotransfer int Integer to show whether the Transfer is an Origo Transfer - Possible Values (
    False: 0,
    True: 1)
    transferstatus int Integer to show the status of the Transfer - Possible Values (
    Awaiting forms: 0,
    ML to request transfer: 1,
    Awaiting action from ceding scheme: 2,
    Funds received: 3,
    Funds sent: 4)
    expectedtransfer string Formatted DateTime value of the Expected Transfer Date field on the Transfer
    lastnote string The Last Note field on the Transfer
    lastnotedate string Formatted DateTime value of the Last Note Date field on the Transfer
    actualtv money The actual transfer value on the Transfer
    actualcrystallisedtv money The actual crystallised transfer value on the Transfer
    actualuncrystallisedtv money The actual uncrystallised transfer value on the Transfer
    duedatetaskdate string Formatted DateTime value of the Due Date Task Date field on the Transfer

    Get Transfer by Policy No

    GET  https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/cam_personalpolicies?$select=cam_name,cam_personalpolicyid,cam_actualnonprtv,cam_actualcrystallisedtv,cam_actualuncrystallisedtv&$filter=cam_policyno%20eq%20'2973974874' HTTP/1.1
    Host: https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/
    Authorization: Bearer AuthorizationTokenHere
    Content-Type: application/json
    

    The above command returns HTTP structured like this:

    {
        "@odata.context": "https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/$metadata#cam_personalpolicies(cam_name,cam_personalpolicyid,cam_actualnonprtv,cam_actualcrystallisedtv,cam_actualuncrystallisedtv)",
        "value": [
            {
                "@odata.etag": "W/\"95203173\"",
                "cam_name": "Alex Cowan/-/2973974874",
                "cam_personalpolicyid": "2de42cb0-b8ed-ea11-a815-000d3a86f6ce"
                "cam_actualnonprtv": "100000.00"
                "cam_actualcrystallisedtv": "100000.00"
                "cam_actualuncrystallisedtv": "100000.00"
            },
            {
                "@odata.etag": "W/\"95203175\"",
                "cam_name": "Alex Cowan/-/2973974874",
                "cam_personalpolicyid": "a57edf49-0eee-ea11-a815-000d3a86f6ce"
                "cam_actualnonprtv": "200.00"
                "cam_actualcrystallisedtv": "200.00"
                "cam_actualuncrystallisedtv": "200.00"
            },
            {
                "@odata.etag": "W/\"125919309\"",
                "cam_name": "Alexander Cowan/Aegon Ltd/2973974874 ",
                "cam_personalpolicyid": "6b63c553-0f5d-ec11-8f8f-0022481b04b4"
                "cam_actualnonprtv": "590000.00"
                "cam_actualcrystallisedtv": "590000.00"
                "cam_actualuncrystallisedtv": "590000.00"
            }
        ]
    }
    
    

    This endpoint gets a Transfer by Policy No.

    HTTP Request

    GET https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/cam_personalpolicies?$select=cam_name,cam_personalpolicyid,cam_actualnonprtv,cam_actualcrystallisedtv,cam_actualuncrystallisedtv&$filter=cam_policyno%20eq%20(PolicyNo)

    Fields

    Field Type Required Description
    policyNo string Yes The Transfer reference number

    Response Fields

    Field Type Description
    cam_name string Name of the Transfer
    cam_personalpolicyid guid Guid of the Transfer
    actualtv money The actual transfer value on the Transfer
    actualcrystallisedtv money The actual crystallised transfer value on the Transfer
    actualuncrystallisedtv money The actual uncrystallised transfer value on the Transfer

    Get All Transfers

    GET  https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/cam_personalpolicies HTTP/1.1
    Host: https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/
    Authorization: Bearer AuthorizationTokenHere
    
    

    Get All Transfers by Scheme

    GET  https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/cam_getalltransfersbyscheme HTTP/1.1
    Host: https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/
    Authorization: Bearer AuthorizationTokenHere
    Content-Type: application/json
    

    The above command returns HTTP structured like this:

    {
        "@odata.context": "https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/$metadata#Microsoft.Dynamics.CRM.cam_getalltransfersbyschemeResponse",
        "message": "1 Transfers found",
        "transfers": [
            {
                "@odata.type": "#Microsoft.Dynamics.CRM.cam_personalpolicy",
                "@odata.etag": "W/\"244385267\"",
                "cam_actualnonprtv": 2.0000,
                "cam_duedatetaskdate": "2023-05-27",
                "cam_actualuncrystallisedtv": 4.0000,
                "cam_actualcrystallisedtv": 3.0000,
                "_transactioncurrencyid_value": "30ff8a36-f408-ea11-a814-000d3a86d7e0",
                "cam_policyno": "1234567",
                "cam_transferstatus": 0,
                "cam_expectedtransferdate": "2023-05-26",
                "cam_daterequested": "2023-05-24T23:00:00Z",
                "cam_personalpolicyid": "3d2abca0-71ea-ed11-8847-002248c6b987",
                "cam_lastnotedate": "2023-05-24T23:00:00Z",
                "cam_lastnote": "agsdfgsfdg"
            }
        ]
    }
    
    

    This endpoint gets all Transfers for a given Scheme Reference.

    HTTP Request

    POST https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/cam_getalltransfersbyscheme

    Fields

    Field Type Required Description
    schemeReference string Yes The Scheme Reference

    Response Fields

    Field Type Description
    cam_daterequested datetime DateTime value of the Date Requested field on the Transfer
    origotransfer int Integer to show whether the Transfer is an Origo Transfer - Possible Values (
    False: 0,
    True: 1)
    cam_transferstatus int Integer to show the status of the Transfer - Possible Values (
    Awaiting forms: 0,
    ML to request transfer: 1,
    Awaiting action from ceding scheme: 2,
    Funds received: 3,
    Funds sent: 4)
    cam_expectedtransferdate datetime DateTime value of the Expected Transfer Date field on the Transfer
    cam_lastnote string The Last Note field on the Transfer
    cam_lastnotedate datetime DateTime value of the Last Note Date field on the Transfer
    cam_actualnonprtv money The actual transfer value on the Transfer
    cam_actualcrystallisedtv money The actual crystallised transfer value on the Transfer
    cam_actualuncrystallisedtv money The actual uncrystallised transfer value on the Transfer
    cam_duedatetaskdate datetime DateTime value of the Due Date Task Date field on the Transfer
    cam_policyno string The Policy Number of the Transfer record
    cam_personalpolicyid guid The GUID of the Transfer record
    _transactioncurrencyid_value guid The Currency ID for GBP

    Update Transfer

    PATCH  https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/cam_personalpolicies(6b63c553-0f5d-ec11-8f8f-0022481b04b4) HTTP/1.1
    Host: https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/
    Authorization: Bearer AuthorizationTokenHere
    
    {
    
        "cam_transferdate": "2021-12-15",
        "cam_transferamount": 50000,
        "cam_fundnotes": "This is an Inspecie Transfer Test"
    }
    
    

    The above command returns HTTP structured like this:

    HTTP/1.1 204 No Content
    OData-Version: 4.0
    OData-EntityId: [Organization URI]/api/data/v9.1/cam_personalpolicies(6b63c553-0f5d-ec11-8f8f-0022481b04b4)
    
    

    This endpoint updates a Personal Asset identified by its GUID.

    HTTP Request

    PATCH https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/cam_personalpolicies(GUID)

    URL Parameters

    Parameter Description
    GUID The GUID of the Personal Asset to update

    Fields

    Field Type Required Description
    cam_transferdate Date Yes The Transfer Date of the Asset
    cam_transferamount decimal Yes The Transfer Amount of the Asset
    cam_fundnotes string Yes A description of the Asset Transfer

    Pension Contributions

    Create Pension Contribution

    POST /cam_createcontribution HTTP/1.1
    Host: https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/
    Authorization: Bearer AuthorizationTokenHere
    Content-Type: application/json
    
    {
        "schemeReference": "MLSIPP/00001",
        "cam_status": 809130000,
        "cam_contributiontype": 809130000,
        "cam_contributor" : "839e3e1e-80d5-ea11-a813-000d3a86d6ba",
        "cam_frequency": 809130003,
        "cam_amount" : 30000,
        "cam_prefundedrasamount" : 4000,
        "cam_startdate": "2020-10-01",
        "cam_employerothername" : null,
        "cam_addressline1": null,
        "cam_addressline2": null,
        "cam_addressline3": null,
        "cam_city": null,
        "cam_county": null,
        "cam_postcode": null,
        "cam_phone": null,
        "cam_email": null,
        "cam_investorref":null
    }
    
    

    The above command returns HTTP structured like this:

    {
        "@odata.context": "https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/$metadata#Microsoft.Dynamics.CRM.cam_createcontributionResponse",
        "response": {
            "@odata.type": "#Microsoft.Dynamics.CRM.expando",
            "responseKey": 200,
            "message": "Pension Contribution Created OK"
        },
        "contribution": {
            "@odata.type": "#Microsoft.Dynamics.CRM.cam_contribution",
            "_cam_scheme_value": "380eb728-82d5-ea11-a813-000d3a86d6ba",
            "cam_contributiontype": 809130000,
            "_cam_contributor_value": "16e4abd7-81d5-ea11-a813-000d3a86d6ba",
            "cam_frequency": 809130003,
            "cam_amount": 30000,
            "cam_prefundedrasamount": 4000,
            "cam_startdate": "2020-10-01T00:00:00Z",
            "cam_status": 809130000
        },
        "contributionId": {
            "@odata.type": "#Microsoft.Dynamics.CRM.cam_contribution",
            "cam_contributionid": "fc264062-fbf0-ea11-a815-000d3a86f6ce"
        }
    }
    
    

    This endpoint creates a Pension Contribution.
    Please note: To create an Investment Contribution set the "cam_status" field to "Received" and the "cam_frequency" field to "Single".

    HTTP Request

    POST https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/cam_createcontribution

    Fields

    Field Type Required Description
    schemeReference string Yes The Scheme Reference the Pension Contribution belongs to
    cam_contributiontype int No Allowed Values (
    Personal: 809130000,
    Employer: 809130001,
    Other: 809130002)
    cam_contributor string ^No Contributor Contact ID or Account ID
    cam_frequency int Yes Allowed Values (
    Monthly: 809130000,
    Quarterly: 809130001,
    Half Yearly: 809130002,
    Annually: 809130003,
    Single: 809130004)
    cam_amount decimal Yes Contribution amount
    cam_prefundedrasamount decimal No Pre-funded RAS amount
    cam_startdate Date Yes Date of the initial contribution
    cam_status int Yes Allowed Values (
    Application: 809130000,
    Active: 809130001,
    Stopped: 809130002,
    Received: 809130003)
    cam_employerothername string No* Name of the Employer or Other Contributor
    cam_addressline1 string No Address line 1 of the Contributor
    cam_addressline2 string No Address line 2 of the Contributor
    cam_addressline3 string No Address line 3 of the Contributor
    cam_city string No City of the Contributor
    cam_county string No County of the Contributor
    cam_postcode string No Post Code of the Contributor
    cam_phone string No Phone Number of the Contributor
    cam_email string No Email Address of the Contributor
    cam_investorref string No Reference, for example, the policy number for the contribution

    Response Fields

    Field Type Description
    contribution object Contribution object
    contributionId object Object containing the newly created contribution Id
    response object See Generic Api Response Fields

    Get Pension Contribution Applications

    POST /cam_getpensioncontributionapplications HTTP/1.1
    Host: https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/
    Authorization: Bearer AuthorizationTokenHere
    Content-Type: application/json
    
    {
        "schemeReference": "MLSIPP/01101"
    }
    
    

    The above command returns HTTP structured like this:

    {
        "@odata.context": "https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/$metadata#Microsoft.Dynamics.CRM.cam_getpensioncontributionapplicationsResponse",
        "message": "2 Contribution Applications found",
        "contributionApplications": [
            {
                "@odata.type": "#Microsoft.Dynamics.CRM.cam_contribution",
                "@odata.etag": "W/\"244385057\"",
                "cam_addressline2": "street",
                "cam_addressline3": "street",
                "cam_city": "city",
                "cam_addressline1": "1",
                "cam_amount": 8000.0000,
                "cam_postcode": "postcode",
                "cam_paymenttype": 0,
                "_cam_contributor_value": "4c4f420b-d390-ec11-b400-00224800ec43",
                "cam_email": "griggs@gmail.com",
                "_transactioncurrencyid_value": "30ff8a36-f408-ea11-a814-000d3a86d7e0",
                "cam_contributiontype": 809130000,
                "cam_phone": "456546546456",
                "_cam_regularfinancialtransaction_value": "e1b04617-b142-e611-80cf-00155d0a0d07",
                "_cam_application_value": "2a0078e8-d4fc-ea11-a813-0022481a6bbf",
                "cam_status": 809130000,
                "_cam_scheme_value": "ee42fe31-07c6-ec11-a7b5-0022481abca3",
                "cam_county": "county",
                "cam_employerothername": "Griggs",
                "cam_prefundedrasamount": 0.0000000000,
                "cam_contributionid": "770bed4f-07c6-ec11-a7b5-0022481abca3",
                "cam_startdate": "2022-04-27T00:00:00Z",
                "cam_frequency": 809130000,
                "cam_investorref":"MG12345678"
            },
            {
                "@odata.type": "#Microsoft.Dynamics.CRM.cam_contribution",
                "@odata.etag": "W/\"244385152\"",
                "cam_status": 809130000,
                "cam_paymenttype": 2,
                "_cam_application_value": "e26dc100-53e9-ea11-a817-000d3a86d6ba",
                "_cam_scheme_value": "ee42fe31-07c6-ec11-a7b5-0022481abca3",
                "cam_contributiontype": 809130000,
                "cam_amount": 56.0000,
                "cam_contributionid": "d7d084ea-e6fa-ed11-8f6d-002248c6f693",
                "_cam_contributor_value": "1cb7ebd9-b19f-e311-8824-002655856f46",
                "cam_frequency": 809130004,
                "_transactioncurrencyid_value": "30ff8a36-f408-ea11-a814-000d3a86d7e0"
            }
        ]
    }
    
    

    This endpoint returns any Contribution Applications associated with the inputted Scheme Reference.

    HTTP Request

    POST https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/cam_getpensioncontributionapplications

    Fields

    Field Type Required Description
    schemeReference string Yes The Scheme Reference

    Response Fields

    Field Type Description
    cam_addressline1 string Line 1 of contributor's address
    cam_addressline2 string Line 2 of contributor's address
    cam_addressline3 string Line 3 of contributor's address
    cam_city string City from contributor's address
    cam_county string County from contributor's address
    cam_postcode string Postcode from contributor's address
    cam_email string The contributor's email address
    cam_phone string The contributor's phone number
    cam_amount decimal Amount of the Contribution Application
    cam_paymenttype int Values: (Standing Order: 0, Direct Debit: 1, Electronic Transfer: 2, Cheque: 3)
    _cam_contributor_value guid The GUID of the Contributor's Contact/Account record
    cam_contributiontype int Values: (Personal: 809130000, Employer: 809130001, Other: 809130002)
    _transactioncurrencyid_value guid The Currency ID for GBP
    _cam_regularfinancialtransaction_value guid The GUID of the associated Regular Financial Transaction record
    _cam_application_value guid The GUID of the associated Application record
    cam_status int Values: (Application: 809130000, Active: 809130001, Received: 809130003, Stopped: 809130002)
    _cam_scheme_value guid The GUID of the associated Scheme record
    cam_employerothername string The name of the "Employer" or "Other" contributor
    cam_prefundedrasamount decimal The pre-funded Relief at Source value
    cam_contributionid guid The GUID of the Contribution Application record
    cam_startdate datetime The start date of the Contribution Application
    cam_frequency int Values: (Single: 809130004, Monthly: 809130000, Quarterly: 809130001, Half-Yearly: 809130002, Annually: 809130003)
    cam_investorref string Reference, for example, the policy number for the contribution

    Get Received Contributions

    POST /cam_getreceivedcontributions HTTP/1.1
    Host: https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/
    Authorization: Bearer AuthorizationTokenHere
    Content-Type: application/json
    
    {
        "schemeReference": "MLSIPP/01101"
    }
    
    

    The above command returns HTTP structured like this:

    {
        "@odata.context": "https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/$metadata#Microsoft.Dynamics.CRM.cam_getreceivedcontributionsResponse",
        "message": "2 Pension Contributions found",
        "pensionContributions": [
            {
                "@odata.type": "#Microsoft.Dynamics.CRM.cam_pensioncontribution",
                "@odata.etag": "W/\"243174125\"",
                "_cam_contributor_value": "0fbeeec7-fc2c-ed11-9db1-0022481b5507",
                "cam_contributionamount": 34.0000,
                "cam_contributiontype": 0,
                "cam_pensioncontributionid": "fc2d096c-6aee-ed11-8848-002248c6b987",
                "cam_dateofcontribution": "2023-05-08T23:00:00Z"
            },
            {
                "@odata.type": "#Microsoft.Dynamics.CRM.cam_pensioncontribution",
                "@odata.etag": "W/\"243245628\"",
                "_cam_contributor_value": "052da692-ef0f-e311-ba7e-002655856f46",
                "cam_contributionamount": 253.0000,
                "cam_contributiontype": 1,
                "cam_pensioncontributionid": "b2e4a9a3-12ef-ed11-8848-002248c6bbda",
                "cam_dateofcontribution": "2023-05-09T23:00:00Z"
            }
        ]
    }
    
    

    This endpoint returns any Pension Contribution records associated with the inputted Scheme Reference.

    HTTP Request

    POST https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/cam_getreceivedcontributions

    Fields

    Field Type Required Description
    schemeReference string Yes The Scheme Reference

    Response Fields

    Field Type Description
    _cam_contributor_value guid The GUID of the Contributor's Contact/Account record
    cam_contributionamount decimal The Pension Contribution amount
    cam_contributiontype int Values: (Personal: 0, Employer: 1, Other: 809130000)
    cam_pensioncontributionid string The GUID of the Pension Contribution record
    cam_dateofcontribution datetime The date of contribution
    DateofInvestment_x002e_ft_transactiondate datetime The date that the Contribution was invested

    Update Pension Contribution

    POST /cam_updatecontribution HTTP/1.1
    Host: https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/
    Authorization: Bearer AuthorizationTokenHere
    Content-Type: application/json
    
    {
        "cam_contributionid": "e8834c10-bbf7-4a66-a430-104d29fd5065",
        "cam_contributiontype": 809130001,
        "cam_contributor" : "839e3e1e-80d5-ea11-a813-000d3a86d6ba",
        "cam_prefundedrasamount" : 4000,
        "cam_employerothername" : "Morgan Lloyd Invest",
        "cam_addressline1": "67 Macrae Road",
        "cam_addressline2": "Ham Green",
        "cam_addressline3": "Pill",
        "cam_city": "Bristol",
        "cam_county": "Bristol",
        "cam_postcode": "BS20 0DD",
        "cam_phone": "01275 379200",
        "cam_email": "hello@mlinvest.com"
    }
    
    

    The above command returns HTTP structured like this:

    {
        "@odata.context": "https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/$metadata#Microsoft.Dynamics.CRM.cam_updatecontributionResponse",
        "response": {
            "@odata.type": "#Microsoft.Dynamics.CRM.expando",
            "responseKey": 200,
            "message": "Updated OK"
    }
    
    

    This endpoint updates a Pension Contribution record to include the data in the below fields. The request will not be accepted if any of the updatable fields are currently populated on the record. To update a Pension Contribution's status to 'Stopped', please see Update Pension Contribution Status

    HTTP Request

    POST https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/cam_updatecontribution

    Fields

    Field Type Required Description
    cam_contributionid string Yes The guid for the Pension Contribution
    cam_contributiontype int No Allowed Values (
    Personal: 809130000,
    Employer: 809130001,
    Other: 809130002)
    cam_contributor string No^ Contributor Contact ID
    cam_prefundedrasamount decimal No Pre-funded RAS amount
    cam_employerothername string No* Name of the Employer or Other Contributor
    cam_addressline1 string No* Address line 1 of the Contributor
    cam_addressline2 string No Address line 2 of the Contributor
    cam_addressline3 string No Address line 3 of the Contributor
    cam_city string No* City of the Contributor
    cam_county string No* County of the Contributor
    cam_postcode string No* Post Code of the Contributor
    cam_phone string No* Phone Number of the Contributor
    cam_email string No* Email Address of the Contributor
    cam_investorref string No Reference, for example, the policy number for the contribution

    Response Fields

    Field Type Description
    response object See Generic Api Response Fields

    Update Pension Contribution Status

    PATCH /cam_contributions(3c43f7d8-d183-11ea-87d0-0242ac130003) HTTP/1.1
    Host: https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/
    Authorization: Bearer D365BearerTokenHere
    Content-Type: application/json
    
    {
        "cam_status": 809130002
    }
    
    

    The above command updates the contribution status to 'Stopped' and returns HTTP structured like this:

    HTTP/1.1 204 No Content
    OData-Version: 4.0
    OData-EntityId: [Organization URI]/api/data/v9.1/cam_contributions(3c43f7d8-d183-11ea-87d0-0242ac130003)
    
    

    This endpoint updates a Pension Contribution identified by it's GUID. When the value of a pension contribution changes please Create a new Pension Contribution and update the status of the existing Contribution to Stopped

    HTTP Request

    PATCH https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/cam_contributions(GUID)

    URL Parameters

    Parameter Description
    GUID The GUID of the Pension Contribution to update

    Fields

    Field Type Required Description
    cam_status int Yes Allowed Values (
    Application: 809130000,
    Active: 809130001,
    Stopped: 809130002,
    Received: 809130003)

    Upload Pension Contributions

    POST /cam_uploadpensioncontributions HTTP/1.1
    Host: https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/
    Authorization: Bearer D365BearerTokenHere
    Content-Type: application/json
    
    {
        "pensioncontributions": "{\"Contributions\":[{\"schemeReference\":\"MLSIPP/01414\",\"cam_status\":809130001, \"cam_contributiontype\": 809130000,\"cam_contributor\" : \"11eb9b0e-ee34-ed11-9db1-0022481b5ec4\",\"cam_frequency\": 809130004, \"cam_amount\" : 2000,\"cam_startdate\":\"2024-09-13\"},{\"schemeReference\":\"MLSIPP/01415\",\"cam_status\":809130001, \"cam_contributiontype\": 809130000,\"cam_contributor\" : \"18eb9b0e-e834-1111-9db1-0022481b5ec4\",\"cam_frequency\": 809130004, \"cam_amount\" : 2000,\"cam_startdate\":\"2024-09-13\" },{\"schemeReference\":\"MLSIPP/01416\",\"cam_status\":809130001, \"cam_contributiontype\": 809130000,\"cam_contributor\" : \"18eb9b0e-xx34-ed11-9db1-0022481b5ec4\",\"cam_frequency\": 809130004, \"cam_amount\" : 2000,\"cam_startdate\":\"2024-09-13\" }]}"
    }
    
    

    The above command will create new Pension contributions based on the content of the json file:

    {
        "@odata.context": "https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/$metadata#Microsoft.Dynamics.CRM.cam_uploadpensioncontributionsResponse",
        "response": {
            "@odata.type": "#Microsoft.Dynamics.CRM.expando",
            "responseKey": 0,
            "message": "Pension upload completed OK"
        },
        "results": [
            {
                "@odata.type": "#Microsoft.Dynamics.CRM.expando",
                "SchemeReference": "MLSIPP/01414",
                "Message": "Pension Contribution Added successfully. Id: 11e4aa2b-2b74-ef11-a670-6045bd0b2e58 | Start Date: 9/13/2024 | Amount: 2000"
            },
            {
                "@odata.type": "#Microsoft.Dynamics.CRM.expando",
                "SchemeReference": "MLSIPP/01415",
                "Message": "Contributor : 18eb9b0e-e834-1111-9db1-0022481b5ec4 not found in contact entity"
            },
            {
                "@odata.type": "#Microsoft.Dynamics.CRM.expando",
                "SchemeReference": "MLSIPP/01416",
                "Message": "Contributor is not a valid Guid"
            }
        ]
    }
    
    

    The JSON tab shows an example of the required JSON structure for the Pension contributions command. The JSON should then be escaped and submitted as a single string value as shown in the HTTP tab.

    {
      "Contributions": [
        {
          "schemeReference": "MLSIPP/01414",
          "cam_status": 809130001,
          "cam_contributiontype":809130000,
          "cam_contributor": "11eb9b0e-ee34-ed11-9db1-0022481b5ec4",
          "cam_frequency": 809130004,
          "cam_amount": 2000,
          "cam_startdate": "2024-09-13" 
        },
        {
          "schemeReference": "MLSIPP/01415",
          "cam_status": 809130001,
          "cam_contributiontype":809130000,
          "cam_contributor": "18eb9b0e-e834-1111-9db1-0022481b5ec4",
          "cam_frequency": 809130004,
          "cam_amount": 2000,
          "cam_startdate": "2024-09-13"     
        }
        {
          "schemeReference": "MLSIPP/01416",
          "cam_status": 45809130001000,
          "cam_contributiontype": 809130000,
          "cam_contributor": "18eb9b0e-xx34-ed11-9db1-0022481b5ec4",
          "cam_frequency": 809130004,
          "cam_amount": 2000,
          "cam_startdate": "2024-09-13"
        }
      ]
    }
    
    

    This endpoint creates Pension Contributions based on the values provided in the passed json string.

    HTTP Request

    POST https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/cam_uploadpensioncontributions

    Fields

    Field Type Required Description
    pensioncontributions string Yes The Pension Contributions JSON as a single string value.

    Pension Contributions JSON

    Field Type Required Description
    schemeReference string Yes The Scheme Reference the Pension Contribution belongs to
    cam_contributiontype int No Allowed Values (
    Personal: 809130000,
    Employer: 809130001,
    Other: 809130002)
    cam_contributor string ^No Contributor Contact ID or Account ID
    cam_frequency int Yes Allowed Values (
    Monthly: 809130000,
    Quarterly: 809130001,
    Half Yearly: 809130002,
    Annually: 809130003,
    Single: 809130004)
    cam_amount decimal Yes Contribution amount
    cam_prefundedrasamount decimal No Pre-funded RAS amount
    cam_startdate Date Yes Date of the initial contribution
    cam_status int Yes Allowed Values (
    Application: 809130000,
    Active: 809130001,
    Stopped: 809130002,
    Received: 809130003)
    cam_employerothername string No Name of the Employer or Other Contributor
    cam_addressline1 string No Address line 1 of the Contributor
    cam_addressline2 string No Address line 2 of the Contributor
    cam_addressline3 string No Address line 3 of the Contributor
    cam_city string No City of the Contributor
    cam_county string No County of the Contributor
    cam_postcode string No Post Code of the Contributor
    cam_phone string No Phone Number of the Contributor
    cam_email string No Email Address of the Contributor
    cam_investorref string No Reference, for example, the policy number for the contribution

    Response Fields

    Field Type Description
    response object See Generic Api Response Fields
    results object A list of the results showing the Scheme Reference and the result

    Investments

    Create Investment

    POST  https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/cam_createwrapper HTTP/1.1
    Host: https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/
    Authorization: Bearer D365BearerTokenHere
    Content-Type: application/json
    
    {
        "provider" : "27badada-ca89-11ea-87d0-0242ac130003",
        "schemeReference" : "MLSIPP/00001",
        "policyNumber": "ML00001"
    }
    
    

    The above command returns HTTP structured like this:

    {
        "@odata.context": "https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/$metadata#Microsoft.Dynamics.CRM.cam_createwrapperResponse",
        "wrapper": "ML00001",
        "response": {
            "@odata.type": "#Microsoft.Dynamics.CRM.expando",
            "responseKey": 0,
            "message": ""
        }
    }
    
    

    This endpoint creates the application and policy for a given scheme and provider with a given policy number

    HTTP Request

    POST https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/cam_createwrapper

    Fields

    1 of either fields is required for this endpoint

    Field Type Required Description
    provider string Yes The Firm ID we provided you with
    schemeReference string Yes The Scheme Reference
    policyNumber string Yes The unique policy number for the application

    Response Fields

    Field Type Description
    wrapper string Returns the given policyNumber
    response object See Generic Api Response Fields

    Create Policy Valuation

    POST /cam_createpolicyvaluation HTTP/1.1
    Host: https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/
    Authorization: Bearer AuthorizationTokenHere
    Content-Type: application/json
    
    {
        "provider": "839e3e1e-80d5-ea11-a813-000d3a86d6ba",
        "policyValuation": "{\"Policies\":[{\"PolicyReference\":\"ABC12345\",\"PolicyValue\":45000.00,\"ValuationDate\":\"2020-09-28\",\"FundSplits\":[{\"Name\":\"Vanguard FTSE U.K.Equity Ind Inc\", \"ValuationHolding\":20.00,\"Price\":1000.00,\"MarketValue\":20000.00,\"PriceDate\":\"2020-09-28\"},{\"Name\":\"Vanguard FTSE UK AllShrIdx I Inc\",\"Isin\":\"ISIN0202\",\"ValuationHolding\":50.00,\"Price\":500.00,\"MarketValue\":25000.00,\"PriceDate\":\"2020-09-28\"}]},{\"PolicyReference\":\"XYZ12345\",\"PolicyValue\":45000.00,\"ValuationDate\":\"2020-09-28\",\"FundSplits\":[{\"Name\":\"BlackRock Global Event Driven Fund\",\"Isin\":\"LU1373034930\", \"ValuationHolding\":20.00,\"Price\":1000.00,\"MarketValue\":20000.00,\"PriceDate\":\"2020-09-28\"},{\"Name\":\"Fidelity Asia Fund W Acc UK\",\"Isin\":\"GB00B6Y7NF43\",\"ValuationHolding\":50.00,\"Price\":500.00,\"MarketValue\":25000.00,\"PriceDate\":\"2020-09-28\"}]}]}"
    }
    

    The above command returns HTTP structured like this:

    {
        "@odata.context": "https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/$metadata#expando/$entity",
        "@odata.type": "#Microsoft.Dynamics.CRM.expando",
        "responseKey": 0,
        "message": ""
    }
    
    

    The JSON tab shows the required JSON structure for the Create Policy Valuation command. The JSON should then be escaped and submitted as a single string value as shown in the HTTP tab.

    {
      "Policies": [
        {
          "PolicyReference": "ABC12345",
          "PolicyValue": 45000,
          "ValuationDate": "2020-09-28",
          "FundSplits": [
            {
              "Name": "Vanguard FTSE U.K.Equity Ind Inc",
              "Isin": "",
              "ValuationHolding": 20,
              "Price": 1000,
              "MarketValue": 20000,
              "PriceDate": "2020-28-09"
            },
            {
              "Name": "Vanguard FTSE UK AllShrIdx I Inc",          
              "Isin": "",
              "ValuationHolding": 50,
              "Price": 500,
              "MarketValue": 25000,
              "PriceDate": "2020-28-09"
            }
          ]
        },
        {
          "PolicyReference": "XYZ12345",
          "PolicyValue": 45000,
          "ValuationDate": "2020-09-28",
          "FundSplits": [
            {
              "Name": "BlackRock Global Event Driven Fund",
              "Isin": "LU1373034930",
              "ValuationHolding": 20,
              "Price": 1000,
              "MarketValue": 20000,
              "PriceDate": "2020-28-09"
            },
            {
              "Name": "Fidelity Asia Fund W Acc UK",
              "Isin": "GB00B6Y7NF43",
              "ValuationHolding": 50,
              "Price": 500,
              "MarketValue": 25000,
              "PriceDate": "2020-28-09"
            }
          ]
        }
      ]
    }
    
    

    This endpoint submits policy valuations.

    HTTP Request

    POST https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/cam_createpolicyvaluation

    Fields

    Field Type Required Description
    provider string Yes The Firm ID we provided you
    policyValuation string Yes The Policy Valuations JSON as a single string value.

    Policy Valuations JSON

    Field Type Required Description
    PolicyReference string Yes The unique Policy reference number
    PolicyValue double Yes The Policy value equal to the combined fund splits value.
    ValuationDate string Yes The Valuation date formatted like so (YYYY-MM-DD)
    FundSplits object Yes Collecton of Fund Split Objects for the Policy

    Fund Splits JSON

    Field Type Required Description
    Name string Yes The Funds Name
    Isin string No The Funds ISIN Code
    ValuationHolding double Yes Amount of units held
    Price double Yes Single unit cost of the Fund
    MarketValue double Yes Total value of holdings in the fund
    PriceDate double Yes The date in which the fund was priced

    Response Fields

    Field Type Description
    response object See Generic Api Response Fields

    Financial Transactions

    Get Bank Account Transactions

    POST  https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/cam_getaccounttransactions HTTP/1.1
    Host: https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/
    Authorization: Bearer D365BearerTokenHere
    Content-Type: application/json
    
    {
        "schemeRef" : "MLSIPP/00047"
    }
    
    

    The above command returns HTTP structured like this:

    {
        "@odata.context": "https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/$metadata#Microsoft.Dynamics.CRM.cam_getaccounttransactionsResponse",
        "response": {
            "@odata.type": "#Microsoft.Dynamics.CRM.expando",
            "responseKey": 0,
            "message": ""
        },
        "financialTransactions": [
            {
                "@odata.type": "#Microsoft.Dynamics.CRM.expando",
                "financialTransactionName": "Pension Contribution",
                "cashDate": "2021-09-03T00:00:00Z",
                "grossAmount": 1000.0000,
                "direction": "2"
            }
        ]
    }
    
    

    This endpoint retrieves the Financial Transaction records for all Bank Accounts related to a Scheme

    HTTP Request

    POST https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/cam_getaccounttransactions

    Fields

    Field Type Required Description
    schemeRef string Yes The Scheme Reference ID

    Response Fields

    Field Type Description
    financialTransactionName string The name of the Financial Transaction record
    cashDate datetime The Cash Date of the Financial Transaction record
    grossAmount money The Gross Amount of the Financial Transaction record
    direction string Values: (In: 1, Out: 2)

    Benefits

    Retrieve Member Details

    POST /cam_memberdetails HTTP/1.1
    Host: https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/
    Authorization: Bearer AuthorizationTokenHere
    Content-Type: application/json
    
    {
      "benefitApplicationId": "daa1688d-632b-ec11-b6e6-0022481ad332"
    }
    

    The above command returns HTTP structured like this:

    {
        "@odata.context": "https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/$metadata#Microsoft.Dynamics.CRM.cam_memberdetailsResponse",
        "flatFee": 0,
        "adviserRef": "",
        "illustrationTemplate": "<message>\r\n  <header>\r\n    <message_version>CTC1</message_version>\r\n    <created_date>2025-01-21 15:27:50</created_date>\r\n    <mode>Request</mode>\r\n  </header>\r\n  <content>\r\n    <quotations>\r\n      <effective_date>2025-01-21</effective_date>\r\n      <output_required>Yes</output_required>\r\n      <output_reference>ObiKenobiDrawdown2025-01-21</output_reference>\r\n      <agent_name>Clifton Wealth Partnership Ltd</agent_name>\r\n      <client_type>Individual</client_type>\r\n      <investor>\r\n        <title>Master</title>\r\n        <forename>Obi</forename>\r\n        <surname>Kenobi</surname>\r\n        <sex>Male</sex>\r\n        <marital_status>Single</marital_status>\r\n        <date_of_birth>1965-06-03</date_of_birth>\r\n        <exit_age>75</exit_age>\r\n      </investor>\r\n      <quotation product_ref=\"DIREC\" product_type=\"Self Invested Personal Pension\">\r\n        <inflation_adjustment_indicator>No</inflation_adjustment_indicator>\r\n        <quotation_type>Drawdown</quotation_type>\r\n        <plan_stream plan_stream_key=\"Cash1234UNCRYST\">\r\n          <contribution_type>Existing Fund Value</contribution_type>\r\n          <amount>500.00</amount>\r\n          <frequency>Single</frequency>\r\n          <crystallised>No</crystallised>\r\n        </plan_stream>\r\n        <premium_split>\r\n          <stream_applicable plan_stream_key=\"Cash1234UNCRYST\" />\r\n          <fund_split>\r\n            <fund_name>Cash</fund_name>\r\n            <fund_ref>Cash</fund_ref>\r\n            <split_amount>500.00</split_amount>\r\n            <rate_of_return>0</rate_of_return>\r\n            <generic_fund>Yes</generic_fund>\r\n          </fund_split>\r\n        </premium_split>\r\n        <product_fees>\r\n          <product_fee>\r\n            <fee_name>Annual Administration Fee</fee_name>\r\n            <fee_basis>Ongoing</fee_basis>\r\n            <fee_frequency>Yearly</fee_frequency>\r\n            <fee_timing>Before Growth</fee_timing>\r\n            <fee_value_rate>Per Frequency</fee_value_rate>\r\n            <fee_start>\r\n              <start_type>Immediately</start_type>\r\n            </fee_start>\r\n            <fee_end>\r\n              <end_type>Maturity</end_type>\r\n            </fee_end>\r\n            <amount>70</amount>\r\n            <plus_vat>Yes</plus_vat>\r\n          </product_fee>\r\n          <product_fee>\r\n            <fee_name>Annual Income Drawdown</fee_name>\r\n            <fee_basis>Ongoing</fee_basis>\r\n            <fee_frequency>Yearly</fee_frequency>\r\n            <fee_timing>Before Growth</fee_timing>\r\n            <fee_value_rate>Per Annum</fee_value_rate>\r\n            <fee_start>\r\n              <start_type>Immediately</start_type>\r\n            </fee_start>\r\n            <fee_end>\r\n              <end_type>Maturity</end_type>\r\n            </fee_end>\r\n            <amount>100</amount>\r\n            <plus_vat>Yes</plus_vat>\r\n          </product_fee>\r\n        </product_fees>\r\n        <withdrawals>\r\n          <basis>Fixed</basis>\r\n          <drawdown_type />\r\n        </withdrawals>\r\n        <annuity_basis>\r\n          <annuity_frequency>Monthly</annuity_frequency>\r\n          <annuity_timing>Advance</annuity_timing>\r\n          <escalation>RPI</escalation>\r\n        </annuity_basis>\r\n      </quotation>\r\n    </quotations>\r\n  </content>\r\n</message>",
        "portfolioName": "00000000zxfb nhgfsdafszdg",
        "retirementDate": "2040-06-03T00:00:00Z",
        "assetValuation": 0,
        "cashValuation": 0,
        "crystallisedValue": 0.0000,
        "uncrystallisedValue": 0.0000,
        "taxFreeCrystallisedValue": 0,
        "tfcUsed": 0,
        "crystallisationFee": 0,
        "incomeFee": 120,
        "newBenefitApplication": null,
        "contact": {
            "@odata.type": "#Microsoft.Dynamics.CRM.contact",
            "@odata.etag": "W/\"334569364\"",
            "lastname": "Kenobi",
            "emailaddress1": "jonathan.bamford@clifton-asset.co.uk",
            "firstname": "Obi",
            "middlename": "Ben",
            "contactid": "fe7926bc-6490-ea11-a811-000d3a86d74d",
            "cam_ninumber": "JJ117755D",
            "cam_title": 809130005,
            "cam_birthdate": "1965-06-03T00:00:00Z"
        },
        "withdrawals": [
            {
                "@odata.type": "#Microsoft.Dynamics.CRM.expando",
                "frequency": 1,
                "amount@odata.type": "#Decimal",
                "amount": 124.0000,
                "startDate@odata.type": "#DateTimeOffset",
                "startDate": "2016-07-05T00:00:00Z",
                "NextPaymentDate@odata.type": "#DateTimeOffset",
                "NextPaymentDate": "2021-03-01T23:00:00Z",
                "drawdownOption": 2,
                "IsAmendable": true,
                "withdrawalId": 1
            },
            {
                "@odata.type": "#Microsoft.Dynamics.CRM.expando",
                "frequency": 0,
                "amount@odata.type": "#Decimal",
                "amount": 3423.0000,
                "drawdownOption": 2,
                "IsAmendable": false,
                "withdrawalId": 2
            }
        ],
        "response": {
            "@odata.type": "#Microsoft.Dynamics.CRM.expando",
            "responseKey": 0,
            "message": ""
        }
    }
    

    This endpoint retrieves member details given a Benefit Application Id.

    HTTP Request

    POST https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/cam_memberdetails

    Fields

    Field Type Required Description
    benefitApplicationId string Yes The Guid for the Benefit Application

    Response Fields

    Field Type Description
    adviserRef string Field will be empty for non-advised journeys
    illustrationTemplate string XML for the Illustration
    contact object Contact entity - See Contact Fields
    portfolioName string Application's Scheme name
    retirementDate Date Date the member is due to retire
    assetValuation decimal Value of members assets
    cashValuation decimal Members cash valuation
    crystallisedValue decimal Value of members crystallised assets
    uncrystallisedValue decimal Value of members uncrystallised assets
    taxFreeCrystallisedValue decimal Value of members tax free crystallised assets
    tfcUsed decimal Lump Sum Allowance used
    crystalisationFee decimal Crystallisation fee
    incomeFee decimal Income fee
    flatFee decimal Flat fee rate for SIPPs
    newBenefitApplication object Object containing new benefit application Id when supplied application is live
    withdrawals object Object containing withdrawal data for each withdrawal for the related Scheme. See the table below for the list of returned fields.

    Withdrawal Response Fields

    Field Type Description
    withdrawalId int Unique id number of the withdrawal
    drawdownOption int Drawdown request type
    amount decimal Withdrawal amount
    frequency int Frequency of the withdrawal payments (Single = 0, , Annual = 1, Half Yearly = 2, Quarterly = 4, Bimonthly = 6, Monthly = 12, Fortnightly = 26, Weekly = 52)
    startDate DateTime Date the withdrawal commenced
    IsAmendable bool Indicates whether the withdrawal object can be amended

    See Generic Api Response Fields

    Create Benefit Application

    POST /cam_setmemberdetails HTTP/1.1
    Host: https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/
    Authorization: Bearer AuthorizationTokenHere
    Content-Type: application/json
    
    {
      "schemeRef": "MLSIPP/00060",
      "contactId": "5738f1e9-b97e-4e8c-95a8-9e96db53a4ee",
      "advised": true,
      "assetValuation": 10000,
      "cashValuation": 10000,
      "crystallisedValue": 10000,
      "illustrationTemplate": "<message>\r\n  <header>\r\n    <message_version>CTC1</message_version>\r\n    <created_date>2021-02-24 14:23:56</created_date>\r\n    <mode>Request</mode>\r\n  </header>\r\n..."
    }
    

    The above command returns HTTP structured like this:

    {
        "@odata.context": "https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/$metadata#Microsoft.Dynamics.CRM.cam_setmemberdetailsResponse",
        "benefitApplicationId": "c3ebfe4e-93b1-eb11-8236-000d3a8748fc",
        "ssoUrl": "https://digitaltest.ctc.uk.com/DCube/${2d74c5a4-c64c-4741-a01a-416c815e04e3}&loginId=${f1b8923b-a07d-eb11-a812-0022481a8ff1}&ssoToken=${2181f1f7-006f-4260-9bfc-1e27e2184b51}",
        "response": {
            "@odata.type": "#Microsoft.Dynamics.CRM.expando",
            "responseKey": 0,
            "message": ""
        }
    }
    
    

    This endpoint creates a benefit application for a given client and returns a SSO link for a benefit drawdown journey.

    HTTP Request

    POST https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/cam_setmemberdetails

    Fields

    Field Type Required Description
    contactId string Yes The contact ID for the client entering drawdown
    schemeRef string No The clients scheme reference for the benefit application
    advised bool Yes If the drawdown will be advised
    assetValuation decimal No Value of the clients held assets
    cashValuation decimal No Amount held by the client in cash
    crystallisedValue decimal No Amount of clients assets currently crystallised
    illustrationTemplate string No Xml template for Clients Illustration

    Response Fields

    Field Type Description
    benefitApplicationId string GUID for the newly created benefit application
    ssoURL string Single sign on URL for client drawdown journey
    response object See Generic Api Response Fields

    Update Benefit Applications Illustration Template

    POST /annotations HTTP/1.1
    Host: https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/
    Authorization: Bearer AuthorizationTokenHere
    Content-Type: application/json
    
    {
      "objectid_cam_benefitsapplication@odata.bind": "/cam_benefitsapplications(feddb5c5-57ba-eb11-8236-00224800e6b2)",
      "subject": "Illustration Template",
      "notetext": "<message>\r\n  <header>\r\n    <message_version>CTC1</message_version>\r\n    <created_date>2021-02-24 14:23:56</created_date>\r\n    <mode>Request</mode>\r\n  </header>\r\n..."
    }
    

    The above command returns HTTP structured like this:

    {
      HTTP/1.1 204 No Content
      OData-Version: 4.0
      OData-EntityId: [Organization URI]/api/data/v9.1/annotations(9652e3ae-ecbe-eb11-bacc-0022481a610c)
    }
    
    

    This endpoint updates the illustration template attached to the given benefit application.

    HTTP Request

    POST https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/annotations

    Fields

    Field Type Required Value
    objectid_cam_benefitsapplication@odata.bind string Yes /cam_benefitsapplications({benefitApplicationId})
    subject string Yes Illustration Template
    notetext string Yes {The Illustration Xml}

    Drawdown Setup

    POST /cam_drawdownsetup HTTP/1.1
    Host: https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/
    Authorization: Bearer AuthorizationTokenHere
    Content-Type: application/json
    
    {
        "benefitApplicationId": "41f41eff-3e57-eb11-a812-000d3a8741ce",
        "drawdownOption": 2,
        "taxFreeCashAmount" : 10000.00,
        "taxableCashAmount" : 50000.00,
        "regularIncomeAmount" : 500.00,
        "taxFreeIncomeAmount" : 200.00,
        "incomeFrequency": 1,
        "phasedUFPLS": false,
        "phasedPCLS": false,
        "investmentPathway": 1,
        "sortCode": "111111",
        "accountNumber": "00223344",
        "accountName": "Lord D Vader",
        "paymentDay": 6,
        "tfcUsed": 10.00,
        "investmentRef": "Test",
        "pensionWiseAccessed": false,
        "guidanceAppointmentAttendance": "1",
        "guidanceAppointmentDate": "2022-06-14",
        "adviceAppointmentAttendance": "1",
        "adviceAppointmentDate": "2022-06-12",
        "recentlyReceivedGuidance": "1",
        "recentlyReceivedAdvice": "1",
        "doesNotWantAdvice": "0"
    }
    

    The above command returns HTTP structured like this:

    {
        "@odata.context": "https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/$metadata#expando/$entity",
        "@odata.type": "#Microsoft.Dynamics.CRM.expando",
        "response": {
                "@odata.type": "#Microsoft.Dynamics.CRM.expando",
                "responseKey": 0,
                "responseMessage": ""
            },
    }
    
    

    Endpoint to process Clients drawdown.

    HTTP Request

    POST https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/cam_drawdownsetup

    Fields

    Field Type Required Description
    benefitApplicationId string Yes The Guid for the Benefit Application
    drawdownOption Int Yes Values: (
    Full TFC: 2,
    Partial TFC: 3,
    Full UFPLS: 4,
    Partial UFPLS: 5,
    Full TFC, Lump Sum Income: 6,
    Partial TFC, Lump Sum Income: 7,
    Full Lump Sum Income: 8,
    Partial Lump Sum Income: 9,
    Regular Income: 12,
    Regular UFPLS: 13,
    Regular TFC: 14,
    Custom Regular Income: 15,
    Full TFC, Regular Income: 21,
    Partial TFC, Regular Income: 22,
    Partial TFC, Lump Sum Income, Regular Income: 23,
    Partial TFC, Regular UFPLS: 24,
    Partial TFC, Lump Sum Income, Regular UFPLS: 25,
    Partial TFC, Regular TFC: 26,
    Partial TFC, Lump Sum Income, Regular TFC: 27,
    Full Lump Sum Income, Regular Income: 28,
    Partial Lump Sum Income, Regular Income: 29,
    Partial UFPLS, Phased UFPLS Income: 30,
    Full PCLS, Custom Regular Income: 32,
    Partial PCLS, Custom Regular Income: 33,
    Full UFPLS, Custom Regular Income: 34,
    Partial UFPLS, Custom Regular Income: 35,
    Full PCLS Single Payment, Custom Regular Income: 36,
    Partial PCLS Single Payment, Custom Regular Income: 37,
    Full Single Payment, Custom Regular Income: 38,
    Partial Single Payment, Custom Regular Income: 39)
    taxFreeCashAmount decimal No Tax free cash lump sum taken by the client
    taxableCashAmount decimal No Taxable lump sum taken by the client
    regularIncomeAmount decimal No Amount of regular income taken by the client
    taxFreeIncomeAmount decimal No Amount of tax free regular income taken by the client
    incomeFrequency Int No Representative of the number of payments made per annum. Accepted Values: (
    Yearly: 1,
    Half-Yearly: 2,
    Quarterly: 4,
    Bi-Monthly: 6,
    Monthly: 12)
    phasedUFPLS Bool Yes Uncrystallised Funds Pension Lump Sums
    phasedPCLS Bool Yes Pension Commencement Lump Sum
    investmentPathway Int Yes Values: (
    I have no plans to touch my money in the next 5 years: 1,
    I plan to use my money to set up a guaranteed income (annuity) within the next 5 years: 2,
    I plan to start taking my money as a long-term income within the next 5 years: 3,
    I plan to take out all my money within the next 5 years: 4,
    I want to select investments without using the Investment Pathways: 5,
    I want to remain invested in my current investments: 6)
    sortCode string Yes Clients bank account sort code
    accountNumber string Yes Clients bank account number
    accountName string Yes Clients bank account name
    paymentDay Int No Day of the month payments will be processed
    Accepted Values: (6, 14, 21, 28)
    tfcUsed decimal Yes Lump Sum Allowance used
    investmentRef string No Investment Reference string
    pensionWiseAccessed bool No Has there been Pension Wise Access
    guidanceAppointmentAttendance string No Has client attended guidance appointment
    Accepted Values: (
    No: 0,
    Yes: 1)
    guidanceAppointmentDate Date No Date of clients guidance appointment
    adviceAppointmentAttendance string No Has client attended advice appointment
    Accepted Values: (
    No: 0,
    Yes: 1)
    adviceAppointmentDate Date No Date of clients advice appointment
    recentlyReceivedGuidance string No Has client recently received guidance
    Accepted Values: (
    No: 0,
    Yes: 1)
    recentlyReceivedAdvice string No Has client recently received advice
    Accepted Values: (
    No: 0,
    Yes: 1)
    doesNotWantAdvice string No Does client not want advice
    Accepted Values: (
    No: 0,
    Yes: 1)

    Response Fields

    See Generic Api Response Fields

    Get Benefit Events

    POST  https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/cam_schemememberevents HTTP/1.1
    Host: https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/
    Authorization: Bearer D365BearerTokenHere
    Content-Type: application/json
    
    {
        "contactId": "fcdab33b-beaf-ea11-a812-000d3a86f6ce",
        "schemeReference": "MLSIPP/00001",
        "eventStatus": null,
        "excludeAdHoc": false
    }
    
    

    The above command returns HTTP structured like this:

    {
        "@odata.context": "https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/$metadata#Microsoft.Dynamics.CRM.cam_schememembereventsResponse",
        "response": {
            "@odata.type": "#Microsoft.Dynamics.CRM.expando",
            "responseKey": 0,
            "message": ""
        },
        "schemeMemberEvents": [
            {
                "@odata.type": "#Microsoft.Dynamics.CRM.expando",
                "schemeMemberEventId@odata.type": "#Guid",
                "schemeMemberEventId": "c4685578-cd6b-f011-b4cc-0022481aa4fa",
                "eventType": 4,
                "eventStatus": 1,
                "benefitsType": 2,
                "paymentFrequency": 1,
                "incomeAmount@odata.type": "#Decimal",
                "incomeAmount": 3.0000,
                "paymentStartDate@odata.type": "#DateTimeOffset",
                "paymentStartDate": "2025-08-06T00:00:00Z",
                "nextPaymentDate@odata.type": "#DateTimeOffset",
                "nextPaymentDate": "2025-08-06T01:00:00Z",
                "taxFreeCashAmount@odata.type": "#Decimal",
                "taxFreeCashAmount": 1.0000,
                "ufplsAmount@odata.type": "#Decimal",
                "ufplsAmount": 4.0000,
                "currentSchemeValue@odata.type": "#Decimal",
                "currentSchemeValue": 0.0000,
                "benefitApplicationId": "8d7b812b-cd6b-f011-b4cb-6045bd0b0c43",
                "schemeMemberId": {
                    "@odata.type": "#Microsoft.Dynamics.CRM.as_schememember",
                    "as_schememember": "2fda2c51-6f69-f011-bec1-002248c76343",
                    "__DisplayName__": "Stephen Jones - MLSIPP/01849 - Member only "
                }
            },
            {
                "@odata.type": "#Microsoft.Dynamics.CRM.expando",
                "schemeMemberEventId@odata.type": "#Guid",
                "schemeMemberEventId": "4c4c03bc-0772-f011-b4cd-0022481aa4fa",
                "eventType": 4,
                "eventStatus": 1,
                "benefitsType": 2,
                "paymentFrequency": 1,
                "incomeAmount@odata.type": "#Decimal",
                "incomeAmount": 3.0000,
                "paymentStartDate@odata.type": "#DateTimeOffset",
                "paymentStartDate": "2025-08-06T00:00:00Z",
                "nextPaymentDate@odata.type": "#DateTimeOffset",
                "nextPaymentDate": "2025-08-06T01:00:00Z",
                "taxFreeCashAmount@odata.type": "#Decimal",
                "taxFreeCashAmount": 1.0000,
                "ufplsAmount@odata.type": "#Decimal",
                "ufplsAmount": 4.0000,
                "currentSchemeValue@odata.type": "#Decimal",
                "currentSchemeValue": 0.0000,
                "benefitApplicationId": "8d7b812b-cd6b-f011-b4cb-6045bd0b0c43",
                "schemeMemberId": {
                    "@odata.type": "#Microsoft.Dynamics.CRM.as_schememember",
                    "as_schememember": "2fda2c51-6f69-f011-bec1-002248c76343",
                    "__DisplayName__": "Stephen Jones - MLSIPP/01849 - Member only "
                }
            },
            {
                "@odata.type": "#Microsoft.Dynamics.CRM.expando",
                "schemeMemberEventId@odata.type": "#Guid",
                "schemeMemberEventId": "27a54795-0872-f011-b4cd-0022481aa4fa",
                "eventType": 4,
                "eventStatus": 1,
                "benefitsType": 0,
                "paymentFrequency": 100000000,
                "paymentStartDate@odata.type": "#DateTimeOffset",
                "paymentStartDate": "2025-08-05T14:29:30Z",
                "currentSchemeValue@odata.type": "#Decimal",
                "currentSchemeValue": 0.0000,
                "benefitApplicationId": "8d7b812b-cd6b-f011-b4cb-6045bd0b0c43",
                "schemeMemberId": {
                    "@odata.type": "#Microsoft.Dynamics.CRM.as_schememember",
                    "as_schememember": "2fda2c51-6f69-f011-bec1-002248c76343",
                    "__DisplayName__": "Stephen Jones - MLSIPP/01849 - Member only "
                }
            }
        ]
    }
    

    Endpoint to retrieve Benefit Events for a selected client, with the option to filter based on Event Status and to exclude Ad Hoc events.

    HTTP Request

    POST https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/cam_schemememberevents

    Body Data

    Field Type Required Description
    schemeReference string Yes The Scheme's unique reference number
    contactId string Yes Guid for the scheme member contact
    eventStatus int No Integer representing the status of the event, used to filter events (see response fields below for possible options)
    excludeAdHoc bool No Boolean field that will filter out AdHoc events if set to true

    Response Fields

    Field Type Description
    schemeMemberEventId string Guid for the Scheme Member Event
    schemeMemberId string Guid for the scheme member
    eventType int Type of event - Possible Values (
    Nomination of Beneficiary: 2,
    Withdrawal: 4,
    Drawdown Review: 5,
    Death Benefits: 7,
    Serious Ill Health: 8,
    Transitional Protection: 809130002)
    eventStatus int Possible Values (
    In Progress: 1,
    Live: 2,
    Not Taken Up: 3,
    Stopped: 4,
    Application: 809130000)
    benefitsType int Possible Values (
    Tax Free Cash: 0,
    Tax Free Cash and Income: 1,
    UFPLS: 2,
    Income: 3)
    incomeAmount decimal Income Amount
    paymentFrequency int Frequency of the payment - Possible Values (
    Monthly: 1,
    Quarterly: 2,
    Annually: 3,
    Half Yearly: 4,
    Bimonthly: 5,
    Ad-Hoc: 100000000)
    paymentStartDate string Date the income starts
    nextPaymentDate string Date of the next payment
    taxFreeCashAmount decimal Tax free cash Amount
    ufplsAmount decimal UFPLS Amount
    currentSchemeValue decimal Current Value of Scheme
    benefitApplicationId string Guid for the related Benefit Application
    response object See Generic Api Response Fields

    Cancel Drawdown

    POST  https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/cam_canceldrawdown HTTP/1.1
    Host: https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/
    Authorization: Bearer D365BearerTokenHere
    Content-Type: application/json
    
    {
        "policyNumber": "c8ef867f-d7fb-ee11-9f89-000d3a0cbfde",
        "withdrawalType": 2,
        "withdrawalId": 2
    }
    
    

    The above command returns HTTP structured like this:

    {
        "@odata.context": "https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/$metadata#Microsoft.Dynamics.CRM.cam_canceldrawdownResponse",
        "response": {
            "@odata.type": "#Microsoft.Dynamics.CRM.expando",
            "responseKey": 0,
            "message": ""
        }
    }
    

    This Endpoint cancels a Drawdown Event by setting it to the Stopped Status. The Event must have a "Live" Event Status and the BCE Frequency must not be set to "Ad-Hoc".

    HTTP Request

    POST https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/cam_canceldrawdown

    Fields

    Field Type Required Description
    schemeMemberEventId string No* Guid for the Scheme Member Event
    policyNumber string No* Guid for the Benefit Application record
    withdrawalType int No* Values: (
    Full TFC: 2,
    Partial TFC: 3,
    Full UFPLS: 4,
    Partial UFPLS: 5,
    Full TFC, Lump Sum Income: 6,
    Partial TFC, Lump Sum Income: 7,
    Full Lump Sum Income: 8,
    Partial Lump Sum Income: 9,
    Regular Income: 12,
    Regular UFPLS: 13,
    Regular TFC: 14,
    Custom Regular Income: 15,
    Full TFC, Regular Income: 21,
    Partial TFC, Regular Income: 22,
    Partial TFC, Lump Sum Income, Regular Income: 23,
    Partial TFC, Regular UFPLS: 24,
    Partial TFC, Lump Sum Income, Regular UFPLS: 25,
    Partial TFC, Regular TFC: 26,
    Partial TFC, Lump Sum Income, Regular TFC: 27,
    Full Lump Sum Income, Regular Income: 28,
    Partial Lump Sum Income, Regular Income: 29,
    Partial UFPLS, Phased UFPLS Income: 30,
    Full PCLS, Custom Regular Income: 32,
    Partial PCLS, Custom Regular Income: 33,
    Full UFPLS, Custom Regular Income: 34,
    Partial UFPLS, Custom Regular Income: 35,
    Full PCLS Single Payment, Custom Regular Income: 36,
    Partial PCLS Single Payment, Custom Regular Income: 37,
    Full Single Payment, Custom Regular Income: 38,
    Partial Single Payment, Custom Regular Income: 39)
    withdrawalId int No* The unique id number of the withdrawal - identifiable using the Retrieve Member Details endpoint

    Response Fields

    Field Type Description
    response object See Generic Api Response Fields

    Amend Drawdown

    POST  https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/cam_amenddrawdown HTTP/1.1
    Host: https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/
    Authorization: Bearer D365BearerTokenHere
    Content-Type: application/json
    
    {
        "schemeMemberEventId": "d4d5d123-d0bb-ec11-983f-000d3a0d1085",
        "drawdownOption": 25,
        "taxFreeIncomeAmount": 10.0,
        "regularIncomeAmount": 10.0,
        "incomeFrequency": 12,
        "paymentDay": 6
    }
    
    

    The above command returns HTTP structured like this:

    {
        "@odata.context": "https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/$metadata#Microsoft.Dynamics.CRM.cam_amenddrawdownResponse",
        "response": {
            "@odata.type": "#Microsoft.Dynamics.CRM.expando",
            "responseKey": 0,
            "message": ""
        }
    }
    

    This Endpoint amends a Drawdown by creating a new Application and Benefit Application against a Scheme Member Event and also stops the Event. The Event must have a "Live" Event Status and the BCE Frequency must not be set to "Ad-Hoc".

    HTTP Request

    POST https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/cam_amenddrawdown

    Body Data

    Field Type Required Description
    schemeMemberEventId string Yes Guid for the Scheme Member Event
    drawdownOption Int Yes Values: (
    Full TFC: 2,
    Partial TFC: 3,
    Full UFPLS: 4,
    Partial UFPLS: 5,
    Full TFC, Lump Sum Income: 6,
    Partial TFC, Lump Sum Income: 8,
    Regular Income: 12,
    Regular UFPLS: 13,
    Regular TFC: 14,
    Full TFC, Regular Income: 21,
    Partial TFC, Regular Income: 22,
    Partial TFC, Lump Sum Income, Regular Income: 23,
    Partial TFC, Regular UFPLS: 24,
    Partial TFC, Lump Sum Income, Regular UFPLS: 25,
    Partial TFC, Regular TFC: 26,
    Partial TFC, Lump Sum Income, Regular TFC: 27)
    taxFreeIncomeAmount decimal Yes Amount of tax free regular income taken by the client
    regularIncomeAmount decimal Yes Amount of regular income taken by the client
    incomeFrequency Int Yes Representative of the number of payments made per annum. Accepted Values: (
    Yearly: 1,
    Half-Yearly: 2,
    Quarterly: 4,
    Bi-Monthly: 6,
    Monthly: 12)
    paymentDay Int Yes Day of the month payments will be processed
    Accepted Values: (6, 14, 21, 28)

    Response Fields

    Field Type Description
    response object See Generic Api Response Fields

    Pay Request

    POST  https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/cam_payrequest HTTP/1.1
    Host: https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/
    Authorization: Bearer D365BearerTokenHere
    Content-Type: application/json
    
    {
        "payRequest": "Test string"
    }
    
    

    The above command returns HTTP structured like this:

    {
        "@odata.context": "https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/$metadata#expando/$entity",
        "@odata.type": "#Microsoft.Dynamics.CRM.expando",
        "responseKey": 0,
        "message": "Information Received"
    }
    

    This endpoint is used to send us updates for payroll actions.

    HTTP Request

    POST https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/cam_payrequest

    Body Data

    Field Type Required Description
    payRequest string Yes An XML object in string format

    Response Fields

    Field Type Description
    response object See Generic Api Response Fields

    MVP Profile

    Update MVP Profile

    POST /cam_updatemvpprofile HTTP/1.1
    Host: https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/
    Authorization: Bearer AuthorizationTokenHere
    Content-Type: application/json
    
    {
      "contactid": "fcdab33b-beaf-ea11-a812-000d3a86f6ce",
      "cam_title": 809130000, 
      "cam_firstname": "John",
      "cam_middlename": "Joe", 
      "cam_lastname": "Doe", 
      "cam_preferrednName": "JoJo",
      "cam_birthdate": "1980-11-26",
      "cam_placeofbirth": "Norfolk",
      "cam_legalsex": 1, 
      "cam_gender": "Male", 
      "cam_familystatuscode ": "2", 
      "cam_nationality": "British", 
      "cam_telephone2": "07532789236",
      "cam_mobilephone": "07532789236",
      "cam_telephone1": "07532789236", 
      "cam_emailaddress1": "john.doe@gmail.com", 
      "cam_emailaddress2": "john.doe@clifton_asset.com", 
      "cam_address1_line1": "23 Test Street", 
      "cam_address1_line2": "Testington", 
      "cam_address1_city": "Test City", 
      "cam_address1_county": "TestShire",
      "cam_address1_country": "United Kingdom",
      "cam_address1_postcode": "TE10 1U3",
      "cam_ownershipstatus": 809130000,
      "cam_moveindate": "2023-11-15", 
      "cam_countrydomiciled": "United Kingdom", 
      "cam_residentfortax": "United Kingdom", 
      "cam_ninumber ": "AE103759C", 
      "cam_highestrateofincometax": 45.00
    }
    

    The above command returns HTTP structured like this:

    
    {
        "@odata.context": "https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/$metadata#expando/$entity",
        "@odata.type": "#Microsoft.Dynamics.CRM.expando",
        "responseKey": 0,
        "message": "Information Received"
    }
    
    

    This endpoint inserts a new My Viewpoint Profile record for a contact.

    HTTP Request

    POST https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/cam_updatemvpprofile

    Fields

    Field Type Required Description
    contactid Guid Yes The CRM Contact ID
    cam_title int No Allowed Values (
    Mr: 809130000,
    Ms: 809130001,
    Mrs: 809130002,
    Miss: 809130003,
    Dr: 809130004,
    Master: 809130005,
    Capt: 809130006,
    Prof: 809130007,
    Reverend: 809130008,
    Sir: 809130009,
    Lord: 809130010,
    Lady: 809130011,
    Other: 809130012)
    cam_firstname string No The Contacts First Name
    cam_middlename string No The Contacts Middle Name
    cam_lastname string No The Contacts Last Name
    cam_preferredname string No The Contacts Preferred Name
    cam_birthdate string No The Contacts Date of Birth (yyyy-MM-dd)
    cam_placeofbirth string No The Contacts Place of Birth
    cam_legalsex int No Allowed Values (
    Male: 1,
    Female: 2)
    cam_gender string No The Contacts assigned Gender
    cam_familystatuscode int No Allowed Values (
    Single: 1,
    Married: 2,
    Civil Partner: 5,
    Divorced: 6,
    Cohabiting: 7,
    Widowed: 8)
    cam_nationality string No The Contacts nationality
    cam_telephone2 string No The Contacts home phone number
    cam_mobilephone string No The Contacts mobile phone number
    cam_telephone1 string No The Contacts primary business phone number
    cam_emailaddress1 string No The Contacts personal email address
    cam_emailaddress2 string No The Contacts work email address
    cam_address1_line1 string No First line of the Contacts address
    cam_address1_line2 string No Second line of the Contacts address
    cam_address1_line3 string No Third line of the Contacts address
    cam_address1_city string No The Contacts city
    cam_address1_county string No The Contacts county
    cam_address1_postcode string No The Contacts post code
    cam_ownershipstatus int No The Ownership status for the address Allowed Values (
    Own (Mortgaged): 809130000,
    Own (No Mortgage): 809130001,
    Renting: 809130002,
    Other: 809130003)
    cam_moveindate string No The Move in date for the address (yyyy-MM-dd)
    cam_countrydomiciled string No The Country where the Contact is domiciled
    cam_residentfortax string No The Country where the Contact is resident for tax
    cam_ninumber string No The Contacts National Insurance number
    cam_highestrateofincometax decimal No The highestrate of income tax for the Contact

    Documents

    Submit Document

    POST /cam_submitdocument HTTP/1.1
    Host: https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/
    Authorization: Bearer AuthorizationTokenHere
    Content-Type: application/json
    
    {
      "document": {document Encode or URL},
      "contactId": "aa923be7-97be-41b5-a6bb-c46e3c19c9ca",
      "investorNumber": "CAM12334",
      "documentType": 1,
      "documentFolder": 1,
      "subject": "Illustration",
      "productType": "MLI",
      "documentRef": "2ef42412-875c-48b1-96f2-a56ae5b29f0d"
    }
    

    The above command returns HTTP structured like this:

    {
        "@odata.context": "https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/$metadata#Microsoft.Dynamics.CRM.cam_submitdocumentResponse",
            "response": {
                "@odata.type": "#Microsoft.Dynamics.CRM.expando",
                "responseKey": 0,
                "responseMessage": ""
            },
    }
    
    

    This endpoint submits a document from a Url link. By default, the document will be created as a .pdf file. Add a file extension to the subject field to generate a different document type.

    HTTP Request

    POST https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/cam_submitdocument

    Fields

    Field Type Required Description
    document string Yes The document to submit
    subject string Yes Name of the document (optionally including the file extension)
    contactId string No* The ID of the Contact the document belongs to
    investorNumber string No* The Investor Number of the Contact the document belongs to
    documentType int Yes Allowed values: (
    Base64 encode: 1,
    URL: 2)
    documentFolder int Yes Allowed values: (
    BCE: 1,
    ML - My Viewpoint: 2,
    Adviser - My Viewpoint: 3,
    KFI SMPI: 4,
    Illustration: 5,
    Application: 6,
    ATR: 7,
    Annual Review: 8,
    Factfind: 9)
    productType string No** Product Type of the Illustration
    documentRef string No Reference identifier for the document

    Response Fields

    See Generic Api Response Fields

    Illustrations

    Submit Illustration

    POST /cam_illustration HTTP/1.1
    Host: https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/
    Authorization: Bearer AuthorizationTokenHere
    Content-Type: application/json
    
    {
      "illustrationUrl": "https://camtest.ctc.uk.com/PDFPortalArchive/TestTesterKFI2020-10-05.pdf",
      "contactId": "aa923be7-97be-41b5-a6bb-c46e3c19c9ca"
      "investorNumber": "CAM12334"
    }
    

    The above command returns HTTP structured like this:

    {
        "@odata.context": "https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/$metadata#expando/$entity",
        "@odata.type": "#Microsoft.Dynamics.CRM.expando",
        "responseKey": 0,
        "message": ""
    }
    
    

    This endpoint submits a illustration PDF from a Url link.

    HTTP Request

    POST https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/cam_illustration

    Fields

    Field Type Required Description
    illustrationUrl string Yes The URL for the Illustration pdf
    contactId string No* The ID of the Contact the Illustration belongs to
    investorNumber string No* The Investor Number of the Contact the Illustration belongs to

    Response Fields

    Field Type Description
    response object See Generic Api Response Fields

    SSO

    Validate SSO

    POST /cam_validatesso HTTP/1.1
    Host: https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/
    Authorization: Bearer AuthorizationTokenHere
    Content-Type: application/json
    
    {
      "loginId": "381a7fa5-9dfd-ea11-a813-000d3a86d6ba",
      "ssoToken": "a12c3d20-2638-4dda-9a20-cb9225546256"
    }
    

    The above command returns HTTP structured like this:

    {
        "@odata.context": "https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/$metadata#Microsoft.Dynamics.CRM.cam_submitdocumentResponse",
        "message": "",
        "responseKey": 0
    }
    
    

    This endpoint validates SSO.

    HTTP Request

    POST https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/cam_validatesso

    Fields

    Field Type Required Description
    loginId string Yes Id for the member
    ssoToken string Yes The Single Sign On token against the member

    Response Fields

    See Generic Api Response Fields

    Threads & Messages

    Create Thread

    POST  https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/cam_createthread HTTP/1.1
    Host: https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/
    Authorization: Bearer D365BearerTokenHere
    Content-Type: application/json
    
    {
        "cam_threadref": "8bb8334a-ca83-412a-b356-81c4fccc4c7b",
        "cam_contactref": "fe7926bc-6490-ea11-a811-000d3a86d74d",
        "cam_subject": "Hello World API"
    }
    
    

    A successful Create Thread response:

    {
        "@odata.context": "https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/$metadata#Microsoft.Dynamics.CRM.cam_createthreadResponse",
        "threadEntity": {
            "@odata.type": "#Microsoft.Dynamics.CRM.cam_thread",
            "cam_threadid": "8bb8334a-ca83-412a-b356-81c4fccc4c7b"
        },
        "response": {
            "@odata.type": "#Microsoft.Dynamics.CRM.expando",
            "responseKey": 0,
            "message": ""
        }
    }
    
    

    This endpoint creates a Thread entity to which message entities can be attached. The thread entity will be created with an id correlating to the given thread reference.

    HTTP Request

    POST https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/cam_createthread

    Fields

    Field Type Required Description
    cam_threadref string Yes Your systems Unique identifier for the thread
    cam_contactref string Yes Unique identifier for the contact in the message thread
    cam_subject string Yes The subject line for the message thread

    Response Fields

    Field Type Description
    threadEntity object Entity Reference object for the newly created Thread created with the given thread ref.
    response object See Generic Api Response Fields

    Create Message

    POST  https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/cam_createmessage HTTP/1.1
    Host: https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/
    Authorization: Bearer D365BearerTokenHere
    Content-Type: application/json
    
    {
        "cam_threadref": "8bb8334a-ca83-412a-b356-81c4fccc4c7b",
        "cam_messagetype": 0,
        "cam_flag": 0,
        "cam_attachmentflag": 1,
        "cam_text": "Hello World",
        "cam_documentref" : "2ef42412-875c-48b1-96f2-a56ae5b29f0d"
    }
    
    

    A successful Create Message repsonse:

    {
        "@odata.context": "https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/$metadata#Microsoft.Dynamics.CRM.cam_createmessageResponse",
        "messageEntity": {
            "@odata.type": "#Microsoft.Dynamics.CRM.cam_message",
            "activityid": "32e7fe9f-8982-eb11-a812-000d3a874a5c"
        },
        "response": {
            "@odata.type": "#Microsoft.Dynamics.CRM.expando",
            "responseKey": 0,
            "message": ""
        }
    }
    
    

    This endpoint creates a Message entity attached to a given thread

    HTTP Request

    POST https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/cam_createmessage

    Fields

    Field Type Required Description
    cam_threadref string Yes Unique identifier for the thread
    cam_messagetype string Yes Allowed Values: (
    From Operator: 0,
    From Client: 1)
    cam_flag int No Allowed Values: (
    None: 0,
    Read: 1,
    Deleted: 2,
    Viewed: 3)
    cam_attachmentflag int No Allowed Values: (
    Not Read: 0,
    Read: 1)
    cam_text string Yes The message body
    cam_documentref string No Reference for any documents attached to the message

    Response Fields

    Field Type Description
    messageEntity object Entity Reference containing unique identifier for the newly created message
    response object See Generic Api Response Fields

    Update Message

    POST  https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/cam_updatemessage HTTP/1.1
    Host: https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/
    Authorization: Bearer AuthorizationTokenHere
    
    {
        "cam_messageid: "0a960e71-ee27-42cd-b9ff-846818e15ae1",
        "cam_flag": 1,
        "cam_attachmentflag": 1
    }
    
    

    The above command returns HTTP structured like this:

    {
        "@odata.context": "https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/$metadata#expando/$entity",
        "@odata.type": "#Microsoft.Dynamics.CRM.expando",
        "responseKey": 0,
        "message": ""
    }
    
    

    This endpoint updates a message entity and can be used to update the message and attachment flags

    HTTP Request

    POST https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/cam_updatemessage

    Fields

    Field Type Required Description
    cam_messageid string Yes Unique identifier for the message
    cam_flag int No Allowed Values: (
    None: 0,
    Read: 1,
    Deleted: 2,
    Viewed: 3)
    cam_attachmentflag int No Allowed Values: (
    Not Read: 0,
    Read: 1)

    Response Fields

    Field Type Description
    response object See Generic Api Response Fields

    Api Response

    Api call return a generic response structured like so

    {
        "@odata.context": "https://cliftonassetdev.crm11.dynamics.com/api/data/v9.1/$metadata#Microsoft.Dynamics.CRM.cam_submitdocumentResponse",
        "message": "",
        "responseKey": 0
    }
    
    

    Response Fields

    Field Type Description
    responseKey int Values (
    Success: 0,
    Failed: 1)
    message string response message if key = 1

    Errors

    The Morgan Lloyd API uses the following error codes:

    Error Code Meaning
    400 Bad Request -- Your request is invalid.
    401 Unauthorized -- Your API key is wrong.
    403 Forbidden -- The request is hidden for administrators only.
    404 Not Found -- The specified request could not be found.
    405 Method Not Allowed -- You tried to access a request with an invalid method.
    406 Not Acceptable -- You requested a format that isn't json.
    410 Gone -- The request has been removed from our servers.
    429 Too Many Requests -- You're requesting too much!
    500 Internal Server Error -- We had a problem with our server. Try again later.
    503 Service Unavailable -- We're temporarily offline for maintenance. Please try again later.