> For the complete documentation index, see [llms.txt](https://docs.ecommerce.seb.ee/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.ecommerce.seb.ee/seb-docs-draft/seb-docs-public-et/juhendid/liivakast/teststsenaariumid/integratsioon-ja-tellimuste-kasitlemine.md).

# Integratsioon ja tellimuste käsitlemine

Veenduge, et kaupmehe enda süsteem käsitleb makseid õigesti.

## Edukas makse

Kasutage liivakasti maksemeetodeid, et kontrollida, kas teie integratsioon käsitleb edukalt sooritatud makseid õigesti. Uuendage tellimusi ja käivitage täitmine ainult üks kord.

Kasutage kinnitatud makseolekut tõeallikana. Ärge toetuge brauseri ümbersuunamistele ega kliendi naasmisele teie veebisaidile.

### Kuidas edukalt sooritatud makseid tuleks töödelda

Pidage makset edukaks alles siis, kui selle lõppolek on kinnitatud Payment API kaudu.

1. A **Veebikonksu (nimetatakse ka tagasikutse teavitusteks)** on vastu võetud.
2. Makseolek kontrollitakse Payment API abil.
3. Tellimuse olek värskendatakse.
4. Täitmine käivitatakse.

Soovitatav protsess:

```
Ootel tellimus
    ↓
Klient sooritab makse
    ↓
Webhook on vastu võetud
    ↓
GET /egw/v1/payments/{paymentId}
    ↓
Kontrollige makse lõppolekut
    ↓
Värskendage tellimuse olekut
    ↓
Täitke tellimus üks kord
```

Kui Webhooki ei saa edastada, viige ootel maksed Payment API kaudu vastavusse. Ärge jätke kinnitatud makset töötlemata ainult seetõttu, et selle Webhook jäi saamata.

### Töötlemiseks

Erinevad maksemeetodid võivad jõuda erinevate edukate olekuteni.

| Maksemeetod  | Edukas olek   |
| ------------ | ------------- |
| Kaart        | `Kasseeritud` |
| Google Pay   | `Kasseeritud` |
| Apple Pay    | `Kasseeritud` |
| Click to Pay | `Kasseeritud` |
| Pay by Bank  | `Arveldatud`  |

Kontrollige lõppolekut enne tellimuse värskendamist.

### Kaart, Google Pay, Apple Pay ja Click to Pay

Klient viib makseprotsessi edukalt lõpuni.

#### Valideerimine

1. Looge uus tellimus olekuga Ootel.
2. Sooritage edukas makse.
3. Kontrollige, et Webhook on vastu võetud.
4. Tõmmake viimased makseandmed.

   ```http
   GET /egw/v1/payments/{paymentId}
   ```
5. Kontrollige makseolekut.
6. Värskendage tellimuse olekut.
7. Täitke tellimus.

Näide:

```http
GET https://sandbox-api.ecomm.api.tietoevry.com/egw/v1/payments/019fffc4-17c4-7922-8be4-23cc21348aa1
```

#### Oodatav tulemus

* Makseolek on `Kasseeritud`.
* Webhook on vastu võetud.
* Makse ID on salvestatud.
* Tellimuse olek muutub Ootel-olekust Tasutuks.
* Täitmine käivitub täpselt üks kord.
* Korduv täitmine ei käivitu.

### Pay by Bank

Klient sooritab Pay by Bank makse edukalt.

#### Valideerimine

1. Looge uus tellimus olekuga Ootel.
2. Sooritage edukas Pay by Bank makse.
3. Kontrollige, et Webhook on vastu võetud.
4. Tõmmake makseandmed Payment API abil.
5. Kontrollige makse lõppolekut.
6. Värskendage tellimuse olekut.
7. Täitke tellimus.

#### Oodatav tulemus

* Makseolek on `Arveldatud`.
* Webhook on vastu võetud.
* Makse ID on salvestatud.
* Tellimuse olek muutub Ootel-olekust Tasutuks.
* Täitmine käivitub täpselt üks kord.
* Korduv täitmine ei käivitu.

### Makse kinnitamise näide

Eduka makse vastusenäide:

```json
{
  "paymentId": "019fffc4-17c4-7922-8be4-23cc21348aa1",
  "paymentStatus": "CAPTURED",
  "orderNumber": "09a4efab-1365-409d-bb5f-a03a481c0b0d",
  "paidAmount": {
    "currency": "EUR",
    "amount": "38.00"
  }
}
```

Veenduge, et:

* `paymentId` on olemas.
* `makseolek` sisaldab oodatud edukat olekut.
* `tasutud summa` vastab tellimuse summale.
* `tellimuse number` seostub kaupmehe tellimusega.

### Kaupmehe kontrollnimekiri

Veenduge, et:

* Webhookid võetakse edukalt vastu.
* Payment API kontrollib makseolekut:

  ```http
  GET /egw/v1/payments/{paymentId}
  ```
* Makse ID on salvestatud.
* Makse lõppolek salvestatakse.
* Tellimuse olek muutub Ootel-olekust Tasutuks.
* Täitmine käivitub täpselt üks kord.
* Korduvad Webhookid ei põhjusta korduvat täitmist.
* Korduvad Webhookid ei loo korduvaid saadetisi.
* Korduvad Webhookid ei genereeri korduvaid klienditeavitusi.
* Ootel maksed viiakse vastavusse, kui Webhooki edastus ebaõnnestub.

## 3DS autentimine

Kasutage liivakasti kaardimakseid, et kontrollida maksevoolusid, mis nõuavad EMV 3DS autentimist.

### Kuidas EMV 3DS mõjutab makseolekut

EMV 3DS-il ei ole eraldi makseolekut. Makse jääb `Algatatud` seniks, kuni klient lõpetab kassaprotsessi ja suhtleb 3DS-kinnitusega.

Makse tulemus määratakse pärast autentimise ja kaardi väljastaja autoriseerimise lõppemist.

| Olek             | Kirjeldus                                                                |
| ---------------- | ------------------------------------------------------------------------ |
| `Autoriseeritud` | 3DS autentimine õnnestus ja kaheastmeline autoriseerimine kiideti heaks. |
| `Kasseeritud`    | 3DS autentimine õnnestus ja ostumakse kiideti heaks.                     |
| `Ebaõnnestunud`  | Autentimine või kaardi väljastaja autoriseerimine ebaõnnestus.           |
| `Hüljatud`       | Klient ei lõpetanud 3DS-kinnitust enne selle aegumist.                   |
| `Tühistatud`     | Makse tühistati enne lõpuleviimist.                                      |

### Edukas autentimine

Klient lõpetab 3DS-kinnituse ja makse kiidetakse heaks.

#### Valideerimine

1. Looge uus tellimus olekuga Ootel.
2. Alustage kaardimakset, mis nõuab 3DS autentimist.
3. Lõpetage autentimine edukalt.
4. Kontrollige, et teie Webhooki lõpp-punkt saaks teavituse.
5. Tõmmake viimased makseandmed:

   ```http
   GET /egw/v1/payments/{paymentId}
   ```
6. Kontrollige lõppolekut, värskendage tellimust ja täitke see.

#### Oodatav tulemus

* Makse muutub olekust `Algatatud` väärtuseks `Kasseeritud`.
* Teie Webhooki lõpp-punkt saab teavituse.
* Kaupmehe süsteem salvestab makse ID.
* Payment API tagastab makse lõppoleku.
* Tellimuse olek muutub Ootel-olekust Tasutuks.
* Täitmine käivitub täpselt üks kord.

### Edukas autentimine kaheastmeliste maksetega

Mõned kaupmehed kasutavad eraldi autoriseerimis- ja kinnipüüdmistoiminguid. Edukas 3DS autentimine annab autoriseeritud makse. Hoidke tellimus olekus Ootel või reserveerige laoseis kuni kinnipüüdmise lõpuleviimiseni. Täitke tellimus alles pärast seda, kui makse jõuab `Kasseeritud`.

```
Algatatud
    ↓
3DS autentimine õnnestus
    ↓
Autoriseeritud
    ↓
Kinnipüüdmine
    ↓
Kasseeritud
```

#### Valideerimine

1. Looge uus tellimus olekuga Ootel.
2. Viige lõpule kaardimakse, mis nõuab 3DS autentimist.
3. Kontrollige, et makse jõuab `Autoriseeritud`.
4. Hoidke tellimus Ootel või reserveerige laoseis.
5. Kinnipüüdke makse:

   ```http
   PATCH /egw/v1/payments/{paymentId}/capture
   ```
6. Tõmmake viimased makseandmed.
7. Kontrollige, et makse jõuab `Kasseeritud`.
8. Värskendage tellimust ja täitke see.

#### Oodatav tulemus

* Makse muutub olekust `Algatatud` väärtuseks `Autoriseeritud`.
* Tellimus jääb olekusse Ootel kuni kinnipüüdmine õnnestub.
* Kinnipüüdmisnõue õnnestub.
* Makse muutub olekust `Autoriseeritud` väärtuseks `Kasseeritud`.
* Payment API kontrollib makseolekut.
* Tellimuse olek muutub Ootel-olekust Tasutuks.
* Täitmine käivitub täpselt üks kord.
* Korduvad kinnipüüdmised ei põhjusta korduvat täitmist.

### Autentimine ebaõnnestus

Klient ei läbi 3DS-kinnitust või kaardi väljastaja keeldub autoriseerimisest.

#### Valideerimine

1. Looge uus tellimus olekuga Ootel.
2. Alustage kaardimakset, mis nõuab 3DS autentimist.
3. Käivitage ebaõnnestunud autentimise stsenaarium.
4. Kontrollige, et teie Webhooki lõpp-punkt saaks teavituse.
5. Tõmmake viimased makseandmed Payment API abil.
6. Kontrollige makse lõppolekut.

#### Oodatav tulemus

* Makse muutub olekust `Algatatud` väärtuseks `Ebaõnnestunud`.
* Teie Webhooki lõpp-punkt saab teavituse.
* Tellimus jääb olekusse Ootel või Tasumata.
* Täitmist ei alustata.
* Saadetist ega arvet ei looda.
* Klient saab makset uuesti proovida.

### Autentimine katkestati

Klient lahkub autentimisvoost enne kinnituse lõpetamist. Makse muutub `Hüljatud` pärast seda, kui maksevärav rakendab ajalõpu- või aegumiskäsitlust.

#### Valideerimine

1. Looge uus tellimus olekuga Ootel.
2. Alustage kaardimakset, mis nõuab 3DS autentimist.
3. Sulgege brauser või lahkuge autentimislehelt.
4. Oodake Webhooki või viige ootel makse pärast kehtivat ajalõppu vastavusse.
5. Tõmmake viimased makseandmed Payment API abil.
6. Kontrollige, et lõppolek on `Hüljatud`.

#### Oodatav tulemus

* Makse muutub olekust `Algatatud` väärtuseks `Hüljatud` pärast ajalõpu- või aegumiskäsitlust.
* Tellimus jääb olekusse Ootel või Tasumata.
* Täitmist ei alustata.
* Saadetist ega arvet ei looda.

### Makse tühistatud

Klient tühistab makse enne lõpuleviimist.

#### Valideerimine

1. Looge uus tellimus olekuga Ootel.
2. Alustage kaardimakset, mis nõuab 3DS autentimist.
3. Tühistage makse.
4. Tõmmake makse Payment API abil.
5. Kontrollige makse lõppolekut.

#### Oodatav tulemus

* Makse muutub olekust `Algatatud` väärtuseks `Tühistatud`.
* Tellimus jääb olekusse Ootel või Tasumata.
* Täitmist ei alustata.
* Saadetist ega arvet ei looda.

### Kaupmehe kontrollnimekiri

Veenduge, et:

* Makse jääb `Algatatud` 3DS-voo ajal.
* Webhookid võetakse vastu ja töödeldakse.
* Payment API kontrollib makse lõppolekut:

  ```http
  GET /egw/v1/payments/{paymentId}
  ```
* Edukate maksete tulemuseks on `Autoriseeritud` või `Kasseeritud`.
* Ebaõnnestunud autentimise tulemuseks on `Ebaõnnestunud`.
* Lõpetamata autentimise tulemuseks on `Hüljatud`.
* Tühistatud maksete tulemuseks on `Tühistatud`.
* Tellimused täidetakse alles pärast eduka makse kinnitust.
* Ebaõnnestunud, katkestatud ja tühistatud maksed ei käivita kunagi täitmist.

{% hint style="warning" %}
Kasutage makseoleku kontrolliga Webhooke, et määrata makse tulemus. Ärge kunagi kasutage brauseri ümbersuunamist makse edukuse ainsa näitajana.
{% endhint %}

## Ebaõnnestunud maksed

Kasutage liivakasti maksemeetodeid, et kontrollida ebaõnnestunud, tühistatud ja lõpetamata maksete käsitlemist.

Pidage makset ebaõnnestunuks alles pärast selle lõppoleku kontrollimist Payment API kaudu.

Takistage tellimuse täitmine ebaõnnestunud maksete korral. Lubage kliendil vajaduse korral uuesti proovida.

### Kuidas ebaõnnestunud makseid tuleks töödelda

Kinnitage makse ebaõnnestumised Webhookide ja makseoleku kontrolli abil.

Soovitatav protsess:

```
Ootel tellimus
    ↓
Maksekatse
    ↓
Webhook on vastu võetud
    ↓
GET /egw/v1/payments/{paymentId}
    ↓
Kontrollige makse lõppolekut
    ↓
Hoidke tellimus tasumata
    ↓
Lubage uuesti proovida
```

### Ebaõnnestunud makse

Kaardi väljastaja lükkab makse tagasi või töötlemine ebaõnnestub.

#### Valideerimine

1. Looge uus tellimus olekuga Ootel.
2. Käivitage ebaõnnestunud makse stsenaarium.
3. Kontrollige, et Webhook on vastu võetud.
4. Tõmmake makseandmed:

   ```http
   GET /egw/v1/payments/{paymentId}
   ```
5. Kontrollige makse lõppolekut.
6. Vaadake tellimuse töötlemine üle.

#### Oodatav tulemus

* Makseolek on `Ebaõnnestunud`.
* Makse ID on saadaval.
* Webhook on vastu võetud.
* Tellimus jääb olekusse Ootel või Tasumata.
* Täitmist ei alustata.
* Saadetist ega arvet ei looda.
* Klient saab makset uuesti proovida.

### Tühistatud makse

Klient või kaupmees tühistab makse enne lõpuleviimist.

#### Valideerimine

1. Looge uus tellimus olekuga Ootel.
2. Alustage maksevoolu.
3. Tühistage makse.
4. Tõmmake makseandmed Payment API abil.
5. Kontrollige makse lõppolekut.

#### Oodatav tulemus

* Makseolek on `Tühistatud`.
* Tellimus jääb olekusse Ootel või Tasumata.
* Täitmist ei alustata.
* Saadetist ei looda.
* Klient saab alustada uut maksekatset.

### Katkestatud makse

Klient lahkub maksevoolust seda lõpetamata.

#### Valideerimine

1. Looge uus tellimus olekuga Ootel.
2. Alustage maksevoolu.
3. Lahkuge makse- või autentimislehelt enne lõpetamist.
4. Tõmmake makseandmed Payment API abil.
5. Kontrollige makse lõppolekut.

#### Oodatav tulemus

* Makseolek on `Hüljatud`.
* Tellimus jääb olekusse Ootel või Tasumata.
* Täitmist ei alustata.
* Saadetist ega arvet ei looda.
* Klient saab alustada uut maksekatset.

### Makse kontrollimise näide

Kontrollige makse lõppseisundit:

```http
GET /egw/v1/payments/{paymentId}
```

Ebaõnnestunud makse vastusenäide:

```json
{
  "paymentId": "019fffc4-17c4-7922-8be4-23cc21348aa1",
  "paymentStatus": "FAILED"
}
```

| Makseolek       | Kaupmehe tegevus       |
| --------------- | ---------------------- |
| `Ebaõnnestunud` | Ärge täitke tellimust. |
| `Tühistatud`    | Ärge täitke tellimust. |
| `Hüljatud`      | Ärge täitke tellimust. |

### Webhookid

Webhookid teavitavad teie süsteemi, kui makseolek muutub.

Kasutage iga Webhooki käivitajana viimase makseoleku tõmbamiseks ja töötlemiseks.

See juhis kehtib järgmistele:

* Ühtne kaupmehe API
* API kliendi SDK
* Hostitud Checkout
* Veebiplugin
* Mobiilne SDK

Tõmmake alati viimane makseolek Payment API kaudu enne tellimuse värskendamist või täitmise käivitamist.

{% hint style="info" %}
Veebipluginad töötlevad Webhooke oma tavapärase funktsionaalsuse osana. Muude integratsioonide puhul rakendage Webhooki lõpp-punkt.
{% endhint %}

#### Seadistage Webhookid

Seadistage iga poe jaoks Callback URL, et saada automaatseid makseoleku teavitusi.

Lõpp-punkt peab olema avalikult HTTPS-i kaudu kättesaadav.

**Merchant Portal**

1. Logige sisse Merchant Portalisse.
2. Liikuge **Seaded → Poe seaded**.
3. Valige vajalik pood.
4. Valige **Muuda lepingut**.
5. Avage **Tehniline teave**.
6. Sisestage lõpp-punkti aadressi **Tagasikutse URL**.
7. Esitage muudatused kinnitamiseks.

Näide:

```
https://merchant.example.com/payment-callback
```

Seadistage Sandboxi ja tootmise Callback URL-id eraldi.

Maksevärav saadab teavituse alati, kui makseolek muutub.

#### Soovitatav Webhooki töötlemise protsess

```
Webhook on vastu võetud
    ↓
Ekstraheerige makse ID
    ↓
GET /egw/v1/payments/{paymentId}
    ↓
Kontrollige makseolekut
    ↓
Värskendage tellimust
    ↓
Käivitage ärilised toimingud
```

Käsitlege Webhooki makse kontrollimise käivitajana.

Käsitlege Payment API vastust tõeallikana.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.ecommerce.seb.ee/seb-docs-draft/seb-docs-public-et/juhendid/liivakast/teststsenaariumid/integratsioon-ja-tellimuste-kasitlemine.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

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.
