Verni API
dokumentacija
Verni B2B API omogućava kompaniji koja već ima aplikaciju za porudžbine da doda loyalty program bez sopstvenog razvoja. Partner nam javlja posete, a mi vodimo brojanje i nagrade.
Programi lojalnosti
- Program poseta: kupac skuplja posete, a kad pređe prag dobija nagradu.
- Program potrošnje: kupac dobija nagradu kad ukupna potrošnja pređe zadati iznos.
- Program cashback-a: kupac dobija procenat računa nazad na svoj balans.
Vaučeri
Kad kupac pređe prag, može da napravi vaučer za nagradu.
Uključivanje
- Mi registrujemo partnerov lokal u Verni portalu.
- U portalu podešavamo program lojalnosti i nagrade.
- Partneru predajemo API ključ vezan za njegov lokal.
Autentikacija
Svaki poziv mora da sadrži API ključ u Authorization zaglavlju. Ključ je vezan za jedan lokal, pa se lokal nikad ne šalje u pozivu.
Neispravan, opozvan ili istekao ključ vraća 401. Ograničenje je 120 poziva u minuti po ključu, a prekoračenje vraća 429 sa Retry-After zaglavljem.
https://sandbox-api.verni.rs/v1
Content-Type: application/json Accept: application/json
Authorization: Bearer vrn_live_...
GET /me
Vraća detalje lokala za koji je izdat API ključ. Koristite ga da proverite da li je ključ ispravan i da dobijete podatke o lokalu.
Odgovor
- id, name, slug: identifikacija lokala.
- type: tip lokala, npr.
restaurant. - is_enabled: da li je lokal aktivan u Verni sistemu.
- email, phone, address, city, postal_code, website_url: kontakt i adresa, mogu biti
null. - logo_url: adresa logotipa lokala.
- lat, lng: koordinate, ili
null.
Greške
- 401: ključ nedostaje, neispravan, opozvan ili istekao.
- 429: prekoračeno ograničenje poziva.
curl https://sandbox-api.verni.rs/v1/me \ -H "Authorization: Bearer vrn_live_..." \ -H "Accept: application/json"
{
"data": {
"id": 42,
"name": "Pizzeria Napoli",
"slug": "pizzeria-napoli",
"type": "restaurant",
"is_enabled": true,
"email": "[email protected]",
"phone": "+381601234567",
"address": "Knez Mihailova 10",
"city": "Beograd",
"postal_code": "11000",
"website_url": null,
"logo_url": "https://app.verni.rs/storage/logos/napoli.png",
"lat": 44.8176,
"lng": 20.4569
}
}
{
"message": "Invalid API key."
}
Unesite API ključ u zaglavlju i pošaljite zahtev.
GET /reward-programs
Vraća programe lojalnosti lokala za koji je izdat API ključ. Vraćaju se samo uključeni programi koji su trenutno aktivni, a welcome program je uvek prvi.
Odgovor
- id, name, description: identifikacija i opis programa, opis može biti
null. - is_welcome: da li je ovo welcome program, tj. nagrada za prvu posetu.
- trigger.visit_count: broj poseta potreban za nagradu, ili
null. - trigger.amount_spent: ukupna potrošnja potrebna za nagradu, ili
null. - trigger.menu_items: stavke menija sa traženom količinom (
id,name,quantity). Prazna lista ako program ne koristi stavke menija. - reward.type:
reward_product(besplatan proizvod),discount_percent(popust u procentima) ilidiscount_fixed(fiksni popust). - reward.value, reward.description: vrednost nagrade i njen opis.
- active_from, active_until: period važenja u ISO 8601 formatu, ili
nullako nije ograničen.
Greške
- 401: ključ nedostaje, neispravan, opozvan ili istekao.
- 429: prekoračeno ograničenje poziva.
curl https://sandbox-api.verni.rs/v1/reward-programs \ -H "Authorization: Bearer vrn_live_..." \ -H "Accept: application/json"
{
"data": [
{
"id": 7,
"name": "Dobrodošlica",
"description": null,
"is_welcome": true,
"trigger": {
"visit_count": 1,
"amount_spent": null,
"menu_items": []
},
"reward": {
"type": "discount_percent",
"value": 10,
"description": "10% popusta na prvu porudžbinu"
},
"active_from": null,
"active_until": null
},
{
"id": 8,
"name": "Svaka peta pizza",
"description": "Skupi 5 pizza, šesta je besplatna.",
"is_welcome": false,
"trigger": {
"visit_count": null,
"amount_spent": null,
"menu_items": [
{ "id": 31, "name": "Margarita", "quantity": 5 }
]
},
"reward": {
"type": "reward_product",
"value": 1,
"description": "Besplatna Margarita"
},
"active_from": "2026-11-01T00:00:00+01:00",
"active_until": null
}
]
}
{
"message": "Invalid API key."
}
Unesite API ključ u zaglavlju i pošaljite zahtev.
