# Identify your customer

The **userParam** method is an **optional** method that adds key-value pairs of customer-specific information to the process. The provided user parameters are attached to the report which is sent to you as a client when the end-user completes the application process. Attaching customer-specific information is *optional* but **strongly recommended** as it allows you as a client to match the report send by Instantor, with the information collected by you during your application flow.

{% hint style="info" %}
This method accepts and attaches any **key-value pairs** to the report. However, special-purpose keys are listed further down in this section.
{% endhint %}

```javascript
instantor.userParam(key, value)
```

| Argument           | Description             |
| ------------------ | ----------------------- |
| **key** (string)   | User information key    |
| **value** (string) | User information value. |

### Example

The following example lists key-value pairs for a customer their; *first name, last name, social security number and email address:*

```javascript
const instantor = new Instantor('produktKey.de');
  
/* Set user-specific parameters */
instantor.userParam('first-name', 'John');
instantor.userParam('last-name', 'Doe');
instantor.userParam('unique-user-id', '123456');
  
instantor.load('#instantor_div');
```

### Special-purpose keys

The **userParam** accepts the following special-purpose key:

| Key                      | Effect                                                                                                                                                                                                               |
| ------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **environment** (string) | The environment determines to what endpoint the reports will be sent. If not set in your code, the reports will be sent to the default environment, usually called "production". Other options could include "test". |

```
instantor.userParam('environment', 'test');
```

Instantor will return the environment value in the corresponding report for the request that has been initiated. **If no environment is set, data will be sent to the production environment and associated Callback URL.** You will find this mention in the report as: `"miscParams":[ { "name":"environment", "value":"test" }`&#x20;

{% hint style="info" %}
Most clients require two environments - "production" and "test", where production is set as the default environment. The client can request Instantor to set up any number of environments and request them to be named as they wish.&#x20;
{% endhint %}

### Reserved keys

Please refrain from using the following **reserved keys** as an argument for the userParam method. These are used internally by Instantor and value assigned to these keys will be overwritten.

* tld,
* product,
* brand,
* client,
* instantor\_request\_id,
* ssn,
* scrapeHistoryDays,
* scrapeHistoryMonths,
* scrape\_from,
* scrape\_to,
* withLoans,
* withStatements,
* organization\_number.

{% hint style="info" %}
Every call to our system carries a unique **instantor\_request\_ID**. Make sure to parse this information in your UI and make it easily retrievable. Using this ID, we will be able to effectively assist you for any support inquires.&#x20;
{% endhint %}
