> ## Documentation Index
> Fetch the complete documentation index at: https://www.twicecommerce.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Miten maksut toimivat TWICEssa

> Maksujen hierarkia, tapahtuman elinkaari, pantit, osittaiset hyvitykset ja tuetut palveluntarjoajat TWICE Commercessa.

export const lineItemDefinition = "Rivitieto on tilauksen yksittäinen tuote- tai palvelurivi, joka sisältää kyseiseen osaan liittyvät varastoartikkelit, määrän, hinnoittelun ja toimitustiedot.";

export const transactionDefinition = "Maksutransaktio vastaa maksupäätteen tulostamaa maksukuittia. Yksi maksu voi sisältää useita maksutransaktioita — esimerkiksi jaettu maksu (lounasseteli + käteinen = 2 maksutransaktiota, 1 maksu) tai maksu, jota on hyvitetty (alkuperäinen veloitus + hyvitys = 2 maksutransaktiota, 1 maksu).";

export const checkoutDefinition = "Kassa luodaan, kun tilaus on valmis maksettavaksi joko manuaalisesti tilaukselta tai asiakkaan itsepalveluna verkossa. Jokainen kassa kuuluu aina johonkin tilaukseen, ja siihen voi liittyä useita maksuja osamaksutilanteita varten.";

export const paymentDefinition = "Maksu liittyy kassaan ja muodostaa alv-kuitin. Maksut kohdistuvat aina tilauksen rivitietoihin, ja yksi maksu voi sisältää useita maksutransaktioita. Kassalla voi olla useita maksuja osamaksutilanteita varten.";

<Frame caption="Tilaukset > [Tilaus] > Maksu">
  <img src="https://mintcdn.com/twicecommerce/Ab7tx7ih94KQsi0k/images/order-payment-tab.webp?fit=max&auto=format&n=Ab7tx7ih94KQsi0k&q=85&s=a5deb37bb18abc87753e7cb6a3860e86" alt="Tilauksen maksuvälilehti" width="1920" height="1080" data-path="images/order-payment-tab.webp" />
</Frame>

## Määritelmä

TWICE jakaa rahaliikenteen nelitasoiseen hierarkiaan: **tilaus → kassa → maksu → tapahtuma**. Tilaus kertoo, mitä ostetaan tai vuokrataan. Kassa kerää maksuaikeen. Maksu tuottaa alv-kuitin. Tapahtuma on varsinainen rahaliikenne maksupalveluntarjoajalla. Maksujen rinnalla ovat **laskut** — suoritusasiakirjat, jotka laskuttavat liikkuvan rahan. Hyvitykset, pantit, osamaksut ja jaetut maksutavat asettuvat kaikki siististi tähän hierarkiaan.

## Missä tätä käytetään?

* Maksupalveluntarjoajien määritys kohdassa **Asetukset → Maksut**
* Asiakkaiden veloittaminen kassalla (verkossa tai hallintapaneelissa)
* Panttien käsittely vuokratilauksissa
* Täysien tai osittaisten hyvitysten tekeminen veloitetuista tapahtumista
* Raporttien täsmäytys maksupalveluntarjoajan tilityksiin
* API-integraatiot, joiden on kirjattava manuaalisia maksuja tai tehtävä hyvityksiä

## Keskeiset ominaisuudet

### Maksujen hierarkia

```
Order > Line Items > Checkout > Payments > Transactions
```

<AccordionGroup>
  <Accordion title="Tilaus">
    Tilaus sisältää kaikki rivitiedot (sen mitä asiakas ostaa tai vuokraa). Jokainen maksuprosessi alkaa tilauksesta.

    Lue lisää: [Tilauksen elinkaari](/docs/fi/concepts/orders/order-lifecycle)
  </Accordion>

  <Accordion title="Rivitiedot">
    <Tooltip tip={lineItemDefinition}>Rivitiedot</Tooltip> kuvaavat sitä, mitä asiakas ostaa tai vuokraa. Jokainen rivitieto viittaa seuraaviin:

    * Listaus (tai kertaluonteinen rivitieto)
    * Määrä
    * Hintatiedot
    * Liittyvät varastoartikkelit (keräilyä varten)
  </Accordion>

  <Accordion title="Kassa">
    <Tooltip tip={checkoutDefinition}>Kassa</Tooltip> luodaan, kun tilaus on valmis maksettavaksi. Kassan voi luoda:

    * Käsin tilauksesta (henkilökunta)
    * Itsepalveluna verkossa (asiakas)

    Kassa on aina osa tilausta, ja siihen voi liittyä useita maksuja.
  </Accordion>

  <Accordion title="Maksu">
    <Tooltip tip={paymentDefinition}>Maksu</Tooltip> liittyy kassaan ja tuottaa alv-kuitin. Keskeiset ominaisuudet:

    * Osoittaa aina tilauksen rivitietoihin
    * Voi sisältää useita tapahtumia
    * Kassalla voi olla useita maksuja (esim. ennakko + loppusumma)
  </Accordion>

  <Accordion title="Tapahtuma">
    <Tooltip tip={transactionDefinition}>Tapahtuma</Tooltip> vastaa maksupäätteen kuittia. Yksi maksu voi sisältää useita tapahtumia.

    **Esimerkkejä:**

    * **Jaettu maksu**: puolet lahjakortilla, puolet käteisellä → 2 tapahtumaa, 1 maksu
    * **Hyvitys**: alkuperäinen veloitustapahtuma alkuperäisellä maksulla, hyvitystapahtuma siihen linkitetyllä hyvitysmaksulla
  </Accordion>
</AccordionGroup>

### Maksutyypit ja -tavat

Jokaisella maksulla on **tyyppi** ja **tapa**, jotka kuvaavat, miten se maksettiin:

* **Tyypit**: `sale` (veloitus), `deposit_auth`, `deposit_capture`, `refund`, `refund_reverse` (sinulle takaisin peritty hyvitys), `cancel` ja `expire` (lunastamatta rauennut pantin pidätys).
* **Manuaaliset tavat**: **Pay in store** (`PAY_STORE`) ja kauppiaan itse nimeämät **mukautetut tavat** (`CUSTOM`) läsnäolo- ja offline-maksuihin.
* **Verkkomaksutavat**: kortti, Apple Pay, Google Pay, MobilePay ja Pay by Bank Stripen kautta; kortti, Apple Pay ja Google Pay Adyenin kautta.

Maksun edetessä se kulkee pantin pidätyksen, veloituksen ja hyvityksen vaiheiden läpi. Jokaisella maksulla on tarkempi tila — pending, succeeded, partially refunded, refunded, refund reversed, cancelled tai expired. Tilauksen **maksumerkintä** tiivistää kaiken binääriseksi arvoksi **Paid / Unpaid** (`paymentStatus`: `PAID` / `UNPAID`).

### Hierarkian visualisointi

```mermaid theme={null}
%%{init: {'flowchart': {'nodeSpacing': 30, 'rankSpacing': 40}}}%%
flowchart TB
    Order["Tilaus<br/><small>Säiliö</small>"]
    LineItem1["Rivitieto 1<br/><small>Tuote A</small>"]
    LineItem2["Rivitieto 2<br/><small>Tuote B</small>"]
    Checkout["Kassa<br/><small>Valmis maksettavaksi</small>"]
    Payment1["Maksu 1<br/><small>Tuottaa alv-kuitin</small>"]
    Payment2["Maksu 2<br/><small>Osasuoritus</small>"]
    Trans1["Tapahtuma 1<br/><small>Korttimaksu</small>"]
    Trans2["Tapahtuma 2<br/><small>Käteismaksu</small>"]
    Trans3["Tapahtuma 3<br/><small>Alkuperäinen veloitus</small>"]
    Trans4["Tapahtuma 4<br/><small>Osittainen hyvitys</small>"]

    Order -->|sisältää| LineItem1
    Order -->|sisältää| LineItem2
    Order <-->|"manuaalinen: tilaus luo kassan<br/>verkossa: kassa luo tilauksen"| Checkout
    Checkout -->|viittaa| LineItem1
    Checkout -->|viittaa| LineItem2
    Checkout -->|voi olla useita| Payment1
    Checkout -->|voi olla useita| Payment2
    Payment1 -->|veloittaa| LineItem1
    Payment1 -->|veloittaa| LineItem2
    Payment1 -->|voi sisältää useita| Trans1
    Payment1 -->|voi sisältää useita| Trans2
    Payment2 -->|voi sisältää useita| Trans3
    Payment2 -->|voi sisältää useita| Trans4

    style Order fill:#3b82f633,stroke:#3b82f6,stroke-width:3px
    style LineItem1 fill:#fce7f3,stroke:#ec4899,stroke-width:2px
    style LineItem2 fill:#fce7f3,stroke:#ec4899,stroke-width:2px
    style Checkout fill:#d1fae5,stroke:#10b981,stroke-width:2px
    style Payment1 fill:#fef3c7,stroke:#f59e0b,stroke-width:2px
    style Payment2 fill:#fef3c7,stroke:#f59e0b,stroke-width:2px
    style Trans1 fill:#e0e7ff,stroke:#6366f1,stroke-width:1px
    style Trans2 fill:#e0e7ff,stroke:#6366f1,stroke-width:1px
    style Trans3 fill:#e0e7ff,stroke:#6366f1,stroke-width:1px
    style Trans4 fill:#e0e7ff,stroke:#6366f1,stroke-width:1px
```

### Laskut

Maksujen rinnalla TWICE muodostaa **laskuja** — rahamallin suoritusasiakirjat. Maksurivi ilman laskuviitettä on laskuttamatonta rahaa: kun myynti onnistuu, TWICE muodostaa näistä riveistä laskun ja merkitsee muodostetun laskun tunnukset takaisin riveille. Maksurivi, joka jo viittaa laskuun, suorittaa kyseisen laskurivin eikä muodosta mitään uutta.

Laskun `status` seuraa vain asiakirjan elinkaarta: `draft`, `open`, `cancelled`, `uncollectible` (manuaalinen alaskirjaus) tai `scheduled` (tuleva kestotilausjakso, laskettu pyydettäessä — ei koskaan tallennettu). Se, onko lasku maksettu, johdetaan erikseen laskun kentistä `capturedTotal` ja `refundedTotal` samaa sanastoa käyttäen kuin maksuissa: maksamaton, osittain maksettu, maksettu, osittain hyvitetty, hyvitetty.

Kestotilausten myynti kertyy laskuriveiltä: jokainen laskutusjakso lisää rivin, joka sisältää kestotilauksen tunnuksen ja laskutuskauden, joten yksi lasku voi laskuttaa useita kestotilauksia. Katso [Kestotilaukset](/docs/fi/concepts/catalog/subscriptions).

## Suhteet

* Maksu viittaa aina niihin **rivitietoihin**, joita se veloittaa — ei koskaan koko tilaukseen abstraktisti.
* Hyvitysmaksu linkittyy takaisin alkuperäiseen maksuun kentällä `originalPaymentId`. Hyvitysrivit jäljittyvät sisäisesti alkuperäisiin maksuriveihin (`originalPaymentLineId`); tätä rivikohtaista linkkiä ei näytetä API:ssa.
* Pantti on tilauksella erillinen Payment-objekti (jolla on omat summat `authorised`, `captured`, `refunded` ja `cancelled`), joten panttiliikenne ei koskaan sekoitu veloitusliikenteeseen.
* Maksupalveluntarjoaja (Adyen, Stripe, manuaalinen) määrittää, mitkä maksutavat ovat käytettävissä ja tuetaanko katevarausta ja veloitusta erikseen.

## Elinkaari

### Tilauksesta maksuun

<Steps>
  <Step title="Tilaus luodaan">
    Luodaan tilaus, joka sisältää <Tooltip tip={lineItemDefinition}>rivitietoja</Tooltip>. Tilauksia voi luoda käsin hallintapaneelissa tai automaattisesti asiakkaan verkkokassasta.

    Lue lisää: [Tilauksen elinkaari](/docs/fi/concepts/orders/order-lifecycle)
  </Step>

  <Step title="Kassa luodaan">
    Kun tilaus on valmis maksettavaksi, luodaan kassa — käsin hallintapaneelista tai verkkokaupan itsepalveluprosessin kautta. Kassa on aina linkitetty ylätason tilaukseen.
  </Step>

  <Step title="Maksut luodaan">
    Kassan sisällä luodaan yksi tai useampi maksu:

    * Jokainen maksu osoittaa tiettyihin rivitietoihin
    * Jokainen maksu tuottaa oman alv-kuittinsa
    * Useilla maksuilla hoidat osasuoritukset (ennakko + loppusumma, erämaksut)
  </Step>

  <Step title="Tapahtumat käsitellään">
    Jokainen maksu voi sisältää useita tapahtumia — jaettuja maksutapoja, hyvityksiä ja niin edelleen.
  </Step>
</Steps>

### Pantin pidätys ja veloitus

Niillä palveluntarjoajilla, jotka sitä tukevat (Adyen ja Stripe korttimaksuissa), TWICE käyttää kaksivaiheista pantin pidätys–veloitus-prosessia:

```mermaid theme={null}
flowchart LR
    Order[Tilaus luotu] --> Checkout[Kassa luotu]
    Checkout --> Auth[Maksulle tehty pantin pidätys]
    Auth --> Capture[Maksu veloitettu]
    Capture --> Complete[Maksu valmis]

    Complete --> Refund[Hyvitystapahtuma]
    Complete --> Partial[Osittainen hyvitystapahtuma]

    Auth --> Void[Pantin pidätys peruttu]

    style Order fill:#3b82f633,stroke:#3b82f6,stroke-width:2px
    style Checkout fill:#10b98133,stroke:#10b981,stroke-width:2px
    style Complete fill:#fef3c7,stroke:#f59e0b,stroke-width:2px
    style Refund fill:#e0e7ff,stroke:#6366f1,stroke-width:2px
    style Partial fill:#e0e7ff,stroke:#6366f1,stroke-width:2px
    style Void fill:#ef444433,stroke:#ef4444,stroke-width:2px
```

* **Pantin pidätys**: varaa varat kortilta ottamatta niitä. Käytetään vuokrausten noudoissa, jotta kauppias voi säätää lopullista summaa.
* **Veloitus**: ottaa varatut varat. Voi olla täysi veloitus tai osittainen veloitus varattua summaa pienemmästä määrästä.
* **Peruutus**: vapauttaa pantin pidätyksen veloittamatta. Käytetään, kun tilaus peruutetaan ennen noutoa.
* **Vanhentunut**: palveluntarjoaja perui pantin pidätyksen automaattisesti, koska sitä ei veloitettu voimassaoloajan kuluessa (Stripellä tyypillisesti noin 7 päivää).

### Pantit

Pantit ovat erillinen Payment-objekti varsinaisen veloituksen rinnalla. Tilauksella ne näkyvät omana lohkonaan, jolla on omat summat `authorised`, `captured`, `refunded` ja `cancelled`.

| Panttitapa                 | Miten se toimii                                                                                                                                                                         |
| :------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Automaattinen (kortti)** | Asiakkaan kortille tehdään lisäkatevaraus. Veloitetaan vain tarvittaessa (vaurio, myöhästynyt palautus), muuten perutaan. Edellyttää korttimaksutapaa — `CARD_STRIPE` tai `CARD_ADYEN`. |
| **Manuaalinen**            | Henkilökunta kirjaa, että pantti on otettu TWICEn ulkopuolella (käteinen, henkilökortti, tilisiirto). Vapautetaan palautuksessa asettamalla manuaalinen pantti takaisin nollaan.        |
| **Ei panttia**             | Useimmat kertaluonteiset myyntitilaukset.                                                                                                                                               |

Panttitapojen käytettävyys riippuu maksutavasta — `PAY_STORE` ja mukautetut manuaaliset tavat tukevat manuaalisia pantteja, kun taas korttitavat tukevat automaattisia korttipohjaisia pantteja.

<Note>
  Manuaaliset maksutavat (maksu noudettaessa, mukautetut tavat) ovat sallittuja kassalla myös silloin, kun tilaukseen sisältyy pantti. Tällöin pantti käsitellään manuaalisena panttina. Vain automaattisesti veloitettavia kestotilauksia sisältävät tilaukset edellyttävät korttimaksutapaa — pelkät pantit eivät.
</Note>

<Note>
  Jos korttipohjaista pantin katevarausta ei veloiteta palveluntarjoajan voimassaoloajan kuluessa (Stripellä tyypillisesti noin 7 päivää), palveluntarjoaja peruu sen automaattisesti. Maksut-välilehdellä nämä näkyvät tilassa **Expired**, toisin kuin manuaalinen vapautus, joka näkyy tilana **Peruutettu**. Lisätietoa pantin pidätyksen vanhenemisesta: [Pantit](/docs/fi/concepts/orders/deposits).
</Note>

### Osittaiset veloitukset ja osittaiset hyvitykset

Veloitetun tapahtuman voi hyvittää osittain useaan kertaan, kunnes se on hyvitetty kokonaan. Jokainen hyvitys luo uuden `refund`-tyyppisen maksutietueen, joka linkittyy alkuperäiseen maksuun kentällä `originalPaymentId`. Palveluntarjoaja voi peruuttaa hyvityksen (`refund_reverse`), esimerkiksi kun pankkihyvitys epäonnistuu ja raha palautuu sinulle. Veloittamatta rauennut pantin pidätys puolestaan tuottaa `expire`-tietueen.

Kun teet hyvityksen:

1. Määrität hyvitettävän **tapahtuman** ja **kokonaissumman**.
2. Halutessasi määrität, mitkä **maksurivit** hyvitetään ja kuinka paljon riviä kohti.
3. TWICE luo hyvitysmaksun ja päivittää alkuperäisen tapahtuman kentän `modificationSummary`.

<AccordionGroup>
  <Accordion title="Rivikohtainen (eksplisiittinen)">
    Määrität tarkalleen, mitkä maksurivit hyvitetään ja kuinka paljon kultakin. Rivikohtaisten summien on vastattava yhteenlaskettuna hyvityksen kokonaissummaa. Rivin summan asettaminen arvoon `null` hyvittää kyseisen rivin koko jäljellä olevan hyvitettävän summan.

    **Käyttötapaus**: yhden tuotteen hyvittäminen monituotteisesta tilauksesta muihin koskematta.
  </Accordion>

  <Accordion title="Suhteellinen (automaattinen)">
    Jätä maksurivit kokonaan pois. Hyvityssumma jaetaan suhteellisesti kaikille hyvitettäville riveille niiden jäljellä olevien hyvitettävien summien mukaan. Pyöristysjäännös menee suurimmalle riville.

    **Käyttötapaus**: kiinteän hyvän tahdon hyvityksen tekeminen tasaisesti jaettuna.
  </Accordion>
</AccordionGroup>

Alkuperäisen tapahtuman `modificationSummary` seuraa kahtatoista kenttää:

| Kenttä                 | Kuvaus                                                                                                                                                                                  |
| :--------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `capturedTotal`        | Onnistuneiden veloitusten summa.                                                                                                                                                        |
| `refundedTotal`        | Onnistuneiden hyvitysten bruttosumma. **Ei** ole netotettu peruutuksia vastaan — netota se kentän `refundReversedTotal` kanssa ennen jäljellä olevien hyvitettävien summien laskemista. |
| `refundReversedTotal`  | Onnistuneiden hyvitysten peruutusten summa — sinulle takaisin peritty hyvitysraha.                                                                                                      |
| `cancelledTotal`       | Peruttujen katevarausten summa.                                                                                                                                                         |
| `expiredTotal`         | Lunastamatta rauennut katevaraussumma.                                                                                                                                                  |
| `pendingRefundsTotal`  | Aloitetut mutta vielä selvittämättömät hyvitykset.                                                                                                                                      |
| `pendingCapturesTotal` | Aloitetut mutta vielä selvittämättömät veloitukset.                                                                                                                                     |
| `isPartiallyRefunded`  | `true`, kun summasta on hyvitetty osa (mutta ei kaikkea).                                                                                                                               |
| `isFullyRefunded`      | `true`, kun koko veloitettu summa on hyvitetty.                                                                                                                                         |
| `isCancelled`          | `true`, kun pantin pidätys on peruttu.                                                                                                                                                  |
| `isReversed`           | `true`, kun tämän tapahtuman hyvitys on peruttu.                                                                                                                                        |
| `isExpired`            | `true`, kun pantin pidätys on vanhentunut.                                                                                                                                              |

<Warning>
  `refundedTotal` on karkea bruttoluku. Peruttu hyvitys palauttaa rahat sinulle, joten todellisuudessa hyvitetty summa on `refundedTotal - refundReversedTotal`. Pelkän `refundedTotal`-kentän lukeminen yliarvioi hyvityksen.
</Warning>

<Warning>Hyvitykset käsitellään alkuperäisen maksupalveluntarjoajan kautta. Voit hyvittää vain tapahtumia, joiden tila on `succeeded` ja tyyppi `capture`.</Warning>

### Täsmäytys

<AccordionGroup>
  <Accordion title="Automaattinen täsmäytys">
    Integroitujen palveluntarjoajien kohdalla TWICE täsmää tapahtumat maksuihin automaattisesti, linkittää maksut kassoihin ja tilauksiin ja päivittää tilauksen maksun tilan sitä mukaa kun tapahtumat valmistuvat.
  </Accordion>

  <Accordion title="Manuaalinen täsmäytys">
    Manuaalisissa maksuissa (käteinen, tilisiirto, kolmannen osapuolen alustat) kirjaa maksu ja tapahtuma suoraan. Käytä maksupäivän, maksutavan ja ulkoisen viitteen kenttiä täsmäytykseen kirjanpitoa vasten.
  </Accordion>

  <Accordion title="Alv-kuitit">
    Kuitit muodostetaan **maksua kohti**, ei tapahtumaa kohti. Yksi maksu, jossa on kaksi tapahtumaa (lahjakortti + käteinen), tuottaa yhä yhden kuitin, joka kattaa molemmat maksutavat.
  </Accordion>
</AccordionGroup>

## Tuetut palveluntarjoajat

TWICE tukee kahta verkkomaksupalveluntarjoajaa ja manuaalista prosessia kaikkeen muuhun.

### Verkkomaksupalveluntarjoajat

| Palveluntarjoaja | Maksutavat                                                                                                                                                   | Toistuvat maksut           | Pantit                                             | Huomioita                                                                                                                                                                                                          |
| :--------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------- | :------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Stripe**       | Kortti (`CARD_STRIPE`), Apple Pay (`APPLE_PAY_STRIPE`), Google Pay (`GOOGLE_PAY_STRIPE`), MobilePay (`MOBILEPAY_STRIPE`), Pay by Bank (`PAY_BY_BANK_STRIPE`) | Kyllä (kortti ja lompakot) | Kyllä (automaattisesti kortin pantin pidätyksellä) | Yhdistetään Stripe Connectin kautta kohdassa **Asetukset → Maksut → Stripe**. Apple Pay ja Google Pay aktivoituvat automaattisesti — kytkintä ei tarvita. `CARD_ONLINE_STRIPE` on `CARD_STRIPE`-arvon vanha alias. |
| **Adyen**        | Kortti (`CARD_ADYEN`), Apple Pay (`APPLE_PAY_ADYEN`), Google Pay (`GOOGLE_PAY_ADYEN`)                                                                        | Kyllä (kortti)             | Kyllä (automaattisesti kortin pantin pidätyksellä) | Hallitaan kohdassa **Asetukset → Maksut**. Maksutapakohtaisia maa- ja valuuttarajoituksia sovelletaan.                                                                                                             |

<Note>
  **Stripe** ja **manuaaliset/offline**-maksut ovat kaikkien kauppojen käytettävissä. **Adyen** on käytössä vain valituilla kauppiailla (kuten myös **SumUp** läsnäolomaksupäätteille) — katso [Maksuasetukset](/docs/fi/settings/payments).
</Note>

### Apple Pay ja Google Pay Stripessä

Apple Pay ja Google Pay aktivoituvat automaattisesti, kun yhdistät Stripen ja otat korttimaksut käyttöön. Hallintapaneelissa ei ole kytkintä — lompakot johdetaan korttimaksutavasta ajonaikaisesti.

TWICE rekisteröi verkkokauppasi verkkotunnukset (aliverkkotunnuksen ja mahdolliset mukautetut verkkotunnukset) Stripeen Apple Payn verkkotunnusvahvistusta varten. Rekisteröinti tapahtuu automaattisesti, kun:

* Yhdistät Stripe-tilisi
* Vaihdat kauppasi aliverkkotunnuksen
* Otat mukautetun verkkotunnuksen käyttöön

Kassalla Stripe näyttää lompakkopainikkeet asiakkaan laitteen ja selaimen perusteella. Apple Pay näkyy Safarissa ja Applen laitteilla; Google Pay näkyy Chromessa ja Androidilla. Molemmat lompakot tukevat toistuvia maksuja (kestotilaukset) ja pantteja — Stripe tallentaa taustalla olevan kortin uudelleenkäytettäväksi maksutavaksi.

<Note>Apple Pay ei näy, kun kassa on upotettu iframeen. Tämä rajoitus ei koske Google Payta.</Note>

### Manuaaliset / offline-maksut

Manuaalisia tapoja on kaksi:

* **Pay in store** (`PAY_STORE`) — sisäänrakennettu tapa noudon yhteydessä perittävälle maksulle.
* **Mukautetut tavat** (`CUSTOM`) — itse nimeämiäsi tapoja, joilla kullakin on oma nimi ja valinnainen kuvaus. Luo niitä niin monta kuin tarvitset — ”Tilisiirto”, ”Lahjakortti”, ”Ulkoinen kassajärjestelmä”.

Käytä niitä myymälästä kerättyyn käteiseen, TWICEn ulkopuolella saatuihin tilisiirtoihin, maksupäätteisiin, joita ei ole integroitu Adyenin tai Stripen kautta, sekä myymäläkrediittiin.

Manuaaliset maksut tuottavat silti alv-kuitin, tukevat hyvityksiä (käsin syötettyinä) ja kertyvät tilauksen maksun tilaan täsmälleen samoin kuin verkkomaksut.

## Usein kysytyt kysymykset

<AccordionGroup>
  <Accordion title="Milloin alv-kuitti muodostetaan?">
    Maksun tasolla. Yksi maksu = yksi kuitti riippumatta siitä, kuinka monta tapahtumaa maksuun kuuluu. Jos asiakas maksaa 120 € jaettuna lahjakortin ja käteisen kesken yhdessä maksussa, kuitilla näkyy 120 € ja molemmat maksutavat eriteltyinä.
  </Accordion>

  <Accordion title="Miksi hyvitykset ovat erillisiä maksuja eivätkä negatiivisia tapahtumia?">
    Hyvitykset tarvitsevat oman alv-kuittinsa ja kirjausketjunsa. Luomalla linkitetyn hyvitysmaksun (`originalPaymentId` → alkuperäinen maksu) TWICE pitää alkuperäisen tapahtuman muuttumattomana ja seuraa silti hyvitysketjua.
  </Accordion>

  <Accordion title="Voinko veloittaa vähemmän kuin pantin pidätyksen summan?">
    Kyllä. Aseta veloitussumma pantin pidätyksen summaa pienemmäksi; loppuosa vapautetaan — kyseessä on osittainen veloitus.
  </Accordion>

  <Accordion title="Voinko kattaa pantin tekemällä pantin pidätyksen tilauksen loppusummaa suuremmasta summasta?">
    Et. Pantit käyttävät veloituksen rinnalla omaa Payment-objektiaan, jolla on oma pantin pidätys- ja veloituselinkaarensa. Näin raportointi ja hyvitykset pysyvät selkeinä.
  </Accordion>

  <Accordion title="Mitkä palveluntarjoajat tukevat kestotilauksia?">
    Stripen ja Adyenin korttimaksut. Myös Apple Pay ja Google Pay Stripessä tukevat kestotilauksia — Stripe tallentaa taustalla olevan kortin toistuvia off-session-veloituksia varten. Uudelleenohjaukseen perustuvat tavat (MobilePay, Pay by Bank) ja manuaaliset tavat ovat vain kertaluonteisia.
  </Accordion>

  <Accordion title="Mitä eroa on maksun tilalla ja tilauksen merkinnällä?">
    Merkintä on koonti. Jokaisella maksulla on taustalla tarkempi tila — pending, succeeded, partially refunded, refunded, refund reversed, cancelled, expired; merkintä tiivistää tilauksen kaikki maksut binääriseksi arvoksi **Paid / Unpaid** (`paymentStatus`: `PAID` / `UNPAID`).
  </Accordion>
</AccordionGroup>

## Kehittäjäviite

Tapahtumat on sidottu tilauksiin. Hyvitykset ja veloitukset löytyvät `payments`-päätepisteistä; palveluntarjoajien määritykset resurssista `paymentAccounts`.

<Card title="API: Payments" icon="code" href="https://server.twicecommerce.com/api/internal">
  Avaa päätepiste API-referenssissä.
</Card>

## Aiheeseen liittyvää

<CardGroup cols={2}>
  <Card title="Tilauksen elinkaari" icon="rotate" href="/docs/fi/concepts/orders/order-lifecycle">
    Tilauksen, maksun ja keräilyn tilat.
  </Card>

  <Card title="Tilaustyypit" icon="tags" href="/docs/fi/concepts/orders/order-types">
    Miten ostotyyppi muokkaa maksuprosessia.
  </Card>

  <Card title="Integraatiot" icon="plug" href="/docs/fi/concepts/integrations/overview">
    Yhdistä Stripe ja hallitse maksupalveluntarjoajia.
  </Card>

  <Card title="Raportit" icon="chart-bar" href="/docs/fi/reports">
    Talousraportit ja täsmäytys.
  </Card>
</CardGroup>
