====== End User Information ====== When placing an order for certain products, the vendor requires that particular end user information should be specified (hereinafter — license form). Different products may also require different information. When placing an order for a product, you need to pass a license form if the **LicenseFormRequired** flag is selected for the product (in the [[en:apiv2:methods:getpricechanges|GetPriceChanges]] method results). Before placing an order, call the [[en:apiv2:methods:GetUserInfoDescriptionFor|GetUserInfoDescriptionFor]] method by passing a description language and list of products to be ordered. Results will include a list of fields to be filled out by the end user. Each field has a text description and a set of fill out requirements (regular expression, length, etc.). Please, not that certain fields must be filled out by the partner rather than the end user. Field type is defined in the description of the UserType field. Values in such fields must be auto-populated by the partner's system and these fields must not be displayed to the end user. Currently, we only have one field of this type: [[ru:apiv2:apiusermanual:commonscenarios:pin|Kaspersky PIN]]. Unfortunately, some form fill out rules cannot be described using regular expressions (for example, a rule like 'Company field is required only if the user is a legal entity'). These rules are included in the description to help users filling out the form. To check whether the form is filled out properly, use the [[en:apiv2:methods:CheckEndUserInfo|CheckEndUserInfo]] method. As each product has its own form, the check must run as follows: - The form is collected for each product in the order. To do this, all filled-out fields are filtered to select those that have a product's part number from the RelatedPartNums array in the description. - The form collected for each product is then checked using the [[en:apiv2:methods:CheckEndUserInfo|CheckEndUserInfo]] method. If some fields contain errors, they will be marked with the HasError flag in the method call results and the error text will be displayed in the **ErrorText** field. - If the filled-out form contains errors, these are displayed to the user to be corrected, and then steps 1-2 are repeated. When a license form is added to an order line, fields must be filtered by product, just as in the case of form check.