# Fizetési folyamat

A 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ő boltjából indított három fő lépés adja, ezek a lépések a következők:

A. **`Init`** - a tranzakció inicializálása\
B. **`Start`** - a tranzakció indítása és a vásárló átirányítása a fizetési szolgáltatóhoz\
C. **`Result`** - a tranzakció eredményének lekérése rendszerünkből

{% hint style="info" %}
A hármas felosztá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. `Init` - a tranzakció inicializálása**

1. A kereskedő oldala rögzíti a vásárló elektronikus fizetési szándékát,
2. ezután a kereskedő oldala új fizetési tranzakciót kezdeményez rendszerünkben.
3. Rendszerünk hitelesíti a beérkezett kérést (autentikáció),
4. ezután rendszerünk egy egyedi tranzakció azonosítót (`TransactionId`) küld vissza a kereskedőnek (sikeres hitelesítés esetén).
5. 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 jelöli. SZÉP Kártyák esetében ez csak azonnali lehet.)

{% 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. `Start` - a tranzakció indítása és a vásárló átirányítása a fizetési szolgáltatóhoz**

1. A kereskedő oldala átirányítja a vásárlót rendszerünkbe (HTTP Redirect) a tárolt tranzakció azonosítóval.
2. Rendszerünk ellenőrzi a tranzakció azonosítót és átirányítja a vásárlót a fizetési szolgáltatóhoz (sikeres ellenőrzés esetén).
3. A vásárló megadja a SZÉP Kártya adatait a fizetési szolgáltató oldalán.
4. A fizetési szolgáltató visszairányítja a vásárlót rendszerünkbe, a fizetés befejezése után.
5. Rendszerünk lekérdezi a tranzakció eredményét a fizetési szolgáltatótól, majd beállítja a tranzakció végleges státuszát a fizetési szolgáltató válasza alapján,
6. ezután rendszerünk a tranzakció azonosítóval visszairányítja a vásárlót a kereskedő oldalára (az inicializáció (`Init`) során megadott visszatérési URL címre (`ResponseUrl`)).
7. 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ó (`Init`) során átadott `NotificationUrl` címet is.

{% hint style="info" %}
SZÉP Kártyás fizetés esetén nincs 3DS hitelesítés.
{% endhint %}

#### **C. `Result` - a tranzakció eredményének lekérése rendszerünkből**

1. A kereskedő oldala a `ResponseUrl` hívás hatására egy tranzakció azonosítót tartalmazó `Result` kéréssel lekérdezi a tranzakció eredményét rendszerünkből.
2. Rendszerünk ellenőrzi a tranzakció azonosítót,
3. ezután rendszerünk megválaszolja a tranzakció státuszát a kereskedő oldalának (sikeres ellenőrzés esetén).
4. 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 is 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/egyszeri-fizetesek-one-time-payment/szep-kartya/fizetesi-folyamat.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.
