> 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/fizetoeszkoz-verifikacio/bankkartya-es-mobiltarca/verifikacio-inicializalasa-init.md).

# Verifikáció inicializálása (Init)

### Működés

Használja az inicializálás (`Init`) funkciót egy új bankkártya-verifikáció 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 tranzakció azonosítót is (`TransactionId`), majd visszaadja ezt az azonosítót a kereskedő oldalának.

Verifikáció inicializálása során figyeljen a következőkre:

* **Ne adjon meg összeget** az `Init` kérés indítása során.
* Adja meg a kereskedő rendszerében tárolt, **egyedi** `UserId` paramétert **(megadása fizetőeszköz-verifiká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).
* Használjon erős ügyfél-hitelesítést (*PSD2-SCA*) a vásárló adatainak átadásához. Erről a következő oldalon olvashat részletesebben: [Erős ügyfél-hitelesítés (PSD2/SCA)](/fizetoeszkoz-verifikacio/bankkartya-es-mobiltarca/eros-uegyfel-hitelesites-psd2-sca.md)
* Tárolja le az `Init` kérésre visszaadott 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 %}

A fizetőeszköz-verifikáció 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 %}

{% hint style="warning" %}
Raiffeisen vPos szolgáltató esetén a fizetőeszköz regisztráció kizárólag abban az esetben lesz sikeres, amennyiben a fizető felületen megjelenő "Kártyaadatok biztonságos mentése" jelölőnégyzetet a vásárló bejelöli. Ennek elmúlasztása a tranzakció eredményét nem befolyásolja, de a regisztrált fizetőeszköz érvénytelen lesz. &#x20;
{% endhint %}

{% hint style="warning" %}
GoPay szolgáltató esetén a fizetőeszköz regisztráció kizárólag későbbi terhelés (kétlépcsős fizetés) esetén lehetséges. Az ilyen típusú fizetésekhez kötelezően át kell adni az AutoCommit = "false" értéket.
{% 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="280">Paraméter</th><th width="145">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>GoPay</li><li>GP (<em>Global Payments</em>)</li><li>RaiffeisenUPC</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: verifikáció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/8ZmW0IydOUGSo8avGvXw">URL értesítés</a>).</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>CIT</li><li>MIT</li></ul></td><td><p>Meghatározza a (PSD2 szabványos) fizetőeszköz-regisztráció típusát.</p><ul><li>CIT: a rákövetkező tranzakciók a vásárló által indított egykattintásos (One-click) fizetést eredményeznek</li><li>MIT: a rákövetkező tranzakciók a kereskedő által indított fizetéseket eredményeznek</li></ul><p>Raiffeisen vPos fizetési szolgáltató esetén kizárólag MIT típusú tranzakció hozható létre.</p></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/iTkcnVcJ4wAvXtSxOgGw">PSD2/SCA</a>).<br><br>Verifikáció esetén a felhasználás alapú MIT fizetéstípushoz (<em>OnDemand</em>) hasonlóan kell a <code>RecurringPayment</code> objektumot átadni. További részletek: <a href="/pages/uVhBOuCGOLy2qgZ57XJb">MIT fizetéstípus adatai</a></td></tr></tbody></table>

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

<table data-full-width="true"><thead><tr><th width="282">Paraméter</th><th width="142">Típus</th><th>Érték</th><th>Leírás</th></tr></thead><tbody><tr><td><code>Amount</code></td><td>number</td><td>0</td><td>Verifikációhoz ne adja át az <code>Amount</code> paramétert, vagy átadás esetén az értéke legyen nulla.</td></tr><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><br>Meghatározza a verifikációra hivatkozó rákövetkező tranzakciók pénznemét.<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 verifikációs (fizetési) felület nyelve.</td></tr><tr><td><code>AutoCommit</code></td><td>string</td><td><ul><li>“true” (alapért.)</li><li>"false"</li></ul></td><td><p>Jelzi, hogy a bank azonnal vagy később hajtja végre a tranzakciót.<br></p><p>Azonnali terhelés esetén a paraméter átadása elhagyható, ilyenkor a tranzakciót azonnal végrehajtja a bank.</p></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**

Verifiká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":"GP",
        "ResponseUrl":"https://demo.nevogate.com/response.php",
        "Currency":"HUF",
        "OrderId":"TEST-ORDER-ID-CARD-VERIFICATION",
        "UserId":"TEST-USER-ID-CARD-VERIFICATION",
        "PaymentRegistration":true,
        "PaymentRegistrationType":"CIT",
        "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="263">Paraméter</th><th width="114">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></td><td><p>Jelzi a verifikáció inicializálás eredményét.<br><br>Sikertelen inicializálás esetén jelzi a hiba okát.</p><p><br>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 verifikáció inicializálásra adott válasz:

{% code overflow="wrap" %}

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

{% endcode %}
