Create a customer

POST /v1/Customers

Creates a new Customer with the provided CustomerViewModel. Available to the roles: csp, reseller

Headers

  • X-Tenant string Required

    This header identifies which tenant to access with this request. This value should be an existent domain for the specified tenant.

  • Authorization string Required

    JWT Authorization header using the Bearer scheme. Example: "Authorization: Bearer {token}"

    Default value is Bearer eyJ0eXAiO....

  • X-Correlation-Id string(UUID)

    This header is optional and by setting it you can correlate the audit logs made by this request.

application/json

Body

The customer info to create the customer.

  • id string(uuid)

    The GUID identifier for the customer.

  • companyName string | null Required

    The name of the company. This may be up to 255 characters.

  • taxId string | null

    The company tax Id. This may be up to 255 characters.

  • country string | null Required

    The company country code in the ISO 3166-1 alpha-2 standard.

  • addressLine1 string | null Required

    The company address line 1. This may be up to 255 characters.

  • addressLine2 string | null

    The company address line 2. This may be up to 255 characters.

  • city string | null Required

    The company city. This may be up to 255 characters.

  • state string | null Required

    The company State. This may be up to 255 characters.

  • zip string | null Required

    The company ZIP. This may be up to 30 characters.

  • firstName string | null Required

    The company primary contact first name. This may be up to 255 characters.

  • middleName string | null

    The company primary contact middle name. This may be up to 255 characters.

  • lastName string | null Required

    The company primary contact last name. This may be up to 255 characters.

  • email string | null Required

    The company primary contact email. This may be up to 255 characters.

  • phone string | null Required

    The company primary contact phone. This may be up to 30 characters.

  • internalIdentifier string | null

    The customer internal identifier. This may be up to 255 characters.

  • resellerId string(uuid) | null

    The reseller identifier. If this value is set a relation between this customer and the reseller will be created, if null a direct relation between the CSP and the customer will be created instead.

  • providerCustomers object | null Required

    The provider customers. A list containing the info about this customer in one or more provider instances.

    Hide providerCustomers attributes Show providerCustomers attributes
    • The GUID identifier for the provider instance.

    • providerCustomerId string | null

      The identifier for customer on the provider. This property will only be populated after a customer is successfully created on the provider.

    • The provider specific data for this customer.

    • margin object

      This value object contains the price margin for this entity.

      Hide margin attributes Show margin attributes
    • offerTypeMargins object | null

      Contains as key the name of the offer type and as value the price margin applied to each offer type for this specific provider instance. Price margins applied at the offer type level will override the price margin applied at the provider instance level. If no price margin is applied to a specific offer type of this provider instance then it will not be in the dictionary. This dictionary is optional.

      Hide offerTypeMargins attributes Show offerTypeMargins attributes
    • status object

      The status for this entity. Possible values: Processing, Success, Failed

      Hide status attribute Show status attribute
    • The creation error for this provider customer. This property will only have a diferent value than None if the Status is equal to Failed. Possible values: DomainExists, InvalidCompanyInfo, None or Unknown

      Hide customerCreationError attribute Show customerCreationError attribute
  • customerAssociations array[object] | null

    The viewmodel for the customer relationships.

    Hide customerAssociations attributes Show customerAssociations attributes object

Responses

POST /v1/Customers
curl \
 -X POST https://app-cloudcockpitapi-prod-01.azurewebsites.net/v1/Customers \
 -H "Content-Type: application/json" \
 -H "X-Tenant: string" \
 -H "Authorization: Bearer eyJ0eXAiO..." \
 -H "X-Correlation-Id: string" \
 -d '{"id":"string","companyName":"string","taxId":"string","country":"PT","addressLine1":"string","addressLine2":"string","city":"string","state":"string","zip":"string","firstName":"string","middleName":"string","lastName":"string","email":"string","phone":"string","internalIdentifier":"string","resellerId":"string","providerCustomers":{"cb3cd15b-1d6e-45be-b493-c71549cbfd87":{"providerInstanceId":"cb3cd15b-1d6e-45be-b493-c71549cbfd87","providerCustomerId":"f574cf12-a7d6-43fe-9663-1af97b04e5ab","providerCustomerData":"{\"Domain\":\"TestDomain\",\"CredentialsEmail\":\"test@email.com\",\"AcceptedMCA\":true,\"AgreementDate\":\"2022-12-28T00:00:00Z\",\"KeepPrimaryInformation\":true,\"FirstName\":\"Test\",\"LastName\":\"Test\",\"Email\":\"test@email.com\",\"Phone\":\"921231231\",\"DefaultCulture\":\"en-US\",\"Language\":\"en\",\"AssociatedPartnerId\":null,\"Qualifications\":[],\"EnableGDAP\":true}","margin":{"marginRule":{"name":"markup"},"value":10.6},"offerTypeMargins":{"Value":{"license":{"MarginRule":{"Name":"markup"},"Value":10}}}}},"customerAssociations":[{"resellerId":"string","name":"string"}]}'
Request example
# Headers
X-Tenant: string
Authorization: Bearer eyJ0eXAiO...
X-Correlation-Id: string

# Payload
{
  "id": "string",
  "companyName": "string",
  "taxId": "string",
  "country": "PT",
  "addressLine1": "string",
  "addressLine2": "string",
  "city": "string",
  "state": "string",
  "zip": "string",
  "firstName": "string",
  "middleName": "string",
  "lastName": "string",
  "email": "string",
  "phone": "string",
  "internalIdentifier": "string",
  "resellerId": "string",
  "providerCustomers": {
    "cb3cd15b-1d6e-45be-b493-c71549cbfd87": {
      "providerInstanceId": "cb3cd15b-1d6e-45be-b493-c71549cbfd87",
      "providerCustomerId": "f574cf12-a7d6-43fe-9663-1af97b04e5ab",
      "providerCustomerData": "{\"Domain\":\"TestDomain\",\"CredentialsEmail\":\"test@email.com\",\"AcceptedMCA\":true,\"AgreementDate\":\"2022-12-28T00:00:00Z\",\"KeepPrimaryInformation\":true,\"FirstName\":\"Test\",\"LastName\":\"Test\",\"Email\":\"test@email.com\",\"Phone\":\"921231231\",\"DefaultCulture\":\"en-US\",\"Language\":\"en\",\"AssociatedPartnerId\":null,\"Qualifications\":[],\"EnableGDAP\":true}",
      "margin": {
        "marginRule": {
          "name": "markup"
        },
        "value": 10.6
      },
      "offerTypeMargins": {
        "Value": {
          "license": {
            "MarginRule": {
              "Name": "markup"
            },
            "Value": 10
          }
        }
      }
    }
  },
  "customerAssociations": [
    {
      "resellerId": "string",
      "name": "string"
    }
  ]
}
Response examples (200)
"string"
Response examples (200)
"string"
Response examples (201)
"string"
Response examples (201)
"string"
Response examples (400)
{
  "statusCode": 42,
  "type": "string",
  "description": "string",
  "correlationId": "string",
  "errors": [
    {
      "propertyName": "string",
      "description": [
        "string"
      ]
    }
  ]
}
Response examples (400)
{
  "statusCode": 42,
  "type": "string",
  "description": "string",
  "correlationId": "string",
  "errors": [
    {
      "propertyName": "string",
      "description": [
        "string"
      ]
    }
  ]
}
Response examples (500)
{
  "statusCode": 42,
  "type": "string",
  "description": "string",
  "correlationId": "string",
  "errors": [
    {
      "propertyName": "string",
      "description": [
        "string"
      ]
    }
  ]
}
Response examples (500)
{
  "statusCode": 42,
  "type": "string",
  "description": "string",
  "correlationId": "string",
  "errors": [
    {
      "propertyName": "string",
      "description": [
        "string"
      ]
    }
  ]
}