# Additional capabilities

### <mark style="color:blue;">Dynamic descriptor</mark>

{% hint style="success" %}
This is applicable when the acquirer has support for dynamic descriptor.

Dynamic descriptor allows to customize merchant name and location as they shown in cardholder's bank statement and SMS from issuer.

The default merchant name and location associated with MID may be overriden with custom values for each payment request. Dynamic descriptor is supported in [Authorize](broken://pages/uAt9abJNb61RUd9AsumK#authorize-post-orders-authorize), [Create](broken://pages/uAt9abJNb61RUd9AsumK#order-creation-post-orders-create) and [**Rebill**](broken://pages/uAt9abJNb61RUd9AsumK#repeating-payment-post-orders-id-rebill) requests.

Dynamic descriptor data should be specified within **extra\_fields** block as follows:

Required parameters
{% endhint %}

| Name                | Description                                                | Example       |
| ------------------- | ---------------------------------------------------------- | ------------- |
| dynamic\_descriptor | Dynamic descriptor (<mark style="color:orange;">\*</mark>) | -             |
| \*.merchant         | Merchant name                                              | BOOKSTORE LTD |
| \*.city             | Merchant's city                                            | New york      |
| \*.country          | Merchant's country (ISO 3166-1 alpha-2)                    | US            |

{% hint style="info" %}
Combined length of **\*.merchant** and **\*.city** values should not be more than 37 symbols and length of **\*.merchant** alone should not be greater than 22

symbols. Both parameters may consist of alfanumeric characters and punctuation marks.

According to provided example values, resulting descriptor visible to cardholder may look like this:

BOOKSTORE LTD>New york                US
{% endhint %}

### <mark style="color:blue;">Unique conversion of payments</mark>

{% hint style="success" %}
If a unique identifier is transferred at payment, then all orders having one identifier, are considered one attempt. By identifier calculates a unique conversion of payments. A unique order ID is supported in [Authorize](broken://pages/uAt9abJNb61RUd9AsumK#authorize-post-orders-authorize), [Create](broken://pages/uAt9abJNb61RUd9AsumK#order-creation-post-orders-create) and [Rebill](broken://pages/uAt9abJNb61RUd9AsumK#repeating-payment-post-orders-id-rebill) requests. For example, there were five attempts of order with the same identifier, one of which was successful. In this case, the conversion will be 20% (5 attempts, successful - 1), but a unique conversion - 100%, because based on the logic of counting unique attempts, it was one and ended in success.

A unique identifier is passed in the **extra\_fields** block:
{% endhint %}

| Name           | Description                                        | Example   |
| -------------- | -------------------------------------------------- | --------- |
| attributes     | Parameters (<mark style="color:orange;">\*</mark>) | -         |
| \*.invoice\_id | Unique identifier of payment                       | 741852963 |
|                |                                                    |           |

### <mark style="color:blue;">Payments with 3-D Secure 2.0</mark>

{% hint style="info" %}
Data for 3-D Secure 2.0 authentication is transmitted in the request [Authorize](https://docs.bizon.one/08.01/api-payment-gateway/actions#authorize-post-orders-authorize) in the parameter secure3d.
{% endhint %}

{% tabs %}
{% tab title="Required parameters" %}

<table><thead><tr><th width="278">Name</th><th>Description</th><th>Example</th></tr></thead><tbody><tr><td>secure3d</td><td>3-D Secure authentication (<mark style="color:orange;">*</mark>)</td><td>-</td></tr><tr><td>*.browser_details</td><td>Browser details</td><td>-</td></tr><tr><td>*<em>.*</em>.browser_accept_header</td><td>Accepted content types</td><td>text/html</td></tr><tr><td>*<em>.*</em>.browser_color_depth</td><td>Device color depth</td><td>24</td></tr><tr><td>*<em>.*</em>.browser_ip</td><td>User IP</td><td>109.86.86.86</td></tr><tr><td><em>.</em>.browser_language</td><td>Browser language</td><td>en</td></tr><tr><td>.*.browser_screen_height</td><td>Browser area height</td><td>1080</td></tr><tr><td>*<em>.*</em>.browser_screen_width</td><td>Browser area width</td><td>1920</td></tr><tr><td>*<em>.*</em>.browser_timezone</td><td><p>Difference between browser timezone and UTC time in</p><p>minutes</p></td><td>-180</td></tr><tr><td>*<em>.*</em>.browser_user_agent</td><td>Browser user agent</td><td>Mozilla</td></tr><tr><td>*.*browser_java_enabled</td><td>Java enable flag in the browser</td><td>false</td></tr><tr><td>*<em>.*</em>.window_height</td><td>Browser window height</td><td>1080</td></tr><tr><td>*<em>.*</em>.window_width</td><td>Browser window width</td><td>1920</td></tr></tbody></table>
{% endtab %}

{% tab title="Optional parameters" %}

<table><thead><tr><th>Name</th><th width="293">Description</th><th>Example</th></tr></thead><tbody><tr><td>secure3d</td><td>3-D Secure authentication (<mark style="color:orange;">*</mark>)</td><td>-</td></tr><tr><td>*.force_challenge</td><td>Force inclusion cash flow scenario</td><td>1</td></tr><tr><td></td><td></td><td></td></tr></tbody></table>
{% endtab %}
{% endtabs %}

> If the authorization response looks like this:

```graphql
{
"method3d_params": {
"method_url": "https://ds.testcert.testconnect.su/ma",
"method_data": "axJ0aHJlZURTTWV0aG9kTm90aWZpY2F0aW9uVVJMIjoiaHR0cHM6Ly8zZHN0ZXN0Lm1kbWJhbmsucnUvY2dpLWJpb
i9jZ2lfbGlua193IiwidGhyZWVEU1NlcnZlclRyYW5zSUQiOiJkNDI0ZDFjMS02OTUwLTRkNmMtYTMwNy0zMTcxZDgzYjJiN2IifQ"
},
"message": "Method3d required",
"order_id": "60391976929806541"
}
```

> then you need to collect in the user's browser a form that sends data to an invisible **iframe** using for these are the values of the **method\_url** and **method\_data** parameters from the authorization response.
>
> After the user's browser has submitted the form to an invisible iframe, you need to do the request which is described in the section [Continue 3DS Method URL](broken://pages/uAt9abJNb61RUd9AsumK#continue-3ds-method-url-of-authentication-post-orders-id-resume) of authentication.

### <mark style="color:blue;">DSRP</mark>

> The DSRP data is transmitted in the parameter **secure3d**

{% tabs %}
{% tab title="Required parameters" %}

<table><thead><tr><th>Name</th><th width="281">Description</th><th>Example</th></tr></thead><tbody><tr><td>secure3d</td><td>3-D Secure authentication (<mark style="color:orange;">*</mark>)</td><td>-</td></tr><tr><td>*.dsrp</td><td>DSRP</td><td>1</td></tr><tr><td>*.xid</td><td>PaRes transaction identifier (XID)</td><td>8Rg2xYbxLUGsfZlkoh1JxAQFBM=</td></tr><tr><td>*.cavv</td><td>Cardholder Authentication Verification Value from PaRes</td><td>AAABCBVRA2EYZXQBV1EDAAAAAA=</td></tr><tr><td>*.eci</td><td>E-commerce Indicator (ECI)</td><td>05</td></tr></tbody></table>
{% endtab %}

{% tab title="Optional parameters" %}

| Name             | Description                                                                                                                                                                                     | Example    |
| ---------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------- |
| dsrp\_type       | <p>Type system DSRP. Possible types are: <mark style="color:orange;">masterpass</mark>, <mark style="color:orange;">apple\_pay</mark>,</p><p><mark style="color:orange;">google\_pay</mark></p> | masterpass |
| dsrp\_wallet\_id | ID digital wallet                                                                                                                                                                               | 765        |
| {% endtab %}     |                                                                                                                                                                                                 |            |
| {% endtabs %}    |                                                                                                                                                                                                 |            |

> Parameter **dsrp\_wallet\_id** are applied only for the **dsrp\_type == masterpass**. If the type of payment system is not specified, the default is ApplePay.
>
> When working with DSRP, merchant gets a token, which contains the requisites for payment. Example of filling for the ApplePay:

| Name for ApplePay               | Name for API                       |
| ------------------------------- | ---------------------------------- |
| applicationPrimaryAccountNumber | pan                                |
| applicationExpirationDate       | expiration\_month expiration\_year |
| transactionAmount               | amount                             |
| transactionId                   | xid                                |
| onlinePaymentCryptogram         | cavv                               |
| eciIndicator                    | eci                                |

{% hint style="info" %}
The fields holder and cvv are not transmitted, because they are not contained in the token, dsrp always has the value 1 (true), eci is passed only if it is contained in a token.
{% endhint %}

### <mark style="color:blue;">Binding a payment card (Oneclick)</mark>

{% hint style="warning" %}
When creating a payment can be binding a buyer card. In the future, can be select one of the binded cards on the payment page. For binding the card, must be specified the alphanumeric identifier of the buyer.

Card binding is performed on the payment page using the card save check box.

The id must not exceed 40 symbols, it is transmitted in the block extra\_fields of the query [Create](broken://pages/uAt9abJNb61RUd9AsumK#order-creation-post-orders-create):
{% endhint %}

| Name            | Description                                            | Description |
| --------------- | ------------------------------------------------------ | ----------- |
| oneclick        | Binding a card (<mark style="color:orange;">\*</mark>) | -           |
| \*.customer\_id | Buyer id                                               | 0123654789  |
| \*.prechecked   | Flag of filling the checkbox for saving the card       | 1           |

### <mark style="color:blue;">Paged downloads of lists of orders and operations</mark>

{% hint style="info" %}
For a list of orders or operations, you can specify the number of entries on the page. It is also possible to specify the page number to download list of orders (operations).
{% endhint %}

| Name       | Description                   | Example |
| ---------- | ----------------------------- | ------- |
| page       | Number loadable page          | 2       |
| page\_size | Number of records on the page | 50      |

> If the ***page*** and ***page\_size*** parameters are not specified, the page with the number 1 will be downloaded. It will contain the number of entries by default.
>
> For example, if ***page = 2*** and ***page\_size = 50***, then 50 entries will be downloaded, starting from the 51st.
>
> HTTP headers in the response contain in the header Pagination links to subsequent and previous pages of list of orders (operations). If is downloaded the first page, there will only be a link to the next page of list. For example, if is downloaded a second page from the list of orders, the title will contain links of that type:
>
> `'<http://mybox.localhost?foo=bar&page_size=2&page=1>; rel="prev", <http://mybox.localhost?`
>
> `foo=bar&page_size=2&page=3>; rel="next"'`
>
> If an incorrect value of the ***page\_size*** or ***page*** parameters is set, there will be an error of validation with that message:
>
> <mark style="background-color:orange;">'message' : 'Invalid page size'</mark> or <mark style="background-color:orange;">'message' => 'Invalid page'</mark>


---

# Agent Instructions: Querying This Documentation

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

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

```
GET https://docs.bizon.one/08.01/api-payment-gateway/additional-capabilities.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

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