> 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-lv/integracija/mobilais-sdk/ios-sdk/celvezi/backend-integracija.md).

# Backend integrācija

Izmantojiet šo rokasgrāmatu, ja veidojat iOS integrācijas aizmugursistēmas daļu.

Lietotne nevar izveidot maksājumu. Izveide autentificējas ar OAuth 2.0 klienta akreditācijas datiem, izmantojot jūsu veikala klienta noslēpumu, un šim noslēpumam jāpaliek jūsu serverī. Sadalījums ir:

| Kas           | Ko dara                                                                                              |
| ------------- | ---------------------------------------------------------------------------------------------------- |
| Jūsu backend  | Izveido maksājumu, pēc tam nodod `paymentId`, `verificationKey` un norēķinu saiti lietotnei.         |
| SDK           | Parāda norēķinu lapu vai vada kartes sesiju, noskaidro maksājuma statusu un atgriež vienu rezultātu. |
| Jūsu lietotne | Parāda šo rezultātu ekrānā.                                                                          |
| Jūsu backend  | Pasūtījumu izpildē joprojām ir autoritatīvs avots, ko virza platformas paziņojumi.                   |

***

## Izveidot maksājumu

Viens izsaukums, pirms lietotne sāk jebko:

```
POST {api-host}/egw/v1/payments/cit
Authorization: Bearer {access token}
X-Request-Id: {uuid}
Content-Type: application/json
```

`X-Request-Id` ir obligāts, un tam jābūt parsējamam kā UUID. Saglabājiet vērtību: vēlāk pēc tās tiek izsekots neveiksmīgs maksājums.

```json
{
  "participantId": "your-participant-id",
  "shopAgreementId": "your-shop-agreement-id",
  "channel": "BROWSER",
  "orderNumber": "ORD-1042",
  "instructedAmount": { "currency": "EUR", "amount": "40.12" },
  "customer": {
    "name": "Jane Doe",
    "email": "jane.doe@example.com",
    "phone": "+37129123456"
  },
  "shopRedirectUrl": "myapp://checkout/return",
  "preferredLocale": "en"
}
```

Summas ir decimālas virknes, un valūtas ir ISO 4217 alfa-3 kodi.

`channel` ir `BROWSER`. Paturiet to `BROWSER` gan iebūvētajai kartes formai, gan mitinātajai norēķinu lapai.

`shopRedirectUrl` ir vieta, uz kuru norēķinu lapa nosūta pircēju, kad tā ir pabeigta, tāpēc norādiet to uz jūsu lietotnes atgriešanas URL. Lietotnei jānodod tā pati vērtība kā tās `returnURL`.

### Atbilde

```json
{
  "paymentId": "019eb631-ee3c-7c4a-90aa-83e13b301e96",
  "orderNumber": "ORD-1042",
  "paymentStatus": "INITIALIZED",
  "instructedAmount": { "currency": "EUR", "amount": "40.12" },
  "environment": "sandbox",
  "participantId": "your-participant-id",
  "shop": { },
  "availablePaymentMethods": [ ],
  "createdAt": "2026-03-04T09:21:44Z",
  "_links": {
    "checkoutRedirect": {
      "href": "https://sandbox-checkout.example.com/en/checkout/019eb631-ee3c-7c4a-90aa-83e13b301e96/9f2c1a7e4b8d"
    }
  }
}
```

***

## Iegūstiet verifikācijas atslēgu

Lietotnei vajag trīs vērtības. Divas no tām tiek atgrieztas tieši, bet trešā nāk no norēķinu saites.

| Vērtība            | Avots                                                             |
| ------------------ | ----------------------------------------------------------------- |
| `paymentId`        | Šis `paymentId` lauks.                                            |
| `checkoutRedirect` | `_links.checkoutRedirect.href`.                                   |
| `verificationKey`  | Šis **pēdējais ceļa segments** no `_links.checkoutRedirect.href`. |

Norēķinu saite tiek veidota šādi `{checkoutHost}/{locale}/checkout/{paymentId}/{verificationKey}`, tāpēc pēdējā segmenta nolasīšana prasa vienu rindiņu un nekādu papildu pieprasījumu. Iepriekšējā piemērā verifikācijas atslēga ir `9f2c1a7e4b8d`.

Alternatīvi izsauciet `GET {api-host}/egw/v1/payments/{paymentId}`, kas atgriež `verificationKey` kā lauku. Tas nozīmē otru izsaukumu un nav atkarīgs no URL struktūras.

Nododiet visus trīs lietotnei.

### Kas ir verifikācijas atslēga

Tā ir klienta puses piekļuves akreditācijas informācija, kas attiecas uz vienu maksājumu. Tas nav veikala akreditācijas datu kopums, un tas autorizē ar maksājumu saistītos izsaukumus, ko SDK veic ierīcē.

Tā pēc dizaina ir redzama klienta pusē, jo norēķinu lapa, ko jūsu lietotne drīz ielādēs, to nes savā URL. No tā izriet divas lietas: to nedrīkst ierakstīt žurnālos vai saglabāt jebkur, kur tā varētu pastāvēt ilgāk par maksājumu, un iebūvētajai kartes formai tā ir vajadzīga ierīcē, jo kartes sesijas izsaukumi notiek no lietotnes uz checkout API, un tieši tas tos autorizē.

***

## Atgriešanas URL izvēle

Jūsu `shopRedirectUrl` un lietotnes `returnURL` ir viena un tā pati vērtība. Jums ir divas iespējas, un SDK tās apstrādā identiski.

### Pielāgota shēma

Vienkāršākā izvēle, un to nevar sajaukt ar īstu tīmekļa lapu. Reģistrējiet to lietotnes `Info.plist`:

```xml
<key>CFBundleURLTypes</key>
<array>
    <dict>
        <key>CFBundleURLSchemes</key>
        <array><string>myapp</string></array>
    </dict>
</array>
```

Pēc tam izmantojiet tādu URL kā `myapp://checkout/return`.

### Universālā saite

Kāds `https://` URL, ko jūs kontrolējat, piemēram, `https://shop.example.com/pay/done`. Dodiet tam priekšroku, ja jums jau ir konfigurētas universālās saites vai ja tas pats atgriešanas URL tiek koplietots ar tīmekļa norēķinu lapu.

{% hint style="info" %}
Jūs varat pievienot savus vaicājuma parametrus pie `shopRedirectUrl`. Platforma URL pārsūta bez izmaiņām, un SDK, veicot atbilstības pārbaudi, ignorē vaicājuma daļu un fragmentu. Skatiet [atgriešanas URL saskaņošana](broken://pages/3358308d5bca6fc00b97a638b4292709e1ff29c4#how-the-return-url-is-matched).
{% endhint %}

***

## Viens maksājums, divi apmaksas veidi

Kartes formas lietošanai nav atsevišķas iniciēšanas. Vienu maksājumu var apmaksāt caur mitināto norēķinu lapu vai caur jūsu pašu kartes formu, tāpēc lietotne, kas piedāvā abus, veic to pašu vienu izsaukumu un ļauj pircējam izvēlēties.

Ja kartes ievade ir vienīgā metode, ko piedāvājat, `shopRedirectUrl` tiek neizmantots. Pircējs nekad neatstāj jūsu lietotni, un 3-D Secure pārbaude tiek parādīta tajā.

***

## Maksājuma apstiprināšana lietotnei

SDK statusa pārbaude ir `GET` jūsu backendā:

```
GET {apiBaseURL}/checkout/api/egw/v1/payments/{paymentId}
```

Ja jūsu backend sniedz šādu formu, iestatiet `apiBaseURL` un viss ir gatavs. Ja ne, jūsu lietotne tā vietā nodrošina savu meklēšanu. Skatiet [savu statusa meklēšanu](/seb-docs-draft/seb-docs-public-lv/integracija/mobilais-sdk/ios-sdk/sdk-izmantosana/rezultata-apstrade.md#supplying-your-own-status-lookup).

{% hint style="warning" %}
⚠️ **Pasūtījumus izpildiet no sava backend, nekad ne no lietotnes rezultāta.** Ierīce var zaudēt savienojumu starp maksājuma pabeigšanu un brīdi, kad jūsu lietotne par to uzzina. Pasūtījumu izpildi virziet, balstoties uz platformas paziņojumiem jūsu backend, un lietotnes rezultātu uztveriet kā to, ko parādīt pircējam.
{% endhint %}


---

# 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-lv/integracija/mobilais-sdk/ios-sdk/celvezi/backend-integracija.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.
