Morffeus Docs
ENSR morffeus.com

Autentifikacija

Svaki poziv Integration API-ja nosi token u zaglavlju Authorization. Token pripada korisniku vaše aplikacije i važi za celu aplikaciju: čita i upisuje podatke te aplikacije i ništa drugo.

Kako do tokena#

U Admin-u otvorite User › Tokens i napravite token za sistem koji će ga koristiti. Za svaki sistem koji razgovara sa nama, za ERP, magacin ili kasu, koristite poseban token, da biste jedan mogli da opozovete bez diranja ostalih.

Token je ključ podataka vaše aplikacije. Čuvajte ga na serveru, u promenljivoj okruženja ili skladištu tajni. Nikad ga ne stavljajte u pregledač, mobilnu aplikaciju ili repozitorijum. Aplikacije i sajtovi koje koriste vaši kupci pozivaju Storefront API sa sopstvenom sesijom.

Šaljite ga uz svaki zahtev#

Token stavite u zaglavlje Authorization, posle reči Bearer:

  • Napišite Bearer baš tako, pa jedan razmak i token.
  • Pošaljite jedno zaglavlje Authorization. Zahtev sa dva tretira se kao da nema nijedno.
  • Token ide samo u zaglavlje, nikad u URL ili telo zahteva.

Basic autentifikacija ključevima aplikacije ne prihvata se na Integration API-ju. U javnom API-ju njome se samo pokreće sesija prodavnice.

GET/warehouses
curl "https://api.morffeus.com/api/v2/warehouses" \
  -H "Authorization: Bearer $MORFFEUS_TOKEN"
const res = await fetch('https://api.morffeus.com/api/v2/warehouses', {
  headers: { Authorization: `Bearer ${process.env.MORFFEUS_TOKEN}` }
});
$ch = curl_init('https://api.morffeus.com/api/v2/warehouses');
curl_setopt($ch, CURLOPT_HTTPHEADER, [
  'Authorization: Bearer ' . getenv('MORFFEUS_TOKEN'),
]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
Greška401 Unauthorized
{
  "errors": {
    "token": "API.Token.NotFound"
  }
}

Šta token nosi#

Token se pravi za jednog korisnika jedne aplikacije. Identifikator aplikacije nikad ne šaljete: sve ispod dolazi iz tokena.

DeoŠta određuje
appČije podatke čitate i upisujete. Svaki poziv radi unutar ove aplikacije.
clientFirmu kojoj aplikacija pripada.
userČija prava važe tamo gde ih endpoint proverava. Na primer, GET /orders vraća samo porudžbine iz prodajnih kanala koje ovaj korisnik sme da vidi.
market, currencyCene i valutu u odgovorima, na primer u GET /products.
languageJezik prevedenih tekstova u odgovorima, na primer tekstova proizvoda u GET /products.

Istek i opoziv#

Tokeni ističu. Koliko token traje podešava se za vašu aplikaciju; kad istekne, pozivi vraćaju 401 sa expired, a vi pravite novi u User › Tokens.

Opoziv tokena u User › Tokens zaustavlja ga odmah. Svaki token proveravamo pri svakom pozivu, pa opozvani token od sledećeg zahteva vraća API.Token.NotFound.

Kad je token odbijen#

Odbijeni token dobija 401 i telo koje navodi polje token. Vrednost kaže zašto:

errors.tokenZašto
API.Authorization.ErrorNema zaglavlja Authorization, ili ih ima više.
Invalid authorization formatZaglavlje nije Bearer, jedan razmak i token.
invalid, API.Token.InvalidToken nije naš, ili je usput skraćen ili izmenjen.
expiredTokenu je istekao rok. Napravite novi.
API.Token.NotFoundToken je opozvan.
API.Authorization.App.NotFoundBasic autentifikacija ključevima koji ne pripadaju nijednoj aplikaciji.
API.Autorization.UnauthorizedToken je ispravan, ali se ovde ne prihvata, na primer gostujuća sesija prodavnice, ili Basic autentifikacija pravim ključevima aplikacije. Ključ je u API-ju napisan baš ovako.

Sve ostale greške imaju isti omotač sa drugim poljem. Pogledajte Greške.

Pozivi prodavnice#

Storefront API ne koristi ove tokene. Aplikacija ili sajt koji koriste vaši kupci pokreće sesiju ključevima aplikacije i prijavljuje kupca; svaki poziv zatim nosi token te sesije u istom zaglavlju Authorization: Bearer. Pogledajte Sesije i prijava.

Poslednja izmena 1. oktobra 2026. · API v2 Nešto nije u redu na ovoj stranici?