> For the complete documentation index, see [llms.txt](https://developer.emporix.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://developer.emporix.io/api-references-1/readme/api-reference-13/models.md).

# 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 CustomerImportDto object

```json
{"openapi":"3.0.0","info":{"title":"Customer Service (tenant-managed)","version":"0.0.1"},"components":{"schemas":{"CustomerImportDto":{"allOf":[{"$ref":"#/components/schemas/CustomerCreateDto"},{"type":"object","required":["account"],"properties":{"id":{"type":"string","description":"Custom customer identifier. If not provided, it is automatically generated.","minLength":1,"maxLength":66,"pattern":"^[\\w-]{1,66}$"},"contactEmail":{"type":"string","description":"Optional contact email. When provided, it must match `account.email` (case-insensitive).\nIf omitted, `account.email` is used as the contact email.\n"},"account":{"$ref":"#/components/schemas/CustomerImportAccountDto"}}}]},"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"},"CustomerImportAccountDto":{"type":"object","required":["email"],"properties":{"email":{"type":"string","description":"Customer account email address. Used as the account identifier."},"passwordHash":{"type":"string","description":"Precomputed Emporix native password hash.\n\nProvide exactly one of `passwordHash` or `legacyAuth`.\nPlease, contact Emporix support to determine if your existing password hashing strategy is compatible with the Emporix native password hashing strategy.\n"},"legacyAuth":{"$ref":"#/components/schemas/LegacyAuth","description":"Legacy authentication data used for password migration.\n\nProvide exactly one of `passwordHash` or `legacyAuth`. Requires an active password migration retention configuration for the tenant.\n"}}},"LegacyAuth":{"type":"object","required":["algorithm","hash"],"properties":{"algorithm":{"type":"string","description":"Identifier of the legacy password verifier to use during login. Please, contact Emporix support to determine the correct value for your case.","enum":["hybris-sha512-uid-salt"]},"hash":{"type":"string","description":"Raw password hash exported from the source system. Stored only in `legacyAuth`, never in the native password field."},"context":{"type":"object","description":"Algorithm-specific metadata required for verification.\nPlease, contact Emporix support to determine the correct values for your case.\n","additionalProperties":{"type":"string"}}}}}}}
```

## The CustomerImportAccountDto object

```json
{"openapi":"3.0.0","info":{"title":"Customer Service (tenant-managed)","version":"0.0.1"},"components":{"schemas":{"CustomerImportAccountDto":{"type":"object","required":["email"],"properties":{"email":{"type":"string","description":"Customer account email address. Used as the account identifier."},"passwordHash":{"type":"string","description":"Precomputed Emporix native password hash.\n\nProvide exactly one of `passwordHash` or `legacyAuth`.\nPlease, contact Emporix support to determine if your existing password hashing strategy is compatible with the Emporix native password hashing strategy.\n"},"legacyAuth":{"$ref":"#/components/schemas/LegacyAuth","description":"Legacy authentication data used for password migration.\n\nProvide exactly one of `passwordHash` or `legacyAuth`. Requires an active password migration retention configuration for the tenant.\n"}}},"LegacyAuth":{"type":"object","required":["algorithm","hash"],"properties":{"algorithm":{"type":"string","description":"Identifier of the legacy password verifier to use during login. Please, contact Emporix support to determine the correct value for your case.","enum":["hybris-sha512-uid-salt"]},"hash":{"type":"string","description":"Raw password hash exported from the source system. Stored only in `legacyAuth`, never in the native password field."},"context":{"type":"object","description":"Algorithm-specific metadata required for verification.\nPlease, contact Emporix support to determine the correct values for your case.\n","additionalProperties":{"type":"string"}}}}}}}
```

## The LegacyAuth object

```json
{"openapi":"3.0.0","info":{"title":"Customer Service (tenant-managed)","version":"0.0.1"},"components":{"schemas":{"LegacyAuth":{"type":"object","required":["algorithm","hash"],"properties":{"algorithm":{"type":"string","description":"Identifier of the legacy password verifier to use during login. Please, contact Emporix support to determine the correct value for your case.","enum":["hybris-sha512-uid-salt"]},"hash":{"type":"string","description":"Raw password hash exported from the source system. Stored only in `legacyAuth`, never in the native password field."},"context":{"type":"object","description":"Algorithm-specific metadata required for verification.\nPlease, contact Emporix support to determine the correct values for your case.\n","additionalProperties":{"type":"string"}}}}}}}
```

## The PasswordMigrationRetentionConfigRequest object

```json
{"openapi":"3.0.0","info":{"title":"Customer Service (tenant-managed)","version":"0.0.1"},"components":{"schemas":{"PasswordMigrationRetentionConfigRequest":{"type":"object","required":["retentionEndDate"],"properties":{"retentionEndDate":{"type":"string","format":"date","description":"Future date when the password migration retention window ends."},"emailReminderDate":{"type":"string","format":"date","description":"Optional date on or after today and before `retentionEndDate` when reminder emails are sent to unmigrated customers.\nWhen omitted, defaults to 7 days before `retentionEndDate`, or to tomorrow when that default would fall on or before today.\n"},"emailNotificationsEnabled":{"type":"boolean","default":true,"description":"Optional flag indicating whether customers receive email notifications about the migration process.\nWhen `true`, customers receive reminder and password reset emails. When `false`, customers do not receive any emails regarding the migration.\nWhen omitted, defaults to `true`.\n"}}}}}}
```

## The PasswordMigrationRetentionConfigResponse object

```json
{"openapi":"3.0.0","info":{"title":"Customer Service (tenant-managed)","version":"0.0.1"},"components":{"schemas":{"PasswordMigrationRetentionConfigResponse":{"type":"object","properties":{"retentionEndDate":{"type":"string","format":"date","description":"Date when the password migration retention window ends."},"emailReminderDate":{"type":"string","format":"date","description":"Date when reminder emails are sent to unmigrated customers."},"emailNotificationsEnabled":{"type":"boolean","description":"Flag indicating whether customers receive email notifications about the migration process.\nWhen `true`, customers receive reminder and password reset emails. When `false`, customers do not receive any emails regarding the migration.\n"}}}}}}
```

## The CustomerBulkItemResponse object

```json
{"openapi":"3.0.0","info":{"title":"Customer Service (tenant-managed)","version":"0.0.1"},"components":{"schemas":{"CustomerBulkItemResponse":{"type":"object","properties":{"index":{"type":"integer","description":"Index of the processed item, matching the item position in the request body."},"id":{"type":"string","description":"Customer number generated for a successfully imported customer."},"code":{"type":"integer","description":"HTTP status code for the processed item."},"status":{"type":"string","description":"HTTP status description for the processed item."},"message":{"type":"string","description":"Error message when the item failed."},"details":{"type":"array","description":"List of problems causing the error.","items":{"type":"object","properties":{"message":{"type":"string"}}}}}}}}}
```

## 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 CustomerPatchBySellerDto object

```json
{"openapi":"3.0.0","info":{"title":"Customer Service (tenant-managed)","version":"0.0.1"},"components":{"schemas":{"CustomerPatchBySellerDto":{"allOf":[{"$ref":"#/components/schemas/CustomerUpdateBySellerDto"},{"type":"object","properties":{"contactEmail":{"type":"string","description":"Contact email address. Cannot be unset once a value is present."}}}]},"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 CustomerPatchDto object

```json
{"openapi":"3.0.0","info":{"title":"Customer Service (tenant-managed)","version":"0.0.1"},"components":{"schemas":{"CustomerPatchDto":{"allOf":[{"$ref":"#/components/schemas/CustomerUpdateDto"},{"type":"object","properties":{"contactEmail":{"type":"string","description":"Contact email address. Cannot be unset once a value is present."}}}]},"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"]}}}}
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://developer.emporix.io/api-references-1/readme/api-reference-13/models.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
