> 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-lt/gaires/sandbox/testavimo-scenarijai/integracija-ir-uzsakymu-valdymas.md).

# Integracija ir užsakymų valdymas

Patikrinkite, ar prekybininko sistema teisingai apdoroja mokėjimus.

## Sėkmingas mokėjimas

Naudokite Sandbox mokėjimo metodus, kad patikrintumėte, ar jūsų integracija teisingai apdoroja sėkmingus mokėjimus. Atnaujinkite užsakymus ir inicijuokite įvykdymą tik vieną kartą.

Naudokite patvirtintą mokėjimo būseną kaip tiesos šaltinį. Nesiremkite naršyklės peradresavimais ar klientų grįžimu į jūsų svetainę.

### Kaip turėtų būti apdorojami sėkmingi mokėjimai

Mokėjimą laikykite sėkmingu tik tada, kai jo galutinė būsena patvirtinama per Mokėjimų API.

1. A **Webhook'ą (dar vadinamą atgalinio iškvietimo pranešimais)** yra gautas.
2. Mokėjimo būsena patvirtinama naudojant Mokėjimų API.
3. Užsakymo būsena atnaujinama.
4. Inicijuojamas įvykdymas.

Rekomenduojama eiga:

```
Laukiantis užsakymas
    ↓
Klientas užbaigia mokėjimą
    ↓
Gautas Webhook
    ↓
GET /egw/v1/payments/{paymentId}
    ↓
Patvirtinti galutinę mokėjimo būseną
    ↓
Atnaujinti užsakymo būseną
    ↓
Vieną kartą įvykdyti užsakymą
```

Jei Webhook nepavyksta pristatyti, suderinkite laukiančius mokėjimus per Mokėjimų API. Nepalikite patvirtinto mokėjimo neapdoroto vien todėl, kad jo Webhook nebuvo gautas.

### Mokėjimo būsenos, kurias reikia apdoroti

Skirtingi mokėjimo metodai gali pasiekti skirtingas sėkmingas būsenas.

| Mokėjimo metodas | Sėkminga būsena |
| ---------------- | --------------- |
| Kortelė          | `Apmokėta`      |
| Google Pay       | `Apmokėta`      |
| Apple Pay        | `Apmokėta`      |
| Click to Pay     | `Apmokėta`      |
| Pay by Bank      | `Atsiskaityta`  |

Prieš atnaujindami užsakymą patikrinkite galutinę būseną.

### Kortelė, Google Pay, Apple Pay ir Click to Pay

Klientas sėkmingai užbaigia mokėjimo procesą.

#### Validavimas

1. Sukurkite naują užsakymą laukiančioje būsenoje.
2. Atlikite sėkmingą mokėjimą.
3. Patikrinkite, ar gaunamas Webhook.
4. Gaukite naujausią mokėjimo informaciją.

   ```http
   GET /egw/v1/payments/{paymentId}
   ```
5. Patikrinkite mokėjimo būseną.
6. Atnaujinkite užsakymo būseną.
7. Įvykdykite užsakymą.

Pavyzdys:

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

#### Tikėtinas rezultatas

* Mokėjimo būsena yra `Apmokėta`.
* Gaunamas Webhook.
* Mokėjimo ID saugomas.
* Užsakymas pasikeičia iš laukiančio į apmokėtą.
* Įvykdymas atliekamas tik vieną kartą.
* Pakartotinis įvykdymas nevyksta.

### Pay by Bank

Klientas sėkmingai užbaigia Pay by Bank mokėjimą.

#### Validavimas

1. Sukurkite naują užsakymą laukiančioje būsenoje.
2. Atlikite sėkmingą Pay by Bank mokėjimą.
3. Patikrinkite, ar gaunamas Webhook.
4. Gaukite mokėjimo informaciją naudodami Mokėjimų API.
5. Patikrinkite galutinę mokėjimo būseną.
6. Atnaujinkite užsakymo būseną.
7. Įvykdykite užsakymą.

#### Tikėtinas rezultatas

* Mokėjimo būsena yra `Atsiskaityta`.
* Gaunamas Webhook.
* Mokėjimo ID saugomas.
* Užsakymas pasikeičia iš laukiančio į apmokėtą.
* Įvykdymas atliekamas tik vieną kartą.
* Pakartotinis įvykdymas nevyksta.

### Mokėjimo patvirtinimo pavyzdys

Pavyzdinis sėkmingo mokėjimo atsakymas:

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

Įsitikinkite, kad:

* `paymentId` yra nurodyta.
* `paymentStatus` turi tikėtiną sėkmingą būseną.
* `paidAmount` atitinka užsakymo sumą.
* `orderNumber` susietas su pardavėjo užsakymu.

### Pardavėjo patvirtinimo kontrolinis sąrašas

Įsitikinkite, kad:

* Webhook'ai gaunami sėkmingai.
* Mokėjimų API patvirtina mokėjimo būseną:

  ```http
  GET /egw/v1/payments/{paymentId}
  ```
* Mokėjimo ID saugomas.
* Galutinė mokėjimo būsena įrašoma.
* Užsakymas pasikeičia iš laukiančio į apmokėtą.
* Įvykdymas atliekamas tik vieną kartą.
* Dubliuoti Webhook'ai nesukelia pakartotinio įvykdymo.
* Dubliuoti Webhook'ai nesukuria dubliuotų siuntų.
* Dubliuoti Webhook'ai nesukuria dubliuotų kliento pranešimų.
* Laukiantys mokėjimai suderinami, kai Webhook pristatymas nepavyksta.

## 3DS autentifikacija

Naudokite Sandbox mokėjimus kortele, kad patikrintumėte mokėjimo eigas, kurioms reikia EMV 3DS autentifikacijos.

### Kaip EMV 3DS veikia mokėjimo būseną

EMV 3DS neturi atskiros mokėjimo būsenos. Mokėjimas išlieka `Inicijuota` kol klientas užbaigia atsiskaitymą ir sąveikauja su 3DS iššūkiu.

Mokėjimo baigtis nustatoma užbaigus autentifikaciją ir išdavėjo autorizaciją.

| Būsena        | Aprašymas                                                                      |
| ------------- | ------------------------------------------------------------------------------ |
| `Autorizuota` | 3DS autentifikacija sėkminga, o dviejų žingsnių autorizacija buvo patvirtinta. |
| `Apmokėta`    | 3DS autentifikacija sėkminga, o pirkimo mokėjimas buvo patvirtintas.           |
| `Nepavyko`    | Autentifikacija arba išdavėjo autorizacija nepavyko.                           |
| `Palikta`     | Klientas neužbaigė 3DS iššūkio iki jo galiojimo pabaigos.                      |
| `Atšaukta`    | Mokėjimas buvo atšauktas prieš užbaigimą.                                      |

### Sėkminga autentifikacija

Klientas užbaigia 3DS iššūkį, o mokėjimas patvirtinamas.

#### Validavimas

1. Sukurkite naują užsakymą laukiančioje būsenoje.
2. Pradėkite mokėjimą kortele, kuriam reikalinga 3DS autentifikacija.
3. Sėkmingai užbaikite autentifikaciją.
4. Patikrinkite, ar jūsų Webhook galinis taškas gauna pranešimą.
5. Gaukite naujausią mokėjimo informaciją:

   ```http
   GET /egw/v1/payments/{paymentId}
   ```
6. Patikrinkite galutinę būseną, atnaujinkite užsakymą ir jį įvykdykite.

#### Tikėtinas rezultatas

* Mokėjimas pasikeičia iš `Inicijuota` į `Apmokėta`.
* Jūsų Webhook galinis taškas gauna pranešimą.
* Pardavėjo sistema saugo mokėjimo ID.
* Mokėjimų API grąžina galutinę mokėjimo būseną.
* Užsakymas pasikeičia iš laukiančio į apmokėtą.
* Įvykdymas atliekamas tik vieną kartą.

### Sėkminga autentifikacija naudojant dviejų žingsnių mokėjimus

Kai kurie pardavėjai naudoja atskiras autorizacijos ir nurašymo operacijas. Sėkminga 3DS autentifikacija rezultuoja autorizuotu mokėjimu. Užsakymą laikykite laukiančiu arba rezervuokite atsargas, kol nurašymas bus baigtas. Užsakymą vykdykite tik tada, kai mokėjimas pasiekia `Apmokėta`.

```
Inicijuota
    ↓
3DS autentifikacija sėkminga
    ↓
Autorizuota
    ↓
Nurašyti mokėjimą
    ↓
Apmokėta
```

#### Validavimas

1. Sukurkite naują užsakymą laukiančioje būsenoje.
2. Užbaikite mokėjimą kortele, kuriam reikalinga 3DS autentifikacija.
3. Patikrinkite, ar mokėjimas pasiekia `Autorizuota`.
4. Užsakymą laikykite laukiančiu arba rezervuokite atsargas.
5. Atlikite mokėjimo nurašymą:

   ```http
   PATCH /egw/v1/payments/{paymentId}/capture
   ```
6. Gaukite naujausią mokėjimo informaciją.
7. Patikrinkite, ar mokėjimas pasiekia `Apmokėta`.
8. Atnaujinkite užsakymą ir jį įvykdykite.

#### Tikėtinas rezultatas

* Mokėjimas pasikeičia iš `Inicijuota` į `Autorizuota`.
* Užsakymas lieka laukiančioje būsenoje, kol nurašymas pavyksta.
* Nurašymo užklausa pavyksta.
* Mokėjimas pasikeičia iš `Autorizuota` į `Apmokėta`.
* Mokėjimų API patvirtina mokėjimo būseną.
* Užsakymas pasikeičia iš laukiančio į apmokėtą.
* Įvykdymas atliekamas tik vieną kartą.
* Dubliuoti nurašymai nesukelia pakartotinio įvykdymo.

### Autentifikacija nepavyko

Klientas neišlaiko 3DS iššūkio arba išdavėjas atmeta autorizaciją.

#### Validavimas

1. Sukurkite naują užsakymą laukiančioje būsenoje.
2. Pradėkite mokėjimą kortele, kuriam reikalinga 3DS autentifikacija.
3. Sukelkite nesėkmingos autentifikacijos scenarijų.
4. Patikrinkite, ar jūsų Webhook galinis taškas gauna pranešimą.
5. Gaukite naujausią mokėjimo informaciją naudodami Mokėjimų API.
6. Patikrinkite galutinę mokėjimo būseną.

#### Tikėtinas rezultatas

* Mokėjimas pasikeičia iš `Inicijuota` į `Nepavyko`.
* Jūsų Webhook galinis taškas gauna pranešimą.
* Užsakymas lieka laukiančioje arba neapmokėtoje būsenoje.
* Įvykdymas nepradedamas.
* Nesukuriama nei siunta, nei sąskaita faktūra.
* Klientas gali bandyti mokėjimą dar kartą.

### Autentifikacija nutraukta

Klientas išeina iš autentifikacijos proceso prieš užbaigdamas iššūkį. Mokėjimas tampa `Palikta` po to, kai šliuzas pritaiko laiko limito arba galiojimo pabaigos apdorojimą.

#### Validavimas

1. Sukurkite naują užsakymą laukiančioje būsenoje.
2. Pradėkite mokėjimą kortele, kuriam reikalinga 3DS autentifikacija.
3. Uždarykite naršyklę arba palikite autentifikacijos puslapį.
4. Palaukite Webhook arba suderinkite laukiančią mokėjimo būseną po taikomo laiko limito.
5. Gaukite naujausią mokėjimo informaciją naudodami Mokėjimų API.
6. Patikrinkite, ar galutinė būsena yra `Palikta`.

#### Tikėtinas rezultatas

* Mokėjimas pasikeičia iš `Inicijuota` į `Palikta` po laiko limito arba galiojimo pabaigos apdorojimo.
* Užsakymas lieka laukiančioje arba neapmokėtoje būsenoje.
* Įvykdymas nepradedamas.
* Nesukuriama nei siunta, nei sąskaita faktūra.

### Mokėjimas atšauktas

Klientas atšaukia mokėjimą prieš užbaigimą.

#### Validavimas

1. Sukurkite naują užsakymą laukiančioje būsenoje.
2. Pradėkite mokėjimą kortele, kuriam reikalinga 3DS autentifikacija.
3. Atšaukite mokėjimą.
4. Gaukite mokėjimą naudodami Mokėjimų API.
5. Patikrinkite galutinę mokėjimo būseną.

#### Tikėtinas rezultatas

* Mokėjimas pasikeičia iš `Inicijuota` į `Atšaukta`.
* Užsakymas lieka laukiančioje arba neapmokėtoje būsenoje.
* Įvykdymas nepradedamas.
* Nesukuriama nei siunta, nei sąskaita faktūra.

### Pardavėjo patikros kontrolinis sąrašas

Įsitikinkite, kad:

* Mokėjimas išlieka `Inicijuota` 3DS proceso metu.
* Webhook'ai gaunami ir apdorojami.
* Mokėjimų API patvirtina galutinę mokėjimo būseną:

  ```http
  GET /egw/v1/payments/{paymentId}
  ```
* Sėkmingi mokėjimai lemia `Autorizuota` arba `Apmokėta`.
* Nepavykusi autentifikacija lemia `Nepavyko`.
* Nepilna autentifikacija lemia `Palikta`.
* Atšaukti mokėjimai lemia `Atšaukta`.
* Užsakymai vykdomi tik patvirtinus sėkmingą mokėjimą.
* Nepavykę, nutraukti ir atšaukti mokėjimai niekada nesukelia įvykdymo.

{% hint style="warning" %}
Naudokite Webhook'us kartu su mokėjimo būsenos patikrinimu, kad nustatytumėte mokėjimo baigtį. Niekada nenaudokite naršyklės peradresavimo kaip vienintelio mokėjimo sėkmės rodiklio.
{% endhint %}

## Nepavykę mokėjimai

Naudokite Sandbox mokėjimo metodus, kad patikrintumėte nesėkmingų, atšauktų ir nebaigtų mokėjimų apdorojimą.

Mokėjimą laikykite nesėkmingu tik tada, kai jo galutinė būsena patvirtinama per Mokėjimų API.

Neleiskite vykdyti užsakymo už nesėkmingus mokėjimus. Kai tinka, leiskite klientui bandyti dar kartą.

### Kaip turėtų būti apdorojami nesėkmingi mokėjimai

Patvirtinkite mokėjimo nesėkmes per Webhook'us ir mokėjimo būsenos patikrą.

Rekomenduojama eiga:

```
Laukiantis užsakymas
    ↓
Mokėjimo bandymas
    ↓
Gautas Webhook
    ↓
GET /egw/v1/payments/{paymentId}
    ↓
Patvirtinti galutinę mokėjimo būseną
    ↓
Palikti užsakymą neapmokėtą
    ↓
Leisti bandyti dar kartą
```

### Nesėkmingas mokėjimas

Išdavėjas atmeta mokėjimą arba apdorojimas nepavyksta.

#### Validavimas

1. Sukurkite naują užsakymą laukiančioje būsenoje.
2. Sukelkite nesėkmingo mokėjimo scenarijų.
3. Patikrinkite, ar gaunamas Webhook.
4. Gaukite mokėjimo informaciją:

   ```http
   GET /egw/v1/payments/{paymentId}
   ```
5. Patikrinkite galutinę mokėjimo būseną.
6. Peržiūrėkite užsakymo apdorojimą.

#### Tikėtinas rezultatas

* Mokėjimo būsena yra `Nepavyko`.
* Mokėjimo ID yra prieinamas.
* Gaunamas Webhook.
* Užsakymas lieka laukiančioje arba neapmokėtoje būsenoje.
* Įvykdymas nepradedamas.
* Nesukuriama nei siunta, nei sąskaita faktūra.
* Klientas gali bandyti mokėti dar kartą.

### Atšauktas mokėjimas

Klientas arba pardavėjas atšaukia mokėjimą prieš užbaigimą.

#### Validavimas

1. Sukurkite naują užsakymą laukiančioje būsenoje.
2. Pradėkite mokėjimo eigą.
3. Atšaukite mokėjimą.
4. Gaukite mokėjimo informaciją naudodami Mokėjimų API.
5. Patikrinkite galutinę mokėjimo būseną.

#### Tikėtinas rezultatas

* Mokėjimo būsena yra `Atšaukta`.
* Užsakymas lieka laukiančioje arba neapmokėtoje būsenoje.
* Įvykdymas nepradedamas.
* Siunta nesukuriama.
* Klientas gali pradėti naują mokėjimo bandymą.

### Nutrauktas mokėjimas

Klientas palieka mokėjimo eigą jos neužbaigęs.

#### Validavimas

1. Sukurkite naują užsakymą laukiančioje būsenoje.
2. Pradėkite mokėjimo eigą.
3. Palikite mokėjimo arba autentifikacijos puslapį prieš užbaigimą.
4. Gaukite mokėjimo informaciją naudodami Mokėjimų API.
5. Patikrinkite galutinę mokėjimo būseną.

#### Tikėtinas rezultatas

* Mokėjimo būsena yra `Palikta`.
* Užsakymas lieka laukiančioje arba neapmokėtoje būsenoje.
* Įvykdymas nepradedamas.
* Nesukuriama nei siunta, nei sąskaita faktūra.
* Klientas gali pradėti naują mokėjimo bandymą.

### Mokėjimo patikrinimo pavyzdys

Patikrinkite galutinę mokėjimo būseną:

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

Pavyzdinis nesėkmingo mokėjimo atsakymas:

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

| Mokėjimo būsena | Pardavėjo veiksmas    |
| --------------- | --------------------- |
| `Nepavyko`      | Nevykdykite užsakymo. |
| `Atšaukta`      | Nevykdykite užsakymo. |
| `Palikta`       | Nevykdykite užsakymo. |

### Webhook'ai

Webhook'ai informuoja jūsų sistemą, kai pasikeičia mokėjimo būsena.

Naudokite kiekvieną Webhook kaip aktyviklį, kad gautumėte ir apdorotumėte naujausią mokėjimo būseną.

Šios gairės taikomos:

* Vieninga prekybininko API
* API kliento SDK
* Priglobtas atsiskaitymas
* Web papildinys
* Mobilusis SDK

Prieš atnaujindami užsakymą ar inicijuodami įvykdymą visada gaukite naujausią mokėjimo būseną per Mokėjimų API.

{% hint style="info" %}
Web papildiniai Webhook'us apdoroja kaip savo standartinės funkcionalumo dalį. Kitoms integracijoms įdiekite Webhook galinį tašką.
{% endhint %}

#### Konfigūruoti Webhook'us

Konfigūruokite kiekvienos parduotuvės atgalinio iškvietimo URL, kad gautumėte automatinius mokėjimo būsenos pranešimus.

Galinis taškas turi būti viešai pasiekiamas per HTTPS.

**Merchant Portal**

1. Prisijunkite prie Pardavėjo portalo.
2. Eikite į **Nustatymai → Parduotuvės nustatymai**.
3. Pasirinkite reikiamą parduotuvę.
4. Pasirinkite **Redaguoti sutartį**.
5. Atidarykite **Techninė informacija**.
6. Įveskite galinį tašką į **Atgalinio iškvietimo URL**.
7. Pateikite pakeitimus patvirtinimui.

Pavyzdys:

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

Sandbox ir gamybinio atgalinio iškvietimo URL konfigūruokite atskirai.

Šliuzas siunčia pranešimą kaskart pasikeitus mokėjimo būsenai.

#### Rekomenduojama Webhook apdorojimo eiga

```
Gautas Webhook
    ↓
Išskirti mokėjimo ID
    ↓
GET /egw/v1/payments/{paymentId}
    ↓
Patvirtinti mokėjimo būseną
    ↓
Atnaujinti užsakymą
    ↓
Inicijuoti verslo veiksmus
```

Laikykite Webhook kaip mokėjimo patikrinimo aktyviklį.

Laikykite Mokėjimų API atsakymą kaip tiesos šaltinį.


---

# 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-lt/gaires/sandbox/testavimo-scenarijai/integracija-ir-uzsakymu-valdymas.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.
