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

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

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

{% hint style="info" %}
A kettébontás ellenére a felsorolt pontok együttesen adják ki a teljes fizetési folyamatot. A felsorolt pontok egy sikeres fizetési folyamatot írnak le.
{% endhint %}

#### **A. `InitRP` - rákövetkező tranzakció inicializálása meglévő referencia tranzakció segítségével**

1. A kereskedő oldala 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
* az API kérés a kereskedő által előre megadott IP címről érkezik (az engedélyezett IP címeket a *PayAdmin* felületén adhatja meg a megfelelő jogosultsággal rendelkező felhasználó)
* a kereskedő boltjához hozzá van rendelve a tranzakcióban szereplő szolgáltatás, devizanem é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ő tranzakció indítása meglévő 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 %}


---

# 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/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.
