# Kétlépcsős tranzakció lezárása (Close)

### Működés

Használja a `Close` hívást egy kétlépcsős tranzakció lezárásához. A `Close` segítségével jelezheti a fizetési szolgáltató számára, hogy a vásárló számláján korábban befoglalt összeget teljes egészében megterhelje, részben terhelje meg vagy szabadítsa fel.

[<mark style="background-color:blue;">**Próbálja ki ezt a funkciót!**</mark>](https://demo.nevogate.com/views/?action=close)

### **API kérés paraméterek**

Az API kérés általános információi

<table data-full-width="true"><thead><tr><th>Művelet</th><th>HTTP kérés</th><th>Adatok</th></tr></thead><tbody><tr><td><code>Close</code></td><td><code>POST</code></td><td>method=<code>Close</code><br><br>json={JSON encode-olt paraméterek}</td></tr></tbody></table>

### Terhelés

Teljes összeg terhelésére a `Close` hívás során két lehetőség van (elég csupán az egyiket alkalmazni):

* a hívás során **ne** adja át az `ApprovedAmount` paramétert
* amennyiben mégis átadja az `ApprovedAmount` paramétert, annak értéke legyen `0`

Mindkét eljárás jelzi a fizetési szolgáltató számára, hogy a korábban befoglalt teljes összeggel terhelje meg a vásárló számláját.

### Részterhelés

Részösszeg terheléséhez, a `Close` hívás során adja át a terhelni kívánt részösszeget az `ApprovedAmount` paraméterben. Ilyen esetben kizárólag az `ApprovedAmount`-ban megadott részösszeg kerül terhelésre. Az eredetileg befoglalt összeg és a részösszeg közötti különbözet automatikusan feloldásra kerül a vásárló számláján (többszörös, egymást követő részösszeg terhelésre ezért nincs lehetőség).

{% hint style="info" %}
Részösszeg terhelését csak bizonyos fizetési szolgáltatók támogatják. Ez a funkció jelenleg a következő szolgáltatóknál érhető el:

* Barion Smart Gateway
* Global Payments
* K\&H Bank
* PayPal REST
* SimplePay
* Wordline - Saferpay
  {% endhint %}

### Feloldás

Foglalás feloldásához, a `Close` hívás során adja át az `Approved` paramétert, melynek értéke legyen `"false"`. Ennek hatására a fizetési szolgáltató feloldja a teljes korábban befoglalt összeget a vásárló számláján (ezért részösszeg feloldására nincs lehetőség).

#### **API kérés paraméterek**

A `Close` kérés paraméterei közül a `TransactionId` átadása kötelező:

<table data-full-width="true"><thead><tr><th>Paraméter</th><th width="133">Típus</th><th>Érték</th><th>Leírás</th></tr></thead><tbody><tr><td><code>TransactionId</code></td><td>string<br><br>(32 karakter)</td><td>32 karakter hosszú md5 hash</td><td>A tranzakció azonosítója a <em>Nevogate</em> rendszerében.</td></tr><tr><td><code>Approved</code></td><td>string</td><td><ul><li>“true” (alapért.)</li><li>“false”</li></ul></td><td><p>Jelzi a befoglalt összeg terhelését vagy feloldását.<br></p><ul><li>“true” esetén a fizetési szolgáltató ténylegesen megterheli a korábban befoglalt összeget (vagy részösszeget) a vásárló számláján</li><li>“false” esetén a fizetési szolgáltató feloldja a korábban befoglalt teljes összeget a vásárló számláján</li></ul></td></tr><tr><td><code>ApprovedAmount</code></td><td>number</td><td><p>szabadon választható<br></p><p>(de legfeljebb az eredeti tranzakció összege)</p></td><td><p>Jelzi a terhelni kívánt részösszeg mértékét.<br></p><p>Ha ez a paraméter nem kerül átadásra, vagy az átadott értéke “0”, akkor a fizetési szolgáltató a teljes korábban befoglalt összeggel terheli meg a vásárló számláját.<br></p><p>(Amennyiben az <code>Approved</code> paraméter átadása <code>”false”</code> értékkel történik, úgy az <code>ApprovedAmount</code> paraméterben átadott érték nem lesz figyelembe véve és a teljes összeg feloldásra kerül a vásárló számláján.)</p></td></tr></tbody></table>

#### **Mintakód**

Kétlépcsős tranzakció lezárása `Close` használatával:

{% code overflow="wrap" %}

```php
curl --url 'https://system-test.paymentgateway.hu/api/payment/' \
  --user 'sdk_test:86af3-80e4f-f8228-9498f-910ad' \
  --user-agent 'Close | merchant-store.com | PHP | 7.3.0' \
  --request 'POST' \
  --data 'method=Close' \
  --data 'json=
    {
        "TransactionId":"a4d6f6f27f2116da21da62d705dbd7ef",
        "Approved":"true"
    }'
```

{% endcode %}

### **API válasz paraméterek**

A `Close` kérés eredményét JSON formában válaszoljuk meg. A válasz a következő paramétereket tartalmazza:

<table data-full-width="true"><thead><tr><th width="240">Paraméter</th><th width="133">Típus</th><th>Érték</th><th>Leírás</th></tr></thead><tbody><tr><td><code>TransactionId</code></td><td>string<br><br>(32 karakter)</td><td>32 karakter hosszú md5 hash</td><td>A tranzakció azonosítója a <em>Nevogate</em> rendszerében.</td></tr><tr><td><code>ResultCode</code></td><td>string</td><td><p>Az eredménykód a következők egyike lehet:</p><ul><li>SUCCESSFUL</li></ul><p>Hiba esetén a következő eredménykódok jelölik a hiba okát a Nevogate rendszerében:</p><ul><li>InactiveStore</li><li>InactiveProvider</li><li>MissingParameter</li><li>MissingRemoteAddress</li><li>UnauthorizedAccess</li><li>UnauthorizedRemoteAddress</li><li>UnknownStore</li><li>UnknownTransaction</li><li>WrongApike</li><li>WrongParameter</li></ul><p>(Továbbá a szolgáltatókra vonatkozó specifikus eredménykódok is megjelenhetnek itt.)</p></td><td><p>Jelzi a végleges terhelés, vagy a befoglalt összeg feloldásának eredményét.</p><ul><li>SUCCESSFUL: a befoglalt összeg végleges terhelése, részterhelése vagy feloldása sikeres.</li></ul></td></tr><tr><td><code>ResultMessage</code></td><td>string</td><td>leírás</td><td>Az egyes <code>ResultCode</code> értékek szöveges magyarázata, hibaüzenet esetén.</td></tr><tr><td><code>Approved</code></td><td>boolean</td><td><ul><li>true</li><li>false</li></ul></td><td>Az <code>Close</code> hívás során megadott <code>Approved</code> paraméter értéke.</td></tr><tr><td><code>ApprovedAmount</code></td><td>number</td><td>értékét rendszerünk adja vissza</td><td><p>A terhelt összeg vagy részösszeg.</p><p>(Maximum értéke az előzetesen befoglalt összeg.)</p></td></tr><tr><td><code>ReservedAmount</code></td><td>number</td><td>vásárlás során kerül meghatározásra</td><td>A vásárlás során eredetileg befoglalt összeg.</td></tr><tr><td><code>ResponseId</code></td><td>integer</td><td>egyedi értékek</td><td>A válaszüzenet egyedi azonosítója a <em>Nevogate</em> rendszerében.</td></tr></tbody></table>

#### **Mintakód**

A fenti `Close` kérésre adott sikeres válasz:

{% code overflow="wrap" %}

```php
{
    "TransactionId": "a4d6f6f27f2116da21da62d705dbd7ef",
    "ResultCode": "SUCCESSFUL",
    "Approved": true,
    "ApprovedAmount": 100,
    "ReservedAmount": 100,
    "ResultMessage": null,
    "ResponseId": "3202109280600047705"
}
```

{% endcode %}
