> For the complete documentation index, see [llms.txt](https://docs.nevogate.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.nevogate.com/ismetlodo-fizetes-recurring-payment/bankkartya-es-mobiltarca/kesobbi-terheles-ketlepcsos-fizetes/fizetes-fizetoeszkoez-regisztracioval/tranzakcio-inicializalasa-init-fizetoeszkoez-regisztraciohoz.md).

# Tranzakció inicializálása (Init) (fizetőeszköz-regisztrációhoz)

### Működés

Használja az inicializálás (`Init`) funkciót fizetőeszköz-regisztrációjához és egy új fizetési tranzakció kezdeményezésére. Az inicializálás során a kereskedő oldala átadja a tranzakció és a vásárló adatait rendszerünknek. Ennek hatására rendszerünk létrehoz egy új tranzakciós rekordot a kereskedőtől kapott adatok felhasználásával. Sikeres inicializálás esetén az új rekord mellett rendszerünk létrehoz egy új referencia tranzakció azonosítót is (`TransactionId`), majd visszaadja ezt az azonosítót a kereskedő oldalának.

Az inicializálás során figyeljen a következőkre:

* Adja át az `AutoCommit` paramétert `"false"` értékkel későbbi terhelés engedélyezéséhez.
* Adja meg a kereskedő rendszerében tárolt, **egyedi** `UserId` paramétert **(megadása fizetőeszköz-regisztrációnál kötelező)**. Az egyes vásárlók az inicializálás során átadott `UserId` paraméter segítségével azonosíthatók be (egy vásárló akár több fizetőeszközt is regisztrálhat).
* Adja át a `PaymentRegistration` és a `PaymentRegistrationType` paramétereket a sikeres fizetőeszköz-regisztrációhoz.
* Használjon erős ügyfél-hitelesítést (PSD2/SCA) a vásárló adatainak átadásához és a MIT fizetési szabályok meghatározásához, a következők segítségével:
  * fizetés gyakorisága, amit a `Frequency` paraméter szabályoz
  * fizetés összege, ami az `AmountIndicator` paraméterrel adható meg (jelzi, hogy a rákövetkező tranzakció összege megegyezik a referencia tranzakció összegével, vagy az összeg tetszőleges lehet)
  * regisztráció lejáratának dátuma, amit az `ExpireDate` paraméter határoz meg (rákövetkező tranzakciók a paraméterben megadott időpontig hozhatók létre)
* Tárolja le az `Init` kérésre visszaadott referencia tranzakció azonosítót, mivel később ennek segítségével hivatkozhat az adott tranzakcióra.

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

{% hint style="info" %}
Az inicializációban a fizetési szolgáltatók nem vesznek részt, ez a folyamat kizárólag a kereskedő oldala és a *Nevogate* rendszere között zajlik.
{% endhint %}

{% hint style="warning" %}
Mobilalkalmazás fejlesztésnél biztosítsa, hogy az inicializációra a szerver oldalon kerüljön sor. Biztonsági okokból az **inicializáció nem történhet meg a mobilalkalmazásban**.
{% endhint %}

Az ismétlődő fizetési tranzakciók esetén a Nevogate a kereskedőnél megvalósult fizetőeszköz-regisztráció céljából indított fizetési tranzakció adatai alapján egyedi tranzakciós lenyomatot, ún. **referencia tranzakciót hoz létre**. Ezt egyértelműen hozzárendeli a kereskedő által a tranzakció során átadott `UserId` paraméterhez, amely a vásárló egyedi azonosítására szolgál a kereskedő rendszerén belül.

{% hint style="danger" %}
A kereskedőnek a funkció igénybevétele során biztosítania kell, hogy **saját rendszerén belül minden vásárlójához egyedi** `UserId`**-t rendeljen**. Kiemelt fontosságú, hogy egy már kiosztott azonosító semmilyen körülmények között ne kerülhessen újra hozzárendelésre egy másik vásárlóhoz. Amennyiben ez nem teljesül, kritikus adatintegritási és biztonsági sebezhetőség jön létre: ha két vagy több vásárlóhoz ugyanaz az `UserId` tartozik, az egyikük által regisztrált fizetőeszközzel egy másik vásárló tranzakciói is teljesülhetnek.

A fenti utasítások be nem tartásából eredő hibáért és az ebből fakadó esetleges károkért a Nevogate-et felelősség nem terheli, azért **kizárólag a kereskedő felelős**.
{% endhint %}

### **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>Init</code></td><td><code>POST</code></td><td>method=<code>Init</code><br><br>json={JSON encode-olt paraméterek}</td></tr></tbody></table>

{% hint style="info" %}
Az API kérésekhez kapcsolódó paramétereket két táblázatba soroljuk fel a könnyebb átláthatóság kedvéért. Természetesen az egyes paraméterek megjelenhetnek ugyanabban az API kérésben.

Az API paraméterek felosztása a következő:

* kötelező paraméterek
* opcionális paraméterek
  {% endhint %}

#### **Kötelező paraméterek**

<table data-full-width="true"><thead><tr><th width="277">Paraméter</th><th width="143">Típus</th><th>Érték</th><th>Leírás</th></tr></thead><tbody><tr><td><code>StoreName</code></td><td>string</td><td>A <em>Nevogate</em> szerződésben kerül meghatározásra.</td><td>Rendszerünkben tárolt egyedi bolt azonosító.</td></tr><tr><td><code>ProviderName</code></td><td>string</td><td><ul><li>Barion2</li><li>Borgun2 (Teya RPG)</li><li>GP (<em>Global Payments</em>)</li><li>KHB</li><li>OTPSimple (<em>SimplePay</em>)</li><li>PayPalRest</li><li>PayURest</li><li>Saferpay (Worldline)</li></ul></td><td>A tranzakcióhoz kiválasztott fizetési szolgáltató.</td></tr><tr><td><code>ResponseUrl</code></td><td>string<br><br>(255 karakter)</td><td>szabadon választható</td><td>Visszatérési URL: tranzakciót követően, rendszerünk erre a címre irányítja vissza a vásárlót.</td></tr><tr><td><code>NotificationUrl</code></td><td>string<br><br>(255 karakter)</td><td>szabadon választható</td><td>Rendszerünk ezen a címen értesíti a kereskedőt a tranzakció státuszának változásáról (<a href="/pages/nto86q44GKdK8VKE3GUk">URL értesítés</a>).</td></tr><tr><td><code>Amount</code></td><td>number</td><td>szabadon választható</td><td>Bruttó végösszeg amit a vásárló kifizet.<br><br>(Magyar forint (HUF) esetén értéke egész szám.)</td></tr><tr><td><code>AutoCommit</code></td><td>string</td><td><ul><li>"false"</li></ul></td><td>Jelzi, hogy a vásárló kétlépcsős fizetést indít és a megadott összeget a bank befoglalhatja a vásárló számláján.</td></tr><tr><td><code>UserId</code></td><td>string<br><br>(255 karakter)</td><td>egyedi értékek<br><br>(kivéve e-mail címek, illetve személyes adatok)</td><td>A vásárló azonosítója a kereskedő áruházában.</td></tr><tr><td><code>PaymentRegistration</code></td><td>boolean</td><td><ul><li>true</li></ul></td><td>Jelzi a fizetőeszköz-regisztráció indítását.</td></tr><tr><td><code>PaymentRegistrationType</code></td><td><p>string<br></p><p>(3 karakter)</p></td><td><ul><li>MIT</li></ul></td><td>Meghatározza a (PSD2 szabványos) fizetőeszköz-regisztráció típusát.</td></tr><tr><td><code>Info</code></td><td>string</td><td>egyedi értékek</td><td>A vásárlás és a vásárló adatai az erős ügyfél-hitelesítéshez (<a href="/pages/MZDLfcBAbLGj7mfK9c1t">PSD2/SCA</a>).</td></tr></tbody></table>

#### **Opcionális paraméterek**

<table data-full-width="true"><thead><tr><th width="277">Paraméter</th><th width="141">Típus</th><th>Érték</th><th>Leírás</th></tr></thead><tbody><tr><td><code>Currency</code></td><td>string<br><br>(3 karakter)</td><td><ul><li>HUF (alapért.)</li><li>EUR</li><li>USD</li><li>...</li></ul></td><td><p>A fizetés devizaneme.<br></p><p>(Értékei fizetési szolgáltatónként és szerződésenként eltérőek lehetnek.)</p></td></tr><tr><td><code>OrderId</code></td><td>string<br><br>(255 karakter)</td><td>egyedi értékek<br><br>(kivéve e-mail címek, illetve személyes adatok)</td><td><p>A megrendelés azonosítója a kereskedő áruházában.</p><p>(Lehetővé teszi a tranzakció visszakeresését, használata erősen javasolt.)</p></td></tr><tr><td><code>Language</code></td><td>string<br><br>(2 karakter)</td><td><ul><li>HU (alapért.)</li><li>EN</li><li>DE</li><li>...</li></ul><p>(ISO 639-1 alapján)</p></td><td>A fizetési felület nyelve.</td></tr><tr><td><code>Extra</code></td><td>string</td><td>egyedi értékek</td><td>Kiegészítő vagy szolgáltató specifikus adatok. (<a href="/pages/XaOHnljbNm5MGxPqLjdh">extra paraméter használata</a>)</td></tr><tr><td><code>PaymentMethods</code></td><td>array</td><td><p></p><ul><li>apple_pay</li><li>google_pay</li><li>bank_card</li><li>...</li></ul></td><td><p>Megadható egyes szolgáltatók esetében, hogy mely fizetési módok legyenek engedélyezve.</p><p></p><p>Amennyiben ez a paraméter üresen marad, abban az esetben a fizetési szolgáltató oldalán az összes elérhető fizetési mód megjelenítésre kerül.</p><p></p><p>A fizetési módok kényszerített megjelenítését nem minden fizetési szolgáltató támogatja.</p><p><a href="https://docs.nevogate.com/segedlet/fizetesi-szolgaltato-specifikus-adatok">Az elérhető fizetési módokkal kapcsolatos információk a Fizetési szolgáltató specifikus adatoknál találhatók.</a></p></td></tr><tr><td><code>ModuleName</code></td><td>string<br><br>(32 karakter)</td><td>egyedi értékek</td><td>A kereskedő oldalán használt szervizcsomag, programnyelv, keretrendszer, modul, stb. megnevezése.</td></tr><tr><td><code>ModuleVersion</code></td><td>string<br><br>(8 karakter)</td><td>verziószám</td><td>A kereskedő oldalán használt szervizcsomag, programnyelv, keretrendszer, modul, stb. verziószáma.</td></tr></tbody></table>

#### **Mintakód**

Fizetőeszköz-regisztráció inicializálása `Init` kérés 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 'Init | merchant-store.com | PHP | 7.3.0' \
  --request 'POST' \
  --data 'method=Init' \
  --data 'json=
    {
        "StoreName":"sdk_test",
        "ProviderName":"Borgun2",
        "ResponseUrl":"https://demo.nevogate.com/response.php",
        "NotificationUrl":"https://www.notification.url/",
        "Amount":100,
        "AutoCommit":"false",
        "Currency":"HUF",
        "OrderId":"TEST-ORDER-ID",
        "UserId":"TEST-USER-ID",
        "PaymentRegistration":true,
        "PaymentRegistrationType":"MIT",
        "PaymentMethods":["bank_card", "google_pay"]
    }'
```

{% endcode %}

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

Az `Init` 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="265">Paraméter</th><th width="101">Típus</th><th>Érték</th><th>Leírás</th></tr></thead><tbody><tr><td><code>TransactionId</code></td><td>string</td><td><p>Sikeres inicializálás:</p><ul><li>32 karakter hosszú md5 hash</li></ul><p>Sikertelen inicializálás:</p><ul><li>null</li></ul></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>Sikeres inicializálás:</p><ul><li>SUCCESSFUL</li></ul><p>Sikertelen inicializálás:</p><ul><li>InactiveStore</li><li>InactiveProvider</li><li>MissingParameter</li><li>MissingRemoteAddress</li><li>UnauthorizedAccess</li><li>UnauthorizedRemoteAddress</li><li>UnknownParameter</li><li>UnknownProvider</li><li>UnknownProviderForStore</li><li>UnknownStore</li><li>WrongApikey</li><li>WrongParameter</li><li>WrongProviderSettings</li></ul><p>Illetve további szolgáltató specifikus eredménykódok.</p></td><td><p>Jelzi a tranzakció inicializálás eredményét.<br><br>Sikertelen inicializálás esetén jelzi a hiba okát.<br></p><p>A felsoroltakon kívül további szolgáltató specifikus eredménykódokat is tartalmazhat.</p></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.</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**

Sikeres inicializálásra adott válasz:

{% code overflow="wrap" %}

```php
{
    "TransactionId": "992c8e75435e6d4dfdf6415f0714cae8",
    "ResultCode": "SUCCESSFUL",
    "ResultMessage": null,
    "ResponseId": "3202109280600047717"
}
```

{% endcode %}
