# Fizetési folyamat (rákövetkező fizetés)

A rákövetkező fizetési folyamat leírását három részre bontottuk a könnyebb átláthatóság miatt. Az elválasztás alapját a kereskedő által indított három fő lépés adja, ezek a lépések a következők:

A. **`InitRP`** - rákövetkező, kétlépcsős tranzakció inicializálása a referencia tranzakció segítségével\
B. **`StartRP`** - rákövetkező, kétlépcsős tranzakció indítása (a vásárló itt nincs jelen)\
C. **`Close`** - rákövetkező, kétlépcsős tranzakció lezárása

{% hint style="info" %}
Az A és B lépések együttesen adják ki a teljes fizetési folyamatot, ami a tranzakciós összeg zárolásával végződik.

A C lépés az első két lépést követően később is elvégezhető, de ennek hatására fejeződik be a tranzakció terheléssel, vagy a zárolt összeg feloldásával.

A felsorolt pontok egy sikeres fizetési folyamatot írnak le.
{% endhint %}

#### **A. `InitRP` - rákövetkező, kétlépcsős tranzakció inicializálása a referencia tranzakció segítségével**

1. A kereskedő rendszere a referencia tranzakcióra hivatkozva új fizetési tranzakciót kezdeményez rendszerünkben.
2. Rendszerünk hitelesíti a beérkezett kérést (autentikáció),
3. ezután rendszerünk egy egyedi tranzakció azonosítót (`TransactionId`) küld vissza a kereskedőnek (sikeres hitelesítés esetén).
4. A kereskedő oldala tárolja az egyedi tranzakció azonosítót.

Hitelesítés (autentikáció) során rendszerünk a következőket ellenőrzi:

* a kereskedő boltja szerepel rendszerünkben a megadott boltnév (`StoreName`) és API kulcs (`ApiKey`) párossal
* a kereskedő boltja szerepel rendszerünkben a megadott boltnév (*StoreName*) és API kulcs (*ApiKey*) párossal (opcionálisan rendszerünk a kereskedő IP címét is ellenőrizheti, a kiegészítő IP cím ellenőrzést a kereskedő külön igényelheti munkatársainktól)
* a kereskedő boltjához hozzá van rendelve a tranzakcióban szereplő szolgáltatás, pénznem és végrehajtási mód (a szolgáltatás ebben az esetben a fizetési szolgáltatót takarja, a végrehajtási mód pedig az azonnali vagy későbbi terhelést fedi)
* a kereskedő boltjánál engedélyezve van az ismétlődő fizetés funkció
* a megadott referencia tranzakcióhoz aktív fizetőeszköz-regisztráció tartozik

{% hint style="info" %}
A `TransactionId` olyan egyedi azonosító melyet a *Nevogate* rendszere hoz létre. Segítségével egy tranzakció egyértelműen beazonosítható rendszerünkben és a *PayAdmin* felületén. Fontos, hogy a `TransactionId` nem azonos a `ProviderTransactionId` azonosítóval. Utóbbi az egyes fizetési szolgáltatók saját rendszereiben azonosítja be az adott tranzakciót.
{% endhint %}

#### **B. `StartRP` - rákövetkező, kétlépcsős tranzakció indítása referencia tranzakció segítségével**

1. Rendszerünk ellenőrzi a referencia tranzakció azonosítót és elindítja a tranzakciót a fizetési szolgáltató rendszerében (sikeres ellenőrzés esetén).
2. Rendszerünk lekérdezi a tranzakció eredményét a fizetési szolgáltatótól, majd beállítja a tranzakció státuszát a fizetési szolgáltató válasza alapján.
3. Ezután rendszerünk visszaadja a tranzakció eredményét.
4. Ezzel párhuzamosan rendszerünk a tranzakció végstátuszának beállítását követően aszinkron módon meghívja az inicializáció (`InitRP`) során átadott `NotificationUrl` címet is.
5. A kereskedő oldala tárolja a tranzakció státuszát és értesíti a vásárlót a tranzakció eredményéről.

{% hint style="warning" %}
Figyeljen arra, hogy minden `NotificationUrl` hívást követően indítson egy `Result` kérést rendszerünk felé.
{% endhint %}

**D. `Close` - rákövetkező, kétlépcsős tranzakció lezárása**

1. A kereskedő kezdeményezi a tranzakció lezárását a tranzakció azonosító segítségével (`TransactionId`) és a lezárás módjának megadásával, mely lehet:\
   • a teljes befoglalt összeg terhelése\
   • a befoglalt összeg részterhelése (és a maradék összeg feloldása)\
   • a teljes befoglalt összeg feloldása
2. Rendszerünk hitelesíti a beérkezett kérést, majd továbbítja azt a fizetési szolgáltató felé, aki végrehajtja a tranzakció lezárását.
3. Ezután rendszerünk megválaszolja a lezárás eredményét a kereskedő oldalának (sikeres hitelesítés esetén).
4. A kereskedő oldala tárolja a kapott választ és értesíti a vásárlót a tranzakció eredményéről.


---

# 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/kesobbi-terheles-ketlepcsos-fizetes/rakoevetkezo-fizetes-regisztralt-fizetoeszkoezzel/fizetesi-folyamat-rakoevetkezo-fizetes.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.
