Remote offter integracija

Remote Offer je namenjen vsem primerom, ko kupec ni fizično prisoten. Ponudba se pošlje na daljavo, kupec pa jo prejme po SMS in podpiše na svojem telefonu, kjerkoli je.

Tipični primeri uporabe: telefonska prodaja, kjer prodajalec pokliče stranko in ji pošlje ponudbo, ki jo ta podpiše takoj; ter dodatna prodaja po nakupu, kjer kupec naknadno doda dodatek ali podaljšano garancijo — trgovec pošlje ponudbo, ne da bi se kupec vrnil v trgovino.

Trgovec sproži kreditno zahtevo iz svojega CRM ali ERP sistema, ali pa neposredno v Vendor aplikaciji (slednje ne zahteva razvoja). Leanpay kupcu pošlje SMS s povezavo za podpis; kupec povezavo odpre, dopolni potrebne podatke, digitalno podpiše pogodbo na svojem telefonu, trgovec pa prejme status. Od ponudbe do podpisane pogodbe v nekaj minutah.

Potek je razdeljen na dve fazi. V prvi fazi trgovec ustvari in pošlje ponudbo, kupec jo podpiše. Druga faza sledi po podpisu — preverjanje, potrditev dostave in morebitni spori; ta del si deli z Web integracijo, saj uporablja iste endpointe.

Prva faza — ustvarjanje ponudbe

Trgovec ustvari kreditno zahtevo s kupčevimi kontaktnimi podatki, zneskom in rokom veljavnosti. Leanpay kupcu pošlje SMS s povezavo, kupec podpiše, trgovec pa spremlja status do končnega stanja.

Prva faza — ustvarjanje in pošiljanje ponudbe
Prva faza — ustvarjanje in pošiljanje ponudbe na daljavo.
Klikni za povečavo
1
Ustvarjanje kreditne zahteve
POST/vendor/custom/credit-request
Zaledni sistem trgovca pošlje kreditno zahtevo Leanpayu s kupčevimi kontaktnimi podatki, zahtevanim zneskom in rokom, do katerega ponudba velja.
Kaj pošljemo — JSON body:
POST /vendor/custom/credit-request HTTP/1.1
Host: app.leanpay.si
Content-Type: application/json

{
  "vendorApiKey": "d6b5b4ed-833b-43e8-ae44-5724b423ee49",
  "vendorTransactionId": "trx6298",
  "amount": 599.00,
  "validUntil": 1780056000000,
  "vendorProductCode": "a4da54b9-54f0-47db-9898-11244a4c9308",
  "vendorItemDescription": "Prenosni računalnik",
  "customerPhoneNumber": "38640123456",
  "customerEmail": "janez.novak@example.com",
  "customerFirstName": "Janez",
  "customerLastName": "Novak",
  "customerAddress": "Slovenska cesta",
  "customerHouseNumber": "12",
  "customerZip": "1000",
  "customerCity": "Ljubljana"
}

Obvezna polja: vendorApiKey, vendorTransactionId, amount, validUntil, customerPhoneNumber, customerEmail. Opcijska: vendorProductCode, vendorItemDescription in ostala polja o kupcu.

validUntil je UNIX časovni žig v milisekundah — datum, do katerega ponudba velja. V primeru zgoraj 1780056000000 ustreza 2026-05-29T12:00:00Z (en teden od ustvarjanja). vendorProductCode določa finančni produkt; če je izpuščen, se uporabi privzeti.
Kaj Leanpay vrne:

HTTP 200 s praznim telesom. Po sprejemu zahteve Leanpay pošlje SMS na customerPhoneNumber s povezavo za podpis.

2
Kupec podpiše na svojem telefonu
Z vidika trgovca je ta korak pasiven. Kupec odpre povezavo iz SMS, dopolni vlogo in podpiše pogodbo na svojem telefonu. Med tem oknom trgovcu ni treba klicati nobenega API-ja.
3
Spremljanje statusa kreditne zahteve
POST/vendor/custom/credit-request-status
Trgovec spremlja status kreditne zahteve, dokler ta ne doseže končnega stanja.
Kaj pošljemo — JSON body:
POST /vendor/custom/credit-request-status HTTP/1.1
Host: app.leanpay.si
Content-Type: application/json

{
  "vendorApiKey": "d6b5b4ed-833b-43e8-ae44-5724b423ee49",
  "vendorTransactionId": "trx6298"
}
Kaj Leanpay vrne:
{
  "status": "SUCCESS"
}
Remote Offer uporablja spremljanje statusa (polling), ne md5-podpisanega callbacka. Status SUCCESS pomeni, da je kupec podpisal pogodbo in je kredit aktiven.

Druga faza — dostava

Ko je status SUCCESS, je kupec podpisal pogodbo in kredit je aktiven. Od tu naprej Remote Offer uporablja iste endpointe kot Web integracija — preverjanje, potrditev dostave in spori.

Druga faza — preverjanje in dostava
Druga faza — preverjanje in potrditev dostave.
Klikni za povečavo
4
Preveri status verifikacije
GET/api/verification-document/get
Pred odpremo se pri Leanpayu preveri, ali je kupec verificiran. Od odgovora je odvisno, ali se blago pošlje takoj ali ga je treba preveriti ob dostavi. Klic poteka prek query parametrov vendorApiKey in vendorTransactionId.
Odgovor (200):
{
  "vendorTransactionId": "trx6298",
  "verificationStatus": "VERIFIED"
}
VERIFIED — kupec je v celoti verificiran, blago se lahko pošlje neposredno. CREATED — vloga je potrjena na podlagi podanih podatkov, a verifikacija še ni opravljena; dokončno se potrdi ob dostavi (kurir ali osebje).
5
Potrditev dostave
POST/vendor/transaction/delivery
Ko je kupec verificiran (ali je preverjanje ob dostavi opravljeno), trgovec Leanpayu potrdi dostavo. S tem transakcija postane upravičena do izplačila in se uvrsti v naslednji tedenski cikel. Status ostane SUCCESS (ločenega statusa za dostavo ni).
Kaj pošljemo — request body:
POST /vendor/transaction/delivery HTTP/1.1
Host: app.leanpay.si
Content-Type: application/json

{
  "vendorApiKey": "d6b5b4ed-833b-43e8-ae44-5724b423ee49",
  "vendorTransactionId": "trx6298"
}

Za delno dostavo se doda polje amount z zneskom, strogo nižjim od prvotnega — Leanpay samodejno prilagodi znesek kredita, brez nove ponudbe in ponovnega podpisa.

Dodatni API

POSTSpori — /vendor/transaction/dispute

Spor (dispute) se odpre, kadar je treba kredit preklicati po dostavi — najpogosteje ob vračilu izdelka ali napačnem naročilu. Endpointi za spore so vezani na transakcijo in so enaki kot pri Web integraciji.

AkcijaMetodaEndpoint
Odpri sporPOST/vendor/transaction/dispute
Preveri status sporaPOST/vendor/transaction/dispute/status

Telo ob odprtju spora (vsa polja obvezna):

{
  "vendorApiKey": "d6b5b4ed-833b-43e8-ae44-5724b423ee49",
  "vendorTransactionId": "trx6298",
  "message": "Kupec je vrnil izdelek"
}
Življenjski cikel spora
Življenjski cikel spora.
Klikni za povečavo
StatusPomen
NEWSpor je odprt in čaka na pregled.
IN_REVIEWLeanpay pregleduje spor.
APPROVEDSpor je potrjen, kredit preklican.
REJECTEDSpor je zavrnjen, kredit ostane aktiven.
CLOSEDSpor je rešen in zaprt.
Napake kreditne zahteve

Napake se vrnejo s HTTP 400 in kodo v telesu odgovora.

KodaPomen
VENDOR_API_VENDOR_UNKNOWNNeznan vendor API ključ.
VENDOR_API_VENDOR_TRANSACTION_ID_DUPLICATEDTransakcijski ID je že bil poslan.
VENDOR_API_MIN_AMOUNT_EXCEEDEDZnesek je pod dovoljenim minimumom.
VENDOR_API_MAX_AMOUNT_EXCEEDEDZnesek presega dovoljeni maksimum.
VENDOR_API_VALID_UNTIL_ERRORDatum veljavnosti je v preteklosti.
VENDOR_WRONG_PRODUCT_CODENeznana koda finančnega produkta.

Tehnične osnove

Predpogoji, okolja in avtentikacija

Predpogoji

  • Aktiven Leanpay vendor račun
  • API Key (Vendor aplikacija, razdelek Podjetje > Development)
  • Zaledni sistem za klice (ali uporaba Vendor aplikacije brez razvoja)

Okolja

OkoljeHost
Stage (testno)https://stage-app.leanpay.si
Produkcijahttps://app.leanpay.si

Avtentikacija

Remote Offer ne uporablja avtentikacijskih headerjev. Vsak zahtevek nosi vendorApiKey v JSON bodyju. Status se pridobi s spremljanjem (polling), ne prek md5-podpisanega callbacka.

Identifikatorji

vendorTransactionId je oznaka transakcije na strani trgovca in se uporablja v vseh nadaljnjih klicih (status, verifikacija, dostava, spor). validUntil je UNIX časovni žig v milisekundah.

×
Diagram v polni velikosti
Klikni sliko za povečavo · Esc za zapri