Customer API

This API allows create, edit and viewing of the Customer.

Message Structure

Request Message

For POST requests (internal only)

{
  "Parameters": {
    "CustomerId": "fdc9365c-c838-4cb1-98d2-076390d80edf",
    "CustomerName": "Random Customer Name",
    "Active": true,
     "SFTP": {
            "ServerAddress": "169.10.876.1",
            "Username": "username",
            "Password": "password",
            "TlsHostCertificateFingerprint": "sdfdsfsdfds",
            "Port": 22,
            "Timeout": 60000
        },
    "Permissions": {
      "ParentLevelAttributes": [],
      "Reports": [
        {
          "Allow": [
            {
              "​​​​​​​Type": "FUND_SINCE_INCEPTION",
              "Parameters": [],
              "Attributes": []
            },
            {
              "​​​​​​​Type": "FUND_HORIZON",
              "Parameters": [],
              "Attributes": []
            }
          ],
          "Benchmarks": []
        },
        {
          "Allow": [
            {
              "​​​​​​​Type": "INVESTIMENT_SINCE_INCEPTION",
              "Parameters": [],
              "Attributes": []
            }
          ],
          "Benchmarks": []
        }
      ]
    }
  },
  "Metadata": {}
}

Response Message

The structure below represents the payload of the customer profile object.

{
  "RequestId": "",
  "StatusCode": 200,
  "Errors": null,
  "Payload": [
    {
      "CustomerId": "fdc9365c-c838-4cb1-98d2-076390d80edf",
      "CustomerName": "Random Customer Name",
      "Active": true,
       "SFTP": {
            "ServerAddress": "169.10.876.1",
            "Username": "username",
            "Password": "password",
            "TlsHostCertificateFingerprint": "sdfdsfsdfds",
            "Port": 22,
            "Timeout": 60000
        },
      "Permissions": {
        "ParentLevelAttributes": [],
        "Reports": [
          {
            "Allow": [
              {
                "​​​​​​​Type": "FUND_SINCE_INCEPTION",
                "Parameters": [],
                "Attributes": []
              },
              {
                "​​​​​​​Type": "FUND_HORIZON",
                "Parameters": [],
                "Attributes": []
              }
            ],
            "Benchmarks": []
          },
          {
            "Allow": [
              {
                "​​​​​​​Type": "INVESTIMENT_SINCE_INCEPTION",
                "Parameters": [],
                "Attributes": []
              }
            ],
            "Benchmarks": []
          }
        ]
      },
      "CreatedOn": "2020-06-25T13:21:51.000Z",
      "CreatedBy": "bmc_listener_3",
      "LastModOn": null,
      "LastModBy": null
    }
  ],
  "Stats": {}
}

SFTP parameter details for customer

Parameter DataType Nullable Description Default Notes
SFTP.Username string false required for establishing SFTP connection NA Eg. dh_test_user
SFTP.Password string false required for establishing SFTP connection NA Eg. password
SFTP.ServerAddress string false unique address to specify SFTP server NA Eg. 10.223.66.228
SFTP.TlsHostCertificateFingerprint string true required for single sign in NA Eg. f0:c4:75:a9:be:75:14:aa:d6:14:e9:84:8d:6b:39:06:c1:98:a3:00
SFTP.Port integer true required to connect SFTP server 22 Eg. 22
SFTP.Timeout integer true required to specify time interval to connect with SFTP server 5 min Eg. 5min

Get Customer

Gets the customer's profile which defines their access level each individual benchmark

GET /api/v1/customers/:customerId

On Success: HTTP 200 - OK

Payload: JSON payload (see above)

Create Customer (internal)

Creates a new customer in the API (internal only). Please note , permissions to parameter access will be defined at customer level.

POST /api/v1/customers

On Success: HTTP 200 - OK

Payload: JSON payload (see above)

Update/Deactivate Customer (internal)

Updates the profile or deactivates an existing customer

POST /api/v1/customers/:customerId

On Success: HTTP 200 - OK

Payload: JSON payload (see above)

Note: To deactivate a customer, simply change Active property in request payload to false. If user is inactive then it will have limited permission and it will not be allowed to update , get or access other user details