Tovább a tartalomhoz
KomashiKomashi

REST API-integráció

A REST API-val a saját szerveroldali alkalmazásodat kapcsolhatod a Komashihoz. Lekérdezheted a katalógust, kezelheted az ügyfeleket és kapcsolattartóikat, elindíthatod az előfizetések fizetési folyamatát, rögzítheted a felhasználást és lekérdezheted a számlákat.

A végpont és a referencia megkeresése

Szekció neve “A végpont és a referencia megkeresése”

Nyisd meg a Vezérlőközpont → Integráció → API oldalt. Itt találod a Dokumentáció hivatkozását és az API-végpontot. Az ott megjelenített végpontot másold ki; az már tartalmazza a verzió előtagját.

Az API-kulcsok oldala a dokumentáció hivatkozásával és az API-végponttal

A nyilvános szolgáltatás verziózott végpontja:

https://api.komashi.com/v1

A helyi fejlesztői környezet címe ettől eltérhet, például https://komashi-app.test/api/v1. Mindig a saját környezetedben megjelenített értéket használd; ne találgatással egészítsd ki /api vagy /v1 útvonallal.

A Dokumentáció az interaktív OpenAPI-referenciát nyitja meg. Az egyes műveletek pontos mezőit, válaszsémáit és ellenőrzési szabályait ott találod.

Hozz létre egy szolgáltatói kulcsot az Integráció → API oldalon. Az Authorization fejlécben add át, és JSON-választ kérj:

Terminál
export KOMASHI_API_BASE='https://api.komashi.com/v1'
export KOMASHI_API_KEY='YOUR_PROVIDER_API_KEY'
curl "$KOMASHI_API_BASE/services" \
-H "Authorization: Bearer $KOMASHI_API_KEY" \
-H 'Accept: application/json'

A valódi kulcsot szerveroldali környezeti változóban vagy titokkezelőben tárold. A kulcs azonosítja a szolgáltatót, ezért a szokásos szolgáltatói kulcsos kéréshez nem kell külön szolgáltatóazonosító-fejléc.

A kulcsnak rendelkeznie kell az adott művelet jogosultságával. Az első lekérdezéshez az Olvasás elegendő. Előfizetési fizetési folyamat létrehozásához Létrehozás, felhasználás frissítéséhez és előfizetés lemondásához Frissítés szükséges. A jogosultságot nem lehet kizárólag a HTTP-metódusból megállapítani.

A válaszok közös mezői:

{
"succeeded": true,
"status_code": 200,
"data": []
}

A data tartalmazza az eredményt: ez a művelettől függően lehet egy erőforrás, lista, fizetési eredményobjektum vagy null. További mezők, például message, validációs errors, links és meta is megjelenhetnek. Egyes végpontok error vagy code mezőt is visszaadnak; ne feltételezz egyetlen, minden hibára azonos sémát.

A belsőleg 204 No Content eredményt adó sikeres műveletek HTTP 200 válaszként érkeznek, data: null értékkel. Törlés után ezért ne kizárólag a 204-es státuszt tekintsd sikeresnek.

A lapozható listák page és per_page paramétert fogadnak. Az alapértelmezett oldalméret 25, a legnagyobb 100. Ha van links és meta, ezeket is dolgozd fel a folytatáshoz.

Terminál
curl "$KOMASHI_API_BASE/customers?page=1&per_page=25" \
-H "Authorization: Bearer $KOMASHI_API_KEY" \
-H 'Accept: application/json'

Az alábbi útvonalak a verziózott API-végponthoz relatívak.

KérésFeladat
GET /servicesSzolgáltatások listázása.
GET /services/{service}Egy szolgáltatás lekérdezése.
GET /services/{service}/plansA szolgáltatás csomagjai.
GET /services/{service}/plans/{plan_id}/periodsEgy csomag időszakai.
GET /services/{service}/addonsA szolgáltatás kiegészítői.
GET /services/{service}/addons/{addon_id}/optionsEgy kiegészítő opciói.
GET /services/{service}/service-prices/discountsElérhető kedvezmények lekérdezése.

Először a szolgáltatást, majd a csomagokat, időszakokat, kiegészítőket és opciókat kérdezd le. A válaszokban kapott azonosítókkal dolgozz. A katalógust és a kuponkedvezményeket a Vezérlőközpontban állítsd be; nem minden katalóguselemhez tartozik nyilvános REST írási végpont.

Ügyfelek és előfizetések összekapcsolása

Szekció neve “Ügyfelek és előfizetések összekapcsolása”

Az ügyfelek listázása, megtekintése, létrehozása, módosítása és törlése a /customers útvonalakon érhető el. A kapcsolattartók műveletei a /customers/{customer_id}/contacts alatt találhatók.

Új ügyfélhez szükséges többek között a billing_name, billing_address, billing_zip, billing_city és billing_country. Egyes országoknál a régió/állam megadása is kötelező. A szolgáltató által kötelezővé tett saját ügyfélmezők szintén érvényesek. A kérés összeállítása előtt nézd meg az OpenAPI-referenciát.

Előfizetési fizetési folyamat létrehozásához küldj POST /services/{service}/subscriptions kérést. Az alábbi szemléltető törzsben az azonosítókat valódi, a szolgáltatódhoz tartozó értékekre kell cserélni:

{
"customer_id": "CUSTOMER_UUID",
"plan_id": "PLAN_UUID",
"period_id": "PERIOD_UUID",
"quantity": 1,
"external_reference": "your-internal-order-reference",
"return_url": "https://your-app.example/subscription/return",
"cancel_url": "https://your-app.example/subscription/cancel"
}

A JSON-t Content-Type: application/json fejléccel küldd. A válasz data mezőjében találod a checkout_url, subscription_id, group_id és a létrehozott előfizetési tételek értékeit. A vásárlót a checkout_url címre irányítsd. A visszatérési URL önmagában nem igazol sikeres fizetést; fizetett hozzáférés megadásához ellenőrizd az előfizetés aktuális állapotát.

KérésFeladat
GET /services/{service}/subscriptionsEgy szolgáltatás előfizetései.
GET /subscriptions/{subscription_id}Egy előfizetés adatai.
GET /subscriptions/groups/{group_id}Egy előfizetési csoport adatai.
POST /subscriptions/{subscription_id}/payment-linkFizetési link készítése, ha az adott előfizetésnél elérhető.
POST /subscriptions/{subscription_id}/change-planCsomagváltás kezdeményezése a célkonfigurációval.
PATCH /subscriptions/{subscription_id}/datesA támogatott életciklusdátumok módosítása.
PATCH /subscriptions/{subscription_id}/statusÁllapot és opcionális megújítási beállítás módosítása.
DELETE /subscriptions/{subscription_id}/cancelElőfizetés vagy függő csomagváltás lemondása.
GET /invoices és GET /invoices/{invoice_id}Számlaadatok lekérdezése.

A lemondás a szolgáltató lemondási szabályait követi. A csoportazonosító nem helyettesíti a művelethez szükséges egyedi előfizetés-azonosítót. A csomagváltás és a fizetési link saját üzleti feltételekhez kötött; a referenciát és a visszaadott hibát is ellenőrizd.

A GET /subscriptions/{subscription_id}/usage lekérdezéssel ellenőrizheted a felhasználási keretet. A csoporthoz tartozó összesítés a GET /subscriptions/groups/{group_id}/usage címen érhető el.

A POST /subscriptions/{subscription_id}/sync-usage kérésben az új abszolút összesített értéket add meg:

{ "usage": 125 }

A POST /subscriptions/{subscription_id}/adjust-usage művelettel növelést vagy csökkentést kérhetsz:

{ "action": "increase", "value": 1 }

Az action értéke increase vagy decrease lehet; a value elhagyásakor az érték 1. Az ismételten elküldött növelés ismét módosítja a fogyasztást. Hálózati időtúllépés után ne küldd el automatikusan ugyanazt az írási kérést: ha az eredmény bizonytalan, először kérdezd le az aktuális állapotot.

StátuszMit ellenőrizz?
401Hiányzó, érvénytelen vagy törölt kulcs.
403Nem megfelelő tokentípus vagy hiányzó jogosultság.
404Ismeretlen erőforrás vagy másik szolgáltatóhoz tartozó rekord.
409Üzleti állapotütközés, például piszkozat vagy összeférhetetlen függő művelet.
422Hibás mező, nem támogatott érték vagy üzleti validációs hiba.
429Kéréskorlát; várj, majd növekvő késleltetéssel próbáld újra.
5xxSzerveroldali hiba; az írás megismétlése előtt őrizd meg a kivizsgáláshoz szükséges adatokat.

A beállított REST-korlát percenként 100 kérés. Akkor is kezeld a 429 választ, ha a saját integrációd forgalma szerint még nem érte el a korlátot.

Kapcsolódó útmutatók: API-kulcsok, webhookok, MCP-integráció.