# Models

## The AccountId object

```json
{"openapi":"3.0.0","info":{"title":"Customer Service (tenant-managed)","version":"0.0.1"},"components":{"schemas":{"AccountId":{"type":"object","properties":{"id":{"type":"string","description":"Customer email address."},"providerId":{"type":"string","description":"Customer account unique identifier generated by an external identity provider.\n\n**Note**: This field is only applicable if the user has been registered through social login."}}}}}}
```

## The Address object

```json
{"openapi":"3.0.0","info":{"title":"Customer Service (tenant-managed)","version":"0.0.1"},"components":{"schemas":{"Address":{"type":"object","description":"Customer address information.","properties":{"id":{"type":"string","description":"Customer address unique identifier generated when the address is added to the customer account."},"contactName":{"type":"string"},"companyName":{"type":"string"},"street":{"type":"string"},"streetNumber":{"type":"string"},"streetAppendix":{"type":"string"},"extraLine1":{"type":"string"},"extraLine2":{"type":"string"},"extraLine3":{"type":"string"},"extraLine4":{"type":"string"},"zipCode":{"type":"string"},"city":{"type":"string"},"country":{"type":"string","maxLength":2,"minLength":2},"state":{"type":"string"},"contactPhone":{"type":"string"},"isDefault":{"type":"boolean","default":false,"description":"Flag indicating whether the address is the customer default address."},"tags":{"type":"array","description":"","items":{"type":"string"}},"metadata":{"$ref":"#/components/schemas/DefaultDtoMetadata"},"mixins":{"type":"object","description":"Customer address additional properties.","additionalProperties":true}},"required":["contactName"]},"DefaultDtoMetadata":{"title":"DefaultDtoMetadata","type":"object","allOf":[{"$ref":"#/components/schemas/BasicMetadataDto"},{"type":"object","properties":{"version":{"type":"integer"}}}]},"BasicMetadataDto":{"title":"DefaultDtoMetadata","type":"object","properties":{"mixins":{"type":"object","additionalProperties":true}},"description":"Links to mixin schemas."}}}}
```

## The AddressCommonDto object

```json
{"openapi":"3.0.0","info":{"title":"Customer Service (tenant-managed)","version":"0.0.1"},"components":{"schemas":{"AddressCommonDto":{"title":"AddressCommonDto","type":"object","properties":{"contactName":{"type":"string"},"companyName":{"type":"string"},"street":{"type":"string"},"streetNumber":{"type":"string"},"streetAppendix":{"type":"string"},"extraLine1":{"type":"string"},"extraLine2":{"type":"string"},"extraLine3":{"type":"string"},"extraLine4":{"type":"string"},"zipCode":{"type":"string"},"city":{"type":"string"},"country":{"type":"string","description":"2 letter country code compliant with the ISO 3166-1 alpha-2 standard."},"state":{"type":"string"},"contactPhone":{"type":"string"},"tags":{"type":"array","description":"","items":{"type":"string"}},"metadata":{"$ref":"#/components/schemas/DefaultDtoMetadata"},"mixins":{"type":"object","description":"Customer address additional properties.","additionalProperties":true}}},"DefaultDtoMetadata":{"title":"DefaultDtoMetadata","type":"object","allOf":[{"$ref":"#/components/schemas/BasicMetadataDto"},{"type":"object","properties":{"version":{"type":"integer"}}}]},"BasicMetadataDto":{"title":"DefaultDtoMetadata","type":"object","properties":{"mixins":{"type":"object","additionalProperties":true}},"description":"Links to mixin schemas."}}}}
```

## The AddressUpdateDto object

```json
{"openapi":"3.0.0","info":{"title":"Customer Service (tenant-managed)","version":"0.0.1"},"components":{"schemas":{"AddressUpdateDto":{"allOf":[{"$ref":"#/components/schemas/AddressCommonDto"},{"type":"object","properties":{"isDefault":{"type":"boolean","description":"Flag indicating whether the address is the customer default address."},"contactName":{"type":"string","description":"Required if address does not exist and should be created in upsert operation."}}}]},"AddressCommonDto":{"title":"AddressCommonDto","type":"object","properties":{"contactName":{"type":"string"},"companyName":{"type":"string"},"street":{"type":"string"},"streetNumber":{"type":"string"},"streetAppendix":{"type":"string"},"extraLine1":{"type":"string"},"extraLine2":{"type":"string"},"extraLine3":{"type":"string"},"extraLine4":{"type":"string"},"zipCode":{"type":"string"},"city":{"type":"string"},"country":{"type":"string","description":"2 letter country code compliant with the ISO 3166-1 alpha-2 standard."},"state":{"type":"string"},"contactPhone":{"type":"string"},"tags":{"type":"array","description":"","items":{"type":"string"}},"metadata":{"$ref":"#/components/schemas/DefaultDtoMetadata"},"mixins":{"type":"object","description":"Customer address additional properties.","additionalProperties":true}}},"DefaultDtoMetadata":{"title":"DefaultDtoMetadata","type":"object","allOf":[{"$ref":"#/components/schemas/BasicMetadataDto"},{"type":"object","properties":{"version":{"type":"integer"}}}]},"BasicMetadataDto":{"title":"DefaultDtoMetadata","type":"object","properties":{"mixins":{"type":"object","additionalProperties":true}},"description":"Links to mixin schemas."}}}}
```

## The B2BCreate object

```json
{"openapi":"3.0.0","info":{"title":"Customer Service (tenant-managed)","version":"0.0.1"},"components":{"schemas":{"B2BCreate":{"type":"object","description":"Additional properties for B2B customer.","properties":{"companyRegistrationId":{"type":"string","description":"Registration number of the company."}}}}}}
```

## The B2BGet object

```json
{"openapi":"3.0.0","info":{"title":"Customer Service (tenant-managed)","version":"0.0.1"},"components":{"schemas":{"B2BGet":{"allOf":[{"$ref":"#/components/schemas/B2BCreate"}],"properties":{"legalEntities":{"type":"array","items":{"properties":{"id":{"type":"string","description":"ID of legal entity."},"name":{"type":"string","description":"Name of legal entity."},"contactAssignmentId":{"type":"string","description":"ID of contact assignment."}}}}}},"B2BCreate":{"type":"object","description":"Additional properties for B2B customer.","properties":{"companyRegistrationId":{"type":"string","description":"Registration number of the company."}}}}}}
```

## The Restriction object

```json
{"openapi":"3.0.0","info":{"title":"Customer Service (tenant-managed)","version":"0.0.1"},"components":{"schemas":{"Restriction":{"type":"string","nullable":true,"description":"Access control identifier that determines who can view or manage the customer.\n\n**Purpose**: Restricts customer visibility based on scope permissions. Only users/applications \nwith matching restriction scopes can access customers with a specific restriction value.\n\n**Access Control**:\n- *Reading*: Users can only query and view customers with the `restriction` value that matches one of their authorized restrictions.\n\n**Validation**: The value must exist in the tenant's configured list of valid restrictions.\n\n**Site Synchronization**: If the `restriction` property is not set with tenant configuration property `enableSyncBetweenRestrictionsAndSiteCodes` set to `true`, the `restriction` field automatically syncs with `preferredSite` property.\n"}}}}
```

## The CustomerCreateDto object

```json
{"openapi":"3.0.0","info":{"title":"Customer Service (tenant-managed)","version":"0.0.1"},"components":{"schemas":{"CustomerCreateDto":{"type":"object","properties":{"title":{"type":"string"},"firstName":{"type":"string"},"middleName":{"type":"string"},"lastName":{"type":"string"},"contactPhone":{"type":"string"},"company":{"type":"string"},"preferredLanguage":{"type":"string","default":"en_US","description":"Customer preferred language."},"preferredCurrency":{"type":"string","default":"USD","description":"Customer preferred currency, compliant with the ISO 4217 standard.","minLength":3,"maxLength":3},"preferredSite":{"type":"string","default":"main","description":"Customer preferred site."},"type":{"type":"string","description":"User type. Supported values are: `CUSTOMER` and `CONTACT`. If the field is empty then the user is considered as a customer."},"photoUrl":{"type":"string","description":"Url of a picture."},"b2b":{"allOf":[{"$ref":"#/components/schemas/B2BCreate"}]},"metadata":{"$ref":"#/components/schemas/BasicMetadataDto"},"mixins":{"type":"object","description":"Customer account's additional properties. The property is not returned by default. In order to return the mixins property use `expand=mixin:*` query param.","additionalProperties":true},"restriction":{"$ref":"#/components/schemas/Restriction"}}},"B2BCreate":{"type":"object","description":"Additional properties for B2B customer.","properties":{"companyRegistrationId":{"type":"string","description":"Registration number of the company."}}},"BasicMetadataDto":{"title":"DefaultDtoMetadata","type":"object","properties":{"mixins":{"type":"object","additionalProperties":true}},"description":"Links to mixin schemas."},"Restriction":{"type":"string","nullable":true,"description":"Access control identifier that determines who can view or manage the customer.\n\n**Purpose**: Restricts customer visibility based on scope permissions. Only users/applications \nwith matching restriction scopes can access customers with a specific restriction value.\n\n**Access Control**:\n- *Reading*: Users can only query and view customers with the `restriction` value that matches one of their authorized restrictions.\n\n**Validation**: The value must exist in the tenant's configured list of valid restrictions.\n\n**Site Synchronization**: If the `restriction` property is not set with tenant configuration property `enableSyncBetweenRestrictionsAndSiteCodes` set to `true`, the `restriction` field automatically syncs with `preferredSite` property.\n"}}}}
```

## The CustomerCommonDto object

```json
{"openapi":"3.0.0","info":{"title":"Customer Service (tenant-managed)","version":"0.0.1"},"components":{"schemas":{"CustomerCommonDto":{"type":"object","allOf":[{"$ref":"#/components/schemas/CustomerCreateDto"},{"type":"object","properties":{"metadata":{"$ref":"#/components/schemas/DefaultDtoMetadata"}}}]},"CustomerCreateDto":{"type":"object","properties":{"title":{"type":"string"},"firstName":{"type":"string"},"middleName":{"type":"string"},"lastName":{"type":"string"},"contactPhone":{"type":"string"},"company":{"type":"string"},"preferredLanguage":{"type":"string","default":"en_US","description":"Customer preferred language."},"preferredCurrency":{"type":"string","default":"USD","description":"Customer preferred currency, compliant with the ISO 4217 standard.","minLength":3,"maxLength":3},"preferredSite":{"type":"string","default":"main","description":"Customer preferred site."},"type":{"type":"string","description":"User type. Supported values are: `CUSTOMER` and `CONTACT`. If the field is empty then the user is considered as a customer."},"photoUrl":{"type":"string","description":"Url of a picture."},"b2b":{"allOf":[{"$ref":"#/components/schemas/B2BCreate"}]},"metadata":{"$ref":"#/components/schemas/BasicMetadataDto"},"mixins":{"type":"object","description":"Customer account's additional properties. The property is not returned by default. In order to return the mixins property use `expand=mixin:*` query param.","additionalProperties":true},"restriction":{"$ref":"#/components/schemas/Restriction"}}},"B2BCreate":{"type":"object","description":"Additional properties for B2B customer.","properties":{"companyRegistrationId":{"type":"string","description":"Registration number of the company."}}},"BasicMetadataDto":{"title":"DefaultDtoMetadata","type":"object","properties":{"mixins":{"type":"object","additionalProperties":true}},"description":"Links to mixin schemas."},"Restriction":{"type":"string","nullable":true,"description":"Access control identifier that determines who can view or manage the customer.\n\n**Purpose**: Restricts customer visibility based on scope permissions. Only users/applications \nwith matching restriction scopes can access customers with a specific restriction value.\n\n**Access Control**:\n- *Reading*: Users can only query and view customers with the `restriction` value that matches one of their authorized restrictions.\n\n**Validation**: The value must exist in the tenant's configured list of valid restrictions.\n\n**Site Synchronization**: If the `restriction` property is not set with tenant configuration property `enableSyncBetweenRestrictionsAndSiteCodes` set to `true`, the `restriction` field automatically syncs with `preferredSite` property.\n"},"DefaultDtoMetadata":{"title":"DefaultDtoMetadata","type":"object","allOf":[{"$ref":"#/components/schemas/BasicMetadataDto"},{"type":"object","properties":{"version":{"type":"integer"}}}]}}}}
```

## The CustomerForSellerDto object

```json
{"openapi":"3.0.0","info":{"title":"Customer Service (tenant-managed)","version":"0.0.1"},"components":{"schemas":{"CustomerForSellerDto":{"title":"CustomerForSellerDto","allOf":[{"$ref":"#/components/schemas/CustomerCommonDto"},{"type":"object","properties":{"customerNumber":{"type":"string","description":"Customer unique number generated when the customer profile is created."},"id":{"type":"string","description":"Customer unique identifier generated when the customer profile is created."},"defaultAddress":{"$ref":"#/components/schemas/Address"},"accounts":{"type":"array","description":"List of accounts associated with the customer profile.","items":{"$ref":"#/components/schemas/AccountId"}},"addresses":{"type":"array","description":"List of customer addresses.","items":{"$ref":"#/components/schemas/Address"}},"contactEmail":{"type":"string"},"active":{"type":"boolean","description":"Flag indicating whether the customer profile is active."},"onHold":{"type":"boolean","description":"Flag indicating whether the customer profile is suspended."},"email":{"type":"string","description":"Customer email address."},"b2b":{"allOf":[{"$ref":"#/components/schemas/B2BGet"}]},"businessModel":{"type":"string","enum":["B2B","B2C"],"description":"Property indicating business model of customer. When customer is assigned to any company then it is `B2B`. Otherwise it is `B2C`."},"metadataCreatedAt":{"type":"string","description":"Customer creation date."}}}]},"CustomerCommonDto":{"type":"object","allOf":[{"$ref":"#/components/schemas/CustomerCreateDto"},{"type":"object","properties":{"metadata":{"$ref":"#/components/schemas/DefaultDtoMetadata"}}}]},"CustomerCreateDto":{"type":"object","properties":{"title":{"type":"string"},"firstName":{"type":"string"},"middleName":{"type":"string"},"lastName":{"type":"string"},"contactPhone":{"type":"string"},"company":{"type":"string"},"preferredLanguage":{"type":"string","default":"en_US","description":"Customer preferred language."},"preferredCurrency":{"type":"string","default":"USD","description":"Customer preferred currency, compliant with the ISO 4217 standard.","minLength":3,"maxLength":3},"preferredSite":{"type":"string","default":"main","description":"Customer preferred site."},"type":{"type":"string","description":"User type. Supported values are: `CUSTOMER` and `CONTACT`. If the field is empty then the user is considered as a customer."},"photoUrl":{"type":"string","description":"Url of a picture."},"b2b":{"allOf":[{"$ref":"#/components/schemas/B2BCreate"}]},"metadata":{"$ref":"#/components/schemas/BasicMetadataDto"},"mixins":{"type":"object","description":"Customer account's additional properties. The property is not returned by default. In order to return the mixins property use `expand=mixin:*` query param.","additionalProperties":true},"restriction":{"$ref":"#/components/schemas/Restriction"}}},"B2BCreate":{"type":"object","description":"Additional properties for B2B customer.","properties":{"companyRegistrationId":{"type":"string","description":"Registration number of the company."}}},"BasicMetadataDto":{"title":"DefaultDtoMetadata","type":"object","properties":{"mixins":{"type":"object","additionalProperties":true}},"description":"Links to mixin schemas."},"Restriction":{"type":"string","nullable":true,"description":"Access control identifier that determines who can view or manage the customer.\n\n**Purpose**: Restricts customer visibility based on scope permissions. Only users/applications \nwith matching restriction scopes can access customers with a specific restriction value.\n\n**Access Control**:\n- *Reading*: Users can only query and view customers with the `restriction` value that matches one of their authorized restrictions.\n\n**Validation**: The value must exist in the tenant's configured list of valid restrictions.\n\n**Site Synchronization**: If the `restriction` property is not set with tenant configuration property `enableSyncBetweenRestrictionsAndSiteCodes` set to `true`, the `restriction` field automatically syncs with `preferredSite` property.\n"},"DefaultDtoMetadata":{"title":"DefaultDtoMetadata","type":"object","allOf":[{"$ref":"#/components/schemas/BasicMetadataDto"},{"type":"object","properties":{"version":{"type":"integer"}}}]},"Address":{"type":"object","description":"Customer address information.","properties":{"id":{"type":"string","description":"Customer address unique identifier generated when the address is added to the customer account."},"contactName":{"type":"string"},"companyName":{"type":"string"},"street":{"type":"string"},"streetNumber":{"type":"string"},"streetAppendix":{"type":"string"},"extraLine1":{"type":"string"},"extraLine2":{"type":"string"},"extraLine3":{"type":"string"},"extraLine4":{"type":"string"},"zipCode":{"type":"string"},"city":{"type":"string"},"country":{"type":"string","maxLength":2,"minLength":2},"state":{"type":"string"},"contactPhone":{"type":"string"},"isDefault":{"type":"boolean","default":false,"description":"Flag indicating whether the address is the customer default address."},"tags":{"type":"array","description":"","items":{"type":"string"}},"metadata":{"$ref":"#/components/schemas/DefaultDtoMetadata"},"mixins":{"type":"object","description":"Customer address additional properties.","additionalProperties":true}},"required":["contactName"]},"AccountId":{"type":"object","properties":{"id":{"type":"string","description":"Customer email address."},"providerId":{"type":"string","description":"Customer account unique identifier generated by an external identity provider.\n\n**Note**: This field is only applicable if the user has been registered through social login."}}},"B2BGet":{"allOf":[{"$ref":"#/components/schemas/B2BCreate"}],"properties":{"legalEntities":{"type":"array","items":{"properties":{"id":{"type":"string","description":"ID of legal entity."},"name":{"type":"string","description":"Name of legal entity."},"contactAssignmentId":{"type":"string","description":"ID of contact assignment."}}}}}}}}}
```

## The CustomerSignupBySellerDto object

```json
{"openapi":"3.0.0","info":{"title":"Customer Service (tenant-managed)","version":"0.0.1"},"components":{"schemas":{"CustomerSignupBySellerDto":{"allOf":[{"$ref":"#/components/schemas/CustomerCreateDto"},{"type":"object","properties":{"id":{"type":"string","description":"Custom customer identifier. If not provided, it is automatically generated.","minLength":1,"maxLength":66,"pattern":"^[a-zA-Z0-9_-]$"},"contactEmail":{"type":"string"},"password":{"type":"string","description":"Initial password for customer"}}}]},"CustomerCreateDto":{"type":"object","properties":{"title":{"type":"string"},"firstName":{"type":"string"},"middleName":{"type":"string"},"lastName":{"type":"string"},"contactPhone":{"type":"string"},"company":{"type":"string"},"preferredLanguage":{"type":"string","default":"en_US","description":"Customer preferred language."},"preferredCurrency":{"type":"string","default":"USD","description":"Customer preferred currency, compliant with the ISO 4217 standard.","minLength":3,"maxLength":3},"preferredSite":{"type":"string","default":"main","description":"Customer preferred site."},"type":{"type":"string","description":"User type. Supported values are: `CUSTOMER` and `CONTACT`. If the field is empty then the user is considered as a customer."},"photoUrl":{"type":"string","description":"Url of a picture."},"b2b":{"allOf":[{"$ref":"#/components/schemas/B2BCreate"}]},"metadata":{"$ref":"#/components/schemas/BasicMetadataDto"},"mixins":{"type":"object","description":"Customer account's additional properties. The property is not returned by default. In order to return the mixins property use `expand=mixin:*` query param.","additionalProperties":true},"restriction":{"$ref":"#/components/schemas/Restriction"}}},"B2BCreate":{"type":"object","description":"Additional properties for B2B customer.","properties":{"companyRegistrationId":{"type":"string","description":"Registration number of the company."}}},"BasicMetadataDto":{"title":"DefaultDtoMetadata","type":"object","properties":{"mixins":{"type":"object","additionalProperties":true}},"description":"Links to mixin schemas."},"Restriction":{"type":"string","nullable":true,"description":"Access control identifier that determines who can view or manage the customer.\n\n**Purpose**: Restricts customer visibility based on scope permissions. Only users/applications \nwith matching restriction scopes can access customers with a specific restriction value.\n\n**Access Control**:\n- *Reading*: Users can only query and view customers with the `restriction` value that matches one of their authorized restrictions.\n\n**Validation**: The value must exist in the tenant's configured list of valid restrictions.\n\n**Site Synchronization**: If the `restriction` property is not set with tenant configuration property `enableSyncBetweenRestrictionsAndSiteCodes` set to `true`, the `restriction` field automatically syncs with `preferredSite` property.\n"}}}}
```

## The CustomerUpdateBySellerDto object

```json
{"openapi":"3.0.0","info":{"title":"Customer Service (tenant-managed)","version":"0.0.1"},"components":{"schemas":{"CustomerUpdateBySellerDto":{"allOf":[{"$ref":"#/components/schemas/CustomerCommonDto"},{"type":"object","properties":{"contactEmail":{"type":"string"},"active":{"type":"boolean"},"onHold":{"type":"boolean"}}}]},"CustomerCommonDto":{"type":"object","allOf":[{"$ref":"#/components/schemas/CustomerCreateDto"},{"type":"object","properties":{"metadata":{"$ref":"#/components/schemas/DefaultDtoMetadata"}}}]},"CustomerCreateDto":{"type":"object","properties":{"title":{"type":"string"},"firstName":{"type":"string"},"middleName":{"type":"string"},"lastName":{"type":"string"},"contactPhone":{"type":"string"},"company":{"type":"string"},"preferredLanguage":{"type":"string","default":"en_US","description":"Customer preferred language."},"preferredCurrency":{"type":"string","default":"USD","description":"Customer preferred currency, compliant with the ISO 4217 standard.","minLength":3,"maxLength":3},"preferredSite":{"type":"string","default":"main","description":"Customer preferred site."},"type":{"type":"string","description":"User type. Supported values are: `CUSTOMER` and `CONTACT`. If the field is empty then the user is considered as a customer."},"photoUrl":{"type":"string","description":"Url of a picture."},"b2b":{"allOf":[{"$ref":"#/components/schemas/B2BCreate"}]},"metadata":{"$ref":"#/components/schemas/BasicMetadataDto"},"mixins":{"type":"object","description":"Customer account's additional properties. The property is not returned by default. In order to return the mixins property use `expand=mixin:*` query param.","additionalProperties":true},"restriction":{"$ref":"#/components/schemas/Restriction"}}},"B2BCreate":{"type":"object","description":"Additional properties for B2B customer.","properties":{"companyRegistrationId":{"type":"string","description":"Registration number of the company."}}},"BasicMetadataDto":{"title":"DefaultDtoMetadata","type":"object","properties":{"mixins":{"type":"object","additionalProperties":true}},"description":"Links to mixin schemas."},"Restriction":{"type":"string","nullable":true,"description":"Access control identifier that determines who can view or manage the customer.\n\n**Purpose**: Restricts customer visibility based on scope permissions. Only users/applications \nwith matching restriction scopes can access customers with a specific restriction value.\n\n**Access Control**:\n- *Reading*: Users can only query and view customers with the `restriction` value that matches one of their authorized restrictions.\n\n**Validation**: The value must exist in the tenant's configured list of valid restrictions.\n\n**Site Synchronization**: If the `restriction` property is not set with tenant configuration property `enableSyncBetweenRestrictionsAndSiteCodes` set to `true`, the `restriction` field automatically syncs with `preferredSite` property.\n"},"DefaultDtoMetadata":{"title":"DefaultDtoMetadata","type":"object","allOf":[{"$ref":"#/components/schemas/BasicMetadataDto"},{"type":"object","properties":{"version":{"type":"integer"}}}]}}}}
```

## The CustomerUpdateDto object

```json
{"openapi":"3.0.0","info":{"title":"Customer Service (tenant-managed)","version":"0.0.1"},"components":{"schemas":{"CustomerUpdateDto":{"allOf":[{"$ref":"#/components/schemas/CustomerCommonDto"},{"type":"object","properties":{"contactEmail":{"type":"string"}}}]},"CustomerCommonDto":{"type":"object","allOf":[{"$ref":"#/components/schemas/CustomerCreateDto"},{"type":"object","properties":{"metadata":{"$ref":"#/components/schemas/DefaultDtoMetadata"}}}]},"CustomerCreateDto":{"type":"object","properties":{"title":{"type":"string"},"firstName":{"type":"string"},"middleName":{"type":"string"},"lastName":{"type":"string"},"contactPhone":{"type":"string"},"company":{"type":"string"},"preferredLanguage":{"type":"string","default":"en_US","description":"Customer preferred language."},"preferredCurrency":{"type":"string","default":"USD","description":"Customer preferred currency, compliant with the ISO 4217 standard.","minLength":3,"maxLength":3},"preferredSite":{"type":"string","default":"main","description":"Customer preferred site."},"type":{"type":"string","description":"User type. Supported values are: `CUSTOMER` and `CONTACT`. If the field is empty then the user is considered as a customer."},"photoUrl":{"type":"string","description":"Url of a picture."},"b2b":{"allOf":[{"$ref":"#/components/schemas/B2BCreate"}]},"metadata":{"$ref":"#/components/schemas/BasicMetadataDto"},"mixins":{"type":"object","description":"Customer account's additional properties. The property is not returned by default. In order to return the mixins property use `expand=mixin:*` query param.","additionalProperties":true},"restriction":{"$ref":"#/components/schemas/Restriction"}}},"B2BCreate":{"type":"object","description":"Additional properties for B2B customer.","properties":{"companyRegistrationId":{"type":"string","description":"Registration number of the company."}}},"BasicMetadataDto":{"title":"DefaultDtoMetadata","type":"object","properties":{"mixins":{"type":"object","additionalProperties":true}},"description":"Links to mixin schemas."},"Restriction":{"type":"string","nullable":true,"description":"Access control identifier that determines who can view or manage the customer.\n\n**Purpose**: Restricts customer visibility based on scope permissions. Only users/applications \nwith matching restriction scopes can access customers with a specific restriction value.\n\n**Access Control**:\n- *Reading*: Users can only query and view customers with the `restriction` value that matches one of their authorized restrictions.\n\n**Validation**: The value must exist in the tenant's configured list of valid restrictions.\n\n**Site Synchronization**: If the `restriction` property is not set with tenant configuration property `enableSyncBetweenRestrictionsAndSiteCodes` set to `true`, the `restriction` field automatically syncs with `preferredSite` property.\n"},"DefaultDtoMetadata":{"title":"DefaultDtoMetadata","type":"object","allOf":[{"$ref":"#/components/schemas/BasicMetadataDto"},{"type":"object","properties":{"version":{"type":"integer"}}}]}}}}
```

## The BasicMetadataDto object

```json
{"openapi":"3.0.0","info":{"title":"Customer Service (tenant-managed)","version":"0.0.1"},"components":{"schemas":{"BasicMetadataDto":{"title":"DefaultDtoMetadata","type":"object","properties":{"mixins":{"type":"object","additionalProperties":true}},"description":"Links to mixin schemas."}}}}
```

## The DefaultDtoMetadata object

```json
{"openapi":"3.0.0","info":{"title":"Customer Service (tenant-managed)","version":"0.0.1"},"components":{"schemas":{"DefaultDtoMetadata":{"title":"DefaultDtoMetadata","type":"object","allOf":[{"$ref":"#/components/schemas/BasicMetadataDto"},{"type":"object","properties":{"version":{"type":"integer"}}}]},"BasicMetadataDto":{"title":"DefaultDtoMetadata","type":"object","properties":{"mixins":{"type":"object","additionalProperties":true}},"description":"Links to mixin schemas."}}}}
```

## The ErrorMessage object

```json
{"openapi":"3.0.0","info":{"title":"Customer Service (tenant-managed)","version":"0.0.1"},"components":{"schemas":{"ErrorMessage":{"title":"","description":"Schema for API-specific errors.","type":"object","properties":{"status":{"minimum":100,"maximum":599,"description":"Original HTTP error code. It should be consistent with the HTTP response code.","type":"integer"},"type":{"pattern":"[a-z]+[a-z_]*[a-z]+","description":"Classification of the error type.\n**Note:** The error type should be written in lowercase and include underscores, for example `validation_failure`.","type":"string"},"message":{"description":"Descriptive error message for debugging purposes.","type":"string"},"moreInfo":{"type":"string","description":"More information (such as a link to the documentation) for investigating further and getting support."},"details":{"description":"List of problems causing the error.","type":"array","items":{"title":"errorDetail","description":"Specific error cause.","type":"object","properties":{"field":{"description":"Element in request data which is causing the error, for example `category.name`.\nIf the violation was not field-specific, this field will be empty.","type":"string"},"type":{"pattern":"[a-z]+[a-z_]*[a-z]+","description":"Classification of the specific error cause. This value should always be interpreted within the context of the general error type.\n**Note:** The error type should be written in lowercase and include underscores, for example `missing_value`.","type":"string"},"message":{"description":"Descriptive error message for debugging purposes.","type":"string"},"moreInfo":{"type":"string","description":"More information (such as a link to the documentation) for investigating further and getting support."}}}}}}}}}
```

## The ResourceLocation object

```json
{"openapi":"3.0.0","info":{"title":"Customer Service (tenant-managed)","version":"0.0.1"},"components":{"schemas":{"ResourceLocation":{"type":"object","title":"Resource Location","description":"Schema for showing location of the new resource.","properties":{"id":{"description":"Resource identifier.","type":"string"}}}}}}
```

## The Address\_2 object

```json
{"openapi":"3.0.0","info":{"title":"Customer Service (tenant-managed)","version":"0.0.1"},"components":{"schemas":{"Address_2":{"type":"object","properties":{"id":{"type":"string","description":"Custom customer address identifier. If not provided, it is automatically generated."},"contactName":{"type":"string"},"companyName":{"type":"string"},"street":{"type":"string"},"streetNumber":{"type":"string"},"streetAppendix":{"type":"string"},"extraLine1":{"type":"string"},"extraLine2":{"type":"string"},"extraLine3":{"type":"string"},"extraLine4":{"type":"string"},"zipCode":{"type":"string"},"city":{"type":"string"},"country":{"type":"string","maxLength":2,"minLength":2},"state":{"type":"string"},"contactPhone":{"type":"string"},"isDefault":{"type":"boolean","default":false,"description":"Flag indicating whether the address is the customer default address."},"tags":{"type":"array","description":"","items":{"type":"string"}},"metadata":{"type":"object","additionalProperties":false,"description":"Links to mixin schemas.","properties":{"mixins":{"type":"object","additionalProperties":true}}},"mixins":{"type":"object","description":"Customer address additional properties.","additionalProperties":true}},"required":["contactName"],"description":""}}}}
```

## The CustomerLogin object

```json
{"openapi":"3.0.0","info":{"title":"Customer Service (tenant-managed)","version":"0.0.1"},"components":{"schemas":{"CustomerLogin":{"title":"CustomerLogin","type":"object","properties":{"accessToken":{"type":"string","minLength":1},"saasToken":{"type":"string","minLength":1},"expiresIn":{"type":"number"},"refreshToken":{"type":"string","minLength":1},"refreshTokenExpiresIn":{"type":"number"}}}}}}
```

## The AssistedBuyingLoginDto object

```json
{"openapi":"3.0.0","info":{"title":"Customer Service (tenant-managed)","version":"0.0.1"},"components":{"schemas":{"AssistedBuyingLoginDto":{"title":"AssistedBuyingLoginDto","type":"object","properties":{"customerNumber":{"type":"string","description":"The customer number for which the token should be generated"}},"required":["customerNumber"]}}}}
```
