# Tranzakció inicializálása (InitRP) (regisztrált fizetőeszközzel)

### Működés

Használja az inicializálás (`InitRP`) funkciót a rákövetkező fizetések létrehozásához, a korábbi referencia tranzakció azonosító használatával. A referencia azonosító megegyezik a fizetőeszköz regisztrációja során végrehajtott tranzakció azonosítójával (`TransactionId`). Ezt az azonosítót a regisztrált fizetési eszközök lekérdezése során is visszaadjuk `ReferenceTransactionId` néven, a `GetPaymentRegistrations` hívás válaszában. A referencia tranzakció azonosítójára hivatkozva, a rákövetkező tranzakciók már a fizetési eszköz adatainak ismételt megadása nélkül hozhatók létre.

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

* Adja át a `ReferenceTransactionId` paramétert a rákövetkező fizetéshez.
* 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)](/ismetlodo-fizetes-recurring-payment/bankkartya-es-mobiltarca/azonnali-terheles/rakoevetkezo-fizetes-regisztralt-fizetoeszkoezzel/eros-uegyfel-hitelesites-psd2-sca.md)
* Tárolja le az `InitRP` 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=startRP)

{% 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.\
\
A regisztrált fizetőeszköz adatainak lekérdezéséről és a `GetPaymentRegistrations` hívásról a következő hivatkozáson olvashat további részleteket:

[Fizetőeszköz-regisztráció lekérdezése](/ismetlodo-fizetes-recurring-payment/regisztralt-fizetoeszkoez-kezelese/fizetoeszkoez-regisztracio-lekerdezese.md)
{% endhint %}

{% hint style="warning" %}
A sikeres inicializálást (`InitRP` hívás) követően a tranzakciót egy `StartRP` hívással kell elindítani.\
\
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>InitRP</code></td><td><code>POST</code></td><td>method=<code>InitRP</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>Paraméter</th><th width="141">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>ReferenceTransactionId</code></td><td>string</td><td>32 karakter hosszú md5 hash</td><td>A fizetőeszköz-regisztrációhoz kapcsolódó tranzakció azonosítója a <em>Nevogate</em> rendszerében.</td></tr><tr><td><code>ResponseUrl</code></td><td>string<br><br>(255 karakter)</td><td>szabadon választható</td><td>Ha fizetési folyamat végén a tranzakció státusza PENDING, akkor a tranzakció végleges státuszának beálltakor, aszinkron módon meghívásra kerül az itt átadott URL.</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/MBHcT5s4dUCo2TN4HAct">URL értesítés</a>).</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/CcvsJGQA8ulUi3sVMHyR">PSD2/SCA</a>).</td></tr></tbody></table>

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

<table data-full-width="true"><thead><tr><th>Paraméter</th><th width="141">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>egyedi értékek</td><td><p>A tranzakció bruttó végösszege (az összeg amit a vásárló kifizet).<br></p><p>Amennyiben nincs megadva, úgy a referencia tranzakciónál megadott érték kerül beállításra.</p></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>A fizetés devizaneme.<br><br>Értéke meg kell, hogy egyezzen a referencia tranzakciónál megadott értékkel.<br><br>Amennyiben nincs megadva, úgy a referencia tranzakciónál megadott érték kerül beállításra.</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>UserId</code></td><td><code>UserId</code></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, amelyre a korábbi fizetőeszköz-regisztráció végrehajtásra került.<br><br>Amennyiben nincs megadva, úgy a referencia tranzakciónál megadott érték kerül beállításra.</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**

Rákövetkező tranzakció inicializálása `InitRP` 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 'InitRP | merchant-store.com | PHP | 7.3.0' \
  --request 'POST' \
  --data 'method=InitRP' \
  --data 'json=
    {
        "StoreName":"sdk_test",
        "ReferenceTransactionId":"783593c87fee4d372f47f53840028682",
        "ResponseUrl":"https://demo.nevogate.com/response.php",
        "NotificationUrl":"https://www.notification.url/",
        "Amount":200,
        "Currency":"HUF",
        "OrderId":"TEST-ORDER-ID-REG",
        "UserId":"TEST-USER-ID-REG"
    }'
```

{% endcode %}

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

Az `InitRP` 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>Paraméter</th><th width="91">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.</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": "90866b50774d8341be49c1aea1ede5a6",
    "ResultCode": "SUCCESSFUL",
    "ResultMessage": null,
    "ResponseId": "3202109280600047718"
}
```

{% endcode %}


---

# 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.nevogate.com/ismetlodo-fizetes-recurring-payment/bankkartya-es-mobiltarca/azonnali-terheles/rakoevetkezo-fizetes-regisztralt-fizetoeszkoezzel/tranzakcio-inicializalasa-initrp-regisztralt-fizetoeszkoezzel.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.
