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
D365BearerTokenHerewith 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 | |
| Get Benefit Events |
Release 1.53
New Endpoints
| Endpoint | Description |
|---|---|
| Get Adviser Contacts | |
| Get Client Factfind | |
| Get Client Assets | |
| Get Client Liabilities | |
| Get Client Relationships |
Modified Endpoints
| Endpoint | Description |
|---|---|
| Submit Document |
Release 1.52
New Endpoints
| Endpoint | Description |
|---|---|
| Submit ATR |
Modified Endpoints
| Endpoint | Description |
|---|---|
| Submit Document |
Release 1.51
New Endpoints
| Endpoint | Description |
|---|---|
| Bulk Update Schemes |
Release 1.50
Modified Endpoints
| Endpoint | Description |
|---|---|
| Retrieve Member Details | |
| Cancel Drawdown |
Release 1.49
Modified Endpoints
| Endpoint | Description |
|---|---|
| Get Transfer | |
| Get All Transfers by Scheme |
Release 1.48
New Endpoints
| Endpoint | Description |
|---|---|
| MVP Profile | |
| Upload Pension Contributions |
Release 1.47
Modified Endpoints
| Endpoint | Description |
|---|---|
| Create Scheme |
Release 1.46
Modified Endpoints
| Endpoint | Description |
|---|---|
| Create Contact |
Release 1.45
Modified Endpoints
| Endpoint | Description |
|---|---|
| Create Financial Adviser Contact | |
| Drawdown Setup |
Release 1.44
Modified Endpoints
| Endpoint | Description |
|---|---|
| Create Scheme |
Release 1.43
Modified Endpoints
| Endpoint | Description |
|---|---|
| Create Pension Contribution | |
| Get Pension Contribution Applications | |
| Update Pension contribution |
Release 1.42
New Endpoints
| Endpoint | Description |
|---|---|
| Update Scheme |
Modified Endpoints
| Endpoint | Description |
|---|---|
| Get Scheme by Scheme Ref | |
| Create Scheme |
Release 1.41
Modified Endpoints
| Endpoint | Description |
|---|---|
| Update Beneficiary | |
| Retrieve Member Details | |
| Drawdown Setup |
Release 1.40
Modified Endpoints
| Endpoint | Description |
|---|---|
| Create Scheme | |
| Get Received Contributions |
Release 1.39
Modified Endpoints
| Endpoint | Description |
|---|---|
| Create Contact |
Release 1.38
New Endpoints
| Endpoint | Description |
|---|---|
| Create Financial Adviser Contact |
Modified Endpoints
| Endpoint | Description |
|---|---|
| Create Scheme | |
| Get Bank Account Transactions |
Removed Endpoints
| Endpoint | Description |
|---|---|
| [Get Financial Transactions] |
Release 1.37
Modified Endpoints
| Endpoint | Description |
|---|---|
| Drawdown Setup | |
| Get All Transfers by Scheme | |
| Update Contact |
Release 1.36
Modified Endpoints
| Endpoint | Description |
|---|---|
| Drawdown Setup |
Release 1.35.2
Modified Endpoints
| Endpoint | Description |
|---|---|
| Drawdown Setup |
Release 1.35.1
Modified Endpoints
| Endpoint | Description |
|---|---|
| Create Contact | |
| Create Pension Contribution | |
| Create Transfer | |
| Submit Document | |
| Update Pension Contribution Status |
Release 1.35
Modified Endpoints
| Endpoint | Description |
|---|---|
| Submit Document | |
| Create Pension Contribution | |
| Create Contact |
Release 1.34
Modified Endpoints
| Endpoint | Description |
|---|---|
| Create Transfers | |
| Create Scheme |
New Endpoints
| Endpoint | Description |
|---|---|
| Get Received Contributions | |
| Get Pension Contribution Applications | |
| Get All Transfers by Scheme |
Release 1.33
Modified Endpoints
| Endpoint | Description |
|---|---|
| Create contact |
|
Release 1.32
Modified Endpoints
| Endpoint | Description |
|---|---|
| Drawdown Setup |
|
| Get Scheme by Scheme Ref | |
| Get Transfer |
Release 1.31
Modified Endpoints
| Endpoint | Description |
|---|---|
| Create Scheme |
|
Release 1.30
Modified Endpoints
| Endpoint | Description |
|---|---|
| Drawdown Setup |
|
| Get Transfer/ Get Transfer by Policy No |
Release 1.20
New Endpoints
| Endpoint | Description |
|---|---|
| Get Bank Account Transactions |
Release 1.19
Modified Endpoints
| Endpoint | Description |
|---|---|
| Get Scheme by Scheme Ref |
Release 1.18
New Endpoints
| Endpoint | Description |
|---|---|
| Cancel Drawdown | |
| Amend Drawdown |
Modified Endpoints
| Endpoint | Description |
|---|---|
| Get Benefit Events |
Release 1.17
Modified Endpoints
| Endpoint | Description |
|---|---|
| Drawdown Setup | |
| Submit Document |
Release 1.16
Modified Endpoints
| Endpoint | Description |
|---|---|
| Submit Document |
Release 1.15
Modified Endpoints
| Endpoint | Description |
|---|---|
| Create Pension Contribution | |
| Update Pension Contribution |
Release 1.14
New Endpoints
| Endpoint | Description |
|---|---|
| Update Transfer | |
| Get Transfer by Policy No | |
| Get Contact ID & Scheme Ref |
Modified Endpoints
| Endpoint | Description |
|---|---|
| Submit Document |
Release 1.13
New Endpoints
| Endpoint | Description |
|---|
Modified Endpoints
| Endpoint | Description |
|---|---|
| Update Message |
Release 1.12
New Endpoints
| Endpoint | Description |
|---|
Modified Endpoints
| Endpoint | Description |
|---|---|
| Create Scheme | |
| Create Benefit Application | |
| Retrieve Member Details |
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 | |
| Update Message |
Modified Endpoints
| Endpoint | Description |
|---|---|
| Create Beneficiaries | |
| Create Contribution | |
| Create Policy Valuation | |
| Create Scheme | |
| Create Transfer | |
| Create Investment | |
| Submit Illustration | |
| Submit Document | |
| Create Thread | |
| Create Message | |
| Retrieve Member Details | |
| Drawdown Setup |
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. |