vents.hu Webáruház
← Vissza a webshopba

Vents Hungary – Reseller API dokumentáció

Ez a dokumentáció a webshop Reseller API-ját írja le: a hitelesítést, az elérhető végpontokat, a korlátozásokat és a használati példákat. A jelenlegi verzió: v1.

Áttekintés

A Reseller API egy JSON alapú, csak olvasható REST API, amellyel a partnerek lekérdezhetik a termékeket, az árakat, a kategóriákat és a saját partneradataikat.

TulajdonságÉrték
Base URLhttps://webshop.vents.hu/api/v1
Verzióv1
FormátumJSON (UTF-8)
HitelesítésHMAC-SHA256 aláírás

Authentikáció

Minden kérést HMAC-SHA256 aláírással kell hitelesíteni. Ehhez egy kulcspárra van szükség:

  • Public key – nyilvános azonosító, a kérés fejlécében küldendő.
  • Private key – titkos kulcs, ezzel képződik az aláírás. Soha ne küldd el és ne tedd közzé!

A kulcspárt magad hozhatod létre és törölheted ezen az oldalon, az API kulcsok szakaszban (ehhez be kell jelentkezned). A privát kulcs csak egyszer, a létrehozáskor jelenik meg – ekkor kell biztonságos helyre elmenteni, később már nem kérhető le újra.

Kötelező fejlécek

FejlécLeírás
X-Api-KeyA public key.
X-Api-TimestampAz aktuális Unix időbélyeg (másodperc).
X-Api-SignatureA lentebb leírt módon számított HMAC-SHA256 aláírás (hexadecimális).

Az aláírás kiszámítása

Az aláírandó szöveg (payload) három sorból áll, sortörés (\n) elválasztóval:

payload
{HTTP_METÓDUS}\n{ÚTVONAL}\n{IDŐBÉLYEG}
  • HTTP_METÓDUS – nagybetűvel, pl. GET.
  • ÚTVONAL – a kérés útvonala perjellel kezdve, query paraméterek nélkül, pl. /api/v1/products.
  • IDŐBÉLYEG – ugyanaz az érték, amit a X-Api-Timestamp fejlécben küldesz.

Az aláírás ebből: hash_hmac("sha256", payload, private_key) – az eredmény hexadecimális karakterlánc.

példa payload
GET\n/api/v1/products\n1747300000

Korlátozások

Az API végpontonként korlátozza a kérések számát. A limitek API kulcsonként értendők. A limit túllépésekor a szerver 429 Too Many Requests választ ad.

VégpontÓránkéntNaponta
GET /me200050000
GET /products60500
GET, POST /prices601000
GET /categories30200

Endpointok

A végpontok többsége GET metódusú; a /prices végpont POST metódussal is hívható (nagy SKU-lista lekérésére). Minden kérés a fenti módon hitelesítést igényel. Az alábbi útvonalak a Base URL-hez (https://webshop.vents.hu/api/v1) relatívak.

GET/api/v1/me

A bejelentkezett partner adatai

Visszaadja az API kulcshoz tartozó partner alap­adatait. Nincs paramétere.

200 OK – válasz
{
  "resource": "me",
  "id": 123,
  "email": "partner@pelda.hu",
  "firstname": "Anna",
  "lastname": "Kovács",
  "partner_code": "P-00123",
  "currency": "HUF",
  "payment_day": 15
}
GET/api/v1/products

Termékek listája (lapozott)

Az aktív termékeket adja vissza, név szerint rendezve.

ParaméterTípusLeírás
per_pageegész szám, opcionálisOldalankénti elemszám (min. 1). Alapérték: 100. Nincs felső korlát.
pageegész szám, opcionálisA kért oldal száma. Alapérték: 1.

Ha az összes terméket egy oldalon szeretnéd letölteni, adj meg egy kellően nagy értéket a per_page paraméterben, pl. per_page=9999999.

200 OK – válasz (részlet)
{
  "data": [
    {
      "resource": "api_product",
      "name": "VENTS 100 Quiet ventilátor",
      "slug": "vents-100-quiet",
      "sku": "V100Q",
      "description": "Csendes axiális ventilátor...",
      "category": {
        "id": 4,
        "name": "Axiális ventilátorok",
        "slug": "axialis-ventilatorok"
      },
      "primary_image_url": "https://.../v100q.jpg",
      "images": [
        { "id": 11, "url": "https://.../v100q.jpg", "sort_order": 0 }
      ]
    }
  ],
  "links": { "first": "...", "last": "...", "prev": null, "next": "..." },
  "meta": { "current_page": 1, "last_page": 14, "per_page": 100, "total": 1356 }
}
GET/api/v1/prices

Árak és készlet (SKU alapján vagy teljes lista)

A megadott cikkszámokhoz (SKU) tartozó árakat és készletet adja vissza. Ha a skus paramétert nem adod meg, az összes aktív termék árát visszaadja lapozva.

ParaméterTípusLeírás
skusszöveg, opcionálisVesszővel elválasztott SKU lista, pl. „V100Q,V125Q". Ha hiányzik, a teljes (lapozott) árlistát kapod.
per_pageegész szám, opcionálisCsak teljes listánál. Oldalankénti elemszám (min. 1). Alapérték: 100. Nincs felső korlát.
pageegész szám, opcionálisCsak teljes listánál. A kért oldal száma. Alapérték: 1.

Sok cikkszám lekéréséhez használd inkább a lenti POST /api/v1/prices hívást, mert a GET URL hossza korlátos.

200 OK – válasz
{
  "data": [
    {
      "resource": "api_price",
      "sku": "V100Q",
      "price": 12990.00,
      "sale_price": 10990.00,
      "discount_price": 9990.00,
      "quantity": 42,
      "in_stock": true
    }
  ]
}

Az árak a partner pénznemében (currency) értendők. Az egyes mezők jelentését lásd az Árazás és kedvezmények résznél.

POST/api/v1/prices

Árak és készlet sok SKU-hoz (tömeges lekérés)

Ugyanazt adja vissza, mint a GET változat, de a cikkszámokat a kérés törzsében (JSON body) várja. Így nincs URL-hosszkorlát – egyetlen hívással akár több ezer SKU ára lekérhető, ami a kéréslimit miatt sokkal hatékonyabb.

MezőTípusLeírás
skustömb, kötelezőSKU-k tömbje a JSON body-ban. Nincs felső darabszám-korlát.

Az aláírást a POST metódussal kell számolni (a body nem része az aláírásnak).

kérés törzse (JSON)
{
  "skus": ["V100Q", "V125Q", "V150Q"]
}
200 OK – válasz
{
  "data": [
    {
      "resource": "api_price",
      "sku": "V100Q",
      "price": 12990.00,
      "sale_price": 10990.00,
      "discount_price": 9990.00,
      "quantity": 42,
      "in_stock": true
    }
  ]
}
GET/api/v1/categories

Kategóriafa

A teljes aktív kategóriafát adja vissza, beágyazott children tömbökkel. Nincs paramétere.

200 OK – válasz (részlet)
{
  "data": [
    {
      "resource": "api_category",
      "id": 1,
      "name": "Ventilátorok",
      "slug": "ventilatorok",
      "parent_id": null,
      "product_count": 320,
      "children": [
        {
          "resource": "api_category",
          "id": 4,
          "name": "Axiális ventilátorok",
          "slug": "axialis-ventilatorok",
          "parent_id": 1,
          "product_count": 86,
          "children": []
        }
      ]
    }
  ]
}

Hibakódok

Hiba esetén a szerver a megfelelő HTTP státuszkóddal és egy message mezőt tartalmazó JSON objektummal válaszol.

KódJelentésLehetséges ok
401UnauthorizedHiányzó hitelesítő fejléc, lejárt időbélyeg, ismeretlen API kulcs vagy érvénytelen aláírás.
403ForbiddenA fiókod nem jogosult az API használatára, vagy a hozzáférés megszűnt.
422Unprocessable EntityHibás vagy hiányzó paraméter (pl. nincs megadva SKU lista a POST /prices kérés törzsében).
429Too Many RequestsTúllépted az adott végpont óránkénti vagy napi limitjét.
példa hibaválasz – 401
{ "message": "Invalid signature." }

Árazás és kedvezmények

A /prices végpont árai a partner saját kedvezményeit is figyelembe veszik. A mezők jelentése:

MezőJelentés
priceA katalógus szerinti listaár.
sale_priceÁltalános akciós ár, ha van; egyébként null.
discount_priceA partner egyedi kedvezményeivel (partner­kódhoz kötött termék- és kategória­kedvezmények) számolt ár. Csak akkor van kitöltve, ha kedvezőbb a listaárnál; egyébként null.
quantityAz aktuálisan raktáron lévő mennyiség.
in_stockIgaz, ha a quantity nagyobb mint 0.

A fizetendő ár meghatározásához a legalacsonyabb elérhető (nem null) értéket érdemes használni. Az árak mindig a partner pénznemében (HUF vagy EUR) értendők – ezt a /me végpont currency mezője adja meg.

Kód példák

Az alábbi példák a /api/v1/products végpont hívását mutatják be. Válaszd ki a kívánt programozási nyelvet, majd cseréld le a PUBLIC_KEY és PRIVATE_KEY értékeket a saját kulcsaidra.

PUBLIC_KEY="a_te_public_kulcsod"
PRIVATE_KEY="a_te_private_kulcsod"
METHOD="GET"
ENDPOINT="/api/v1/products"
TS=$(date +%s)

PAYLOAD=$(printf '%s\n%s\n%s' "$METHOD" "$ENDPOINT" "$TS")
SIG=$(printf '%s' "$PAYLOAD" | openssl dgst -sha256 -hmac "$PRIVATE_KEY" | awk '{print $NF}')

curl "https://webshop.vents.hu/api/v1/products?per_page=50" \
  -H "X-Api-Key: $PUBLIC_KEY" \
  -H "X-Api-Timestamp: $TS" \
  -H "X-Api-Signature: $SIG" \
  -H "Accept: application/json"

Fontos: az aláírásba kerülő útvonal mindig query paraméterek nélkül értendő (/api/v1/products), akkor is, ha a kérés tartalmaz ?per_page=50 jellegű paramétert.

Postman

Az API kipróbálásához letölthető egy kész Postman kollekció, amely mind a négy végpontot tartalmazza. A HMAC-SHA256 aláírást a kollekció beépített pre-request szkriptje minden kérés előtt automatikusan kiszámítja – csak a kulcsokat kell megadni.

Postman kollekció letöltése

Beállítás

  1. A Postmanben kattints az Import gombra, és válaszd ki a letöltött fájlt.
  2. Nyisd meg a kollekciót, és a Variables fülön töltsd ki a következőket:
VáltozóÉrték
hostA webshop címe (séma és domain), pl. https://webshop.vents.hu
public_keyA kapott nyilvános kulcs.
private_keyA kapott privát (titkos) kulcs.

A timestamp és signature változókat nem kell kitölteni – ezeket a pre-request szkript minden kérésnél automatikusan beállítja.

Integrációs segítség

Ha szeretnéd, hogy a webshopod összekössük a saját rendszereddel, szívesen segítünk. Az API-t a smartleap.hu fejleszti és támogatja.

Smart Leap Services Kft.

Változásnapló

Itt követheted nyomon, hogy az API-ban mikor milyen változás történt (új végpontok, fejlesztések, javítások).

v1.1.0

Tömeges árlekérés és teljes árlista

2026. június 4.

Fejlesztések

  • Tömeges árlekérés — Az árlekérő végpont (/api/v1/prices) mostantól POST kéréssel is hívható, ahol a cikkszámlistát a kérés törzsében (JSON) küldöd. Így nincs URL-hosszkorlát, és egyetlen kéréssel akár több ezer termék ára lekérhető — felső darabszám-korlát nélkül.
  • Teljes árlista — Ha a GET /api/v1/prices hívásnál nem adsz meg cikkszámot, a végpont a teljes aktív árlistát adja vissza, lapozva (per_page, page).
  • Megemelt kéréskorlátok — Az API óránkénti és napi kéréskorlátai jelentősen megemelve, hogy a teljes termék- és árlista szinkron egyetlen menetben, fennakadás nélkül lefusson. Termékek: 60/óra, 500/nap; árak (/prices): 60/óra, 1000/nap; kategóriák: 30/óra, 200/nap. A saját partneradatok lekérdezése (/me) gyakorlatilag korlátlan. A pontos korlátok a „Korlátozások" szakaszban találhatók.
v1.0.0

Reseller API első kiadás

2026. május 1.

Új funkciók

  • Partner API elérhető — A partnerek mostantól programozottan lekérdezhetik az adataikat. Elérhető végpontok: saját partneradatok (/me), termékek listája (/products), kategóriafa (/categories) és árak/készlet (/prices).
  • Biztonságos hitelesítés — Minden kérés aláírással (HMAC-SHA256) hitelesített, egyedi API kulcspárral. A kulcsokat a felhasználók saját maguk hozhatják létre az API oldalon.
  • Kéréskorlátok — Az egyes végpontok óránkénti és napi kéréskorláttal védettek, API kulcsonként számolva.

API kulcsok

Itt kezelheted a saját API kulcsaidat: új kulcspárt hozhatsz létre, és törölheted a feleslegessé váltakat. A kulcskezeléshez be kell jelentkezned.

A Reseller API hívásai csak partner fiókhoz tartozó kulccsal működnek. Ha a fiókod nem partner típusú, és API hozzáférésre van szükséged, keresd az ügyfélszolgálatot.

Az API kulcsok kezeléséhez jelentkezz be. Bejelentkezés után itt tudsz saját API kulcsot létrehozni és törölni.