Siirry sisältöön

Hintatarjoukset ja pyöristys

Jokainen maksuaikomus on määritetty fiat-valuutassa (EUR, USD, BRL tai GBP). Ennen kuin asiakas maksaa, summasta on tultava tarkka määrä jotakin kryptovaraa.

Live-maksut käsitellään alustan Bitcart-tilillä. Kun kassa avaa Bitcart-laskun (POST /v1/public/checkout-sessions/{id}/processor-invoice), Bitcart hinnoittelee aikomuksen fiat-summan jokaisessa hyväksytyssä varassa. Jokainen istunnon processor.methods-luettelon merkintä sisältää:

  • amount — tarkka desimaalisumma, joka lähetetään kyseisenä varana;
  • rate — Bitcartin käyttämä vaihtokurssi (laskun valuuttaa varan yksikköä kohden);
  • address ja payment_url — minne maksetaan, sekä lompakko-URI QR-koodeja varten;
  • divisibility ja tokeneille contract.

Kassa merkitsee kurssin Bitcartin vaihtokurssiksi. FeitPay ei aseta sitä, ei lisää siihen marginaalia eikä tarjoa sitä hintaviitteeksi. Lasku vanhenee aikomuksen maksuikkunan päättyessä.

Hintatarjoukset pelkkään seurantaan perustuvassa käsittelyssä

Osio nimeltä “Hintatarjoukset pelkkään seurantaan perustuvassa käsittelyssä”

Pelkkään seurantaan perustuvassa käsittelyssä (katso Lompakot; tämä alusta ei käytä sitä maksuihin) yhdyskäytävä antaa itse hintatarjouksen (quote), kun asiakas valitsee verkon ja varan: muuttumattoman, versioidun muunnoksen fiat-summastasi tarkaksi varasummaksi, joka on lukittu rajoitetuksi ajaksi.

{
"id": "qt_01J…",
"object": "quote",
"network_id": "bitcoin:mainnet",
"asset_id": "btc",
"asset_symbol": "BTC",
"decimals": 8,
"fiat_amount": "59.90",
"fiat_currency": "EUR",
"asset_amount": "0.00099834",
"asset_amount_base_units": "99834",
"rate": "60000.00",
"spread_bps": 0,
"rounding_policy": "ceil_to_asset_base_unit",
"required_confirmations": 3,
"status": "active",
"network_fee_paid_by": "customer",
"platform_fee_billed_separately": true
}

(Lyhennetty; yllä olevat arvot ovat havainnollistavia eivätkä ole hinta.)

Pyöristyssääntö: ceil_to_asset_base_unit

Osio nimeltä “Pyöristyssääntö: ceil_to_asset_base_unit”

Varasumma lasketaan tarkalla rationaalilukuaritmetiikalla ja pyöristetään ylöspäin seuraavaan perusyksikköön (satoshi, tokenin yksikkö), joten kauppias ei koskaan saa pyöristyksen vuoksi laskutettua arvoa vähemmän:

units = ceil( fiat_amount / rate × 10^decimals × (1 + spread_bps / 10 000) )
59.90 / 60000 × 10^8 = 99833.33… → 99834 sats

Missään vaiheessa ei käytetä binäärisiä liukulukuja. Jos jakolasku menee tasan, mitään ei lisätä.

Lähteet, vanhentuneet hinnat ja virhetilanteet

Osio nimeltä “Lähteet, vanhentuneet hinnat ja virhetilanteet”

Rakenne edellyttää ensisijaista markkinasyötettä sekä toissijaista tarkistuslähdettä, hylkää vanhentuneet hinnat ja raja-arvoa enemmän poikkeavat hinnat ja epäonnistuu turvallisesti (fails closed): jos luotettavaa kurssia ei ole saatavilla, tarjousta ei anneta. Tarjous kirjaa todisteiksi kentät rate_source, secondary_source ja deviation_bps.

Jokaisella tarjouksella on locked_at ja expires_at. Siirto, joka nähdään ensimmäisen kerran ennen expires_at-hetkeä, lasketaan ajoissa saapuneeksi, vaikka se vahvistuisi myöhemmin. Vanhenemisen jälkeen kassa tarjoaa toiminnon Päivitä tarjous (POST /v1/public/checkout-sessions/{id}/refresh-quote), joka korvaa vanhan tarjouksen uudella samassa verkossa ja samalla osoitteella. Aikomuksen oma expires_at rajaa edelleen, kuinka kauan asiakas voi jatkaa maksamista.

  • Varasumma on se, mitä asiakkaan on lähetettävä.
  • Verkkomaksut maksaa lähettäjä tämän lisäksi.
  • Alustan palvelumaksut laskutetaan kauppiaalta erikseen — niitä ei koskaan vähennetä maksusta.