# Customers ## Activate customer - [POST /ActivateCustomer](https://docs.norce.io/api-reference/services/customerservice/openapi/customers/activatecustomer.md): Activates an inactive Customer. If the activation is made after X days, where X is the value set for ClientSetting CullCustomerDayCount, the Customer data will be lost. ## Create a customer (v3) - [POST /CreateCustomer3](https://docs.norce.io/api-reference/services/customerservice/openapi/customers/createcustomer3.md): Creates a Customer in Storm. Validation is done before trying to create the Customer and the listed Exceptions might be raised if any important information is missing. Customers can be created with or without an Account. Just supply Customer.Account if an Account should be created as well. The same goes for Companies, but here existing Companies are ok. ## Get a customer - [GET /GetCustomer](https://docs.norce.io/api-reference/services/customerservice/openapi/customers/getcustomer.md): Gets a Customer by Id. Returns null if the Customer doesn't exist. ## Get a customer by account id - [GET /GetCustomerByAccountId](https://docs.norce.io/api-reference/services/customerservice/openapi/customers/getcustomerbyaccountid.md): Gets a Customer by Account internal id. Returns null if the Customer doesn't exist. ## Get a customer by code - [GET /GetCustomerByCode](https://docs.norce.io/api-reference/services/customerservice/openapi/customers/getcustomerbycode.md): Gets a Customer by external code. Returns null if the customer doesn't exist. ## Get a customer by e-mail - [GET /GetCustomerByEmail](https://docs.norce.io/api-reference/services/customerservice/openapi/customers/getcustomerbyemail.md): Gets a Customer by Email. Returns null if the Customer doesn't exist. ## Get a customer by key - [GET /GetCustomerByKey](https://docs.norce.io/api-reference/services/customerservice/openapi/customers/getcustomerbykey.md): Gets a Customer by Key. Returns null if the Customer doesn't exist. ## Get a customer by login name - [GET /GetCustomerByLoginName](https://docs.norce.io/api-reference/services/customerservice/openapi/customers/getcustomerbyloginname.md): Gets a Customer by Account.LoginName. Returns null if the Customer doesn't exist. ## Inactivate customer - [POST /InactivateCustomer](https://docs.norce.io/api-reference/services/customerservice/openapi/customers/inactivatecustomer.md): Inactivates a Customer. The user account associated with this customer will no longer be able to login. Inactivated Customers can be activated again if activated before X days, where X is the value set for ClientSetting CullCustomerDayCount. ## List customers by company (v3) - [GET /ListCustomerByCompany3](https://docs.norce.io/api-reference/services/customerservice/openapi/customers/listcustomerbycompany3.md): Lists Customers by company and an optional account role. If accountRoleId is passed in only Customers with Accounts having that Role.Id will be returned. ## List customers by info type (v2) - [GET /ListCustomerByInfoType2](https://docs.norce.io/api-reference/services/customerservice/openapi/customers/listcustomerbyinfotype2.md): Returns a list of customers by info type value. Returns an empty list if the Customer does not exist. ## List customers by social security number (v2) - [GET /ListCustomerBySSN2](https://docs.norce.io/api-reference/services/customerservice/openapi/customers/listcustomerbyssn2.md): Lists Customers by social security number. Companies are not returned. ## Register a customer (v3) - [POST /RegisterCustomer3](https://docs.norce.io/api-reference/services/customerservice/openapi/customers/registercustomer3.md): RegisterCustomer3 creates a Customer with an Account in Storm just like CreateCustomer. If the Customer already exists it gets updated. Customer is looked up by email. Validation is done before trying to update the Customer and the below Exceptions might be raised if any important information is missing. Customers can be updated with or without an Account. Just supply Customer.Account if an Account should be updated or created as well. The same goes for Companies. Any existing company will be updated as well. Just supply data about a Customer that needs to be updated. Any missing parts such as Addresses, Flags, Companies or Info fields that are not passed in will not be removed but just not updated. ## Search for customers (v2) - [GET /SearchCustomer2](https://docs.norce.io/api-reference/services/customerservice/openapi/customers/searchcustomer2.md) ## Set default company for customer - [POST /SetDefaultCompany](https://docs.norce.io/api-reference/services/customerservice/openapi/customers/setdefaultcompany.md): Updates the default company for this customer. If no Company is set as default, the first Company will be used as default where needed. ## Update a customer (v3) - [POST /UpdateCustomer3](https://docs.norce.io/api-reference/services/customerservice/openapi/customers/updatecustomer3.md): UpdateCustomer3 updates a Customer in Storm. Validation is done before trying to update the Customer and the below Exceptions might be raised if any important information is missing. Customers can be updated with or without an Account. Just supply Customer.Account if an Account should be updated or created as well. The same goes for Companies. Any existing company will be updated as well. Just supply data about a Customer that needs to be updated. Any missing parts such as Addresses, Flags, Companies or Info fields that are not passed in will not be removed but just not updated. PriceLists are not affected here at all.