# 1. Pair/Request

<mark style="color:green;">`POST`</mark> `{{Base Address}}/api/pair/sync/request`

It will be enough to send a request to the address provided above. You can use the 'Base Address' as you wish for both the test environment and the production environment.

{% hint style="info" %}
Important: To use the Sync **Matching Request** service, you must send the '**apikeyprivate**' and '**apiclientprivate**' parameters in the 'Header' section.

\
[<mark style="color:green;">**PhysicalAPI Address**</mark>](https://developer.paywall.one/payment-orchestration-integration-document/environment)
{% endhint %}

**The headers required to send a request to the service are as follows:**

<table><thead><tr><th width="243">Parameter</th><th width="106.33333333333331">Type</th><th width="136">Compulsory</th><th>Description</th></tr></thead><tbody><tr><td>apikeyprivate</td><td>string</td><td>Yes</td><td>The Private Key obtained from the merchant panel.</td></tr><tr><td>apiclientprivate</td><td>string</td><td>Yes</td><td>The Private Client obtained from the merchant panel.</td></tr></tbody></table>

**The body information to be sent to the service is as follows:**

{% hint style="warning" %}
**Caution**: A transaction can only be processed with one of the parameters, either TerminalId or TerminalTagCode. If both are sent simultaneously, the service will return a warning.
{% endhint %}

{% tabs %}
{% tab title="JSON" %}

```json
{
    // "TerminalId": "38e895c3-1a9a-4b73-8816-8557d1d031d6"
    "TerminalTagCode": "dükkan_1"
}
```

{% endtab %}
{% endtabs %}

<table><thead><tr><th width="268">Parameter</th><th width="106.33333333333331">Type</th><th width="137">Compulsory</th><th width="116">Length</th><th>Description</th></tr></thead><tbody><tr><td><pre><code>TerminalId
</code></pre></td><td>Guid</td><td>Yes/No</td><td>-</td><td>The ID of your terminal.</td></tr><tr><td><pre><code>TerminalTagCode
</code></pre></td><td>string</td><td>Yes/No</td><td>25</td><td>Tag code.</td></tr></tbody></table>

**The response returned by the service:**

<table><thead><tr><th width="182">Parameter</th><th width="107.33333333333331">Type</th><th>Description</th></tr></thead><tbody><tr><td>Result</td><td>object</td><td>Returns the details of the service.</td></tr><tr><td>ErrorCode</td><td>int</td><td>Error code. If the transaction is successful, it returns a value of '0'.</td></tr><tr><td>Succeeded</td><td>bool</td><td>Returns a true or false value. If the transaction is <mark style="color:green;">successful</mark>, it returns a value of 'true'.</td></tr><tr><td>Failed</td><td>bool</td><td>Returns a true or false value. If the transaction is <mark style="color:red;">unsuccessful</mark>, it returns a value of 'true'.</td></tr><tr><td>Message</td><td>string</td><td>If the transaction is erroneous, this is the message associated with the error. It provides language support based on the locale parameter.</td></tr><tr><td>ClientMessage</td><td>string</td><td>Returns the constant values of Paywall error codes. You can perform mapping.</td></tr></tbody></table>

{% tabs %}
{% tab title="JSON" %}
{% code overflow="wrap" lineNumbers="true" %}

```json5
{
    "Result": {
        "PairRequestId": "765c1ea9-bf03-4ee5-8d77-8e4893e5afe3",
        "TerminalId": "38e895c3-1a9a-4b73-8816-8557d1d031d6",
        "PairCode": "949161"
    },
    "Failed": false,
    "Message": null,
    "ClientMessage": null,
    "Succeeded": true
}
```

{% endcode %}
{% endtab %}
{% endtabs %}

<table><thead><tr><th width="263">Parameter</th><th width="139.33333333333331">Type</th><th>Description</th></tr></thead><tbody><tr><td><pre><code>PairRequestId
</code></pre></td><td>Guid</td><td>It is the matching request ID. It is used in other required services. You should store it on your side.</td></tr><tr><td><pre><code>TerminalId
</code></pre></td><td>Guid</td><td>The identity information of the terminal you requested.</td></tr><tr><td><pre><code>PairCode
</code></pre></td><td>string</td><td>The matching code should also be stored on your side and communicated to the device user for entry into the device.</td></tr></tbody></table>
