{
  "openapi": "3.0.1",
  "info": {
    "title": "Norce Commerce Customer v1.1 service",
    "description": "The Customers namespace has Entities and Operations concerned with Customer and Company management.",
    "version": "1.1"
  },
  "servers": [
    {
      "url": "https://{slug}.api-se.playground.norce.tech/commerce",
      "description": "Playground",
      "variables": {
        "slug": {
          "default": "customer-slug",
          "description": "Replace with your slug."
        }
      }
    },
    {
      "url": "https://{slug}.api-se.stage.norce.tech/commerce",
      "description": "Stage",
      "variables": {
        "slug": {
          "default": "customer-slug",
          "description": "Replace with your slug."
        }
      }
    },
    {
      "url": "https://{slug}.api-se.norce.tech/commerce",
      "description": "Production",
      "variables": {
        "slug": {
          "default": "customer-slug",
          "description": "Replace with your slug."
        }
      }
    }
  ],
  "security": [
    {
      "Bearer": [],
      "ApplicationId": []
    }
  ],
  "tags": [
    {
      "name": "Accounts",
      "description": "Contains endpoints for managing Accounts and handling authentication using the Account functionality in Norce. [More on Account authentication](/developer-portal/app-development/working-with-customers-and-the-login-process)"
    },
    {
      "name": "Address",
      "description": "Contains endpoints for managing addresses on Customer and Company objects."
    },
    {
      "name": "Companies",
      "description": "Contains endpoints for managing Company data and related information."
    },
    {
      "name": "Customers",
      "description": "Contains endpoints for managing Customer data and related information."
    },
    {
      "name": "Flags",
      "description": "Contains endpoints for viewing Customer and Company flags."
    },
    {
      "name": "InfoTypes",
      "description": "Contains endpoints for viewing metadata about Customer and Company extended fields."
    },
    {
      "name": "PriceLists",
      "description": "Contains endpoints for managing company connected price lists."
    }
  ],
  "paths": {
    "/customer/1.1/ListAccountRoles": {
      "get": {
        "tags": [
          "Accounts"
        ],
        "summary": "List account roles",
        "description": "Lists available account roles.",
        "parameters": [
          {
            "name": "cultureCode",
            "in": "query",
            "description": "(Optional) Specifies in which language to display culture specific information. If none is supplied, value is resolved from Application.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/IdValue"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/customer/1.1/LoginPost": {
      "post": {
        "tags": [
          "Accounts"
        ],
        "summary": "Login a user",
        "description": "Login tries to login a user. In order to enable Customers to login they need to be created with an Account.",
        "requestBody": {
          "description": "Must include LoginName and Password. CultureCode and IncludeCompanies are optional.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Login"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Customer"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorMessage_v1_1"
                }
              }
            }
          }
        }
      }
    },
    "/customer/1.1/LoginAgreementAccount": {
      "get": {
        "tags": [
          "Accounts"
        ],
        "summary": "Login an agreement account",
        "description": "LoginAgreementAccount tries to login a user on an agreement. Users trying to login need to know the agreement code in order to be logged in. Returns null if the attempt to login fails.",
        "parameters": [
          {
            "name": "password",
            "in": "query",
            "description": "The code of the agreement.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "cultureCode",
            "in": "query",
            "description": "(Optional) Specifies in which language to display culture specific information. If none is supplied, value is resolved from Application.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AgreementAccount"
                }
              }
            }
          }
        }
      }
    },
    "/customer/1.1/GetAgreementAccount": {
      "get": {
        "tags": [
          "Accounts"
        ],
        "summary": "Get agreement account",
        "description": "Gets an AgreementAccount by Id. Returns null if the AgreementAccount doesn't exist.",
        "parameters": [
          {
            "name": "id",
            "in": "query",
            "description": "The internal id of the priceList connected to the AgreementAccount.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "cultureCode",
            "in": "query",
            "description": "(Optional) Specifies in which language to display culture specific information. If none is supplied, value is resolved from Application.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AgreementAccount"
                }
              }
            }
          }
        }
      }
    },
    "/customer/1.1/SendPasswordReminder": {
      "post": {
        "tags": [
          "Accounts"
        ],
        "summary": "Send a forgotten password e-mail",
        "description": "A forgotten password email will be sent to the customer's email address. This has to be configured in Norce Application - Mail or no mail will be sent.",
        "parameters": [
          {
            "name": "loginName",
            "in": "query",
            "description": "User login name. The Customer's email will be used for the email.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "updatedBy",
            "in": "query",
            "description": "(Optional) Account internal id of current user. If none is supplied, the default will be used.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "cultureCode",
            "in": "query",
            "description": "(Optional) Specifies in which language to display culture specific information. If none is supplied, value is resolved from Application.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorMessage_v1_1"
                }
              }
            }
          }
        }
      }
    },
    "/customer/1.1/UpdateAccountStatus": {
      "post": {
        "tags": [
          "Accounts"
        ],
        "summary": "Update a customer's account status",
        "description": "Updates the account status for a customer. Accounts can be activated/deactivated.",
        "parameters": [
          {
            "name": "customerId",
            "in": "query",
            "description": "Customer internal id of the customer who's account status should be changed.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "isActive",
            "in": "query",
            "description": "True if the account should be activated, false otherwise.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "updatedBy",
            "in": "query",
            "description": "The user or system account id that will show as updated by. If none is supplied, Norce Commerce user will be used.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "cultureCode",
            "in": "query",
            "description": "(Optional) Specifies in which language to display culture specific information. If none is supplied, value is resolved from Application.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "includeCompanies",
            "in": "query",
            "description": "(Optional) Include full company data, if any, with the customer. Otherwise only primary company, if any, is included. Default is true.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Customer"
                }
              }
            }
          }
        }
      }
    },
    "/customer/1.1/InsertCustomerDeliveryAddress": {
      "post": {
        "tags": [
          "Address"
        ],
        "summary": "Insert delivery address for customer",
        "description": "Inserts a new delivery address for the specified Customer.",
        "parameters": [
          {
            "name": "customerId",
            "in": "query",
            "description": "The internal id of the Customer to insert the Address for.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "updatedBy",
            "in": "query",
            "description": "Account internal id of current user.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "cultureCode",
            "in": "query",
            "description": "(Optional) Specifies in which language to display culture specific information. If none is supplied, value is resolved from Application.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "includeCompanies",
            "in": "query",
            "description": "(Optional) Include full company data, if any, with the customer. Otherwise only primary company, if any, is included. Default is true.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "The Address to insert. The Address internal id should not have an id specified since it will be generated by Norce.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Address"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Customer"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorMessage_v1_1"
                }
              }
            }
          }
        }
      }
    },
    "/customer/1.1/UpdateCustomerDeliveryAddress": {
      "post": {
        "tags": [
          "Address"
        ],
        "summary": "Update delivery address for customer",
        "description": "Updates a delivery address for the specified Customer.",
        "parameters": [
          {
            "name": "customerId",
            "in": "query",
            "description": "The internal id of the Customer to update the Address for.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "updatedBy",
            "in": "query",
            "description": "Account internal id of current user.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "cultureCode",
            "in": "query",
            "description": "(Optional) Specifies in which language to display culture specific information. If none is supplied, value is resolved from Application.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "includeCompanies",
            "in": "query",
            "description": "(Optional) Include full company data, if any, with the customer. Otherwise only primary company, if any, is included. Default is true.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "The Address to update. The address must have a valid internal id specified.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Address"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Customer"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorMessage_v1_1"
                }
              }
            }
          }
        }
      }
    },
    "/customer/1.1/DeleteCustomerDeliveryAddress": {
      "post": {
        "tags": [
          "Address"
        ],
        "summary": "Delete delivery address for customer",
        "description": "Deletes a delivery address for the specified Customer.",
        "parameters": [
          {
            "name": "addressId",
            "in": "query",
            "description": "The internal id of the Address to delete.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "customerId",
            "in": "query",
            "description": "The internal id of the Customer to delete the Address for.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "cultureCode",
            "in": "query",
            "description": "(Optional) Specifies in which language to display culture specific information. If none is supplied, value is resolved from Application.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "includeCompanies",
            "in": "query",
            "description": "(Optional) Include full company data, if any, with the customer. Otherwise only primary company, if any, is included. Default is true.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Customer"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorMessage_v1_1"
                }
              }
            }
          }
        }
      }
    },
    "/customer/1.1/InsertCompanyDeliveryAddress": {
      "post": {
        "tags": [
          "Address"
        ],
        "summary": "Insert delivery address for company",
        "description": "Inserts a new delivery address for the specified Company.",
        "parameters": [
          {
            "name": "companyId",
            "in": "query",
            "description": "The internal id of the Company to insert the Address for.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "customerId",
            "in": "query",
            "description": "The internal id of a Customer belonging to the Company.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "updatedBy",
            "in": "query",
            "description": "Account internal id of current user.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "cultureCode",
            "in": "query",
            "description": "(Optional) Specifies in which language to display culture specific information. If none is supplied, value is resolved from Application.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "includeCompanies",
            "in": "query",
            "description": "(Optional) Include full company data, if any, with the customer. Otherwise only primary company, if any, is included. Default is true.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "The Address to insert. The Address internal id should not have an id specified since it will be generated by Norce.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Address"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Customer"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorMessage_v1_1"
                }
              }
            }
          }
        }
      }
    },
    "/customer/1.1/UpdateCompanyDeliveryAddress": {
      "post": {
        "tags": [
          "Address"
        ],
        "summary": "Update delivery address for company",
        "description": "Updates a delivery address for the specified Company.",
        "parameters": [
          {
            "name": "customerId",
            "in": "query",
            "description": "The internal id of a Customer belonging to the Company.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "updatedBy",
            "in": "query",
            "description": "Account internal id of current user.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "cultureCode",
            "in": "query",
            "description": "(Optional) Specifies in which language to display culture specific information. If none is supplied, value is resolved from Application.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "includeCompanies",
            "in": "query",
            "description": "(Optional) Include full company data, if any, with the customer. Otherwise only primary company, if any, is included. Default is true.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "The Address to update. The address internal id must have a valid id specified.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Address"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Customer"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorMessage_v1_1"
                }
              }
            }
          }
        }
      }
    },
    "/customer/1.1/DeleteCompanyDeliveryAddress": {
      "post": {
        "tags": [
          "Address"
        ],
        "summary": "Delete delivery address for company",
        "description": "Deletes a delivery address for the specified Company.",
        "parameters": [
          {
            "name": "addressId",
            "in": "query",
            "description": "The internal id of the Address to delete.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "customerId",
            "in": "query",
            "description": "The internal id of a Customer belonging to the Company.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "cultureCode",
            "in": "query",
            "description": "(Optional) Specifies in which language to display culture specific information. If none is supplied, value is resolved from Application.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "includeCompanies",
            "in": "query",
            "description": "(Optional) Include full company data, if any, with the customer. Otherwise only primary company, if any, is included. Default is true.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Customer"
                }
              }
            }
          }
        }
      }
    },
    "/customer/1.1/GetCompany": {
      "get": {
        "tags": [
          "Companies"
        ],
        "summary": "Get a company",
        "description": "Gets a Company by internal id. Returns null if the Company does not exist.",
        "parameters": [
          {
            "name": "id",
            "in": "query",
            "description": "The internal Id of the Company to fetch.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "cultureCode",
            "in": "query",
            "description": "(Optional) Specifies in which language to display culture specific information. If none is supplied, value is resolved from Application.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Company"
                }
              }
            }
          }
        }
      }
    },
    "/customer/1.1/ListCompanyDiscounts": {
      "get": {
        "tags": [
          "Companies"
        ],
        "summary": "List company discounts",
        "description": "Lists Company discounts.",
        "parameters": [
          {
            "name": "companyId",
            "in": "query",
            "description": "The company internal id for which to get discounts.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/CompanyDiscount"
                  },
                  "description": "A list of discounts  for a Company."
                }
              }
            }
          }
        }
      }
    },
    "/customer/1.1/UpsertCompanyDiscounts": {
      "post": {
        "tags": [
          "Companies"
        ],
        "summary": "Insert or update company discounts",
        "description": "Inserts or updates a list of CompanyDiscounts in Norce. Any non-existing discount will be inserted. Existing discounts will be updated. Note that it is only the discount field that can be updated. In order to update the value field, the entity must first be deleted and then re-inserted.",
        "parameters": [
          {
            "name": "companyId",
            "in": "query",
            "description": "The internal company id for the discounts.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "updatedBy",
            "in": "query",
            "description": "(Optional) The account internal id of the user performing the upsert.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "A list of discounts to update or insert. See CompanyDiscount entity for details.",
          "content": {
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/CompanyDiscount"
                },
                "description": "A list of discounts  for a Company."
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/customer/1.1/DeleteCompanyDiscount": {
      "post": {
        "tags": [
          "Companies"
        ],
        "summary": "Delete company discount",
        "description": "Deletes the discount.",
        "parameters": [
          {
            "name": "companyId",
            "in": "query",
            "description": "The company internal id for the discount.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "description": "The discount to delete. See CompanyDiscount entity for details.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CompanyDiscount"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/customer/1.1/ListCompaniesByParent": {
      "get": {
        "tags": [
          "Companies"
        ],
        "summary": "List companies by parent",
        "description": "Lists Companies by parent company.",
        "parameters": [
          {
            "name": "parentId",
            "in": "query",
            "description": "The internal Id of the parent Company to fetch children for.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "cultureCode",
            "in": "query",
            "description": "(Optional) Specifies in which language to display culture specific information. If none is supplied, value is resolved from Application.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Company"
                  },
                  "description": "A list of Companies. It is used on Customers."
                }
              }
            }
          }
        }
      }
    },
    "/customer/1.1/ListCompaniesByOrgNo": {
      "get": {
        "tags": [
          "Companies"
        ],
        "summary": "List companies by organization number",
        "description": "Lists Companies by organization number. Note that OrgNo need not be unique within storm, only the combination of OrgNo and Name must be unique.",
        "parameters": [
          {
            "name": "orgNo",
            "in": "query",
            "description": "The organization number of the Companies to fetch. All non-numerical characters will be removed in the string before the search.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "cultureCode",
            "in": "query",
            "description": "(Optional) Specifies in which language to display culture specific information. If none is supplied, value is resolved from Application.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Company"
                  },
                  "description": "A list of Companies. It is used on Customers."
                }
              }
            }
          }
        }
      }
    },
    "/customer/1.1/GetCompanyByOrgNo": {
      "get": {
        "tags": [
          "Companies"
        ],
        "summary": "Get company by organization number",
        "description": "Gets a Company by org no. Since Companies are not unique on OrgNo only just the last Company with the specified OrgNo will be returned. Returns null if the Company does not exist.",
        "parameters": [
          {
            "name": "orgNo",
            "in": "query",
            "description": "The organization number of the Company to fetch. All non-numerical characters will be removed in the string before the search.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "cultureCode",
            "in": "query",
            "description": "(Optional) Specifies in which language to display culture specific information. If none is supplied, value is resolved from Application.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Company"
                }
              }
            }
          }
        }
      }
    },
    "/customer/1.1/GetCompanyByCode": {
      "get": {
        "tags": [
          "Companies"
        ],
        "summary": "Get company by code",
        "description": "Gets a Company by external code. Returns null if the Company does not exist.",
        "parameters": [
          {
            "name": "code",
            "in": "query",
            "description": "The external code. Usually the id in the erp system.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "cultureCode",
            "in": "query",
            "description": "(Optional) Specifies in which language to display culture specific information. If none is supplied, value is resolved from Application.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Company"
                }
              }
            }
          }
        }
      }
    },
    "/customer/1.1/ListCompanyByInfoType": {
      "get": {
        "tags": [
          "Companies"
        ],
        "summary": "List company by info type",
        "description": "Returns a list of Companies by info type value. Returns an empty list if the Companies does not exist.",
        "parameters": [
          {
            "name": "code",
            "in": "query",
            "description": "The info type code. Note that the info type to get must have its Code property set or null will be returned.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "value",
            "in": "query",
            "description": "The info type value.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "cultureCode",
            "in": "query",
            "description": "(Optional) Specifies in which language to display culture specific information. If none is supplied, value is resolved from Application.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Company"
                  },
                  "description": "A list of Companies. It is used on Customers."
                }
              }
            }
          }
        }
      }
    },
    "/customer/1.1/GetCompanyByOrgNoAndStoreId": {
      "get": {
        "tags": [
          "Companies"
        ],
        "summary": "Get company by organization number and store id",
        "description": "Gets a Company by org no and store id. Used when Company is connected to a specific store. Since Companies are not unique on OrgNo only just the last Company with the specified OrgNo will be returned. Returns null if the Company does not exist.",
        "parameters": [
          {
            "name": "orgNo",
            "in": "query",
            "description": "The organization number of the Company to fetch. All non-numerical characters will be removed in the string before the search.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "storeId",
            "in": "query",
            "description": "The internal Id of the Store.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "cultureCode",
            "in": "query",
            "description": "(Optional) Specifies in which language to display culture specific information. If none is supplied, value is resolved from Application.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Company"
                }
              }
            }
          }
        }
      }
    },
    "/customer/1.1/InactivateCompany": {
      "post": {
        "tags": [
          "Companies"
        ],
        "summary": "Inactivate company",
        "description": "Inactivates a Company. Inactivated Companies cannot be activated again.",
        "parameters": [
          {
            "name": "companyId",
            "in": "query",
            "description": "The internal Id of the Company to inactivate.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "inactivatedBy",
            "in": "query",
            "description": "Account internal id of current user. Do not use default value.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/customer/1.1/UpdateCompany": {
      "post": {
        "tags": [
          "Companies"
        ],
        "summary": "Update a company",
        "description": "UpdateCompany updates or creates a Company in Norce for the specified customer. Validation is done before trying to update or create the Company and the below Exceptions might be raised if any important information is missing. Any existing Company will be updated as well. Supply all root data (Code, Name, OrgNo, Phone, ReferUrl, Email, VatNo) about the Company - empty or missing input fields will be emptied. Note though that any missing lists or objects (Addresses, Flags, Info, DeliveryMethodIds, PaymentMethodIds) fields that are not passed in will not be removed but just not updated. PriceLists are not affected here at all.",
        "parameters": [
          {
            "name": "customerId",
            "in": "query",
            "description": "The internal id of the Customer.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "updatedBy",
            "in": "query",
            "description": "The user or system account id that will show as updated by. If none is supplied, Norce Commerce user will be used.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "cultureCode",
            "in": "query",
            "description": "(Optional) Specifies in which language to display culture specific information. If none is supplied, value is resolved from Application.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "includeCompanies",
            "in": "query",
            "description": "(Optional) Include full company data, if any, with the customer. Otherwise only primary company, if any, is included. Default is true.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "The Company to update. If a supplied Company does not have an Id specified it is considered new and will be created as well. Otherwise it will be updated.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Company"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Customer"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorMessage_v1_1"
                }
              }
            }
          }
        }
      }
    },
    "/customer/1.1/DeleteCompanyCustomer": {
      "post": {
        "tags": [
          "Companies"
        ],
        "summary": "Delete customer from company",
        "description": "Deletes a Customer from the Company. It does not delete the Customer from Norce but just removes the relation between Company and Customer. Returns 400 with CustomerMissing if the Customer does not exist, is inactive or is not related to the Company.",
        "parameters": [
          {
            "name": "companyId",
            "in": "query",
            "description": "The internal id of the Company for which the Customer is removed.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "customerId",
            "in": "query",
            "description": "The internal id of the Customer  to remove from the Company.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "cultureCode",
            "in": "query",
            "description": "(Optional) Specifies in which language to display culture specific information. If none is supplied, value is resolved from Application.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorMessage_v1_1"
                }
              }
            }
          }
        }
      }
    },
    "/customer/1.1/InsertCompanyCustomer2": {
      "post": {
        "tags": [
          "Companies"
        ],
        "summary": "Insert customer in company (v2)",
        "description": "Inserts a customer into a company.",
        "parameters": [
          {
            "name": "companyId",
            "in": "query",
            "description": "The internal id of the Company to insert the Customer for.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "password",
            "in": "query",
            "description": "(Optional) An application generated password used if an Account is created. If none is supplied the password will be generated. Generated passwords are 8 random alpha numeric characters mixed lower and upper case. The password is not stored in clear text in Norce. Only a hash value of the password gets stored.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "updatedBy",
            "in": "query",
            "description": "(Optional) The user or system account id that will show as updated by. If none is supplied, Norce Commerce user will be used.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "cultureCode",
            "in": "query",
            "description": "(Optional) Specifies in which language to display culture specific information. If none is supplied, value is resolved from Application.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "includeCompanies",
            "in": "query",
            "description": "(Optional) Include full company data, if any, with the customer. Otherwise only primary company, if any, is included. Default is true.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "The Customer to add to the Company. If the Customer already exists, it will get an Account, if missing, and the Company will be added to the list of Companies for the Customer. Then the Customer will be updated. If the Customer does not exist, it will be created. See UpdateCustomer and CreateCustomer for details. Note that Customer.Companies will be ignored so there's no meaning in passing in Companies there.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Customer"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Customer"
                  },
                  "description": "A list of Customers. It is used on Companies."
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorMessage_v1_1"
                }
              }
            }
          }
        }
      }
    },
    "/customer/1.1/DeleteCompanyDeliveryMethod": {
      "post": {
        "tags": [
          "Companies"
        ],
        "summary": "Delete delivery method for company",
        "description": "Deletes a DeliveryMethod for the specified Company.",
        "parameters": [
          {
            "name": "methodId",
            "in": "query",
            "description": "The internal id of the DeliveryMethod to delete.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "companyId",
            "in": "query",
            "description": "The internal id of the Company for which the DeliveryMethod gets deleted.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "cultureCode",
            "in": "query",
            "description": "(Optional) Specifies in which language to display culture specific information. If none is supplied, value is resolved from Application.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Company"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorMessage_v1_1"
                }
              }
            }
          }
        }
      }
    },
    "/customer/1.1/InsertCompanyDeliveryMethod": {
      "post": {
        "tags": [
          "Companies"
        ],
        "summary": "Insert delivery method for company",
        "description": "Inserts a DeliveryMethod for the specified Company.",
        "parameters": [
          {
            "name": "methodId",
            "in": "query",
            "description": "The internal id of the DeliveryMethod to insert.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "companyId",
            "in": "query",
            "description": "The internal id of the Company for which the DeliveryMethod gets inserted.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "createdBy",
            "in": "query",
            "description": "(Optional) Account internal id of current user.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "cultureCode",
            "in": "query",
            "description": "(Optional) Specifies in which language to display culture specific information. If none is supplied, value is resolved from Application.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Company"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorMessage_v1_1"
                }
              }
            }
          }
        }
      }
    },
    "/customer/1.1/DeleteCompanyPaymentMethod": {
      "post": {
        "tags": [
          "Companies"
        ],
        "summary": "Delete payment method for company",
        "description": "Deletes a PaymentMethod for the specified Company.",
        "parameters": [
          {
            "name": "methodId",
            "in": "query",
            "description": "The internal id of the PaymentMethod to delete.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "companyId",
            "in": "query",
            "description": "The internal id of the Company for which the PaymentMethod gets deleted.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "cultureCode",
            "in": "query",
            "description": "(Optional) Specifies in which language to display culture specific information. If none is supplied, value is resolved from Application.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Company"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorMessage_v1_1"
                }
              }
            }
          }
        }
      }
    },
    "/customer/1.1/InsertCompanyPaymentMethod": {
      "post": {
        "tags": [
          "Companies"
        ],
        "summary": "Insert payment method for company",
        "description": "Inserts a PaymentMethod for the specified Company. Legacy method. Use InserCompanyPaymentMethod2 when possible.",
        "parameters": [
          {
            "name": "methodId",
            "in": "query",
            "description": "The internal id of the PaymentMethod to insert.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "companyId",
            "in": "query",
            "description": "The internal id of the Company for which the PaymentMethod gets inserted.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "createdBy",
            "in": "query",
            "description": "(Optional) Account internal id of current user.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "cultureCode",
            "in": "query",
            "description": "(Optional) Specifies in which language to display culture specific information. If none is supplied, value is resolved from Application.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Company"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorMessage_v1_1"
                }
              }
            }
          }
        }
      }
    },
    "/customer/1.1/InsertCompanyPaymentMethod2": {
      "post": {
        "tags": [
          "Companies"
        ],
        "summary": "Insert payment method for company (v2)",
        "description": "Inserts a PaymentMethod for the specified Company. Version 2 of this method which also takes a invoiceCaptureSettingsCode",
        "parameters": [
          {
            "name": "methodId",
            "in": "query",
            "description": "The internal id of the PaymentMethod to insert.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "companyId",
            "in": "query",
            "description": "The internal id of the Company for which the PaymentMethod gets inserted.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "createdBy",
            "in": "query",
            "description": "(Optional) Account internal id of current user.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "invoiceCaptureSettingsCode",
            "in": "query",
            "description": "(Optional) Specifies the invoice capture settings code that should be used by the company payment method.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "cultureCode",
            "in": "query",
            "description": "(Optional) Specifies in which language to display culture specific information. If none is supplied, value is resolved from Application.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Company"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorMessage_v1_1"
                }
              }
            }
          }
        }
      }
    },
    "/customer/1.1/GetCompanyPaymentMethod": {
      "get": {
        "tags": [
          "Companies"
        ],
        "summary": "Get payment method for company",
        "description": "Gets a company payment method.",
        "parameters": [
          {
            "name": "paymentMethodId",
            "in": "query",
            "description": "The internal id of the payment method for which to get the company payment method",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "companyId",
            "in": "query",
            "description": "The internal id of the company for which to get the company payment method",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "cultureCode",
            "in": "query",
            "description": "(Optional) Specifies in which language to display culture specific information. If none is supplied, value is resolved from Application.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CompanyPaymentMethod"
                }
              }
            }
          }
        }
      }
    },
    "/customer/1.1/CreateCustomer3": {
      "post": {
        "tags": [
          "Customers"
        ],
        "summary": "Create a customer (v3)",
        "description": "Creates a Customer in Norce. 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.",
        "parameters": [
          {
            "name": "password",
            "in": "query",
            "description": "(Deprecated) Passwords should not be sent in query string. Set new password in Customer.Account.NewPassword instead.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "doSendMail",
            "in": "query",
            "description": "(Optional) Set this to true if Norce should send a registration email. Set it to false otherwise. Default is true.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "createdBy",
            "in": "query",
            "description": "(Optional) Internal account id of current user. If none is supplied the default will be used.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "cultureCode",
            "in": "query",
            "description": "(Optional) Specifies in which language to display culture specific information. If none is supplied, value is resolved from Application.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "The Customer to create. If an Account is specified it will be created as well. Customers can also be created with or without Companies. If a supplied Company does not have an Id specified it is considered new and will be created as well.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Customer"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Customer"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorMessage_v1_1"
                }
              }
            }
          }
        }
      }
    },
    "/customer/1.1/ListCustomerByInfoType2": {
      "get": {
        "tags": [
          "Customers"
        ],
        "summary": "List customers by info type (v2)",
        "description": "Returns a list of customers by info type value. Returns an empty list if the Customer does not exist.",
        "parameters": [
          {
            "name": "code",
            "in": "query",
            "description": "The info type code. Note that the info type to get must have its Code property set or null will be returned.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "value",
            "in": "query",
            "description": "The info type value.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "showInactive",
            "in": "query",
            "description": "(Optional) An option to show inactive customers in the result. Default value is false.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "cultureCode",
            "in": "query",
            "description": "(Optional) Specifies in which language to display culture specific information. If none is supplied, value is resolved from Application.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Customer"
                  },
                  "description": "A list of Customers. It is used on Companies."
                }
              }
            }
          }
        }
      }
    },
    "/customer/1.1/GetCustomerByEmail": {
      "get": {
        "tags": [
          "Customers"
        ],
        "summary": "Get a customer by e-mail",
        "description": "Gets a Customer by Email. Returns null if the Customer doesn't exist.",
        "parameters": [
          {
            "name": "email",
            "in": "query",
            "description": "The Email of the Customer to fetch.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "cultureCode",
            "in": "query",
            "description": "(Optional) Specifies in which language to display culture specific information. If none is supplied, value is resolved from Application.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "includeCompanies",
            "in": "query",
            "description": "(Optional) Include full company data, if any, with the customer. Otherwise only primary company, if any, is included. Default is true.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Customer"
                }
              }
            }
          }
        }
      }
    },
    "/customer/1.1/GetCustomer": {
      "get": {
        "tags": [
          "Customers"
        ],
        "summary": "Get a customer",
        "description": "Gets a Customer by Id. Returns null if the Customer doesn't exist.",
        "parameters": [
          {
            "name": "id",
            "in": "query",
            "description": "The internal Id of the Customer to fetch.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "cultureCode",
            "in": "query",
            "description": "(Optional) Specifies in which language to display culture specific information. If none is supplied, value is resolved from Application.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "includeCompanies",
            "in": "query",
            "description": "(Optional) Include full company data, if any, with the customer. Otherwise only primary company, if any, is included. Default is true.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Customer"
                }
              }
            }
          }
        }
      }
    },
    "/customer/1.1/GetCustomerByKey": {
      "get": {
        "tags": [
          "Customers"
        ],
        "summary": "Get a customer by key",
        "description": "Gets a Customer by Key. Returns null if the Customer doesn't exist.",
        "parameters": [
          {
            "name": "key",
            "in": "query",
            "description": "The Key of the Customer to fetch.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "cultureCode",
            "in": "query",
            "description": "(Optional) Specifies in which language to display culture specific information. If none is supplied, value is resolved from Application.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "includeCompanies",
            "in": "query",
            "description": "(Optional) Include full company data, if any, with the customer. Otherwise only primary company, if any, is included. Default is true.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Customer"
                }
              }
            }
          }
        }
      }
    },
    "/customer/1.1/GetCustomerByCode": {
      "get": {
        "tags": [
          "Customers"
        ],
        "summary": "Get a customer by code",
        "description": "Gets a Customer by external code. Returns null if the customer doesn't exist.",
        "parameters": [
          {
            "name": "code",
            "in": "query",
            "description": "The external code. Usually the id in the erp system.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "cultureCode",
            "in": "query",
            "description": "(Optional) Specifies in which language to display culture specific information. If none is supplied, value is resolved from Application.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "includeCompanies",
            "in": "query",
            "description": "(Optional) Include full company data, if any, with the customer. Otherwise only primary company, if any, is included. Default is true.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Customer"
                }
              }
            }
          }
        }
      }
    },
    "/customer/1.1/GetCustomerByAccountId": {
      "get": {
        "tags": [
          "Customers"
        ],
        "summary": "Get a customer by account id",
        "description": "Gets a Customer by Account internal id. Returns null if the Customer doesn't exist.",
        "parameters": [
          {
            "name": "accountId",
            "in": "query",
            "description": "The account internal Id of the Customer to fetch.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "cultureCode",
            "in": "query",
            "description": "(Optional) Specifies in which language to display culture specific information. If none is supplied, value is resolved from Application.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "includeCompanies",
            "in": "query",
            "description": "(Optional) Include full company data, if any, with the customer. Otherwise only primary company, if any, is included. Default is true.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Customer"
                }
              }
            }
          }
        }
      }
    },
    "/customer/1.1/GetCustomerByLoginName": {
      "get": {
        "tags": [
          "Customers"
        ],
        "summary": "Get a customer by login name",
        "description": "Gets a Customer by Account.LoginName. Returns null if the Customer doesn't exist.",
        "parameters": [
          {
            "name": "loginName",
            "in": "query",
            "description": "The Account.LoginName of the Customer to fetch.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "cultureCode",
            "in": "query",
            "description": "(Optional) Specifies in which language to display culture specific information. If none is supplied, value is resolved from Application.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "includeCompanies",
            "in": "query",
            "description": "(Optional) Include full company data, if any, with the customer. Otherwise only primary company, if any, is included. Default is true.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Customer"
                }
              }
            }
          }
        }
      }
    },
    "/customer/1.1/InactivateCustomer": {
      "post": {
        "tags": [
          "Customers"
        ],
        "summary": "Inactivate customer",
        "description": "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.",
        "parameters": [
          {
            "name": "customerId",
            "in": "query",
            "description": "The internal Id of the Customer to inactivate.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "inactivatedBy",
            "in": "query",
            "description": "Account internal id of current user. Do not use default value.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/customer/1.1/ActivateCustomer": {
      "post": {
        "tags": [
          "Customers"
        ],
        "summary": "Activate customer",
        "description": "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.",
        "parameters": [
          {
            "name": "customerId",
            "in": "query",
            "description": "The internal Id of the Customer to activate.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "activatedBy",
            "in": "query",
            "description": "Account internal id of current user. Do not use default value.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/customer/1.1/ListCustomerByCompany3": {
      "get": {
        "tags": [
          "Customers"
        ],
        "summary": "List customers by company (v3)",
        "description": "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.",
        "parameters": [
          {
            "name": "id",
            "in": "query",
            "description": "The internal Id of the Company to fetch Customers for.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "accountRoleId",
            "in": "query",
            "description": "(Optional) An optional account role internal id of the customer account to search for. Use ListAccountRoles for valid ids.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "showInactive",
            "in": "query",
            "description": "(Optional) An option to show inactive customers in the result. Default value is false.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "cultureCode",
            "in": "query",
            "description": "(Optional) Specifies in which language to display culture specific information. If none is supplied, value is resolved from Application.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Customer"
                  },
                  "description": "A list of Customers. It is used on Companies."
                }
              }
            }
          }
        }
      }
    },
    "/customer/1.1/ListCustomerBySSN2": {
      "get": {
        "tags": [
          "Customers"
        ],
        "summary": "List customers by social security number (v2)",
        "description": "Lists Customers by social security number. Companies are not returned.",
        "parameters": [
          {
            "name": "ssn",
            "in": "query",
            "description": "The social security number to search for. All non-numerical characters will be removed in the string before the search.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "showInactive",
            "in": "query",
            "description": "(Optional) An option to show inactive customers in the result. Default value is false.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "cultureCode",
            "in": "query",
            "description": "(Optional) Specifies in which language to display culture specific information. If none is supplied, value is resolved from Application.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Customer"
                  },
                  "description": "A list of Customers. It is used on Companies."
                }
              }
            }
          }
        }
      }
    },
    "/customer/1.1/SearchCustomer2": {
      "get": {
        "tags": [
          "Customers"
        ],
        "parameters": [
          {
            "name": "searchString",
            "in": "query",
            "description": "The actual search string. Must be at least 2 characters.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "companyId",
            "in": "query",
            "description": "(Optional) If supplied, only customers for that company are returned.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "sort",
            "in": "query",
            "description": "(Optional) Sort order as formatted [Property] [Asc/Desc] with comma as separator. Sample: LastName, FirstName, which is the default.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "size",
            "in": "query",
            "description": "(Optional) Number of items to display. Default is 50.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "expand",
            "in": "query",
            "description": "(Optional) An expand option that specifies what expansions should be made on the Customer entity. Valid values are: None, Account, Flags, Info, Addresses and PriceLists. These can be comma separated. Use Full for all but PriceLists. Default is Full. None will return just the Customer without expansions.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "showInactive",
            "in": "query",
            "description": "(Optional) An option to show inactive customers in the result. Default value is false.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "cultureCode",
            "in": "query",
            "description": "(Optional) Specifies in which language to display culture specific information. If none is supplied, value is resolved from Application.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Customer"
                  },
                  "description": "A list of Customers. It is used on Companies."
                }
              }
            }
          }
        }
      }
    },
    "/customer/1.1/UpdateCustomer3": {
      "post": {
        "tags": [
          "Customers"
        ],
        "summary": "Update a customer (v3)",
        "description": "UpdateCustomer3 updates a Customer in Norce. 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.",
        "parameters": [
          {
            "name": "password",
            "in": "query",
            "description": "(Optional) An application generated password used if an Account is created. If none is supplied the password will be generated. Generated passwords are 8 random alpha numeric characters mixed lower and upper case. The password is not stored in clear text in Norce. Only a hash value of the password gets stored.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "doSendMail",
            "in": "query",
            "description": "(Optional) Set this to true if Norce should send a registration email. Set it to false otherwise. Default is true.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "updatedBy",
            "in": "query",
            "description": "The user or system account id that will show as updated by. If none is supplied, Norce Commerce user will be used.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "cultureCode",
            "in": "query",
            "description": "(Optional) Specifies in which language to display culture specific information. If none is supplied, value is resolved from Application.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "includeCompanies",
            "in": "query",
            "description": "(Optional) Include full company data, if any, with the customer. Otherwise only primary company, if any, is included. Default is true.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "The Customer to update. If an Account is specified it will be created as well. Customers can also be updated with or without Companies. If a supplied Company does not have an Id specified it is considered new and will be created as well. Otherwise it will be updated.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Customer"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Customer"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorMessage_v1_1"
                }
              }
            }
          }
        }
      }
    },
    "/customer/1.1/RegisterCustomer3": {
      "post": {
        "tags": [
          "Customers"
        ],
        "summary": "Register a customer (v3)",
        "description": "RegisterCustomer3 creates a Customer with an Account in Norce 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.",
        "parameters": [
          {
            "name": "password",
            "in": "query",
            "description": "(Optional) An application generated password used if an Account is created. If none is supplied the password will be generated. Generated passwords are 8 random alpha numeric characters mixed lower and upper case. To update a password, also supply the account object with its root data set (Id, Key, LoginName, Name, IsActive). The password is not stored in clear text in Norce. Only a hash value of the password gets stored.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "updatedBy",
            "in": "query",
            "description": "The user or system account id that will show as updated by. If none is supplied, Norce Commerce user will be used.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "cultureCode",
            "in": "query",
            "description": "(Optional) Specifies in which language to display culture specific information. If none is supplied, value is resolved from Application.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "doSendMail",
            "in": "query",
            "description": "(Optional) Set this to true if Norce should send a registration email. Set it to false otherwise. Default is true.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "The Customer to register. If an Account is specified it will be created as well. Customers can also be registered with or without Companies. If a supplied Company does not have an Id specified it is considered new and will be created as well. Otherwise it will be updated.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Customer"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Customer"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorMessage_v1_1"
                }
              }
            }
          }
        }
      }
    },
    "/customer/1.1/SetDefaultCompany": {
      "post": {
        "tags": [
          "Customers"
        ],
        "summary": "Set default company for customer",
        "description": "Updates the default company for this customer. If no Company is set as default, the first Company will be used as default where needed.",
        "parameters": [
          {
            "name": "companyId",
            "in": "query",
            "description": "The internal id of the Company to set as default.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "updatedBy",
            "in": "query",
            "description": "The user or system account id that will show as updated by. If none is supplied, Norce Commerce user will be used.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "cultureCode",
            "in": "query",
            "description": "(Optional) Specifies in which language to display culture specific information. If none is supplied, value is resolved from Application.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "includeCompanies",
            "in": "query",
            "description": "(Optional) Include full company data, if any, with the customer. Otherwise only primary company, if any, is included. Default is true.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "The Customer for which the default Company is set.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Customer"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Customer"
                }
              }
            }
          }
        }
      }
    },
    "/customer/1.1/ListCustomerFlags": {
      "get": {
        "tags": [
          "Flags"
        ],
        "summary": "List customer flags",
        "description": "Lists the available customer flags.",
        "parameters": [
          {
            "name": "cultureCode",
            "in": "query",
            "description": "(Optional) Specifies in which language to display culture specific information. If none is supplied, value is resolved from Application.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/CustomerFlag"
                  },
                  "description": "A list of Flags. It is used on Customers and Companies."
                }
              }
            }
          }
        }
      }
    },
    "/customer/1.1/ListCompanyFlags": {
      "get": {
        "tags": [
          "Flags"
        ],
        "summary": "List company flags",
        "description": "Lists the available company flags.",
        "parameters": [
          {
            "name": "cultureCode",
            "in": "query",
            "description": "(Optional) Specifies in which language to display culture specific information. If none is supplied, value is resolved from Application.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/CustomerFlag"
                  },
                  "description": "A list of Flags. It is used on Customers and Companies."
                }
              }
            }
          }
        }
      }
    },
    "/customer/1.1/ListCustomerInfoTypes": {
      "get": {
        "tags": [
          "InfoTypes"
        ],
        "summary": "List customer info types",
        "description": "Lists the info type ids used in Customer.Info.",
        "parameters": [
          {
            "name": "cultureCode",
            "in": "query",
            "description": "(Optional) Specifies in which language to display culture specific information. If none is supplied, value is resolved from Application.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/IdValue"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/customer/1.1/ListCompanyInfoTypes": {
      "get": {
        "tags": [
          "InfoTypes"
        ],
        "summary": "List company info types",
        "description": "Lists the info type ids used in Company.Info.",
        "parameters": [
          {
            "name": "cultureCode",
            "in": "query",
            "description": "(Optional) Specifies in which language to display culture specific information. If none is supplied, value is resolved from Application.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/IdValue"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/customer/1.1/GetPricelistItem": {
      "get": {
        "tags": [
          "PriceLists"
        ],
        "summary": "Get a pricelist item",
        "description": "Gets a priceList item. Returns null if the PriceListItem does not exist. Prices are in the currency of the PriceList.",
        "parameters": [
          {
            "name": "partNo",
            "in": "query",
            "description": "The PartNo of the PriceListItem to fetch.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "pricelistId",
            "in": "query",
            "description": "The internal Id of the current PriceList for which the PriceListItem is fetched.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CompanyPricelistItem"
                }
              }
            }
          }
        }
      }
    },
    "/customer/1.1/InsertPricelistItem": {
      "post": {
        "tags": [
          "PriceLists"
        ],
        "summary": "Insert a pricelist item",
        "description": "Inserts a new priceList item. If the PriceListItem already exists, an update is made.",
        "parameters": [
          {
            "name": "createdBy",
            "in": "query",
            "description": "(Optional) The user or system account id that will show as updated by. If none is supplied, Norce Commerce user will be used.ll be used.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "The PriceListItem to insert. Prices should be in the currency of the PriceList.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CompanyPricelistItem"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CompanyPricelistItem"
                }
              }
            }
          }
        }
      }
    },
    "/customer/1.1/UpdatePricelistItem": {
      "post": {
        "tags": [
          "PriceLists"
        ],
        "summary": "Update a pricelist item",
        "description": "Updates a priceList item.",
        "parameters": [
          {
            "name": "updatedBy",
            "in": "query",
            "description": "(Optional) The user or system account id that will show as updated by. If none is supplied, Norce Commerce user will be used.ll be used.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "The PriceListItem to update. Prices should be in the currency of the PriceList.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CompanyPricelistItem"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CompanyPricelistItem"
                }
              }
            }
          }
        }
      }
    },
    "/customer/1.1/GetCompanyPricelist": {
      "get": {
        "tags": [
          "PriceLists"
        ],
        "summary": "Get a pricelist for company",
        "description": "Gets a CompanyPriceList for the specified Company. Returns null if the PriceList does not exist.",
        "parameters": [
          {
            "name": "companyId",
            "in": "query",
            "description": "The internal id of the Company for which the PriceList is fetched.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "pricelistId",
            "in": "query",
            "description": "The internal id of the PriceList to fetch.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "cultureCode",
            "in": "query",
            "description": "(Optional) Specifies in which language to display culture specific information. If none is supplied, value is resolved from Application.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CompanyPricelist"
                }
              }
            }
          }
        }
      }
    },
    "/customer/1.1/ListCompanyPricelists": {
      "get": {
        "tags": [
          "PriceLists"
        ],
        "summary": "List all pricelists for a company",
        "description": "Returns a list of PriceLists for the specified Company.",
        "parameters": [
          {
            "name": "companyId",
            "in": "query",
            "description": "The internal id of the Company for which the PriceLists are fetched.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "cultureCode",
            "in": "query",
            "description": "(Optional) Specifies in which language to display culture specific information. If none is supplied, value is resolved from Application.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/CompanyPricelist"
                  },
                  "description": "A list of PriceLists. It is used on Customers and Companies."
                }
              }
            }
          }
        }
      }
    },
    "/customer/1.1/InsertCompanyPricelist2": {
      "post": {
        "tags": [
          "PriceLists"
        ],
        "summary": "Insert pricelist for company (v2)",
        "description": "Inserts a new PriceList for the specified Company. If the PriceList is an existing PriceList it will be connected to the Company. Otherwise it will be created.",
        "parameters": [
          {
            "name": "companyId",
            "in": "query",
            "description": "The internal id of the Company.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "createdBy",
            "in": "query",
            "description": "(Optional) Account internal id of current user.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "cultureCode",
            "in": "query",
            "description": "(Optional) Specifies in which language to display culture specific information. If none is supplied, value is resolved from Application.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "The priceList to insert for the Company. The PriceRule for new PriceLists will be 'Use standard price (pct discount)' (id:7) if none is supplied.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CompanyPricelist"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/CompanyPricelist"
                  },
                  "description": "A list of PriceLists. It is used on Customers and Companies."
                }
              }
            }
          }
        }
      }
    },
    "/customer/1.1/UpdateCompanyPricelist2": {
      "post": {
        "tags": [
          "PriceLists"
        ],
        "summary": "Update pricelist for company (v2)",
        "description": "Updates a PriceList for the specified Company. If the PriceList is not an existingPriceList it will be created. Otherwise it will be updated. Note that only Reseller and Application specific priceLists can be updated. Any attempt to update an other priceList type will be ignored. If no PriceRule is specified, PriceRule 7, use standard price, with no discount will be used. To delete a Company PriceList use DeleteCompanyPricelist.",
        "parameters": [
          {
            "name": "companyId",
            "in": "query",
            "description": "The internal id of the Company.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "updatedBy",
            "in": "query",
            "description": "(Optional) Account internal id of current user.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "cultureCode",
            "in": "query",
            "description": "(Optional) Specifies in which language to display culture specific information. If none is supplied, value is resolved from Application.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "The priceList to update for the Company. The PriceRule for updated PriceLists will be 'Use standard price (pct discount)' (id:7) if none is supplied.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CompanyPricelist"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/CompanyPricelist"
                  },
                  "description": "A list of PriceLists. It is used on Customers and Companies."
                }
              }
            }
          }
        }
      }
    },
    "/customer/1.1/DeleteCompanyPricelist": {
      "post": {
        "tags": [
          "PriceLists"
        ],
        "summary": "Delete pricelist from company",
        "description": "Deletes a PriceList for the specified Company. If the PriceList is the last one on any company it will be inactivated. Note that only Reseller priceLists can be deleted. Any attempt to delete an other priceList type will render an Internal Server Error.",
        "parameters": [
          {
            "name": "companyId",
            "in": "query",
            "description": "The internal id of the Company.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "pricelistId",
            "in": "query",
            "description": "The internal id of the priceList to delete for the Company.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "updatedBy",
            "in": "query",
            "description": "(Optional) Account internal id of current user.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "cultureCode",
            "in": "query",
            "description": "(Optional) Specifies in which language to display culture specific information. If none is supplied, value is resolved from Application.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/CompanyPricelist"
                  },
                  "description": "A list of PriceLists. It is used on Customers and Companies."
                }
              }
            }
          }
        }
      }
    },
    "/customer/1.1/ListPriceRules": {
      "get": {
        "tags": [
          "PriceLists"
        ],
        "summary": "List price rules",
        "description": "Lists the available price rules.",
        "parameters": [
          {
            "name": "cultureCode",
            "in": "query",
            "description": "(Optional) Specifies in which language to display culture specific information. If none is supplied, value is resolved from Application.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/IdNameDescription"
                  }
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "Account": {
        "type": "object",
        "properties": {
          "Id": {
            "type": "integer",
            "description": "The internal Id of the Account. This value should be used as updatedBy/createdBy in API-Methods. When creating a new Account on a Customer leave this blank as Norce will generate the Id.",
            "format": "int32",
            "nullable": true
          },
          "Key": {
            "type": "string",
            "description": "The system wide unique Key for the Account.",
            "format": "uuid",
            "nullable": true
          },
          "LoginName": {
            "maxLength": 255,
            "minLength": 0,
            "type": "string",
            "description": "This is the login name used when logging in. Normally this is the email address. Care must be taken when user updates their emailAddress. Normally this update is just for Customer.Email. It is up to the Application to keep Customer.Email in sync with Account.LoginName if they are the same. MaxLength: 255",
            "nullable": true
          },
          "Name": {
            "maxLength": 100,
            "minLength": 0,
            "type": "string",
            "description": "This is the full name of the connected Customer's first and last name. MaxLength: 100",
            "nullable": true
          },
          "Roles": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "description": "This is an integer list of Role.Ids. See Application.Roles for available roles for the Application. This can be used to authorize roles to different parts of an Application.",
            "nullable": true
          },
          "Authorizations": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/IdValue"
            },
            "description": "This is an IdValue list of Authorizations. See Application.Authorizations for available values for the Application. This can be used to authorize users to different parts of an Application.",
            "nullable": true
          },
          "IsActive": {
            "type": "boolean",
            "description": "Indicates if the Account is Active or not. Use UpdateAccountStatus to change this value.",
            "nullable": true
          },
          "NewPassword": {
            "type": "string",
            "description": "New password that can be set when creating or updating a customer.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "An Account is related to a Customer. Each Account can belong to only one Application. When creating Customers you need to define a Customer.Account if you want the customer to be able to login. This is useful when the application supports My page with order history and such."
      },
      "Address": {
        "type": "object",
        "properties": {
          "Id": {
            "type": "integer",
            "description": "The internal Id of the Address. When creating a new Address leave this blank as Norce will generate the Id.",
            "format": "int32",
            "nullable": true
          },
          "CareOf": {
            "maxLength": 100,
            "minLength": 0,
            "type": "string",
            "description": "The CareOf of the Address. MaxLength: 100",
            "nullable": true
          },
          "Line1": {
            "maxLength": 255,
            "minLength": 0,
            "type": "string",
            "description": "The first address line of the Address. MaxLength: 255",
            "nullable": true
          },
          "Line2": {
            "maxLength": 255,
            "minLength": 0,
            "type": "string",
            "description": "The second address line of the Address. MaxLength: 255",
            "nullable": true
          },
          "Zip": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "description": "The zip code of the Address. MaxLength: 50",
            "nullable": true
          },
          "City": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "description": "The City of the Address. MaxLength: 50",
            "nullable": true
          },
          "CountryId": {
            "type": "integer",
            "description": "The internal Id for the country associated to the Address. When creating or updating Country on an Address either specify the CountryId or just the Country string. If Id is specified it will be used to resolve the Name. If none is specified the default for the Application will be used.",
            "format": "int32",
            "nullable": true
          },
          "Country": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "description": "The country name of the Address. When creating or updating Country on an Address either specify the CountryId or just the Country string. If Name is specified it will be used to resolve the Name and Id. Name should then be specified as Country.Code since Names are culture specific. If none is specified the default for the Application will be used. MaxLength: 50",
            "nullable": true
          },
          "Region": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "description": "The Region of the Address. MaxLength: 50",
            "nullable": true
          },
          "IsValidated": {
            "type": "boolean",
            "description": "Indicates if the address had been validated. It is up to the Application to validate addresses. Use normal address-methods to update this value.",
            "nullable": true
          },
          "GlobalLocationNo": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "description": "The Global Location Number (GLN) is part of the GS1 systems of standards. It is a simple tool used to identify a location and can identify locations uniquely where required. This is only used for invoice addresses. MaxLength: 50",
            "nullable": true
          },
          "ShippingPhoneNumber": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "description": "Phone number for shipping address. Only applicable in shipping addresses. MaxLength: 50",
            "nullable": true
          },
          "Code": {
            "type": "string",
            "description": "An external Code of the Address identifying this addess to external address.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Information about an address. Addresses appear as InvoiceAddress or DeliveryAddresses or when ever an Address is needed"
      },
      "AgreementAccount": {
        "type": "object",
        "properties": {
          "PricelistId": {
            "type": "integer",
            "description": "The PriceListId of the PriceList logged in to.",
            "format": "int32",
            "nullable": true
          },
          "Name": {
            "type": "string",
            "description": "The Name of the AgreementAccount/PriceList.",
            "nullable": true
          },
          "StartDate": {
            "type": "string",
            "description": "The StartDate of the AgreementAccount/PriceList.",
            "format": "date-time",
            "nullable": true
          },
          "EndDate": {
            "type": "string",
            "description": "The EndDate of the AgreementAccount/PriceList.",
            "format": "date-time",
            "nullable": true
          },
          "ImageKey": {
            "type": "string",
            "description": "A unique id for the image at our image server. Url for images are formed like http://[client specific CDN]/{ImageKey}. Preset, height and width can be sent as parameters.",
            "format": "uuid",
            "nullable": true
          },
          "ShowPricesIncVat": {
            "type": "boolean",
            "description": "Indicates if prices should be shown inc or ex VAT.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "An AgreementAccount is a special account connected to a priceList. Users can login to an AgreementAccount if the priceList is setup with a code. Note that when using AgreementAccounts any agreement code must be unique amongst all priceLists."
      },
      "Company": {
        "type": "object",
        "properties": {
          "Id": {
            "type": "integer",
            "description": "The internal Norce Id for the Company. When creating a new Company leave this blank as Norce will generate the Id.",
            "format": "int32",
            "nullable": true
          },
          "Key": {
            "type": "string",
            "description": "The system wide unique Key of the Company.",
            "format": "uuid",
            "nullable": true
          },
          "Code": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "description": "The external code. Usually the id in the erp system. MaxLength: 50",
            "nullable": true
          },
          "Name": {
            "maxLength": 100,
            "minLength": 0,
            "type": "string",
            "description": "The Name of the Company. MaxLength: 100",
            "nullable": true
          },
          "OrgNo": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "description": "The organizational number of the Company. Used to identify the Company for some payment methods. The combination of OrgNo and Name must be unique. MaxLength: 50",
            "nullable": true
          },
          "Phone": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "description": "The Phone number of the Company. MaxLength: 50",
            "nullable": true
          },
          "ReferId": {
            "type": "integer",
            "description": "Used to tag a Company with some external id.",
            "format": "int32",
            "nullable": true
          },
          "ReferUrl": {
            "maxLength": 255,
            "minLength": 0,
            "type": "string",
            "description": "Used to tag a Company with an incoming URL. MaxLength: 255",
            "nullable": true
          },
          "DeliveryAddresses": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Address"
            },
            "description": "A list of delivery Addresses for the Company. When needed the first address in the list will be used. So it is vital in the checkout process to either sort them or just supply one delivery address. Company addresses will override Customer addresses if both exists in the Checkout process.",
            "nullable": true
          },
          "InvoiceAddress": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Address"
              }
            ],
            "nullable": true
          },
          "UseInvoiceAddressAsDeliveryAddress": {
            "type": "boolean",
            "description": "Can be used when updating or inserting addresses on Company. If set to true the invoice address will be used as a delivery address as well. Then just an invoice address needs to be passed in. The deliveryAddress will be ignored. If set to false both invoice address and delivery address must be specified.",
            "nullable": true
          },
          "Info": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/IdValue"
            },
            "description": "Contains a list of id-value pairs specific to the client for this company. Use ApplicationService.ListCompanyInfoTypes for id lookup.",
            "nullable": true
          },
          "PricelistIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "description": "Contains a list of priceList ids valid for this company. It will be empty if no priceLists exist. It can be used to check products lists if they are from a company specific priceList. No need to pass this into List-methods since they are considered any way in the methods. This property should be considered as ReadOnly as priceLists are maintained else where.",
            "nullable": true
          },
          "ParentId": {
            "type": "integer",
            "description": "Points to an optional parent company. Used when companies are connected some how.",
            "format": "int32",
            "nullable": true
          },
          "DeliveryMethodIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "description": "Contains a list of delivery method ids valid for this company. It will be empty if no delivery methods exist.",
            "nullable": true
          },
          "PaymentMethodIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "description": "Contains a list of payment method ids valid for this company. It will be empty if no payment methods exist.",
            "nullable": true
          },
          "Email": {
            "maxLength": 255,
            "minLength": 0,
            "type": "string",
            "description": "The Email address of the Company. MaxLength: 255",
            "nullable": true
          },
          "Flags": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Flag"
            },
            "description": "A list of Flags of the Company. See Flag for information about flags. Flags can be used in Promotions or otherwise to provide custom handling of specific Companies.",
            "nullable": true
          },
          "VatNo": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "description": "This is the VAT registration number for the company. MaxLength: 50",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Information about a Company."
      },
      "CompanyDiscount": {
        "type": "object",
        "properties": {
          "TypeId": {
            "type": "integer",
            "description": "The TypeId defines the rule for how Value is interpreted. 1 = Category discount, 2 = DiscountCode on product. Cannot be changed.",
            "format": "int32",
            "nullable": true
          },
          "Value": {
            "type": "string",
            "description": "The value to check for on products. If TypeID = 1 then discounts are valid for all products belonging to Category with Category.Code = Value. If TypeId = 2 then the product's discount code is checked. Cannot be changed.",
            "nullable": true
          },
          "Discount": {
            "type": "number",
            "description": "The actual discount percentage. Ex: 15.00 equals 15% discount.",
            "format": "decimal",
            "nullable": true
          },
          "PriceListTypeSeed": {
            "type": "string",
            "description": "An optional comma-separated list of priceList type-ids for which the discount is valid.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Company discounts are specific discounts that are not based on priceLists and applied on product prices before display. Best price will be taken. Discounts are not stackable."
      },
      "CompanyPaymentMethod": {
        "type": "object",
        "properties": {
          "CompanyCode": {
            "type": "string",
            "description": "The external code of the company.",
            "nullable": true
          },
          "PaymentMethodCode": {
            "type": "string",
            "description": "The external code of the payment method.",
            "nullable": true
          },
          "InvoiceCaptureSettingsCode": {
            "type": "string",
            "description": "The invoice capture settings code (if any is set).",
            "nullable": true
          },
          "IsActive": {
            "type": "boolean",
            "description": "Whether or not the company payment method is active.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Defined payment method for a Company."
      },
      "CompanyPricelist": {
        "type": "object",
        "properties": {
          "Id": {
            "type": "integer",
            "description": "The internal pricelist id. Set to null when creating a new pricelist.",
            "format": "int32",
            "nullable": true
          },
          "ParentId": {
            "type": "integer",
            "description": "The parent internal pricelist id. If any.",
            "format": "int32",
            "nullable": true
          },
          "Name": {
            "type": "string",
            "description": "The name of the pricelist.",
            "nullable": true
          },
          "Description": {
            "type": "string",
            "description": "The description of the pricelist.",
            "nullable": true
          },
          "Agreement": {
            "type": "string",
            "description": "The agreement code of the pricelist. Can be an external id of the priceList.",
            "nullable": true
          },
          "Type": {
            "type": "integer",
            "description": "The type of the pricelist. 0 is default. Other values are application specific.",
            "format": "int32",
            "nullable": true
          },
          "IsActive": {
            "type": "boolean",
            "description": "Specifies if the pricelist is active or not. Set this to false before update if you want to delete the pricelist.",
            "nullable": true
          },
          "PriceRule": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PricelistPriceRule"
              }
            ],
            "nullable": true
          },
          "PopulationRules": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PricelistPopulationRule"
            },
            "description": "A list of population rules for this pricelist.",
            "nullable": true
          },
          "CurrencyId": {
            "type": "integer",
            "description": "The currencyId for this pricelist.",
            "format": "int32",
            "nullable": true
          },
          "IsExclusive": {
            "type": "boolean",
            "description": "Indicates if the pricelist should be used exclusively for this Company, or not. Exclusive pricelists are not used with any standard pricelists and only exclusive pricelists will be in scope if the Company has any.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Defines a pricelist in this namespace. This is used when setting up Company specific priceLists for resellers. Insert and Update methods are provided. In order to delete a priceList just use DeleteCompanyPricelist."
      },
      "CompanyPricelistItem": {
        "type": "object",
        "properties": {
          "PartNo": {
            "type": "string",
            "description": "PartNo of the SKU for this price item.",
            "nullable": true
          },
          "PricelistId": {
            "type": "integer",
            "description": "The internal pricelist id.",
            "format": "int32",
            "nullable": true
          },
          "Price": {
            "type": "number",
            "description": "The price. Read only. Currency is from the pricelist.",
            "format": "decimal",
            "nullable": true
          },
          "PriceRecommended": {
            "type": "number",
            "description": "The price from inherited pricelist, if any.",
            "format": "decimal",
            "nullable": true
          },
          "IsActive": {
            "type": "boolean",
            "description": "Specifies if the pricelist item is active or not. Ignored when inserting new pricelist items.",
            "nullable": true
          },
          "PriceRule": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PricelistPriceRule"
              }
            ],
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Defines a pricelist item in this namespace."
      },
      "Customer": {
        "type": "object",
        "properties": {
          "Id": {
            "type": "integer",
            "description": "The internal Norce Id of the Customer. When creating a new Customer leave this blank as Norce will generate the Id.",
            "format": "int32",
            "nullable": true
          },
          "Key": {
            "type": "string",
            "description": "The system wide unique Key of the Customer.",
            "format": "uuid",
            "nullable": true
          },
          "Code": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "description": "The external code. Usually the id in the erp system. MaxLength: 50",
            "nullable": true
          },
          "Email": {
            "maxLength": 255,
            "minLength": 0,
            "type": "string",
            "description": "The Email address of the Customer. MaxLength: 255",
            "nullable": true
          },
          "Ssn": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "description": "The social security number of the Customer. Used to identify the Customer for some payment methods. MaxLength: 50",
            "nullable": true
          },
          "FirstName": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "description": "The FirstName of the Customer. MaxLength: 50",
            "nullable": true
          },
          "LastName": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "description": "The LastName of the Customer. MaxLength: 50",
            "nullable": true
          },
          "Phone": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "description": "The PhoneNumber of the Customer. MaxLength: 50",
            "nullable": true
          },
          "CellPhone": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "description": "The CellPhone number of the Customer. MaxLength: 50",
            "nullable": true
          },
          "ReferId": {
            "type": "integer",
            "description": "Used to tag a Customer with some external id.",
            "format": "int32",
            "nullable": true
          },
          "ReferUrl": {
            "maxLength": 255,
            "minLength": 0,
            "type": "string",
            "description": "Used to tag a Customer with an incoming URL. MaxLength: 255",
            "nullable": true
          },
          "Account": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Account"
              }
            ],
            "nullable": true
          },
          "Companies": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Company"
            },
            "description": "A list of Companies. A Customer can have many Companies. The first will be used as default. In the Checkout process just pass in one Company if any is to be used or the first will be used as default.",
            "nullable": true
          },
          "DeliveryAddresses": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Address"
            },
            "description": "A list of delivery Addresses for the Customer. When needed the first address in the list will be used. So it is vital in the checkout process to either sort them or just supply one delivery address. Company addresses will override Customer addresses if both exists in the Checkout process.",
            "nullable": true
          },
          "InvoiceAddress": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Address"
              }
            ],
            "nullable": true
          },
          "Flags": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Flag"
            },
            "description": "A list of Flags for the Customer. See Flag for information about flags. Flags can be used in Promotions or otherwise to provide custom handling of specific Customers.",
            "nullable": true
          },
          "UseInvoiceAddressAsDeliveryAddress": {
            "type": "boolean",
            "description": "Can be use when updating or inserting addresses on Customer. If set to true the invoice address will be used as a delivery address as well. Then just an invoice address needs to be passed in. The deliveryAddress will be ignored. If set to false both invoice address and delivery address must be specified.",
            "nullable": true
          },
          "Info": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/IdValue"
            },
            "description": "Contains a list of id-value pairs specific to the client for this customer. Use ApplicationService.ListCustomerInfoTypes for id lookup.",
            "nullable": true
          },
          "PricelistIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "description": "Contains a list of priceList ids valid for this customer. It will be empty if no priceLists exist. It can be used to check products lists if they are from a customer specific priceList. No need to pass this into List-methods since they are considered any way in the methods. This property should be considered as ReadOnly as priceLists are maintained else where.",
            "nullable": true
          },
          "CrmId": {
            "maxLength": 50,
            "minLength": 0,
            "type": "string",
            "description": "Used to save the Customers external id from a crm-system. MaxLength: 50",
            "nullable": true
          },
          "IsActive": {
            "type": "boolean",
            "description": "Specifies if the Customer is active or not.",
            "nullable": true
          },
          "Created": {
            "type": "string",
            "description": "When the customer was created.",
            "format": "date-time",
            "nullable": true
          },
          "Updated": {
            "type": "string",
            "description": "When the customer was last updated.",
            "format": "date-time",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Information about a Customer."
      },
      "CustomerFlag": {
        "type": "object",
        "properties": {
          "Id": {
            "type": "integer",
            "description": "The internal Id of the CustomerFlag.",
            "format": "int32",
            "nullable": true
          },
          "Name": {
            "type": "string",
            "description": "The name of the CustomerFlag.",
            "nullable": true
          },
          "Description": {
            "type": "string",
            "description": "The description of the CustomerFlag.",
            "nullable": true
          },
          "SortOrder": {
            "type": "integer",
            "description": "The sort order of the CustomerFlag.",
            "format": "int32",
            "nullable": true
          },
          "Group": {
            "allOf": [
              {
                "$ref": "#/components/schemas/IdNameDescription"
              }
            ],
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Information about all available flags for Customer or Company."
      },
      "ErrorMessage_v1_1": {
        "type": "object",
        "properties": {
          "MessageId": {
            "type": "integer",
            "description": "Unique identifier for the message.",
            "format": "int32",
            "nullable": true
          },
          "Message": {
            "type": "string",
            "description": "The error message.",
            "nullable": true
          },
          "Orchestration": {
            "type": "string",
            "description": "Orchestration",
            "nullable": true
          },
          "TimeStamp": {
            "type": "string",
            "description": "The time the error occurred.",
            "format": "date-time",
            "nullable": true
          },
          "Record": {
            "type": "string",
            "description": "An xml representation of Messages.",
            "nullable": true
          },
          "Messages": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/StringStringKeyValuePair"
            },
            "description": "A dictionary of additional messages or data related to the error.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Error message for version 1.1"
      },
      "Flag": {
        "type": "object",
        "properties": {
          "Id": {
            "type": "integer",
            "description": "The internal Id of the Flag.",
            "format": "int32",
            "nullable": true
          },
          "Name": {
            "type": "string",
            "description": "The Name of the Flag.",
            "nullable": true
          },
          "Group": {
            "type": "integer",
            "description": "The GroupId of the Flag.",
            "format": "int32",
            "nullable": true
          },
          "IsSelected": {
            "type": "boolean",
            "description": "Indicates if the Flag is selected or not.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Information about a flag set on Customer or Company. See CustomerFlags for information about available flags."
      },
      "IdNameDescription": {
        "type": "object",
        "properties": {
          "Id": {
            "type": "integer",
            "description": "The internal Id of the Entity.",
            "format": "int32",
            "nullable": true
          },
          "Name": {
            "type": "string",
            "description": "The Name of the Entity.",
            "nullable": true
          },
          "Description": {
            "type": "string",
            "description": "The Description of the Entity.",
            "nullable": true
          },
          "ImageKey": {
            "type": "string",
            "description": "A unique id for the image at our image server. Url for images are formed like http://[client specific CDN]/{ImageKey}. Preset, height and width can be sent as parameters.",
            "format": "uuid",
            "nullable": true
          },
          "Code": {
            "type": "string",
            "description": "The Code of the Entity.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "IdValue": {
        "type": "object",
        "properties": {
          "Id": {
            "type": "integer",
            "description": "The internal Id of the Entity. This Id might be different in different tiers such as Stage and Production. Use Code if hard coding is required.",
            "format": "int32",
            "nullable": true
          },
          "Value": {
            "type": "string",
            "description": "The Value of the Entity.",
            "nullable": true
          },
          "Code": {
            "type": "string",
            "description": "The Code of the Entity, if existing. Use this value when hard coding is required.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "An Entity used where Id and Value is needed. Mostly used for lookup data."
      },
      "Login": {
        "type": "object",
        "properties": {
          "LoginName": {
            "type": "string",
            "description": "User login name",
            "nullable": true
          },
          "Password": {
            "type": "string",
            "description": "User's password",
            "nullable": true
          },
          "CultureCode": {
            "type": "string",
            "description": "Specifies in which language to display culture specific information. If none is supplied, value is resolved from Application.",
            "nullable": true
          },
          "IncludeCompanies": {
            "type": "boolean",
            "description": "Include full company data, if any, with the customer. Otherwise only primary company, if any, is included. Default is true.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "PricelistPopulationRule": {
        "type": "object",
        "properties": {
          "RuleId": {
            "type": "integer",
            "description": "An internal id for a specific rule. Set to null when creating a rule.",
            "format": "int32",
            "nullable": true
          },
          "ManufacturerId": {
            "type": "integer",
            "description": "An optional internal manufacturer id. Used if the priceList is restricted to a specific manufacturer.",
            "format": "int32",
            "nullable": true
          },
          "CategoryId": {
            "type": "integer",
            "description": "An optional internal category id. Used if the priceList is restricted to a specific category.",
            "format": "int32",
            "nullable": true
          },
          "IsSupplierRequired": {
            "type": "boolean",
            "description": "Specifies if the populations is from a supplier.",
            "nullable": true
          },
          "IsInclusive": {
            "type": "boolean",
            "description": "Specifies if the population rule is inclusive or exclusive.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Defines a price rule for a pricelist in this namespace."
      },
      "PricelistPriceRule": {
        "type": "object",
        "properties": {
          "RuleId": {
            "type": "integer",
            "description": "An internal id for a specific rule. Consult Norce for a list of valid ids and what they mean.",
            "format": "int32",
            "nullable": true
          },
          "Value": {
            "type": "number",
            "description": "The value associated with the rule. The ruleId specifies how this value is used.",
            "format": "decimal",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Defines a price rule for a priceList in this namespace."
      },
      "StringStringKeyValuePair": {
        "type": "object",
        "properties": {
          "Key": {
            "type": "string",
            "nullable": true
          },
          "Value": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      }
    },
    "securitySchemes": {
      "Bearer": {
        "type": "apiKey",
        "description": "JWT Authorization header using the Bearer scheme. Example: \"Authorization: Bearer {token}\"",
        "name": "Authorization",
        "in": "header"
      },
      "ApplicationId": {
        "type": "apiKey",
        "description": "ApplicationId header required for all requests.",
        "name": "ApplicationId",
        "in": "header"
      }
    }
  }
}