Flowyer API

Flowyer API-referencia

API-verzió: 25ac141b2e28

A Flowyer REST API teljes leírása fejlesztőknek: végpontok, paraméterek, válaszok és kódminták.

A Flowyer API-val saját szoftverből vagy AI-asszisztensből olvashat, hozhat létre és módosíthat rekordokat (ügyeket, ügyfeleket, teendőket, munkaórákat, költségeket és dokumentumokat) egy Flowyer-felhasználó nevében. Minden kérés pontosan az adott felhasználó jogosultságaival fut, a kulcs vagy az engedély hatóköreivel tovább szűkítve. Az API-n keresztül semmit nem lehet törölni.

A végpontok és a mezők leírása angol nyelvű, mert ugyanezt a szöveget olvassák az AI-asszisztensek is.

Alap-URL

Minden végpont az alábbi címek alatt érhető el. Mindig a pontos, www. kezdetű https hostot használja, mert egy átirányítás eldobná az Authorization fejlécet.

Alap-URL

https://www.flowyer.hu/api/agent
https://www.flowyer.com/api/agent
https://www.flowyer.ro/api/agent
https://www.flowyer.de/api/agent
https://www.flowyer.it/api/agent

Hitelesítés

Minden kéréshez Bearer tokent kell küldeni az Authorization fejlécben. Kétféle token létezik; a végpontok mindkettőt ugyanúgy kezelik.

Személyes API-kulcs

A felhasználó a Flowyerben a Beállítások > API-kulcsok oldalon hozza létre, miután az iroda adminisztrátora engedélyezte az API-t. A kulcs flw_ előtaggal kezdődik, csak egyszer jelenik meg, és bármikor azonnali hatállyal visszavonható.

OAuth 2.1 csatlakozó alkalmazásokhoz

A más felhasználóknak szánt integráció kulcs helyett OAuth 2.1 Authorization Code + PKCE (S256) folyamattal kér hozzáférést, a kliens dinamikusan regisztrálható. A hozzáférési token 60 percig érvényes, a frissítő token 60 napig, és minden használatkor új párra cserélődik. A PKCE code_verifier 43 és 128 karakter közötti, és csak az A-Z, a-z, 0-9, valamint a - . _ ~ karaktereket tartalmazhatja (RFC 7636 4.1), vagyis kitöltőjel nélküli base64url: a záró "=" jelet a rendszer elutasítja.

Szerver-metaadatok
https://www.flowyer.com/.well-known/oauth-authorization-server
Engedélyezés
https://www.flowyer.com/authorize
Token
https://www.flowyer.com/api/agent/oauth/token
Kliens-regisztráció
https://www.flowyer.com/api/agent/oauth/register
Visszavonás
https://www.flowyer.com/api/agent/oauth/revoke

Kérésminták

curl 'https://www.flowyer.hu/api/agent/me' \
  -H 'Authorization: Bearer flw_...'

Hatókörök

A GET /me kivételével minden végpont egy hatókört igényel. Ha a kulcs vagy az engedély nem tartalmazza, a válasz 403 scope_missing. A GET /me-hez nem kell hatókör: ezzel ellenőrizheti, mire jogosult a kulcs vagy az engedély.

HatókörJelentésVégpontok
matters:read Ügyek olvasása GETÜgyek listázása GETÜgy feloldása név alapján GETÜgy lekérése GETÜgy felelőseinek listázása
matters:create Ügy létrehozása POSTÜgy létrehozása
matters:update Ügy módosítása PATCHÜgy frissítése POSTÜgyfelelős hozzáadása
clients:read Ügyfelek olvasása GETÜgyfelek listázása GETÜgyfél feloldása név alapján GETÜgyfél lekérése
clients:create Ügyfél létrehozása POSTÜgyfél létrehozása
clients:update Ügyfél módosítása PATCHÜgyfél módosítása
tasks:read Teendők olvasása GETFeladatok listázása GETFeladat lekérése
tasks:create Teendő létrehozása POSTFeladat létrehozása
tasks:update Teendő módosítása PATCHFeladat módosítása POSTFeladat lezárása
workhours:read Munkaórák olvasása GETMunkaidő-bejegyzések listázása GETMunkaidő-bejegyzés lekérése
workhours:create Munkaóra rögzítése POSTMunkaidő-bejegyzés rögzítése
workhours:update Munkaóra módosítása PATCHMunkaidő-bejegyzés módosítása
costs:read Költségek olvasása GETKöltségek listázása GETKöltség lekérése
costs:create Költség rögzítése POSTKöltség rögzítése
costs:update Költség módosítása PATCHKöltség módosítása
invoices:read Számlák olvasása GETSzámlák listázása GETSzámla lekérése
documents:read Dokumentumok listázása (csak adatok, letöltés nélkül) GETAz ügy dokumentumainak listázása GETAz ügy mappáinak listázása
documents:download Dokumentumok letöltése (teljes tartalom) GETDokumentum letöltése
documents:create Dokumentum feltöltése POSTÜgymappa létrehozása POSTDokumentumfeltöltés indítása POSTDokumentumfeltöltés befejezése
documents:update Dokumentum átnevezése PATCHDokumentum átnevezése PATCHÜgymappa átnevezése
colleagues:read Kollégák listázása (csak nevek) GETMunkatársak listázása
knowledge:read Tudásbázis olvasása GETTudásbázis-cikkek listázása GETTudásbázis-cikk lekérése GETTudásbázis-kategóriák listázása GETTudásbázis-kategória lekérése
knowledge:create Tudásbázis-bejegyzés létrehozása POSTTudásbázis-cikk létrehozása POSTTudásbázis-kategória létrehozása
knowledge:update Tudásbázis-bejegyzés módosítása PATCHTudásbázis-cikk módosítása PATCHTudásbázis-kategória módosítása
emails:read Ügyek e-mailjeinek olvasása GETÜgy e-mailjeinek listázása GETE-mail lekérése
litigation:read Pertörténet listázása GETÜgy pertörténetének listázása
litigation:create Pertörténeti bejegyzés létrehozása POSTPertörténeti bejegyzés létrehozása
litigation:update Pertörténeti bejegyzés módosítása PATCHPertörténeti bejegyzés módosítása
mail_register:read Postakönyv olvasása GETPostakönyv listázása GETPostakönyv-bejegyzés lekérése
mail_register:create Postakönyvi tétel létrehozása POSTPostakönyv-bejegyzés létrehozása
mail_register:update Postakönyvi tétel módosítása PATCHPostakönyv-bejegyzés módosítása
comments:read Ügy hozzászólások olvasása GETÜgyhozzászólások listázása
comments:create Hozzászólás írása ügyhöz POSTÜgyhozzászólás közzététele
comments:update Saját hozzászólás módosítása PATCHSaját ügyhozzászólás szerkesztése
trials:read Tárgyalások olvasása GETÜgy tárgyalásainak listázása GETTárgyalás lekérése
trials:create Tárgyalás létrehozása POSTTárgyalás létrehozása
trials:update Tárgyalás módosítása PATCHTárgyalás módosítása
courts:read Bíróságok listázása GETBíróságok listázása
hr:read Szabadságon lévők listázása (csak dátumok) GETMunkatársak szabadságainak listázása
calendar:read Naptáresemények olvasása GETNaptáresemények listázása GETNaptáresemény lekérése
calendar:create Naptáresemények létrehozása POSTNaptáresemény létrehozása
calendar:update Naptáresemények módosítása PATCHNaptáresemény módosítása
bookings:read Időpontfoglalások megtekintése GETFoglalások listázása GETFoglalás lekérése
bookings:create Időpontfoglalás létrehozása (e-mailt küld az ügyfélnek) POSTFoglalás létrehozása
bookings:update Foglalások átütemezése és szerkesztése PATCHFoglalás módosítása
bookings:send Foglalások visszaigazolása vagy lemondása (e-mailt küld az ügyfélnek) POSTFoglalás megerősítése POSTFoglalás lemondása
tickets:read Ügyfélszolgálati jegyek olvasása GETJegyek listázása GETJegy lekérése
tickets:reply Válasz jegyre (e-mailt küld az ügyfélnek) POSTVálasz a jegyre
tickets:update Jegy státuszának módosítása PATCHJegy státuszának módosítása
portal:read Ügyfélportál: beszélgetések és üzenetek olvasása GETÜgyfélportálok listázása GETPortálüzenetek listázása
portal:reply Ügyfélportál: válasz az ügyfélnek (üzenetet és értesítő e-mailt küld) POSTVálasz az ügyfélportálon

Hibák

Minden hiba azonos szerkezetű: gépi kód (error), angol üzenet (message), az iroda nyelvén írt üzenet (message_localized) és opcionális részletek (details). 401, 403, 404 és 422 esetén nincs értelme változatlanul újrapróbálni a kérést, két kivétellel: 404 upload_not_finished esetén előbb fejezze be a feltöltést az upload_url címre, majd hívja meg újra a complete műveletet; egy OAuth-hozzáférési token lejártakor (401 expired_key) pedig előbb frissítse a tokent.

HTTPerrorJelentés
400 invalid_json use_www_host bad_request Hibás kérés: érvénytelen JSON-törzs, rossz host (a www. kezdetűt használja), vagy nem értelmezhető kérés.
401 missing_key invalid_key revoked_key expired_key user_inactive office_not_found A kulcs hiányzik, érvénytelen, visszavont vagy lejárt, a tulajdonosa már nem aktív, vagy a kulcshoz tartozó iroda nem található.
403 scope_missing module_forbidden forbidden office_api_disabled licence_expired office_archived Hiányzó jogosultság a kulcson vagy a felhasználón, vagy az iroda nem engedélyezte az API-t.
404 not_found matter_not_visible unknown_endpoint upload_not_finished replay_not_visible A rekord nem létezik, vagy a felhasználó nem láthatja; ismeretlen végpont; a feltöltött fájl még nem érkezett meg a tárhelyre (upload_not_finished: töltse fel az upload_url címre, majd hívja meg újra a complete műveletet); vagy egy megismételt létrehozás, amelynek rekordja korábban már létrejött, de azóta törölték, vagy nem látható (replay_not_visible: új rekord nem jött létre, ne hozza létre újra).
405 delete_not_allowed update_not_allowed method_not_allowed Törlés az API-n keresztül nem lehetséges; módosítani csak ott lehet, ahol a leírás PATCH műveletet kínál.
409 client_exists client_exists_generic idempotency_key_reused duplicate_in_progress record_conflict record_locked duplicate_name Már létező ügyfélnév; ugyanilyen nevű dokumentum ugyanabban a mappában (duplicate_name); a rekord megváltozott, mióta beolvasta (record_conflict: olvassa be újra, és küldje el a módosítást az új updated_at értékkel); a rekordot kiszámlázták vagy zárolták (record_locked: a változtatást a Flowyerben végezze el); más típusú rekordnál már használt Idempotency-Key; vagy épp feldolgozás alatt lévő azonos kérés.
413 request_too_large file_too_large A kérés törzse túl nagy (request_too_large), vagy a feltöltendő fájl nagyobb a megengedettnél (file_too_large; a details.max mutatja a korlátot bájtban).
422 validation_failed unknown_client unknown_colleague blocked_file_type upload_token_invalid folder_not_in_matter document_name_too_long Hibás vagy hiányzó mező (a details.fields mutatja, melyik); érvénytelen, már felhasznált vagy lejárt feltöltési token (upload_token_invalid: kezdje újra a feltöltést); vagy a mappa nem ehhez az ügyhöz tartozik (folder_not_in_matter).
429 rate_limited auth_rate_limited Túl sok kérés (kulcsonként 300 / perc); a Retry-After fejléc mondja meg, mikor próbálja újra.
500 server_error Váratlan hiba. A kérést a request_id azonosítóval naplóztuk; próbálja újra később, és ha ismétlődik, ezzel az azonosítóval jelezze a Flowyer ügyfélszolgálatának.
503 office_maintenance office_setup_incomplete temporarily_unavailable Az iroda átmenetileg nem érhető el (karbantartás vagy folyamatban lévő beállítás); a Retry-After fejléc mondja meg, mikor próbálja újra.

Válaszminták · 403

{
  "error": "scope_missing",
  "message": "This API key does not have the \"clients:create\" permission. The permissions of an existing key cannot be changed, so the key owner needs to create a new key with this permission in Flowyer under Settings > API keys and use it in place of the old one.",
  "message_localized": "Ehhez az API-kulcshoz nem tartozik \"clients:create\" jogosultság. Egy meglévő kulcs jogosultságai utólag nem módosíthatók, ezért a kulcs tulajdonosának új kulcsot kell létrehoznia ezzel a jogosultsággal a Flowyerben a Beállítások > API-kulcsok menüpontban, és a régi helyett azt kell használni.",
  "locale": "hu",
  "details": {
    "required_scope": "clients:create"
  },
  "request_id": "3f0c8a5e-2b1d-4c7a-9e6f-5a4b3c2d1e0f"
}

Lapozás

A rekordlisták a limit és az offset paraméterrel lapozhatók (alapértelmezés 25, legfeljebb 100 elem oldalanként). A pagination.total a teljes találatszám; a következő oldal offset értéke az előző offset és limit összege. A GET /colleagues, a GET /clients/resolve és a GET /matters/resolve nem lapozható: csak limit paramétert fogad el (saját alapértelmezéssel és felső korláttal, lásd az adott végpontot), és pagination objektum helyett a data részben ad total és truncated értéket, ezért offset paramétert ne küldjön nekik.

Válaszminták · 200

{
  "data": [
    {
      "id": 1234,
      "...": "..."
    }
  ],
  "pagination": {
    "limit": 25,
    "offset": 0,
    "total": 134
  }
}

Ismételhető létrehozás

Minden létrehozás elfogad egy Idempotency-Key fejlécet (vagy idempotency_key mezőt). Ugyanazzal az értékkel megismételt kérés az elsőre létrehozott rekordot adja vissza (200, idempotent_replay), újat nem hoz létre. Eltérő kulcsok mindig külön rekordot hoznak létre. Kulcs nélkül is védett: egy azonos tartalmú létrehozás 120 másodpercen belül az első rekordot adja vissza.

Kérésminták

curl -X POST 'https://www.flowyer.hu/api/agent/clients' \
  -H 'Authorization: Bearer flw_...' \
  -H 'Content-Type: application/json' \
  -H 'Idempotency-Key: 7f3a9c21-1b2c-4d5e-8f90-0a1b2c3d4e5f' \
  -d '{"name": "Kovács Kft."}'

Módosítás és ütközés

A módosítás PATCH kérés a rekord saját útvonalán: csak az elküldött mezők változnak, az explicit null pedig akkor törli a mező értékét, ha a mező leírása ezt megengedi; egyes mezőknél a null megtartja a tárolt értéket, ezért olvassa el a mező leírását. Az expected_updated_at mezőben küldje vissza a legutóbb olvasott updated_at értéket. Ha a rekordot közben más módosította, a válasz 409 record_conflict; ilyenkor olvassa be újra a rekordot.

Kérésminták

curl -X PATCH 'https://www.flowyer.hu/api/agent/matters/1234' \
  -H 'Authorization: Bearer flw_...' \
  -H 'Content-Type: application/json' \
  -d '{"expected_updated_at": "2026-10-30T09:15:00+01:00", "description": null}'

Dátumok és időzóna

A dátumok ÉÉÉÉ-HH-NN formátumúak, az időpontok ISO 8601 szerintiek, az iroda időzónájának eltolásával. Az iroda időzónáját a GET /me válasz office.timezone mezője adja meg.

Korlátok

Kulcsonként és tokenenként legfeljebb 300 kérés küldhető percenként; túllépéskor a válasz 429, a Retry-After fejléc pedig megmondja, mikor próbálja újra. Egy JSON-kérés törzse legfeljebb 64 KB, egy feltöltött dokumentum legfeljebb 100 MB lehet.

Verziók

Az OpenAPI-leírás verziója minden változáskor módosul, és ETag fejlécként is megérkezik, így a gépi kliensek If-None-Match fejléccel ellenőrizhetik, változott-e.

Azonosítás

Ki vagyok én

GET /api/agent/me

Visszaadja azt a felhasználót és irodát, amelynek a nevében ez az API-kulcs eljár, a kulcs hatóköreit (hogy mit tehet) és a sebességkorlátokat. Hívja meg először, hogy megtudja, mely műveletek érhetők el; nem igényel hatókört.

Ennek a végpontnak nincs bemenete.

Válaszok

200

OK.

datakötelező
object
data mezői
user
object
user mezői
id
integer
name
string | null
language
string | null
office
object
office mezői
id
integer
name
string | null
timezone
string

Az az IANA zóna, amelyben az API az időbélyegeket olvassa és írja, például Europe/Budapest.

currency_id
integer

Az iroda pénzneme (Flowyer pénznemazonosító): a costs.create ebben könyvel, ha a currency_id elmarad.

currency
string | null

Az iroda pénznemének ISO kódja, például HUF, EUR, RON.

key
object
key mezői
id
integer
name
string

Az a név, amelyet a felhasználó adott ennek a kulcsnak, vagy a csatlakoztatott alkalmazás OAuth token esetén.

kind
string

"key" = statikus API-kulcs, "oauth" = OAuth 2.1 hozzáférési token.

Lehetséges értékek: "key" "oauth"
prefix
string | null

Egy statikus kulcs első karakterei, csak azonosítás céljából; OAuth esetén null.

expires_at
string <date-time> | null
last_used_at
string <date-time> | null
scopes
string[]

Ennek a hitelesítő adatnak a hatókörei, például "matters:read". Az olyan művelet, amelynek hiányzik a hatóköre, 403-at ad válaszul.

available_scopes
string[]

Minden hatókör, amelyet a kulcs tulajdonosa engedélyezhetne a Flowyerben.

limits
object
limits mezői
requests_per_minute
integer
list_max_limit
integer
channel
string

Hogyan érkezett meg a kérés a Flowyerhez.

Lehetséges értékek: "rest" "mcp"
400

Hibás formátumú kérés: érvénytelen JSON törzs, rossz host (használja a www. hostot), vagy olvashatatlan kérés.

401

A kulcs hiányzik, érvénytelen, visszavonták vagy lejárt, vagy a hozzá tartozó felhasználó már nem aktív.

403

Az iroda számára letiltott API, lejárt licenc vagy archivált iroda.

404

Ismeretlen végpont, vagy a rekord nem létezik / nem látható a felhasználó számára.

405

Ezen az útvonalon nem elérhető metódus (a DELETE és a PUT soha nem az; a PATCH csak ott, ahol frissítés is elérhető).

422

Ismeretlen lekérdezési paraméter (ez a művelet egyet sem fogad); a details.fields megnevezi.

429

A sebességkorlát túllépve; a Retry-After megadja, mikor próbálja újra.

503

Az iroda átmenetileg nem érhető el (karbantartás vagy beállítás van folyamatban); a Retry-After megadja, mikor próbálja újra.

default

Bármely egyéb hiba, ugyanabban a burokban.

Kérésminták

curl 'https://www.flowyer.hu/api/agent/me' \
  -H 'Authorization: Bearer flw_...'

Válaszminták

{
  "data": {
    "user": {
      "id": 1234,
      "name": "string",
      "language": "string"
    },
    "office": {
      "id": 1234,
      "name": "string",
      "timezone": "string",
      "currency_id": 1234,
      "currency": "string"
    },
    "key": {
      "id": 1234,
      "name": "string",
      "kind": "key",
      "prefix": "string",
      "expires_at": "2026-10-30T09:15:00+01:00",
      "last_used_at": "2026-10-30T09:15:00+01:00"
    },
    "scopes": [
      "string"
    ],
    "available_scopes": [
      "string"
    ],
    "limits": {
      "requests_per_minute": 0,
      "list_max_limit": 0
    },
    "channel": "rest"
  }
}

Munkatársak

Munkatársak listázása

GET /api/agent/colleagues

Listázza az iroda aktív munkatársait (id, név) az assigned_to_user_id / responsible_user_id számára. A q megadásával (egy név, ahogyan hallotta; az ékezeteket, a kis-/nagybetűket és a kisebb elgépeléseket tűri) az exact/similar/none állapotot adja vissza, mint a feloldó eszközök: csak az "exact" használható biztonságosan közvetlenül.

Hatókör
colleagues:read

Lekérdezési paraméterek

q
stringlegfeljebb 255 karakter

A keresendő munkatárs neve, ahogyan hallotta vagy diktálták, tetszőleges szósorrendben. Hagyja el az összes aktív munkatárs listázásához.

Példa: "Nagy Péter"
limit
integer>= 1<= 500

A visszaadandó munkatársak maximális száma (alapértelmezés 200).

Alapértelmezés: 200

Válaszok

200

OK.

datakötelező
object
data mezői
status
string | null

Csak q esetén: exact = egy biztos találat (az azonosítója biztonságosan használható), similar = közelítő vagy több találat (előbb egyeztessen a felhasználóval), none = nincs találat (kérdezze meg a felhasználót). q nélkül null.

Lehetséges értékek: "exact" "similar" "none"
colleagues
object[]

Aktív munkatársak, q esetén a legjobb találat elöl, egyébként név szerint.

colleagues mezői
id
integer

Felhasználóazonosító: adja meg assigned_to_user_id / responsible_user_id értékként.

name
string

A megjelenített név, ahogyan a Flowyer mutatja (a titulussal együtt, ha van).

title
string | null

Névelőtag, például "Dr.", vagy null.

total
integer

Hány munkatárs felelt meg (q nélkül az összes aktív munkatárs), mielőtt a lista a limit értékre lett vágva.

truncated
boolean

true, ha több munkatárs felelt meg, mint amennyi visszatért: szűkítse a q értékét, vagy emelje a limit értékét.

400

Hibás formátumú kérés: érvénytelen JSON törzs, rossz host (használja a www. hostot), vagy olvashatatlan kérés.

401

A kulcs hiányzik, érvénytelen, visszavonták vagy lejárt, vagy a hozzá tartozó felhasználó már nem aktív.

403

Hiányzó scope (scope_missing), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.

404

Ismeretlen végpont, vagy a rekord nem létezik / nem látható a felhasználó számára.

405

Ezen az útvonalon nem elérhető metódus (a DELETE és a PUT soha nem az; a PATCH csak ott, ahol frissítés is elérhető).

422

A validáció sikertelen volt, vagy ismeretlen mező; a details.fields felsorolja a mezőhibákat.

429

A sebességkorlát túllépve; a Retry-After megadja, mikor próbálja újra.

503

Az iroda átmenetileg nem érhető el (karbantartás vagy beállítás van folyamatban); a Retry-After megadja, mikor próbálja újra.

default

Bármely egyéb hiba, ugyanabban a burokban.

Kérésminták

curl 'https://www.flowyer.hu/api/agent/colleagues?q=Nagy%20P%C3%A9ter' \
  -H 'Authorization: Bearer flw_...'

Válaszminták

{
  "data": {
    "status": "exact",
    "colleagues": [
      {
        "id": 1234,
        "name": "string",
        "title": "string"
      }
    ],
    "total": 1,
    "truncated": true
  }
}

Ügyek

Ügyek listázása

GET /api/agent/matters

Listázza azokat az ügyeket (eseteket), amelyeket a felhasználó láthat, a legújabbtól kezdve. Használja arra, hogy ügyszám, tárgy vagy ügyfél alapján megtaláljon egy ügyet, mielőtt máshol hivatkozna rá. Az archivált ügyek rejtve maradnak, kivéve ha az include_archived értéke igaz.

Hatókör
matters:read
Flowyer-jogosultság
cases:read

Lekérdezési paraméterek

q
stringlegfeljebb 100 karakter

Szabad szöveges keresés a tárgyban és az ügyfélnevekben (az ékezetek és a kis- vagy nagybetűk figyelmen kívül hagyásával), valamint az iroda egyéb ügyszámaiban; vagy egy ügyszám, akár pontosan úgy, ahogyan a case_number mezőben visszaadásra kerül (az iroda számozási sémája szerint), akár év/sorszám formában, például "2026/0025".

Példa: "2026/0025"
client_id
integer>= 1

Csak ennek az ügyfélnek az ügyei.

Példa: 512
responsible_user_id
integer>= 1

Csak azok az ügyek, amelyekért ez a felhasználó (az azonosítók a colleagues.list forrásból származnak) felelős: fő felelősként, további felelősként, vagy egy felelős munkacsoport tagjaként (a webes kollégaszűrőnek megfelelően).

updated_since
string <date-time>

Csak az ezen időpontban vagy azt követően módosított ügyek (ISO 8601).

Példa: "2026-10-01T00:00:00+02:00"
include_archived
boolean

Az archivált ügyek is szerepeljenek.

Alapértelmezés: false
limit
integer>= 1<= 100

Oldalméret, 1-100. Alapértelmezés: 25.

Alapértelmezés: 25
Példa: 25
offset
integer>= 0

A kihagyandó rekordok száma. Az előző oldal offset + limit értékével jut el a következő oldalra; a pagination.total a teljes darabszámot adja meg.

Alapértelmezés: 0
Példa: 0

Válaszok

200

OK.

datakötelező
object[]
data mezői
id
integer

Az ügy azonosítója. Máshol matter_id néven használja.

Példa: 1234
case_number
string

Az ügyszám úgy, ahogyan a Flowyer megjeleníti, az iroda számozási sémája szerint.

Példa: "2026/0025"
subject
string
Példa: "Kovács Kft. v. Nagy Bt. - contract dispute"
status
string
Lehetséges értékek: "active" "archived"
case_type_id
integer | null
case_type
string | null

Az ügytípus lokalizált neve.

responsible_user_id
integer | null
responsible
string | null

A felelős ügyvéd megjelenítendő neve.

clients
object[]

Az ügy ügyfelei (megbízói).

clients mezői
id
integer
name
string
started_on
string <date> | null
restricted
boolean

Igaz, ha az ügyet csak a felelős ügyvédek láthatják (kínai fal).

created_at
string <date-time> | null
updated_at
string <date-time> | null
created_via_api
object | null

Akkor van jelen, ha a rekordot külső ügynök hozta létre ezen az API-n keresztül.

created_via_api mezői
kind
string

"key": statikus API-kulccsal létrehozva; "oauth": OAuth-on keresztül csatlakoztatott alkalmazás által létrehozva.

Lehetséges értékek: "key" "oauth"
key_id
integer

Az API-kulcs ("key" típus) vagy a csatlakoztatott alkalmazás ("oauth" típus) azonosítója; a kettő számozása külön történik.

key_name
string

Az a név, amelyet a felhasználó adott az API-kulcsnak, például "Grok integration", vagy a csatlakoztatott alkalmazás neve "oauth" típus esetén, például "Claude".

user_id
integer
user
string | null
at
string <date-time> | null
paginationkötelező
object
pagination mezői
limitkötelező
integer
offsetkötelező
integer
totalkötelező
integer

A találatként kapott rekordok teljes száma.

400

Hibás formátumú kérés: érvénytelen JSON törzs, rossz host (használja a www. hostot), vagy olvashatatlan kérés.

401

A kulcs hiányzik, érvénytelen, visszavonták vagy lejárt, vagy a hozzá tartozó felhasználó már nem aktív.

403

Hiányzó hatókör (scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.

404

Ismeretlen végpont, vagy a rekord nem létezik / nem látható a felhasználó számára.

405

Ezen az útvonalon nem elérhető metódus (a DELETE és a PUT soha nem az; a PATCH csak ott, ahol frissítés is elérhető).

422

A validáció sikertelen volt, vagy ismeretlen mező; a details.fields felsorolja a mezőhibákat.

429

A sebességkorlát túllépve; a Retry-After megadja, mikor próbálja újra.

503

Az iroda átmenetileg nem érhető el (karbantartás vagy beállítás van folyamatban); a Retry-After megadja, mikor próbálja újra.

default

Bármely egyéb hiba, ugyanabban a burokban.

Kérésminták

curl 'https://www.flowyer.hu/api/agent/matters?q=2026%2F0025&client_id=512&updated_since=2026-10-01T00%3A00%3A00%2B02%3A00' \
  -H 'Authorization: Bearer flw_...'

Válaszminták

{
  "data": [
    {
      "id": 1234,
      "case_number": "2026/0025",
      "subject": "Kovács Kft. v. Nagy Bt. - contract dispute",
      "status": "active",
      "case_type_id": 1234,
      "case_type": "string",
      "responsible_user_id": 1234,
      "responsible": "string",
      "clients": [
        {
          "id": 1234,
          "name": "string"
        }
      ],
      "started_on": "2026-10-30",
      "restricted": true,
      "created_at": "2026-10-30T09:15:00+01:00",
      "updated_at": "2026-10-30T09:15:00+01:00",
      "created_via_api": {
        "kind": "key",
        "key_id": 1234,
        "key_name": "string",
        "user_id": 1234,
        "user": "string",
        "at": "2026-10-30T09:15:00+01:00"
      }
    }
  ],
  "pagination": {
    "limit": 25,
    "offset": 0,
    "total": 1
  }
}

Ügy feloldása név alapján

GET /api/agent/matters/resolve

Megtalál egy ügyet kimondott vagy elgépelt tárgy vagy ügyfélnév alapján (az ékezetek, a kis- és nagybetűk, valamint a kisebb elgépelések megengedettek). Visszaadja az exact/similar/none állapotot és a jelölteket. Csak az "exact" használható közvetlenül biztonsággal; egyébként erősítse meg a felhasználóval. A sok hasonló találat soha nem "exact": szűkítsen a client_id vagy egy teljesebb név megadásával.

Hatókör
matters:read
Flowyer-jogosultság
cases:read

Lekérdezési paraméterek

namekötelező
stringlegalább 1 karakterlegfeljebb 255 karakter

A keresendő ügytárgy vagy ügyfélnév, úgy, ahogyan hallotta vagy diktálták.

Példa: "ingatlan adásvétel"
client_id
integer | null>= 1

Csak ennek az ügyfélnek az ügyei (akkor használja, miután a clients.resolve pontos ügyfelet adott vissza).

limit
integer>= 1<= 10

A visszaadandó jelöltek maximális száma (alapértelmezés: 5).

Alapértelmezés: 5

Válaszok

200

OK.

datakötelező
object
data mezői
status
string

exact = egy biztos találat (az azonosítója biztonsággal használható). similar = egy vagy több közelítő találat, előbb erősítse meg a felhasználóval. none = nincs találat, kérdezze meg a felhasználót.

Lehetséges értékek: "exact" "similar" "none"
matters
object[]

Jelölt ügyek, a legjobb találat elöl.

matters mezői
id
integer

Az ügy azonosítója. Máshol matter_id néven használja.

Példa: 1234
case_number
string

Az ügyszám úgy, ahogyan a Flowyer megjeleníti, az iroda számozási sémája szerint.

Példa: "2026/0025"
subject
string
Példa: "Kovács Kft. v. Nagy Bt. - contract dispute"
status
string
Lehetséges értékek: "active" "archived"
case_type_id
integer | null
case_type
string | null

Az ügytípus lokalizált neve.

responsible_user_id
integer | null
responsible
string | null

A felelős ügyvéd megjelenítendő neve.

clients
object[]

Az ügy ügyfelei (megbízói).

clients mezői
id
integer
name
string
started_on
string <date> | null
restricted
boolean

Igaz, ha az ügyet csak a felelős ügyvédek láthatják (kínai fal).

created_at
string <date-time> | null
updated_at
string <date-time> | null
created_via_api
object | null

Akkor van jelen, ha a rekordot külső ügynök hozta létre ezen az API-n keresztül.

created_via_api mezői
kind
string

"key": statikus API-kulccsal létrehozva; "oauth": OAuth-on keresztül csatlakoztatott alkalmazás által létrehozva.

Lehetséges értékek: "key" "oauth"
key_id
integer

Az API-kulcs ("key" típus) vagy a csatlakoztatott alkalmazás ("oauth" típus) azonosítója; a kettő számozása külön történik.

key_name
string

Az a név, amelyet a felhasználó adott az API-kulcsnak, például "Grok integration", vagy a csatlakoztatott alkalmazás neve "oauth" típus esetén, például "Claude".

user_id
integer
user
string | null
at
string <date-time> | null
total
integer

Hány ügy illeszkedett, mielőtt a listát a limit értékre vágták volna.

truncated
boolean

Igaz, ha több ügy illeszkedett, mint amennyit a rendszer visszaadott, vagy túl sok hasonló találat volt ahhoz, hogy mindet ellenőrizni lehessen; szűkítsen a client_id vagy egy teljesebb név megadásával, vagy emelje meg a limit értéket, ahelyett, hogy egy hiányos listából választana.

400

Hibás formátumú kérés: érvénytelen JSON törzs, rossz host (használja a www. hostot), vagy olvashatatlan kérés.

401

A kulcs hiányzik, érvénytelen, visszavonták vagy lejárt, vagy a hozzá tartozó felhasználó már nem aktív.

403

Hiányzó hatókör (scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.

404

Ismeretlen végpont, vagy a rekord nem létezik / nem látható a felhasználó számára.

405

Ezen az útvonalon nem elérhető metódus (a DELETE és a PUT soha nem az; a PATCH csak ott, ahol frissítés is elérhető).

422

A validáció sikertelen volt, vagy ismeretlen mező; a details.fields felsorolja a mezőhibákat.

429

A sebességkorlát túllépve; a Retry-After megadja, mikor próbálja újra.

503

Az iroda átmenetileg nem érhető el (karbantartás vagy beállítás van folyamatban); a Retry-After megadja, mikor próbálja újra.

default

Bármely egyéb hiba, ugyanabban a burokban.

Kérésminták

curl 'https://www.flowyer.hu/api/agent/matters/resolve?name=ingatlan%20ad%C3%A1sv%C3%A9tel' \
  -H 'Authorization: Bearer flw_...'

Válaszminták

{
  "data": {
    "status": "exact",
    "matters": [
      {
        "id": 1234,
        "case_number": "2026/0025",
        "subject": "Kovács Kft. v. Nagy Bt. - contract dispute",
        "status": "active",
        "case_type_id": 1234,
        "case_type": "string",
        "responsible_user_id": 1234,
        "responsible": "string",
        "clients": [
          {
            "id": 1234,
            "name": "string"
          }
        ],
        "started_on": "2026-10-30",
        "restricted": true,
        "created_at": "2026-10-30T09:15:00+01:00",
        "updated_at": "2026-10-30T09:15:00+01:00",
        "created_via_api": {
          "kind": "key",
          "key_id": 1234,
          "key_name": "string",
          "user_id": 1234,
          "user": "string",
          "at": "2026-10-30T09:15:00+01:00"
        }
      }
    ],
    "total": 1,
    "truncated": true
  }
}

Ügy lekérése

GET /api/agent/matters/{id}

Visszaad egy ügyet (esetet) az ügyfeleivel és a részleteivel együtt. 404-et ad válaszul, ha az ügy nem létezik, vagy a felhasználó nem láthatja.

Hatókör
matters:read
Flowyer-jogosultság
cases:read

Útvonal-paraméterek

idkötelező
integer>= 1

Az ügy azonosítója.

Példa: 1234

Válaszok

200

OK.

datakötelező
object
data mezői
id
integer

Az ügy azonosítója. Máshol matter_id néven használja.

Példa: 1234
case_number
string

Az ügyszám úgy, ahogyan a Flowyer megjeleníti, az iroda számozási sémája szerint.

Példa: "2026/0025"
subject
string
Példa: "Kovács Kft. v. Nagy Bt. - contract dispute"
status
string
Lehetséges értékek: "active" "archived"
case_type_id
integer | null
case_type
string | null

Az ügytípus lokalizált neve.

responsible_user_id
integer | null
responsible
string | null

A felelős ügyvéd megjelenítendő neve.

clients
object[]

Az ügy ügyfelei (megbízói).

clients mezői
id
integer
name
string
started_on
string <date> | null
restricted
boolean

Igaz, ha az ügyet csak a felelős ügyvédek láthatják (kínai fal).

created_at
string <date-time> | null
updated_at
string <date-time> | null
created_via_api
object | null

Akkor van jelen, ha a rekordot külső ügynök hozta létre ezen az API-n keresztül.

created_via_api mezői
kind
string

"key": statikus API-kulccsal létrehozva; "oauth": OAuth-on keresztül csatlakoztatott alkalmazás által létrehozva.

Lehetséges értékek: "key" "oauth"
key_id
integer

Az API-kulcs ("key" típus) vagy a csatlakoztatott alkalmazás ("oauth" típus) azonosítója; a kettő számozása külön történik.

key_name
string

Az a név, amelyet a felhasználó adott az API-kulcsnak, például "Grok integration", vagy a csatlakoztatott alkalmazás neve "oauth" típus esetén, például "Claude".

user_id
integer
user
string | null
at
string <date-time> | null
description
string | null
litigious
boolean
archived_at
string <date> | null

Az ügy archiválásának napja, YYYY-MM-DD. A Flowyer csak a dátumot rögzíti, a napszakot nem.

400

Hibás formátumú kérés: érvénytelen JSON törzs, rossz host (használja a www. hostot), vagy olvashatatlan kérés.

401

A kulcs hiányzik, érvénytelen, visszavonták vagy lejárt, vagy a hozzá tartozó felhasználó már nem aktív.

403

Hiányzó hatókör (scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.

404

Ismeretlen végpont, vagy a rekord nem létezik / nem látható a felhasználó számára.

405

Ezen az útvonalon nem elérhető metódus (a DELETE és a PUT soha nem az; a PATCH csak ott, ahol frissítés is elérhető).

422

A validáció sikertelen volt, vagy ismeretlen mező; a details.fields felsorolja a mezőhibákat.

429

A sebességkorlát túllépve; a Retry-After megadja, mikor próbálja újra.

503

Az iroda átmenetileg nem érhető el (karbantartás vagy beállítás van folyamatban); a Retry-After megadja, mikor próbálja újra.

default

Bármely egyéb hiba, ugyanabban a burokban.

Kérésminták

curl 'https://www.flowyer.hu/api/agent/matters/1234' \
  -H 'Authorization: Bearer flw_...'

Válaszminták

{
  "data": {
    "id": 1234,
    "case_number": "2026/0025",
    "subject": "Kovács Kft. v. Nagy Bt. - contract dispute",
    "status": "active",
    "case_type_id": 1234,
    "case_type": "string",
    "responsible_user_id": 1234,
    "responsible": "string",
    "clients": [
      {
        "id": 1234,
        "name": "string"
      }
    ],
    "started_on": "2026-10-30",
    "restricted": true,
    "created_at": "2026-10-30T09:15:00+01:00",
    "updated_at": "2026-10-30T09:15:00+01:00",
    "created_via_api": {
      "kind": "key",
      "key_id": 1234,
      "key_name": "string",
      "user_id": 1234,
      "user": "string",
      "at": "2026-10-30T09:15:00+01:00"
    },
    "description": "string",
    "litigious": true,
    "archived_at": "2026-10-30"
  }
}

Ügy létrehozása

POST /api/agent/matters

Megnyit egy ügyet (esetet) az év következő ügyszámával. Legalább egy létező ügyfél szükséges hozzá (előbb keresse meg vagy hozza létre). A felelős ügyvéd alapértelmezés szerint a kulcs felhasználója, egyébként értesítést kap. A felek, a kapcsolattartók és a díjak a Flowyerben állíthatók be.

Hatókör
matters:create
Flowyer-jogosultság
cases:create

Fejléc-paraméterek

Idempotency-Key
stringlegfeljebb 128 karakter

Minden létrehozásnál ajánlott. Logikai műveletenként egyedi érték (például egy UUID). Ugyanaz az érték ugyanazt a rekordot adja vissza: az azzal való újrapróbálkozás az először létrehozott rekordot adja vissza ahelyett, hogy egy másodikat hozna létre. A különböző értékek mindig különböző rekordokat hoznak létre. Azok az ügyfelek, amelyek nem tudnak fejléceket küldeni, ugyanazt az értéket átadhatják az idempotency_key törzsmezőben. Betűk, számjegyek, _, -, : vagy ., legfeljebb 128 karakter.

Minta: ^[A-Za-z0-9_\-:.]{1,128}$

Kérés törzse application/json

subjectkötelező
stringlegalább 2 karakterlegfeljebb 255 karakter

Az ügy rövid címe, ahogyan a listákban megjelenik. Egyszerű szöveg; a "<" és a ">" nem engedélyezett.

Minta: ^[^<>]*$
Példa: "Kovács Kft. v. Nagy Bt. - contract dispute"
case_type_idkötelező
integer>= 1

Ügytípus (jogterület) azonosítója a globális Flowyer ügytípuslistából: válassza ki azt, amelynek a neve megfelel a felhasználó szavainak, vagy kérje meg a felhasználót, hogy név alapján válasszon. Ismeretlen azonosító esetén a válasz 422, a details.known_case_types tartalommal (azonosító + lokalizált név); egy meglévő ügy a típusát a matters.get case_type_id / case_type mezőben jeleníti meg.

client_idskötelező
integer[]legalább 1 elemlegfeljebb 20 elem

Az ügyfelek (megbízók) azonosítói. Legalább egy, legfeljebb 20.

Példa: [ 512 ]
responsible_user_id
integer | null>= 1

Felelős ügyvéd: egy felhasználói azonosító a colleagues.list forrásból (a diktált nevet ott keresse ki). Alapértelmezés: a kulcs mögötti felhasználó.

started_on
string <date> | null

Kezdő dátum, YYYY-MM-DD. Alapértelmezés: a mai nap.

Példa: "2026-10-29"
description
string | nulllegfeljebb 10000 karakter

Hosszabb leírás, egyszerű szöveg.

main_case_number
string | nulllegfeljebb 100 karakter

Az iroda saját fő hivatkozási száma az ügyhöz. Kötelező, ha az iroda számozási sémája használja (egyébként az API 422-t ad válaszul).

restricted
boolean

true = az ügyet csak a felelős ügyvédek láthatják (kínai fal).

Alapértelmezés: false
idempotency_key
stringlegfeljebb 128 karakter

Ugyanaz a szerepe, mint az Idempotency-Key fejlécnek, azon ügyfelek számára, amelyek nem tudnak egyéni fejléceket küldeni. Betűk, számjegyek, _, -, : vagy ., legfeljebb 128 karakter.

Minta: ^[A-Za-z0-9_\-:.]{1,128}$
Példa: "b8f1c2e0-6f7a-4d2e-9c1b-2a3d4e5f6a7b"

Válaszok

201

Létrehozva.

datakötelező
object
data mezői
id
integer

Az ügy azonosítója. Máshol matter_id néven használja.

Példa: 1234
case_number
string

Az ügyszám úgy, ahogyan a Flowyer megjeleníti, az iroda számozási sémája szerint.

Példa: "2026/0025"
subject
string
Példa: "Kovács Kft. v. Nagy Bt. - contract dispute"
status
string
Lehetséges értékek: "active" "archived"
case_type_id
integer | null
case_type
string | null

Az ügytípus lokalizált neve.

responsible_user_id
integer | null
responsible
string | null

A felelős ügyvéd megjelenítendő neve.

clients
object[]

Az ügy ügyfelei (megbízói).

clients mezői
id
integer
name
string
started_on
string <date> | null
restricted
boolean

Igaz, ha az ügyet csak a felelős ügyvédek láthatják (kínai fal).

created_at
string <date-time> | null
updated_at
string <date-time> | null
created_via_api
object | null

Akkor van jelen, ha a rekordot külső ügynök hozta létre ezen az API-n keresztül.

created_via_api mezői
kind
string

"key": statikus API-kulccsal létrehozva; "oauth": OAuth-on keresztül csatlakoztatott alkalmazás által létrehozva.

Lehetséges értékek: "key" "oauth"
key_id
integer

Az API-kulcs ("key" típus) vagy a csatlakoztatott alkalmazás ("oauth" típus) azonosítója; a kettő számozása külön történik.

key_name
string

Az a név, amelyet a felhasználó adott az API-kulcsnak, például "Grok integration", vagy a csatlakoztatott alkalmazás neve "oauth" típus esetén, például "Claude".

user_id
integer
user
string | null
at
string <date-time> | null
description
string | null
litigious
boolean
archived_at
string <date> | null

Az ügy archiválásának napja, YYYY-MM-DD. A Flowyer csak a dátumot rögzíti, a napszakot nem.

created
boolean
Érték: true
200

Idempotens visszajátszás: ez az Idempotency-Key (vagy kulcs nélkül egy azonos kérés 120 másodpercen belül) már létrehozta a rekordot; a rendszer újra visszaadja, semmi új nem jött létre.

datakötelező
object
data mezői
id
integer

Az ügy azonosítója. Máshol matter_id néven használja.

Példa: 1234
case_number
string

Az ügyszám úgy, ahogyan a Flowyer megjeleníti, az iroda számozási sémája szerint.

Példa: "2026/0025"
subject
string
Példa: "Kovács Kft. v. Nagy Bt. - contract dispute"
status
string
Lehetséges értékek: "active" "archived"
case_type_id
integer | null
case_type
string | null

Az ügytípus lokalizált neve.

responsible_user_id
integer | null
responsible
string | null

A felelős ügyvéd megjelenítendő neve.

clients
object[]

Az ügy ügyfelei (megbízói).

clients mezői
id
integer
name
string
started_on
string <date> | null
restricted
boolean

Igaz, ha az ügyet csak a felelős ügyvédek láthatják (kínai fal).

created_at
string <date-time> | null
updated_at
string <date-time> | null
created_via_api
object | null

Akkor van jelen, ha a rekordot külső ügynök hozta létre ezen az API-n keresztül.

created_via_api mezői
kind
string

"key": statikus API-kulccsal létrehozva; "oauth": OAuth-on keresztül csatlakoztatott alkalmazás által létrehozva.

Lehetséges értékek: "key" "oauth"
key_id
integer

Az API-kulcs ("key" típus) vagy a csatlakoztatott alkalmazás ("oauth" típus) azonosítója; a kettő számozása külön történik.

key_name
string

Az a név, amelyet a felhasználó adott az API-kulcsnak, például "Grok integration", vagy a csatlakoztatott alkalmazás neve "oauth" típus esetén, például "Claude".

user_id
integer
user
string | null
at
string <date-time> | null
description
string | null
litigious
boolean
archived_at
string <date> | null

Az ügy archiválásának napja, YYYY-MM-DD. A Flowyer csak a dátumot rögzíti, a napszakot nem.

created
boolean
Érték: false
idempotent_replay
boolean
Érték: true
400

Hibás formátumú kérés: érvénytelen JSON törzs, rossz host (használja a www. hostot), vagy olvashatatlan kérés.

401

A kulcs hiányzik, érvénytelen, visszavonták vagy lejárt, vagy a hozzá tartozó felhasználó már nem aktív.

403

Hiányzó hatókör (scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.

404

Ismeretlen végpont, vagy a rekord nem létezik / nem látható a felhasználó számára. replay_not_visible: ez az Idempotency-Key (vagy kulcs nélkül egy azonos kérés) már létrehozta a rekordot (details.record_id), de azt azóta törölték, vagy nem látható a felhasználó számára; semmi új nem jött létre, ne hozza létre újra.

405

Ezen az útvonalon nem elérhető metódus (a DELETE és a PUT soha nem az; a PATCH csak ott, ahol frissítés is elérhető).

409

Az Idempotency-Key kulcsot egy másik erőforrástípushoz használták (idempotency_key_reused), vagy kulcs nélkül egy azonos kérés feldolgozása éppen most zajlik (duplicate_in_progress; próbálja újra rövidesen).

413

A kérés törzse túl nagy (request_too_large).

422

A validáció sikertelen volt, vagy ismeretlen mező; a details.fields felsorolja a mezőhibákat.

429

A sebességkorlát túllépve; a Retry-After megadja, mikor próbálja újra.

503

Az iroda átmenetileg nem érhető el (karbantartás vagy beállítás van folyamatban); a Retry-After megadja, mikor próbálja újra.

default

Bármely egyéb hiba, ugyanabban a burokban.

Kérésminták

curl -X POST 'https://www.flowyer.hu/api/agent/matters' \
  -H 'Authorization: Bearer flw_...' \
  -H 'Content-Type: application/json' \
  -H 'Idempotency-Key: 7f3a9c21-1b2c-4d5e-8f90-0a1b2c3d4e5f' \
  -d '{
  "subject": "Kovács Kft. v. Nagy Bt. - contract dispute",
  "case_type_id": 1234,
  "client_ids": [
    512
  ],
  "started_on": "2026-10-29"
}'

Válaszminták

{
  "data": {
    "id": 1234,
    "case_number": "2026/0025",
    "subject": "Kovács Kft. v. Nagy Bt. - contract dispute",
    "status": "active",
    "case_type_id": 1234,
    "case_type": "string",
    "responsible_user_id": 1234,
    "responsible": "string",
    "clients": [
      {
        "id": 1234,
        "name": "string"
      }
    ],
    "started_on": "2026-10-30",
    "restricted": true,
    "created_at": "2026-10-30T09:15:00+01:00",
    "updated_at": "2026-10-30T09:15:00+01:00",
    "created_via_api": {
      "kind": "key",
      "key_id": 1234,
      "key_name": "string",
      "user_id": 1234,
      "user": "string",
      "at": "2026-10-30T09:15:00+01:00"
    },
    "description": "string",
    "litigious": true,
    "archived_at": "2026-10-30"
  },
  "created": true
}

Ügy frissítése

PATCH /api/agent/matters/{id}

Módosítja egy ügy tárgyát, leírását, kezdő dátumát, peres jellegét vagy felelős ügyvédjét. Az ügyszám, a kínai fal, az archiválási állapot, a díjak és az ügyfélkapcsolatok itt nem szerkeszthetők. Adja át az expected_updated_at értéket a legutóbbi olvasásából; ütköző módosítás esetén a válasz 409.

Hatókör
matters:update
Flowyer-jogosultság
cases:modify

Útvonal-paraméterek

idkötelező
integer>= 1

A módosítandó rekord azonosítója.

Kérés törzse application/json

expected_updated_at
string <date-time> | null

A rekord legutóbbi olvasásából származó updated_at érték (minden esetben kötelező, ha a rekordnak van ilyen). Ha a rekord azóta megváltozott (egy kolléga szerkesztette), az API 409-et ad válaszul, és újra kell olvasnia, mielőtt újrapróbálkozna. Egy olyan régebbi rekord, amelynek az updated_at értéke null, a null értéket veszi fel.

subject
string | nulllegalább 1 karakter

Az ügy rövid címe. Egyszerű szöveg, új értékként legfeljebb 255 karakter; a "<" és a ">" sem vihető be, de egy tárolt tárgy, amely ennél hosszabb vagy tartalmazza ezeket, változatlanul visszaküldhető. A null megtartja a jelenlegi tárgyat.

description
string | null

Hosszabb leírás, egyszerű szöveg, új értékként legfeljebb 10000 karakter; egy ennél hosszabb tárolt leírás változatlanul visszaküldhető.

started_on
string <date> | null

Kezdő dátum, YYYY-MM-DD. A null megtartja a jelenlegi értéket (a kezdő dátum nem törölhető).

litigious
boolean

Hogy az ügy peres-e.

responsible_user_id
integer | null>= 0

Új felelős ügyvéd: egy aktív kolléga felhasználói azonosítója a colleagues.list forrásból. Értesítést kap, ha nem Ön az. A jelenlegi érték küldése - vagy a null / 0, amelyként egy felelős nélküli ügy visszaolvasódik - semmit nem változtat.

Válaszok

200

Frissítve.

datakötelező
object
data mezői
id
integer

Az ügy azonosítója. Máshol matter_id néven használja.

Példa: 1234
case_number
string

Az ügyszám úgy, ahogyan a Flowyer megjeleníti, az iroda számozási sémája szerint.

Példa: "2026/0025"
subject
string
Példa: "Kovács Kft. v. Nagy Bt. - contract dispute"
status
string
Lehetséges értékek: "active" "archived"
case_type_id
integer | null
case_type
string | null

Az ügytípus lokalizált neve.

responsible_user_id
integer | null
responsible
string | null

A felelős ügyvéd megjelenítendő neve.

clients
object[]

Az ügy ügyfelei (megbízói).

clients mezői
id
integer
name
string
started_on
string <date> | null
restricted
boolean

Igaz, ha az ügyet csak a felelős ügyvédek láthatják (kínai fal).

created_at
string <date-time> | null
updated_at
string <date-time> | null
created_via_api
object | null

Akkor van jelen, ha a rekordot külső ügynök hozta létre ezen az API-n keresztül.

created_via_api mezői
kind
string

"key": statikus API-kulccsal létrehozva; "oauth": OAuth-on keresztül csatlakoztatott alkalmazás által létrehozva.

Lehetséges értékek: "key" "oauth"
key_id
integer

Az API-kulcs ("key" típus) vagy a csatlakoztatott alkalmazás ("oauth" típus) azonosítója; a kettő számozása külön történik.

key_name
string

Az a név, amelyet a felhasználó adott az API-kulcsnak, például "Grok integration", vagy a csatlakoztatott alkalmazás neve "oauth" típus esetén, például "Claude".

user_id
integer
user
string | null
at
string <date-time> | null
description
string | null
litigious
boolean
archived_at
string <date> | null

Az ügy archiválásának napja, YYYY-MM-DD. A Flowyer csak a dátumot rögzíti, a napszakot nem.

updated
boolean
Érték: true
400

Hibás formátumú kérés: érvénytelen JSON törzs, rossz host (használja a www. hostot), vagy olvashatatlan kérés.

401

A kulcs hiányzik, érvénytelen, visszavonták vagy lejárt, vagy a hozzá tartozó felhasználó már nem aktív.

403

Hiányzó hatókör (scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.

404

Ismeretlen végpont, vagy a rekord nem létezik / nem látható a felhasználó számára.

405

Ezen az útvonalon nem elérhető metódus (a DELETE és a PUT soha nem az; a PATCH csak ott, ahol frissítés is elérhető).

409

A rekord megváltozott, mióta beolvasta (record_conflict: az expected_updated_at már nem egyezik; olvassa be újra, és próbálja újra az új updated_at értékkel).

413

A kérés törzse túl nagy (request_too_large).

422

A validáció sikertelen volt, vagy ismeretlen mező; a details.fields felsorolja a mezőhibákat.

429

A sebességkorlát túllépve; a Retry-After megadja, mikor próbálja újra.

503

Az iroda átmenetileg nem érhető el (karbantartás vagy beállítás van folyamatban); a Retry-After megadja, mikor próbálja újra.

default

Bármely egyéb hiba, ugyanabban a burokban.

Kérésminták

curl -X PATCH 'https://www.flowyer.hu/api/agent/matters/1234' \
  -H 'Authorization: Bearer flw_...' \
  -H 'Content-Type: application/json' \
  -d '{
  "expected_updated_at": "2026-10-30T09:15:00+01:00",
  "subject": "string"
}'

Válaszminták

{
  "data": {
    "id": 1234,
    "case_number": "2026/0025",
    "subject": "Kovács Kft. v. Nagy Bt. - contract dispute",
    "status": "active",
    "case_type_id": 1234,
    "case_type": "string",
    "responsible_user_id": 1234,
    "responsible": "string",
    "clients": [
      {
        "id": 1234,
        "name": "string"
      }
    ],
    "started_on": "2026-10-30",
    "restricted": true,
    "created_at": "2026-10-30T09:15:00+01:00",
    "updated_at": "2026-10-30T09:15:00+01:00",
    "created_via_api": {
      "kind": "key",
      "key_id": 1234,
      "key_name": "string",
      "user_id": 1234,
      "user": "string",
      "at": "2026-10-30T09:15:00+01:00"
    },
    "description": "string",
    "litigious": true,
    "archived_at": "2026-10-30"
  },
  "updated": true
}

Ügy felelőseinek listázása

GET /api/agent/matters/{id}/responsibles

Listázza egy ügy TOVÁBBI felelőseit (az elsődleges felelős a matters.get hívásban van): mindegyik egy munkatárs (type "user", user_id beállítva) vagy egy munkacsoport (type "workgroup", workgroup_id beállítva), akik mindegyike látja az ügyet. 404 választ ad, ha az ügy nem látható.

Hatókör
matters:read
Flowyer-jogosultság
cases:read

Útvonal-paraméterek

idkötelező
integer>= 1

Az ügy azonosítója.

Példa: 1234

Lekérdezési paraméterek

limit
integer>= 1<= 100

Oldalméret, 1-100. Alapértelmezés: 25.

Alapértelmezés: 25
Példa: 25
offset
integer>= 0

A kihagyandó rekordok száma. Az előző oldal offset + limit értékével jut el a következő oldalra; a pagination.total a teljes darabszámot adja meg.

Alapértelmezés: 0
Példa: 0

Válaszok

200

OK.

datakötelező
object[]
data mezői
type
string

"user" = egyetlen munkatárs; "workgroup" = egy munkacsoport minden tagja.

Lehetséges értékek: "user" "workgroup"
user_id
integer | null

Munkatárs-felhasználóazonosító egy "user" bejegyzéshez (adja meg user_id értékként a matters.responsibles.add hívásnak); munkacsoport esetén null.

workgroup_id
integer | null

Munkacsoport-azonosító egy "workgroup" bejegyzéshez; egyetlen munkatárs esetén null. A munkacsoport-felelősöket a Flowyerben kezelik.

name
string | null

A munkatárs vagy munkacsoport megjelenített neve.

paginationkötelező
object
pagination mezői
limitkötelező
integer
offsetkötelező
integer
totalkötelező
integer

A találatként kapott rekordok teljes száma.

400

Hibás formátumú kérés: érvénytelen JSON törzs, rossz host (használja a www. hostot), vagy olvashatatlan kérés.

401

A kulcs hiányzik, érvénytelen, visszavonták vagy lejárt, vagy a hozzá tartozó felhasználó már nem aktív.

403

Hiányzó hatókör (scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.

404

Ismeretlen végpont, vagy a rekord nem létezik / nem látható a felhasználó számára.

405

Ezen az útvonalon nem elérhető metódus (a DELETE és a PUT soha nem az; a PATCH csak ott, ahol frissítés is elérhető).

422

A validáció sikertelen volt, vagy ismeretlen mező; a details.fields felsorolja a mezőhibákat.

429

A sebességkorlát túllépve; a Retry-After megadja, mikor próbálja újra.

503

Az iroda átmenetileg nem érhető el (karbantartás vagy beállítás van folyamatban); a Retry-After megadja, mikor próbálja újra.

default

Bármely egyéb hiba, ugyanabban a burokban.

Kérésminták

curl 'https://www.flowyer.hu/api/agent/matters/1234/responsibles?limit=25' \
  -H 'Authorization: Bearer flw_...'

Válaszminták

{
  "data": [
    {
      "type": "user",
      "user_id": 1234,
      "workgroup_id": 1234,
      "name": "string"
    }
  ],
  "pagination": {
    "limit": 25,
    "offset": 0,
    "total": 1
  }
}

Ügyfelelős hozzáadása

POST /api/agent/matters/{id}/responsibles

Hozzáad egy munkatársat (user_id a colleagues.list-ből) egy ügy további felelőseként. Ez HOZZÁFÉRÉST AD ennek a munkatársnak az ügyhöz, ezért csak olyat adjon hozzá, akinek látnia kell; értesítést kapnak. Idempotens: egy meglévő felelős ismételt hozzáadása nem változtat semmin.

Hatókör
matters:update
Flowyer-jogosultság
cases:modify

Útvonal-paraméterek

idkötelező
integer>= 1

Az ügy, amelyért a munkatárs felelős lesz (láthatónak kell lennie).

Példa: 1234

Kérés törzse application/json

user_idkötelező
integer>= 1

A hozzáadandó munkatárs: egy felhasználóazonosító a colleagues.list-ből. A hozzáadásuk hozzáférést ad nekik az ügyhöz.

Példa: 42

Válaszok

200

OK.

datakötelező
object
data mezői
user_id
integer

A munkatárs, aki mostantól felelős az ügyért.

name
string | null

A munkatárs megjelenített neve.

already_responsible
boolean

true, ha a munkatárs már felelőse volt az ügynek (semmi nem változott).

notified
boolean

true, ha a munkatárs értesítést kapott a hozzáadásáról. Soha nem true, ha a munkatárs Ön, vagy ha már felelős volt.

400

Hibás formátumú kérés: érvénytelen JSON törzs, rossz host (használja a www. hostot), vagy olvashatatlan kérés.

401

A kulcs hiányzik, érvénytelen, visszavonták vagy lejárt, vagy a hozzá tartozó felhasználó már nem aktív.

403

Hiányzó hatókör (scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.

404

Ismeretlen végpont, vagy a rekord nem létezik / nem látható a felhasználó számára.

405

Ezen az útvonalon nem elérhető metódus (a DELETE és a PUT soha nem az; a PATCH csak ott, ahol frissítés is elérhető).

413

A kérés törzse túl nagy (request_too_large).

422

A validáció sikertelen volt, vagy ismeretlen mező; a details.fields felsorolja a mezőhibákat.

429

A sebességkorlát túllépve; a Retry-After megadja, mikor próbálja újra.

503

Az iroda átmenetileg nem érhető el (karbantartás vagy beállítás van folyamatban); a Retry-After megadja, mikor próbálja újra.

default

Bármely egyéb hiba, ugyanabban a burokban.

Kérésminták

curl -X POST 'https://www.flowyer.hu/api/agent/matters/1234/responsibles' \
  -H 'Authorization: Bearer flw_...' \
  -H 'Content-Type: application/json' \
  -d '{
  "user_id": 42
}'

Válaszminták

{
  "data": {
    "user_id": 1234,
    "name": "string",
    "already_responsible": true,
    "notified": true
  }
}

Ügyfelek

Ügyfelek listázása

GET /api/agent/clients

Listázza az iroda ügyfeleit (természetes személyek és cégek) betűrendben; a q a névben (ékezetektől és kis-/nagybetűtől függetlenül), az e-mail címben és az adószámban keres. Ügyfél létrehozása előtt ellenőrizze a nevet a clients.resolve segítségével (az elgépeléseket is tűri). Az archivált ügyfelek rejtve maradnak, kivéve, ha az include_archived értéke true.

Hatókör
clients:read
Flowyer-jogosultság
contacts:read

Lekérdezési paraméterek

q
stringlegfeljebb 100 karakter

Keresés a névben (ékezetektől és kis-/nagybetűtől függetlenül), az e-mail címben és az adószámban.

Példa: "Kovács"
is_person
boolean

true = csak természetes személyek, false = csak cégek.

include_archived
boolean
Alapértelmezés: false
limit
integer>= 1<= 100

Oldalméret, 1-100. Alapértelmezés: 25.

Alapértelmezés: 25
Példa: 25
offset
integer>= 0

A kihagyandó rekordok száma. Az előző oldal offset + limit értékével jut el a következő oldalra; a pagination.total a teljes darabszámot adja meg.

Alapértelmezés: 0
Példa: 0

Válaszok

200

OK.

datakötelező
object[]
data mezői
id
integer

Ügyfélazonosító. Használja client_id értékként máshol.

Példa: 512
name
string
Példa: "Kovács Kft."
is_person
boolean

true természetes személy, false cég esetén.

email
string | null
phone
string | null
archived
boolean
recorded_by_user_id
integer | null
recorded_by
string | null
created_at
string <date-time> | null
updated_at
string <date-time> | null
created_via_api
object | null
created_via_api mezői
kind
string

"key": statikus API-kulccsal létrehozva; "oauth": OAuth-on keresztül csatlakoztatott alkalmazás által létrehozva.

Lehetséges értékek: "key" "oauth"
key_id
integer

Az API-kulcs ("key" típus) vagy a csatlakoztatott alkalmazás ("oauth" típus) azonosítója; a kettő számozása külön történik.

key_name
string

Az a név, amelyet a felhasználó adott az API-kulcsnak, például "Grok integration", vagy a csatlakoztatott alkalmazás neve "oauth" típus esetén, például "Claude".

user_id
integer
user
string | null
at
string <date-time> | null
paginationkötelező
object
pagination mezői
limitkötelező
integer
offsetkötelező
integer
totalkötelező
integer

A találatként kapott rekordok teljes száma.

400

Hibás formátumú kérés: érvénytelen JSON törzs, rossz host (használja a www. hostot), vagy olvashatatlan kérés.

401

A kulcs hiányzik, érvénytelen, visszavonták vagy lejárt, vagy a hozzá tartozó felhasználó már nem aktív.

403

Hiányzó hatókör (scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.

404

Ismeretlen végpont, vagy a rekord nem létezik / nem látható a felhasználó számára.

405

Ezen az útvonalon nem elérhető metódus (a DELETE és a PUT soha nem az; a PATCH csak ott, ahol frissítés is elérhető).

422

A validáció sikertelen volt, vagy ismeretlen mező; a details.fields felsorolja a mezőhibákat.

429

A sebességkorlát túllépve; a Retry-After megadja, mikor próbálja újra.

503

Az iroda átmenetileg nem érhető el (karbantartás vagy beállítás van folyamatban); a Retry-After megadja, mikor próbálja újra.

default

Bármely egyéb hiba, ugyanabban a burokban.

Kérésminták

curl 'https://www.flowyer.hu/api/agent/clients?q=Kov%C3%A1cs&limit=25' \
  -H 'Authorization: Bearer flw_...'

Válaszminták

{
  "data": [
    {
      "id": 512,
      "name": "Kovács Kft.",
      "is_person": true,
      "email": "info@example.hu",
      "phone": "string",
      "archived": true,
      "recorded_by_user_id": 1234,
      "recorded_by": "string",
      "created_at": "2026-10-30T09:15:00+01:00",
      "updated_at": "2026-10-30T09:15:00+01:00",
      "created_via_api": {
        "kind": "key",
        "key_id": 1234,
        "key_name": "string",
        "user_id": 1234,
        "user": "string",
        "at": "2026-10-30T09:15:00+01:00"
      }
    }
  ],
  "pagination": {
    "limit": 25,
    "offset": 0,
    "total": 1
  }
}

Ügyfél feloldása név alapján

GET /api/agent/clients/resolve

Megtalál egy ügyfelet kimondott vagy elgépelt név alapján (az ékezeteket, a kis-/nagybetűket és a kisebb elgépeléseket tűri). Az exact/similar/none állapotot és a lehetséges ügyfeleket adja vissza. Csak az "exact" használható biztonságosan közvetlenül; "similar" vagy "none" esetén kérdezze meg a felhasználót. A sok hasonló névvel rendelkező név soha nem "exact": kérjen teljesebb nevet.

Hatókör
clients:read
Flowyer-jogosultság
contacts:read

Lekérdezési paraméterek

namekötelező
stringlegalább 1 karakterlegfeljebb 255 karakter

A keresendő ügyfél neve, ahogyan hallotta vagy diktálták.

Példa: "Józsi ingatlan"
limit
integer>= 1<= 10

A visszaadandó jelöltek maximális száma (alapértelmezés: 5).

Alapértelmezés: 5

Válaszok

200

OK.

datakötelező
object
data mezői
status
string

exact = egy biztos találat (az azonosítója biztonsággal használható). similar = egy vagy több közelítő találat, előbb erősítse meg a felhasználóval. none = nincs találat, kérdezze meg a felhasználót.

Lehetséges értékek: "exact" "similar" "none"
matches
object[]

Lehetséges ügyfelek, a legjobb találat elöl.

matches mezői
id
integer

Ügyfélazonosító. Használja client_id értékként máshol.

Példa: 512
name
string
Példa: "Kovács Kft."
is_person
boolean

true természetes személy, false cég esetén.

email
string | null
phone
string | null
archived
boolean
recorded_by_user_id
integer | null
recorded_by
string | null
created_at
string <date-time> | null
updated_at
string <date-time> | null
created_via_api
object | null
created_via_api mezői
kind
string

"key": statikus API-kulccsal létrehozva; "oauth": OAuth-on keresztül csatlakoztatott alkalmazás által létrehozva.

Lehetséges értékek: "key" "oauth"
key_id
integer

Az API-kulcs ("key" típus) vagy a csatlakoztatott alkalmazás ("oauth" típus) azonosítója; a kettő számozása külön történik.

key_name
string

Az a név, amelyet a felhasználó adott az API-kulcsnak, például "Grok integration", vagy a csatlakoztatott alkalmazás neve "oauth" típus esetén, például "Claude".

user_id
integer
user
string | null
at
string <date-time> | null
total
integer

Hány ügyfél felelt meg, mielőtt a lista a limit értékre lett vágva.

truncated
boolean

true, ha több ügyfél felelt meg, mint amennyi visszatért, vagy túl sok hasonló név volt ahhoz, hogy mindegyiket ellenőrizni lehessen; kérjen a felhasználótól teljesebb nevet, vagy emelje a limit értékét, ahelyett hogy egy hiányos listából választana.

400

Hibás formátumú kérés: érvénytelen JSON törzs, rossz host (használja a www. hostot), vagy olvashatatlan kérés.

401

A kulcs hiányzik, érvénytelen, visszavonták vagy lejárt, vagy a hozzá tartozó felhasználó már nem aktív.

403

Hiányzó hatókör (scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.

404

Ismeretlen végpont, vagy a rekord nem létezik / nem látható a felhasználó számára.

405

Ezen az útvonalon nem elérhető metódus (a DELETE és a PUT soha nem az; a PATCH csak ott, ahol frissítés is elérhető).

422

A validáció sikertelen volt, vagy ismeretlen mező; a details.fields felsorolja a mezőhibákat.

429

A sebességkorlát túllépve; a Retry-After megadja, mikor próbálja újra.

503

Az iroda átmenetileg nem érhető el (karbantartás vagy beállítás van folyamatban); a Retry-After megadja, mikor próbálja újra.

default

Bármely egyéb hiba, ugyanabban a burokban.

Kérésminták

curl 'https://www.flowyer.hu/api/agent/clients/resolve?name=J%C3%B3zsi%20ingatlan' \
  -H 'Authorization: Bearer flw_...'

Válaszminták

{
  "data": {
    "status": "exact",
    "matches": [
      {
        "id": 512,
        "name": "Kovács Kft.",
        "is_person": true,
        "email": "info@example.hu",
        "phone": "string",
        "archived": true,
        "recorded_by_user_id": 1234,
        "recorded_by": "string",
        "created_at": "2026-10-30T09:15:00+01:00",
        "updated_at": "2026-10-30T09:15:00+01:00",
        "created_via_api": {
          "kind": "key",
          "key_id": 1234,
          "key_name": "string",
          "user_id": 1234,
          "user": "string",
          "at": "2026-10-30T09:15:00+01:00"
        }
      }
    ],
    "total": 1,
    "truncated": true
  }
}

Ügyfél lekérése

GET /api/agent/clients/{id}

Egy ügyfelet ad vissza a címmel és a nyilvántartási adatokkal. Igazolványszámok és díjbeállítások soha nem kerülnek visszaadásra.

Hatókör
clients:read
Flowyer-jogosultság
contacts:read

Útvonal-paraméterek

idkötelező
integer>= 1

Ügyfélazonosító.

Példa: 512

Válaszok

200

OK.

datakötelező
object
data mezői
id
integer

Ügyfélazonosító. Használja client_id értékként máshol.

Példa: 512
name
string
Példa: "Kovács Kft."
is_person
boolean

true természetes személy, false cég esetén.

email
string | null
phone
string | null
archived
boolean
recorded_by_user_id
integer | null
recorded_by
string | null
created_at
string <date-time> | null
updated_at
string <date-time> | null
created_via_api
object | null
created_via_api mezői
kind
string

"key": statikus API-kulccsal létrehozva; "oauth": OAuth-on keresztül csatlakoztatott alkalmazás által létrehozva.

Lehetséges értékek: "key" "oauth"
key_id
integer

Az API-kulcs ("key" típus) vagy a csatlakoztatott alkalmazás ("oauth" típus) azonosítója; a kettő számozása külön történik.

key_name
string

Az a név, amelyet a felhasználó adott az API-kulcsnak, például "Grok integration", vagy a csatlakoztatott alkalmazás neve "oauth" típus esetén, például "Claude".

user_id
integer
user
string | null
at
string <date-time> | null
address
object
address mezői
zip
string | nulllegfeljebb 20 karakter
city
string | nulllegfeljebb 100 karakter
street
string | nulllegfeljebb 255 karakter
mailing_address
object
mailing_address mezői
zip
string | nulllegfeljebb 20 karakter
city
string | nulllegfeljebb 100 karakter
street
string | nulllegfeljebb 255 karakter
tax_number
string | null

Csak cégek esetén; természetes személynél null.

company_registration_number
string | null

Csak cégek esetén; természetes személynél null.

representative_name
string | null

Csak cégek esetén; természetes személynél null.

representative_position
string | null

Csak cégek esetén; természetes személynél null.

main_activity
string | null

Fő tevékenységi kör. Csak cégek esetén; természetes személynél null.

nationality_country
string | null
note
string | null
400

Hibás formátumú kérés: érvénytelen JSON törzs, rossz host (használja a www. hostot), vagy olvashatatlan kérés.

401

A kulcs hiányzik, érvénytelen, visszavonták vagy lejárt, vagy a hozzá tartozó felhasználó már nem aktív.

403

Hiányzó hatókör (scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.

404

Ismeretlen végpont, vagy a rekord nem létezik / nem látható a felhasználó számára.

405

Ezen az útvonalon nem elérhető metódus (a DELETE és a PUT soha nem az; a PATCH csak ott, ahol frissítés is elérhető).

422

A validáció sikertelen volt, vagy ismeretlen mező; a details.fields felsorolja a mezőhibákat.

429

A sebességkorlát túllépve; a Retry-After megadja, mikor próbálja újra.

503

Az iroda átmenetileg nem érhető el (karbantartás vagy beállítás van folyamatban); a Retry-After megadja, mikor próbálja újra.

default

Bármely egyéb hiba, ugyanabban a burokban.

Kérésminták

curl 'https://www.flowyer.hu/api/agent/clients/512' \
  -H 'Authorization: Bearer flw_...'

Válaszminták

{
  "data": {
    "id": 512,
    "name": "Kovács Kft.",
    "is_person": true,
    "email": "info@example.hu",
    "phone": "string",
    "archived": true,
    "recorded_by_user_id": 1234,
    "recorded_by": "string",
    "created_at": "2026-10-30T09:15:00+01:00",
    "updated_at": "2026-10-30T09:15:00+01:00",
    "created_via_api": {
      "kind": "key",
      "key_id": 1234,
      "key_name": "string",
      "user_id": 1234,
      "user": "string",
      "at": "2026-10-30T09:15:00+01:00"
    },
    "address": {
      "zip": "string",
      "city": "string",
      "street": "string"
    },
    "mailing_address": {
      "zip": "string",
      "city": "string",
      "street": "string"
    },
    "tax_number": "string",
    "company_registration_number": "string",
    "representative_name": "string",
    "representative_position": "string",
    "main_activity": "string",
    "nationality_country": "string",
    "note": "string"
  }
}

Ügyfél létrehozása

POST /api/agent/clients

Létrehoz egy ügyfelet (személy vagy cég), amelynek létrehozójaként a kulcshoz tartozó felhasználó kerül rögzítésre. Először ellenőrizze a nevet a clients.resolve segítségével (a hiányzó ékezeteket és az elgépeléseket is tűri): a 409 csak a pontosan azonos nevű aktív ügyfelet szűri ki, kivéve, ha az allow_duplicate_name értéke true. Igazolványszámok és díjak nem állíthatók be.

Hatókör
clients:create
Flowyer-jogosultság
contacts:create

Fejléc-paraméterek

Idempotency-Key
stringlegfeljebb 128 karakter

Minden létrehozásnál ajánlott. Logikai műveletenként egyedi érték (például egy UUID). Ugyanaz az érték ugyanazt a rekordot adja vissza: az azzal való újrapróbálkozás az először létrehozott rekordot adja vissza ahelyett, hogy egy másodikat hozna létre. A különböző értékek mindig különböző rekordokat hoznak létre. Azok az ügyfelek, amelyek nem tudnak fejléceket küldeni, ugyanazt az értéket átadhatják az idempotency_key törzsmezőben. Betűk, számjegyek, _, -, : vagy ., legfeljebb 128 karakter.

Minta: ^[A-Za-z0-9_\-:.]{1,128}$

Kérés törzse application/json

namekötelező
stringlegalább 2 karakterlegfeljebb 255 karakter

A személy teljes neve vagy a cég neve. Egyszerű szöveg; a "<" és a ">" nem engedélyezett.

Minta: ^[^<>]*$
Példa: "Kovács Kft."
is_person
boolean

true természetes személy, false (alapértelmezett) cég esetén.

Alapértelmezés: false
email
string | nulllegfeljebb 190 karakter
Példa: "info@kovacskft.hu"
phone
string | nulllegfeljebb 64 karakter
Példa: "+36 1 234 5678"
address
object | null

Székhely / lakcím.

address mezői
zip
string | nulllegfeljebb 20 karakter
city
string | nulllegfeljebb 100 karakter
street
string | nulllegfeljebb 255 karakter
mailing_address
object | null
mailing_address mezői
zip
string | nulllegfeljebb 20 karakter
city
string | nulllegfeljebb 100 karakter
street
string | nulllegfeljebb 255 karakter
tax_number
string | nulllegfeljebb 64 karakter

Cég adószáma (csak cégek esetén).

Példa: "12345678-2-41"
company_registration_number
string | nulllegfeljebb 64 karakter

Cégjegyzékszám (csak cégek esetén).

Példa: "01-09-123456"
representative_name
string | nulllegfeljebb 255 karakter

Csak cégek esetén.

representative_position
string | nulllegfeljebb 255 karakter

Csak cégek esetén.

main_activity
string | nulllegfeljebb 255 karakter

Fő tevékenységi kör (csak cégek esetén).

nationality_country
string | nulllegfeljebb 100 karakter
note
string | nulllegfeljebb 4000 karakter
allow_duplicate_name
boolean

Létrehozás akkor is, ha már létezik azonos nevű aktív ügyfél.

Alapértelmezés: false
idempotency_key
stringlegfeljebb 128 karakter

Ugyanaz a szerepe, mint az Idempotency-Key fejlécnek, azon ügyfelek számára, amelyek nem tudnak egyéni fejléceket küldeni. Betűk, számjegyek, _, -, : vagy ., legfeljebb 128 karakter.

Minta: ^[A-Za-z0-9_\-:.]{1,128}$
Példa: "b8f1c2e0-6f7a-4d2e-9c1b-2a3d4e5f6a7b"

Válaszok

201

Létrehozva.

datakötelező
object
data mezői
id
integer

Ügyfélazonosító. Használja client_id értékként máshol.

Példa: 512
name
string
Példa: "Kovács Kft."
is_person
boolean

true természetes személy, false cég esetén.

email
string | null
phone
string | null
archived
boolean
recorded_by_user_id
integer | null
recorded_by
string | null
created_at
string <date-time> | null
updated_at
string <date-time> | null
created_via_api
object | null
created_via_api mezői
kind
string

"key": statikus API-kulccsal létrehozva; "oauth": OAuth-on keresztül csatlakoztatott alkalmazás által létrehozva.

Lehetséges értékek: "key" "oauth"
key_id
integer

Az API-kulcs ("key" típus) vagy a csatlakoztatott alkalmazás ("oauth" típus) azonosítója; a kettő számozása külön történik.

key_name
string

Az a név, amelyet a felhasználó adott az API-kulcsnak, például "Grok integration", vagy a csatlakoztatott alkalmazás neve "oauth" típus esetén, például "Claude".

user_id
integer
user
string | null
at
string <date-time> | null
address
object
address mezői
zip
string | nulllegfeljebb 20 karakter
city
string | nulllegfeljebb 100 karakter
street
string | nulllegfeljebb 255 karakter
mailing_address
object
mailing_address mezői
zip
string | nulllegfeljebb 20 karakter
city
string | nulllegfeljebb 100 karakter
street
string | nulllegfeljebb 255 karakter
tax_number
string | null

Csak cégek esetén; természetes személynél null.

company_registration_number
string | null

Csak cégek esetén; természetes személynél null.

representative_name
string | null

Csak cégek esetén; természetes személynél null.

representative_position
string | null

Csak cégek esetén; természetes személynél null.

main_activity
string | null

Fő tevékenységi kör. Csak cégek esetén; természetes személynél null.

nationality_country
string | null
note
string | null
created
boolean
Érték: true
200

Idempotens visszajátszás: ez az Idempotency-Key (vagy kulcs nélkül egy azonos kérés 120 másodpercen belül) már létrehozta a rekordot; a rendszer újra visszaadja, semmi új nem jött létre.

datakötelező
object
data mezői
id
integer

Ügyfélazonosító. Használja client_id értékként máshol.

Példa: 512
name
string
Példa: "Kovács Kft."
is_person
boolean

true természetes személy, false cég esetén.

email
string | null
phone
string | null
archived
boolean
recorded_by_user_id
integer | null
recorded_by
string | null
created_at
string <date-time> | null
updated_at
string <date-time> | null
created_via_api
object | null
created_via_api mezői
kind
string

"key": statikus API-kulccsal létrehozva; "oauth": OAuth-on keresztül csatlakoztatott alkalmazás által létrehozva.

Lehetséges értékek: "key" "oauth"
key_id
integer

Az API-kulcs ("key" típus) vagy a csatlakoztatott alkalmazás ("oauth" típus) azonosítója; a kettő számozása külön történik.

key_name
string

Az a név, amelyet a felhasználó adott az API-kulcsnak, például "Grok integration", vagy a csatlakoztatott alkalmazás neve "oauth" típus esetén, például "Claude".

user_id
integer
user
string | null
at
string <date-time> | null
address
object
address mezői
zip
string | nulllegfeljebb 20 karakter
city
string | nulllegfeljebb 100 karakter
street
string | nulllegfeljebb 255 karakter
mailing_address
object
mailing_address mezői
zip
string | nulllegfeljebb 20 karakter
city
string | nulllegfeljebb 100 karakter
street
string | nulllegfeljebb 255 karakter
tax_number
string | null

Csak cégek esetén; természetes személynél null.

company_registration_number
string | null

Csak cégek esetén; természetes személynél null.

representative_name
string | null

Csak cégek esetén; természetes személynél null.

representative_position
string | null

Csak cégek esetén; természetes személynél null.

main_activity
string | null

Fő tevékenységi kör. Csak cégek esetén; természetes személynél null.

nationality_country
string | null
note
string | null
created
boolean
Érték: false
idempotent_replay
boolean
Érték: true
400

Hibás formátumú kérés: érvénytelen JSON törzs, rossz host (használja a www. hostot), vagy olvashatatlan kérés.

401

A kulcs hiányzik, érvénytelen, visszavonták vagy lejárt, vagy a hozzá tartozó felhasználó már nem aktív.

403

Hiányzó hatókör (scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.

404

Ismeretlen végpont, vagy a rekord nem létezik / nem látható a felhasználó számára. replay_not_visible: ez az Idempotency-Key (vagy kulcs nélkül egy azonos kérés) már létrehozta a rekordot (details.record_id), de azt azóta törölték, vagy nem látható a felhasználó számára; semmi új nem jött létre, ne hozza létre újra.

405

Ezen az útvonalon nem elérhető metódus (a DELETE és a PUT soha nem az; a PATCH csak ott, ahol frissítés is elérhető).

409

Már létezik azonos nevű aktív ügyfél (client_exists, vagy a clients:read scope hiányában client_exists_generic, amikor a meglévő ügyfél nem nevezhető meg; a felülbíráláshoz adja meg az allow_duplicate_name értéket), az Idempotency-Key egy másik erőforrástípushoz lett használva (idempotency_key_reused), vagy kulcs nélkül egy azonos kérés feldolgozása épp folyamatban van (duplicate_in_progress).

413

A kérés törzse túl nagy (request_too_large).

422

A validáció sikertelen volt, vagy ismeretlen mező; a details.fields felsorolja a mezőhibákat.

429

A sebességkorlát túllépve; a Retry-After megadja, mikor próbálja újra.

503

Az iroda átmenetileg nem érhető el (karbantartás vagy beállítás van folyamatban); a Retry-After megadja, mikor próbálja újra.

default

Bármely egyéb hiba, ugyanabban a burokban.

Kérésminták

curl -X POST 'https://www.flowyer.hu/api/agent/clients' \
  -H 'Authorization: Bearer flw_...' \
  -H 'Content-Type: application/json' \
  -H 'Idempotency-Key: 7f3a9c21-1b2c-4d5e-8f90-0a1b2c3d4e5f' \
  -d '{
  "name": "Kovács Kft.",
  "email": "info@kovacskft.hu",
  "phone": "+36 1 234 5678",
  "tax_number": "12345678-2-41",
  "company_registration_number": "01-09-123456"
}'

Válaszminták

{
  "data": {
    "id": 512,
    "name": "Kovács Kft.",
    "is_person": true,
    "email": "info@example.hu",
    "phone": "string",
    "archived": true,
    "recorded_by_user_id": 1234,
    "recorded_by": "string",
    "created_at": "2026-10-30T09:15:00+01:00",
    "updated_at": "2026-10-30T09:15:00+01:00",
    "created_via_api": {
      "kind": "key",
      "key_id": 1234,
      "key_name": "string",
      "user_id": 1234,
      "user": "string",
      "at": "2026-10-30T09:15:00+01:00"
    },
    "address": {
      "zip": "string",
      "city": "string",
      "street": "string"
    },
    "mailing_address": {
      "zip": "string",
      "city": "string",
      "street": "string"
    },
    "tax_number": "string",
    "company_registration_number": "string",
    "representative_name": "string",
    "representative_position": "string",
    "main_activity": "string",
    "nationality_country": "string",
    "note": "string"
  },
  "created": true
}

Ügyfél módosítása

PATCH /api/agent/clients/{id}

Módosítja egy ügyfél kapcsolattartási mezőit (név, e-mail, telefon, cím, megjegyzés, állampolgárság, valamint a cég képviselője/tevékenysége). Az igazolványszámok, adószámok, díjak és a személy/cég típus itt nem szerkeszthetők. Adja meg az expected_updated_at értéket; ütköző módosítás esetén a válasz 409.

Hatókör
clients:update
Flowyer-jogosultság
contacts:modify

Útvonal-paraméterek

idkötelező
integer>= 1

A módosítandó rekord azonosítója.

Kérés törzse application/json

expected_updated_at
string <date-time> | null

A rekord legutóbbi olvasásából származó updated_at érték (minden esetben kötelező, ha a rekordnak van ilyen). Ha a rekord azóta megváltozott (egy kolléga szerkesztette), az API 409-et ad válaszul, és újra kell olvasnia, mielőtt újrapróbálkozna. Egy olyan régebbi rekord, amelynek az updated_at értéke null, a null értéket veszi fel.

name
string | nulllegalább 1 karakter

Teljes név vagy cégnév. Egyszerű szöveg, ÚJ értékként legfeljebb 255 karakter; a "<" és a ">" sem vihető be, de egy tárolt név, amely hosszabb vagy tartalmazza ezeket, változatlanul visszaküldhető. A null megtartja az aktuális nevet.

email
string | nulllegfeljebb 190 karakter
phone
string | nulllegfeljebb 64 karakter
address
object | null

Székhely / lakcím.

address mezői
zip
string | nulllegfeljebb 20 karakter
city
string | nulllegfeljebb 100 karakter
street
string | nulllegfeljebb 255 karakter
mailing_address
object | null
mailing_address mezői
zip
string | nulllegfeljebb 20 karakter
city
string | nulllegfeljebb 100 karakter
street
string | nulllegfeljebb 255 karakter
representative_name
string | nulllegfeljebb 255 karakter

Csak cégek esetén.

representative_position
string | nulllegfeljebb 255 karakter

Csak cégek esetén.

main_activity
string | nulllegfeljebb 255 karakter

Fő tevékenységi kör (csak cégek esetén).

nationality_country
string | nulllegfeljebb 100 karakter
note
string | null

Szabad szöveges megjegyzés, ÚJ értékként legfeljebb 4000 karakter; egy hosszabb tárolt megjegyzés változatlanul visszaküldhető. A null törli a megjegyzést.

Válaszok

200

Frissítve.

datakötelező
object
data mezői
id
integer

Ügyfélazonosító. Használja client_id értékként máshol.

Példa: 512
name
string
Példa: "Kovács Kft."
is_person
boolean

true természetes személy, false cég esetén.

email
string | null
phone
string | null
archived
boolean
recorded_by_user_id
integer | null
recorded_by
string | null
created_at
string <date-time> | null
updated_at
string <date-time> | null
created_via_api
object | null
created_via_api mezői
kind
string

"key": statikus API-kulccsal létrehozva; "oauth": OAuth-on keresztül csatlakoztatott alkalmazás által létrehozva.

Lehetséges értékek: "key" "oauth"
key_id
integer

Az API-kulcs ("key" típus) vagy a csatlakoztatott alkalmazás ("oauth" típus) azonosítója; a kettő számozása külön történik.

key_name
string

Az a név, amelyet a felhasználó adott az API-kulcsnak, például "Grok integration", vagy a csatlakoztatott alkalmazás neve "oauth" típus esetén, például "Claude".

user_id
integer
user
string | null
at
string <date-time> | null
address
object
address mezői
zip
string | nulllegfeljebb 20 karakter
city
string | nulllegfeljebb 100 karakter
street
string | nulllegfeljebb 255 karakter
mailing_address
object
mailing_address mezői
zip
string | nulllegfeljebb 20 karakter
city
string | nulllegfeljebb 100 karakter
street
string | nulllegfeljebb 255 karakter
tax_number
string | null

Csak cégek esetén; természetes személynél null.

company_registration_number
string | null

Csak cégek esetén; természetes személynél null.

representative_name
string | null

Csak cégek esetén; természetes személynél null.

representative_position
string | null

Csak cégek esetén; természetes személynél null.

main_activity
string | null

Fő tevékenységi kör. Csak cégek esetén; természetes személynél null.

nationality_country
string | null
note
string | null
updated
boolean
Érték: true
400

Hibás formátumú kérés: érvénytelen JSON törzs, rossz host (használja a www. hostot), vagy olvashatatlan kérés.

401

A kulcs hiányzik, érvénytelen, visszavonták vagy lejárt, vagy a hozzá tartozó felhasználó már nem aktív.

403

Hiányzó hatókör (scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.

404

Ismeretlen végpont, vagy a rekord nem létezik / nem látható a felhasználó számára.

405

Ezen az útvonalon nem elérhető metódus (a DELETE és a PUT soha nem az; a PATCH csak ott, ahol frissítés is elérhető).

409

A rekord megváltozott, mióta beolvasta (record_conflict: az expected_updated_at már nem egyezik; olvassa be újra, és próbálja újra az új updated_at értékkel).

413

A kérés törzse túl nagy (request_too_large).

422

A validáció sikertelen volt, vagy ismeretlen mező; a details.fields felsorolja a mezőhibákat.

429

A sebességkorlát túllépve; a Retry-After megadja, mikor próbálja újra.

503

Az iroda átmenetileg nem érhető el (karbantartás vagy beállítás van folyamatban); a Retry-After megadja, mikor próbálja újra.

default

Bármely egyéb hiba, ugyanabban a burokban.

Kérésminták

curl -X PATCH 'https://www.flowyer.hu/api/agent/clients/1234' \
  -H 'Authorization: Bearer flw_...' \
  -H 'Content-Type: application/json' \
  -d '{
  "expected_updated_at": "2026-10-30T09:15:00+01:00",
  "name": "string"
}'

Válaszminták

{
  "data": {
    "id": 512,
    "name": "Kovács Kft.",
    "is_person": true,
    "email": "info@example.hu",
    "phone": "string",
    "archived": true,
    "recorded_by_user_id": 1234,
    "recorded_by": "string",
    "created_at": "2026-10-30T09:15:00+01:00",
    "updated_at": "2026-10-30T09:15:00+01:00",
    "created_via_api": {
      "kind": "key",
      "key_id": 1234,
      "key_name": "string",
      "user_id": 1234,
      "user": "string",
      "at": "2026-10-30T09:15:00+01:00"
    },
    "address": {
      "zip": "string",
      "city": "string",
      "street": "string"
    },
    "mailing_address": {
      "zip": "string",
      "city": "string",
      "street": "string"
    },
    "tax_number": "string",
    "company_registration_number": "string",
    "representative_name": "string",
    "representative_position": "string",
    "main_activity": "string",
    "nationality_country": "string",
    "note": "string"
  },
  "updated": true
}

Feladatok

Feladatok listázása

GET /api/agent/tasks

Listázza a felhasználó számára látható feladatokat (határidős teendők), a legközelebbi határidővel kezdve. Alapértelmezés szerint a nyitott feladatokat; szűrhet felelősre, ügyre, ügyfélre vagy határidőtartományra.

Hatókör
tasks:read
Flowyer-jogosultság
tasks:read

Lekérdezési paraméterek

status
string

open (alapértelmezett), closed vagy all.

Lehetséges értékek: "open" "closed" "all"
Alapértelmezés: "open"
assigned_to_user_id
integer>= 1

Csak az ehhez a felhasználóhoz rendelt feladatok (egy felhasználóazonosító a colleagues.list-ből).

matter_id
integer>= 1

Csak az ehhez az ügyhöz tartozó feladatok.

client_id
integer>= 1

Csak az ehhez az ügyfélhez tartozó ügy nélküli feladatok.

deadline_from
string <date>

Határidő ezen a napon vagy azután.

Példa: "2026-11-01"
deadline_to
string <date>

Határidő ezen a napon vagy azelőtt.

Példa: "2026-11-30"
limit
integer>= 1<= 100

Oldalméret, 1-100. Alapértelmezés: 25.

Alapértelmezés: 25
Példa: 25
offset
integer>= 0

A kihagyandó rekordok száma. Az előző oldal offset + limit értékével jut el a következő oldalra; a pagination.total a teljes darabszámot adja meg.

Alapértelmezés: 0
Példa: 0

Válaszok

200

OK.

datakötelező
object[]
data mezői
id
integer
Példa: 9876
subject
string
Példa: "Submit the statement of defence"
description
string | null
deadline
string <date> | null

Határidő, YYYY-MM-DD.

Példa: "2026-11-15"
priority
integer | null

1 = alacsony, 2 = közepes, 3 = magas; null = nincs beállítva (egy régebbi, prioritás nélküli feladat).

Példa: 2
status
string
Lehetséges értékek: "open" "closed"
closed_at
string <date> | null

A feladat lezárásának napja, YYYY-MM-DD. A Flowyer csak a dátumot rögzíti, a napszakot nem.

matter
object | null

Az ügy, amelyhez a feladat tartozik, ha van ilyen.

matter mezői
id
integer
case_number
string
client
object | null

Az ügyfél: az ügy első ügyfele, vagy a feladat saját ügyfele, ha nincs ügye.

client mezői
id
integer
name
string
assigned_to_user_id
integer | null
assigned_to
string | null
created_by_user_id
integer | null
created_by
string | null
flag_id
integer | null
created_at
string <date-time> | null
updated_at
string <date-time> | null
created_via_api
object | null
created_via_api mezői
kind
string

"key": statikus API-kulccsal létrehozva; "oauth": OAuth-on keresztül csatlakoztatott alkalmazás által létrehozva.

Lehetséges értékek: "key" "oauth"
key_id
integer

Az API-kulcs ("key" típus) vagy a csatlakoztatott alkalmazás ("oauth" típus) azonosítója; a kettő számozása külön történik.

key_name
string

Az a név, amelyet a felhasználó adott az API-kulcsnak, például "Grok integration", vagy a csatlakoztatott alkalmazás neve "oauth" típus esetén, például "Claude".

user_id
integer
user
string | null
at
string <date-time> | null
paginationkötelező
object
pagination mezői
limitkötelező
integer
offsetkötelező
integer
totalkötelező
integer

A találatként kapott rekordok teljes száma.

400

Hibás formátumú kérés: érvénytelen JSON törzs, rossz host (használja a www. hostot), vagy olvashatatlan kérés.

401

A kulcs hiányzik, érvénytelen, visszavonták vagy lejárt, vagy a hozzá tartozó felhasználó már nem aktív.

403

Hiányzó hatókör (scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.

404

Ismeretlen végpont, vagy a rekord nem létezik / nem látható a felhasználó számára.

405

Ezen az útvonalon nem elérhető metódus (a DELETE és a PUT soha nem az; a PATCH csak ott, ahol frissítés is elérhető).

422

A validáció sikertelen volt, vagy ismeretlen mező; a details.fields felsorolja a mezőhibákat.

429

A sebességkorlát túllépve; a Retry-After megadja, mikor próbálja újra.

503

Az iroda átmenetileg nem érhető el (karbantartás vagy beállítás van folyamatban); a Retry-After megadja, mikor próbálja újra.

default

Bármely egyéb hiba, ugyanabban a burokban.

Kérésminták

curl 'https://www.flowyer.hu/api/agent/tasks?deadline_from=2026-11-01&deadline_to=2026-11-30&limit=25' \
  -H 'Authorization: Bearer flw_...'

Válaszminták

{
  "data": [
    {
      "id": 9876,
      "subject": "Submit the statement of defence",
      "description": "string",
      "deadline": "2026-11-15",
      "priority": 2,
      "status": "open",
      "closed_at": "2026-10-30",
      "matter": {
        "id": 1234,
        "case_number": "string"
      },
      "client": {
        "id": 1234,
        "name": "string"
      },
      "assigned_to_user_id": 1234,
      "assigned_to": "string",
      "created_by_user_id": 1234,
      "created_by": "string",
      "flag_id": 1234,
      "created_at": "2026-10-30T09:15:00+01:00",
      "updated_at": "2026-10-30T09:15:00+01:00",
      "created_via_api": {
        "kind": "key",
        "key_id": 1234,
        "key_name": "string",
        "user_id": 1234,
        "user": "string",
        "at": "2026-10-30T09:15:00+01:00"
      }
    }
  ],
  "pagination": {
    "limit": 25,
    "offset": 0,
    "total": 1
  }
}

Feladat lekérése

GET /api/agent/tasks/{id}

Egy feladatot ad vissza. 404 választ ad, ha a feladat nem létezik, vagy a felhasználó nem láthatja.

Hatókör
tasks:read
Flowyer-jogosultság
tasks:read

Útvonal-paraméterek

idkötelező
integer>= 1

Feladatazonosító.

Példa: 9876

Válaszok

200

OK.

datakötelező
object
data mezői
id
integer
Példa: 9876
subject
string
Példa: "Submit the statement of defence"
description
string | null
deadline
string <date> | null

Határidő, YYYY-MM-DD.

Példa: "2026-11-15"
priority
integer | null

1 = alacsony, 2 = közepes, 3 = magas; null = nincs beállítva (egy régebbi, prioritás nélküli feladat).

Példa: 2
status
string
Lehetséges értékek: "open" "closed"
closed_at
string <date> | null

A feladat lezárásának napja, YYYY-MM-DD. A Flowyer csak a dátumot rögzíti, a napszakot nem.

matter
object | null

Az ügy, amelyhez a feladat tartozik, ha van ilyen.

matter mezői
id
integer
case_number
string
client
object | null

Az ügyfél: az ügy első ügyfele, vagy a feladat saját ügyfele, ha nincs ügye.

client mezői
id
integer
name
string
assigned_to_user_id
integer | null
assigned_to
string | null
created_by_user_id
integer | null
created_by
string | null
flag_id
integer | null
created_at
string <date-time> | null
updated_at
string <date-time> | null
created_via_api
object | null
created_via_api mezői
kind
string

"key": statikus API-kulccsal létrehozva; "oauth": OAuth-on keresztül csatlakoztatott alkalmazás által létrehozva.

Lehetséges értékek: "key" "oauth"
key_id
integer

Az API-kulcs ("key" típus) vagy a csatlakoztatott alkalmazás ("oauth" típus) azonosítója; a kettő számozása külön történik.

key_name
string

Az a név, amelyet a felhasználó adott az API-kulcsnak, például "Grok integration", vagy a csatlakoztatott alkalmazás neve "oauth" típus esetén, például "Claude".

user_id
integer
user
string | null
at
string <date-time> | null
400

Hibás formátumú kérés: érvénytelen JSON törzs, rossz host (használja a www. hostot), vagy olvashatatlan kérés.

401

A kulcs hiányzik, érvénytelen, visszavonták vagy lejárt, vagy a hozzá tartozó felhasználó már nem aktív.

403

Hiányzó hatókör (scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.

404

Ismeretlen végpont, vagy a rekord nem létezik / nem látható a felhasználó számára.

405

Ezen az útvonalon nem elérhető metódus (a DELETE és a PUT soha nem az; a PATCH csak ott, ahol frissítés is elérhető).

422

A validáció sikertelen volt, vagy ismeretlen mező; a details.fields felsorolja a mezőhibákat.

429

A sebességkorlát túllépve; a Retry-After megadja, mikor próbálja újra.

503

Az iroda átmenetileg nem érhető el (karbantartás vagy beállítás van folyamatban); a Retry-After megadja, mikor próbálja újra.

default

Bármely egyéb hiba, ugyanabban a burokban.

Kérésminták

curl 'https://www.flowyer.hu/api/agent/tasks/9876' \
  -H 'Authorization: Bearer flw_...'

Válaszminták

{
  "data": {
    "id": 9876,
    "subject": "Submit the statement of defence",
    "description": "string",
    "deadline": "2026-11-15",
    "priority": 2,
    "status": "open",
    "closed_at": "2026-10-30",
    "matter": {
      "id": 1234,
      "case_number": "string"
    },
    "client": {
      "id": 1234,
      "name": "string"
    },
    "assigned_to_user_id": 1234,
    "assigned_to": "string",
    "created_by_user_id": 1234,
    "created_by": "string",
    "flag_id": 1234,
    "created_at": "2026-10-30T09:15:00+01:00",
    "updated_at": "2026-10-30T09:15:00+01:00",
    "created_via_api": {
      "kind": "key",
      "key_id": 1234,
      "key_name": "string",
      "user_id": 1234,
      "user": "string",
      "at": "2026-10-30T09:15:00+01:00"
    }
  }
}

Feladat létrehozása

POST /api/agent/tasks

Létrehoz egy feladatot (határidős teendő), vagy egy ügyön (matter_id, látható és nem archivált), vagy ügy nélkül, opcionálisan egy ügyfélhez (client_id). A felelős alapértelmezés szerint a kulcshoz tartozó felhasználó, és értesítést kap, ha az valaki más.

Hatókör
tasks:create
Flowyer-jogosultság
tasks:create

Fejléc-paraméterek

Idempotency-Key
stringlegfeljebb 128 karakter

Minden létrehozásnál ajánlott. Logikai műveletenként egyedi érték (például egy UUID). Ugyanaz az érték ugyanazt a rekordot adja vissza: az azzal való újrapróbálkozás az először létrehozott rekordot adja vissza ahelyett, hogy egy másodikat hozna létre. A különböző értékek mindig különböző rekordokat hoznak létre. Azok az ügyfelek, amelyek nem tudnak fejléceket küldeni, ugyanazt az értéket átadhatják az idempotency_key törzsmezőben. Betűk, számjegyek, _, -, : vagy ., legfeljebb 128 karakter.

Minta: ^[A-Za-z0-9_\-:.]{1,128}$

Kérés törzse application/json

subjectkötelező
stringlegalább 2 karakterlegfeljebb 1000 karakter

Mit kell elvégezni. Egyszerű szöveg.

Példa: "Submit the statement of defence"
deadlinekötelező
string <date>

Határidő, YYYY-MM-DD.

Példa: "2026-11-15"
matter_id
integer | null>= 1

Az ügy, amelyhez a feladat tartozik. Hagyja el egy ügy nélküli feladathoz.

Példa: 1234
client_id
integer | null>= 1

Egy ügy nélküli feladat ügyfele. A matter_id-vel együtt nem engedélyezett (egy ügy feladata az ügy ügyfelét veszi át).

assigned_to_user_id
integer | null>= 1

A feladatért felelős munkatárs: egy felhasználóazonosító a colleagues.list-ből (a diktált nevet ott keresse ki). Alapértelmezés: a kulcs mögötti felhasználó.

priority
integer>= 1<= 3

1 = alacsony, 2 = közepes (alapértelmezett), 3 = magas.

Alapértelmezés: 2
description
string | nulllegfeljebb 10000 karakter

Hosszabb részletek, egyszerű szöveg.

flag_id
integer | null>= 1

Egy irodai feladatjelző (címke) azonosítója.

idempotency_key
stringlegfeljebb 128 karakter

Ugyanaz a szerepe, mint az Idempotency-Key fejlécnek, azon ügyfelek számára, amelyek nem tudnak egyéni fejléceket küldeni. Betűk, számjegyek, _, -, : vagy ., legfeljebb 128 karakter.

Minta: ^[A-Za-z0-9_\-:.]{1,128}$
Példa: "b8f1c2e0-6f7a-4d2e-9c1b-2a3d4e5f6a7b"

Válaszok

201

Létrehozva.

datakötelező
object
data mezői
id
integer
Példa: 9876
subject
string
Példa: "Submit the statement of defence"
description
string | null
deadline
string <date> | null

Határidő, YYYY-MM-DD.

Példa: "2026-11-15"
priority
integer | null

1 = alacsony, 2 = közepes, 3 = magas; null = nincs beállítva (egy régebbi, prioritás nélküli feladat).

Példa: 2
status
string
Lehetséges értékek: "open" "closed"
closed_at
string <date> | null

A feladat lezárásának napja, YYYY-MM-DD. A Flowyer csak a dátumot rögzíti, a napszakot nem.

matter
object | null

Az ügy, amelyhez a feladat tartozik, ha van ilyen.

matter mezői
id
integer
case_number
string
client
object | null

Az ügyfél: az ügy első ügyfele, vagy a feladat saját ügyfele, ha nincs ügye.

client mezői
id
integer
name
string
assigned_to_user_id
integer | null
assigned_to
string | null
created_by_user_id
integer | null
created_by
string | null
flag_id
integer | null
created_at
string <date-time> | null
updated_at
string <date-time> | null
created_via_api
object | null
created_via_api mezői
kind
string

"key": statikus API-kulccsal létrehozva; "oauth": OAuth-on keresztül csatlakoztatott alkalmazás által létrehozva.

Lehetséges értékek: "key" "oauth"
key_id
integer

Az API-kulcs ("key" típus) vagy a csatlakoztatott alkalmazás ("oauth" típus) azonosítója; a kettő számozása külön történik.

key_name
string

Az a név, amelyet a felhasználó adott az API-kulcsnak, például "Grok integration", vagy a csatlakoztatott alkalmazás neve "oauth" típus esetén, például "Claude".

user_id
integer
user
string | null
at
string <date-time> | null
created
boolean
Érték: true
200

Idempotens visszajátszás: ez az Idempotency-Key (vagy kulcs nélkül egy azonos kérés 120 másodpercen belül) már létrehozta a rekordot; a rendszer újra visszaadja, semmi új nem jött létre.

datakötelező
object
data mezői
id
integer
Példa: 9876
subject
string
Példa: "Submit the statement of defence"
description
string | null
deadline
string <date> | null

Határidő, YYYY-MM-DD.

Példa: "2026-11-15"
priority
integer | null

1 = alacsony, 2 = közepes, 3 = magas; null = nincs beállítva (egy régebbi, prioritás nélküli feladat).

Példa: 2
status
string
Lehetséges értékek: "open" "closed"
closed_at
string <date> | null

A feladat lezárásának napja, YYYY-MM-DD. A Flowyer csak a dátumot rögzíti, a napszakot nem.

matter
object | null

Az ügy, amelyhez a feladat tartozik, ha van ilyen.

matter mezői
id
integer
case_number
string
client
object | null

Az ügyfél: az ügy első ügyfele, vagy a feladat saját ügyfele, ha nincs ügye.

client mezői
id
integer
name
string
assigned_to_user_id
integer | null
assigned_to
string | null
created_by_user_id
integer | null
created_by
string | null
flag_id
integer | null
created_at
string <date-time> | null
updated_at
string <date-time> | null
created_via_api
object | null
created_via_api mezői
kind
string

"key": statikus API-kulccsal létrehozva; "oauth": OAuth-on keresztül csatlakoztatott alkalmazás által létrehozva.

Lehetséges értékek: "key" "oauth"
key_id
integer

Az API-kulcs ("key" típus) vagy a csatlakoztatott alkalmazás ("oauth" típus) azonosítója; a kettő számozása külön történik.

key_name
string

Az a név, amelyet a felhasználó adott az API-kulcsnak, például "Grok integration", vagy a csatlakoztatott alkalmazás neve "oauth" típus esetén, például "Claude".

user_id
integer
user
string | null
at
string <date-time> | null
created
boolean
Érték: false
idempotent_replay
boolean
Érték: true
400

Hibás formátumú kérés: érvénytelen JSON törzs, rossz host (használja a www. hostot), vagy olvashatatlan kérés.

401

A kulcs hiányzik, érvénytelen, visszavonták vagy lejárt, vagy a hozzá tartozó felhasználó már nem aktív.

403

Hiányzó hatókör (scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.

404

Ismeretlen végpont, vagy a rekord nem létezik / nem látható a felhasználó számára. replay_not_visible: ez az Idempotency-Key (vagy kulcs nélkül egy azonos kérés) már létrehozta a rekordot (details.record_id), de azt azóta törölték, vagy nem látható a felhasználó számára; semmi új nem jött létre, ne hozza létre újra.

405

Ezen az útvonalon nem elérhető metódus (a DELETE és a PUT soha nem az; a PATCH csak ott, ahol frissítés is elérhető).

409

Az Idempotency-Key kulcsot egy másik erőforrástípushoz használták (idempotency_key_reused), vagy kulcs nélkül egy azonos kérés feldolgozása éppen most zajlik (duplicate_in_progress; próbálja újra rövidesen).

413

A kérés törzse túl nagy (request_too_large).

422

A validáció sikertelen volt, vagy ismeretlen mező; a details.fields felsorolja a mezőhibákat.

429

A sebességkorlát túllépve; a Retry-After megadja, mikor próbálja újra.

503

Az iroda átmenetileg nem érhető el (karbantartás vagy beállítás van folyamatban); a Retry-After megadja, mikor próbálja újra.

default

Bármely egyéb hiba, ugyanabban a burokban.

Kérésminták

curl -X POST 'https://www.flowyer.hu/api/agent/tasks' \
  -H 'Authorization: Bearer flw_...' \
  -H 'Content-Type: application/json' \
  -H 'Idempotency-Key: 7f3a9c21-1b2c-4d5e-8f90-0a1b2c3d4e5f' \
  -d '{
  "subject": "Submit the statement of defence",
  "deadline": "2026-11-15",
  "matter_id": 1234
}'

Válaszminták

{
  "data": {
    "id": 9876,
    "subject": "Submit the statement of defence",
    "description": "string",
    "deadline": "2026-11-15",
    "priority": 2,
    "status": "open",
    "closed_at": "2026-10-30",
    "matter": {
      "id": 1234,
      "case_number": "string"
    },
    "client": {
      "id": 1234,
      "name": "string"
    },
    "assigned_to_user_id": 1234,
    "assigned_to": "string",
    "created_by_user_id": 1234,
    "created_by": "string",
    "flag_id": 1234,
    "created_at": "2026-10-30T09:15:00+01:00",
    "updated_at": "2026-10-30T09:15:00+01:00",
    "created_via_api": {
      "kind": "key",
      "key_id": 1234,
      "key_name": "string",
      "user_id": 1234,
      "user": "string",
      "at": "2026-10-30T09:15:00+01:00"
    }
  },
  "created": true
}

Feladat módosítása

PATCH /api/agent/tasks/{id}

Módosít egy feladatot: tárgy, határidő, leírás, prioritás, jelző, felelős vagy az ügy, amelyhez tartozik. Egy ügyre áthelyezve újraszármaztatja a bírósági kapcsolatot, és elhagyja a közvetlen ügyfelet; a client_id csak egy ügy nélküli feladathoz való. Adja meg az expected_updated_at értéket; ütköző módosítás esetén a válasz 409.

Hatókör
tasks:update
Flowyer-jogosultság
tasks:modify

Útvonal-paraméterek

idkötelező
integer>= 1

A módosítandó rekord azonosítója.

Kérés törzse application/json

expected_updated_at
string <date-time> | null

A rekord legutóbbi olvasásából származó updated_at érték (minden esetben kötelező, ha a rekordnak van ilyen). Ha a rekord azóta megváltozott (egy kolléga szerkesztette), az API 409-et ad válaszul, és újra kell olvasnia, mielőtt újrapróbálkozna. Egy olyan régebbi rekord, amelynek az updated_at értéke null, a null értéket veszi fel.

subject
string | nulllegalább 1 karakter

Mit kell elvégezni. Egyszerű szöveg, ÚJ értékként legfeljebb 1000 karakter; egy hosszabb tárolt tárgy változatlanul visszaküldhető. A null megtartja az aktuális tárgyat.

deadline
string <date> | null

Határidő, YYYY-MM-DD. A null megtartja az aktuális határidőt (a határidő nem törölhető).

matter_id
integer | null>= 1

Áthelyezi a feladatot erre az ügyre (láthatónak és nem archiváltnak kell lennie), vagy null a leválasztásához. A feladat aktuális ügyének küldése nem változtat semmin.

client_id
integer | null>= 1

Egy ügy nélküli feladat ügyfele. Csak akkor engedélyezett, ha a feladatnak nincs ügye.

assigned_to_user_id
integer | null>= 0

Új felelős: egy aktív munkatárs felhasználóazonosítója a colleagues.list-ből. Értesítést kap, ha nem Ön az. Az aktuális küldése, vagy a null / 0, amelyet egy felelős nélküli feladat visszaolvas, nem változtat semmin.

priority
integer>= 1<= 3

1 = alacsony, 2 = közepes, 3 = magas. Hagyja el az aktuális prioritás megtartásához (akkor is, ha a feladat priority null értékkel olvas vissza); a null elutasításra kerül.

description
string | null

Hosszabb részletek, egyszerű szöveg, ÚJ értékként legfeljebb 10000 karakter; egy hosszabb tárolt leírás változatlanul visszaküldhető.

flag_id
integer | null>= 1

Egy irodai feladatjelző (címke) azonosítója, vagy null a törléséhez.

Válaszok

200

Frissítve.

datakötelező
object
data mezői
id
integer
Példa: 9876
subject
string
Példa: "Submit the statement of defence"
description
string | null
deadline
string <date> | null

Határidő, YYYY-MM-DD.

Példa: "2026-11-15"
priority
integer | null

1 = alacsony, 2 = közepes, 3 = magas; null = nincs beállítva (egy régebbi, prioritás nélküli feladat).

Példa: 2
status
string
Lehetséges értékek: "open" "closed"
closed_at
string <date> | null

A feladat lezárásának napja, YYYY-MM-DD. A Flowyer csak a dátumot rögzíti, a napszakot nem.

matter
object | null

Az ügy, amelyhez a feladat tartozik, ha van ilyen.

matter mezői
id
integer
case_number
string
client
object | null

Az ügyfél: az ügy első ügyfele, vagy a feladat saját ügyfele, ha nincs ügye.

client mezői
id
integer
name
string
assigned_to_user_id
integer | null
assigned_to
string | null
created_by_user_id
integer | null
created_by
string | null
flag_id
integer | null
created_at
string <date-time> | null
updated_at
string <date-time> | null
created_via_api
object | null
created_via_api mezői
kind
string

"key": statikus API-kulccsal létrehozva; "oauth": OAuth-on keresztül csatlakoztatott alkalmazás által létrehozva.

Lehetséges értékek: "key" "oauth"
key_id
integer

Az API-kulcs ("key" típus) vagy a csatlakoztatott alkalmazás ("oauth" típus) azonosítója; a kettő számozása külön történik.

key_name
string

Az a név, amelyet a felhasználó adott az API-kulcsnak, például "Grok integration", vagy a csatlakoztatott alkalmazás neve "oauth" típus esetén, például "Claude".

user_id
integer
user
string | null
at
string <date-time> | null
updated
boolean
Érték: true
400

Hibás formátumú kérés: érvénytelen JSON törzs, rossz host (használja a www. hostot), vagy olvashatatlan kérés.

401

A kulcs hiányzik, érvénytelen, visszavonták vagy lejárt, vagy a hozzá tartozó felhasználó már nem aktív.

403

Hiányzó hatókör (scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.

404

Ismeretlen végpont, vagy a rekord nem létezik / nem látható a felhasználó számára.

405

Ezen az útvonalon nem elérhető metódus (a DELETE és a PUT soha nem az; a PATCH csak ott, ahol frissítés is elérhető).

409

A rekord megváltozott, mióta beolvasta (record_conflict: az expected_updated_at már nem egyezik; olvassa be újra, és próbálja újra az új updated_at értékkel).

413

A kérés törzse túl nagy (request_too_large).

422

A validáció sikertelen volt, vagy ismeretlen mező; a details.fields felsorolja a mezőhibákat.

429

A sebességkorlát túllépve; a Retry-After megadja, mikor próbálja újra.

503

Az iroda átmenetileg nem érhető el (karbantartás vagy beállítás van folyamatban); a Retry-After megadja, mikor próbálja újra.

default

Bármely egyéb hiba, ugyanabban a burokban.

Kérésminták

curl -X PATCH 'https://www.flowyer.hu/api/agent/tasks/1234' \
  -H 'Authorization: Bearer flw_...' \
  -H 'Content-Type: application/json' \
  -d '{
  "expected_updated_at": "2026-10-30T09:15:00+01:00",
  "subject": "string"
}'

Válaszminták

{
  "data": {
    "id": 9876,
    "subject": "Submit the statement of defence",
    "description": "string",
    "deadline": "2026-11-15",
    "priority": 2,
    "status": "open",
    "closed_at": "2026-10-30",
    "matter": {
      "id": 1234,
      "case_number": "string"
    },
    "client": {
      "id": 1234,
      "name": "string"
    },
    "assigned_to_user_id": 1234,
    "assigned_to": "string",
    "created_by_user_id": 1234,
    "created_by": "string",
    "flag_id": 1234,
    "created_at": "2026-10-30T09:15:00+01:00",
    "updated_at": "2026-10-30T09:15:00+01:00",
    "created_via_api": {
      "kind": "key",
      "key_id": 1234,
      "key_name": "string",
      "user_id": 1234,
      "user": "string",
      "at": "2026-10-30T09:15:00+01:00"
    }
  },
  "updated": true
}

Feladat lezárása

POST /api/agent/tasks/{id}/close

Lezár egy feladatot. Ha perc van megadva, egy munkaidő-bejegyzést is rögzít (ehhez workhours:create és egy ügy szükséges: a feladat sajátja, vagy a matter_id egy ügy nélküli feladaton); a számlázható perceket az iroda óraplafonja korlátozza. Egy második lezárás 409 választ ad, így egy újrapróbálkozás soha nem rögzít második bejegyzést.

Hatókör
tasks:update
Flowyer-jogosultság
tasks:modify

Útvonal-paraméterek

idkötelező
integer>= 1

Feladatazonosító.

Példa: 9876

Kérés törzse application/json

minutes_spent
integer | null>= 0<= 100000

Eltöltött idő percben. Bármilyen idő rögzítéséhez a workhours:create scope és egy ügy szükséges.

minutes_invoiceable
integer | null>= 0<= 100000

Számlázható percek; az iroda óraplafonja korlátozza.

minutes_normative
integer | null>= 0<= 100000

Normatív percek; nyersen tárolva, soha nem korlátozva.

matter_id
integer | null>= 1

Ennek az ügynek a hozzárendelése egy ÜGY NÉLKÜLI feladathoz a lezáráskor (és így lehetővé téve az idő rögzítését). Nem engedélyezett, ha a feladatnak már van ügye.

client_id
integer | null>= 1

Közvetlen ügyfél (Megbízó) egy ügy nélkül lezárt, ügy nélküli feladathoz.

Válaszok

200

OK.

datakötelező
object
data mezői
id
integer
Példa: 9876
subject
string
Példa: "Submit the statement of defence"
description
string | null
deadline
string <date> | null

Határidő, YYYY-MM-DD.

Példa: "2026-11-15"
priority
integer | null

1 = alacsony, 2 = közepes, 3 = magas; null = nincs beállítva (egy régebbi, prioritás nélküli feladat).

Példa: 2
status
string
Lehetséges értékek: "open" "closed"
closed_at
string <date> | null

A feladat lezárásának napja, YYYY-MM-DD. A Flowyer csak a dátumot rögzíti, a napszakot nem.

matter
object | null

Az ügy, amelyhez a feladat tartozik, ha van ilyen.

matter mezői
id
integer
case_number
string
client
object | null

Az ügyfél: az ügy első ügyfele, vagy a feladat saját ügyfele, ha nincs ügye.

client mezői
id
integer
name
string
assigned_to_user_id
integer | null
assigned_to
string | null
created_by_user_id
integer | null
created_by
string | null
flag_id
integer | null
created_at
string <date-time> | null
updated_at
string <date-time> | null
created_via_api
object | null
created_via_api mezői
kind
string

"key": statikus API-kulccsal létrehozva; "oauth": OAuth-on keresztül csatlakoztatott alkalmazás által létrehozva.

Lehetséges értékek: "key" "oauth"
key_id
integer

Az API-kulcs ("key" típus) vagy a csatlakoztatott alkalmazás ("oauth" típus) azonosítója; a kettő számozása külön történik.

key_name
string

Az a név, amelyet a felhasználó adott az API-kulcsnak, például "Grok integration", vagy a csatlakoztatott alkalmazás neve "oauth" típus esetén, például "Claude".

user_id
integer
user
string | null
at
string <date-time> | null
booked_workhour
object | null

A lezárásból rögzített munkaidő-bejegyzés, vagy null, ha nem adtak meg időt.

booked_workhour mezői
id
integer>= 1
minutes
integer
minutes_invoiceable
integer
minutes_normative
integer
400

Hibás formátumú kérés: érvénytelen JSON törzs, rossz host (használja a www. hostot), vagy olvashatatlan kérés.

401

A kulcs hiányzik, érvénytelen, visszavonták vagy lejárt, vagy a hozzá tartozó felhasználó már nem aktív.

403

Hiányzó hatókör (scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.

404

Ismeretlen végpont, vagy a rekord nem létezik / nem látható a felhasználó számára.

405

Ezen az útvonalon nem elérhető metódus (a DELETE és a PUT soha nem az; a PATCH csak ott, ahol frissítés is elérhető).

413

A kérés törzse túl nagy (request_too_large).

422

A validáció sikertelen volt, vagy ismeretlen mező; a details.fields felsorolja a mezőhibákat.

429

A sebességkorlát túllépve; a Retry-After megadja, mikor próbálja újra.

503

Az iroda átmenetileg nem érhető el (karbantartás vagy beállítás van folyamatban); a Retry-After megadja, mikor próbálja újra.

default

Bármely egyéb hiba, ugyanabban a burokban.

Kérésminták

curl -X POST 'https://www.flowyer.hu/api/agent/tasks/9876/close' \
  -H 'Authorization: Bearer flw_...' \
  -H 'Content-Type: application/json' \
  -d '{}'

Válaszminták

{
  "data": {
    "id": 9876,
    "subject": "Submit the statement of defence",
    "description": "string",
    "deadline": "2026-11-15",
    "priority": 2,
    "status": "open",
    "closed_at": "2026-10-30",
    "matter": {
      "id": 1234,
      "case_number": "string"
    },
    "client": {
      "id": 1234,
      "name": "string"
    },
    "assigned_to_user_id": 1234,
    "assigned_to": "string",
    "created_by_user_id": 1234,
    "created_by": "string",
    "flag_id": 1234,
    "created_at": "2026-10-30T09:15:00+01:00",
    "updated_at": "2026-10-30T09:15:00+01:00",
    "created_via_api": {
      "kind": "key",
      "key_id": 1234,
      "key_name": "string",
      "user_id": 1234,
      "user": "string",
      "at": "2026-10-30T09:15:00+01:00"
    },
    "booked_workhour": {
      "id": 1234,
      "minutes": 0,
      "minutes_invoiceable": 0,
      "minutes_normative": 0
    }
  }
}

Munkaidő

Munkaidő-bejegyzések listázása

GET /api/agent/workhours

Listázza a felhasználó számára látható ügyek élő (még ki nem számlázott) munkaidő-bejegyzéseit, a legújabbtól kezdve. Szűrhet ügyre, felelős munkatársra vagy dátumtartományra. Az összesítésből kizárt bejegyzések is szerepelnek, excluded: true jelöléssel; hagyja ki őket a számlázható végösszegekből.

Hatókör
workhours:read
Flowyer-jogosultság
workhours:read

Lekérdezési paraméterek

matter_id
integer>= 1

Csak az ehhez az ügyhöz tartozó bejegyzések.

Példa: 1234
responsible_user_id
integer>= 1

Csak az ehhez a munkatárshoz rögzített bejegyzések (egy felhasználóazonosító a colleagues.list-ből).

date_from
string <date>

Csak az ezen a dátumon vagy azután keletkezett bejegyzések (YYYY-MM-DD).

date_to
string <date>

Csak az ezen a dátumon vagy azelőtt keletkezett bejegyzések (YYYY-MM-DD).

limit
integer>= 1<= 100

Oldalméret, 1-100. Alapértelmezés: 25.

Alapértelmezés: 25
Példa: 25
offset
integer>= 0

A kihagyandó rekordok száma. Az előző oldal offset + limit értékével jut el a következő oldalra; a pagination.total a teljes darabszámot adja meg.

Alapértelmezés: 0
Példa: 0

Válaszok

200

OK.

datakötelező
object[]
data mezői
id
integer

Munkaidő-bejegyzés azonosítója.

matter_id
integer | null

Az ügy, amelyhez a bejegyzés rögzítve van.

date
string <date> | null
activity
string | null

Mi történt (egyszerű szöveg).

minutes
integer | null

Eltöltött percek.

minutes_invoiceable
integer | null

Számlázható percek az iroda óraplafonjának alkalmazása után (alacsonyabb lehet a kértnél). Csak addig számítanak bele a számlázásba, amíg az excluded értéke false.

minutes_normative
integer | null

Normatív percek (tájékoztató jellegű; soha nem korlátozva).

responsible_user_id
integer | null

A munkatárs, akihez az idő rögzítve van.

responsible
string | null
recorded_by_user_id
integer | null

Ki rögzítette a bejegyzést.

locked
boolean

true, ha a bejegyzés zárolva van (az API-n keresztül csak olvasható).

excluded
boolean

true, ha egy munkatárs kizárta a bejegyzést az ügy összesítéséből: nem kerül kiszámlázásra, és a percei kimaradnak a számlázható végösszegekből.

created_at
string <date-time> | null
updated_at
string <date-time> | null

Módosításkor küldje vissza ezt expected_updated_at értékként.

paginationkötelező
object
pagination mezői
limitkötelező
integer
offsetkötelező
integer
totalkötelező
integer

A találatként kapott rekordok teljes száma.

400

Hibás formátumú kérés: érvénytelen JSON törzs, rossz host (használja a www. hostot), vagy olvashatatlan kérés.

401

A kulcs hiányzik, érvénytelen, visszavonták vagy lejárt, vagy a hozzá tartozó felhasználó már nem aktív.

403

Hiányzó hatókör (scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.

404

Ismeretlen végpont, vagy a rekord nem létezik / nem látható a felhasználó számára.

405

Ezen az útvonalon nem elérhető metódus (a DELETE és a PUT soha nem az; a PATCH csak ott, ahol frissítés is elérhető).

422

A validáció sikertelen volt, vagy ismeretlen mező; a details.fields felsorolja a mezőhibákat.

429

A sebességkorlát túllépve; a Retry-After megadja, mikor próbálja újra.

503

Az iroda átmenetileg nem érhető el (karbantartás vagy beállítás van folyamatban); a Retry-After megadja, mikor próbálja újra.

default

Bármely egyéb hiba, ugyanabban a burokban.

Kérésminták

curl 'https://www.flowyer.hu/api/agent/workhours?matter_id=1234&limit=25' \
  -H 'Authorization: Bearer flw_...'

Válaszminták

{
  "data": [
    {
      "id": 1234,
      "matter_id": 1234,
      "date": "2026-10-30",
      "activity": "string",
      "minutes": 0,
      "minutes_invoiceable": 0,
      "minutes_normative": 0,
      "responsible_user_id": 1234,
      "responsible": "string",
      "recorded_by_user_id": 1234,
      "locked": true,
      "excluded": true,
      "created_at": "2026-10-30T09:15:00+01:00",
      "updated_at": "2026-10-30T09:15:00+01:00"
    }
  ],
  "pagination": {
    "limit": 25,
    "offset": 0,
    "total": 1
  }
}

Munkaidő-bejegyzés lekérése

GET /api/agent/workhours/{id}

Egy élő munkaidő-bejegyzést ad vissza azonosító alapján, ha az ügye látható a felhasználó számára.

Hatókör
workhours:read
Flowyer-jogosultság
workhours:read

Útvonal-paraméterek

idkötelező
integer>= 1

Munkaidő-bejegyzés azonosítója.

Válaszok

200

OK.

datakötelező
object
data mezői
id
integer

Munkaidő-bejegyzés azonosítója.

matter_id
integer | null

Az ügy, amelyhez a bejegyzés rögzítve van.

date
string <date> | null
activity
string | null

Mi történt (egyszerű szöveg).

minutes
integer | null

Eltöltött percek.

minutes_invoiceable
integer | null

Számlázható percek az iroda óraplafonjának alkalmazása után (alacsonyabb lehet a kértnél). Csak addig számítanak bele a számlázásba, amíg az excluded értéke false.

minutes_normative
integer | null

Normatív percek (tájékoztató jellegű; soha nem korlátozva).

responsible_user_id
integer | null

A munkatárs, akihez az idő rögzítve van.

responsible
string | null
recorded_by_user_id
integer | null

Ki rögzítette a bejegyzést.

locked
boolean

true, ha a bejegyzés zárolva van (az API-n keresztül csak olvasható).

excluded
boolean

true, ha egy munkatárs kizárta a bejegyzést az ügy összesítéséből: nem kerül kiszámlázásra, és a percei kimaradnak a számlázható végösszegekből.

created_at
string <date-time> | null
updated_at
string <date-time> | null

Módosításkor küldje vissza ezt expected_updated_at értékként.

400

Hibás formátumú kérés: érvénytelen JSON törzs, rossz host (használja a www. hostot), vagy olvashatatlan kérés.

401

A kulcs hiányzik, érvénytelen, visszavonták vagy lejárt, vagy a hozzá tartozó felhasználó már nem aktív.

403

Hiányzó hatókör (scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.

404

Ismeretlen végpont, vagy a rekord nem létezik / nem látható a felhasználó számára.

405

Ezen az útvonalon nem elérhető metódus (a DELETE és a PUT soha nem az; a PATCH csak ott, ahol frissítés is elérhető).

422

A validáció sikertelen volt, vagy ismeretlen mező; a details.fields felsorolja a mezőhibákat.

429

A sebességkorlát túllépve; a Retry-After megadja, mikor próbálja újra.

503

Az iroda átmenetileg nem érhető el (karbantartás vagy beállítás van folyamatban); a Retry-After megadja, mikor próbálja újra.

default

Bármely egyéb hiba, ugyanabban a burokban.

Kérésminták

curl 'https://www.flowyer.hu/api/agent/workhours/1234' \
  -H 'Authorization: Bearer flw_...'

Válaszminták

{
  "data": {
    "id": 1234,
    "matter_id": 1234,
    "date": "2026-10-30",
    "activity": "string",
    "minutes": 0,
    "minutes_invoiceable": 0,
    "minutes_normative": 0,
    "responsible_user_id": 1234,
    "responsible": "string",
    "recorded_by_user_id": 1234,
    "locked": true,
    "excluded": true,
    "created_at": "2026-10-30T09:15:00+01:00",
    "updated_at": "2026-10-30T09:15:00+01:00"
  }
}

Munkaidő-bejegyzés rögzítése

POST /api/agent/workhours

Rögzít egy munkaidő-bejegyzést egy ügyön: dátum, tevékenység, eltöltött percek és számlázható percek. Az elhagyott számlázható percek azt jelentik, hogy nem számlázható: számlázható munkához küldje a minutes_invoiceable értéket. Ezeket az iroda óraplafonja korlátozza. A felelős munkatárs alapértelmezés szerint a kulcshoz tartozó felhasználó, egyébként értesítést kap.

Hatókör
workhours:create
Flowyer-jogosultság
workhours:create

Fejléc-paraméterek

Idempotency-Key
stringlegfeljebb 128 karakter

Minden létrehozásnál ajánlott. Logikai műveletenként egyedi érték (például egy UUID). Ugyanaz az érték ugyanazt a rekordot adja vissza: az azzal való újrapróbálkozás az először létrehozott rekordot adja vissza ahelyett, hogy egy másodikat hozna létre. A különböző értékek mindig különböző rekordokat hoznak létre. Azok az ügyfelek, amelyek nem tudnak fejléceket küldeni, ugyanazt az értéket átadhatják az idempotency_key törzsmezőben. Betűk, számjegyek, _, -, : vagy ., legfeljebb 128 karakter.

Minta: ^[A-Za-z0-9_\-:.]{1,128}$

Kérés törzse application/json

matter_idkötelező
integer>= 1

Az ügy, amelyhez az idő rögzítve van (láthatónak kell lennie).

Példa: 1234
datekötelező
string <date>

A munka dátuma, YYYY-MM-DD.

Példa: "2026-10-30"
subject
stringlegalább 2 karakterlegfeljebb 1000 karakter

Mi történt; az olvasó oldal activity néven adja vissza, és itt bármelyik név elfogadott (a kettő egyike kötelező). Egyszerű szöveg; a "<" és a ">" nem engedélyezett.

Minta: ^[^<>]*$
Példa: "Drafting the statement of claim"
activity
stringlegalább 2 karakterlegfeljebb 1000 karakter

Ugyanaz a mező, mint a subject, az olvasó oldal által használt néven. A kettő egyikét küldje.

Minta: ^[^<>]*$
minutes
integer | null>= 0<= 100000

A ténylegesen eltöltött percek.

Példa: 90
minutes_invoiceable
integer | null>= 0<= 100000

A kért számlázható percek. Elhagyva vagy null = nem számlázható (a bejegyzés semmit nem számláz; nem a minutes értékből származtatódnak): számlázható munkához adja meg őket kifejezetten, általában a minutes értékkel megegyezően. Az iroda óraplafonja csökkentheti a tárolt értéket. Csak addig számítanak bele a számlázásba, amíg a bejegyzés nincs kizárva az összesítésből.

Példa: 60
minutes_normative
integer | null>= 0<= 100000

Normatív percek (tájékoztató jellegű; soha nem korlátozva).

responsible_user_id
integer | null>= 1

A munkatárs, akihez az idő rögzítve van: egy felhasználóazonosító a colleagues.list-ből (a diktált nevet ott keresse ki). Alapértelmezés: a kulcs mögötti felhasználó.

idempotency_key
stringlegfeljebb 128 karakter

Ugyanaz a szerepe, mint az Idempotency-Key fejlécnek, azon ügyfelek számára, amelyek nem tudnak egyéni fejléceket küldeni. Betűk, számjegyek, _, -, : vagy ., legfeljebb 128 karakter.

Minta: ^[A-Za-z0-9_\-:.]{1,128}$
Példa: "b8f1c2e0-6f7a-4d2e-9c1b-2a3d4e5f6a7b"

Válaszok

201

Létrehozva.

datakötelező
object
data mezői
id
integer

Munkaidő-bejegyzés azonosítója.

matter_id
integer | null

Az ügy, amelyhez a bejegyzés rögzítve van.

date
string <date> | null
activity
string | null

Mi történt (egyszerű szöveg).

minutes
integer | null

Eltöltött percek.

minutes_invoiceable
integer | null

Számlázható percek az iroda óraplafonjának alkalmazása után (alacsonyabb lehet a kértnél). Csak addig számítanak bele a számlázásba, amíg az excluded értéke false.

minutes_normative
integer | null

Normatív percek (tájékoztató jellegű; soha nem korlátozva).

responsible_user_id
integer | null

A munkatárs, akihez az idő rögzítve van.

responsible
string | null
recorded_by_user_id
integer | null

Ki rögzítette a bejegyzést.

locked
boolean

true, ha a bejegyzés zárolva van (az API-n keresztül csak olvasható).

excluded
boolean

true, ha egy munkatárs kizárta a bejegyzést az ügy összesítéséből: nem kerül kiszámlázásra, és a percei kimaradnak a számlázható végösszegekből.

created_at
string <date-time> | null
updated_at
string <date-time> | null

Módosításkor küldje vissza ezt expected_updated_at értékként.

created
boolean
Érték: true
200

Idempotens visszajátszás: ez az Idempotency-Key (vagy kulcs nélkül egy azonos kérés 120 másodpercen belül) már létrehozta a rekordot; a rendszer újra visszaadja, semmi új nem jött létre.

datakötelező
object
data mezői
id
integer

Munkaidő-bejegyzés azonosítója.

matter_id
integer | null

Az ügy, amelyhez a bejegyzés rögzítve van.

date
string <date> | null
activity
string | null

Mi történt (egyszerű szöveg).

minutes
integer | null

Eltöltött percek.

minutes_invoiceable
integer | null

Számlázható percek az iroda óraplafonjának alkalmazása után (alacsonyabb lehet a kértnél). Csak addig számítanak bele a számlázásba, amíg az excluded értéke false.

minutes_normative
integer | null

Normatív percek (tájékoztató jellegű; soha nem korlátozva).

responsible_user_id
integer | null

A munkatárs, akihez az idő rögzítve van.

responsible
string | null
recorded_by_user_id
integer | null

Ki rögzítette a bejegyzést.

locked
boolean

true, ha a bejegyzés zárolva van (az API-n keresztül csak olvasható).

excluded
boolean

true, ha egy munkatárs kizárta a bejegyzést az ügy összesítéséből: nem kerül kiszámlázásra, és a percei kimaradnak a számlázható végösszegekből.

created_at
string <date-time> | null
updated_at
string <date-time> | null

Módosításkor küldje vissza ezt expected_updated_at értékként.

created
boolean
Érték: false
idempotent_replay
boolean
Érték: true
400

Hibás formátumú kérés: érvénytelen JSON törzs, rossz host (használja a www. hostot), vagy olvashatatlan kérés.

401

A kulcs hiányzik, érvénytelen, visszavonták vagy lejárt, vagy a hozzá tartozó felhasználó már nem aktív.

403

Hiányzó hatókör (scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.

404

Ismeretlen végpont, vagy a rekord nem létezik / nem látható a felhasználó számára. replay_not_visible: ez az Idempotency-Key (vagy kulcs nélkül egy azonos kérés) már létrehozta a rekordot (details.record_id), de azt azóta törölték, vagy nem látható a felhasználó számára; semmi új nem jött létre, ne hozza létre újra.

405

Ezen az útvonalon nem elérhető metódus (a DELETE és a PUT soha nem az; a PATCH csak ott, ahol frissítés is elérhető).

409

Az Idempotency-Key kulcsot egy másik erőforrástípushoz használták (idempotency_key_reused), vagy kulcs nélkül egy azonos kérés feldolgozása éppen most zajlik (duplicate_in_progress; próbálja újra rövidesen).

413

A kérés törzse túl nagy (request_too_large).

422

A validáció sikertelen volt, vagy ismeretlen mező; a details.fields felsorolja a mezőhibákat.

429

A sebességkorlát túllépve; a Retry-After megadja, mikor próbálja újra.

503

Az iroda átmenetileg nem érhető el (karbantartás vagy beállítás van folyamatban); a Retry-After megadja, mikor próbálja újra.

default

Bármely egyéb hiba, ugyanabban a burokban.

Kérésminták

curl -X POST 'https://www.flowyer.hu/api/agent/workhours' \
  -H 'Authorization: Bearer flw_...' \
  -H 'Content-Type: application/json' \
  -H 'Idempotency-Key: 7f3a9c21-1b2c-4d5e-8f90-0a1b2c3d4e5f' \
  -d '{
  "matter_id": 1234,
  "date": "2026-10-30",
  "subject": "Drafting the statement of claim",
  "minutes": 90,
  "minutes_invoiceable": 60
}'

Válaszminták

{
  "data": {
    "id": 1234,
    "matter_id": 1234,
    "date": "2026-10-30",
    "activity": "string",
    "minutes": 0,
    "minutes_invoiceable": 0,
    "minutes_normative": 0,
    "responsible_user_id": 1234,
    "responsible": "string",
    "recorded_by_user_id": 1234,
    "locked": true,
    "excluded": true,
    "created_at": "2026-10-30T09:15:00+01:00",
    "updated_at": "2026-10-30T09:15:00+01:00"
  },
  "created": true
}

Munkaidő-bejegyzés módosítása

PATCH /api/agent/workhours/{id}

Módosít egy élő munkaidő-bejegyzést: dátum, tevékenység (subject vagy activity), percek, számlázható percek (egy megváltoztatott számot az óraplafon korlátoz, egy visszaküldött megmarad) és a felelős munkatárs. Egy zárolt vagy kiszámlázott bejegyzés nem módosítható (409). Adja meg az expected_updated_at értéket; ütközés esetén a válasz 409.

Hatókör
workhours:update
Flowyer-jogosultság
workhours:modify

Útvonal-paraméterek

idkötelező
integer>= 1

A módosítandó rekord azonosítója.

Kérés törzse application/json

expected_updated_at
string <date-time> | null

A rekord legutóbbi olvasásából származó updated_at érték (minden esetben kötelező, ha a rekordnak van ilyen). Ha a rekord azóta megváltozott (egy kolléga szerkesztette), az API 409-et ad válaszul, és újra kell olvasnia, mielőtt újrapróbálkozna. Egy olyan régebbi rekord, amelynek az updated_at értéke null, a null értéket veszi fel.

date
string <date> | null

A munka dátuma, YYYY-MM-DD. A null megtartja az aktuális dátumot.

subject
string | nulllegalább 1 karakter

Mi történt, az az érték, amelyet az olvasó oldal activity néven ad vissza (bármelyik név elfogadott; az egyikük alatti null jelentése "not given", csak két eltérő szöveget utasít el). Egyszerű szöveg, ÚJ értékként legfeljebb 1000 karakter; a "<" és a ">" sem vihető be, de egy tárolt szöveg, amely hosszabb vagy tartalmazza ezeket, változatlanul visszaküldhető. A null megtartja az aktuális szöveget.

activity
string | nulllegalább 1 karakter

Ugyanaz a mező, mint a subject, az olvasó oldal által használt néven. A kettő egyikét küldje (a másik alatti null rendben van).

minutes
integer | null>= 0<= 100000

A ténylegesen eltöltött percek; a null törli őket.

minutes_invoiceable
integer | null>= 0<= 100000

A kért számlázható percek. A tárolttól eltérő számot az óraplafon megmaradt részéhez igazítja; az olvasás által visszaadott érték újraküldése a rögzített formában tartja meg (nem kerül újra levágásra). A null törli őket. Csak addig számítanak bele a számlázásba, amíg a bejegyzés nincs kizárva az összesítésből (az excluded értéke false).

minutes_normative
integer | null>= 0<= 100000

Normatív percek (soha nem korlátozva); a null törli őket.

responsible_user_id
integer | null>= 0

Új felelős munkatárs: egy aktív munkatárs felhasználóazonosítója a colleagues.list-ből; értesítést kap, ha nem Ön az. Az aktuális küldése, vagy a null / 0, amelyet egy felelős nélküli bejegyzés visszaolvas, nem változtat semmin.

Válaszok

200

Frissítve.

datakötelező
object
data mezői
id
integer

Munkaidő-bejegyzés azonosítója.

matter_id
integer | null

Az ügy, amelyhez a bejegyzés rögzítve van.

date
string <date> | null
activity
string | null

Mi történt (egyszerű szöveg).

minutes
integer | null

Eltöltött percek.

minutes_invoiceable
integer | null

Számlázható percek az iroda óraplafonjának alkalmazása után (alacsonyabb lehet a kértnél). Csak addig számítanak bele a számlázásba, amíg az excluded értéke false.

minutes_normative
integer | null

Normatív percek (tájékoztató jellegű; soha nem korlátozva).

responsible_user_id
integer | null

A munkatárs, akihez az idő rögzítve van.

responsible
string | null
recorded_by_user_id
integer | null

Ki rögzítette a bejegyzést.

locked
boolean

true, ha a bejegyzés zárolva van (az API-n keresztül csak olvasható).

excluded
boolean

true, ha egy munkatárs kizárta a bejegyzést az ügy összesítéséből: nem kerül kiszámlázásra, és a percei kimaradnak a számlázható végösszegekből.

created_at
string <date-time> | null
updated_at
string <date-time> | null

Módosításkor küldje vissza ezt expected_updated_at értékként.

updated
boolean
Érték: true
400

Hibás formátumú kérés: érvénytelen JSON törzs, rossz host (használja a www. hostot), vagy olvashatatlan kérés.

401

A kulcs hiányzik, érvénytelen, visszavonták vagy lejárt, vagy a hozzá tartozó felhasználó már nem aktív.

403

Hiányzó hatókör (scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.

404

Ismeretlen végpont, vagy a rekord nem létezik / nem látható a felhasználó számára.

405

Ezen az útvonalon nem elérhető metódus (a DELETE és a PUT soha nem az; a PATCH csak ott, ahol frissítés is elérhető).

409

A rekord megváltozott az olvasása óta (record_conflict: az expected_updated_at már nem egyezik; olvassa be újra, és próbálja újra az új updated_at értékkel), vagy kiszámlázták / zárolták, és már nem módosítható az API-n keresztül (record_locked; a módosítást a Flowyerben végezze el).

413

A kérés törzse túl nagy (request_too_large).

422

A validáció sikertelen volt, vagy ismeretlen mező; a details.fields felsorolja a mezőhibákat.

429

A sebességkorlát túllépve; a Retry-After megadja, mikor próbálja újra.

503

Az iroda átmenetileg nem érhető el (karbantartás vagy beállítás van folyamatban); a Retry-After megadja, mikor próbálja újra.

default

Bármely egyéb hiba, ugyanabban a burokban.

Kérésminták

curl -X PATCH 'https://www.flowyer.hu/api/agent/workhours/1234' \
  -H 'Authorization: Bearer flw_...' \
  -H 'Content-Type: application/json' \
  -d '{
  "expected_updated_at": "2026-10-30T09:15:00+01:00",
  "date": "2026-10-30"
}'

Válaszminták

{
  "data": {
    "id": 1234,
    "matter_id": 1234,
    "date": "2026-10-30",
    "activity": "string",
    "minutes": 0,
    "minutes_invoiceable": 0,
    "minutes_normative": 0,
    "responsible_user_id": 1234,
    "responsible": "string",
    "recorded_by_user_id": 1234,
    "locked": true,
    "excluded": true,
    "created_at": "2026-10-30T09:15:00+01:00",
    "updated_at": "2026-10-30T09:15:00+01:00"
  },
  "updated": true
}

Költségek

Költségek listázása

GET /api/agent/costs

Listázza a felhasználó számára látható ügyek élő költségeit, a legújabbtól kezdve (a kiszámlázott költség már nincs itt). Szűrhet ügyre, felelős munkatársra vagy dátumtartományra. Az összegek nettók. Az excluded: true jelölésű sorok kimaradnak az összesítésből, a locked: true jelölésű sorokat pedig a Flowyer kezeli.

Hatókör
costs:read
Flowyer-jogosultság
cases:read, summary:read

Lekérdezési paraméterek

matter_id
integer>= 1

Csak az ehhez az ügyhöz tartozó költségek.

Példa: 1234
responsible_user_id
integer>= 1

Csak az ehhez a munkatárshoz rögzített költségek (egy felhasználóazonosító a colleagues.list-ből).

date_from
string <date>

Csak az ezen a dátumon vagy azután keletkezett költségek (YYYY-MM-DD).

date_to
string <date>

Csak az ezen a dátumon vagy azelőtt keletkezett költségek (YYYY-MM-DD).

limit
integer>= 1<= 100

Oldalméret, 1-100. Alapértelmezés: 25.

Alapértelmezés: 25
Példa: 25
offset
integer>= 0

A kihagyandó rekordok száma. Az előző oldal offset + limit értékével jut el a következő oldalra; a pagination.total a teljes darabszámot adja meg.

Alapértelmezés: 0
Példa: 0

Válaszok

200

OK.

datakötelező
object[]
data mezői
id
integer

Költségazonosító.

matter_id
integer | null

Az ügy, amelyhez a költség tartozik.

date
string <date> | null
activity
string | null

A költség leírása (egyszerű szöveg).

cost
number | null

Nettó költségösszeg (áfa nélkül).

cost_invoiceable
number | null

Az ügyfélre továbbhárítandó nettó összeg. Csak addig számít bele a számlázásba, amíg az excluded értéke false.

currency_id
integer | null

Pénznemazonosító (a Flowyer pénznemlistája).

currency
string | null

Pénznem ISO-kódja, pl. HUF, EUR.

responsible_user_id
integer | null
responsible
string | null
excluded
boolean

true, ha egy munkatárs kizárta a költséget az ügy összesítéséből: nem kerül kiszámlázásra, és kimarad a számlázható végösszegekből.

locked
boolean

true, ha a költséget a Flowyer kezeli (bejövő számláról tükrözve vagy kiadás-felár), és nem módosítható az API-n keresztül (a costs.update 409 record_locked választ ad, a details.reason megmondja, melyikről van szó).

approved_for_billing
boolean

true, ha egy munkatárs jóváhagyta a költséget számlázásra az ügy összesítésében. Az API-n keresztül szerkeszthető marad (mint a weben), és a jóváhagyást utólag NEM kérik újra: egy jóváhagyott költség összegének módosítása előtt jelezze ezt.

created_at
string <date-time> | null
updated_at
string <date-time> | null

Módosításkor küldje vissza ezt expected_updated_at értékként.

paginationkötelező
object
pagination mezői
limitkötelező
integer
offsetkötelező
integer
totalkötelező
integer

A találatként kapott rekordok teljes száma.

400

Hibás formátumú kérés: érvénytelen JSON törzs, rossz host (használja a www. hostot), vagy olvashatatlan kérés.

401

A kulcs hiányzik, érvénytelen, visszavonták vagy lejárt, vagy a hozzá tartozó felhasználó már nem aktív.

403

Hiányzó hatókör (scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.

404

Ismeretlen végpont, vagy a rekord nem létezik / nem látható a felhasználó számára.

405

Ezen az útvonalon nem elérhető metódus (a DELETE és a PUT soha nem az; a PATCH csak ott, ahol frissítés is elérhető).

422

A validáció sikertelen volt, vagy ismeretlen mező; a details.fields felsorolja a mezőhibákat.

429

A sebességkorlát túllépve; a Retry-After megadja, mikor próbálja újra.

503

Az iroda átmenetileg nem érhető el (karbantartás vagy beállítás van folyamatban); a Retry-After megadja, mikor próbálja újra.

default

Bármely egyéb hiba, ugyanabban a burokban.

Kérésminták

curl 'https://www.flowyer.hu/api/agent/costs?matter_id=1234&limit=25' \
  -H 'Authorization: Bearer flw_...'

Válaszminták

{
  "data": [
    {
      "id": 1234,
      "matter_id": 1234,
      "date": "2026-10-30",
      "activity": "string",
      "cost": 0,
      "cost_invoiceable": 0,
      "currency_id": 1234,
      "currency": "string",
      "responsible_user_id": 1234,
      "responsible": "string",
      "excluded": true,
      "locked": true,
      "approved_for_billing": true,
      "created_at": "2026-10-30T09:15:00+01:00",
      "updated_at": "2026-10-30T09:15:00+01:00"
    }
  ],
  "pagination": {
    "limit": 25,
    "offset": 0,
    "total": 1
  }
}

Költség lekérése

GET /api/agent/costs/{id}

Egy élő költséget ad vissza azonosító alapján, ha az ügye látható a felhasználó számára. Az összegek nettók.

Hatókör
costs:read
Flowyer-jogosultság
cases:read, summary:read

Útvonal-paraméterek

idkötelező
integer>= 1

Költségazonosító.

Válaszok

200

OK.

datakötelező
object
data mezői
id
integer

Költségazonosító.

matter_id
integer | null

Az ügy, amelyhez a költség tartozik.

date
string <date> | null
activity
string | null

A költség leírása (egyszerű szöveg).

cost
number | null

Nettó költségösszeg (áfa nélkül).

cost_invoiceable
number | null

Az ügyfélre továbbhárítandó nettó összeg. Csak addig számít bele a számlázásba, amíg az excluded értéke false.

currency_id
integer | null

Pénznemazonosító (a Flowyer pénznemlistája).

currency
string | null

Pénznem ISO-kódja, pl. HUF, EUR.

responsible_user_id
integer | null
responsible
string | null
excluded
boolean

true, ha egy munkatárs kizárta a költséget az ügy összesítéséből: nem kerül kiszámlázásra, és kimarad a számlázható végösszegekből.

locked
boolean

true, ha a költséget a Flowyer kezeli (bejövő számláról tükrözve vagy kiadás-felár), és nem módosítható az API-n keresztül (a costs.update 409 record_locked választ ad, a details.reason megmondja, melyikről van szó).

approved_for_billing
boolean

true, ha egy munkatárs jóváhagyta a költséget számlázásra az ügy összesítésében. Az API-n keresztül szerkeszthető marad (mint a weben), és a jóváhagyást utólag NEM kérik újra: egy jóváhagyott költség összegének módosítása előtt jelezze ezt.

created_at
string <date-time> | null
updated_at
string <date-time> | null

Módosításkor küldje vissza ezt expected_updated_at értékként.

400

Hibás formátumú kérés: érvénytelen JSON törzs, rossz host (használja a www. hostot), vagy olvashatatlan kérés.

401

A kulcs hiányzik, érvénytelen, visszavonták vagy lejárt, vagy a hozzá tartozó felhasználó már nem aktív.

403

Hiányzó hatókör (scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.

404

Ismeretlen végpont, vagy a rekord nem létezik / nem látható a felhasználó számára.

405

Ezen az útvonalon nem elérhető metódus (a DELETE és a PUT soha nem az; a PATCH csak ott, ahol frissítés is elérhető).

422

A validáció sikertelen volt, vagy ismeretlen mező; a details.fields felsorolja a mezőhibákat.

429

A sebességkorlát túllépve; a Retry-After megadja, mikor próbálja újra.

503

Az iroda átmenetileg nem érhető el (karbantartás vagy beállítás van folyamatban); a Retry-After megadja, mikor próbálja újra.

default

Bármely egyéb hiba, ugyanabban a burokban.

Kérésminták

curl 'https://www.flowyer.hu/api/agent/costs/1234' \
  -H 'Authorization: Bearer flw_...'

Válaszminták

{
  "data": {
    "id": 1234,
    "matter_id": 1234,
    "date": "2026-10-30",
    "activity": "string",
    "cost": 0,
    "cost_invoiceable": 0,
    "currency_id": 1234,
    "currency": "string",
    "responsible_user_id": 1234,
    "responsible": "string",
    "excluded": true,
    "locked": true,
    "approved_for_billing": true,
    "created_at": "2026-10-30T09:15:00+01:00",
    "updated_at": "2026-10-30T09:15:00+01:00"
  }
}

Költség rögzítése

POST /api/agent/costs

Rögzít egy költséget (kiadást) egy ügyön: dátum, szöveg (subject, visszaolvasva activity néven), nettó összeg, az ügyfélnek kiszámlázott nettó összeg és pénznem (alapértelmezés: az iroda pénzneme). Az összegek nettók (áfa nélkül). A felelős munkatárs alapértelmezés szerint a kulcshoz tartozó felhasználó, egyébként értesítést kap.

Hatókör
costs:create
Flowyer-jogosultság
cases:create, summary:read

Fejléc-paraméterek

Idempotency-Key
stringlegfeljebb 128 karakter

Minden létrehozásnál ajánlott. Logikai műveletenként egyedi érték (például egy UUID). Ugyanaz az érték ugyanazt a rekordot adja vissza: az azzal való újrapróbálkozás az először létrehozott rekordot adja vissza ahelyett, hogy egy másodikat hozna létre. A különböző értékek mindig különböző rekordokat hoznak létre. Azok az ügyfelek, amelyek nem tudnak fejléceket küldeni, ugyanazt az értéket átadhatják az idempotency_key törzsmezőben. Betűk, számjegyek, _, -, : vagy ., legfeljebb 128 karakter.

Minta: ^[A-Za-z0-9_\-:.]{1,128}$

Kérés törzse application/json

matter_idkötelező
integer>= 1

Az ügy, amelyhez a költség tartozik (láthatónak kell lennie).

Példa: 1234
datekötelező
string <date>

A költség dátuma, YYYY-MM-DD.

Példa: "2026-10-30"
subject
stringlegalább 2 karakterlegfeljebb 1000 karakter

A költség leírása; az olvasó oldal activity néven adja vissza, és itt bármelyik név elfogadott (a kettő egyike kötelező). Egyszerű szöveg; a "<" és a ">" nem engedélyezett.

Minta: ^[^<>]*$
Példa: "Court filing fee"
activity
stringlegalább 2 karakterlegfeljebb 1000 karakter

Ugyanaz a mező, mint a subject, az olvasó oldal által használt néven. A kettő egyikét küldje.

Minta: ^[^<>]*$
costkötelező
integer>= 0<= 2147483647

Nettó költségösszeg (áfa nélkül), egész szám a pénznem fő egységében (a váltópénz nem kerül tárolásra).

Példa: 15000
cost_invoiceable
integer | null>= 0<= 2147483647

Az ügyfélre továbbhárítandó nettó összeg, egész szám (hagyja el, ha nem kerül kiszámlázásra). Csak addig számít bele a számlázásba, amíg a költség nincs kizárva az összesítésből.

Példa: 15000
currency_id
integer | null>= 1

Pénznemazonosító a Flowyer pénznemlistájából (nem ISO-kód). Hagyja el az iroda pénznemének használatához (GET /me office.currency_id / office.currency); ismeretlen azonosító esetén a válasz 422, az elfogadott azonosítókkal és kódokkal a details.allowed mezőben.

responsible_user_id
integer | null>= 1

Felelős munkatárs: egy felhasználóazonosító a colleagues.list-ből (a diktált nevet ott keresse ki). Alapértelmezés: a kulcs mögötti felhasználó.

idempotency_key
stringlegfeljebb 128 karakter

Ugyanaz a szerepe, mint az Idempotency-Key fejlécnek, azon ügyfelek számára, amelyek nem tudnak egyéni fejléceket küldeni. Betűk, számjegyek, _, -, : vagy ., legfeljebb 128 karakter.

Minta: ^[A-Za-z0-9_\-:.]{1,128}$
Példa: "b8f1c2e0-6f7a-4d2e-9c1b-2a3d4e5f6a7b"

Válaszok

201

Létrehozva.

datakötelező
object
data mezői
id
integer

Költségazonosító.

matter_id
integer | null

Az ügy, amelyhez a költség tartozik.

date
string <date> | null
activity
string | null

A költség leírása (egyszerű szöveg).

cost
number | null

Nettó költségösszeg (áfa nélkül).

cost_invoiceable
number | null

Az ügyfélre továbbhárítandó nettó összeg. Csak addig számít bele a számlázásba, amíg az excluded értéke false.

currency_id
integer | null

Pénznemazonosító (a Flowyer pénznemlistája).

currency
string | null

Pénznem ISO-kódja, pl. HUF, EUR.

responsible_user_id
integer | null
responsible
string | null
excluded
boolean

true, ha egy munkatárs kizárta a költséget az ügy összesítéséből: nem kerül kiszámlázásra, és kimarad a számlázható végösszegekből.

locked
boolean

true, ha a költséget a Flowyer kezeli (bejövő számláról tükrözve vagy kiadás-felár), és nem módosítható az API-n keresztül (a costs.update 409 record_locked választ ad, a details.reason megmondja, melyikről van szó).

approved_for_billing
boolean

true, ha egy munkatárs jóváhagyta a költséget számlázásra az ügy összesítésében. Az API-n keresztül szerkeszthető marad (mint a weben), és a jóváhagyást utólag NEM kérik újra: egy jóváhagyott költség összegének módosítása előtt jelezze ezt.

created_at
string <date-time> | null
updated_at
string <date-time> | null

Módosításkor küldje vissza ezt expected_updated_at értékként.

created
boolean
Érték: true
200

Idempotens visszajátszás: ez az Idempotency-Key (vagy kulcs nélkül egy azonos kérés 120 másodpercen belül) már létrehozta a rekordot; a rendszer újra visszaadja, semmi új nem jött létre.

datakötelező
object
data mezői
id
integer

Költségazonosító.

matter_id
integer | null

Az ügy, amelyhez a költség tartozik.

date
string <date> | null
activity
string | null

A költség leírása (egyszerű szöveg).

cost
number | null

Nettó költségösszeg (áfa nélkül).

cost_invoiceable
number | null

Az ügyfélre továbbhárítandó nettó összeg. Csak addig számít bele a számlázásba, amíg az excluded értéke false.

currency_id
integer | null

Pénznemazonosító (a Flowyer pénznemlistája).

currency
string | null

Pénznem ISO-kódja, pl. HUF, EUR.

responsible_user_id
integer | null
responsible
string | null
excluded
boolean

true, ha egy munkatárs kizárta a költséget az ügy összesítéséből: nem kerül kiszámlázásra, és kimarad a számlázható végösszegekből.

locked
boolean

true, ha a költséget a Flowyer kezeli (bejövő számláról tükrözve vagy kiadás-felár), és nem módosítható az API-n keresztül (a costs.update 409 record_locked választ ad, a details.reason megmondja, melyikről van szó).

approved_for_billing
boolean

true, ha egy munkatárs jóváhagyta a költséget számlázásra az ügy összesítésében. Az API-n keresztül szerkeszthető marad (mint a weben), és a jóváhagyást utólag NEM kérik újra: egy jóváhagyott költség összegének módosítása előtt jelezze ezt.

created_at
string <date-time> | null
updated_at
string <date-time> | null

Módosításkor küldje vissza ezt expected_updated_at értékként.

created
boolean
Érték: false
idempotent_replay
boolean
Érték: true
400

Hibás formátumú kérés: érvénytelen JSON törzs, rossz host (használja a www. hostot), vagy olvashatatlan kérés.

401

A kulcs hiányzik, érvénytelen, visszavonták vagy lejárt, vagy a hozzá tartozó felhasználó már nem aktív.

403

Hiányzó hatókör (scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.

404

Ismeretlen végpont, vagy a rekord nem létezik / nem látható a felhasználó számára. replay_not_visible: ez az Idempotency-Key (vagy kulcs nélkül egy azonos kérés) már létrehozta a rekordot (details.record_id), de azt azóta törölték, vagy nem látható a felhasználó számára; semmi új nem jött létre, ne hozza létre újra.

405

Ezen az útvonalon nem elérhető metódus (a DELETE és a PUT soha nem az; a PATCH csak ott, ahol frissítés is elérhető).

409

Az Idempotency-Key kulcsot egy másik erőforrástípushoz használták (idempotency_key_reused), vagy kulcs nélkül egy azonos kérés feldolgozása éppen most zajlik (duplicate_in_progress; próbálja újra rövidesen).

413

A kérés törzse túl nagy (request_too_large).

422

A validáció sikertelen volt, vagy ismeretlen mező; a details.fields felsorolja a mezőhibákat.

429

A sebességkorlát túllépve; a Retry-After megadja, mikor próbálja újra.

503

Az iroda átmenetileg nem érhető el (karbantartás vagy beállítás van folyamatban); a Retry-After megadja, mikor próbálja újra.

default

Bármely egyéb hiba, ugyanabban a burokban.

Kérésminták

curl -X POST 'https://www.flowyer.hu/api/agent/costs' \
  -H 'Authorization: Bearer flw_...' \
  -H 'Content-Type: application/json' \
  -H 'Idempotency-Key: 7f3a9c21-1b2c-4d5e-8f90-0a1b2c3d4e5f' \
  -d '{
  "matter_id": 1234,
  "date": "2026-10-30",
  "subject": "Court filing fee",
  "cost": 15000,
  "cost_invoiceable": 15000
}'

Válaszminták

{
  "data": {
    "id": 1234,
    "matter_id": 1234,
    "date": "2026-10-30",
    "activity": "string",
    "cost": 0,
    "cost_invoiceable": 0,
    "currency_id": 1234,
    "currency": "string",
    "responsible_user_id": 1234,
    "responsible": "string",
    "excluded": true,
    "locked": true,
    "approved_for_billing": true,
    "created_at": "2026-10-30T09:15:00+01:00",
    "updated_at": "2026-10-30T09:15:00+01:00"
  },
  "created": true
}

Költség módosítása

PATCH /api/agent/costs/{id}

Módosít egy élő költséget: szöveg (subject, visszaolvasva activity néven), dátum, nettó összegek, pénznem és a felelős munkatárs. A locked: true jelölésű költség nem módosítható (409 record_locked, details.reason). Adja meg az expected_updated_at értéket; ütköző módosítás esetén a válasz 409.

Hatókör
costs:update
Flowyer-jogosultság
cases:modify, summary:read

Útvonal-paraméterek

idkötelező
integer>= 1

A módosítandó rekord azonosítója.

Kérés törzse application/json

expected_updated_at
string <date-time> | null

A rekord legutóbbi olvasásából származó updated_at érték (minden esetben kötelező, ha a rekordnak van ilyen). Ha a rekord azóta megváltozott (egy kolléga szerkesztette), az API 409-et ad válaszul, és újra kell olvasnia, mielőtt újrapróbálkozna. Egy olyan régebbi rekord, amelynek az updated_at értéke null, a null értéket veszi fel.

date
string <date> | null

A költség dátuma, YYYY-MM-DD. A null megtartja az aktuális dátumot.

subject
string | nulllegalább 1 karakter

A költség leírása, az az érték, amelyet az olvasó oldal activity néven ad vissza (bármelyik név elfogadott; az egyikük alatti null jelentése "not given", csak két eltérő szöveget utasít el). Egyszerű szöveg, ÚJ értékként legfeljebb 1000 karakter; a "<" és a ">" sem vihető be, de egy tárolt szöveg, amely hosszabb vagy tartalmazza ezeket, változatlanul visszaküldhető. A null megtartja az aktuális szöveget.

activity
string | nulllegalább 1 karakter

Ugyanaz a mező, mint a subject, az olvasó oldal által használt néven. A kettő egyikét küldje (a másik alatti null rendben van).

cost
integer | null>= 0<= 2147483647

Nettó költségösszeg (áfa nélkül), egész szám a pénznem fő egységében (a váltópénz nem kerül tárolásra). A null törli az összeget.

cost_invoiceable
integer | null>= 0<= 2147483647

Az ügyfélre továbbhárítandó nettó összeg, egész szám; a null törli. Csak addig számít bele a számlázásba, amíg a költség nincs kizárva az összesítésből (az excluded értéke false).

currency_id
integer | null>= 0

Pénznemazonosító a Flowyer pénznemlistájából (nem ISO-kód; az iroda pénzneme a GET /me office.currency_id). Ismeretlen azonosító esetén a válasz 422, az elfogadott azonosítókkal és kódokkal a details.allowed mezőben. A null, vagy a 0, amelyet egy be nem állított régi költség visszaolvas, megtartja az aktuális pénznemet.

responsible_user_id
integer | null>= 0

Új felelős munkatárs: egy aktív munkatárs felhasználóazonosítója a colleagues.list-ből. Az aktuális küldése, vagy a null / 0, amelyet egy felelős nélküli költség visszaolvas, nem változtat semmin.

Válaszok

200

Frissítve.

datakötelező
object
data mezői
id
integer

Költségazonosító.

matter_id
integer | null

Az ügy, amelyhez a költség tartozik.

date
string <date> | null
activity
string | null

A költség leírása (egyszerű szöveg).

cost
number | null

Nettó költségösszeg (áfa nélkül).

cost_invoiceable
number | null

Az ügyfélre továbbhárítandó nettó összeg. Csak addig számít bele a számlázásba, amíg az excluded értéke false.

currency_id
integer | null

Pénznemazonosító (a Flowyer pénznemlistája).

currency
string | null

Pénznem ISO-kódja, pl. HUF, EUR.

responsible_user_id
integer | null
responsible
string | null
excluded
boolean

true, ha egy munkatárs kizárta a költséget az ügy összesítéséből: nem kerül kiszámlázásra, és kimarad a számlázható végösszegekből.

locked
boolean

true, ha a költséget a Flowyer kezeli (bejövő számláról tükrözve vagy kiadás-felár), és nem módosítható az API-n keresztül (a costs.update 409 record_locked választ ad, a details.reason megmondja, melyikről van szó).

approved_for_billing
boolean

true, ha egy munkatárs jóváhagyta a költséget számlázásra az ügy összesítésében. Az API-n keresztül szerkeszthető marad (mint a weben), és a jóváhagyást utólag NEM kérik újra: egy jóváhagyott költség összegének módosítása előtt jelezze ezt.

created_at
string <date-time> | null
updated_at
string <date-time> | null

Módosításkor küldje vissza ezt expected_updated_at értékként.

updated
boolean
Érték: true
400

Hibás formátumú kérés: érvénytelen JSON törzs, rossz host (használja a www. hostot), vagy olvashatatlan kérés.

401

A kulcs hiányzik, érvénytelen, visszavonták vagy lejárt, vagy a hozzá tartozó felhasználó már nem aktív.

403

Hiányzó hatókör (scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.

404

Ismeretlen végpont, vagy a rekord nem létezik / nem látható a felhasználó számára.

405

Ezen az útvonalon nem elérhető metódus (a DELETE és a PUT soha nem az; a PATCH csak ott, ahol frissítés is elérhető).

409

A rekord megváltozott az olvasása óta (record_conflict: az expected_updated_at már nem egyezik; olvassa be újra, és próbálja újra az új updated_at értékkel), vagy kiszámlázták / zárolták, és már nem módosítható az API-n keresztül (record_locked; a módosítást a Flowyerben végezze el).

413

A kérés törzse túl nagy (request_too_large).

422

A validáció sikertelen volt, vagy ismeretlen mező; a details.fields felsorolja a mezőhibákat.

429

A sebességkorlát túllépve; a Retry-After megadja, mikor próbálja újra.

503

Az iroda átmenetileg nem érhető el (karbantartás vagy beállítás van folyamatban); a Retry-After megadja, mikor próbálja újra.

default

Bármely egyéb hiba, ugyanabban a burokban.

Kérésminták

curl -X PATCH 'https://www.flowyer.hu/api/agent/costs/1234' \
  -H 'Authorization: Bearer flw_...' \
  -H 'Content-Type: application/json' \
  -d '{
  "expected_updated_at": "2026-10-30T09:15:00+01:00",
  "date": "2026-10-30"
}'

Válaszminták

{
  "data": {
    "id": 1234,
    "matter_id": 1234,
    "date": "2026-10-30",
    "activity": "string",
    "cost": 0,
    "cost_invoiceable": 0,
    "currency_id": 1234,
    "currency": "string",
    "responsible_user_id": 1234,
    "responsible": "string",
    "excluded": true,
    "locked": true,
    "approved_for_billing": true,
    "created_at": "2026-10-30T09:15:00+01:00",
    "updated_at": "2026-10-30T09:15:00+01:00"
  },
  "updated": true
}

Számlák

Számlák listázása

GET /api/agent/invoices

Listázza a számlákat (kiállított és beérkezett), a legújabb kiállítási dátumtól kezdve. A direction=outgoing az iroda kiállított számláinak listája, és kihagyja a díjbekérőket (a direction=proforma azokat listázza). Csak olvasható: számlák nem hozhatók létre és nem módosíthatók az API-n keresztül. A felhasználó számára nem látható ügyek számlái rejtve maradnak.

Hatókör
invoices:read
Flowyer-jogosultság
invoices:read, summary:read

Lekérdezési paraméterek

direction
string

Az iroda saját három listája: outgoing = az iroda által kiállított számlák, a díjbekérők nélkül (egy dokumentumtípus nélküli régi sor számlának számít, mint az iroda irányítópultján); proforma = az iroda által kiállított fizetési kérések (díjbekérő); incoming = beérkezett.

Lehetséges értékek: "incoming" "outgoing" "proforma"
paid_status
string
Lehetséges értékek: "unpaid" "paid" "partially_paid" "cancelled"
client_id
integer>= 1
matter_id
integer>= 1
issued_from
string <date>

Kiállítási dátum ezen a napon vagy azután.

Példa: "2026-01-01"
issued_to
string <date>

Kiállítási dátum ezen a napon vagy azelőtt.

Példa: "2026-12-31"
limit
integer>= 1<= 100

Oldalméret, 1-100. Alapértelmezés: 25.

Alapértelmezés: 25
Példa: 25
offset
integer>= 0

A kihagyandó rekordok száma. Az előző oldal offset + limit értékével jut el a következő oldalra; a pagination.total a teljes darabszámot adja meg.

Alapértelmezés: 0
Példa: 0

Válaszok

200

OK.

datakötelező
object[]
data mezői
id
integer
Példa: 301
invoice_number
string | null
Példa: "FLW-2026-0042"
direction
string | null

outgoing = az iroda által kiállított, incoming = az iroda által beérkezett.

Lehetséges értékek: "incoming" "outgoing"
document_type
string | null

A "proforma" fizetési kérés, nem kiállított számla: nem bevétel, és nem szabad a kiállított számlákkal együtt számolni. Az invoices.list direction=outgoing kihagyja a díjbekérőket, a direction=proforma listázza őket. Egy régi soron null, amely számlának számít.

Lehetséges értékek: "invoice" "proforma" "receipt"
source
string | null
Lehetséges értékek: "manual" "szamlazz_outgoing" "szamlazz_imported"
paid_status
string | null
Lehetséges értékek: "unpaid" "paid" "partially_paid" "cancelled"
issued_date
string <date> | null
due_date
string <date> | null
paid_date
string <date> | null
completion_date
string <date> | null
net_amount
number | null
gross_amount
number | null
currency
string | null
Példa: "HUF"
payment_method_id
integer | null
payment_method
string | null

A fizetési mód lokalizált neve (pl. banki átutalás); angol, ha az iroda nyelvéhez nincs fordítása, null, ha a módnak egyáltalán nincs neve. A módot a payment_method_id alapján azonosítsa.

supplier
string | null

Egy beérkezett számla kibocsátója.

client
object | null
client mezői
id
integer
name
string
matter_id
integer | null
created_at
string <date-time> | null
updated_at
string <date-time> | null
paginationkötelező
object
pagination mezői
limitkötelező
integer
offsetkötelező
integer
totalkötelező
integer

A találatként kapott rekordok teljes száma.

400

Hibás formátumú kérés: érvénytelen JSON törzs, rossz host (használja a www. hostot), vagy olvashatatlan kérés.

401

A kulcs hiányzik, érvénytelen, visszavonták vagy lejárt, vagy a hozzá tartozó felhasználó már nem aktív.

403

Hiányzó hatókör (scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.

404

Ismeretlen végpont, vagy a rekord nem létezik / nem látható a felhasználó számára.

405

Ezen az útvonalon nem elérhető metódus (a DELETE és a PUT soha nem az; a PATCH csak ott, ahol frissítés is elérhető).

422

A validáció sikertelen volt, vagy ismeretlen mező; a details.fields felsorolja a mezőhibákat.

429

A sebességkorlát túllépve; a Retry-After megadja, mikor próbálja újra.

503

Az iroda átmenetileg nem érhető el (karbantartás vagy beállítás van folyamatban); a Retry-After megadja, mikor próbálja újra.

default

Bármely egyéb hiba, ugyanabban a burokban.

Kérésminták

curl 'https://www.flowyer.hu/api/agent/invoices?issued_from=2026-01-01&issued_to=2026-12-31&limit=25' \
  -H 'Authorization: Bearer flw_...'

Válaszminták

{
  "data": [
    {
      "id": 301,
      "invoice_number": "FLW-2026-0042",
      "direction": "incoming",
      "document_type": "invoice",
      "source": "manual",
      "paid_status": "unpaid",
      "issued_date": "2026-10-30",
      "due_date": "2026-10-30",
      "paid_date": "2026-10-30",
      "completion_date": "2026-10-30",
      "net_amount": 0,
      "gross_amount": 0,
      "currency": "HUF",
      "payment_method_id": 1234,
      "payment_method": "string",
      "supplier": "string",
      "client": {
        "id": 1234,
        "name": "string"
      },
      "matter_id": 1234,
      "created_at": "2026-10-30T09:15:00+01:00",
      "updated_at": "2026-10-30T09:15:00+01:00"
    }
  ],
  "pagination": {
    "limit": 25,
    "offset": 0,
    "total": 1
  }
}

Számla lekérése

GET /api/agent/invoices/{id}

Egy számlát ad vissza. Csak olvasható. 404 választ ad, ha nem létezik, vagy olyan ügyhöz tartozik, amelyet a felhasználó nem láthat.

Hatókör
invoices:read
Flowyer-jogosultság
invoices:read, summary:read

Útvonal-paraméterek

idkötelező
integer>= 1

Számlaazonosító.

Példa: 301

Válaszok

200

OK.

datakötelező
object
data mezői
id
integer
Példa: 301
invoice_number
string | null
Példa: "FLW-2026-0042"
direction
string | null

outgoing = az iroda által kiállított, incoming = az iroda által beérkezett.

Lehetséges értékek: "incoming" "outgoing"
document_type
string | null

A "proforma" fizetési kérés, nem kiállított számla: nem bevétel, és nem szabad a kiállított számlákkal együtt számolni. Az invoices.list direction=outgoing kihagyja a díjbekérőket, a direction=proforma listázza őket. Egy régi soron null, amely számlának számít.

Lehetséges értékek: "invoice" "proforma" "receipt"
source
string | null
Lehetséges értékek: "manual" "szamlazz_outgoing" "szamlazz_imported"
paid_status
string | null
Lehetséges értékek: "unpaid" "paid" "partially_paid" "cancelled"
issued_date
string <date> | null
due_date
string <date> | null
paid_date
string <date> | null
completion_date
string <date> | null
net_amount
number | null
gross_amount
number | null
currency
string | null
Példa: "HUF"
payment_method_id
integer | null
payment_method
string | null

A fizetési mód lokalizált neve (pl. banki átutalás); angol, ha az iroda nyelvéhez nincs fordítása, null, ha a módnak egyáltalán nincs neve. A módot a payment_method_id alapján azonosítsa.

supplier
string | null

Egy beérkezett számla kibocsátója.

client
object | null
client mezői
id
integer
name
string
matter_id
integer | null
created_at
string <date-time> | null
updated_at
string <date-time> | null
notes
string | null
received_date
string <date> | null
sent_date
string <date> | null
proforma_invoice_id
integer | null
400

Hibás formátumú kérés: érvénytelen JSON törzs, rossz host (használja a www. hostot), vagy olvashatatlan kérés.

401

A kulcs hiányzik, érvénytelen, visszavonták vagy lejárt, vagy a hozzá tartozó felhasználó már nem aktív.

403

Hiányzó hatókör (scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.

404

Ismeretlen végpont, vagy a rekord nem létezik / nem látható a felhasználó számára.

405

Ezen az útvonalon nem elérhető metódus (a DELETE és a PUT soha nem az; a PATCH csak ott, ahol frissítés is elérhető).

422

A validáció sikertelen volt, vagy ismeretlen mező; a details.fields felsorolja a mezőhibákat.

429

A sebességkorlát túllépve; a Retry-After megadja, mikor próbálja újra.

503

Az iroda átmenetileg nem érhető el (karbantartás vagy beállítás van folyamatban); a Retry-After megadja, mikor próbálja újra.

default

Bármely egyéb hiba, ugyanabban a burokban.

Kérésminták

curl 'https://www.flowyer.hu/api/agent/invoices/301' \
  -H 'Authorization: Bearer flw_...'

Válaszminták

{
  "data": {
    "id": 301,
    "invoice_number": "FLW-2026-0042",
    "direction": "incoming",
    "document_type": "invoice",
    "source": "manual",
    "paid_status": "unpaid",
    "issued_date": "2026-10-30",
    "due_date": "2026-10-30",
    "paid_date": "2026-10-30",
    "completion_date": "2026-10-30",
    "net_amount": 0,
    "gross_amount": 0,
    "currency": "HUF",
    "payment_method_id": 1234,
    "payment_method": "string",
    "supplier": "string",
    "client": {
      "id": 1234,
      "name": "string"
    },
    "matter_id": 1234,
    "created_at": "2026-10-30T09:15:00+01:00",
    "updated_at": "2026-10-30T09:15:00+01:00",
    "notes": "string",
    "received_date": "2026-10-30",
    "sent_date": "2026-10-30",
    "proforma_invoice_id": 1234
  }
}

Dokumentumok

Az ügy dokumentumainak listázása

GET /api/agent/matters/{id}/documents

Listázza egy ügy alá iktatott dokumentumok aktuális verzióit: a neveket, a méreteket, a mappákat és azt, hogy ki töltötte fel őket. Csak metaadatok; a tartalomhoz aláírt hivatkozásért használja a documents.download hívást (documents:download hatókör). Előbb a névvel rendelkező dokumentumok következnek, ábécérendben, majd a név nélkül importáltak.

Hatókör
documents:read
Flowyer-jogosultság
cases:read

Útvonal-paraméterek

idkötelező
integer>= 1

Az ügy azonosítója.

Példa: 1234

Lekérdezési paraméterek

q
stringlegfeljebb 100 karakter

Szűrés fájlnév alapján.

Példa: "contract"
limit
integer>= 1<= 100

Oldalméret, 1-100. Alapértelmezés: 25.

Alapértelmezés: 25
Példa: 25
offset
integer>= 0

A kihagyandó rekordok száma. Az előző oldal offset + limit értékével jut el a következő oldalra; a pagination.total a teljes darabszámot adja meg.

Alapértelmezés: 0
Példa: 0

Válaszok

200

OK.

datakötelező
object[]
data mezői
id
integer
name
string

A fájl neve úgy, ahogyan a Flowyer megjeleníti: a dokumentummal tárolt név, vagy a tárolási neve, ha egy régebbi rendszerből név nélkül importálták. A documents.list a tárolt név szerint van rendezve: előbb a névvel rendelkező dokumentumok következnek, ábécérendben, majd a tárolt név nélkül importáltak, a legrégebbitől kezdve (abban a sorrendben, ahogyan a Flowyerben iktatták őket), amelyek ezért nincsenek az itt megjelenített név szerint rendezve. A sorrend minden oldalon azonos, így a limit és az offset ismétlődések és hézagok nélkül lapoz végig a listán.

Példa: "Contract_v2.docx"
size
integer | null

Bájt.

version
integer

A fájl aktuális verziószáma.

folder
object | null

Az a mappa, amelybe a dokumentum iktatva van, vagy null az ügy gyökerében. A documents.upload.complete null értéket ad válaszul, ha a documents.upload.init hívásnál választott mappát törölték, miközben a bájtok feltöltése zajlott: a dokumentum ekkor az ügy gyökerébe kerül iktatásra, és a Flowyer is ott jeleníti meg. Ha a gyökér már tartalmaz ilyen nevű dokumentumot, a feltöltés egy utótaggal ellátott néven ("Contract_2.pdf") kerül iktatásra ahelyett, hogy ennek a nem kapcsolódó dokumentumnak egy új verziója lenne; a 201-es válasz visszaadja a tárolt name értéket.

folder mezői
id
integer
name
string
path
string

A mappa elérési útja az ügyön belül, "/" jellel elválasztva.

folder_deleted
boolean

Igaz, ha a dokumentum egy már nem létező mappába van iktatva, amelyet a Flowyer saját fájllistája nem jelenít meg (a folder értéke erre null, ahogyan az ügy gyökerében lévő dokumentum esetén is). A documents.upload.complete csak akkor ad true választ, ha a mappát törölték, miközben a bájtok feltöltése zajlott, ÉS a tárolt fájl ügygyökérbe helyezése meghiúsult: a dokumentum ekkor a törölt mappában marad, ahol a tartalma továbbra is elérhető. Minden más esetben false, beleértve a szokásos gyökérbe iktatást is.

created_by_user_id
integer | null
created_by
string | null
created_at
string <date-time> | null
updated_at
string <date-time> | null
paginationkötelező
object
pagination mezői
limitkötelező
integer
offsetkötelező
integer
totalkötelező
integer

A találatként kapott rekordok teljes száma.

400

Hibás formátumú kérés: érvénytelen JSON törzs, rossz host (használja a www. hostot), vagy olvashatatlan kérés.

401

A kulcs hiányzik, érvénytelen, visszavonták vagy lejárt, vagy a hozzá tartozó felhasználó már nem aktív.

403

Hiányzó hatókör (scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.

404

Ismeretlen végpont, vagy a rekord nem létezik / nem látható a felhasználó számára.

405

Ezen az útvonalon nem elérhető metódus (a DELETE és a PUT soha nem az; a PATCH csak ott, ahol frissítés is elérhető).

422

A validáció sikertelen volt, vagy ismeretlen mező; a details.fields felsorolja a mezőhibákat.

429

A sebességkorlát túllépve; a Retry-After megadja, mikor próbálja újra.

503

Az iroda átmenetileg nem érhető el (karbantartás vagy beállítás van folyamatban); a Retry-After megadja, mikor próbálja újra.

default

Bármely egyéb hiba, ugyanabban a burokban.

Kérésminták

curl 'https://www.flowyer.hu/api/agent/matters/1234/documents?q=contract&limit=25' \
  -H 'Authorization: Bearer flw_...'

Válaszminták

{
  "data": [
    {
      "id": 1234,
      "name": "Contract_v2.docx",
      "size": 0,
      "version": 0,
      "folder": {
        "id": 1234,
        "name": "string",
        "path": "string"
      },
      "folder_deleted": true,
      "created_by_user_id": 1234,
      "created_by": "string",
      "created_at": "2026-10-30T09:15:00+01:00",
      "updated_at": "2026-10-30T09:15:00+01:00"
    }
  ],
  "pagination": {
    "limit": 25,
    "offset": 0,
    "total": 1
  }
}

Az ügy mappáinak listázása

GET /api/agent/matters/{id}/folders

Listázza egy ügy minden mappáját, az üreseket is beleértve: azonosító, név, parent_id és a "/" jellel elválasztott elérési út, az elérési út szerint rendezve. Egy mappaazonosítót folder_id néven adjon át a documents.upload.init hívásnak. 404-et ad válaszul, ha az ügy nem látható a felhasználó számára.

Hatókör
documents:read
Flowyer-jogosultság
cases:read

Útvonal-paraméterek

idkötelező
integer>= 1

Az ügy azonosítója.

Példa: 1234

Lekérdezési paraméterek

q
stringlegfeljebb 100 karakter

Csak azok a mappák, amelyek elérési útja tartalmazza ezt a szöveget (a kis- és nagybetűk, valamint az ékezetek figyelmen kívül hagyásával), például egy mappanév.

Példa: "Beadványok"
limit
integer>= 1<= 100

Oldalméret, 1-100. Alapértelmezés: 25.

Alapértelmezés: 25
Példa: 25
offset
integer>= 0

A kihagyandó rekordok száma. Az előző oldal offset + limit értékével jut el a következő oldalra; a pagination.total a teljes darabszámot adja meg.

Alapértelmezés: 0
Példa: 0

Válaszok

200

OK.

datakötelező
object[]
data mezői
id
integer

Mappaazonosító: adja át folder_id néven a documents.upload.init hívásnak.

name
string

A mappa neve úgy, ahogyan a Flowyer megjeleníti.

parent_id
integer | null

A szülőmappa azonosítója; null az ügy gyökerében lévő mappa esetén.

path
string

A mappa elérési útja az ügyön belül, "/" jellel elválasztva, például "/Iratok/Beadványok" (ugyanaz az elérési út, amelyet a documents.list egy fájl mappájához megjelenít).

updated_at
string <date-time> | null

Adja át ezt a documents.folders.rename hívásnak expected_updated_at értékként.

paginationkötelező
object
pagination mezői
limitkötelező
integer
offsetkötelező
integer
totalkötelező
integer

A találatként kapott rekordok teljes száma.

400

Hibás formátumú kérés: érvénytelen JSON törzs, rossz host (használja a www. hostot), vagy olvashatatlan kérés.

401

A kulcs hiányzik, érvénytelen, visszavonták vagy lejárt, vagy a hozzá tartozó felhasználó már nem aktív.

403

Hiányzó hatókör (scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.

404

Ismeretlen végpont, vagy a rekord nem létezik / nem látható a felhasználó számára.

405

Ezen az útvonalon nem elérhető metódus (a DELETE és a PUT soha nem az; a PATCH csak ott, ahol frissítés is elérhető).

422

A validáció sikertelen volt, vagy ismeretlen mező; a details.fields felsorolja a mezőhibákat.

429

A sebességkorlát túllépve; a Retry-After megadja, mikor próbálja újra.

503

Az iroda átmenetileg nem érhető el (karbantartás vagy beállítás van folyamatban); a Retry-After megadja, mikor próbálja újra.

default

Bármely egyéb hiba, ugyanabban a burokban.

Kérésminták

curl 'https://www.flowyer.hu/api/agent/matters/1234/folders?q=Beadv%C3%A1nyok&limit=25' \
  -H 'Authorization: Bearer flw_...'

Válaszminták

{
  "data": [
    {
      "id": 1234,
      "name": "string",
      "parent_id": 1234,
      "path": "string",
      "updated_at": "2026-10-30T09:15:00+01:00"
    }
  ],
  "pagination": {
    "limit": 25,
    "offset": 0,
    "total": 1
  }
}

Ügymappa létrehozása

POST /api/agent/matters/{id}/folders

Létrehoz egy mappát egy ügyben, a gyökérben vagy a parent_id alatt (az UGYANAZON ügy egy mappája). A név egyszerű szöveg (a "<" és a ">" nem engedélyezett). Iktasson bele egy dokumentumot úgy, hogy a visszaadott azonosítót folder_id értékként átadja a documents.upload.init hívásnak. 404 választ ad, ha az ügy nem látható.

Hatókör
documents:create
Flowyer-jogosultság
cases:create

Útvonal-paraméterek

idkötelező
integer>= 1

Az ügy, amelyhez a mappa tartozik (láthatónak kell lennie).

Példa: 1234

Fejléc-paraméterek

Idempotency-Key
stringlegfeljebb 128 karakter

Minden létrehozásnál ajánlott. Logikai műveletenként egyedi érték (például egy UUID). Ugyanaz az érték ugyanazt a rekordot adja vissza: az azzal való újrapróbálkozás az először létrehozott rekordot adja vissza ahelyett, hogy egy másodikat hozna létre. A különböző értékek mindig különböző rekordokat hoznak létre. Azok az ügyfelek, amelyek nem tudnak fejléceket küldeni, ugyanazt az értéket átadhatják az idempotency_key törzsmezőben. Betűk, számjegyek, _, -, : vagy ., legfeljebb 128 karakter.

Minta: ^[A-Za-z0-9_\-:.]{1,128}$

Kérés törzse application/json

namekötelező
stringlegalább 1 karakterlegfeljebb 255 karakter

Mappanév, legfeljebb 255 karakter. Egyszerű szöveg; a "<" és a ">" nem engedélyezett.

Minta: ^[^<>]*$
Példa: "Beadványok"
parent_id
integer | null>= 1

Szülőmappa azonosítója (a documents.folders-ből) az UGYANAZON ügyön belül; hagyja el az ügy gyökerében lévő mappához.

idempotency_key
stringlegfeljebb 128 karakter

Ugyanaz a szerepe, mint az Idempotency-Key fejlécnek, azon ügyfelek számára, amelyek nem tudnak egyéni fejléceket küldeni. Betűk, számjegyek, _, -, : vagy ., legfeljebb 128 karakter.

Minta: ^[A-Za-z0-9_\-:.]{1,128}$
Példa: "b8f1c2e0-6f7a-4d2e-9c1b-2a3d4e5f6a7b"

Válaszok

201

Létrehozva.

datakötelező
object
data mezői
id
integer

Mappaazonosító: adja meg folder_id értékként a documents.upload.init hívásnak, vagy parent_id értékként a documents.folders.create hívásnak.

name
string

A mappa neve úgy, ahogyan a Flowyer megjeleníti.

parent_id
integer | null

A szülőmappa azonosítója; null az ügy gyökerében lévő mappa esetén.

path
string

A mappa elérési útja az ügyön belül, "/" jellel elválasztva, például "/Iratok/Beadványok".

updated_at
string <date-time> | null

Adja át ezt a documents.folders.rename hívásnak expected_updated_at értékként.

created
boolean
Érték: true
200

Idempotens visszajátszás: ez az Idempotency-Key (vagy kulcs nélkül egy azonos kérés 120 másodpercen belül) már létrehozta a rekordot; a rendszer újra visszaadja, semmi új nem jött létre.

datakötelező
object
data mezői
id
integer

Mappaazonosító: adja meg folder_id értékként a documents.upload.init hívásnak, vagy parent_id értékként a documents.folders.create hívásnak.

name
string

A mappa neve úgy, ahogyan a Flowyer megjeleníti.

parent_id
integer | null

A szülőmappa azonosítója; null az ügy gyökerében lévő mappa esetén.

path
string

A mappa elérési útja az ügyön belül, "/" jellel elválasztva, például "/Iratok/Beadványok".

updated_at
string <date-time> | null

Adja át ezt a documents.folders.rename hívásnak expected_updated_at értékként.

created
boolean
Érték: false
idempotent_replay
boolean
Érték: true
400

Hibás formátumú kérés: érvénytelen JSON törzs, rossz host (használja a www. hostot), vagy olvashatatlan kérés.

401

A kulcs hiányzik, érvénytelen, visszavonták vagy lejárt, vagy a hozzá tartozó felhasználó már nem aktív.

403

Hiányzó hatókör (scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.

404

Ismeretlen végpont, vagy a rekord nem létezik / nem látható a felhasználó számára. replay_not_visible: ez az Idempotency-Key (vagy kulcs nélkül egy azonos kérés) már létrehozta a rekordot (details.record_id), de azt azóta törölték, vagy nem látható a felhasználó számára; semmi új nem jött létre, ne hozza létre újra.

405

Ezen az útvonalon nem elérhető metódus (a DELETE és a PUT soha nem az; a PATCH csak ott, ahol frissítés is elérhető).

409

Az Idempotency-Key kulcsot egy másik erőforrástípushoz használták (idempotency_key_reused), vagy kulcs nélkül egy azonos kérés feldolgozása éppen most zajlik (duplicate_in_progress; próbálja újra rövidesen).

413

A kérés törzse túl nagy (request_too_large).

422

A validáció sikertelen volt, vagy ismeretlen mező; a details.fields felsorolja a mezőhibákat.

429

A sebességkorlát túllépve; a Retry-After megadja, mikor próbálja újra.

503

Az iroda átmenetileg nem érhető el (karbantartás vagy beállítás van folyamatban); a Retry-After megadja, mikor próbálja újra.

default

Bármely egyéb hiba, ugyanabban a burokban.

Kérésminták

curl -X POST 'https://www.flowyer.hu/api/agent/matters/1234/folders' \
  -H 'Authorization: Bearer flw_...' \
  -H 'Content-Type: application/json' \
  -H 'Idempotency-Key: 7f3a9c21-1b2c-4d5e-8f90-0a1b2c3d4e5f' \
  -d '{
  "name": "Beadványok"
}'

Válaszminták

{
  "data": {
    "id": 1234,
    "name": "string",
    "parent_id": 1234,
    "path": "string",
    "updated_at": "2026-10-30T09:15:00+01:00"
  },
  "created": true
}

Dokumentumfeltöltés indítása

POST /api/agent/matters/{id}/documents/uploads

Elindít egy dokumentumfeltöltést: visszaad egy aláírt upload_url címet és egy upload_token értéket. Töltse fel oda a bájtokat PUT módszerrel, majd hívja meg a documents.upload.complete műveletet. A PUT egy egyszerű HTTPS kérés, amely ezen az API-n és az MCP eszközökön kívül esik: a saját HTTP klienssel nem rendelkező asszisztensnek meg kell kérnie a felhasználót, hogy a fájlt a Flowyerben töltse fel.

Hatókör
documents:create
Flowyer-jogosultság
cases:create

Útvonal-paraméterek

idkötelező
integer>= 1

Az ügy, amelyhez a dokumentum tartozik (láthatónak kell lennie).

Kérés törzse application/json

filenamekötelező
stringlegalább 1 karakterlegfeljebb 255 karakter

Fájlnév kiterjesztéssel, például "Contract.pdf". Egyszerű szöveg; a "<" és a ">" nem engedélyezett. A végrehajtható és a webes fájltípusok elutasításra kerülnek (422 blocked_file_type).

Minta: ^[^<>]*$
Példa: "Contract.pdf"
content_typekötelező
stringlegalább 1 karakterlegfeljebb 100 karakter

A PUT során küldött MIME típus, például "application/pdf". Az aláírás része, és pontosan egyeznie kell.

Példa: "application/pdf"
sizekötelező
integer>= 1

Fájlméret bájtban, legfeljebb 104857600 (a feltöltési korlát); nagyobb méret esetén a válasz 413 file_too_large.

Példa: 248000
folder_id
integer | null>= 1

Mappa az ügyön belül: egy mappaazonosító a documents.folders hívásból (az üres mappákat is felsorolja). Az ügy gyökeréhez hagyja ki.

Válaszok

200

OK.

datakötelező
object
data mezői
upload_url
string

Aláírt URL. Töltse fel ide a fájl bájtjait PUT módszerrel a megadott tartalomtípussal ÉS az alábbi if_generation_match fejléccel: egy egyszerű HTTPS kérés, amelyet a saját HTTP kliense küld (sem API, sem MCP eszköz nem küldi).

upload_token
string

Adja át ezt a documents.upload.complete hívásnak, miután a PUT sikeres volt.

content_type
string

Pontosan ezt a Content-Type értéket küldje a PUT során.

if_generation_match
string

Küldje ezt az értéket a "x-goog-if-generation-match" fejlécként a PUT során (mindig "0"). Ez egyszer használatossá teszi a feltöltést: a PUT csak addig kerül elfogadásra, amíg az objektum még nem létezik, így az aláírt URL nem írhat felül egy már iktatott dokumentumot.

object_key
string

Belső tárolási név (tájékoztatásul).

expires_in
integer

A feltöltési URL és a token lejáratáig hátralévő másodpercek száma.

400

Hibás formátumú kérés: érvénytelen JSON törzs, rossz host (használja a www. hostot), vagy olvashatatlan kérés.

401

A kulcs hiányzik, érvénytelen, visszavonták vagy lejárt, vagy a hozzá tartozó felhasználó már nem aktív.

403

Hiányzó hatókör (scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.

404

Ismeretlen végpont, vagy a rekord nem létezik / nem látható a felhasználó számára.

405

Ezen az útvonalon nem elérhető metódus (a DELETE és a PUT soha nem az; a PATCH csak ott, ahol frissítés is elérhető).

413

A kérés törzse túl nagy (request_too_large), vagy a fájl meghaladja a feltöltési korlátot (file_too_large; a details.max adja meg a korlátot bájtban).

422

A validáció sikertelen volt, vagy ismeretlen mező; a details.fields felsorolja a mezőhibákat.

429

A sebességkorlát túllépve; a Retry-After megadja, mikor próbálja újra.

503

Az iroda átmenetileg nem érhető el (karbantartás vagy beállítás van folyamatban); a Retry-After megadja, mikor próbálja újra.

default

Bármely egyéb hiba, ugyanabban a burokban.

Kérésminták

curl -X POST 'https://www.flowyer.hu/api/agent/matters/1234/documents/uploads' \
  -H 'Authorization: Bearer flw_...' \
  -H 'Content-Type: application/json' \
  -d '{
  "filename": "Contract.pdf",
  "content_type": "application/pdf",
  "size": 248000
}'

Válaszminták

{
  "data": {
    "upload_url": "string",
    "upload_token": "string",
    "content_type": "string",
    "if_generation_match": "string",
    "object_key": "string",
    "expires_in": 0
  }
}

Dokumentumfeltöltés befejezése

POST /api/agent/matters/{id}/documents

Befejez egy dokumentumfeltöltést: miután a bájtok PUT módszerrel az upload_url címre kerültek, rögzíti a fájlt az ügyön új verzióként. Adja át az upload_token értéket a documents.upload.init hívásból. A fájl metaadatai a tokenből származnak, nem ebből a kérésből. Egy időközben törölt mappa esetén a dokumentum a gyökérbe kerül iktatásra.

Hatókör
documents:create
Flowyer-jogosultság
cases:create

Útvonal-paraméterek

idkötelező
integer>= 1

Az ügy, amelyhez a dokumentum tartozik (ugyanaz, mint az init hívásnál).

Fejléc-paraméterek

Idempotency-Key
stringlegfeljebb 128 karakter

Minden létrehozásnál ajánlott. Logikai műveletenként egyedi érték (például egy UUID). Ugyanaz az érték ugyanazt a rekordot adja vissza: az azzal való újrapróbálkozás az először létrehozott rekordot adja vissza ahelyett, hogy egy másodikat hozna létre. A különböző értékek mindig különböző rekordokat hoznak létre. Azok az ügyfelek, amelyek nem tudnak fejléceket küldeni, ugyanazt az értéket átadhatják az idempotency_key törzsmezőben. Betűk, számjegyek, _, -, : vagy ., legfeljebb 128 karakter.

Minta: ^[A-Za-z0-9_\-:.]{1,128}$

Kérés törzse application/json

upload_tokenkötelező
stringlegalább 1 karakterlegfeljebb 4096 karakter

A documents.upload.init által visszaadott token.

idempotency_key
stringlegfeljebb 128 karakter

Ugyanaz a szerepe, mint az Idempotency-Key fejlécnek, azon ügyfelek számára, amelyek nem tudnak egyéni fejléceket küldeni. Betűk, számjegyek, _, -, : vagy ., legfeljebb 128 karakter.

Minta: ^[A-Za-z0-9_\-:.]{1,128}$
Példa: "b8f1c2e0-6f7a-4d2e-9c1b-2a3d4e5f6a7b"

Válaszok

201

Létrehozva.

datakötelező
object
data mezői
id
integer
name
string

A fájl neve úgy, ahogyan a Flowyer megjeleníti: a dokumentummal tárolt név, vagy a tárolási neve, ha egy régebbi rendszerből név nélkül importálták. A documents.list a tárolt név szerint van rendezve: előbb a névvel rendelkező dokumentumok következnek, ábécérendben, majd a tárolt név nélkül importáltak, a legrégebbitől kezdve (abban a sorrendben, ahogyan a Flowyerben iktatták őket), amelyek ezért nincsenek az itt megjelenített név szerint rendezve. A sorrend minden oldalon azonos, így a limit és az offset ismétlődések és hézagok nélkül lapoz végig a listán.

Példa: "Contract_v2.docx"
size
integer | null

Bájt.

version
integer

A fájl aktuális verziószáma.

folder
object | null

Az a mappa, amelybe a dokumentum iktatva van, vagy null az ügy gyökerében. A documents.upload.complete null értéket ad válaszul, ha a documents.upload.init hívásnál választott mappát törölték, miközben a bájtok feltöltése zajlott: a dokumentum ekkor az ügy gyökerébe kerül iktatásra, és a Flowyer is ott jeleníti meg. Ha a gyökér már tartalmaz ilyen nevű dokumentumot, a feltöltés egy utótaggal ellátott néven ("Contract_2.pdf") kerül iktatásra ahelyett, hogy ennek a nem kapcsolódó dokumentumnak egy új verziója lenne; a 201-es válasz visszaadja a tárolt name értéket.

folder mezői
id
integer
name
string
path
string

A mappa elérési útja az ügyön belül, "/" jellel elválasztva.

folder_deleted
boolean

Igaz, ha a dokumentum egy már nem létező mappába van iktatva, amelyet a Flowyer saját fájllistája nem jelenít meg (a folder értéke erre null, ahogyan az ügy gyökerében lévő dokumentum esetén is). A documents.upload.complete csak akkor ad true választ, ha a mappát törölték, miközben a bájtok feltöltése zajlott, ÉS a tárolt fájl ügygyökérbe helyezése meghiúsult: a dokumentum ekkor a törölt mappában marad, ahol a tartalma továbbra is elérhető. Minden más esetben false, beleértve a szokásos gyökérbe iktatást is.

created_by_user_id
integer | null
created_by
string | null
created_at
string <date-time> | null
updated_at
string <date-time> | null
created
boolean
Érték: true
200

Idempotens visszajátszás: ez az Idempotency-Key (vagy kulcs nélkül egy azonos kérés 120 másodpercen belül) már létrehozta a rekordot; a rendszer újra visszaadja, semmi új nem jött létre. Ez a válasz akkor is, ha ezt az upload_token értéket már befejezték.

datakötelező
object
data mezői
id
integer
name
string

A fájl neve úgy, ahogyan a Flowyer megjeleníti: a dokumentummal tárolt név, vagy a tárolási neve, ha egy régebbi rendszerből név nélkül importálták. A documents.list a tárolt név szerint van rendezve: előbb a névvel rendelkező dokumentumok következnek, ábécérendben, majd a tárolt név nélkül importáltak, a legrégebbitől kezdve (abban a sorrendben, ahogyan a Flowyerben iktatták őket), amelyek ezért nincsenek az itt megjelenített név szerint rendezve. A sorrend minden oldalon azonos, így a limit és az offset ismétlődések és hézagok nélkül lapoz végig a listán.

Példa: "Contract_v2.docx"
size
integer | null

Bájt.

version
integer

A fájl aktuális verziószáma.

folder
object | null

Az a mappa, amelybe a dokumentum iktatva van, vagy null az ügy gyökerében. A documents.upload.complete null értéket ad válaszul, ha a documents.upload.init hívásnál választott mappát törölték, miközben a bájtok feltöltése zajlott: a dokumentum ekkor az ügy gyökerébe kerül iktatásra, és a Flowyer is ott jeleníti meg. Ha a gyökér már tartalmaz ilyen nevű dokumentumot, a feltöltés egy utótaggal ellátott néven ("Contract_2.pdf") kerül iktatásra ahelyett, hogy ennek a nem kapcsolódó dokumentumnak egy új verziója lenne; a 201-es válasz visszaadja a tárolt name értéket.

folder mezői
id
integer
name
string
path
string

A mappa elérési útja az ügyön belül, "/" jellel elválasztva.

folder_deleted
boolean

Igaz, ha a dokumentum egy már nem létező mappába van iktatva, amelyet a Flowyer saját fájllistája nem jelenít meg (a folder értéke erre null, ahogyan az ügy gyökerében lévő dokumentum esetén is). A documents.upload.complete csak akkor ad true választ, ha a mappát törölték, miközben a bájtok feltöltése zajlott, ÉS a tárolt fájl ügygyökérbe helyezése meghiúsult: a dokumentum ekkor a törölt mappában marad, ahol a tartalma továbbra is elérhető. Minden más esetben false, beleértve a szokásos gyökérbe iktatást is.

created_by_user_id
integer | null
created_by
string | null
created_at
string <date-time> | null
updated_at
string <date-time> | null
created
boolean
Érték: false
idempotent_replay
boolean
Érték: true
400

Hibás formátumú kérés: érvénytelen JSON törzs, rossz host (használja a www. hostot), vagy olvashatatlan kérés.

401

A kulcs hiányzik, érvénytelen, visszavonták vagy lejárt, vagy a hozzá tartozó felhasználó már nem aktív.

403

Hiányzó hatókör (scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.

404

Ismeretlen végpont, vagy a rekord nem létezik / nem látható a felhasználó számára. upload_not_finished: a fájl még nem érkezett meg a tárolóba; fejezze be a PUT műveletet az upload_url címre, majd hívja meg újra a complete műveletet. replay_not_visible: ez az Idempotency-Key (vagy kulcs nélkül egy azonos kérés) már létrehozta a rekordot (details.record_id), de azt azóta törölték, vagy nem látható a felhasználó számára; semmi új nem jött létre, ne hozza létre újra.

405

Ezen az útvonalon nem elérhető metódus (a DELETE és a PUT soha nem az; a PATCH csak ott, ahol frissítés is elérhető).

409

Az Idempotency-Key kulcsot egy másik erőforrástípushoz használták (idempotency_key_reused), vagy kulcs nélkül egy azonos kérés feldolgozása éppen most zajlik (duplicate_in_progress; próbálja újra rövidesen).

413

A kérés törzse túl nagy (request_too_large), vagy a fájl meghaladja a feltöltési korlátot (file_too_large; a details.max adja meg a korlátot bájtban).

422

A validáció sikertelen volt, vagy ismeretlen mező; a details.fields felsorolja a mezőhibákat.

429

A sebességkorlát túllépve; a Retry-After megadja, mikor próbálja újra.

503

Az iroda átmenetileg nem érhető el (karbantartás vagy beállítás van folyamatban); a Retry-After megadja, mikor próbálja újra.

default

Bármely egyéb hiba, ugyanabban a burokban.

Kérésminták

curl -X POST 'https://www.flowyer.hu/api/agent/matters/1234/documents' \
  -H 'Authorization: Bearer flw_...' \
  -H 'Content-Type: application/json' \
  -H 'Idempotency-Key: 7f3a9c21-1b2c-4d5e-8f90-0a1b2c3d4e5f' \
  -d '{
  "upload_token": "string"
}'

Válaszminták

{
  "data": {
    "id": 1234,
    "name": "Contract_v2.docx",
    "size": 0,
    "version": 0,
    "folder": {
      "id": 1234,
      "name": "string",
      "path": "string"
    },
    "folder_deleted": true,
    "created_by_user_id": 1234,
    "created_by": "string",
    "created_at": "2026-10-30T09:15:00+01:00",
    "updated_at": "2026-10-30T09:15:00+01:00"
  },
  "created": true
}

Dokumentum letöltése

GET /api/agent/documents/{id}/download

Egy rövid élettartamú aláírt URL-t ad vissza egy dokumentum letöltéséhez azonosító alapján, ha az ügye látható. GET kéréssel töltse le a bájtokat az URL-ről; néhány percen belül lejár.

Hatókör
documents:download
Flowyer-jogosultság
cases:read

Útvonal-paraméterek

idkötelező
integer>= 1

Dokumentumazonosító (a documents.list-ből).

Válaszok

200

OK.

datakötelező
object
data mezői
download_url
string

Aláírt URL. GET kéréssel töltse le róla a fájl bájtjait.

filename
string

A letöltéshez tartozó fájlnév.

size
integer | null

Bájt.

expires_in
integer

Másodpercek az URL lejártáig.

400

Hibás formátumú kérés: érvénytelen JSON törzs, rossz host (használja a www. hostot), vagy olvashatatlan kérés.

401

A kulcs hiányzik, érvénytelen, visszavonták vagy lejárt, vagy a hozzá tartozó felhasználó már nem aktív.

403

Hiányzó hatókör (scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.

404

Ismeretlen végpont, vagy a rekord nem létezik / nem látható a felhasználó számára.

405

Ezen az útvonalon nem elérhető metódus (a DELETE és a PUT soha nem az; a PATCH csak ott, ahol frissítés is elérhető).

422

A validáció sikertelen volt, vagy ismeretlen mező; a details.fields felsorolja a mezőhibákat.

429

A sebességkorlát túllépve; a Retry-After megadja, mikor próbálja újra.

503

Az iroda átmenetileg nem érhető el (karbantartás vagy beállítás van folyamatban); a Retry-After megadja, mikor próbálja újra.

default

Bármely egyéb hiba, ugyanabban a burokban.

Kérésminták

curl 'https://www.flowyer.hu/api/agent/documents/1234/download' \
  -H 'Authorization: Bearer flw_...'

Válaszminták

{
  "data": {
    "download_url": "string",
    "filename": "string",
    "size": 0,
    "expires_in": 0
  }
}

Dokumentum átnevezése

PATCH /api/agent/documents/{id}

Átnevez egy dokumentumot (csak a megjelenített nevét; a fájl tartalma változatlan marad). Az új névnek egyedinek kell lennie az ügy ugyanazon mappájában. Adja meg az expected_updated_at értéket a legutóbbi olvasásból; ütköző módosítás esetén a válasz 409.

Hatókör
documents:update
Flowyer-jogosultság
cases:modify

Útvonal-paraméterek

idkötelező
integer>= 1

A módosítandó rekord azonosítója.

Kérés törzse application/json

expected_updated_at
string <date-time> | null

A rekord legutóbbi olvasásából származó updated_at érték (minden esetben kötelező, ha a rekordnak van ilyen). Ha a rekord azóta megváltozott (egy kolléga szerkesztette), az API 409-et ad válaszul, és újra kell olvasnia, mielőtt újrapróbálkozna. Egy olyan régebbi rekord, amelynek az updated_at értéke null, a null értéket veszi fel.

namekötelező
stringlegalább 1 karakterlegfeljebb 255 karakter

Új fájlnév, a kiterjesztést BELEÉRTVE legfeljebb 255 karakter. Az aktuális kiterjesztés megmarad, ha nem ad meg egyet, és beleszámít a 255-be (így egy kiterjesztés nélküli név a "Beadvany.pdf" esetén legfeljebb 251 karakter lehet). Egyszerű szöveg; a "<" és a ">" nem engedélyezett, így egy olyan dokumentum, amelynek tárolt neve ilyet tartalmaz, csak a Flowyerben nevezhető át.

Minta: ^[^<>]*$
Példa: "Contract_signed.pdf"

Válaszok

200

Frissítve.

datakötelező
object
data mezői
id
integer
name
string

A fájl neve úgy, ahogyan a Flowyer megjeleníti: a dokumentummal tárolt név, vagy a tárolási neve, ha egy régebbi rendszerből név nélkül importálták. A documents.list a tárolt név szerint van rendezve: előbb a névvel rendelkező dokumentumok következnek, ábécérendben, majd a tárolt név nélkül importáltak, a legrégebbitől kezdve (abban a sorrendben, ahogyan a Flowyerben iktatták őket), amelyek ezért nincsenek az itt megjelenített név szerint rendezve. A sorrend minden oldalon azonos, így a limit és az offset ismétlődések és hézagok nélkül lapoz végig a listán.

Példa: "Contract_v2.docx"
size
integer | null

Bájt.

version
integer

A fájl aktuális verziószáma.

folder
object | null

Az a mappa, amelybe a dokumentum iktatva van, vagy null az ügy gyökerében. A documents.upload.complete null értéket ad válaszul, ha a documents.upload.init hívásnál választott mappát törölték, miközben a bájtok feltöltése zajlott: a dokumentum ekkor az ügy gyökerébe kerül iktatásra, és a Flowyer is ott jeleníti meg. Ha a gyökér már tartalmaz ilyen nevű dokumentumot, a feltöltés egy utótaggal ellátott néven ("Contract_2.pdf") kerül iktatásra ahelyett, hogy ennek a nem kapcsolódó dokumentumnak egy új verziója lenne; a 201-es válasz visszaadja a tárolt name értéket.

folder mezői
id
integer
name
string
path
string

A mappa elérési útja az ügyön belül, "/" jellel elválasztva.

folder_deleted
boolean

Igaz, ha a dokumentum egy már nem létező mappába van iktatva, amelyet a Flowyer saját fájllistája nem jelenít meg (a folder értéke erre null, ahogyan az ügy gyökerében lévő dokumentum esetén is). A documents.upload.complete csak akkor ad true választ, ha a mappát törölték, miközben a bájtok feltöltése zajlott, ÉS a tárolt fájl ügygyökérbe helyezése meghiúsult: a dokumentum ekkor a törölt mappában marad, ahol a tartalma továbbra is elérhető. Minden más esetben false, beleértve a szokásos gyökérbe iktatást is.

created_by_user_id
integer | null
created_by
string | null
created_at
string <date-time> | null
updated_at
string <date-time> | null
updated
boolean
Érték: true
400

Hibás formátumú kérés: érvénytelen JSON törzs, rossz host (használja a www. hostot), vagy olvashatatlan kérés.

401

A kulcs hiányzik, érvénytelen, visszavonták vagy lejárt, vagy a hozzá tartozó felhasználó már nem aktív.

403

Hiányzó hatókör (scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.

404

Ismeretlen végpont, vagy a rekord nem létezik / nem látható a felhasználó számára.

405

Ezen az útvonalon nem elérhető metódus (a DELETE és a PUT soha nem az; a PATCH csak ott, ahol frissítés is elérhető).

409

A rekord megváltozott az olvasása óta (record_conflict: az expected_updated_at már nem egyezik; olvassa be újra, és próbálja újra az új updated_at értékkel), vagy ugyanabban a mappában egy másik dokumentumnak már ez a neve (duplicate_name; válasszon másik nevet, ne próbálja újra ugyanazt).

413

A kérés törzse túl nagy (request_too_large).

422

A validáció sikertelen volt, vagy ismeretlen mező; a details.fields felsorolja a mezőhibákat.

429

A sebességkorlát túllépve; a Retry-After megadja, mikor próbálja újra.

503

Az iroda átmenetileg nem érhető el (karbantartás vagy beállítás van folyamatban); a Retry-After megadja, mikor próbálja újra.

default

Bármely egyéb hiba, ugyanabban a burokban.

Kérésminták

curl -X PATCH 'https://www.flowyer.hu/api/agent/documents/1234' \
  -H 'Authorization: Bearer flw_...' \
  -H 'Content-Type: application/json' \
  -d '{
  "expected_updated_at": "2026-10-30T09:15:00+01:00",
  "name": "Contract_signed.pdf"
}'

Válaszminták

{
  "data": {
    "id": 1234,
    "name": "Contract_v2.docx",
    "size": 0,
    "version": 0,
    "folder": {
      "id": 1234,
      "name": "string",
      "path": "string"
    },
    "folder_deleted": true,
    "created_by_user_id": 1234,
    "created_by": "string",
    "created_at": "2026-10-30T09:15:00+01:00",
    "updated_at": "2026-10-30T09:15:00+01:00"
  },
  "updated": true
}

Ügymappa átnevezése

PATCH /api/agent/folders/{id}

Átnevez egy mappát (csak a nevét; a fájljai és almappái a helyükön maradnak). A név egyszerű szöveg (a "<" és a ">" nem engedélyezett). Adja meg az expected_updated_at értéket a legutóbbi olvasásából (a documents.folders felsorolja); ütköző módosítás esetén a válasz 409.

Hatókör
documents:update
Flowyer-jogosultság
cases:modify

Útvonal-paraméterek

idkötelező
integer>= 1

A módosítandó rekord azonosítója.

Kérés törzse application/json

expected_updated_at
string <date-time> | null

A rekord legutóbbi olvasásából származó updated_at érték (minden esetben kötelező, ha a rekordnak van ilyen). Ha a rekord azóta megváltozott (egy kolléga szerkesztette), az API 409-et ad válaszul, és újra kell olvasnia, mielőtt újrapróbálkozna. Egy olyan régebbi rekord, amelynek az updated_at értéke null, a null értéket veszi fel.

namekötelező
stringlegalább 1 karakterlegfeljebb 255 karakter

Új mappanév, legfeljebb 255 karakter. Egyszerű szöveg; a "<" és a ">" nem engedélyezett.

Minta: ^[^<>]*$
Példa: "Beadványok"

Válaszok

200

Frissítve.

datakötelező
object
data mezői
id
integer

Mappaazonosító: adja meg folder_id értékként a documents.upload.init hívásnak, vagy parent_id értékként a documents.folders.create hívásnak.

name
string

A mappa neve úgy, ahogyan a Flowyer megjeleníti.

parent_id
integer | null

A szülőmappa azonosítója; null az ügy gyökerében lévő mappa esetén.

path
string

A mappa elérési útja az ügyön belül, "/" jellel elválasztva, például "/Iratok/Beadványok".

updated_at
string <date-time> | null

Adja át ezt a documents.folders.rename hívásnak expected_updated_at értékként.

updated
boolean
Érték: true
400

Hibás formátumú kérés: érvénytelen JSON törzs, rossz host (használja a www. hostot), vagy olvashatatlan kérés.

401

A kulcs hiányzik, érvénytelen, visszavonták vagy lejárt, vagy a hozzá tartozó felhasználó már nem aktív.

403

Hiányzó hatókör (scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.

404

Ismeretlen végpont, vagy a rekord nem létezik / nem látható a felhasználó számára.

405

Ezen az útvonalon nem elérhető metódus (a DELETE és a PUT soha nem az; a PATCH csak ott, ahol frissítés is elérhető).

409

A rekord megváltozott, mióta beolvasta (record_conflict: az expected_updated_at már nem egyezik; olvassa be újra, és próbálja újra az új updated_at értékkel).

413

A kérés törzse túl nagy (request_too_large).

422

A validáció sikertelen volt, vagy ismeretlen mező; a details.fields felsorolja a mezőhibákat.

429

A sebességkorlát túllépve; a Retry-After megadja, mikor próbálja újra.

503

Az iroda átmenetileg nem érhető el (karbantartás vagy beállítás van folyamatban); a Retry-After megadja, mikor próbálja újra.

default

Bármely egyéb hiba, ugyanabban a burokban.

Kérésminták

curl -X PATCH 'https://www.flowyer.hu/api/agent/folders/1234' \
  -H 'Authorization: Bearer flw_...' \
  -H 'Content-Type: application/json' \
  -d '{
  "expected_updated_at": "2026-10-30T09:15:00+01:00",
  "name": "Beadványok"
}'

Válaszminták

{
  "data": {
    "id": 1234,
    "name": "string",
    "parent_id": 1234,
    "path": "string",
    "updated_at": "2026-10-30T09:15:00+01:00"
  },
  "updated": true
}

Tudásbázis

Tudásbázis-cikkek listázása

GET /api/agent/knowledge/articles

Listázza a felhasználó számára látható tudásbáziscikkeket (a szerző sajátjait, a globális cikkeket és a felhasználó szerepkörével megosztott cikkeket). Alapértelmezés szerint minden státusz; szűrjön státuszra, vagy adja meg a q értéket a címek, kivonatok, tartalom és címkék teljes szövegű kereséséhez.

Hatókör
knowledge:read

Lekérdezési paraméterek

q
string | nulllegfeljebb 255 karakter

Teljes szövegű keresési kifejezés (címek, kivonatok, tartalom és címkenevek). A logikai operátorok eltávolításra kerülnek.

Példa: "felmondási idő"
status
string | null

Csak az ilyen státuszú cikkek. Hagyja el az összes státusz listázásához.

Lehetséges értékek: "draft" "published" "archived"
limit
integer>= 1<= 100

Oldalméret, 1-100. Alapértelmezés: 25.

Alapértelmezés: 25
Példa: 25
offset
integer>= 0

A kihagyandó rekordok száma. Az előző oldal offset + limit értékével jut el a következő oldalra; a pagination.total a teljes darabszámot adja meg.

Alapértelmezés: 0
Példa: 0

Válaszok

200

OK.

datakötelező
object[]
data mezői
id
integer
Példa: 9876
slug
string

A szerver által generált URL-slug.

Példa: "felmondasi-ido"
title
string
Példa: "Felmondási idő a munka törvénykönyvében"
excerpt
string | null

Rövid összefoglaló (formázott HTML, a tárolt formában).

content
string

A cikk törzse a tárolt formában (formázott HTML).

status
string
Lehetséges értékek: "draft" "published" "archived"
is_featured
boolean

Jelzi, hogy a cikk ki van-e tűzve a tudásbázis kezdőlapjára (az API-n keresztül nem állítható be).

category_id
integer | null
category_name
string | null
author_id
integer

A szerző felhasználóazonosítója; 0 egy globális (alapértelmezett) cikk esetén.

author_name
string | null
editor_id
integer | null

Az utolsó szerkesztő felhasználóazonosítója, vagy null, ha soha nem szerkesztették.

editor_name
string | null
views_count
integer
downloads_count
integer
shared_roles
integer[]

A szerepkör-azonosítók, amelyekkel a cikk meg van osztva (üres = csak a szerző/globális).

tags
string[]

A cikken lévő címkenevek.

published_at
string <date-time> | null

Amikor a cikket először közzétették, vagy null.

created_at
string <date-time> | null
updated_at
string <date-time> | null
paginationkötelező
object
pagination mezői
limitkötelező
integer
offsetkötelező
integer
totalkötelező
integer

A találatként kapott rekordok teljes száma.

400

Hibás formátumú kérés: érvénytelen JSON törzs, rossz host (használja a www. hostot), vagy olvashatatlan kérés.

401

A kulcs hiányzik, érvénytelen, visszavonták vagy lejárt, vagy a hozzá tartozó felhasználó már nem aktív.

403

Hiányzó scope (scope_missing), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.

404

Ismeretlen végpont, vagy a rekord nem létezik / nem látható a felhasználó számára.

405

Ezen az útvonalon nem elérhető metódus (a DELETE és a PUT soha nem az; a PATCH csak ott, ahol frissítés is elérhető).

422

A validáció sikertelen volt, vagy ismeretlen mező; a details.fields felsorolja a mezőhibákat.

429

A sebességkorlát túllépve; a Retry-After megadja, mikor próbálja újra.

503

Az iroda átmenetileg nem érhető el (karbantartás vagy beállítás van folyamatban); a Retry-After megadja, mikor próbálja újra.

default

Bármely egyéb hiba, ugyanabban a burokban.

Kérésminták

curl 'https://www.flowyer.hu/api/agent/knowledge/articles?q=felmond%C3%A1si%20id%C5%91&limit=25' \
  -H 'Authorization: Bearer flw_...'

Válaszminták

{
  "data": [
    {
      "id": 9876,
      "slug": "felmondasi-ido",
      "title": "Felmondási idő a munka törvénykönyvében",
      "excerpt": "string",
      "content": "string",
      "status": "draft",
      "is_featured": true,
      "category_id": 1234,
      "category_name": "string",
      "author_id": 1234,
      "author_name": "string",
      "editor_id": 1234,
      "editor_name": "string",
      "views_count": 0,
      "downloads_count": 0,
      "shared_roles": [
        0
      ],
      "tags": [
        "string"
      ],
      "published_at": "2026-10-30T09:15:00+01:00",
      "created_at": "2026-10-30T09:15:00+01:00",
      "updated_at": "2026-10-30T09:15:00+01:00"
    }
  ],
  "pagination": {
    "limit": 25,
    "offset": 0,
    "total": 1
  }
}

Tudásbázis-cikk lekérése

GET /api/agent/knowledge/articles/{id}

Egy tudásbáziscikket ad vissza, beleértve a teljes tartalmát, címkéit és megosztott szerepköreit. 404 választ ad, ha a cikk nem létezik, vagy a felhasználó nem láthatja.

Hatókör
knowledge:read

Útvonal-paraméterek

idkötelező
integer>= 1

Cikkazonosító.

Példa: 9876

Válaszok

200

OK.

datakötelező
object
data mezői
id
integer
Példa: 9876
slug
string

A szerver által generált URL-slug.

Példa: "felmondasi-ido"
title
string
Példa: "Felmondási idő a munka törvénykönyvében"
excerpt
string | null

Rövid összefoglaló (formázott HTML, a tárolt formában).

content
string

A cikk törzse a tárolt formában (formázott HTML).

status
string
Lehetséges értékek: "draft" "published" "archived"
is_featured
boolean

Jelzi, hogy a cikk ki van-e tűzve a tudásbázis kezdőlapjára (az API-n keresztül nem állítható be).

category_id
integer | null
category_name
string | null
author_id
integer

A szerző felhasználóazonosítója; 0 egy globális (alapértelmezett) cikk esetén.

author_name
string | null
editor_id
integer | null

Az utolsó szerkesztő felhasználóazonosítója, vagy null, ha soha nem szerkesztették.

editor_name
string | null
views_count
integer
downloads_count
integer
shared_roles
integer[]

A szerepkör-azonosítók, amelyekkel a cikk meg van osztva (üres = csak a szerző/globális).

tags
string[]

A cikken lévő címkenevek.

published_at
string <date-time> | null

Amikor a cikket először közzétették, vagy null.

created_at
string <date-time> | null
updated_at
string <date-time> | null
400

Hibás formátumú kérés: érvénytelen JSON törzs, rossz host (használja a www. hostot), vagy olvashatatlan kérés.

401

A kulcs hiányzik, érvénytelen, visszavonták vagy lejárt, vagy a hozzá tartozó felhasználó már nem aktív.

403

Hiányzó scope (scope_missing), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.

404

Ismeretlen végpont, vagy a rekord nem létezik / nem látható a felhasználó számára.

405

Ezen az útvonalon nem elérhető metódus (a DELETE és a PUT soha nem az; a PATCH csak ott, ahol frissítés is elérhető).

422

A validáció sikertelen volt, vagy ismeretlen mező; a details.fields felsorolja a mezőhibákat.

429

A sebességkorlát túllépve; a Retry-After megadja, mikor próbálja újra.

503

Az iroda átmenetileg nem érhető el (karbantartás vagy beállítás van folyamatban); a Retry-After megadja, mikor próbálja újra.

default

Bármely egyéb hiba, ugyanabban a burokban.

Kérésminták

curl 'https://www.flowyer.hu/api/agent/knowledge/articles/9876' \
  -H 'Authorization: Bearer flw_...'

Válaszminták

{
  "data": {
    "id": 9876,
    "slug": "felmondasi-ido",
    "title": "Felmondási idő a munka törvénykönyvében",
    "excerpt": "string",
    "content": "string",
    "status": "draft",
    "is_featured": true,
    "category_id": 1234,
    "category_name": "string",
    "author_id": 1234,
    "author_name": "string",
    "editor_id": 1234,
    "editor_name": "string",
    "views_count": 0,
    "downloads_count": 0,
    "shared_roles": [
      0
    ],
    "tags": [
      "string"
    ],
    "published_at": "2026-10-30T09:15:00+01:00",
    "created_at": "2026-10-30T09:15:00+01:00",
    "updated_at": "2026-10-30T09:15:00+01:00"
  }
}

Tudásbázis-cikk létrehozása

POST /api/agent/knowledge/articles

Létrehoz egy tudásbáziscikket, amelynek szerzője a kulcshoz tartozó felhasználó. A slug a címből generálódik. A kategóriának léteznie kell és aktívnak kell lennie. Ossza meg szerepkörökkel a shared_roles segítségével (egyébként csak a szerző látja). A content és az excerpt HTML, és a szerveroldalon megtisztításra kerül.

Hatókör
knowledge:create

Fejléc-paraméterek

Idempotency-Key
stringlegfeljebb 128 karakter

Minden létrehozásnál ajánlott. Logikai műveletenként egyedi érték (például egy UUID). Ugyanaz az érték ugyanazt a rekordot adja vissza: az azzal való újrapróbálkozás az először létrehozott rekordot adja vissza ahelyett, hogy egy másodikat hozna létre. A különböző értékek mindig különböző rekordokat hoznak létre. Azok az ügyfelek, amelyek nem tudnak fejléceket küldeni, ugyanazt az értéket átadhatják az idempotency_key törzsmezőben. Betűk, számjegyek, _, -, : vagy ., legfeljebb 128 karakter.

Minta: ^[A-Za-z0-9_\-:.]{1,128}$

Kérés törzse application/json

titlekötelező
stringlegfeljebb 500 karakter

A cikk címe. Egyszerű szöveg.

Példa: "Felmondási idő a munka törvénykönyvében"
excerpt
string | null

Rövid összefoglaló (HTML engedélyezett, a szerveroldalon megtisztítva), legfeljebb 200 karakter.

contentkötelező
string

A cikk törzse. Formázott HTML, a szerveroldalon a tudásbázis profiljával megtisztítva.

category_idkötelező
integer>= 1

Egy létező, aktív tudásbázis-kategória azonosítója.

Példa: 12
statuskötelező
string

draft, published vagy archived. A published beállítja a published_at értéket.

Lehetséges értékek: "draft" "published" "archived"
tags
string[] | null

Címkenevek; az új címkék szükség szerint létrejönnek.

shared_roles
integer[] | null

A szerepkör-azonosítók, amelyekkel a cikket megosztja. Az üres azt jelenti, hogy csak a szerző láthatja.

idempotency_key
stringlegfeljebb 128 karakter

Ugyanaz a szerepe, mint az Idempotency-Key fejlécnek, azon ügyfelek számára, amelyek nem tudnak egyéni fejléceket küldeni. Betűk, számjegyek, _, -, : vagy ., legfeljebb 128 karakter.

Minta: ^[A-Za-z0-9_\-:.]{1,128}$
Példa: "b8f1c2e0-6f7a-4d2e-9c1b-2a3d4e5f6a7b"

Válaszok

201

Létrehozva.

datakötelező
object
data mezői
id
integer
Példa: 9876
slug
string

A szerver által generált URL-slug.

Példa: "felmondasi-ido"
title
string
Példa: "Felmondási idő a munka törvénykönyvében"
excerpt
string | null

Rövid összefoglaló (formázott HTML, a tárolt formában).

content
string

A cikk törzse a tárolt formában (formázott HTML).

status
string
Lehetséges értékek: "draft" "published" "archived"
is_featured
boolean

Jelzi, hogy a cikk ki van-e tűzve a tudásbázis kezdőlapjára (az API-n keresztül nem állítható be).

category_id
integer | null
category_name
string | null
author_id
integer

A szerző felhasználóazonosítója; 0 egy globális (alapértelmezett) cikk esetén.

author_name
string | null
editor_id
integer | null

Az utolsó szerkesztő felhasználóazonosítója, vagy null, ha soha nem szerkesztették.

editor_name
string | null
views_count
integer
downloads_count
integer
shared_roles
integer[]

A szerepkör-azonosítók, amelyekkel a cikk meg van osztva (üres = csak a szerző/globális).

tags
string[]

A cikken lévő címkenevek.

published_at
string <date-time> | null

Amikor a cikket először közzétették, vagy null.

created_at
string <date-time> | null
updated_at
string <date-time> | null
created
boolean
Érték: true
200

Idempotens visszajátszás: ez az Idempotency-Key (vagy kulcs nélkül egy azonos kérés 120 másodpercen belül) már létrehozta a rekordot; a rendszer újra visszaadja, semmi új nem jött létre.

datakötelező
object
data mezői
id
integer
Példa: 9876
slug
string

A szerver által generált URL-slug.

Példa: "felmondasi-ido"
title
string
Példa: "Felmondási idő a munka törvénykönyvében"
excerpt
string | null

Rövid összefoglaló (formázott HTML, a tárolt formában).

content
string

A cikk törzse a tárolt formában (formázott HTML).

status
string
Lehetséges értékek: "draft" "published" "archived"
is_featured
boolean

Jelzi, hogy a cikk ki van-e tűzve a tudásbázis kezdőlapjára (az API-n keresztül nem állítható be).

category_id
integer | null
category_name
string | null
author_id
integer

A szerző felhasználóazonosítója; 0 egy globális (alapértelmezett) cikk esetén.

author_name
string | null
editor_id
integer | null

Az utolsó szerkesztő felhasználóazonosítója, vagy null, ha soha nem szerkesztették.

editor_name
string | null
views_count
integer
downloads_count
integer
shared_roles
integer[]

A szerepkör-azonosítók, amelyekkel a cikk meg van osztva (üres = csak a szerző/globális).

tags
string[]

A cikken lévő címkenevek.

published_at
string <date-time> | null

Amikor a cikket először közzétették, vagy null.

created_at
string <date-time> | null
updated_at
string <date-time> | null
created
boolean
Érték: false
idempotent_replay
boolean
Érték: true
400

Hibás formátumú kérés: érvénytelen JSON törzs, rossz host (használja a www. hostot), vagy olvashatatlan kérés.

401

A kulcs hiányzik, érvénytelen, visszavonták vagy lejárt, vagy a hozzá tartozó felhasználó már nem aktív.

403

Hiányzó scope (scope_missing), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.

404

Ismeretlen végpont, vagy a rekord nem létezik / nem látható a felhasználó számára. replay_not_visible: ez az Idempotency-Key (vagy kulcs nélkül egy azonos kérés) már létrehozta a rekordot (details.record_id), de azt azóta törölték, vagy nem látható a felhasználó számára; semmi új nem jött létre, ne hozza létre újra.

405

Ezen az útvonalon nem elérhető metódus (a DELETE és a PUT soha nem az; a PATCH csak ott, ahol frissítés is elérhető).

409

Az Idempotency-Key kulcsot egy másik erőforrástípushoz használták (idempotency_key_reused), vagy kulcs nélkül egy azonos kérés feldolgozása éppen most zajlik (duplicate_in_progress; próbálja újra rövidesen).

413

A kérés törzse túl nagy (request_too_large).

422

A validáció sikertelen volt, vagy ismeretlen mező; a details.fields felsorolja a mezőhibákat.

429

A sebességkorlát túllépve; a Retry-After megadja, mikor próbálja újra.

503

Az iroda átmenetileg nem érhető el (karbantartás vagy beállítás van folyamatban); a Retry-After megadja, mikor próbálja újra.

default

Bármely egyéb hiba, ugyanabban a burokban.

Kérésminták

curl -X POST 'https://www.flowyer.hu/api/agent/knowledge/articles' \
  -H 'Authorization: Bearer flw_...' \
  -H 'Content-Type: application/json' \
  -H 'Idempotency-Key: 7f3a9c21-1b2c-4d5e-8f90-0a1b2c3d4e5f' \
  -d '{
  "title": "Felmondási idő a munka törvénykönyvében",
  "content": "string",
  "category_id": 12,
  "status": "draft"
}'

Válaszminták

{
  "data": {
    "id": 9876,
    "slug": "felmondasi-ido",
    "title": "Felmondási idő a munka törvénykönyvében",
    "excerpt": "string",
    "content": "string",
    "status": "draft",
    "is_featured": true,
    "category_id": 1234,
    "category_name": "string",
    "author_id": 1234,
    "author_name": "string",
    "editor_id": 1234,
    "editor_name": "string",
    "views_count": 0,
    "downloads_count": 0,
    "shared_roles": [
      0
    ],
    "tags": [
      "string"
    ],
    "published_at": "2026-10-30T09:15:00+01:00",
    "created_at": "2026-10-30T09:15:00+01:00",
    "updated_at": "2026-10-30T09:15:00+01:00"
  },
  "created": true
}

Tudásbázis-cikk módosítása

PATCH /api/agent/knowledge/articles/{id}

Módosít egy tudásbáziscikket: cím (a slug újraszármaztatásra kerül), kivonat, tartalom, kategória, státusz, címkék vagy megosztott szerepkörök. Csak a szerző szerkesztheti (globális cikk esetén bárki). Adja meg az expected_updated_at értéket; ütköző módosítás esetén a válasz 409. A content és az excerpt a szerveroldalon megtisztításra kerül.

Hatókör
knowledge:update

Útvonal-paraméterek

idkötelező
integer>= 1

A módosítandó rekord azonosítója.

Kérés törzse application/json

expected_updated_at
string <date-time> | null

A rekord legutóbbi olvasásából származó updated_at érték (minden esetben kötelező, ha a rekordnak van ilyen). Ha a rekord azóta megváltozott (egy kolléga szerkesztette), az API 409-et ad válaszul, és újra kell olvasnia, mielőtt újrapróbálkozna. Egy olyan régebbi rekord, amelynek az updated_at értéke null, a null értéket veszi fel.

title
string | null

A cikk címe (egyszerű szöveg). A null megtartja az aktuális címet; új cím esetén a slug újraszármaztatásra kerül.

excerpt
string | null

Rövid összefoglaló (HTML engedélyezett, megtisztítva), ÚJ értékként legfeljebb 200 karakter. Az üres/null törli; hagyja el a megtartásához.

content
string | null

A cikk törzse (formázott HTML, megtisztítva). A null megtartja az aktuális tartalmat; nem törölhető.

category_id
integer | null>= 1

Áthelyezi a cikket ebbe a létező, aktív kategóriába. A null megtartja az aktuálisat.

status
string | null

draft, published vagy archived. A published-re váltás első alkalommal beállítja a published_at értéket; ez soha nem törlődik. A null megtartja az aktuális státuszt.

Lehetséges értékek: "draft" "published" "archived"
tags
string[] | null

Lecseréli a teljes címkehalmazt (az új címkék létrejönnek). Az üres tömb törli az összes címkét; hagyja el a megtartásukhoz.

shared_roles
integer[] | null

Lecseréli a teljes megosztottszerepkör-halmazt. Az üres tömb megszünteti az összes megosztást (csak a szerző látja); hagyja el a megtartásához.

Válaszok

200

Frissítve.

datakötelező
object
data mezői
id
integer
Példa: 9876
slug
string

A szerver által generált URL-slug.

Példa: "felmondasi-ido"
title
string
Példa: "Felmondási idő a munka törvénykönyvében"
excerpt
string | null

Rövid összefoglaló (formázott HTML, a tárolt formában).

content
string

A cikk törzse a tárolt formában (formázott HTML).

status
string
Lehetséges értékek: "draft" "published" "archived"
is_featured
boolean

Jelzi, hogy a cikk ki van-e tűzve a tudásbázis kezdőlapjára (az API-n keresztül nem állítható be).

category_id
integer | null
category_name
string | null
author_id
integer

A szerző felhasználóazonosítója; 0 egy globális (alapértelmezett) cikk esetén.

author_name
string | null
editor_id
integer | null

Az utolsó szerkesztő felhasználóazonosítója, vagy null, ha soha nem szerkesztették.

editor_name
string | null
views_count
integer
downloads_count
integer
shared_roles
integer[]

A szerepkör-azonosítók, amelyekkel a cikk meg van osztva (üres = csak a szerző/globális).

tags
string[]

A cikken lévő címkenevek.

published_at
string <date-time> | null

Amikor a cikket először közzétették, vagy null.

created_at
string <date-time> | null
updated_at
string <date-time> | null
updated
boolean
Érték: true
400

Hibás formátumú kérés: érvénytelen JSON törzs, rossz host (használja a www. hostot), vagy olvashatatlan kérés.

401

A kulcs hiányzik, érvénytelen, visszavonták vagy lejárt, vagy a hozzá tartozó felhasználó már nem aktív.

403

Hiányzó scope (scope_missing), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.

404

Ismeretlen végpont, vagy a rekord nem létezik / nem látható a felhasználó számára.

405

Ezen az útvonalon nem elérhető metódus (a DELETE és a PUT soha nem az; a PATCH csak ott, ahol frissítés is elérhető).

409

A rekord megváltozott, mióta beolvasta (record_conflict: az expected_updated_at már nem egyezik; olvassa be újra, és próbálja újra az új updated_at értékkel).

413

A kérés törzse túl nagy (request_too_large).

422

A validáció sikertelen volt, vagy ismeretlen mező; a details.fields felsorolja a mezőhibákat.

429

A sebességkorlát túllépve; a Retry-After megadja, mikor próbálja újra.

503

Az iroda átmenetileg nem érhető el (karbantartás vagy beállítás van folyamatban); a Retry-After megadja, mikor próbálja újra.

default

Bármely egyéb hiba, ugyanabban a burokban.

Kérésminták

curl -X PATCH 'https://www.flowyer.hu/api/agent/knowledge/articles/1234' \
  -H 'Authorization: Bearer flw_...' \
  -H 'Content-Type: application/json' \
  -d '{
  "expected_updated_at": "2026-10-30T09:15:00+01:00",
  "title": "string"
}'

Válaszminták

{
  "data": {
    "id": 9876,
    "slug": "felmondasi-ido",
    "title": "Felmondási idő a munka törvénykönyvében",
    "excerpt": "string",
    "content": "string",
    "status": "draft",
    "is_featured": true,
    "category_id": 1234,
    "category_name": "string",
    "author_id": 1234,
    "author_name": "string",
    "editor_id": 1234,
    "editor_name": "string",
    "views_count": 0,
    "downloads_count": 0,
    "shared_roles": [
      0
    ],
    "tags": [
      "string"
    ],
    "published_at": "2026-10-30T09:15:00+01:00",
    "created_at": "2026-10-30T09:15:00+01:00",
    "updated_at": "2026-10-30T09:15:00+01:00"
  },
  "updated": true
}

Tudásbázis-kategóriák listázása

GET /api/agent/knowledge/categories

Listázza a felhasználó számára látható tudásbázis-kategóriákat: a beépített alapértelmezett kategóriákat, a felhasználó sajátjait és a felhasználó szerepkörével megosztottakat. A Flowyerben használt sorrendben (rendezési pozíció, majd név).

Hatókör
knowledge:read

Lekérdezési paraméterek

limit
integer>= 1<= 100

Oldalméret, 1-100. Alapértelmezés: 25.

Alapértelmezés: 25
Példa: 25
offset
integer>= 0

A kihagyandó rekordok száma. Az előző oldal offset + limit értékével jut el a következő oldalra; a pagination.total a teljes darabszámot adja meg.

Alapértelmezés: 0
Példa: 0

Válaszok

200

OK.

datakötelező
object[]
data mezői
id
integer
Példa: 42
slug
string

URL-slug, a névből generálva.

Példa: "munkajog"
name
string
Példa: "Munkajog"
description
string | null

Egyszerű szöveges leírás, vagy null.

icon
string | null

A kategória mellett megjelenő ikonazonosító, vagy null.

order_column
integer

Rendezési pozíció a testvérkategóriák között.

Példa: 0
is_active
boolean
parent_id
integer | null

A szülőkategória azonosítója, vagy null egy gyökérkategória esetén.

author_id
integer

A létrehozó felhasználóazonosítója; 0 egy mindenki számára látható, beépített alapértelmezett kategória esetén.

author_name
string | null

A létrehozó megjelenített neve, vagy null egy alapértelmezett kategória esetén.

articles_count
integer

A kategóriában lévő, a hívó által látható közzétett cikkek száma.

shared_roles
integer[]

A szerepkör-azonosítók, amelyekkel a kategória meg van osztva. Az üres azt jelenti, hogy csak a szerző látja (egy author_id 0 értékű alapértelmezett kategória mindenki számára látható).

created_at
string <date-time> | null
updated_at
string <date-time> | null
paginationkötelező
object
pagination mezői
limitkötelező
integer
offsetkötelező
integer
totalkötelező
integer

A találatként kapott rekordok teljes száma.

400

Hibás formátumú kérés: érvénytelen JSON törzs, rossz host (használja a www. hostot), vagy olvashatatlan kérés.

401

A kulcs hiányzik, érvénytelen, visszavonták vagy lejárt, vagy a hozzá tartozó felhasználó már nem aktív.

403

Hiányzó scope (scope_missing), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.

404

Ismeretlen végpont, vagy a rekord nem létezik / nem látható a felhasználó számára.

405

Ezen az útvonalon nem elérhető metódus (a DELETE és a PUT soha nem az; a PATCH csak ott, ahol frissítés is elérhető).

422

A validáció sikertelen volt, vagy ismeretlen mező; a details.fields felsorolja a mezőhibákat.

429

A sebességkorlát túllépve; a Retry-After megadja, mikor próbálja újra.

503

Az iroda átmenetileg nem érhető el (karbantartás vagy beállítás van folyamatban); a Retry-After megadja, mikor próbálja újra.

default

Bármely egyéb hiba, ugyanabban a burokban.

Kérésminták

curl 'https://www.flowyer.hu/api/agent/knowledge/categories?limit=25' \
  -H 'Authorization: Bearer flw_...'

Válaszminták

{
  "data": [
    {
      "id": 42,
      "slug": "munkajog",
      "name": "Munkajog",
      "description": "string",
      "icon": "string",
      "order_column": 0,
      "is_active": true,
      "parent_id": 1234,
      "author_id": 1234,
      "author_name": "string",
      "articles_count": 0,
      "shared_roles": [
        1
      ],
      "created_at": "2026-10-30T09:15:00+01:00",
      "updated_at": "2026-10-30T09:15:00+01:00"
    }
  ],
  "pagination": {
    "limit": 25,
    "offset": 0,
    "total": 1
  }
}

Tudásbázis-kategória lekérése

GET /api/agent/knowledge/categories/{id}

Egy tudásbázis-kategóriát ad vissza. 404 választ ad, ha a kategória nem létezik, vagy nem látható az API-kulcsot birtokló felhasználó számára.

Hatókör
knowledge:read

Útvonal-paraméterek

idkötelező
integer>= 1

Kategóriaazonosító.

Példa: 42

Válaszok

200

OK.

datakötelező
object
data mezői
id
integer
Példa: 42
slug
string

URL-slug, a névből generálva.

Példa: "munkajog"
name
string
Példa: "Munkajog"
description
string | null

Egyszerű szöveges leírás, vagy null.

icon
string | null

A kategória mellett megjelenő ikonazonosító, vagy null.

order_column
integer

Rendezési pozíció a testvérkategóriák között.

Példa: 0
is_active
boolean
parent_id
integer | null

A szülőkategória azonosítója, vagy null egy gyökérkategória esetén.

author_id
integer

A létrehozó felhasználóazonosítója; 0 egy mindenki számára látható, beépített alapértelmezett kategória esetén.

author_name
string | null

A létrehozó megjelenített neve, vagy null egy alapértelmezett kategória esetén.

articles_count
integer

A kategóriában lévő, a hívó által látható közzétett cikkek száma.

shared_roles
integer[]

A szerepkör-azonosítók, amelyekkel a kategória meg van osztva. Az üres azt jelenti, hogy csak a szerző látja (egy author_id 0 értékű alapértelmezett kategória mindenki számára látható).

created_at
string <date-time> | null
updated_at
string <date-time> | null
400

Hibás formátumú kérés: érvénytelen JSON törzs, rossz host (használja a www. hostot), vagy olvashatatlan kérés.

401

A kulcs hiányzik, érvénytelen, visszavonták vagy lejárt, vagy a hozzá tartozó felhasználó már nem aktív.

403

Hiányzó scope (scope_missing), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.

404

Ismeretlen végpont, vagy a rekord nem létezik / nem látható a felhasználó számára.

405

Ezen az útvonalon nem elérhető metódus (a DELETE és a PUT soha nem az; a PATCH csak ott, ahol frissítés is elérhető).

422

A validáció sikertelen volt, vagy ismeretlen mező; a details.fields felsorolja a mezőhibákat.

429

A sebességkorlát túllépve; a Retry-After megadja, mikor próbálja újra.

503

Az iroda átmenetileg nem érhető el (karbantartás vagy beállítás van folyamatban); a Retry-After megadja, mikor próbálja újra.

default

Bármely egyéb hiba, ugyanabban a burokban.

Kérésminták

curl 'https://www.flowyer.hu/api/agent/knowledge/categories/42' \
  -H 'Authorization: Bearer flw_...'

Válaszminták

{
  "data": {
    "id": 42,
    "slug": "munkajog",
    "name": "Munkajog",
    "description": "string",
    "icon": "string",
    "order_column": 0,
    "is_active": true,
    "parent_id": 1234,
    "author_id": 1234,
    "author_name": "string",
    "articles_count": 0,
    "shared_roles": [
      1
    ],
    "created_at": "2026-10-30T09:15:00+01:00",
    "updated_at": "2026-10-30T09:15:00+01:00"
  }
}

Tudásbázis-kategória létrehozása

POST /api/agent/knowledge/categories

Létrehoz egy tudásbázis-kategóriát. Az URL-slug a névből generálódik. Ossza meg szerepkörökkel a shared_roles segítségével, vagy hagyja el, hogy csak Ön (a szerző) láthassa. A parent_id, ha meg van adva, egy létező aktív kategória kell legyen.

Hatókör
knowledge:create

Fejléc-paraméterek

Idempotency-Key
stringlegfeljebb 128 karakter

Minden létrehozásnál ajánlott. Logikai műveletenként egyedi érték (például egy UUID). Ugyanaz az érték ugyanazt a rekordot adja vissza: az azzal való újrapróbálkozás az először létrehozott rekordot adja vissza ahelyett, hogy egy másodikat hozna létre. A különböző értékek mindig különböző rekordokat hoznak létre. Azok az ügyfelek, amelyek nem tudnak fejléceket küldeni, ugyanazt az értéket átadhatják az idempotency_key törzsmezőben. Betűk, számjegyek, _, -, : vagy ., legfeljebb 128 karakter.

Minta: ^[A-Za-z0-9_\-:.]{1,128}$

Kérés törzse application/json

namekötelező
stringlegfeljebb 255 karakter

A kategória neve. Egyszerű szöveg; a "<" és a ">" nem engedélyezett.

Minta: ^[^<>]*$
Példa: "Munkajog"
description
string | null

Opcionális leírás, egyszerű szöveg.

parent_id
integer | null>= 1

A szülőkategória azonosítója (léteznie kell és aktívnak kell lennie). Hagyja el egy gyökérkategóriához.

icon
string | nulllegfeljebb 100 karakter

Opcionális ikonazonosító. Egyszerű szöveg; a "<" és a ">" nem engedélyezett.

Minta: ^[^<>]*$
is_active
boolean | null

Jelzi, hogy a kategória aktív-e. Alapértelmezés true.

Alapértelmezés: true
order_column
integer | null>= 0

Rendezési pozíció a testvérkategóriák között. Alapértelmezés 0.

Példa: 0
shared_roles
integer[] | null

A szerepkör-azonosítók, amelyekkel a kategóriát megosztja. Hagyja el, hogy csak Ön (a szerző) láthassa.

idempotency_key
stringlegfeljebb 128 karakter

Ugyanaz a szerepe, mint az Idempotency-Key fejlécnek, azon ügyfelek számára, amelyek nem tudnak egyéni fejléceket küldeni. Betűk, számjegyek, _, -, : vagy ., legfeljebb 128 karakter.

Minta: ^[A-Za-z0-9_\-:.]{1,128}$
Példa: "b8f1c2e0-6f7a-4d2e-9c1b-2a3d4e5f6a7b"

Válaszok

201

Létrehozva.

datakötelező
object
data mezői
id
integer
Példa: 42
slug
string

URL-slug, a névből generálva.

Példa: "munkajog"
name
string
Példa: "Munkajog"
description
string | null

Egyszerű szöveges leírás, vagy null.

icon
string | null

A kategória mellett megjelenő ikonazonosító, vagy null.

order_column
integer

Rendezési pozíció a testvérkategóriák között.

Példa: 0
is_active
boolean
parent_id
integer | null

A szülőkategória azonosítója, vagy null egy gyökérkategória esetén.

author_id
integer

A létrehozó felhasználóazonosítója; 0 egy mindenki számára látható, beépített alapértelmezett kategória esetén.

author_name
string | null

A létrehozó megjelenített neve, vagy null egy alapértelmezett kategória esetén.

articles_count
integer

A kategóriában lévő, a hívó által látható közzétett cikkek száma.

shared_roles
integer[]

A szerepkör-azonosítók, amelyekkel a kategória meg van osztva. Az üres azt jelenti, hogy csak a szerző látja (egy author_id 0 értékű alapértelmezett kategória mindenki számára látható).

created_at
string <date-time> | null
updated_at
string <date-time> | null
created
boolean
Érték: true
200

Idempotens visszajátszás: ez az Idempotency-Key (vagy kulcs nélkül egy azonos kérés 120 másodpercen belül) már létrehozta a rekordot; a rendszer újra visszaadja, semmi új nem jött létre.

datakötelező
object
data mezői
id
integer
Példa: 42
slug
string

URL-slug, a névből generálva.

Példa: "munkajog"
name
string
Példa: "Munkajog"
description
string | null

Egyszerű szöveges leírás, vagy null.

icon
string | null

A kategória mellett megjelenő ikonazonosító, vagy null.

order_column
integer

Rendezési pozíció a testvérkategóriák között.

Példa: 0
is_active
boolean
parent_id
integer | null

A szülőkategória azonosítója, vagy null egy gyökérkategória esetén.

author_id
integer

A létrehozó felhasználóazonosítója; 0 egy mindenki számára látható, beépített alapértelmezett kategória esetén.

author_name
string | null

A létrehozó megjelenített neve, vagy null egy alapértelmezett kategória esetén.

articles_count
integer

A kategóriában lévő, a hívó által látható közzétett cikkek száma.

shared_roles
integer[]

A szerepkör-azonosítók, amelyekkel a kategória meg van osztva. Az üres azt jelenti, hogy csak a szerző látja (egy author_id 0 értékű alapértelmezett kategória mindenki számára látható).

created_at
string <date-time> | null
updated_at
string <date-time> | null
created
boolean
Érték: false
idempotent_replay
boolean
Érték: true
400

Hibás formátumú kérés: érvénytelen JSON törzs, rossz host (használja a www. hostot), vagy olvashatatlan kérés.

401

A kulcs hiányzik, érvénytelen, visszavonták vagy lejárt, vagy a hozzá tartozó felhasználó már nem aktív.

403

Hiányzó scope (scope_missing), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.

404

Ismeretlen végpont, vagy a rekord nem létezik / nem látható a felhasználó számára. replay_not_visible: ez az Idempotency-Key (vagy kulcs nélkül egy azonos kérés) már létrehozta a rekordot (details.record_id), de azt azóta törölték, vagy nem látható a felhasználó számára; semmi új nem jött létre, ne hozza létre újra.

405

Ezen az útvonalon nem elérhető metódus (a DELETE és a PUT soha nem az; a PATCH csak ott, ahol frissítés is elérhető).

409

Az Idempotency-Key kulcsot egy másik erőforrástípushoz használták (idempotency_key_reused), vagy kulcs nélkül egy azonos kérés feldolgozása éppen most zajlik (duplicate_in_progress; próbálja újra rövidesen).

413

A kérés törzse túl nagy (request_too_large).

422

A validáció sikertelen volt, vagy ismeretlen mező; a details.fields felsorolja a mezőhibákat.

429

A sebességkorlát túllépve; a Retry-After megadja, mikor próbálja újra.

503

Az iroda átmenetileg nem érhető el (karbantartás vagy beállítás van folyamatban); a Retry-After megadja, mikor próbálja újra.

default

Bármely egyéb hiba, ugyanabban a burokban.

Kérésminták

curl -X POST 'https://www.flowyer.hu/api/agent/knowledge/categories' \
  -H 'Authorization: Bearer flw_...' \
  -H 'Content-Type: application/json' \
  -H 'Idempotency-Key: 7f3a9c21-1b2c-4d5e-8f90-0a1b2c3d4e5f' \
  -d '{
  "name": "Munkajog",
  "order_column": 0
}'

Válaszminták

{
  "data": {
    "id": 42,
    "slug": "munkajog",
    "name": "Munkajog",
    "description": "string",
    "icon": "string",
    "order_column": 0,
    "is_active": true,
    "parent_id": 1234,
    "author_id": 1234,
    "author_name": "string",
    "articles_count": 0,
    "shared_roles": [
      1
    ],
    "created_at": "2026-10-30T09:15:00+01:00",
    "updated_at": "2026-10-30T09:15:00+01:00"
  },
  "created": true
}

Tudásbázis-kategória módosítása

PATCH /api/agent/knowledge/categories/{id}

Módosít egy tudásbázis-kategóriát: név (a slug követi), leírás, ikon, szülő, aktív jelző, rendezési pozíció vagy a szerepkörök, amelyekkel meg van osztva. Csak a szerző módosíthatja (egy beépített alapértelmezett kategóriát bárki szerkeszthet). Adja meg az expected_updated_at értéket; ütköző módosítás esetén a válasz 409.

Hatókör
knowledge:update

Útvonal-paraméterek

idkötelező
integer>= 1

A módosítandó rekord azonosítója.

Kérés törzse application/json

expected_updated_at
string <date-time> | null

A rekord legutóbbi olvasásából származó updated_at érték (minden esetben kötelező, ha a rekordnak van ilyen). Ha a rekord azóta megváltozott (egy kolléga szerkesztette), az API 409-et ad válaszul, és újra kell olvasnia, mielőtt újrapróbálkozna. Egy olyan régebbi rekord, amelynek az updated_at értéke null, a null értéket veszi fel.

name
string | nulllegalább 1 karakter

A kategória neve. ÚJ értékként legfeljebb 255 karakter; a "<" és a ">" nem vihető be, de egy tárolt név, amely hosszabb vagy tartalmazza ezeket, változatlanul visszaküldhető. A null megtartja az aktuális nevet.

description
string | null

Egyszerű szöveges leírás. A null törli.

parent_id
integer | null>= 1

Áthelyezi a kategóriát e szülő alá (léteznie kell, aktívnak kell lennie, és nem hozhat létre kört), vagy null, hogy gyökérkategóriává tegye.

icon
string | null

Ikonazonosító. ÚJ értékként legfeljebb 100 karakter; a "<" és a ">" nem vihető be. A null törli.

is_active
boolean | null

Aktív jelző. Hagyja el vagy null az aktuális érték megtartásához.

order_column
integer | null>= 0

Rendezési pozíció a testvérkategóriák között. Hagyja el vagy null az aktuális érték megtartásához.

shared_roles
integer[] | null

Lecseréli a szerepkör-azonosítók halmazát, amelyekkel a kategória meg van osztva. Az üres tömb megszünteti az összes megosztást (csak a szerző látja). Hagyja el a megosztás változatlanul hagyásához.

Válaszok

200

Frissítve.

datakötelező
object
data mezői
id
integer
Példa: 42
slug
string

URL-slug, a névből generálva.

Példa: "munkajog"
name
string
Példa: "Munkajog"
description
string | null

Egyszerű szöveges leírás, vagy null.

icon
string | null

A kategória mellett megjelenő ikonazonosító, vagy null.

order_column
integer

Rendezési pozíció a testvérkategóriák között.

Példa: 0
is_active
boolean
parent_id
integer | null

A szülőkategória azonosítója, vagy null egy gyökérkategória esetén.

author_id
integer

A létrehozó felhasználóazonosítója; 0 egy mindenki számára látható, beépített alapértelmezett kategória esetén.

author_name
string | null

A létrehozó megjelenített neve, vagy null egy alapértelmezett kategória esetén.

articles_count
integer

A kategóriában lévő, a hívó által látható közzétett cikkek száma.

shared_roles
integer[]

A szerepkör-azonosítók, amelyekkel a kategória meg van osztva. Az üres azt jelenti, hogy csak a szerző látja (egy author_id 0 értékű alapértelmezett kategória mindenki számára látható).

created_at
string <date-time> | null
updated_at
string <date-time> | null
updated
boolean
Érték: true
400

Hibás formátumú kérés: érvénytelen JSON törzs, rossz host (használja a www. hostot), vagy olvashatatlan kérés.

401

A kulcs hiányzik, érvénytelen, visszavonták vagy lejárt, vagy a hozzá tartozó felhasználó már nem aktív.

403

Hiányzó scope (scope_missing), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.

404

Ismeretlen végpont, vagy a rekord nem létezik / nem látható a felhasználó számára.

405

Ezen az útvonalon nem elérhető metódus (a DELETE és a PUT soha nem az; a PATCH csak ott, ahol frissítés is elérhető).

409

A rekord megváltozott, mióta beolvasta (record_conflict: az expected_updated_at már nem egyezik; olvassa be újra, és próbálja újra az új updated_at értékkel).

413

A kérés törzse túl nagy (request_too_large).

422

A validáció sikertelen volt, vagy ismeretlen mező; a details.fields felsorolja a mezőhibákat.

429

A sebességkorlát túllépve; a Retry-After megadja, mikor próbálja újra.

503

Az iroda átmenetileg nem érhető el (karbantartás vagy beállítás van folyamatban); a Retry-After megadja, mikor próbálja újra.

default

Bármely egyéb hiba, ugyanabban a burokban.

Kérésminták

curl -X PATCH 'https://www.flowyer.hu/api/agent/knowledge/categories/1234' \
  -H 'Authorization: Bearer flw_...' \
  -H 'Content-Type: application/json' \
  -d '{
  "expected_updated_at": "2026-10-30T09:15:00+01:00",
  "name": "string"
}'

Válaszminták

{
  "data": {
    "id": 42,
    "slug": "munkajog",
    "name": "Munkajog",
    "description": "string",
    "icon": "string",
    "order_column": 0,
    "is_active": true,
    "parent_id": 1234,
    "author_id": 1234,
    "author_name": "string",
    "articles_count": 0,
    "shared_roles": [
      1
    ],
    "created_at": "2026-10-30T09:15:00+01:00",
    "updated_at": "2026-10-30T09:15:00+01:00"
  },
  "updated": true
}

E-mailek

Ügy e-mailjeinek listázása

GET /api/agent/matters/{id}/emails

Listázza egy ügyre mentett e-maileket: a feladó neve és címe, a tárgy, a méret és az a munkatárs, aki mindegyiket elmentette, a legújabban elküldöttől kezdve. Csak fejléc és metaadatok, soha nem a törzs vagy a nyers HTML. Egyetlen üzenet sima szöveges törzséhez használja az emails.get hívást.

Hatókör
emails:read
Flowyer-jogosultság
emails:read

Útvonal-paraméterek

idkötelező
integer>= 1

Az ügy azonosítója.

Példa: 1234

Lekérdezési paraméterek

q
stringlegfeljebb 100 karakter

Szűrés tárgy, feladónév vagy feladócím szerint (ékezet- és kis-/nagybetű-független). Nem a törzs.

Példa: "invoice"
limit
integer>= 1<= 100

Oldalméret, 1-100. Alapértelmezés: 25.

Alapértelmezés: 25
Példa: 25
offset
integer>= 0

A kihagyandó rekordok száma. Az előző oldal offset + limit értékével jut el a következő oldalra; a pagination.total a teljes darabszámot adja meg.

Alapértelmezés: 0
Példa: 0

Válaszok

200

OK.

datakötelező
object[]
data mezői
id
integer

E-mail azonosító (az emails.get hívással használható).

Példa: 1234
from_name
string | null

A külső fél megjelenített neve. A tároló nem tart fenn irány- vagy fogadómezőket, így ez mindig a külső fél, soha nem munkatárs, és az API nem tudja megmondani, hogy a levél bejövő vagy kimenő volt-e.

from_address
string | null

A külső fél SMTP címe.

subject
string | null
sent_at
string <date-time> | null

Amikor az üzenetet elküldték. A tárolt érték időzónája a beérkezési úttól függően ingadozik (az IMAP worker UTC-t tárol, az Outlook bővítmény iroda-zóna szerinti faliórás időt), ezért ez legjobb igyekezet szerinti, és az eszerinti listarendezés a források között az iroda UTC-eltolásával tévedhet. A created_at a megbízható időbélyeg.

size
integer | null

A tárolt .eml/.msg fájl mérete bájtban.

extension
string | null

"msg" (Outlook bővítmény) vagy "eml" (IMAP / alapértelmezett); néhány régi soron null.

saved_by_user_id
integer | null

Annak a munkatársnak a felhasználóazonosítója, aki az e-mailt a Flowyerbe mentette.

saved_by
string | null

Az adott munkatárs megjelenített neve.

created_at
string <date-time> | null

Amikor az e-mailt a Flowyerbe mentették (iroda-zóna szerinti faliórás idő). A megbízható időbélyeg a stabil lapozáshoz.

paginationkötelező
object
pagination mezői
limitkötelező
integer
offsetkötelező
integer
totalkötelező
integer

A találatként kapott rekordok teljes száma.

400

Hibás formátumú kérés: érvénytelen JSON törzs, rossz host (használja a www. hostot), vagy olvashatatlan kérés.

401

A kulcs hiányzik, érvénytelen, visszavonták vagy lejárt, vagy a hozzá tartozó felhasználó már nem aktív.

403

Hiányzó hatókör (scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.

404

Ismeretlen végpont, vagy a rekord nem létezik / nem látható a felhasználó számára.

405

Ezen az útvonalon nem elérhető metódus (a DELETE és a PUT soha nem az; a PATCH csak ott, ahol frissítés is elérhető).

422

A validáció sikertelen volt, vagy ismeretlen mező; a details.fields felsorolja a mezőhibákat.

429

A sebességkorlát túllépve; a Retry-After megadja, mikor próbálja újra.

503

Az iroda átmenetileg nem érhető el (karbantartás vagy beállítás van folyamatban); a Retry-After megadja, mikor próbálja újra.

default

Bármely egyéb hiba, ugyanabban a burokban.

Kérésminták

curl 'https://www.flowyer.hu/api/agent/matters/1234/emails?q=invoice&limit=25' \
  -H 'Authorization: Bearer flw_...'

Válaszminták

{
  "data": [
    {
      "id": 1234,
      "from_name": "string",
      "from_address": "string",
      "subject": "string",
      "sent_at": "2026-10-30T09:15:00+01:00",
      "size": 0,
      "extension": "string",
      "saved_by_user_id": 1234,
      "saved_by": "string",
      "created_at": "2026-10-30T09:15:00+01:00"
    }
  ],
  "pagination": {
    "limit": 25,
    "offset": 0,
    "total": 1
  }
}

E-mail lekérése

GET /api/agent/emails/{id}

Visszaad egy ügyhöz mentett e-mailt a sima szöveges törzsével (feladó, tárgy, méret és hogy ki mentette el). A nyers HTML törzs soha nem kerül visszaadásra. 404 választ ad, ha az e-mail nem létezik, vagy az ügye nem látható az API-kulcsot birtokló felhasználó számára.

Hatókör
emails:read
Flowyer-jogosultság
emails:read

Útvonal-paraméterek

idkötelező
integer>= 1

E-mail azonosító.

Példa: 1234

Válaszok

200

OK.

datakötelező
object
data mezői
id
integer
Példa: 1234
matter
object | null

Az ügy, amely alá az e-mail iktatva van, vagy null egy ügy nélküli e-mail esetén (bármely ügyön kívül mentve).

matter mezői
id
integer
case_number
string
from_name
string | null

A külső fél megjelenített neve (soha nem munkatárs; a tároló nem rendelkezik iránymezővel).

from_address
string | null

A külső fél SMTP címe.

subject
string | null
body
string | null

Az üzenet törzse sima szövegként. A nyers HTML törzs szándékosan soha nem kerül visszaadásra (nem megbízható, harmadik féltől származó HTML). Legjobb igyekezet szerinti sima szöveg: ha az eredeti HTML <style>/<script> elemeket tartalmazott, azok belső szövege megmaradhat benne.

sent_at
string <date-time> | null

Amikor az üzenetet elküldték. Az időzóna a beérkezési úttól függően ingadozik (az IMAP UTC-t tárol, az Outlook bővítmény iroda-zóna szerinti faliórás időt); a created_at a megbízható időbélyeg.

size
integer | null

A tárolt .eml/.msg fájl mérete bájtban.

extension
string | null

"msg" vagy "eml"; néhány régi soron null.

saved_by_user_id
integer | null

Annak a munkatársnak a felhasználóazonosítója, aki az e-mailt a Flowyerbe mentette.

saved_by
string | null

Az adott munkatárs megjelenített neve.

created_at
string <date-time> | null

Amikor az e-mailt a Flowyerbe mentették (iroda-zóna szerinti faliórás idő).

updated_at
string <date-time> | null
400

Hibás formátumú kérés: érvénytelen JSON törzs, rossz host (használja a www. hostot), vagy olvashatatlan kérés.

401

A kulcs hiányzik, érvénytelen, visszavonták vagy lejárt, vagy a hozzá tartozó felhasználó már nem aktív.

403

Hiányzó hatókör (scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.

404

Ismeretlen végpont, vagy a rekord nem létezik / nem látható a felhasználó számára.

405

Ezen az útvonalon nem elérhető metódus (a DELETE és a PUT soha nem az; a PATCH csak ott, ahol frissítés is elérhető).

422

A validáció sikertelen volt, vagy ismeretlen mező; a details.fields felsorolja a mezőhibákat.

429

A sebességkorlát túllépve; a Retry-After megadja, mikor próbálja újra.

503

Az iroda átmenetileg nem érhető el (karbantartás vagy beállítás van folyamatban); a Retry-After megadja, mikor próbálja újra.

default

Bármely egyéb hiba, ugyanabban a burokban.

Kérésminták

curl 'https://www.flowyer.hu/api/agent/emails/1234' \
  -H 'Authorization: Bearer flw_...'

Válaszminták

{
  "data": {
    "id": 1234,
    "matter": {
      "id": 1234,
      "case_number": "string"
    },
    "from_name": "string",
    "from_address": "string",
    "subject": "string",
    "body": "string",
    "sent_at": "2026-10-30T09:15:00+01:00",
    "size": 0,
    "extension": "string",
    "saved_by_user_id": 1234,
    "saved_by": "string",
    "created_at": "2026-10-30T09:15:00+01:00",
    "updated_at": "2026-10-30T09:15:00+01:00"
  }
}

Pertörténet

Ügy pertörténetének listázása

GET /api/agent/matters/{id}/litigation

Listázza egy ügy pertörténeti bejegyzéseit, a legújabb eseménytől kezdve: egy dátummal ellátott jegyzet címmel, HTML leírással és helyszínnel. 404 választ ad, ha az ügy nem látható a felhasználó számára.

Hatókör
litigation:read
Flowyer-jogosultság
cases:read

Útvonal-paraméterek

idkötelező
integer>= 1

Az ügy azonosítója.

Példa: 1234

Lekérdezési paraméterek

limit
integer>= 1<= 100

Oldalméret, 1-100. Alapértelmezés: 25.

Alapértelmezés: 25
Példa: 25
offset
integer>= 0

A kihagyandó rekordok száma. Az előző oldal offset + limit értékével jut el a következő oldalra; a pagination.total a teljes darabszámot adja meg.

Alapértelmezés: 0
Példa: 0

Válaszok

200

OK.

datakötelező
object[]
data mezői
id
integer
Példa: 4521
title
string

A bejegyzés címe. Egyszerű szöveg.

Példa: "Első tárgyalás elhalasztva"
description
string | null

A bejegyzés részletei formázott HTML-ként, a szerveroldalon megtisztítva.

location
string | null

Hol történt (egyszerű szöveg), például egy tárgyalóterem; nullázható.

event_date
string <date> | null

A bejegyzés napja, YYYY-MM-DD. A Flowyer csak a dátumot rögzíti, a napszakot nem.

user_id
integer | null

Szerző (a felhasználó, aki a bejegyzést létrehozta).

created_by
string | null

A szerző megjelenített neve.

last_editor_id
integer | null

A felhasználó, aki utoljára szerkesztette a bejegyzést.

last_editor
string | null

Az utolsó szerkesztő megjelenített neve.

created_at
string <date-time> | null
updated_at
string <date-time> | null

Adja át ezt a litigation.update hívásnak expected_updated_at értékként.

created_via_api
object | null

Akkor van jelen, ha a bejegyzést külső ügynök hozta létre ezen az API-n keresztül.

created_via_api mezői
kind
string

"key": statikus API-kulccsal létrehozva; "oauth": OAuth-on keresztül csatlakoztatott alkalmazás által létrehozva.

Lehetséges értékek: "key" "oauth"
key_id
integer

Az API-kulcs ("key" típus) vagy a csatlakoztatott alkalmazás ("oauth" típus) azonosítója; a kettő számozása külön történik.

key_name
string

Az a név, amelyet a felhasználó adott az API-kulcsnak, például "Grok integration", vagy a csatlakoztatott alkalmazás neve "oauth" típus esetén, például "Claude".

user_id
integer
user
string | null
at
string <date-time> | null
paginationkötelező
object
pagination mezői
limitkötelező
integer
offsetkötelező
integer
totalkötelező
integer

A találatként kapott rekordok teljes száma.

400

Hibás formátumú kérés: érvénytelen JSON törzs, rossz host (használja a www. hostot), vagy olvashatatlan kérés.

401

A kulcs hiányzik, érvénytelen, visszavonták vagy lejárt, vagy a hozzá tartozó felhasználó már nem aktív.

403

Hiányzó hatókör (scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.

404

Ismeretlen végpont, vagy a rekord nem létezik / nem látható a felhasználó számára.

405

Ezen az útvonalon nem elérhető metódus (a DELETE és a PUT soha nem az; a PATCH csak ott, ahol frissítés is elérhető).

422

A validáció sikertelen volt, vagy ismeretlen mező; a details.fields felsorolja a mezőhibákat.

429

A sebességkorlát túllépve; a Retry-After megadja, mikor próbálja újra.

503

Az iroda átmenetileg nem érhető el (karbantartás vagy beállítás van folyamatban); a Retry-After megadja, mikor próbálja újra.

default

Bármely egyéb hiba, ugyanabban a burokban.

Kérésminták

curl 'https://www.flowyer.hu/api/agent/matters/1234/litigation?limit=25' \
  -H 'Authorization: Bearer flw_...'

Válaszminták

{
  "data": [
    {
      "id": 4521,
      "title": "Első tárgyalás elhalasztva",
      "description": "string",
      "location": "string",
      "event_date": "2026-10-30",
      "user_id": 1234,
      "created_by": "string",
      "last_editor_id": 1234,
      "last_editor": "string",
      "created_at": "2026-10-30T09:15:00+01:00",
      "updated_at": "2026-10-30T09:15:00+01:00",
      "created_via_api": {
        "kind": "key",
        "key_id": 1234,
        "key_name": "string",
        "user_id": 1234,
        "user": "string",
        "at": "2026-10-30T09:15:00+01:00"
      }
    }
  ],
  "pagination": {
    "limit": 25,
    "offset": 0,
    "total": 1
  }
}

Pertörténeti bejegyzés létrehozása

POST /api/agent/matters/{id}/litigation

Hozzáad egy pertörténeti bejegyzést egy ügyhöz: egy cím (egyszerű szöveg, a "<"/">" nem engedélyezett), egy opcionális HTML leírás (a szerveroldalon megtisztítva), egy opcionális helyszín és egy eseménydátum (alapértelmezés szerint a mai nap). 404 választ ad, ha az ügy nem látható.

Hatókör
litigation:create
Flowyer-jogosultság
cases:create

Útvonal-paraméterek

idkötelező
integer>= 1

Az ügy, amelyhez a bejegyzés tartozik (láthatónak kell lennie).

Példa: 1234

Fejléc-paraméterek

Idempotency-Key
stringlegfeljebb 128 karakter

Minden létrehozásnál ajánlott. Logikai műveletenként egyedi érték (például egy UUID). Ugyanaz az érték ugyanazt a rekordot adja vissza: az azzal való újrapróbálkozás az először létrehozott rekordot adja vissza ahelyett, hogy egy másodikat hozna létre. A különböző értékek mindig különböző rekordokat hoznak létre. Azok az ügyfelek, amelyek nem tudnak fejléceket küldeni, ugyanazt az értéket átadhatják az idempotency_key törzsmezőben. Betűk, számjegyek, _, -, : vagy ., legfeljebb 128 karakter.

Minta: ^[A-Za-z0-9_\-:.]{1,128}$

Kérés törzse application/json

titlekötelező
stringlegalább 1 karakterlegfeljebb 2000 karakter

A bejegyzés címe, legfeljebb 2000 karakter. Egyszerű szöveg; a "<" és a ">" nem engedélyezett.

Minta: ^[^<>]*$
Példa: "Első tárgyalás elhalasztva"
description
string | null

A bejegyzés részletei. Formázott HTML, a szerveroldalon a tudásbázis profiljával megtisztítva.

location
string | nulllegfeljebb 255 karakter

Hol történt (egyszerű szöveg, legfeljebb 255 karakter); a "<" és a ">" nem engedélyezett.

Minta: ^[^<>]*$
Példa: "Fővárosi Törvényszék, 215. tárgyaló"
event_date
string <date> | null

A bejegyzés napja, YYYY-MM-DD. Alapértelmezés szerint a mai nap (az iroda időzónája).

Példa: "2026-11-15"
idempotency_key
stringlegfeljebb 128 karakter

Ugyanaz a szerepe, mint az Idempotency-Key fejlécnek, azon ügyfelek számára, amelyek nem tudnak egyéni fejléceket küldeni. Betűk, számjegyek, _, -, : vagy ., legfeljebb 128 karakter.

Minta: ^[A-Za-z0-9_\-:.]{1,128}$
Példa: "b8f1c2e0-6f7a-4d2e-9c1b-2a3d4e5f6a7b"

Válaszok

201

Létrehozva.

datakötelező
object
data mezői
id
integer
Példa: 4521
title
string

A bejegyzés címe. Egyszerű szöveg.

Példa: "Első tárgyalás elhalasztva"
description
string | null

A bejegyzés részletei formázott HTML-ként, a szerveroldalon megtisztítva.

location
string | null

Hol történt (egyszerű szöveg), például egy tárgyalóterem; nullázható.

event_date
string <date> | null

A bejegyzés napja, YYYY-MM-DD. A Flowyer csak a dátumot rögzíti, a napszakot nem.

user_id
integer | null

Szerző (a felhasználó, aki a bejegyzést létrehozta).

created_by
string | null

A szerző megjelenített neve.

last_editor_id
integer | null

A felhasználó, aki utoljára szerkesztette a bejegyzést.

last_editor
string | null

Az utolsó szerkesztő megjelenített neve.

created_at
string <date-time> | null
updated_at
string <date-time> | null

Adja át ezt a litigation.update hívásnak expected_updated_at értékként.

created_via_api
object | null

Akkor van jelen, ha a bejegyzést külső ügynök hozta létre ezen az API-n keresztül.

created_via_api mezői
kind
string

"key": statikus API-kulccsal létrehozva; "oauth": OAuth-on keresztül csatlakoztatott alkalmazás által létrehozva.

Lehetséges értékek: "key" "oauth"
key_id
integer

Az API-kulcs ("key" típus) vagy a csatlakoztatott alkalmazás ("oauth" típus) azonosítója; a kettő számozása külön történik.

key_name
string

Az a név, amelyet a felhasználó adott az API-kulcsnak, például "Grok integration", vagy a csatlakoztatott alkalmazás neve "oauth" típus esetén, például "Claude".

user_id
integer
user
string | null
at
string <date-time> | null
created
boolean
Érték: true
200

Idempotens visszajátszás: ez az Idempotency-Key (vagy kulcs nélkül egy azonos kérés 120 másodpercen belül) már létrehozta a rekordot; a rendszer újra visszaadja, semmi új nem jött létre.

datakötelező
object
data mezői
id
integer
Példa: 4521
title
string

A bejegyzés címe. Egyszerű szöveg.

Példa: "Első tárgyalás elhalasztva"
description
string | null

A bejegyzés részletei formázott HTML-ként, a szerveroldalon megtisztítva.

location
string | null

Hol történt (egyszerű szöveg), például egy tárgyalóterem; nullázható.

event_date
string <date> | null

A bejegyzés napja, YYYY-MM-DD. A Flowyer csak a dátumot rögzíti, a napszakot nem.

user_id
integer | null

Szerző (a felhasználó, aki a bejegyzést létrehozta).

created_by
string | null

A szerző megjelenített neve.

last_editor_id
integer | null

A felhasználó, aki utoljára szerkesztette a bejegyzést.

last_editor
string | null

Az utolsó szerkesztő megjelenített neve.

created_at
string <date-time> | null
updated_at
string <date-time> | null

Adja át ezt a litigation.update hívásnak expected_updated_at értékként.

created_via_api
object | null

Akkor van jelen, ha a bejegyzést külső ügynök hozta létre ezen az API-n keresztül.

created_via_api mezői
kind
string

"key": statikus API-kulccsal létrehozva; "oauth": OAuth-on keresztül csatlakoztatott alkalmazás által létrehozva.

Lehetséges értékek: "key" "oauth"
key_id
integer

Az API-kulcs ("key" típus) vagy a csatlakoztatott alkalmazás ("oauth" típus) azonosítója; a kettő számozása külön történik.

key_name
string

Az a név, amelyet a felhasználó adott az API-kulcsnak, például "Grok integration", vagy a csatlakoztatott alkalmazás neve "oauth" típus esetén, például "Claude".

user_id
integer
user
string | null
at
string <date-time> | null
created
boolean
Érték: false
idempotent_replay
boolean
Érték: true
400

Hibás formátumú kérés: érvénytelen JSON törzs, rossz host (használja a www. hostot), vagy olvashatatlan kérés.

401

A kulcs hiányzik, érvénytelen, visszavonták vagy lejárt, vagy a hozzá tartozó felhasználó már nem aktív.

403

Hiányzó hatókör (scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.

404

Ismeretlen végpont, vagy a rekord nem létezik / nem látható a felhasználó számára. replay_not_visible: ez az Idempotency-Key (vagy kulcs nélkül egy azonos kérés) már létrehozta a rekordot (details.record_id), de azt azóta törölték, vagy nem látható a felhasználó számára; semmi új nem jött létre, ne hozza létre újra.

405

Ezen az útvonalon nem elérhető metódus (a DELETE és a PUT soha nem az; a PATCH csak ott, ahol frissítés is elérhető).

409

Az Idempotency-Key kulcsot egy másik erőforrástípushoz használták (idempotency_key_reused), vagy kulcs nélkül egy azonos kérés feldolgozása éppen most zajlik (duplicate_in_progress; próbálja újra rövidesen).

413

A kérés törzse túl nagy (request_too_large).

422

A validáció sikertelen volt, vagy ismeretlen mező; a details.fields felsorolja a mezőhibákat.

429

A sebességkorlát túllépve; a Retry-After megadja, mikor próbálja újra.

503

Az iroda átmenetileg nem érhető el (karbantartás vagy beállítás van folyamatban); a Retry-After megadja, mikor próbálja újra.

default

Bármely egyéb hiba, ugyanabban a burokban.

Kérésminták

curl -X POST 'https://www.flowyer.hu/api/agent/matters/1234/litigation' \
  -H 'Authorization: Bearer flw_...' \
  -H 'Content-Type: application/json' \
  -H 'Idempotency-Key: 7f3a9c21-1b2c-4d5e-8f90-0a1b2c3d4e5f' \
  -d '{
  "title": "Első tárgyalás elhalasztva",
  "location": "Fővárosi Törvényszék, 215. tárgyaló",
  "event_date": "2026-11-15"
}'

Válaszminták

{
  "data": {
    "id": 4521,
    "title": "Első tárgyalás elhalasztva",
    "description": "string",
    "location": "string",
    "event_date": "2026-10-30",
    "user_id": 1234,
    "created_by": "string",
    "last_editor_id": 1234,
    "last_editor": "string",
    "created_at": "2026-10-30T09:15:00+01:00",
    "updated_at": "2026-10-30T09:15:00+01:00",
    "created_via_api": {
      "kind": "key",
      "key_id": 1234,
      "key_name": "string",
      "user_id": 1234,
      "user": "string",
      "at": "2026-10-30T09:15:00+01:00"
    }
  },
  "created": true
}

Pertörténeti bejegyzés módosítása

PATCH /api/agent/litigation/{id}

Módosít egy pertörténeti bejegyzést: cím, leírás, helyszín vagy eseménydátum. Csak az elküldött mezők kerülnek kiírásra; a leírás a szerveroldalon megtisztításra kerül. Adja meg az expected_updated_at értéket a legutóbbi olvasásából; ütköző módosítás esetén a válasz 409.

Hatókör
litigation:update
Flowyer-jogosultság
cases:modify

Útvonal-paraméterek

idkötelező
integer>= 1

A módosítandó rekord azonosítója.

Kérés törzse application/json

expected_updated_at
string <date-time> | null

A rekord legutóbbi olvasásából származó updated_at érték (minden esetben kötelező, ha a rekordnak van ilyen). Ha a rekord azóta megváltozott (egy kolléga szerkesztette), az API 409-et ad válaszul, és újra kell olvasnia, mielőtt újrapróbálkozna. Egy olyan régebbi rekord, amelynek az updated_at értéke null, a null értéket veszi fel.

title
string | nulllegalább 1 karakterlegfeljebb 2000 karakter

Új cím, legfeljebb 2000 karakter (egyszerű szöveg; a "<"/">" nem engedélyezett). Hagyja el az aktuális megtartásához.

Minta: ^[^<>]*$
Példa: "Ítélethirdetés elhalasztva"
description
string | null

Új részletek (formázott HTML, megtisztítva). Hagyja el az aktuális megtartásához; a null/üres törli.

location
string | nulllegfeljebb 255 karakter

Új helyszín (egyszerű szöveg, legfeljebb 255 karakter; a "<"/">" nem engedélyezett). Hagyja el a megtartásához; a null/üres törli.

Minta: ^[^<>]*$
event_date
string <date> | null

Új eseménynap, YYYY-MM-DD. Hagyja el a megtartásához; a null törli.

Válaszok

200

Frissítve.

datakötelező
object
data mezői
id
integer
Példa: 4521
title
string

A bejegyzés címe. Egyszerű szöveg.

Példa: "Első tárgyalás elhalasztva"
description
string | null

A bejegyzés részletei formázott HTML-ként, a szerveroldalon megtisztítva.

location
string | null

Hol történt (egyszerű szöveg), például egy tárgyalóterem; nullázható.

event_date
string <date> | null

A bejegyzés napja, YYYY-MM-DD. A Flowyer csak a dátumot rögzíti, a napszakot nem.

user_id
integer | null

Szerző (a felhasználó, aki a bejegyzést létrehozta).

created_by
string | null

A szerző megjelenített neve.

last_editor_id
integer | null

A felhasználó, aki utoljára szerkesztette a bejegyzést.

last_editor
string | null

Az utolsó szerkesztő megjelenített neve.

created_at
string <date-time> | null
updated_at
string <date-time> | null

Adja át ezt a litigation.update hívásnak expected_updated_at értékként.

created_via_api
object | null

Akkor van jelen, ha a bejegyzést külső ügynök hozta létre ezen az API-n keresztül.

created_via_api mezői
kind
string

"key": statikus API-kulccsal létrehozva; "oauth": OAuth-on keresztül csatlakoztatott alkalmazás által létrehozva.

Lehetséges értékek: "key" "oauth"
key_id
integer

Az API-kulcs ("key" típus) vagy a csatlakoztatott alkalmazás ("oauth" típus) azonosítója; a kettő számozása külön történik.

key_name
string

Az a név, amelyet a felhasználó adott az API-kulcsnak, például "Grok integration", vagy a csatlakoztatott alkalmazás neve "oauth" típus esetén, például "Claude".

user_id
integer
user
string | null
at
string <date-time> | null
updated
boolean
Érték: true
400

Hibás formátumú kérés: érvénytelen JSON törzs, rossz host (használja a www. hostot), vagy olvashatatlan kérés.

401

A kulcs hiányzik, érvénytelen, visszavonták vagy lejárt, vagy a hozzá tartozó felhasználó már nem aktív.

403

Hiányzó hatókör (scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.

404

Ismeretlen végpont, vagy a rekord nem létezik / nem látható a felhasználó számára.

405

Ezen az útvonalon nem elérhető metódus (a DELETE és a PUT soha nem az; a PATCH csak ott, ahol frissítés is elérhető).

409

A rekord megváltozott, mióta beolvasta (record_conflict: az expected_updated_at már nem egyezik; olvassa be újra, és próbálja újra az új updated_at értékkel).

413

A kérés törzse túl nagy (request_too_large).

422

A validáció sikertelen volt, vagy ismeretlen mező; a details.fields felsorolja a mezőhibákat.

429

A sebességkorlát túllépve; a Retry-After megadja, mikor próbálja újra.

503

Az iroda átmenetileg nem érhető el (karbantartás vagy beállítás van folyamatban); a Retry-After megadja, mikor próbálja újra.

default

Bármely egyéb hiba, ugyanabban a burokban.

Kérésminták

curl -X PATCH 'https://www.flowyer.hu/api/agent/litigation/1234' \
  -H 'Authorization: Bearer flw_...' \
  -H 'Content-Type: application/json' \
  -d '{
  "expected_updated_at": "2026-10-30T09:15:00+01:00",
  "title": "Ítélethirdetés elhalasztva"
}'

Válaszminták

{
  "data": {
    "id": 4521,
    "title": "Első tárgyalás elhalasztva",
    "description": "string",
    "location": "string",
    "event_date": "2026-10-30",
    "user_id": 1234,
    "created_by": "string",
    "last_editor_id": 1234,
    "last_editor": "string",
    "created_at": "2026-10-30T09:15:00+01:00",
    "updated_at": "2026-10-30T09:15:00+01:00",
    "created_via_api": {
      "kind": "key",
      "key_id": 1234,
      "key_name": "string",
      "user_id": 1234,
      "user": "string",
      "at": "2026-10-30T09:15:00+01:00"
    }
  },
  "updated": true
}

Postakönyv

Postakönyv listázása

GET /api/agent/mail-register

Listázza a felhasználó számára látható ügyekhez iktatott Postakönyv-bejegyzéseket, a legújabbtól kezdve. Szűrhet ügyre, irányra, szabad szövegre (tárgy/feladó/címzett/nyomkövetési szám) és dátumtartományra. Az archivált ügyek levelei rejtve maradnak, kivéve, ha az include_archived értéke true.

Hatókör
mail_register:read
Flowyer-jogosultság
mail:read

Lekérdezési paraméterek

matter_id
integer>= 1

Csak ennek az ügynek a bejegyzései (láthatónak kell lennie a felhasználó számára).

Példa: 1234
direction
string

Csak a bejövő (beérkezett) vagy kimenő (elküldött) bejegyzések.

Lehetséges értékek: "incoming" "outgoing"
q
stringlegfeljebb 100 karakter

Szabad szöveges keresés a tárgyban, a feladóban, a címzettben, a fogadóban és a nyomkövetési számban (a kis-/nagybetű figyelmen kívül hagyva).

Példa: "Kúria"
date_from
string <date>

Csak azok a bejegyzések, amelyek dátuma ezen a napon vagy azután van (YYYY-MM-DD).

Példa: "2026-01-01"
date_to
string <date>

Csak azok a bejegyzések, amelyek dátuma ezen a napon vagy azelőtt van (YYYY-MM-DD).

Példa: "2026-12-31"
updated_since
string <date-time>

Csak az ezen időpontban vagy azt követően módosított bejegyzések (ISO 8601).

Példa: "2026-10-01T00:00:00+02:00"
include_archived
boolean

Az archivált ügyek bejegyzései is szerepeljenek.

Alapértelmezés: false
limit
integer>= 1<= 100

Oldalméret, 1-100. Alapértelmezés: 25.

Alapértelmezés: 25
Példa: 25
offset
integer>= 0

A kihagyandó rekordok száma. Az előző oldal offset + limit értékével jut el a következő oldalra; a pagination.total a teljes darabszámot adja meg.

Alapértelmezés: 0
Példa: 0

Válaszok

200

OK.

datakötelező
object[]
data mezői
id
integer

Postakönyv-bejegyzés azonosítója (a mail_register.get / .update hívással használható).

Példa: 4321
matter
object | null

Az ügy, amelyhez a bejegyzés iktatva van.

matter mezői
id
integer
case_number
string
direction
string

incoming = beérkezett, outgoing = elküldött.

Lehetséges értékek: "incoming" "outgoing"
date
string <date> | null

Postai/rögzítési dátum, YYYY-MM-DD (napszak nélkül).

subject
string | null
sender
string | null

Feladó: a küldő (szabad szöveg).

to
string | null

Címzett: a címzett (szabad szöveg).

recipient
string | null

Bejövő levél esetén: az átvevő munkatárs megjelenített neve. Kimenő levél esetén: a szabad szöveges címzett/átvevő.

recipient_user_id
integer | null

Csak olyan bejövő levélnél van beállítva, amelynek a fogadója egy munkatárs (egy felhasználóazonosító); kimenő levél esetén null.

electronic
boolean

true, ha a tételt elektronikusként rögzítették (type_of_mail).

delivery_method_id
integer | null

A kézbesítési mód azonosítója (mail_delivery_methods).

delivery_method
string | null

Lokalizált kézbesítésimód-címke (Posta, Cégkapu, Perkapu, ...), vagy az elektronikus/nem elektronikus tartalékérték egy régi sor esetén.

tracking_no
string | null

Azonosító: nyomkövetési szám.

folder_path
string | null
recorded_by_user_id
integer | null

A munkatárs, aki a bejegyzést rögzítette.

recorded_by
string | null
created_at
string <date-time> | null
updated_at
string <date-time> | null

Adja át ezt a mail_register.update hívásnak expected_updated_at értékként.

created_via_api
object | null

Akkor van jelen, ha a bejegyzést külső ügynök hozta létre ezen az API-n keresztül.

created_via_api mezői
kind
string

"key": statikus API-kulccsal létrehozva; "oauth": OAuth-on keresztül csatlakoztatott alkalmazás által létrehozva.

Lehetséges értékek: "key" "oauth"
key_id
integer

Az API-kulcs ("key" típus) vagy a csatlakoztatott alkalmazás ("oauth" típus) azonosítója; a kettő számozása külön történik.

key_name
string

Az a név, amelyet a felhasználó adott az API-kulcsnak, például "Grok integration", vagy a csatlakoztatott alkalmazás neve "oauth" típus esetén, például "Claude".

user_id
integer
user
string | null
at
string <date-time> | null
paginationkötelező
object
pagination mezői
limitkötelező
integer
offsetkötelező
integer
totalkötelező
integer

A találatként kapott rekordok teljes száma.

400

Hibás formátumú kérés: érvénytelen JSON törzs, rossz host (használja a www. hostot), vagy olvashatatlan kérés.

401

A kulcs hiányzik, érvénytelen, visszavonták vagy lejárt, vagy a hozzá tartozó felhasználó már nem aktív.

403

Hiányzó hatókör (scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.

404

Ismeretlen végpont, vagy a rekord nem létezik / nem látható a felhasználó számára.

405

Ezen az útvonalon nem elérhető metódus (a DELETE és a PUT soha nem az; a PATCH csak ott, ahol frissítés is elérhető).

422

A validáció sikertelen volt, vagy ismeretlen mező; a details.fields felsorolja a mezőhibákat.

429

A sebességkorlát túllépve; a Retry-After megadja, mikor próbálja újra.

503

Az iroda átmenetileg nem érhető el (karbantartás vagy beállítás van folyamatban); a Retry-After megadja, mikor próbálja újra.

default

Bármely egyéb hiba, ugyanabban a burokban.

Kérésminták

curl 'https://www.flowyer.hu/api/agent/mail-register?matter_id=1234&q=K%C3%BAria&date_from=2026-01-01' \
  -H 'Authorization: Bearer flw_...'

Válaszminták

{
  "data": [
    {
      "id": 4321,
      "matter": {
        "id": 1234,
        "case_number": "string"
      },
      "direction": "incoming",
      "date": "2026-10-30",
      "subject": "string",
      "sender": "string",
      "to": "string",
      "recipient": "string",
      "recipient_user_id": 1234,
      "electronic": true,
      "delivery_method_id": 1234,
      "delivery_method": "string",
      "tracking_no": "string",
      "folder_path": "string",
      "recorded_by_user_id": 1234,
      "recorded_by": "string",
      "created_at": "2026-10-30T09:15:00+01:00",
      "updated_at": "2026-10-30T09:15:00+01:00",
      "created_via_api": {
        "kind": "key",
        "key_id": 1234,
        "key_name": "string",
        "user_id": 1234,
        "user": "string",
        "at": "2026-10-30T09:15:00+01:00"
      }
    }
  ],
  "pagination": {
    "limit": 25,
    "offset": 0,
    "total": 1
  }
}

Postakönyv-bejegyzés lekérése

GET /api/agent/mail-register/{id}

Visszaad egy Postakönyv-bejegyzést azonosító alapján, az updated_at értékével együtt (azzal a tokennel, amelyet a mail_register.update elfogad). 404 választ ad, ha a bejegyzés nem létezik, vagy az ügye nem látható a felhasználó számára.

Hatókör
mail_register:read
Flowyer-jogosultság
mail:read

Útvonal-paraméterek

idkötelező
integer>= 1

Postakönyv-bejegyzés azonosítója.

Példa: 4321

Válaszok

200

OK.

datakötelező
object
data mezői
id
integer

Postakönyv-bejegyzés azonosítója (a mail_register.get / .update hívással használható).

Példa: 4321
matter
object | null

Az ügy, amelyhez a bejegyzés iktatva van.

matter mezői
id
integer
case_number
string
direction
string

incoming = beérkezett, outgoing = elküldött.

Lehetséges értékek: "incoming" "outgoing"
date
string <date> | null

Postai/rögzítési dátum, YYYY-MM-DD (napszak nélkül).

subject
string | null
sender
string | null

Feladó: a küldő (szabad szöveg).

to
string | null

Címzett: a címzett (szabad szöveg).

recipient
string | null

Bejövő levél esetén: az átvevő munkatárs megjelenített neve. Kimenő levél esetén: a szabad szöveges címzett/átvevő.

recipient_user_id
integer | null

Csak olyan bejövő levélnél van beállítva, amelynek a fogadója egy munkatárs (egy felhasználóazonosító); kimenő levél esetén null.

electronic
boolean

true, ha a tételt elektronikusként rögzítették (type_of_mail).

delivery_method_id
integer | null

A kézbesítési mód azonosítója (mail_delivery_methods).

delivery_method
string | null

Lokalizált kézbesítésimód-címke (Posta, Cégkapu, Perkapu, ...), vagy az elektronikus/nem elektronikus tartalékérték egy régi sor esetén.

tracking_no
string | null

Azonosító: nyomkövetési szám.

folder_path
string | null
recorded_by_user_id
integer | null

A munkatárs, aki a bejegyzést rögzítette.

recorded_by
string | null
created_at
string <date-time> | null
updated_at
string <date-time> | null

Adja át ezt a mail_register.update hívásnak expected_updated_at értékként.

created_via_api
object | null

Akkor van jelen, ha a bejegyzést külső ügynök hozta létre ezen az API-n keresztül.

created_via_api mezői
kind
string

"key": statikus API-kulccsal létrehozva; "oauth": OAuth-on keresztül csatlakoztatott alkalmazás által létrehozva.

Lehetséges értékek: "key" "oauth"
key_id
integer

Az API-kulcs ("key" típus) vagy a csatlakoztatott alkalmazás ("oauth" típus) azonosítója; a kettő számozása külön történik.

key_name
string

Az a név, amelyet a felhasználó adott az API-kulcsnak, például "Grok integration", vagy a csatlakoztatott alkalmazás neve "oauth" típus esetén, például "Claude".

user_id
integer
user
string | null
at
string <date-time> | null
400

Hibás formátumú kérés: érvénytelen JSON törzs, rossz host (használja a www. hostot), vagy olvashatatlan kérés.

401

A kulcs hiányzik, érvénytelen, visszavonták vagy lejárt, vagy a hozzá tartozó felhasználó már nem aktív.

403

Hiányzó hatókör (scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.

404

Ismeretlen végpont, vagy a rekord nem létezik / nem látható a felhasználó számára.

405

Ezen az útvonalon nem elérhető metódus (a DELETE és a PUT soha nem az; a PATCH csak ott, ahol frissítés is elérhető).

422

A validáció sikertelen volt, vagy ismeretlen mező; a details.fields felsorolja a mezőhibákat.

429

A sebességkorlát túllépve; a Retry-After megadja, mikor próbálja újra.

503

Az iroda átmenetileg nem érhető el (karbantartás vagy beállítás van folyamatban); a Retry-After megadja, mikor próbálja újra.

default

Bármely egyéb hiba, ugyanabban a burokban.

Kérésminták

curl 'https://www.flowyer.hu/api/agent/mail-register/4321' \
  -H 'Authorization: Bearer flw_...'

Válaszminták

{
  "data": {
    "id": 4321,
    "matter": {
      "id": 1234,
      "case_number": "string"
    },
    "direction": "incoming",
    "date": "2026-10-30",
    "subject": "string",
    "sender": "string",
    "to": "string",
    "recipient": "string",
    "recipient_user_id": 1234,
    "electronic": true,
    "delivery_method_id": 1234,
    "delivery_method": "string",
    "tracking_no": "string",
    "folder_path": "string",
    "recorded_by_user_id": 1234,
    "recorded_by": "string",
    "created_at": "2026-10-30T09:15:00+01:00",
    "updated_at": "2026-10-30T09:15:00+01:00",
    "created_via_api": {
      "kind": "key",
      "key_id": 1234,
      "key_name": "string",
      "user_id": 1234,
      "user": "string",
      "at": "2026-10-30T09:15:00+01:00"
    }
  }
}

Postakönyv-bejegyzés létrehozása

POST /api/agent/mail-register

Iktat egy új Postakönyv-bejegyzést egy ügyön. Használja a recipient_user_id értéket egy munkatárs által átvett bejövő levélhez, vagy a recipient értéket (szabad szöveg) egy kimenőhöz. A delivery_method_id-nek ismert módnak kell lennie. 404 választ ad, ha az ügy nem látható.

Hatókör
mail_register:create
Flowyer-jogosultság
mail:create

Fejléc-paraméterek

Idempotency-Key
stringlegfeljebb 128 karakter

Minden létrehozásnál ajánlott. Logikai műveletenként egyedi érték (például egy UUID). Ugyanaz az érték ugyanazt a rekordot adja vissza: az azzal való újrapróbálkozás az először létrehozott rekordot adja vissza ahelyett, hogy egy másodikat hozna létre. A különböző értékek mindig különböző rekordokat hoznak létre. Azok az ügyfelek, amelyek nem tudnak fejléceket küldeni, ugyanazt az értéket átadhatják az idempotency_key törzsmezőben. Betűk, számjegyek, _, -, : vagy ., legfeljebb 128 karakter.

Minta: ^[A-Za-z0-9_\-:.]{1,128}$

Kérés törzse application/json

matter_idkötelező
integer>= 1

Az ügy, amelyhez a bejegyzés tartozik (láthatónak kell lennie).

Példa: 1234
directionkötelező
string

incoming = beérkezett, outgoing = elküldött.

Lehetséges értékek: "incoming" "outgoing"
datekötelező
string <date>

Postai/rögzítési dátum, YYYY-MM-DD (napszak nélkül).

Példa: "2026-11-03"
subjectkötelező
stringlegalább 1 karakterlegfeljebb 1000 karakter

A levelezés tárgya. Egyszerű szöveg; a "<" és a ">" nem engedélyezett.

Minta: ^[^<>]*$
Példa: "Fellebbezés a Kúriához"
sender
string | nulllegfeljebb 1000 karakter

Feladó: a küldő (szabad szöveg). Egyszerű szöveg; a "<" és a ">" nem engedélyezett.

Minta: ^[^<>]*$
to
string | nulllegfeljebb 1000 karakter

Címzett: a címzett (szabad szöveg). Egyszerű szöveg; a "<" és a ">" nem engedélyezett.

Minta: ^[^<>]*$
recipient
string | nulllegfeljebb 1000 karakter

Kimenő levél: a szabad szöveges címzett/átvevő. A recipient_user_id-vel együtt nem engedélyezett. Egyszerű szöveg; a "<" és a ">" nem engedélyezett.

Minta: ^[^<>]*$
recipient_user_id
integer | null>= 1

Bejövő levél: a munkatárs, aki átvette (egy felhasználóazonosító a colleagues.list-ből), numerikus fogadóként tárolva. A recipient-tel együtt nem engedélyezett.

electronic
boolean

Hogy a tétel elektronikus-e (type_of_mail); független a kézbesítési módtól. Alapértelmezés false.

Alapértelmezés: false
delivery_method_id
integer | null>= 1

Kézbesítési mód azonosítója (mail_delivery_methods): például 1 Posta, 4 Cégkapu, 7 Perkapu. 422, ha ismeretlen.

tracking_no
string | nulllegfeljebb 255 karakter

Azonosító: nyomkövetési szám. Egyszerű szöveg; a "<" és a ">" nem engedélyezett.

Minta: ^[^<>]*$
folder_path
string | nulllegfeljebb 1000 karakter
Minta: ^[^<>]*$
idempotency_key
stringlegfeljebb 128 karakter

Ugyanaz a szerepe, mint az Idempotency-Key fejlécnek, azon ügyfelek számára, amelyek nem tudnak egyéni fejléceket küldeni. Betűk, számjegyek, _, -, : vagy ., legfeljebb 128 karakter.

Minta: ^[A-Za-z0-9_\-:.]{1,128}$
Példa: "b8f1c2e0-6f7a-4d2e-9c1b-2a3d4e5f6a7b"

Válaszok

201

Létrehozva.

datakötelező
object
data mezői
id
integer

Postakönyv-bejegyzés azonosítója (a mail_register.get / .update hívással használható).

Példa: 4321
matter
object | null

Az ügy, amelyhez a bejegyzés iktatva van.

matter mezői
id
integer
case_number
string
direction
string

incoming = beérkezett, outgoing = elküldött.

Lehetséges értékek: "incoming" "outgoing"
date
string <date> | null

Postai/rögzítési dátum, YYYY-MM-DD (napszak nélkül).

subject
string | null
sender
string | null

Feladó: a küldő (szabad szöveg).

to
string | null

Címzett: a címzett (szabad szöveg).

recipient
string | null

Bejövő levél esetén: az átvevő munkatárs megjelenített neve. Kimenő levél esetén: a szabad szöveges címzett/átvevő.

recipient_user_id
integer | null

Csak olyan bejövő levélnél van beállítva, amelynek a fogadója egy munkatárs (egy felhasználóazonosító); kimenő levél esetén null.

electronic
boolean

true, ha a tételt elektronikusként rögzítették (type_of_mail).

delivery_method_id
integer | null

A kézbesítési mód azonosítója (mail_delivery_methods).

delivery_method
string | null

Lokalizált kézbesítésimód-címke (Posta, Cégkapu, Perkapu, ...), vagy az elektronikus/nem elektronikus tartalékérték egy régi sor esetén.

tracking_no
string | null

Azonosító: nyomkövetési szám.

folder_path
string | null
recorded_by_user_id
integer | null

A munkatárs, aki a bejegyzést rögzítette.

recorded_by
string | null
created_at
string <date-time> | null
updated_at
string <date-time> | null

Adja át ezt a mail_register.update hívásnak expected_updated_at értékként.

created_via_api
object | null

Akkor van jelen, ha a bejegyzést külső ügynök hozta létre ezen az API-n keresztül.

created_via_api mezői
kind
string

"key": statikus API-kulccsal létrehozva; "oauth": OAuth-on keresztül csatlakoztatott alkalmazás által létrehozva.

Lehetséges értékek: "key" "oauth"
key_id
integer

Az API-kulcs ("key" típus) vagy a csatlakoztatott alkalmazás ("oauth" típus) azonosítója; a kettő számozása külön történik.

key_name
string

Az a név, amelyet a felhasználó adott az API-kulcsnak, például "Grok integration", vagy a csatlakoztatott alkalmazás neve "oauth" típus esetén, például "Claude".

user_id
integer
user
string | null
at
string <date-time> | null
created
boolean
Érték: true
200

Idempotens visszajátszás: ez az Idempotency-Key (vagy kulcs nélkül egy azonos kérés 120 másodpercen belül) már létrehozta a rekordot; a rendszer újra visszaadja, semmi új nem jött létre.

datakötelező
object
data mezői
id
integer

Postakönyv-bejegyzés azonosítója (a mail_register.get / .update hívással használható).

Példa: 4321
matter
object | null

Az ügy, amelyhez a bejegyzés iktatva van.

matter mezői
id
integer
case_number
string
direction
string

incoming = beérkezett, outgoing = elküldött.

Lehetséges értékek: "incoming" "outgoing"
date
string <date> | null

Postai/rögzítési dátum, YYYY-MM-DD (napszak nélkül).

subject
string | null
sender
string | null

Feladó: a küldő (szabad szöveg).

to
string | null

Címzett: a címzett (szabad szöveg).

recipient
string | null

Bejövő levél esetén: az átvevő munkatárs megjelenített neve. Kimenő levél esetén: a szabad szöveges címzett/átvevő.

recipient_user_id
integer | null

Csak olyan bejövő levélnél van beállítva, amelynek a fogadója egy munkatárs (egy felhasználóazonosító); kimenő levél esetén null.

electronic
boolean

true, ha a tételt elektronikusként rögzítették (type_of_mail).

delivery_method_id
integer | null

A kézbesítési mód azonosítója (mail_delivery_methods).

delivery_method
string | null

Lokalizált kézbesítésimód-címke (Posta, Cégkapu, Perkapu, ...), vagy az elektronikus/nem elektronikus tartalékérték egy régi sor esetén.

tracking_no
string | null

Azonosító: nyomkövetési szám.

folder_path
string | null
recorded_by_user_id
integer | null

A munkatárs, aki a bejegyzést rögzítette.

recorded_by
string | null
created_at
string <date-time> | null
updated_at
string <date-time> | null

Adja át ezt a mail_register.update hívásnak expected_updated_at értékként.

created_via_api
object | null

Akkor van jelen, ha a bejegyzést külső ügynök hozta létre ezen az API-n keresztül.

created_via_api mezői
kind
string

"key": statikus API-kulccsal létrehozva; "oauth": OAuth-on keresztül csatlakoztatott alkalmazás által létrehozva.

Lehetséges értékek: "key" "oauth"
key_id
integer

Az API-kulcs ("key" típus) vagy a csatlakoztatott alkalmazás ("oauth" típus) azonosítója; a kettő számozása külön történik.

key_name
string

Az a név, amelyet a felhasználó adott az API-kulcsnak, például "Grok integration", vagy a csatlakoztatott alkalmazás neve "oauth" típus esetén, például "Claude".

user_id
integer
user
string | null
at
string <date-time> | null
created
boolean
Érték: false
idempotent_replay
boolean
Érték: true
400

Hibás formátumú kérés: érvénytelen JSON törzs, rossz host (használja a www. hostot), vagy olvashatatlan kérés.

401

A kulcs hiányzik, érvénytelen, visszavonták vagy lejárt, vagy a hozzá tartozó felhasználó már nem aktív.

403

Hiányzó hatókör (scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.

404

Ismeretlen végpont, vagy a rekord nem létezik / nem látható a felhasználó számára. replay_not_visible: ez az Idempotency-Key (vagy kulcs nélkül egy azonos kérés) már létrehozta a rekordot (details.record_id), de azt azóta törölték, vagy nem látható a felhasználó számára; semmi új nem jött létre, ne hozza létre újra.

405

Ezen az útvonalon nem elérhető metódus (a DELETE és a PUT soha nem az; a PATCH csak ott, ahol frissítés is elérhető).

409

Az Idempotency-Key kulcsot egy másik erőforrástípushoz használták (idempotency_key_reused), vagy kulcs nélkül egy azonos kérés feldolgozása éppen most zajlik (duplicate_in_progress; próbálja újra rövidesen).

413

A kérés törzse túl nagy (request_too_large).

422

A validáció sikertelen volt, vagy ismeretlen mező; a details.fields felsorolja a mezőhibákat.

429

A sebességkorlát túllépve; a Retry-After megadja, mikor próbálja újra.

503

Az iroda átmenetileg nem érhető el (karbantartás vagy beállítás van folyamatban); a Retry-After megadja, mikor próbálja újra.

default

Bármely egyéb hiba, ugyanabban a burokban.

Kérésminták

curl -X POST 'https://www.flowyer.hu/api/agent/mail-register' \
  -H 'Authorization: Bearer flw_...' \
  -H 'Content-Type: application/json' \
  -H 'Idempotency-Key: 7f3a9c21-1b2c-4d5e-8f90-0a1b2c3d4e5f' \
  -d '{
  "matter_id": 1234,
  "direction": "incoming",
  "date": "2026-11-03",
  "subject": "Fellebbezés a Kúriához"
}'

Válaszminták

{
  "data": {
    "id": 4321,
    "matter": {
      "id": 1234,
      "case_number": "string"
    },
    "direction": "incoming",
    "date": "2026-10-30",
    "subject": "string",
    "sender": "string",
    "to": "string",
    "recipient": "string",
    "recipient_user_id": 1234,
    "electronic": true,
    "delivery_method_id": 1234,
    "delivery_method": "string",
    "tracking_no": "string",
    "folder_path": "string",
    "recorded_by_user_id": 1234,
    "recorded_by": "string",
    "created_at": "2026-10-30T09:15:00+01:00",
    "updated_at": "2026-10-30T09:15:00+01:00",
    "created_via_api": {
      "kind": "key",
      "key_id": 1234,
      "key_name": "string",
      "user_id": 1234,
      "user": "string",
      "at": "2026-10-30T09:15:00+01:00"
    }
  },
  "created": true
}

Postakönyv-bejegyzés módosítása

PATCH /api/agent/mail-register/{id}

Módosít egy Postakönyv-bejegyzést; csak az elküldött mezők változnak. A bejegyzés az ügyén marad. Adja meg az expected_updated_at értéket a legutóbbi olvasásából; ütköző módosítás esetén a válasz 409. 404 választ ad, ha a bejegyzés nem látható.

Hatókör
mail_register:update
Flowyer-jogosultság
mail:modify

Útvonal-paraméterek

idkötelező
integer>= 1

A módosítandó rekord azonosítója.

Kérés törzse application/json

expected_updated_at
string <date-time> | null

A rekord legutóbbi olvasásából származó updated_at érték (minden esetben kötelező, ha a rekordnak van ilyen). Ha a rekord azóta megváltozott (egy kolléga szerkesztette), az API 409-et ad válaszul, és újra kell olvasnia, mielőtt újrapróbálkozna. Egy olyan régebbi rekord, amelynek az updated_at értéke null, a null értéket veszi fel.

direction
string | null

incoming = beérkezett, outgoing = elküldött.

Lehetséges értékek: "incoming" "outgoing"
date
string <date> | null

Postai/rögzítési dátum, YYYY-MM-DD.

subject
string | nulllegalább 1 karakterlegfeljebb 1000 karakter

Tárgy. Egyszerű szöveg; a "<" és a ">" nem engedélyezett.

Minta: ^[^<>]*$
sender
string | nulllegfeljebb 1000 karakter

Feladó: a küldő (szabad szöveg). Egyszerű szöveg; a "<" és a ">" nem engedélyezett.

Minta: ^[^<>]*$
to
string | nulllegfeljebb 1000 karakter

Címzett: a címzett (szabad szöveg). Egyszerű szöveg; a "<" és a ">" nem engedélyezett.

Minta: ^[^<>]*$
recipient
string | nulllegfeljebb 1000 karakter

Kimenő levél: a szabad szöveges címzett. A recipient_user_id-vel együtt nem engedélyezett. Egyszerű szöveg; a "<" és a ">" nem engedélyezett.

Minta: ^[^<>]*$
recipient_user_id
integer | null>= 1

Bejövő levél: az átvevő munkatárs (egy felhasználóazonosító), numerikus fogadóként tárolva. A recipient-tel együtt nem engedélyezett.

electronic
boolean | null

Hogy a tétel elektronikus-e (type_of_mail).

delivery_method_id
integer | null>= 1

Kézbesítési mód azonosítója (mail_delivery_methods); 422, ha ismeretlen.

tracking_no
string | nulllegfeljebb 255 karakter

Azonosító: nyomkövetési szám. Egyszerű szöveg; a "<" és a ">" nem engedélyezett.

Minta: ^[^<>]*$
folder_path
string | nulllegfeljebb 1000 karakter
Minta: ^[^<>]*$

Válaszok

200

Frissítve.

datakötelező
object
data mezői
id
integer

Postakönyv-bejegyzés azonosítója (a mail_register.get / .update hívással használható).

Példa: 4321
matter
object | null

Az ügy, amelyhez a bejegyzés iktatva van.

matter mezői
id
integer
case_number
string
direction
string

incoming = beérkezett, outgoing = elküldött.

Lehetséges értékek: "incoming" "outgoing"
date
string <date> | null

Postai/rögzítési dátum, YYYY-MM-DD (napszak nélkül).

subject
string | null
sender
string | null

Feladó: a küldő (szabad szöveg).

to
string | null

Címzett: a címzett (szabad szöveg).

recipient
string | null

Bejövő levél esetén: az átvevő munkatárs megjelenített neve. Kimenő levél esetén: a szabad szöveges címzett/átvevő.

recipient_user_id
integer | null

Csak olyan bejövő levélnél van beállítva, amelynek a fogadója egy munkatárs (egy felhasználóazonosító); kimenő levél esetén null.

electronic
boolean

true, ha a tételt elektronikusként rögzítették (type_of_mail).

delivery_method_id
integer | null

A kézbesítési mód azonosítója (mail_delivery_methods).

delivery_method
string | null

Lokalizált kézbesítésimód-címke (Posta, Cégkapu, Perkapu, ...), vagy az elektronikus/nem elektronikus tartalékérték egy régi sor esetén.

tracking_no
string | null

Azonosító: nyomkövetési szám.

folder_path
string | null
recorded_by_user_id
integer | null

A munkatárs, aki a bejegyzést rögzítette.

recorded_by
string | null
created_at
string <date-time> | null
updated_at
string <date-time> | null

Adja át ezt a mail_register.update hívásnak expected_updated_at értékként.

created_via_api
object | null

Akkor van jelen, ha a bejegyzést külső ügynök hozta létre ezen az API-n keresztül.

created_via_api mezői
kind
string

"key": statikus API-kulccsal létrehozva; "oauth": OAuth-on keresztül csatlakoztatott alkalmazás által létrehozva.

Lehetséges értékek: "key" "oauth"
key_id
integer

Az API-kulcs ("key" típus) vagy a csatlakoztatott alkalmazás ("oauth" típus) azonosítója; a kettő számozása külön történik.

key_name
string

Az a név, amelyet a felhasználó adott az API-kulcsnak, például "Grok integration", vagy a csatlakoztatott alkalmazás neve "oauth" típus esetén, például "Claude".

user_id
integer
user
string | null
at
string <date-time> | null
updated
boolean
Érték: true
400

Hibás formátumú kérés: érvénytelen JSON törzs, rossz host (használja a www. hostot), vagy olvashatatlan kérés.

401

A kulcs hiányzik, érvénytelen, visszavonták vagy lejárt, vagy a hozzá tartozó felhasználó már nem aktív.

403

Hiányzó hatókör (scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.

404

Ismeretlen végpont, vagy a rekord nem létezik / nem látható a felhasználó számára.

405

Ezen az útvonalon nem elérhető metódus (a DELETE és a PUT soha nem az; a PATCH csak ott, ahol frissítés is elérhető).

409

A rekord megváltozott, mióta beolvasta (record_conflict: az expected_updated_at már nem egyezik; olvassa be újra, és próbálja újra az új updated_at értékkel).

413

A kérés törzse túl nagy (request_too_large).

422

A validáció sikertelen volt, vagy ismeretlen mező; a details.fields felsorolja a mezőhibákat.

429

A sebességkorlát túllépve; a Retry-After megadja, mikor próbálja újra.

503

Az iroda átmenetileg nem érhető el (karbantartás vagy beállítás van folyamatban); a Retry-After megadja, mikor próbálja újra.

default

Bármely egyéb hiba, ugyanabban a burokban.

Kérésminták

curl -X PATCH 'https://www.flowyer.hu/api/agent/mail-register/1234' \
  -H 'Authorization: Bearer flw_...' \
  -H 'Content-Type: application/json' \
  -d '{
  "expected_updated_at": "2026-10-30T09:15:00+01:00",
  "direction": "incoming"
}'

Válaszminták

{
  "data": {
    "id": 4321,
    "matter": {
      "id": 1234,
      "case_number": "string"
    },
    "direction": "incoming",
    "date": "2026-10-30",
    "subject": "string",
    "sender": "string",
    "to": "string",
    "recipient": "string",
    "recipient_user_id": 1234,
    "electronic": true,
    "delivery_method_id": 1234,
    "delivery_method": "string",
    "tracking_no": "string",
    "folder_path": "string",
    "recorded_by_user_id": 1234,
    "recorded_by": "string",
    "created_at": "2026-10-30T09:15:00+01:00",
    "updated_at": "2026-10-30T09:15:00+01:00",
    "created_via_api": {
      "kind": "key",
      "key_id": 1234,
      "key_name": "string",
      "user_id": 1234,
      "user": "string",
      "at": "2026-10-30T09:15:00+01:00"
    }
  },
  "updated": true
}

Hozzászólások

Ügyhozzászólások listázása

GET /api/agent/matters/{id}/comments

Listázza egy ügy hozzászólásait, a legrégebbitől kezdve: id, szerző, törzs (formázott HTML) és egy válasz parent_id értéke. Lapos, nem beágyazott - építse újra az egy szint mély szálakat a parent_id alapján. Adja meg a top_level_only értéket a válaszok kizárásához. 404 választ ad, ha az ügy nem látható a felhasználó számára.

Hatókör
comments:read
Flowyer-jogosultság
cases:read

Útvonal-paraméterek

idkötelező
integer>= 1

Ügyazonosító (láthatónak kell lennie).

Példa: 1234

Lekérdezési paraméterek

top_level_only
boolean

Csak a legfelső szintű hozzászólások (a válaszok kizárva). Alapértelmezés false.

Alapértelmezés: false
limit
integer>= 1<= 100

Oldalméret, 1-100. Alapértelmezés: 25.

Alapértelmezés: 25
Példa: 25
offset
integer>= 0

A kihagyandó rekordok száma. Az előző oldal offset + limit értékével jut el a következő oldalra; a pagination.total a teljes darabszámot adja meg.

Alapértelmezés: 0
Példa: 0

Válaszok

200

OK.

datakötelező
object[]
data mezői
id
integer
Példa: 9876
matter_id
integer

Az ügy (= case_id), amelyhez a hozzászólás tartozik.

parent_id
integer | null

A legfelső szintű hozzászólás, amelyre ez válaszol; null egy legfelső szintű hozzászólás esetén. A válaszok egy szint mélyek.

author_user_id
integer | null

A szerző felhasználóazonosítója (null egy régi import esetén).

author_name
string | null

A szerző megjelenített neve, vagy null.

body
string

A hozzászólás a tárolt formában: formázott HTML, az ezen az API-n keresztül írt hozzászólások esetén már HTMLPurifierrel megtisztítva.

created_at
string <date-time> | null

Amikor a hozzászólást közzétették, ISO 8601 az iroda zónájában.

updated_at
string <date-time> | null

Optimista zárolási token: adja át a comments.update hívásnak expected_updated_at értékként. Nem megjelenítendő időpont; null egy olyan régi hozzászólás esetén, amelynek nincs ilyen.

edited
boolean

true, ha a hozzászólást a közzététel óta szerkesztették.

paginationkötelező
object
pagination mezői
limitkötelező
integer
offsetkötelező
integer
totalkötelező
integer

A találatként kapott rekordok teljes száma.

400

Hibás formátumú kérés: érvénytelen JSON törzs, rossz host (használja a www. hostot), vagy olvashatatlan kérés.

401

A kulcs hiányzik, érvénytelen, visszavonták vagy lejárt, vagy a hozzá tartozó felhasználó már nem aktív.

403

Hiányzó hatókör (scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.

404

Ismeretlen végpont, vagy a rekord nem létezik / nem látható a felhasználó számára.

405

Ezen az útvonalon nem elérhető metódus (a DELETE és a PUT soha nem az; a PATCH csak ott, ahol frissítés is elérhető).

422

A validáció sikertelen volt, vagy ismeretlen mező; a details.fields felsorolja a mezőhibákat.

429

A sebességkorlát túllépve; a Retry-After megadja, mikor próbálja újra.

503

Az iroda átmenetileg nem érhető el (karbantartás vagy beállítás van folyamatban); a Retry-After megadja, mikor próbálja újra.

default

Bármely egyéb hiba, ugyanabban a burokban.

Kérésminták

curl 'https://www.flowyer.hu/api/agent/matters/1234/comments?limit=25' \
  -H 'Authorization: Bearer flw_...'

Válaszminták

{
  "data": [
    {
      "id": 9876,
      "matter_id": 1234,
      "parent_id": 1234,
      "author_user_id": 1234,
      "author_name": "string",
      "body": "string",
      "created_at": "2026-10-30T09:15:00+01:00",
      "updated_at": "2026-10-30T09:15:00+01:00",
      "edited": true
    }
  ],
  "pagination": {
    "limit": 25,
    "offset": 0,
    "total": 1
  }
}

Ügyhozzászólás közzététele

POST /api/agent/matters/{id}/comments

Közzétesz egy hozzászólást egy ügyön, vagy egy egy szint mély választ (parent_id = az UGYANAZON ügy egy LEGFELSŐ SZINTŰ hozzászólása). A törzs formázott HTML, a szerveroldalon megtisztítva tárolás előtt. 404 választ ad, ha az ügy nem látható, 422-t, ha a parent_id nem az ügy egy legfelső szintű hozzászólása.

Hatókör
comments:create
Flowyer-jogosultság
cases:create

Útvonal-paraméterek

idkötelező
integer>= 1

Ügyazonosító (láthatónak kell lennie).

Példa: 1234

Fejléc-paraméterek

Idempotency-Key
stringlegfeljebb 128 karakter

Minden létrehozásnál ajánlott. Logikai műveletenként egyedi érték (például egy UUID). Ugyanaz az érték ugyanazt a rekordot adja vissza: az azzal való újrapróbálkozás az először létrehozott rekordot adja vissza ahelyett, hogy egy másodikat hozna létre. A különböző értékek mindig különböző rekordokat hoznak létre. Azok az ügyfelek, amelyek nem tudnak fejléceket küldeni, ugyanazt az értéket átadhatják az idempotency_key törzsmezőben. Betűk, számjegyek, _, -, : vagy ., legfeljebb 128 karakter.

Minta: ^[A-Za-z0-9_\-:.]{1,128}$

Kérés törzse application/json

bodykötelező
stringlegalább 1 karakter

A hozzászólás, formázott HTML (ahogyan a TinyMCE előállítja). A szerveroldalon HTMLPurifierrel megtisztítva tárolás előtt. Legfeljebb 100000 karakter.

Példa: "<p>Egyetértek, a határidő tartható.</p>"
parent_id
integer | null>= 1

Válasz az UGYANAZON ügy ezen LEGFELSŐ SZINTŰ hozzászólására (a comments.list-ből, parent_id = null); hagyja el egy új legfelső szintű hozzászóláshoz.

idempotency_key
stringlegfeljebb 128 karakter

Ugyanaz a szerepe, mint az Idempotency-Key fejlécnek, azon ügyfelek számára, amelyek nem tudnak egyéni fejléceket küldeni. Betűk, számjegyek, _, -, : vagy ., legfeljebb 128 karakter.

Minta: ^[A-Za-z0-9_\-:.]{1,128}$
Példa: "b8f1c2e0-6f7a-4d2e-9c1b-2a3d4e5f6a7b"

Válaszok

201

Létrehozva.

datakötelező
object
data mezői
id
integer
Példa: 9876
matter_id
integer

Az ügy (= case_id), amelyhez a hozzászólás tartozik.

parent_id
integer | null

A legfelső szintű hozzászólás, amelyre ez válaszol; null egy legfelső szintű hozzászólás esetén. A válaszok egy szint mélyek.

author_user_id
integer | null

A szerző felhasználóazonosítója (null egy régi import esetén).

author_name
string | null

A szerző megjelenített neve, vagy null.

body
string

A hozzászólás a tárolt formában: formázott HTML, az ezen az API-n keresztül írt hozzászólások esetén már HTMLPurifierrel megtisztítva.

created_at
string <date-time> | null

Amikor a hozzászólást közzétették, ISO 8601 az iroda zónájában.

updated_at
string <date-time> | null

Optimista zárolási token: adja át a comments.update hívásnak expected_updated_at értékként. Nem megjelenítendő időpont; null egy olyan régi hozzászólás esetén, amelynek nincs ilyen.

edited
boolean

true, ha a hozzászólást a közzététel óta szerkesztették.

created
boolean
Érték: true
200

Idempotens visszajátszás: ez az Idempotency-Key (vagy kulcs nélkül egy azonos kérés 120 másodpercen belül) már létrehozta a rekordot; a rendszer újra visszaadja, semmi új nem jött létre.

datakötelező
object
data mezői
id
integer
Példa: 9876
matter_id
integer

Az ügy (= case_id), amelyhez a hozzászólás tartozik.

parent_id
integer | null

A legfelső szintű hozzászólás, amelyre ez válaszol; null egy legfelső szintű hozzászólás esetén. A válaszok egy szint mélyek.

author_user_id
integer | null

A szerző felhasználóazonosítója (null egy régi import esetén).

author_name
string | null

A szerző megjelenített neve, vagy null.

body
string

A hozzászólás a tárolt formában: formázott HTML, az ezen az API-n keresztül írt hozzászólások esetén már HTMLPurifierrel megtisztítva.

created_at
string <date-time> | null

Amikor a hozzászólást közzétették, ISO 8601 az iroda zónájában.

updated_at
string <date-time> | null

Optimista zárolási token: adja át a comments.update hívásnak expected_updated_at értékként. Nem megjelenítendő időpont; null egy olyan régi hozzászólás esetén, amelynek nincs ilyen.

edited
boolean

true, ha a hozzászólást a közzététel óta szerkesztették.

created
boolean
Érték: false
idempotent_replay
boolean
Érték: true
400

Hibás formátumú kérés: érvénytelen JSON törzs, rossz host (használja a www. hostot), vagy olvashatatlan kérés.

401

A kulcs hiányzik, érvénytelen, visszavonták vagy lejárt, vagy a hozzá tartozó felhasználó már nem aktív.

403

Hiányzó hatókör (scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.

404

Ismeretlen végpont, vagy a rekord nem létezik / nem látható a felhasználó számára. replay_not_visible: ez az Idempotency-Key (vagy kulcs nélkül egy azonos kérés) már létrehozta a rekordot (details.record_id), de azt azóta törölték, vagy nem látható a felhasználó számára; semmi új nem jött létre, ne hozza létre újra.

405

Ezen az útvonalon nem elérhető metódus (a DELETE és a PUT soha nem az; a PATCH csak ott, ahol frissítés is elérhető).

409

Az Idempotency-Key kulcsot egy másik erőforrástípushoz használták (idempotency_key_reused), vagy kulcs nélkül egy azonos kérés feldolgozása éppen most zajlik (duplicate_in_progress; próbálja újra rövidesen).

413

A kérés törzse túl nagy (request_too_large).

422

A validáció sikertelen volt, vagy ismeretlen mező; a details.fields felsorolja a mezőhibákat.

429

A sebességkorlát túllépve; a Retry-After megadja, mikor próbálja újra.

503

Az iroda átmenetileg nem érhető el (karbantartás vagy beállítás van folyamatban); a Retry-After megadja, mikor próbálja újra.

default

Bármely egyéb hiba, ugyanabban a burokban.

Kérésminták

curl -X POST 'https://www.flowyer.hu/api/agent/matters/1234/comments' \
  -H 'Authorization: Bearer flw_...' \
  -H 'Content-Type: application/json' \
  -H 'Idempotency-Key: 7f3a9c21-1b2c-4d5e-8f90-0a1b2c3d4e5f' \
  -d '{
  "body": "<p>Egyetértek, a határidő tartható.</p>"
}'

Válaszminták

{
  "data": {
    "id": 9876,
    "matter_id": 1234,
    "parent_id": 1234,
    "author_user_id": 1234,
    "author_name": "string",
    "body": "string",
    "created_at": "2026-10-30T09:15:00+01:00",
    "updated_at": "2026-10-30T09:15:00+01:00",
    "edited": true
  },
  "created": true
}

Saját ügyhozzászólás szerkesztése

PATCH /api/agent/comments/{id}

Szerkeszti az egyik SAJÁT hozzászólását (csak a törzsét; formázott HTML, a szerveroldalon megtisztítva tárolás előtt). Adja meg az expected_updated_at értéket a legutóbbi olvasásából; ütköző módosítás esetén a válasz 409. 404 választ ad olyan hozzászólásra, amely nem az Öné, vagy olyan ügyön van, amelyet nem láthat.

Hatókör
comments:update
Flowyer-jogosultság
cases:modify

Útvonal-paraméterek

idkötelező
integer>= 1

A módosítandó rekord azonosítója.

Kérés törzse application/json

expected_updated_at
string <date-time> | null

A rekord legutóbbi olvasásából származó updated_at érték (minden esetben kötelező, ha a rekordnak van ilyen). Ha a rekord azóta megváltozott (egy kolléga szerkesztette), az API 409-et ad válaszul, és újra kell olvasnia, mielőtt újrapróbálkozna. Egy olyan régebbi rekord, amelynek az updated_at értéke null, a null értéket veszi fel.

bodykötelező
stringlegalább 1 karakter

Új hozzászólás-törzs, formázott HTML (ahogyan a TinyMCE előállítja). A szerveroldalon HTMLPurifierrel megtisztítva tárolás előtt. Legfeljebb 100000 karakter.

Példa: "<p>Pontosítás: a határidő november 15.</p>"

Válaszok

200

Frissítve.

datakötelező
object
data mezői
id
integer
Példa: 9876
matter_id
integer

Az ügy (= case_id), amelyhez a hozzászólás tartozik.

parent_id
integer | null

A legfelső szintű hozzászólás, amelyre ez válaszol; null egy legfelső szintű hozzászólás esetén. A válaszok egy szint mélyek.

author_user_id
integer | null

A szerző felhasználóazonosítója (null egy régi import esetén).

author_name
string | null

A szerző megjelenített neve, vagy null.

body
string

A hozzászólás a tárolt formában: formázott HTML, az ezen az API-n keresztül írt hozzászólások esetén már HTMLPurifierrel megtisztítva.

created_at
string <date-time> | null

Amikor a hozzászólást közzétették, ISO 8601 az iroda zónájában.

updated_at
string <date-time> | null

Optimista zárolási token: adja át a comments.update hívásnak expected_updated_at értékként. Nem megjelenítendő időpont; null egy olyan régi hozzászólás esetén, amelynek nincs ilyen.

edited
boolean

true, ha a hozzászólást a közzététel óta szerkesztették.

updated
boolean
Érték: true
400

Hibás formátumú kérés: érvénytelen JSON törzs, rossz host (használja a www. hostot), vagy olvashatatlan kérés.

401

A kulcs hiányzik, érvénytelen, visszavonták vagy lejárt, vagy a hozzá tartozó felhasználó már nem aktív.

403

Hiányzó hatókör (scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.

404

Ismeretlen végpont, vagy a rekord nem létezik / nem látható a felhasználó számára.

405

Ezen az útvonalon nem elérhető metódus (a DELETE és a PUT soha nem az; a PATCH csak ott, ahol frissítés is elérhető).

409

A rekord megváltozott, mióta beolvasta (record_conflict: az expected_updated_at már nem egyezik; olvassa be újra, és próbálja újra az új updated_at értékkel).

413

A kérés törzse túl nagy (request_too_large).

422

A validáció sikertelen volt, vagy ismeretlen mező; a details.fields felsorolja a mezőhibákat.

429

A sebességkorlát túllépve; a Retry-After megadja, mikor próbálja újra.

503

Az iroda átmenetileg nem érhető el (karbantartás vagy beállítás van folyamatban); a Retry-After megadja, mikor próbálja újra.

default

Bármely egyéb hiba, ugyanabban a burokban.

Kérésminták

curl -X PATCH 'https://www.flowyer.hu/api/agent/comments/1234' \
  -H 'Authorization: Bearer flw_...' \
  -H 'Content-Type: application/json' \
  -d '{
  "expected_updated_at": "2026-10-30T09:15:00+01:00",
  "body": "<p>Pontosítás: a határidő november 15.</p>"
}'

Válaszminták

{
  "data": {
    "id": 9876,
    "matter_id": 1234,
    "parent_id": 1234,
    "author_user_id": 1234,
    "author_name": "string",
    "body": "string",
    "created_at": "2026-10-30T09:15:00+01:00",
    "updated_at": "2026-10-30T09:15:00+01:00",
    "edited": true
  },
  "updated": true
}

Tárgyalások

Ügy tárgyalásainak listázása

GET /api/agent/matters/{id}/trials

Listázza egy ügy tárgyalásait: dátum, bíróság, helyszín, a részt vevő munkatársak és a bíró, a legújabbtól kezdve. Opcionálisan szűrhető egy from/to napi tartományra vagy az updated_since értékre. 404 választ ad, ha az ügy nem látható a felhasználó számára.

Hatókör
trials:read
Flowyer-jogosultság
trials:read

Útvonal-paraméterek

idkötelező
integer>= 1

Az ügy azonosítója.

Példa: 1234

Lekérdezési paraméterek

from
string <date>

Csak az ezen a napon vagy azután lévő tárgyalások (YYYY-MM-DD), az iroda időzónájában.

Példa: "2026-01-01"
to
string <date>

Csak az ezen a napon vagy azelőtt lévő tárgyalások (YYYY-MM-DD), az iroda időzónájában.

Példa: "2026-12-31"
updated_since
string <date-time>

Csak az ezen az ISO 8601 időpontban vagy azt követően módosított tárgyalások.

limit
integer>= 1<= 100

Oldalméret, 1-100. Alapértelmezés: 25.

Alapértelmezés: 25
Példa: 25
offset
integer>= 0

A kihagyandó rekordok száma. Az előző oldal offset + limit értékével jut el a következő oldalra; a pagination.total a teljes darabszámot adja meg.

Alapértelmezés: 0
Példa: 0

Válaszok

200

OK.

datakötelező
object[]
data mezői
id
integer
Példa: 4321
matter
object

Az ügy (eset), amelyhez a tárgyalás tartozik.

matter mezői
id
integer
case_number
string
date
string <date-time> | null

A tárgyalás dátuma és ideje, ISO 8601 az iroda időzónájában. UTC-ben van tárolva, ezért az időpontokat hasonlítsa össze, ne a faliórás szöveget.

Példa: "2026-03-02T09:00:00+01:00"
participation
string | null

Hogy egy munkatárs részvétele kötelező-e: "required", "not_required", vagy null, ha nincs beállítva.

Lehetséges értékek: "required" "not_required"
court
object | null

A tárgyalás bírósága, a megosztott bírósági nyilvántartásból feloldva; null, ha nincs bíróság beállítva.

court mezői
id
integer
name
string
city
string | null
zip
string | null
address
string | null
source
string

Mindig "registry": a bíróság a megosztott bírósági nyilvántartásra (courts.list) hivatkozik, nem szabad szöveg.

place
string | null

A tárgyalás terme vagy helyszíne. Egyszerű szöveg.

name_of_the_judge
string | null

A bíró neve. Egyszerű szöveg.

notes
string | null

Szabad szöveges megjegyzések a tárgyaláshoz. Egyszerű szöveg.

responsibles
object[]

A tárgyaláson részt vevő munkatársak (azonosítók a colleagues.list-ből).

responsibles mezői
user_id
integer
name
string | null
recorded_by
object | null

A munkatárs, aki a tárgyalást rögzítette.

recorded_by mezői
user_id
integer
name
string | null
created_at
string <date-time> | null
updated_at
string <date-time> | null

Adja át ezt a trials.update hívásnak expected_updated_at értékként.

created_via_api
object | null

Akkor van jelen, ha a rekordot külső ügynök hozta létre ezen az API-n keresztül.

created_via_api mezői
kind
string

"key": statikus API-kulccsal létrehozva; "oauth": OAuth-on keresztül csatlakoztatott alkalmazás által létrehozva.

Lehetséges értékek: "key" "oauth"
key_id
integer

Az API-kulcs ("key" típus) vagy a csatlakoztatott alkalmazás ("oauth" típus) azonosítója; a kettő számozása külön történik.

key_name
string

Az a név, amelyet a felhasználó adott az API-kulcsnak, például "Grok integration", vagy a csatlakoztatott alkalmazás neve "oauth" típus esetén, például "Claude".

user_id
integer
user
string | null
at
string <date-time> | null
paginationkötelező
object
pagination mezői
limitkötelező
integer
offsetkötelező
integer
totalkötelező
integer

A találatként kapott rekordok teljes száma.

400

Hibás formátumú kérés: érvénytelen JSON törzs, rossz host (használja a www. hostot), vagy olvashatatlan kérés.

401

A kulcs hiányzik, érvénytelen, visszavonták vagy lejárt, vagy a hozzá tartozó felhasználó már nem aktív.

403

Hiányzó hatókör (scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.

404

Ismeretlen végpont, vagy a rekord nem létezik / nem látható a felhasználó számára.

405

Ezen az útvonalon nem elérhető metódus (a DELETE és a PUT soha nem az; a PATCH csak ott, ahol frissítés is elérhető).

422

A validáció sikertelen volt, vagy ismeretlen mező; a details.fields felsorolja a mezőhibákat.

429

A sebességkorlát túllépve; a Retry-After megadja, mikor próbálja újra.

503

Az iroda átmenetileg nem érhető el (karbantartás vagy beállítás van folyamatban); a Retry-After megadja, mikor próbálja újra.

default

Bármely egyéb hiba, ugyanabban a burokban.

Kérésminták

curl 'https://www.flowyer.hu/api/agent/matters/1234/trials?from=2026-01-01&to=2026-12-31&limit=25' \
  -H 'Authorization: Bearer flw_...'

Válaszminták

{
  "data": [
    {
      "id": 4321,
      "matter": {
        "id": 1234,
        "case_number": "string"
      },
      "date": "2026-03-02T09:00:00+01:00",
      "participation": "required",
      "court": {
        "id": 1234,
        "name": "string",
        "city": "string",
        "zip": "string",
        "address": "string",
        "source": "string"
      },
      "place": "string",
      "name_of_the_judge": "string",
      "notes": "string",
      "responsibles": [
        {
          "user_id": 1234,
          "name": "string"
        }
      ],
      "recorded_by": {
        "user_id": 1234,
        "name": "string"
      },
      "created_at": "2026-10-30T09:15:00+01:00",
      "updated_at": "2026-10-30T09:15:00+01:00",
      "created_via_api": {
        "kind": "key",
        "key_id": 1234,
        "key_name": "string",
        "user_id": 1234,
        "user": "string",
        "at": "2026-10-30T09:15:00+01:00"
      }
    }
  ],
  "pagination": {
    "limit": 25,
    "offset": 0,
    "total": 1
  }
}

Tárgyalás lekérése

GET /api/agent/trials/{id}

Visszaad egy tárgyalást az ügyével, a bíróságával, a részt vevő munkatársakkal és az updated_at zárolási tokennel a trials.update számára. 404 választ ad, ha a tárgyalás nem létezik, vagy a felhasználó nem láthatja az ügyét.

Hatókör
trials:read
Flowyer-jogosultság
trials:read

Útvonal-paraméterek

idkötelező
integer>= 1

Tárgyalásazonosító.

Példa: 4321

Válaszok

200

OK.

datakötelező
object
data mezői
id
integer
Példa: 4321
matter
object

Az ügy (eset), amelyhez a tárgyalás tartozik.

matter mezői
id
integer
case_number
string
date
string <date-time> | null

A tárgyalás dátuma és ideje, ISO 8601 az iroda időzónájában. UTC-ben van tárolva, ezért az időpontokat hasonlítsa össze, ne a faliórás szöveget.

Példa: "2026-03-02T09:00:00+01:00"
participation
string | null

Hogy egy munkatárs részvétele kötelező-e: "required", "not_required", vagy null, ha nincs beállítva.

Lehetséges értékek: "required" "not_required"
court
object | null

A tárgyalás bírósága, a megosztott bírósági nyilvántartásból feloldva; null, ha nincs bíróság beállítva.

court mezői
id
integer
name
string
city
string | null
zip
string | null
address
string | null
source
string

Mindig "registry": a bíróság a megosztott bírósági nyilvántartásra (courts.list) hivatkozik, nem szabad szöveg.

place
string | null

A tárgyalás terme vagy helyszíne. Egyszerű szöveg.

name_of_the_judge
string | null

A bíró neve. Egyszerű szöveg.

notes
string | null

Szabad szöveges megjegyzések a tárgyaláshoz. Egyszerű szöveg.

responsibles
object[]

A tárgyaláson részt vevő munkatársak (azonosítók a colleagues.list-ből).

responsibles mezői
user_id
integer
name
string | null
recorded_by
object | null

A munkatárs, aki a tárgyalást rögzítette.

recorded_by mezői
user_id
integer
name
string | null
created_at
string <date-time> | null
updated_at
string <date-time> | null

Adja át ezt a trials.update hívásnak expected_updated_at értékként.

created_via_api
object | null

Akkor van jelen, ha a rekordot külső ügynök hozta létre ezen az API-n keresztül.

created_via_api mezői
kind
string

"key": statikus API-kulccsal létrehozva; "oauth": OAuth-on keresztül csatlakoztatott alkalmazás által létrehozva.

Lehetséges értékek: "key" "oauth"
key_id
integer

Az API-kulcs ("key" típus) vagy a csatlakoztatott alkalmazás ("oauth" típus) azonosítója; a kettő számozása külön történik.

key_name
string

Az a név, amelyet a felhasználó adott az API-kulcsnak, például "Grok integration", vagy a csatlakoztatott alkalmazás neve "oauth" típus esetén, például "Claude".

user_id
integer
user
string | null
at
string <date-time> | null
400

Hibás formátumú kérés: érvénytelen JSON törzs, rossz host (használja a www. hostot), vagy olvashatatlan kérés.

401

A kulcs hiányzik, érvénytelen, visszavonták vagy lejárt, vagy a hozzá tartozó felhasználó már nem aktív.

403

Hiányzó hatókör (scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.

404

Ismeretlen végpont, vagy a rekord nem létezik / nem látható a felhasználó számára.

405

Ezen az útvonalon nem elérhető metódus (a DELETE és a PUT soha nem az; a PATCH csak ott, ahol frissítés is elérhető).

422

A validáció sikertelen volt, vagy ismeretlen mező; a details.fields felsorolja a mezőhibákat.

429

A sebességkorlát túllépve; a Retry-After megadja, mikor próbálja újra.

503

Az iroda átmenetileg nem érhető el (karbantartás vagy beállítás van folyamatban); a Retry-After megadja, mikor próbálja újra.

default

Bármely egyéb hiba, ugyanabban a burokban.

Kérésminták

curl 'https://www.flowyer.hu/api/agent/trials/4321' \
  -H 'Authorization: Bearer flw_...'

Válaszminták

{
  "data": {
    "id": 4321,
    "matter": {
      "id": 1234,
      "case_number": "string"
    },
    "date": "2026-03-02T09:00:00+01:00",
    "participation": "required",
    "court": {
      "id": 1234,
      "name": "string",
      "city": "string",
      "zip": "string",
      "address": "string",
      "source": "string"
    },
    "place": "string",
    "name_of_the_judge": "string",
    "notes": "string",
    "responsibles": [
      {
        "user_id": 1234,
        "name": "string"
      }
    ],
    "recorded_by": {
      "user_id": 1234,
      "name": "string"
    },
    "created_at": "2026-10-30T09:15:00+01:00",
    "updated_at": "2026-10-30T09:15:00+01:00",
    "created_via_api": {
      "kind": "key",
      "key_id": 1234,
      "key_name": "string",
      "user_id": 1234,
      "user": "string",
      "at": "2026-10-30T09:15:00+01:00"
    }
  }
}

Tárgyalás létrehozása

POST /api/agent/matters/{id}/trials

Rögzít egy tárgyalást egy ügyön: idő, egy opcionális bíróság (court_id a courts.list-ből), a terem, a bíró, a megjegyzések és a részt vevő munkatársak. Az ügynek láthatónak és nem archiváltnak kell lennie; a résztvevők értesítést kapnak. Az eltolás nélküli időpont az iroda zónájában értelmeződik.

Hatókör
trials:create
Flowyer-jogosultság
trials:create

Útvonal-paraméterek

idkötelező
integer>= 1

Az ügy, amelyhez a tárgyalás tartozik (láthatónak és nem archiváltnak kell lennie).

Példa: 1234

Fejléc-paraméterek

Idempotency-Key
stringlegfeljebb 128 karakter

Minden létrehozásnál ajánlott. Logikai műveletenként egyedi érték (például egy UUID). Ugyanaz az érték ugyanazt a rekordot adja vissza: az azzal való újrapróbálkozás az először létrehozott rekordot adja vissza ahelyett, hogy egy másodikat hozna létre. A különböző értékek mindig különböző rekordokat hoznak létre. Azok az ügyfelek, amelyek nem tudnak fejléceket küldeni, ugyanazt az értéket átadhatják az idempotency_key törzsmezőben. Betűk, számjegyek, _, -, : vagy ., legfeljebb 128 karakter.

Minta: ^[A-Za-z0-9_\-:.]{1,128}$

Kérés törzse application/json

datekötelező
string <date-time>

A tárgyalás dátuma és ideje, ISO 8601. Eltolással tiszteletben van tartva; eltolás nélkül az iroda időzónájában értelmeződik. UTC-ben tárolva.

Példa: "2026-03-02T09:00:00+01:00"
court_id
integer | null>= 1

A tárgyalás bírósága: egy azonosító a courts.list-ből (a megosztott bírósági nyilvántartás). Hagyja el, ha a bíróság nem ismert.

Példa: 42
participation
string | null

Hogy egy munkatárs részvétele kötelező-e. Hagyja el, hogy beállítatlan maradjon.

Lehetséges értékek: "required" "not_required"
place
string | nulllegfeljebb 1000 karakter

A tárgyalás terme vagy helyszíne. Egyszerű szöveg; a "<" és a ">" nem engedélyezett.

Minta: ^[^<>]*$
Példa: "II. emelet 205."
name_of_the_judge
string | nulllegfeljebb 255 karakter

A bíró neve. Egyszerű szöveg; a "<" és a ">" nem engedélyezett.

Minta: ^[^<>]*$
notes
string | nulllegfeljebb 10000 karakter

Szabad szöveges megjegyzések a tárgyaláshoz. Egyszerű szöveg; a "<" és a ">" nem engedélyezett.

Minta: ^[^<>]*$
responsible_user_ids
integer[] | null

A tárgyaláson részt vevő munkatársak felhasználóazonosítói (a colleagues.list-ből).

idempotency_key
stringlegfeljebb 128 karakter

Ugyanaz a szerepe, mint az Idempotency-Key fejlécnek, azon ügyfelek számára, amelyek nem tudnak egyéni fejléceket küldeni. Betűk, számjegyek, _, -, : vagy ., legfeljebb 128 karakter.

Minta: ^[A-Za-z0-9_\-:.]{1,128}$
Példa: "b8f1c2e0-6f7a-4d2e-9c1b-2a3d4e5f6a7b"

Válaszok

201

Létrehozva.

datakötelező
object
data mezői
id
integer
Példa: 4321
matter
object

Az ügy (eset), amelyhez a tárgyalás tartozik.

matter mezői
id
integer
case_number
string
date
string <date-time> | null

A tárgyalás dátuma és ideje, ISO 8601 az iroda időzónájában. UTC-ben van tárolva, ezért az időpontokat hasonlítsa össze, ne a faliórás szöveget.

Példa: "2026-03-02T09:00:00+01:00"
participation
string | null

Hogy egy munkatárs részvétele kötelező-e: "required", "not_required", vagy null, ha nincs beállítva.

Lehetséges értékek: "required" "not_required"
court
object | null

A tárgyalás bírósága, a megosztott bírósági nyilvántartásból feloldva; null, ha nincs bíróság beállítva.

court mezői
id
integer
name
string
city
string | null
zip
string | null
address
string | null
source
string

Mindig "registry": a bíróság a megosztott bírósági nyilvántartásra (courts.list) hivatkozik, nem szabad szöveg.

place
string | null

A tárgyalás terme vagy helyszíne. Egyszerű szöveg.

name_of_the_judge
string | null

A bíró neve. Egyszerű szöveg.

notes
string | null

Szabad szöveges megjegyzések a tárgyaláshoz. Egyszerű szöveg.

responsibles
object[]

A tárgyaláson részt vevő munkatársak (azonosítók a colleagues.list-ből).

responsibles mezői
user_id
integer
name
string | null
recorded_by
object | null

A munkatárs, aki a tárgyalást rögzítette.

recorded_by mezői
user_id
integer
name
string | null
created_at
string <date-time> | null
updated_at
string <date-time> | null

Adja át ezt a trials.update hívásnak expected_updated_at értékként.

created_via_api
object | null

Akkor van jelen, ha a rekordot külső ügynök hozta létre ezen az API-n keresztül.

created_via_api mezői
kind
string

"key": statikus API-kulccsal létrehozva; "oauth": OAuth-on keresztül csatlakoztatott alkalmazás által létrehozva.

Lehetséges értékek: "key" "oauth"
key_id
integer

Az API-kulcs ("key" típus) vagy a csatlakoztatott alkalmazás ("oauth" típus) azonosítója; a kettő számozása külön történik.

key_name
string

Az a név, amelyet a felhasználó adott az API-kulcsnak, például "Grok integration", vagy a csatlakoztatott alkalmazás neve "oauth" típus esetén, például "Claude".

user_id
integer
user
string | null
at
string <date-time> | null
created
boolean
Érték: true
200

Idempotens visszajátszás: ez az Idempotency-Key (vagy kulcs nélkül egy azonos kérés 120 másodpercen belül) már létrehozta a rekordot; a rendszer újra visszaadja, semmi új nem jött létre.

datakötelező
object
data mezői
id
integer
Példa: 4321
matter
object

Az ügy (eset), amelyhez a tárgyalás tartozik.

matter mezői
id
integer
case_number
string
date
string <date-time> | null

A tárgyalás dátuma és ideje, ISO 8601 az iroda időzónájában. UTC-ben van tárolva, ezért az időpontokat hasonlítsa össze, ne a faliórás szöveget.

Példa: "2026-03-02T09:00:00+01:00"
participation
string | null

Hogy egy munkatárs részvétele kötelező-e: "required", "not_required", vagy null, ha nincs beállítva.

Lehetséges értékek: "required" "not_required"
court
object | null

A tárgyalás bírósága, a megosztott bírósági nyilvántartásból feloldva; null, ha nincs bíróság beállítva.

court mezői
id
integer
name
string
city
string | null
zip
string | null
address
string | null
source
string

Mindig "registry": a bíróság a megosztott bírósági nyilvántartásra (courts.list) hivatkozik, nem szabad szöveg.

place
string | null

A tárgyalás terme vagy helyszíne. Egyszerű szöveg.

name_of_the_judge
string | null

A bíró neve. Egyszerű szöveg.

notes
string | null

Szabad szöveges megjegyzések a tárgyaláshoz. Egyszerű szöveg.

responsibles
object[]

A tárgyaláson részt vevő munkatársak (azonosítók a colleagues.list-ből).

responsibles mezői
user_id
integer
name
string | null
recorded_by
object | null

A munkatárs, aki a tárgyalást rögzítette.

recorded_by mezői
user_id
integer
name
string | null
created_at
string <date-time> | null
updated_at
string <date-time> | null

Adja át ezt a trials.update hívásnak expected_updated_at értékként.

created_via_api
object | null

Akkor van jelen, ha a rekordot külső ügynök hozta létre ezen az API-n keresztül.

created_via_api mezői
kind
string

"key": statikus API-kulccsal létrehozva; "oauth": OAuth-on keresztül csatlakoztatott alkalmazás által létrehozva.

Lehetséges értékek: "key" "oauth"
key_id
integer

Az API-kulcs ("key" típus) vagy a csatlakoztatott alkalmazás ("oauth" típus) azonosítója; a kettő számozása külön történik.

key_name
string

Az a név, amelyet a felhasználó adott az API-kulcsnak, például "Grok integration", vagy a csatlakoztatott alkalmazás neve "oauth" típus esetén, például "Claude".

user_id
integer
user
string | null
at
string <date-time> | null
created
boolean
Érték: false
idempotent_replay
boolean
Érték: true
400

Hibás formátumú kérés: érvénytelen JSON törzs, rossz host (használja a www. hostot), vagy olvashatatlan kérés.

401

A kulcs hiányzik, érvénytelen, visszavonták vagy lejárt, vagy a hozzá tartozó felhasználó már nem aktív.

403

Hiányzó hatókör (scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.

404

Ismeretlen végpont, vagy a rekord nem létezik / nem látható a felhasználó számára. replay_not_visible: ez az Idempotency-Key (vagy kulcs nélkül egy azonos kérés) már létrehozta a rekordot (details.record_id), de azt azóta törölték, vagy nem látható a felhasználó számára; semmi új nem jött létre, ne hozza létre újra.

405

Ezen az útvonalon nem elérhető metódus (a DELETE és a PUT soha nem az; a PATCH csak ott, ahol frissítés is elérhető).

409

Az Idempotency-Key kulcsot egy másik erőforrástípushoz használták (idempotency_key_reused), vagy kulcs nélkül egy azonos kérés feldolgozása éppen most zajlik (duplicate_in_progress; próbálja újra rövidesen).

413

A kérés törzse túl nagy (request_too_large).

422

A validáció sikertelen volt, vagy ismeretlen mező; a details.fields felsorolja a mezőhibákat.

429

A sebességkorlát túllépve; a Retry-After megadja, mikor próbálja újra.

503

Az iroda átmenetileg nem érhető el (karbantartás vagy beállítás van folyamatban); a Retry-After megadja, mikor próbálja újra.

default

Bármely egyéb hiba, ugyanabban a burokban.

Kérésminták

curl -X POST 'https://www.flowyer.hu/api/agent/matters/1234/trials' \
  -H 'Authorization: Bearer flw_...' \
  -H 'Content-Type: application/json' \
  -H 'Idempotency-Key: 7f3a9c21-1b2c-4d5e-8f90-0a1b2c3d4e5f' \
  -d '{
  "date": "2026-03-02T09:00:00+01:00",
  "court_id": 42,
  "place": "II. emelet 205."
}'

Válaszminták

{
  "data": {
    "id": 4321,
    "matter": {
      "id": 1234,
      "case_number": "string"
    },
    "date": "2026-03-02T09:00:00+01:00",
    "participation": "required",
    "court": {
      "id": 1234,
      "name": "string",
      "city": "string",
      "zip": "string",
      "address": "string",
      "source": "string"
    },
    "place": "string",
    "name_of_the_judge": "string",
    "notes": "string",
    "responsibles": [
      {
        "user_id": 1234,
        "name": "string"
      }
    ],
    "recorded_by": {
      "user_id": 1234,
      "name": "string"
    },
    "created_at": "2026-10-30T09:15:00+01:00",
    "updated_at": "2026-10-30T09:15:00+01:00",
    "created_via_api": {
      "kind": "key",
      "key_id": 1234,
      "key_name": "string",
      "user_id": 1234,
      "user": "string",
      "at": "2026-10-30T09:15:00+01:00"
    }
  },
  "created": true
}

Tárgyalás módosítása

PATCH /api/agent/trials/{id}

Módosít egy tárgyalást: idejét, bíróságát, helyszínét, bíróját, megjegyzéseit, részvételi jelzőjét és résztvevőit. Csak az elküldött mezőket írja; küldje a responsible_user_ids értéket a teljes résztvevőlista lecseréléséhez. Adja meg az expected_updated_at értéket a legutóbbi olvasásából; ütköző módosítás esetén a válasz 409.

Hatókör
trials:update
Flowyer-jogosultság
trials:modify

Útvonal-paraméterek

idkötelező
integer>= 1

A módosítandó rekord azonosítója.

Kérés törzse application/json

expected_updated_at
string <date-time> | null

A rekord legutóbbi olvasásából származó updated_at érték (minden esetben kötelező, ha a rekordnak van ilyen). Ha a rekord azóta megváltozott (egy kolléga szerkesztette), az API 409-et ad válaszul, és újra kell olvasnia, mielőtt újrapróbálkozna. Egy olyan régebbi rekord, amelynek az updated_at értéke null, a null értéket veszi fel.

date
string <date-time>

Új tárgyalási dátum és idő, ISO 8601 (egy eltolás tiszteletben tartva, a zóna nélküli időpont az iroda zónájában értelmezve). UTC-ben tárolva.

Példa: "2026-03-02T09:00:00+01:00"
court_id
integer | null>= 1

Új bíróságazonosító a courts.list-ből; null a bíróság törléséhez.

participation
string | null

Hogy egy munkatárs részvétele kötelező-e; null a törléséhez.

Lehetséges értékek: "required" "not_required"
place
string | nulllegfeljebb 1000 karakter

Terem vagy helyszín. Egyszerű szöveg; a "<" és a ">" nem engedélyezett. A "" törli.

Minta: ^[^<>]*$
name_of_the_judge
string | nulllegfeljebb 255 karakter

A bíró neve. Egyszerű szöveg; a "<" és a ">" nem engedélyezett. A "" törli.

Minta: ^[^<>]*$
notes
string | nulllegfeljebb 10000 karakter

Szabad szöveges megjegyzések. Egyszerű szöveg; a "<" és a ">" nem engedélyezett. A "" törli.

Minta: ^[^<>]*$
responsible_user_ids
integer[] | null

A résztvevők felhasználóazonosítóinak teljes lecserélő halmaza (a colleagues.list-ből). Hagyja el a résztvevők változatlanul hagyásához.

Válaszok

200

Frissítve.

datakötelező
object
data mezői
id
integer
Példa: 4321
matter
object

Az ügy (eset), amelyhez a tárgyalás tartozik.

matter mezői
id
integer
case_number
string
date
string <date-time> | null

A tárgyalás dátuma és ideje, ISO 8601 az iroda időzónájában. UTC-ben van tárolva, ezért az időpontokat hasonlítsa össze, ne a faliórás szöveget.

Példa: "2026-03-02T09:00:00+01:00"
participation
string | null

Hogy egy munkatárs részvétele kötelező-e: "required", "not_required", vagy null, ha nincs beállítva.

Lehetséges értékek: "required" "not_required"
court
object | null

A tárgyalás bírósága, a megosztott bírósági nyilvántartásból feloldva; null, ha nincs bíróság beállítva.

court mezői
id
integer
name
string
city
string | null
zip
string | null
address
string | null
source
string

Mindig "registry": a bíróság a megosztott bírósági nyilvántartásra (courts.list) hivatkozik, nem szabad szöveg.

place
string | null

A tárgyalás terme vagy helyszíne. Egyszerű szöveg.

name_of_the_judge
string | null

A bíró neve. Egyszerű szöveg.

notes
string | null

Szabad szöveges megjegyzések a tárgyaláshoz. Egyszerű szöveg.

responsibles
object[]

A tárgyaláson részt vevő munkatársak (azonosítók a colleagues.list-ből).

responsibles mezői
user_id
integer
name
string | null
recorded_by
object | null

A munkatárs, aki a tárgyalást rögzítette.

recorded_by mezői
user_id
integer
name
string | null
created_at
string <date-time> | null
updated_at
string <date-time> | null

Adja át ezt a trials.update hívásnak expected_updated_at értékként.

created_via_api
object | null

Akkor van jelen, ha a rekordot külső ügynök hozta létre ezen az API-n keresztül.

created_via_api mezői
kind
string

"key": statikus API-kulccsal létrehozva; "oauth": OAuth-on keresztül csatlakoztatott alkalmazás által létrehozva.

Lehetséges értékek: "key" "oauth"
key_id
integer

Az API-kulcs ("key" típus) vagy a csatlakoztatott alkalmazás ("oauth" típus) azonosítója; a kettő számozása külön történik.

key_name
string

Az a név, amelyet a felhasználó adott az API-kulcsnak, például "Grok integration", vagy a csatlakoztatott alkalmazás neve "oauth" típus esetén, például "Claude".

user_id
integer
user
string | null
at
string <date-time> | null
updated
boolean
Érték: true
400

Hibás formátumú kérés: érvénytelen JSON törzs, rossz host (használja a www. hostot), vagy olvashatatlan kérés.

401

A kulcs hiányzik, érvénytelen, visszavonták vagy lejárt, vagy a hozzá tartozó felhasználó már nem aktív.

403

Hiányzó hatókör (scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.

404

Ismeretlen végpont, vagy a rekord nem létezik / nem látható a felhasználó számára.

405

Ezen az útvonalon nem elérhető metódus (a DELETE és a PUT soha nem az; a PATCH csak ott, ahol frissítés is elérhető).

409

A rekord megváltozott, mióta beolvasta (record_conflict: az expected_updated_at már nem egyezik; olvassa be újra, és próbálja újra az új updated_at értékkel).

413

A kérés törzse túl nagy (request_too_large).

422

A validáció sikertelen volt, vagy ismeretlen mező; a details.fields felsorolja a mezőhibákat.

429

A sebességkorlát túllépve; a Retry-After megadja, mikor próbálja újra.

503

Az iroda átmenetileg nem érhető el (karbantartás vagy beállítás van folyamatban); a Retry-After megadja, mikor próbálja újra.

default

Bármely egyéb hiba, ugyanabban a burokban.

Kérésminták

curl -X PATCH 'https://www.flowyer.hu/api/agent/trials/1234' \
  -H 'Authorization: Bearer flw_...' \
  -H 'Content-Type: application/json' \
  -d '{
  "expected_updated_at": "2026-10-30T09:15:00+01:00",
  "date": "2026-03-02T09:00:00+01:00"
}'

Válaszminták

{
  "data": {
    "id": 4321,
    "matter": {
      "id": 1234,
      "case_number": "string"
    },
    "date": "2026-03-02T09:00:00+01:00",
    "participation": "required",
    "court": {
      "id": 1234,
      "name": "string",
      "city": "string",
      "zip": "string",
      "address": "string",
      "source": "string"
    },
    "place": "string",
    "name_of_the_judge": "string",
    "notes": "string",
    "responsibles": [
      {
        "user_id": 1234,
        "name": "string"
      }
    ],
    "recorded_by": {
      "user_id": 1234,
      "name": "string"
    },
    "created_at": "2026-10-30T09:15:00+01:00",
    "updated_at": "2026-10-30T09:15:00+01:00",
    "created_via_api": {
      "kind": "key",
      "key_id": 1234,
      "key_name": "string",
      "user_id": 1234,
      "user": "string",
      "at": "2026-10-30T09:15:00+01:00"
    }
  },
  "updated": true
}

Bíróságok

Bíróságok listázása

GET /api/agent/courts

Listázza a megosztott bírósági nyilvántartást (id, név, város) a trials.create / trials.update court_id értékéhez. A q megadásával (egy bíróságnév, ahogyan hallotta; az ékezeteket, a kis-/nagybetűket és a kisebb elgépeléseket tűri) az exact/similar/none állapotot adja vissza: csak az "exact" használható biztonságosan közvetlenül. Ez a magyar bírósági jegyzék.

Hatókör
courts:read

Lekérdezési paraméterek

q
stringlegfeljebb 255 karakter

A keresendő bíróságnév, ahogyan hallotta vagy diktálták, tetszőleges szósorrendben. Hagyja el az összes bíróság listázásához.

Példa: "Fővárosi Törvényszék"
limit
integer>= 1<= 500

A visszaadandó bíróságok maximális száma (alapértelmezés 200).

Alapértelmezés: 200

Válaszok

200

OK.

datakötelező
object
data mezői
status
string | null

Csak q esetén: exact = egy biztos találat (az azonosítója biztonságosan használható), similar = közelítő vagy több találat (előbb egyeztessen a felhasználóval), none = nincs találat (kérdezze meg a felhasználót). q nélkül null.

Lehetséges értékek: "exact" "similar" "none"
courts
object[]

Bíróságok, q esetén a legjobb találat elöl, egyébként név szerint.

courts mezői
id
integer

Bíróságazonosító: adja meg court_id értékként a trials.create / trials.update hívásnak.

name
string

A bíróság neve úgy, ahogyan a Flowyer megjeleníti.

city
string | null
zip
string | null
address
string | null
total
integer

Hány bíróság felelt meg (q nélkül az összes bíróság), mielőtt a lista a limit értékre lett vágva.

truncated
boolean

true, ha több bíróság felelt meg, mint amennyi visszatért: szűkítse a q értékét, vagy emelje a limit értékét.

400

Hibás formátumú kérés: érvénytelen JSON törzs, rossz host (használja a www. hostot), vagy olvashatatlan kérés.

401

A kulcs hiányzik, érvénytelen, visszavonták vagy lejárt, vagy a hozzá tartozó felhasználó már nem aktív.

403

Hiányzó scope (scope_missing), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.

404

Ismeretlen végpont, vagy a rekord nem létezik / nem látható a felhasználó számára.

405

Ezen az útvonalon nem elérhető metódus (a DELETE és a PUT soha nem az; a PATCH csak ott, ahol frissítés is elérhető).

422

A validáció sikertelen volt, vagy ismeretlen mező; a details.fields felsorolja a mezőhibákat.

429

A sebességkorlát túllépve; a Retry-After megadja, mikor próbálja újra.

503

Az iroda átmenetileg nem érhető el (karbantartás vagy beállítás van folyamatban); a Retry-After megadja, mikor próbálja újra.

default

Bármely egyéb hiba, ugyanabban a burokban.

Kérésminták

curl 'https://www.flowyer.hu/api/agent/courts?q=F%C5%91v%C3%A1rosi%20T%C3%B6rv%C3%A9nysz%C3%A9k' \
  -H 'Authorization: Bearer flw_...'

Válaszminták

{
  "data": {
    "status": "exact",
    "courts": [
      {
        "id": 1234,
        "name": "string",
        "city": "string",
        "zip": "string",
        "address": "string"
      }
    ],
    "total": 1,
    "truncated": true
  }
}

HR

Munkatársak szabadságainak listázása

GET /api/agent/hr/leaves

Listázza a jóváhagyott munkatársi szabadságokat (ki van vagy lesz szabadságon): a munkatárs, a kezdő/záró dátumok, a munkanapok száma, egy adatvédelmi okból csonkított kategória (leave/unpaid; a betegszabadság a leave kategóriába olvad, és soha nem azonosítható) és az esetleges helyettes. Soha nem adja vissza a szabadság típusát, a megjegyzéseket vagy azt, hogy ki hagyta jóvá.

Hatókör
hr:read
Flowyer-jogosultság
hr-admin:read

Lekérdezési paraméterek

user_id
integer>= 1

Csak ennek a munkatársnak a szabadságai. Egy központi felhasználóazonosító (a colleagues.list-ből), a szabadság mögötti alkalmazotthoz illesztve.

Példa: 1234
on_date
string <date>

Ki van szabadságon pontosan ezen a napon (start_date <= on_date <= end_date). Ha be van állítva, felülbírálja a date_from, date_to és timeframe értékeket.

date_from
string <date>

Csak az ezen a dátumon vagy azután még tartó szabadságok (end_date >= date_from). Alapértelmezés a mai nap, így a teljesen múltbeli szabadságok alapértelmezés szerint kimaradnak.

date_to
string <date>

Csak az ezen a dátumon vagy azelőtt kezdődő szabadságok (start_date <= date_to). Hagyja el a nyitott végű jövőhöz.

timeframe
string

Extra kezdődátum-feltétel a mai naphoz képest: current = már elkezdődött (folyamatban), upcoming = még nem kezdődött el, all = nincs extra. Figyelmen kívül marad, ha az on_date be van állítva.

Lehetséges értékek: "current" "upcoming" "all"
Alapértelmezés: "all"
limit
integer>= 1<= 100

Oldalméret, 1-100. Alapértelmezés: 25.

Alapértelmezés: 25
Példa: 25
offset
integer>= 0

A kihagyandó rekordok száma. Az előző oldal offset + limit értékével jut el a következő oldalra; a pagination.total a teljes darabszámot adja meg.

Alapértelmezés: 0
Példa: 0

Válaszok

200

OK.

datakötelező
object[]
data mezői
id
integer

Szabadságkérelem azonosítója (csak egy hivatkozás; nem érzékeny).

user_id
integer

A szabadságon lévő munkatárs (központi felhasználóazonosító).

user
string | null

A munkatárs megjelenített neve.

start_date
string <date>

A szabadság első napja (YYYY-MM-DD).

end_date
string <date>

A szabadság utolsó napja, beleértve (YYYY-MM-DD).

days_count
number | null

A szabadság munkanapjai. Nem fedi fel a típust.

category
string

Adatvédelmi okból csonkított szabadságtípus: az éves és a betegszabadság egyaránt "leave" lesz (a betegszabadság soha nem azonosítható), a fizetés nélküli "unpaid" marad. A nyers szabadságtípus soha nem kerül nyilvánosságra.

Lehetséges értékek: "leave" "unpaid"
status
string

Mindig "approved" - csak a jóváhagyott szabadságok kerülnek visszaadásra; a pending, rejected és cancelled soha nem jelenik meg.

Lehetséges értékek: "approved"
substitute_user_id
integer | null

A szabadságot helyettesítő munkatárs (központi felhasználóazonosító), vagy null.

substitute_user
string | null

A helyettesítő munkatárs megjelenített neve, vagy null.

paginationkötelező
object
pagination mezői
limitkötelező
integer
offsetkötelező
integer
totalkötelező
integer

A találatként kapott rekordok teljes száma.

400

Hibás formátumú kérés: érvénytelen JSON törzs, rossz host (használja a www. hostot), vagy olvashatatlan kérés.

401

A kulcs hiányzik, érvénytelen, visszavonták vagy lejárt, vagy a hozzá tartozó felhasználó már nem aktív.

403

Hiányzó hatókör (scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.

404

Ismeretlen végpont, vagy a rekord nem létezik / nem látható a felhasználó számára.

405

Ezen az útvonalon nem elérhető metódus (a DELETE és a PUT soha nem az; a PATCH csak ott, ahol frissítés is elérhető).

422

A validáció sikertelen volt, vagy ismeretlen mező; a details.fields felsorolja a mezőhibákat.

429

A sebességkorlát túllépve; a Retry-After megadja, mikor próbálja újra.

503

Az iroda átmenetileg nem érhető el (karbantartás vagy beállítás van folyamatban); a Retry-After megadja, mikor próbálja újra.

default

Bármely egyéb hiba, ugyanabban a burokban.

Kérésminták

curl 'https://www.flowyer.hu/api/agent/hr/leaves?user_id=1234&limit=25' \
  -H 'Authorization: Bearer flw_...'

Válaszminták

{
  "data": [
    {
      "id": 1234,
      "user_id": 1234,
      "user": "string",
      "start_date": "2026-10-30",
      "end_date": "2026-10-30",
      "days_count": 0,
      "category": "leave",
      "status": "approved",
      "substitute_user_id": 1234,
      "substitute_user": "string"
    }
  ],
  "pagination": {
    "limit": 25,
    "offset": 0,
    "total": 1
  }
}

Naptár

Naptáresemények listázása

GET /api/agent/calendar/events

Listázza a [from, to] dátumtartománnyal átfedő naptáreseményeket: az iroda naptárát, a sajátját és az Önnel megosztott naptárakat. Az ismétlődő események egyszer kerülnek visszaadásra (is_recurring), NEM kibontva. A kezdés szerint rendezve. Egy Önnel meg nem osztott személyes esemény soha nem jelenik meg.

Hatókör
calendar:read
Flowyer-jogosultság
calendar-office:read

Lekérdezési paraméterek

fromkötelező
string <date-time>

A tartomány kezdete (beleértve), ISO 8601. A [from, to] tartománnyal átfedő események kerülnek visszaadásra. Az eltolás nélküli időpont az iroda zónájában értelmeződik.

Példa: "2026-03-01T00:00:00+01:00"
tokötelező
string <date-time>

A tartomány vége (beleértve), ISO 8601. A from értékén vagy azután kell lennie (egyébként 422), és legfeljebb 366 nappal utána.

Példa: "2026-03-31T23:59:59+01:00"
calendar_ids
integer[]

Szűkítés ezekre a tartalmazó naptárazonosítókra; mindegyik metszetre kerül az Ön által megtekinthető naptárakkal, így egy nem látható azonosító csendben kimarad. Hagyja el az összes látható naptárhoz.

include_recurring
boolean

Tartalmazza azokat az ismétlődő főeseményeket, amelyek szabálya átfedi a tartományt (kibontás nélkül visszaadva, is_recurring = true). Alapértelmezés true.

Alapértelmezés: true
limit
integer>= 1<= 100

Oldalméret, 1-100. Alapértelmezés: 25.

Alapértelmezés: 25
Példa: 25
offset
integer>= 0

A kihagyandó rekordok száma. Az előző oldal offset + limit értékével jut el a következő oldalra; a pagination.total a teljes darabszámot adja meg.

Alapértelmezés: 0
Példa: 0

Válaszok

200

OK.

datakötelező
object[]
data mezői
id
integer
Példa: 5501
calendar
object

A naptár, amelyhez az esemény tartozik.

calendar mezői
id
integer | null

Tartalmazó naptárazonosító, vagy null az implicit megosztott iroda naptár esetén (egy tartalmazó nélküli, régi esemény).

name
string | null
type
string

"office" = a megosztott iroda naptár (minden irodai felhasználó megtekintheti és szerkesztheti); "personal" = egy felhasználó saját naptára, amely csak a tulajdonosa és azok számára látható, akikkel meg van osztva.

Lehetséges értékek: "office" "personal"
owner
object | null

Egy személyes naptár tulajdonosa; az iroda naptára esetén null.

owner mezői
user_id
integer
name
string | null
title
string | null

Az esemény címe. Egyszerű szöveg.

description
string | null

Az esemény leírása. Egyszerű szöveg.

location
string | null

Helyszín. Egyszerű szöveg.

participants
string | null

Résztvevők, szabad szöveg. Egyszerű szöveg.

start
string | null

Egész napos esemény: a kezdő dátum "YYYY-MM-DD". Időzített esemény: ISO 8601 az iroda időzónájában (a tárolt UTC időpont).

Példa: "2026-03-02T09:00:00+01:00"
end
string | null

Ugyanaz a kódolás, mint a start esetén. Egész napos eseménynél a záró dátum BELEÉRTENDŐ (a tárolt érték, nem a +1 napos érték, amelyet egy naptárrács használ). Null, ha az eseménynek nincs vége.

all_day
boolean

true egész napos esemény esetén (a start/end csak dátumok); false időzített esemény esetén (a start/end ISO 8601 időpontok).

color
string | null

Megjelenítési szín, például "#2c7be5".

is_recurring
boolean

true, ha az esemény egy ismétlődő főesemény. Az ismétlődő események egyszer kerülnek visszaadásra, NEM kibontva előfordulásokra, és nem módosíthatók a calendar.events.update hívással.

recurrence
object | null

Egy ismétlődő főesemény ismétlődési szabálya, vagy null egyedi esemény esetén. Csak olvasható.

recurrence mezői
freq
string | null

daily | weekly | monthly | yearly.

interval
integer | null
byweekday
string | null

Vesszővel elválasztott hétköznapkódok (például "MO,WE,FR").

until
string | null
count
integer | null
created_by
object | null

A munkatárs, aki létrehozta az eseményt.

created_by mezői
user_id
integer
name
string | null
created_at
string <date-time> | null
updated_at
string <date-time> | null

Adja át ezt a calendar.events.update hívásnak expected_updated_at értékként.

created_via_api
object | null

Akkor van jelen, ha a rekordot külső ügynök hozta létre ezen az API-n keresztül.

created_via_api mezői
kind
string

"key": statikus API-kulccsal létrehozva; "oauth": OAuth-on keresztül csatlakoztatott alkalmazás által létrehozva.

Lehetséges értékek: "key" "oauth"
key_id
integer

Az API-kulcs ("key" típus) vagy a csatlakoztatott alkalmazás ("oauth" típus) azonosítója; a kettő számozása külön történik.

key_name
string

Az a név, amelyet a felhasználó adott az API-kulcsnak, például "Grok integration", vagy a csatlakoztatott alkalmazás neve "oauth" típus esetén, például "Claude".

user_id
integer
user
string | null
at
string <date-time> | null
paginationkötelező
object
pagination mezői
limitkötelező
integer
offsetkötelező
integer
totalkötelező
integer

A találatként kapott rekordok teljes száma.

400

Hibás formátumú kérés: érvénytelen JSON törzs, rossz host (használja a www. hostot), vagy olvashatatlan kérés.

401

A kulcs hiányzik, érvénytelen, visszavonták vagy lejárt, vagy a hozzá tartozó felhasználó már nem aktív.

403

Hiányzó hatókör (scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.

404

Ismeretlen végpont, vagy a rekord nem létezik / nem látható a felhasználó számára.

405

Ezen az útvonalon nem elérhető metódus (a DELETE és a PUT soha nem az; a PATCH csak ott, ahol frissítés is elérhető).

422

A validáció sikertelen volt, vagy ismeretlen mező; a details.fields felsorolja a mezőhibákat.

429

A sebességkorlát túllépve; a Retry-After megadja, mikor próbálja újra.

503

Az iroda átmenetileg nem érhető el (karbantartás vagy beállítás van folyamatban); a Retry-After megadja, mikor próbálja újra.

default

Bármely egyéb hiba, ugyanabban a burokban.

Kérésminták

curl 'https://www.flowyer.hu/api/agent/calendar/events?from=2026-03-01T00%3A00%3A00%2B01%3A00&to=2026-03-31T23%3A59%3A59%2B01%3A00&limit=25' \
  -H 'Authorization: Bearer flw_...'

Válaszminták

{
  "data": [
    {
      "id": 5501,
      "calendar": {
        "id": 1234,
        "name": "string",
        "type": "office",
        "owner": {
          "user_id": 1234,
          "name": "string"
        }
      },
      "title": "string",
      "description": "string",
      "location": "string",
      "participants": "string",
      "start": "2026-03-02T09:00:00+01:00",
      "end": "string",
      "all_day": true,
      "color": "string",
      "is_recurring": true,
      "recurrence": {
        "freq": "string",
        "interval": 0,
        "byweekday": "string",
        "until": "string",
        "count": 0
      },
      "created_by": {
        "user_id": 1234,
        "name": "string"
      },
      "created_at": "2026-10-30T09:15:00+01:00",
      "updated_at": "2026-10-30T09:15:00+01:00",
      "created_via_api": {
        "kind": "key",
        "key_id": 1234,
        "key_name": "string",
        "user_id": 1234,
        "user": "string",
        "at": "2026-10-30T09:15:00+01:00"
      }
    }
  ],
  "pagination": {
    "limit": 25,
    "offset": 0,
    "total": 1
  }
}

Naptáresemény lekérése

GET /api/agent/calendar/events/{id}

Visszaad egy naptáreseményt a naptárával, az ismétlődési összefoglalójával és az updated_at zárolási tokennel a calendar.events.update számára. 404 választ ad, ha az esemény nem létezik, vagy a naptára nem látható a felhasználó számára.

Hatókör
calendar:read
Flowyer-jogosultság
calendar-office:read

Útvonal-paraméterek

idkötelező
integer>= 1

Eseményazonosító.

Példa: 5501

Válaszok

200

OK.

datakötelező
object
data mezői
id
integer
Példa: 5501
calendar
object

A naptár, amelyhez az esemény tartozik.

calendar mezői
id
integer | null

Tartalmazó naptárazonosító, vagy null az implicit megosztott iroda naptár esetén (egy tartalmazó nélküli, régi esemény).

name
string | null
type
string

"office" = a megosztott iroda naptár (minden irodai felhasználó megtekintheti és szerkesztheti); "personal" = egy felhasználó saját naptára, amely csak a tulajdonosa és azok számára látható, akikkel meg van osztva.

Lehetséges értékek: "office" "personal"
owner
object | null

Egy személyes naptár tulajdonosa; az iroda naptára esetén null.

owner mezői
user_id
integer
name
string | null
title
string | null

Az esemény címe. Egyszerű szöveg.

description
string | null

Az esemény leírása. Egyszerű szöveg.

location
string | null

Helyszín. Egyszerű szöveg.

participants
string | null

Résztvevők, szabad szöveg. Egyszerű szöveg.

start
string | null

Egész napos esemény: a kezdő dátum "YYYY-MM-DD". Időzített esemény: ISO 8601 az iroda időzónájában (a tárolt UTC időpont).

Példa: "2026-03-02T09:00:00+01:00"
end
string | null

Ugyanaz a kódolás, mint a start esetén. Egész napos eseménynél a záró dátum BELEÉRTENDŐ (a tárolt érték, nem a +1 napos érték, amelyet egy naptárrács használ). Null, ha az eseménynek nincs vége.

all_day
boolean

true egész napos esemény esetén (a start/end csak dátumok); false időzített esemény esetén (a start/end ISO 8601 időpontok).

color
string | null

Megjelenítési szín, például "#2c7be5".

is_recurring
boolean

true, ha az esemény egy ismétlődő főesemény. Az ismétlődő események egyszer kerülnek visszaadásra, NEM kibontva előfordulásokra, és nem módosíthatók a calendar.events.update hívással.

recurrence
object | null

Egy ismétlődő főesemény ismétlődési szabálya, vagy null egyedi esemény esetén. Csak olvasható.

recurrence mezői
freq
string | null

daily | weekly | monthly | yearly.

interval
integer | null
byweekday
string | null

Vesszővel elválasztott hétköznapkódok (például "MO,WE,FR").

until
string | null
count
integer | null
created_by
object | null

A munkatárs, aki létrehozta az eseményt.

created_by mezői
user_id
integer
name
string | null
created_at
string <date-time> | null
updated_at
string <date-time> | null

Adja át ezt a calendar.events.update hívásnak expected_updated_at értékként.

created_via_api
object | null

Akkor van jelen, ha a rekordot külső ügynök hozta létre ezen az API-n keresztül.

created_via_api mezői
kind
string

"key": statikus API-kulccsal létrehozva; "oauth": OAuth-on keresztül csatlakoztatott alkalmazás által létrehozva.

Lehetséges értékek: "key" "oauth"
key_id
integer

Az API-kulcs ("key" típus) vagy a csatlakoztatott alkalmazás ("oauth" típus) azonosítója; a kettő számozása külön történik.

key_name
string

Az a név, amelyet a felhasználó adott az API-kulcsnak, például "Grok integration", vagy a csatlakoztatott alkalmazás neve "oauth" típus esetén, például "Claude".

user_id
integer
user
string | null
at
string <date-time> | null
400

Hibás formátumú kérés: érvénytelen JSON törzs, rossz host (használja a www. hostot), vagy olvashatatlan kérés.

401

A kulcs hiányzik, érvénytelen, visszavonták vagy lejárt, vagy a hozzá tartozó felhasználó már nem aktív.

403

Hiányzó hatókör (scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.

404

Ismeretlen végpont, vagy a rekord nem létezik / nem látható a felhasználó számára.

405

Ezen az útvonalon nem elérhető metódus (a DELETE és a PUT soha nem az; a PATCH csak ott, ahol frissítés is elérhető).

422

A validáció sikertelen volt, vagy ismeretlen mező; a details.fields felsorolja a mezőhibákat.

429

A sebességkorlát túllépve; a Retry-After megadja, mikor próbálja újra.

503

Az iroda átmenetileg nem érhető el (karbantartás vagy beállítás van folyamatban); a Retry-After megadja, mikor próbálja újra.

default

Bármely egyéb hiba, ugyanabban a burokban.

Kérésminták

curl 'https://www.flowyer.hu/api/agent/calendar/events/5501' \
  -H 'Authorization: Bearer flw_...'

Válaszminták

{
  "data": {
    "id": 5501,
    "calendar": {
      "id": 1234,
      "name": "string",
      "type": "office",
      "owner": {
        "user_id": 1234,
        "name": "string"
      }
    },
    "title": "string",
    "description": "string",
    "location": "string",
    "participants": "string",
    "start": "2026-03-02T09:00:00+01:00",
    "end": "string",
    "all_day": true,
    "color": "string",
    "is_recurring": true,
    "recurrence": {
      "freq": "string",
      "interval": 0,
      "byweekday": "string",
      "until": "string",
      "count": 0
    },
    "created_by": {
      "user_id": 1234,
      "name": "string"
    },
    "created_at": "2026-10-30T09:15:00+01:00",
    "updated_at": "2026-10-30T09:15:00+01:00",
    "created_via_api": {
      "kind": "key",
      "key_id": 1234,
      "key_name": "string",
      "user_id": 1234,
      "user": "string",
      "at": "2026-10-30T09:15:00+01:00"
    }
  }
}

Naptáresemény létrehozása

POST /api/agent/calendar/events

Létrehoz egy egyedi naptáreseményt (időzített vagy egész napos) az iroda naptárában vagy egy Ön által szerkeszthető naptárban. Az időzített start/end tiszteletben tart egy ISO 8601 eltolást, a zóna nélküli időpont az iroda zónájában értelmeződik; egy egész napos záró dátum beleértendő. Ismétlődő események itt nem hozhatók létre. Nem kerül külső naptárakba továbbítva.

Hatókör
calendar:create
Flowyer-jogosultság
calendar-office:create

Fejléc-paraméterek

Idempotency-Key
stringlegfeljebb 128 karakter

Minden létrehozásnál ajánlott. Logikai műveletenként egyedi érték (például egy UUID). Ugyanaz az érték ugyanazt a rekordot adja vissza: az azzal való újrapróbálkozás az először létrehozott rekordot adja vissza ahelyett, hogy egy másodikat hozna létre. A különböző értékek mindig különböző rekordokat hoznak létre. Azok az ügyfelek, amelyek nem tudnak fejléceket küldeni, ugyanazt az értéket átadhatják az idempotency_key törzsmezőben. Betűk, számjegyek, _, -, : vagy ., legfeljebb 128 karakter.

Minta: ^[A-Za-z0-9_\-:.]{1,128}$

Kérés törzse application/json

titlekötelező
stringlegalább 1 karakterlegfeljebb 255 karakter

Az esemény címe. Egyszerű szöveg; a "<" és a ">" nem engedélyezett (escape nélkül kerül az emlékeztető értesítésbe).

Minta: ^[^<>]*$
Példa: "Ügyfél egyeztetés"
startkötelező
string

Egész napos (all_day true): egy dátum "YYYY-MM-DD". Időzített (all_day false): ISO 8601; egy eltolás tiszteletben tartva, a zóna nélküli időpont az iroda zónájában értelmeződik.

Példa: "2026-03-02T09:00:00+01:00"
end
string | null

Ugyanaz a kódolás, mint a start esetén. Alapértelmezés = start. Egész napos eseménynél a záró dátum BELEÉRTENDŐ. Nem lehet a start előtt (egyébként 422).

all_day
boolean

Hogy az esemény egész napos-e. Alapértelmezés false (időzített).

Alapértelmezés: false
calendar_id
integer | null>= 1

Cél tartalmazó naptár; alapértelmezés = az iroda naptára. Szerkesztési joggal kell rendelkeznie rá (egyébként 403). Csak a személyes naptár funkcióval rendelkező bérlőnél.

location
string | nulllegfeljebb 1000 karakter

Helyszín. Egyszerű szöveg; a "<" és a ">" nem engedélyezett.

Minta: ^[^<>]*$
description
string | nulllegfeljebb 10000 karakter

Leírás, egyszerű szöveg (nem HTML); a "<" és a ">" nem engedélyezett.

Minta: ^[^<>]*$
participants
string | nulllegfeljebb 1000 karakter

Résztvevők, szabad szöveg. Egyszerű szöveg; a "<" és a ">" nem engedélyezett.

Minta: ^[^<>]*$
color
string | nulllegfeljebb 32 karakter

Megjelenítési szín, például "#2c7be5".

Minta: ^#?[A-Za-z0-9_-]{1,31}$
idempotency_key
stringlegfeljebb 128 karakter

Ugyanaz a szerepe, mint az Idempotency-Key fejlécnek, azon ügyfelek számára, amelyek nem tudnak egyéni fejléceket küldeni. Betűk, számjegyek, _, -, : vagy ., legfeljebb 128 karakter.

Minta: ^[A-Za-z0-9_\-:.]{1,128}$
Példa: "b8f1c2e0-6f7a-4d2e-9c1b-2a3d4e5f6a7b"

Válaszok

201

Létrehozva.

datakötelező
object
data mezői
id
integer
Példa: 5501
calendar
object

A naptár, amelyhez az esemény tartozik.

calendar mezői
id
integer | null

Tartalmazó naptárazonosító, vagy null az implicit megosztott iroda naptár esetén (egy tartalmazó nélküli, régi esemény).

name
string | null
type
string

"office" = a megosztott iroda naptár (minden irodai felhasználó megtekintheti és szerkesztheti); "personal" = egy felhasználó saját naptára, amely csak a tulajdonosa és azok számára látható, akikkel meg van osztva.

Lehetséges értékek: "office" "personal"
owner
object | null

Egy személyes naptár tulajdonosa; az iroda naptára esetén null.

owner mezői
user_id
integer
name
string | null
title
string | null

Az esemény címe. Egyszerű szöveg.

description
string | null

Az esemény leírása. Egyszerű szöveg.

location
string | null

Helyszín. Egyszerű szöveg.

participants
string | null

Résztvevők, szabad szöveg. Egyszerű szöveg.

start
string | null

Egész napos esemény: a kezdő dátum "YYYY-MM-DD". Időzített esemény: ISO 8601 az iroda időzónájában (a tárolt UTC időpont).

Példa: "2026-03-02T09:00:00+01:00"
end
string | null

Ugyanaz a kódolás, mint a start esetén. Egész napos eseménynél a záró dátum BELEÉRTENDŐ (a tárolt érték, nem a +1 napos érték, amelyet egy naptárrács használ). Null, ha az eseménynek nincs vége.

all_day
boolean

true egész napos esemény esetén (a start/end csak dátumok); false időzített esemény esetén (a start/end ISO 8601 időpontok).

color
string | null

Megjelenítési szín, például "#2c7be5".

is_recurring
boolean

true, ha az esemény egy ismétlődő főesemény. Az ismétlődő események egyszer kerülnek visszaadásra, NEM kibontva előfordulásokra, és nem módosíthatók a calendar.events.update hívással.

recurrence
object | null

Egy ismétlődő főesemény ismétlődési szabálya, vagy null egyedi esemény esetén. Csak olvasható.

recurrence mezői
freq
string | null

daily | weekly | monthly | yearly.

interval
integer | null
byweekday
string | null

Vesszővel elválasztott hétköznapkódok (például "MO,WE,FR").

until
string | null
count
integer | null
created_by
object | null

A munkatárs, aki létrehozta az eseményt.

created_by mezői
user_id
integer
name
string | null
created_at
string <date-time> | null
updated_at
string <date-time> | null

Adja át ezt a calendar.events.update hívásnak expected_updated_at értékként.

created_via_api
object | null

Akkor van jelen, ha a rekordot külső ügynök hozta létre ezen az API-n keresztül.

created_via_api mezői
kind
string

"key": statikus API-kulccsal létrehozva; "oauth": OAuth-on keresztül csatlakoztatott alkalmazás által létrehozva.

Lehetséges értékek: "key" "oauth"
key_id
integer

Az API-kulcs ("key" típus) vagy a csatlakoztatott alkalmazás ("oauth" típus) azonosítója; a kettő számozása külön történik.

key_name
string

Az a név, amelyet a felhasználó adott az API-kulcsnak, például "Grok integration", vagy a csatlakoztatott alkalmazás neve "oauth" típus esetén, például "Claude".

user_id
integer
user
string | null
at
string <date-time> | null
created
boolean
Érték: true
200

Idempotens visszajátszás: ez az Idempotency-Key (vagy kulcs nélkül egy azonos kérés 120 másodpercen belül) már létrehozta a rekordot; a rendszer újra visszaadja, semmi új nem jött létre.

datakötelező
object
data mezői
id
integer
Példa: 5501
calendar
object

A naptár, amelyhez az esemény tartozik.

calendar mezői
id
integer | null

Tartalmazó naptárazonosító, vagy null az implicit megosztott iroda naptár esetén (egy tartalmazó nélküli, régi esemény).

name
string | null
type
string

"office" = a megosztott iroda naptár (minden irodai felhasználó megtekintheti és szerkesztheti); "personal" = egy felhasználó saját naptára, amely csak a tulajdonosa és azok számára látható, akikkel meg van osztva.

Lehetséges értékek: "office" "personal"
owner
object | null

Egy személyes naptár tulajdonosa; az iroda naptára esetén null.

owner mezői
user_id
integer
name
string | null
title
string | null

Az esemény címe. Egyszerű szöveg.

description
string | null

Az esemény leírása. Egyszerű szöveg.

location
string | null

Helyszín. Egyszerű szöveg.

participants
string | null

Résztvevők, szabad szöveg. Egyszerű szöveg.

start
string | null

Egész napos esemény: a kezdő dátum "YYYY-MM-DD". Időzített esemény: ISO 8601 az iroda időzónájában (a tárolt UTC időpont).

Példa: "2026-03-02T09:00:00+01:00"
end
string | null

Ugyanaz a kódolás, mint a start esetén. Egész napos eseménynél a záró dátum BELEÉRTENDŐ (a tárolt érték, nem a +1 napos érték, amelyet egy naptárrács használ). Null, ha az eseménynek nincs vége.

all_day
boolean

true egész napos esemény esetén (a start/end csak dátumok); false időzített esemény esetén (a start/end ISO 8601 időpontok).

color
string | null

Megjelenítési szín, például "#2c7be5".

is_recurring
boolean

true, ha az esemény egy ismétlődő főesemény. Az ismétlődő események egyszer kerülnek visszaadásra, NEM kibontva előfordulásokra, és nem módosíthatók a calendar.events.update hívással.

recurrence
object | null

Egy ismétlődő főesemény ismétlődési szabálya, vagy null egyedi esemény esetén. Csak olvasható.

recurrence mezői
freq
string | null

daily | weekly | monthly | yearly.

interval
integer | null
byweekday
string | null

Vesszővel elválasztott hétköznapkódok (például "MO,WE,FR").

until
string | null
count
integer | null
created_by
object | null

A munkatárs, aki létrehozta az eseményt.

created_by mezői
user_id
integer
name
string | null
created_at
string <date-time> | null
updated_at
string <date-time> | null

Adja át ezt a calendar.events.update hívásnak expected_updated_at értékként.

created_via_api
object | null

Akkor van jelen, ha a rekordot külső ügynök hozta létre ezen az API-n keresztül.

created_via_api mezői
kind
string

"key": statikus API-kulccsal létrehozva; "oauth": OAuth-on keresztül csatlakoztatott alkalmazás által létrehozva.

Lehetséges értékek: "key" "oauth"
key_id
integer

Az API-kulcs ("key" típus) vagy a csatlakoztatott alkalmazás ("oauth" típus) azonosítója; a kettő számozása külön történik.

key_name
string

Az a név, amelyet a felhasználó adott az API-kulcsnak, például "Grok integration", vagy a csatlakoztatott alkalmazás neve "oauth" típus esetén, például "Claude".

user_id
integer
user
string | null
at
string <date-time> | null
created
boolean
Érték: false
idempotent_replay
boolean
Érték: true
400

Hibás formátumú kérés: érvénytelen JSON törzs, rossz host (használja a www. hostot), vagy olvashatatlan kérés.

401

A kulcs hiányzik, érvénytelen, visszavonták vagy lejárt, vagy a hozzá tartozó felhasználó már nem aktív.

403

Hiányzó hatókör (scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.

404

Ismeretlen végpont, vagy a rekord nem létezik / nem látható a felhasználó számára. replay_not_visible: ez az Idempotency-Key (vagy kulcs nélkül egy azonos kérés) már létrehozta a rekordot (details.record_id), de azt azóta törölték, vagy nem látható a felhasználó számára; semmi új nem jött létre, ne hozza létre újra.

405

Ezen az útvonalon nem elérhető metódus (a DELETE és a PUT soha nem az; a PATCH csak ott, ahol frissítés is elérhető).

409

Az Idempotency-Key kulcsot egy másik erőforrástípushoz használták (idempotency_key_reused), vagy kulcs nélkül egy azonos kérés feldolgozása éppen most zajlik (duplicate_in_progress; próbálja újra rövidesen).

413

A kérés törzse túl nagy (request_too_large).

422

A validáció sikertelen volt, vagy ismeretlen mező; a details.fields felsorolja a mezőhibákat.

429

A sebességkorlát túllépve; a Retry-After megadja, mikor próbálja újra.

503

Az iroda átmenetileg nem érhető el (karbantartás vagy beállítás van folyamatban); a Retry-After megadja, mikor próbálja újra.

default

Bármely egyéb hiba, ugyanabban a burokban.

Kérésminták

curl -X POST 'https://www.flowyer.hu/api/agent/calendar/events' \
  -H 'Authorization: Bearer flw_...' \
  -H 'Content-Type: application/json' \
  -H 'Idempotency-Key: 7f3a9c21-1b2c-4d5e-8f90-0a1b2c3d4e5f' \
  -d '{
  "title": "Ügyfél egyeztetés",
  "start": "2026-03-02T09:00:00+01:00"
}'

Válaszminták

{
  "data": {
    "id": 5501,
    "calendar": {
      "id": 1234,
      "name": "string",
      "type": "office",
      "owner": {
        "user_id": 1234,
        "name": "string"
      }
    },
    "title": "string",
    "description": "string",
    "location": "string",
    "participants": "string",
    "start": "2026-03-02T09:00:00+01:00",
    "end": "string",
    "all_day": true,
    "color": "string",
    "is_recurring": true,
    "recurrence": {
      "freq": "string",
      "interval": 0,
      "byweekday": "string",
      "until": "string",
      "count": 0
    },
    "created_by": {
      "user_id": 1234,
      "name": "string"
    },
    "created_at": "2026-10-30T09:15:00+01:00",
    "updated_at": "2026-10-30T09:15:00+01:00",
    "created_via_api": {
      "kind": "key",
      "key_id": 1234,
      "key_name": "string",
      "user_id": 1234,
      "user": "string",
      "at": "2026-10-30T09:15:00+01:00"
    }
  },
  "created": true
}

Naptáresemény módosítása

PATCH /api/agent/calendar/events/{id}

Módosít egy egyedi naptáreseményt: cím, start/end, all_day, helyszín, leírás, résztvevők, szín. Csak az elküldött mezőket írja; a "" törli a helyszínt/leírást/résztvevőket. Egy ismétlődő esemény 422 választ ad. Adja meg az expected_updated_at értéket a legutóbbi olvasásából; ütköző módosítás esetén a válasz 409.

Hatókör
calendar:update
Flowyer-jogosultság
calendar-office:modify

Útvonal-paraméterek

idkötelező
integer>= 1

A módosítandó rekord azonosítója.

Kérés törzse application/json

expected_updated_at
string <date-time> | null

A rekord legutóbbi olvasásából származó updated_at érték (minden esetben kötelező, ha a rekordnak van ilyen). Ha a rekord azóta megváltozott (egy kolléga szerkesztette), az API 409-et ad válaszul, és újra kell olvasnia, mielőtt újrapróbálkozna. Egy olyan régebbi rekord, amelynek az updated_at értéke null, a null értéket veszi fel.

title
stringlegalább 1 karakterlegfeljebb 255 karakter

Új cím. Egyszerű szöveg; a "<" és a ">" nem engedélyezett.

Minta: ^[^<>]*$
start
string

Új kezdés. Egész napos: "YYYY-MM-DD". Időzített: ISO 8601 (egy eltolás tiszteletben tartva, a zóna nélküli időpont az iroda zónájában értelmezve). Újrakódolva, ha az all_day megváltozik.

end
string | null

Új vég, ugyanaz a kódolás, mint a start esetén; a "" törli. Egész napos eseménynél a záró dátum beleértendő. Nem lehet a start előtt (egyébként 422).

all_day
boolean

Ha elküldi, a start/end ennek megfelelően újrakódolódik; ha elhagyja, a sor aktuális all_day értéke kerül felhasználásra.

location
string | nulllegfeljebb 1000 karakter

Helyszín. Egyszerű szöveg; a "<" és a ">" nem engedélyezett. A "" törli.

Minta: ^[^<>]*$
description
string | nulllegfeljebb 10000 karakter

Leírás, egyszerű szöveg (nem HTML); a "<" és a ">" nem engedélyezett. A "" törli.

Minta: ^[^<>]*$
participants
string | nulllegfeljebb 1000 karakter

Résztvevők, szabad szöveg. Egyszerű szöveg; a "<" és a ">" nem engedélyezett. A "" törli.

Minta: ^[^<>]*$
color
string | nulllegfeljebb 32 karakter

Megjelenítési szín, például "#2c7be5". A "" törli.

Minta: ^#?[A-Za-z0-9_-]{1,31}$

Válaszok

200

Frissítve.

datakötelező
object
data mezői
id
integer
Példa: 5501
calendar
object

A naptár, amelyhez az esemény tartozik.

calendar mezői
id
integer | null

Tartalmazó naptárazonosító, vagy null az implicit megosztott iroda naptár esetén (egy tartalmazó nélküli, régi esemény).

name
string | null
type
string

"office" = a megosztott iroda naptár (minden irodai felhasználó megtekintheti és szerkesztheti); "personal" = egy felhasználó saját naptára, amely csak a tulajdonosa és azok számára látható, akikkel meg van osztva.

Lehetséges értékek: "office" "personal"
owner
object | null

Egy személyes naptár tulajdonosa; az iroda naptára esetén null.

owner mezői
user_id
integer
name
string | null
title
string | null

Az esemény címe. Egyszerű szöveg.

description
string | null

Az esemény leírása. Egyszerű szöveg.

location
string | null

Helyszín. Egyszerű szöveg.

participants
string | null

Résztvevők, szabad szöveg. Egyszerű szöveg.

start
string | null

Egész napos esemény: a kezdő dátum "YYYY-MM-DD". Időzített esemény: ISO 8601 az iroda időzónájában (a tárolt UTC időpont).

Példa: "2026-03-02T09:00:00+01:00"
end
string | null

Ugyanaz a kódolás, mint a start esetén. Egész napos eseménynél a záró dátum BELEÉRTENDŐ (a tárolt érték, nem a +1 napos érték, amelyet egy naptárrács használ). Null, ha az eseménynek nincs vége.

all_day
boolean

true egész napos esemény esetén (a start/end csak dátumok); false időzített esemény esetén (a start/end ISO 8601 időpontok).

color
string | null

Megjelenítési szín, például "#2c7be5".

is_recurring
boolean

true, ha az esemény egy ismétlődő főesemény. Az ismétlődő események egyszer kerülnek visszaadásra, NEM kibontva előfordulásokra, és nem módosíthatók a calendar.events.update hívással.

recurrence
object | null

Egy ismétlődő főesemény ismétlődési szabálya, vagy null egyedi esemény esetén. Csak olvasható.

recurrence mezői
freq
string | null

daily | weekly | monthly | yearly.

interval
integer | null
byweekday
string | null

Vesszővel elválasztott hétköznapkódok (például "MO,WE,FR").

until
string | null
count
integer | null
created_by
object | null

A munkatárs, aki létrehozta az eseményt.

created_by mezői
user_id
integer
name
string | null
created_at
string <date-time> | null
updated_at
string <date-time> | null

Adja át ezt a calendar.events.update hívásnak expected_updated_at értékként.

created_via_api
object | null

Akkor van jelen, ha a rekordot külső ügynök hozta létre ezen az API-n keresztül.

created_via_api mezői
kind
string

"key": statikus API-kulccsal létrehozva; "oauth": OAuth-on keresztül csatlakoztatott alkalmazás által létrehozva.

Lehetséges értékek: "key" "oauth"
key_id
integer

Az API-kulcs ("key" típus) vagy a csatlakoztatott alkalmazás ("oauth" típus) azonosítója; a kettő számozása külön történik.

key_name
string

Az a név, amelyet a felhasználó adott az API-kulcsnak, például "Grok integration", vagy a csatlakoztatott alkalmazás neve "oauth" típus esetén, például "Claude".

user_id
integer
user
string | null
at
string <date-time> | null
updated
boolean
Érték: true
400

Hibás formátumú kérés: érvénytelen JSON törzs, rossz host (használja a www. hostot), vagy olvashatatlan kérés.

401

A kulcs hiányzik, érvénytelen, visszavonták vagy lejárt, vagy a hozzá tartozó felhasználó már nem aktív.

403

Hiányzó hatókör (scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.

404

Ismeretlen végpont, vagy a rekord nem létezik / nem látható a felhasználó számára.

405

Ezen az útvonalon nem elérhető metódus (a DELETE és a PUT soha nem az; a PATCH csak ott, ahol frissítés is elérhető).

409

A rekord megváltozott, mióta beolvasta (record_conflict: az expected_updated_at már nem egyezik; olvassa be újra, és próbálja újra az új updated_at értékkel).

413

A kérés törzse túl nagy (request_too_large).

422

A validáció sikertelen volt, vagy ismeretlen mező; a details.fields felsorolja a mezőhibákat.

429

A sebességkorlát túllépve; a Retry-After megadja, mikor próbálja újra.

503

Az iroda átmenetileg nem érhető el (karbantartás vagy beállítás van folyamatban); a Retry-After megadja, mikor próbálja újra.

default

Bármely egyéb hiba, ugyanabban a burokban.

Kérésminták

curl -X PATCH 'https://www.flowyer.hu/api/agent/calendar/events/1234' \
  -H 'Authorization: Bearer flw_...' \
  -H 'Content-Type: application/json' \
  -d '{
  "expected_updated_at": "2026-10-30T09:15:00+01:00",
  "title": "string"
}'

Válaszminták

{
  "data": {
    "id": 5501,
    "calendar": {
      "id": 1234,
      "name": "string",
      "type": "office",
      "owner": {
        "user_id": 1234,
        "name": "string"
      }
    },
    "title": "string",
    "description": "string",
    "location": "string",
    "participants": "string",
    "start": "2026-03-02T09:00:00+01:00",
    "end": "string",
    "all_day": true,
    "color": "string",
    "is_recurring": true,
    "recurrence": {
      "freq": "string",
      "interval": 0,
      "byweekday": "string",
      "until": "string",
      "count": 0
    },
    "created_by": {
      "user_id": 1234,
      "name": "string"
    },
    "created_at": "2026-10-30T09:15:00+01:00",
    "updated_at": "2026-10-30T09:15:00+01:00",
    "created_via_api": {
      "kind": "key",
      "key_id": 1234,
      "key_name": "string",
      "user_id": 1234,
      "user": "string",
      "at": "2026-10-30T09:15:00+01:00"
    }
  },
  "updated": true
}

Időpontfoglalás

Foglalások listázása

GET /api/agent/bookings

Listázza az iroda időpontfoglalásait, a legújabbtól kezdve. Opcionálisan szűrhető egy from/to napi tartományra (a foglalás időzónája szerint), egy ügyvédre (user_id), egy státuszra vagy az updated_since értékre. Minden kulcsbirtokos látja az összes ügyvéd foglalásait.

Hatókör
bookings:read

Lekérdezési paraméterek

from
string <date>

Csak az ezen a napon (YYYY-MM-DD) vagy azt követően lévő foglalások, a foglalási zóna dátumához szó szerint illesztve.

Példa: "2026-01-01"
to
string <date>

Csak az ezen a napon (YYYY-MM-DD) vagy azt megelőzően lévő foglalások.

Példa: "2026-12-31"
user_id
integer>= 1

Szűrés egyetlen ügyvédre (user_id a colleagues.list-ből). Hagyja el az iroda összes ügyvédjéhez.

status
string

Szűrés státusz szerint.

Lehetséges értékek: "pending" "confirmed" "cancelled" "completed" "awaiting_payment" "expired"
updated_since
string <date-time>

Csak az ezen az ISO 8601 időpontban vagy azt követően módosított foglalások (az updated_at az iroda zónája szerinti, időzóna nélküli időpont).

limit
integer>= 1<= 100

Oldalméret, 1-100. Alapértelmezés: 25.

Alapértelmezés: 25
Példa: 25
offset
integer>= 0

A kihagyandó rekordok száma. Az előző oldal offset + limit értékével jut el a következő oldalra; a pagination.total a teljes darabszámot adja meg.

Alapértelmezés: 0
Példa: 0

Válaszok

200

OK.

datakötelező
object[]
data mezői
id
integer
Példa: 4321
booking_number
string

Ember által olvasható foglalási szám, például "#B-0001".

status
string

pending = az ügyvéd megerősítésére vár; confirmed = jóváhagyva; cancelled/completed; az awaiting_payment/expired a megerősítés előtti fizetés folyamatához tartozik.

Lehetséges értékek: "pending" "confirmed" "cancelled" "completed" "awaiting_payment" "expired"
source
string

Honnan származik a foglalás. Az API-n keresztül létrehozott foglalás "manual".

Lehetséges értékek: "flowyer" "website" "embed_widget" "manual"
lawyer
object | null

Az ügyvéd (user_id a colleagues.list-ből), akivel az időpont van.

lawyer mezői
user_id
integer
name
string | null
date
string <date> | null

Naptári dátum a foglalás időzónájában (YYYY-MM-DD), szó szerint tárolva.

start_time
string | null

Kezdési idő HH:MM a foglalás időzónájában.

end_time
string | null

Befejezési idő HH:MM a foglalás időzónájában.

start
string <date-time> | null

A kezdés egyértelmű ISO 8601 időpontja, a foglalás időzónájával összeállítva. Ezt használja az időpontok zónák közötti összehasonlításához.

end
string <date-time> | null

A befejezés egyértelmű ISO 8601 időpontja.

timezone
string

A foglalás időzónája (booking_settings.timezone), például "Europe/Budapest". Ez határozza meg a date, start_time és end_time értékeket.

location_preference
string

Hogy a konzultáció az irodában vagy online zajlik-e.

Lehetséges értékek: "office" "online"
meeting_link
string | null

Az online találkozó URL-je, ha be van állítva.

client
object

A foglalást végző külső ügyfél: név, e-mail, telefon és a tárgy/megjegyzések. Személyes adat - csak az iroda munkatársai számára.

client mezői
name
string | null
email
string | null
phone
string | null
description
string | null
gdpr_consent
boolean

Hogy az ügyfél adatkezelési hozzájárulása rögzítve van-e.

gdpr_consent_at
string <date-time> | null

Mikor rögzítették a hozzájárulást.

cancel_reason
string | null

A lemondáskor rögzített indok.

payment
object

Csak olvasható fizetési állapot. Az API soha nem módosítja a fizetést; a foglalási díjakat a Flowyerben kezelik.

payment mezői
status
string
Lehetséges értékek: "none" "awaiting" "partial" "paid" "refunded"
method
string | null
Lehetséges értékek: "card" "transfer"
amount
number | null
currency
string | null
invoice_number
string | null
confirmed_at
string <date-time> | null
cancelled_at
string <date-time> | null
created_at
string <date-time> | null
updated_at
string <date-time> | null

Adja át ezt a bookings.update / bookings.confirm / bookings.cancel hívásnak expected_updated_at értékként.

created_via_api
object | null

Akkor van jelen, ha a foglalást külső ügynök hozta létre ezen az API-n keresztül.

created_via_api mezői
kind
string

"key": statikus API-kulccsal létrehozva; "oauth": OAuth-on keresztül csatlakoztatott alkalmazás által létrehozva.

Lehetséges értékek: "key" "oauth"
key_id
integer

Az API-kulcs ("key" típus) vagy a csatlakoztatott alkalmazás ("oauth" típus) azonosítója; a kettő számozása külön történik.

key_name
string

Az a név, amelyet a felhasználó adott az API-kulcsnak, például "Grok integration", vagy a csatlakoztatott alkalmazás neve "oauth" típus esetén, például "Claude".

user_id
integer
user
string | null
at
string <date-time> | null
paginationkötelező
object
pagination mezői
limitkötelező
integer
offsetkötelező
integer
totalkötelező
integer

A találatként kapott rekordok teljes száma.

400

Hibás formátumú kérés: érvénytelen JSON törzs, rossz host (használja a www. hostot), vagy olvashatatlan kérés.

401

A kulcs hiányzik, érvénytelen, visszavonták vagy lejárt, vagy a hozzá tartozó felhasználó már nem aktív.

403

Hiányzó scope (scope_missing), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.

404

Ismeretlen végpont, vagy a rekord nem létezik / nem látható a felhasználó számára.

405

Ezen az útvonalon nem elérhető metódus (a DELETE és a PUT soha nem az; a PATCH csak ott, ahol frissítés is elérhető).

422

A validáció sikertelen volt, vagy ismeretlen mező; a details.fields felsorolja a mezőhibákat.

429

A sebességkorlát túllépve; a Retry-After megadja, mikor próbálja újra.

503

Az iroda átmenetileg nem érhető el (karbantartás vagy beállítás van folyamatban); a Retry-After megadja, mikor próbálja újra.

default

Bármely egyéb hiba, ugyanabban a burokban.

Kérésminták

curl 'https://www.flowyer.hu/api/agent/bookings?from=2026-01-01&to=2026-12-31&limit=25' \
  -H 'Authorization: Bearer flw_...'

Válaszminták

{
  "data": [
    {
      "id": 4321,
      "booking_number": "string",
      "status": "pending",
      "source": "flowyer",
      "lawyer": {
        "user_id": 1234,
        "name": "string"
      },
      "date": "2026-10-30",
      "start_time": "string",
      "end_time": "string",
      "start": "2026-10-30T09:15:00+01:00",
      "end": "2026-10-30T09:15:00+01:00",
      "timezone": "string",
      "location_preference": "office",
      "meeting_link": "string",
      "client": {
        "name": "string",
        "email": "info@example.hu",
        "phone": "string",
        "description": "string"
      },
      "gdpr_consent": true,
      "gdpr_consent_at": "2026-10-30T09:15:00+01:00",
      "cancel_reason": "string",
      "payment": {
        "status": "none",
        "method": "card",
        "amount": 0,
        "currency": "string",
        "invoice_number": "string"
      },
      "confirmed_at": "2026-10-30T09:15:00+01:00",
      "cancelled_at": "2026-10-30T09:15:00+01:00",
      "created_at": "2026-10-30T09:15:00+01:00",
      "updated_at": "2026-10-30T09:15:00+01:00",
      "created_via_api": {
        "kind": "key",
        "key_id": 1234,
        "key_name": "string",
        "user_id": 1234,
        "user": "string",
        "at": "2026-10-30T09:15:00+01:00"
      }
    }
  ],
  "pagination": {
    "limit": 25,
    "offset": 0,
    "total": 1
  }
}

Foglalás lekérése

GET /api/agent/bookings/{id}

Visszaad egy időpontfoglalást az ügyvéddel, az ügyfél adataival, a kezdő/záró időpontokkal, a fizetési állapottal és az updated_at zárolási tokennel a bookings.update / .confirm / .cancel számára. 404 választ ad, ha a foglalás nem létezik ebben az irodában.

Hatókör
bookings:read

Útvonal-paraméterek

idkötelező
integer>= 1

Foglalásazonosító.

Példa: 4321

Válaszok

200

OK.

datakötelező
object
data mezői
id
integer
Példa: 4321
booking_number
string

Ember által olvasható foglalási szám, például "#B-0001".

status
string

pending = az ügyvéd megerősítésére vár; confirmed = jóváhagyva; cancelled/completed; az awaiting_payment/expired a megerősítés előtti fizetés folyamatához tartozik.

Lehetséges értékek: "pending" "confirmed" "cancelled" "completed" "awaiting_payment" "expired"
source
string

Honnan származik a foglalás. Az API-n keresztül létrehozott foglalás "manual".

Lehetséges értékek: "flowyer" "website" "embed_widget" "manual"
lawyer
object | null

Az ügyvéd (user_id a colleagues.list-ből), akivel az időpont van.

lawyer mezői
user_id
integer
name
string | null
date
string <date> | null

Naptári dátum a foglalás időzónájában (YYYY-MM-DD), szó szerint tárolva.

start_time
string | null

Kezdési idő HH:MM a foglalás időzónájában.

end_time
string | null

Befejezési idő HH:MM a foglalás időzónájában.

start
string <date-time> | null

A kezdés egyértelmű ISO 8601 időpontja, a foglalás időzónájával összeállítva. Ezt használja az időpontok zónák közötti összehasonlításához.

end
string <date-time> | null

A befejezés egyértelmű ISO 8601 időpontja.

timezone
string

A foglalás időzónája (booking_settings.timezone), például "Europe/Budapest". Ez határozza meg a date, start_time és end_time értékeket.

location_preference
string

Hogy a konzultáció az irodában vagy online zajlik-e.

Lehetséges értékek: "office" "online"
meeting_link
string | null

Az online találkozó URL-je, ha be van állítva.

client
object

A foglalást végző külső ügyfél: név, e-mail, telefon és a tárgy/megjegyzések. Személyes adat - csak az iroda munkatársai számára.

client mezői
name
string | null
email
string | null
phone
string | null
description
string | null
gdpr_consent
boolean

Hogy az ügyfél adatkezelési hozzájárulása rögzítve van-e.

gdpr_consent_at
string <date-time> | null

Mikor rögzítették a hozzájárulást.

cancel_reason
string | null

A lemondáskor rögzített indok.

payment
object

Csak olvasható fizetési állapot. Az API soha nem módosítja a fizetést; a foglalási díjakat a Flowyerben kezelik.

payment mezői
status
string
Lehetséges értékek: "none" "awaiting" "partial" "paid" "refunded"
method
string | null
Lehetséges értékek: "card" "transfer"
amount
number | null
currency
string | null
invoice_number
string | null
confirmed_at
string <date-time> | null
cancelled_at
string <date-time> | null
created_at
string <date-time> | null
updated_at
string <date-time> | null

Adja át ezt a bookings.update / bookings.confirm / bookings.cancel hívásnak expected_updated_at értékként.

created_via_api
object | null

Akkor van jelen, ha a foglalást külső ügynök hozta létre ezen az API-n keresztül.

created_via_api mezői
kind
string

"key": statikus API-kulccsal létrehozva; "oauth": OAuth-on keresztül csatlakoztatott alkalmazás által létrehozva.

Lehetséges értékek: "key" "oauth"
key_id
integer

Az API-kulcs ("key" típus) vagy a csatlakoztatott alkalmazás ("oauth" típus) azonosítója; a kettő számozása külön történik.

key_name
string

Az a név, amelyet a felhasználó adott az API-kulcsnak, például "Grok integration", vagy a csatlakoztatott alkalmazás neve "oauth" típus esetén, például "Claude".

user_id
integer
user
string | null
at
string <date-time> | null
400

Hibás formátumú kérés: érvénytelen JSON törzs, rossz host (használja a www. hostot), vagy olvashatatlan kérés.

401

A kulcs hiányzik, érvénytelen, visszavonták vagy lejárt, vagy a hozzá tartozó felhasználó már nem aktív.

403

Hiányzó scope (scope_missing), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.

404

Ismeretlen végpont, vagy a rekord nem létezik / nem látható a felhasználó számára.

405

Ezen az útvonalon nem elérhető metódus (a DELETE és a PUT soha nem az; a PATCH csak ott, ahol frissítés is elérhető).

422

A validáció sikertelen volt, vagy ismeretlen mező; a details.fields felsorolja a mezőhibákat.

429

A sebességkorlát túllépve; a Retry-After megadja, mikor próbálja újra.

503

Az iroda átmenetileg nem érhető el (karbantartás vagy beállítás van folyamatban); a Retry-After megadja, mikor próbálja újra.

default

Bármely egyéb hiba, ugyanabban a burokban.

Kérésminták

curl 'https://www.flowyer.hu/api/agent/bookings/4321' \
  -H 'Authorization: Bearer flw_...'

Válaszminták

{
  "data": {
    "id": 4321,
    "booking_number": "string",
    "status": "pending",
    "source": "flowyer",
    "lawyer": {
      "user_id": 1234,
      "name": "string"
    },
    "date": "2026-10-30",
    "start_time": "string",
    "end_time": "string",
    "start": "2026-10-30T09:15:00+01:00",
    "end": "2026-10-30T09:15:00+01:00",
    "timezone": "string",
    "location_preference": "office",
    "meeting_link": "string",
    "client": {
      "name": "string",
      "email": "info@example.hu",
      "phone": "string",
      "description": "string"
    },
    "gdpr_consent": true,
    "gdpr_consent_at": "2026-10-30T09:15:00+01:00",
    "cancel_reason": "string",
    "payment": {
      "status": "none",
      "method": "card",
      "amount": 0,
      "currency": "string",
      "invoice_number": "string"
    },
    "confirmed_at": "2026-10-30T09:15:00+01:00",
    "cancelled_at": "2026-10-30T09:15:00+01:00",
    "created_at": "2026-10-30T09:15:00+01:00",
    "updated_at": "2026-10-30T09:15:00+01:00",
    "created_via_api": {
      "kind": "key",
      "key_id": 1234,
      "key_name": "string",
      "user_id": 1234,
      "user": "string",
      "at": "2026-10-30T09:15:00+01:00"
    }
  }
}

Foglalás létrehozása

POST /api/agent/bookings

Lefoglal egy időpontot, és E-MAILT KÜLD AZ ÜGYFÉLNEK a megerősítésről. Szabad idősávot igényel az ügyvédnél (egyébként 409); az iroda naptára soha nem blokkol. A source értéke "manual". Egy Idempotency-Key visszajátszás sem újra nem foglal, sem újra nem küld e-mailt.

Hatókör
bookings:create

Fejléc-paraméterek

Idempotency-Key
stringlegfeljebb 128 karakter

Minden létrehozásnál ajánlott. Logikai műveletenként egyedi érték (például egy UUID). Ugyanaz az érték ugyanazt a rekordot adja vissza: az azzal való újrapróbálkozás az először létrehozott rekordot adja vissza ahelyett, hogy egy másodikat hozna létre. A különböző értékek mindig különböző rekordokat hoznak létre. Azok az ügyfelek, amelyek nem tudnak fejléceket küldeni, ugyanazt az értéket átadhatják az idempotency_key törzsmezőben. Betűk, számjegyek, _, -, : vagy ., legfeljebb 128 karakter.

Minta: ^[A-Za-z0-9_\-:.]{1,128}$

Kérés törzse application/json

user_idkötelező
integer>= 1

Az ügyvéd, akivel az időpont létrejön (user_id a colleagues.list-ből; aktív irodai munkatársnak kell lennie).

Példa: 42
datekötelező
string <date>

Az időpont napja (YYYY-MM-DD) a foglalás időzónájában.

Példa: "2026-03-02"
timekötelező
string

Kezdési idő HH:MM (24 órás) a foglalás időzónájában. A befejezési idő a time plusz az iroda idősávhossza. Szabad idősávnak kell lennie.

Minta: ^([01]\d|2[0-3]):[0-5]\d$
Példa: "09:00"
client_namekötelező
stringlegfeljebb 255 karakter

Az ügyfél neve. Egyszerű szöveg; a "<" és a ">" nem engedélyezett.

Minta: ^[^<>]*$
Példa: "Kovács Anna"
client_emailkötelező
stringlegfeljebb 255 karakter

Az ügyfél e-mail címe: a megerősítés címzettje.

Példa: "anna@example.com"
client_phone
string | nulllegfeljebb 50 karakter

Az ügyfél telefonszáma. Egyszerű szöveg.

Minta: ^[^<>]*$
client_description
string | nulllegfeljebb 2000 karakter

Tárgy / megjegyzések az ügyféltől. Egyszerű szöveg.

Minta: ^[^<>]*$
location_preference
string

Irodai vagy online konzultáció. Alapértelmezés "office".

Lehetséges értékek: "office" "online"
Alapértelmezés: "office"
meeting_link
string | nulllegfeljebb 500 karakter

Az online találkozó URL-je (http/https), online konzultációhoz.

gdpr_consent
boolean

Rögzíti az ügyfél adatkezelési hozzájárulását. Alapértelmezés true (az iroda munkatársai az ügyfél nevében foglalnak).

Alapértelmezés: true
auto_confirm
boolean

Ha true (vagy az irodánál be van kapcsolva az automatikus megerősítés), a foglalás már megerősítve jön létre: lefut a naptárszinkronizálás, és az ügyfél kérés helyett megerősítést kap. Egyébként pending állapotú.

Alapértelmezés: false
idempotency_key
stringlegfeljebb 128 karakter

Ugyanaz a szerepe, mint az Idempotency-Key fejlécnek, azon ügyfelek számára, amelyek nem tudnak egyéni fejléceket küldeni. Betűk, számjegyek, _, -, : vagy ., legfeljebb 128 karakter.

Minta: ^[A-Za-z0-9_\-:.]{1,128}$
Példa: "b8f1c2e0-6f7a-4d2e-9c1b-2a3d4e5f6a7b"

Válaszok

201

Létrehozva.

datakötelező
object
data mezői
id
integer
Példa: 4321
booking_number
string

Ember által olvasható foglalási szám, például "#B-0001".

status
string

pending = az ügyvéd megerősítésére vár; confirmed = jóváhagyva; cancelled/completed; az awaiting_payment/expired a megerősítés előtti fizetés folyamatához tartozik.

Lehetséges értékek: "pending" "confirmed" "cancelled" "completed" "awaiting_payment" "expired"
source
string

Honnan származik a foglalás. Az API-n keresztül létrehozott foglalás "manual".

Lehetséges értékek: "flowyer" "website" "embed_widget" "manual"
lawyer
object | null

Az ügyvéd (user_id a colleagues.list-ből), akivel az időpont van.

lawyer mezői
user_id
integer
name
string | null
date
string <date> | null

Naptári dátum a foglalás időzónájában (YYYY-MM-DD), szó szerint tárolva.

start_time
string | null

Kezdési idő HH:MM a foglalás időzónájában.

end_time
string | null

Befejezési idő HH:MM a foglalás időzónájában.

start
string <date-time> | null

A kezdés egyértelmű ISO 8601 időpontja, a foglalás időzónájával összeállítva. Ezt használja az időpontok zónák közötti összehasonlításához.

end
string <date-time> | null

A befejezés egyértelmű ISO 8601 időpontja.

timezone
string

A foglalás időzónája (booking_settings.timezone), például "Europe/Budapest". Ez határozza meg a date, start_time és end_time értékeket.

location_preference
string

Hogy a konzultáció az irodában vagy online zajlik-e.

Lehetséges értékek: "office" "online"
meeting_link
string | null

Az online találkozó URL-je, ha be van állítva.

client
object

A foglalást végző külső ügyfél: név, e-mail, telefon és a tárgy/megjegyzések. Személyes adat - csak az iroda munkatársai számára.

client mezői
name
string | null
email
string | null
phone
string | null
description
string | null
gdpr_consent
boolean

Hogy az ügyfél adatkezelési hozzájárulása rögzítve van-e.

gdpr_consent_at
string <date-time> | null

Mikor rögzítették a hozzájárulást.

cancel_reason
string | null

A lemondáskor rögzített indok.

payment
object

Csak olvasható fizetési állapot. Az API soha nem módosítja a fizetést; a foglalási díjakat a Flowyerben kezelik.

payment mezői
status
string
Lehetséges értékek: "none" "awaiting" "partial" "paid" "refunded"
method
string | null
Lehetséges értékek: "card" "transfer"
amount
number | null
currency
string | null
invoice_number
string | null
confirmed_at
string <date-time> | null
cancelled_at
string <date-time> | null
created_at
string <date-time> | null
updated_at
string <date-time> | null

Adja át ezt a bookings.update / bookings.confirm / bookings.cancel hívásnak expected_updated_at értékként.

created_via_api
object | null

Akkor van jelen, ha a foglalást külső ügynök hozta létre ezen az API-n keresztül.

created_via_api mezői
kind
string

"key": statikus API-kulccsal létrehozva; "oauth": OAuth-on keresztül csatlakoztatott alkalmazás által létrehozva.

Lehetséges értékek: "key" "oauth"
key_id
integer

Az API-kulcs ("key" típus) vagy a csatlakoztatott alkalmazás ("oauth" típus) azonosítója; a kettő számozása külön történik.

key_name
string

Az a név, amelyet a felhasználó adott az API-kulcsnak, például "Grok integration", vagy a csatlakoztatott alkalmazás neve "oauth" típus esetén, például "Claude".

user_id
integer
user
string | null
at
string <date-time> | null
created
boolean
Érték: true
200

Idempotens visszajátszás: ez az Idempotency-Key (vagy kulcs nélkül egy azonos kérés 120 másodpercen belül) már létrehozta a rekordot; a rendszer újra visszaadja, semmi új nem jött létre.

datakötelező
object
data mezői
id
integer
Példa: 4321
booking_number
string

Ember által olvasható foglalási szám, például "#B-0001".

status
string

pending = az ügyvéd megerősítésére vár; confirmed = jóváhagyva; cancelled/completed; az awaiting_payment/expired a megerősítés előtti fizetés folyamatához tartozik.

Lehetséges értékek: "pending" "confirmed" "cancelled" "completed" "awaiting_payment" "expired"
source
string

Honnan származik a foglalás. Az API-n keresztül létrehozott foglalás "manual".

Lehetséges értékek: "flowyer" "website" "embed_widget" "manual"
lawyer
object | null

Az ügyvéd (user_id a colleagues.list-ből), akivel az időpont van.

lawyer mezői
user_id
integer
name
string | null
date
string <date> | null

Naptári dátum a foglalás időzónájában (YYYY-MM-DD), szó szerint tárolva.

start_time
string | null

Kezdési idő HH:MM a foglalás időzónájában.

end_time
string | null

Befejezési idő HH:MM a foglalás időzónájában.

start
string <date-time> | null

A kezdés egyértelmű ISO 8601 időpontja, a foglalás időzónájával összeállítva. Ezt használja az időpontok zónák közötti összehasonlításához.

end
string <date-time> | null

A befejezés egyértelmű ISO 8601 időpontja.

timezone
string

A foglalás időzónája (booking_settings.timezone), például "Europe/Budapest". Ez határozza meg a date, start_time és end_time értékeket.

location_preference
string

Hogy a konzultáció az irodában vagy online zajlik-e.

Lehetséges értékek: "office" "online"
meeting_link
string | null

Az online találkozó URL-je, ha be van állítva.

client
object

A foglalást végző külső ügyfél: név, e-mail, telefon és a tárgy/megjegyzések. Személyes adat - csak az iroda munkatársai számára.

client mezői
name
string | null
email
string | null
phone
string | null
description
string | null
gdpr_consent
boolean

Hogy az ügyfél adatkezelési hozzájárulása rögzítve van-e.

gdpr_consent_at
string <date-time> | null

Mikor rögzítették a hozzájárulást.

cancel_reason
string | null

A lemondáskor rögzített indok.

payment
object

Csak olvasható fizetési állapot. Az API soha nem módosítja a fizetést; a foglalási díjakat a Flowyerben kezelik.

payment mezői
status
string
Lehetséges értékek: "none" "awaiting" "partial" "paid" "refunded"
method
string | null
Lehetséges értékek: "card" "transfer"
amount
number | null
currency
string | null
invoice_number
string | null
confirmed_at
string <date-time> | null
cancelled_at
string <date-time> | null
created_at
string <date-time> | null
updated_at
string <date-time> | null

Adja át ezt a bookings.update / bookings.confirm / bookings.cancel hívásnak expected_updated_at értékként.

created_via_api
object | null

Akkor van jelen, ha a foglalást külső ügynök hozta létre ezen az API-n keresztül.

created_via_api mezői
kind
string

"key": statikus API-kulccsal létrehozva; "oauth": OAuth-on keresztül csatlakoztatott alkalmazás által létrehozva.

Lehetséges értékek: "key" "oauth"
key_id
integer

Az API-kulcs ("key" típus) vagy a csatlakoztatott alkalmazás ("oauth" típus) azonosítója; a kettő számozása külön történik.

key_name
string

Az a név, amelyet a felhasználó adott az API-kulcsnak, például "Grok integration", vagy a csatlakoztatott alkalmazás neve "oauth" típus esetén, például "Claude".

user_id
integer
user
string | null
at
string <date-time> | null
created
boolean
Érték: false
idempotent_replay
boolean
Érték: true
400

Hibás formátumú kérés: érvénytelen JSON törzs, rossz host (használja a www. hostot), vagy olvashatatlan kérés.

401

A kulcs hiányzik, érvénytelen, visszavonták vagy lejárt, vagy a hozzá tartozó felhasználó már nem aktív.

403

Hiányzó scope (scope_missing), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.

404

Ismeretlen végpont, vagy a rekord nem létezik / nem látható a felhasználó számára. replay_not_visible: ez az Idempotency-Key (vagy kulcs nélkül egy azonos kérés) már létrehozta a rekordot (details.record_id), de azt azóta törölték, vagy nem látható a felhasználó számára; semmi új nem jött létre, ne hozza létre újra.

405

Ezen az útvonalon nem elérhető metódus (a DELETE és a PUT soha nem az; a PATCH csak ott, ahol frissítés is elérhető).

409

Az Idempotency-Key kulcsot egy másik erőforrástípushoz használták (idempotency_key_reused), vagy kulcs nélkül egy azonos kérés feldolgozása éppen most zajlik (duplicate_in_progress; próbálja újra rövidesen).

413

A kérés törzse túl nagy (request_too_large).

422

A validáció sikertelen volt, vagy ismeretlen mező; a details.fields felsorolja a mezőhibákat.

429

A sebességkorlát túllépve; a Retry-After megadja, mikor próbálja újra.

503

Az iroda átmenetileg nem érhető el (karbantartás vagy beállítás van folyamatban); a Retry-After megadja, mikor próbálja újra.

default

Bármely egyéb hiba, ugyanabban a burokban.

Kérésminták

curl -X POST 'https://www.flowyer.hu/api/agent/bookings' \
  -H 'Authorization: Bearer flw_...' \
  -H 'Content-Type: application/json' \
  -H 'Idempotency-Key: 7f3a9c21-1b2c-4d5e-8f90-0a1b2c3d4e5f' \
  -d '{
  "user_id": 42,
  "date": "2026-03-02",
  "time": "09:00",
  "client_name": "Kovács Anna",
  "client_email": "anna@example.com"
}'

Válaszminták

{
  "data": {
    "id": 4321,
    "booking_number": "string",
    "status": "pending",
    "source": "flowyer",
    "lawyer": {
      "user_id": 1234,
      "name": "string"
    },
    "date": "2026-10-30",
    "start_time": "string",
    "end_time": "string",
    "start": "2026-10-30T09:15:00+01:00",
    "end": "2026-10-30T09:15:00+01:00",
    "timezone": "string",
    "location_preference": "office",
    "meeting_link": "string",
    "client": {
      "name": "string",
      "email": "info@example.hu",
      "phone": "string",
      "description": "string"
    },
    "gdpr_consent": true,
    "gdpr_consent_at": "2026-10-30T09:15:00+01:00",
    "cancel_reason": "string",
    "payment": {
      "status": "none",
      "method": "card",
      "amount": 0,
      "currency": "string",
      "invoice_number": "string"
    },
    "confirmed_at": "2026-10-30T09:15:00+01:00",
    "cancelled_at": "2026-10-30T09:15:00+01:00",
    "created_at": "2026-10-30T09:15:00+01:00",
    "updated_at": "2026-10-30T09:15:00+01:00",
    "created_via_api": {
      "kind": "key",
      "key_id": 1234,
      "key_name": "string",
      "user_id": 1234,
      "user": "string",
      "at": "2026-10-30T09:15:00+01:00"
    }
  },
  "created": true
}

Foglalás módosítása

PATCH /api/agent/bookings/{id}

Átütemez (date + time együtt, szabad idősávra újra ellenőrizve) vagy szerkeszt egy foglalást (telefon, megjegyzések, találkozó link, helyszín). Csak az elküldött mezőket írja. Átütemezésről az ügyvédet értesíti, az ügyfelet soha. Adja meg az expected_updated_at értéket a legutóbbi olvasásából; elavult írás esetén a válasz 409.

Hatókör
bookings:update

Útvonal-paraméterek

idkötelező
integer>= 1

A módosítandó rekord azonosítója.

Kérés törzse application/json

expected_updated_at
string <date-time> | null

A rekord legutóbbi olvasásából származó updated_at érték (minden esetben kötelező, ha a rekordnak van ilyen). Ha a rekord azóta megváltozott (egy kolléga szerkesztette), az API 409-et ad válaszul, és újra kell olvasnia, mielőtt újrapróbálkozna. Egy olyan régebbi rekord, amelynek az updated_at értéke null, a null értéket veszi fel.

date
string <date>

Új nap (YYYY-MM-DD) a foglalás időzónájában. Az átütemezéshez a date ÉS a time értéket együtt küldje.

Példa: "2026-03-05"
time
string

Új kezdési idő HH:MM. A befejezési idő az iroda idősávhosszából kerül újraszámításra. A date ÉS a time értéket együtt küldje.

Minta: ^([01]\d|2[0-3]):[0-5]\d$
Példa: "11:00"
client_phone
string | nulllegfeljebb 50 karakter

Az ügyfél telefonszáma. Egyszerű szöveg. A "" törli.

Minta: ^[^<>]*$
client_description
string | nulllegfeljebb 2000 karakter

Tárgy / megjegyzések. Egyszerű szöveg. A "" törli.

Minta: ^[^<>]*$
meeting_link
string | nulllegfeljebb 500 karakter

Az online találkozó URL-je (http/https). A "" törli.

location_preference
string

Irodai vagy online konzultáció.

Lehetséges értékek: "office" "online"

Válaszok

200

Frissítve.

datakötelező
object
data mezői
id
integer
Példa: 4321
booking_number
string

Ember által olvasható foglalási szám, például "#B-0001".

status
string

pending = az ügyvéd megerősítésére vár; confirmed = jóváhagyva; cancelled/completed; az awaiting_payment/expired a megerősítés előtti fizetés folyamatához tartozik.

Lehetséges értékek: "pending" "confirmed" "cancelled" "completed" "awaiting_payment" "expired"
source
string

Honnan származik a foglalás. Az API-n keresztül létrehozott foglalás "manual".

Lehetséges értékek: "flowyer" "website" "embed_widget" "manual"
lawyer
object | null

Az ügyvéd (user_id a colleagues.list-ből), akivel az időpont van.

lawyer mezői
user_id
integer
name
string | null
date
string <date> | null

Naptári dátum a foglalás időzónájában (YYYY-MM-DD), szó szerint tárolva.

start_time
string | null

Kezdési idő HH:MM a foglalás időzónájában.

end_time
string | null

Befejezési idő HH:MM a foglalás időzónájában.

start
string <date-time> | null

A kezdés egyértelmű ISO 8601 időpontja, a foglalás időzónájával összeállítva. Ezt használja az időpontok zónák közötti összehasonlításához.

end
string <date-time> | null

A befejezés egyértelmű ISO 8601 időpontja.

timezone
string

A foglalás időzónája (booking_settings.timezone), például "Europe/Budapest". Ez határozza meg a date, start_time és end_time értékeket.

location_preference
string

Hogy a konzultáció az irodában vagy online zajlik-e.

Lehetséges értékek: "office" "online"
meeting_link
string | null

Az online találkozó URL-je, ha be van állítva.

client
object

A foglalást végző külső ügyfél: név, e-mail, telefon és a tárgy/megjegyzések. Személyes adat - csak az iroda munkatársai számára.

client mezői
name
string | null
email
string | null
phone
string | null
description
string | null
gdpr_consent
boolean

Hogy az ügyfél adatkezelési hozzájárulása rögzítve van-e.

gdpr_consent_at
string <date-time> | null

Mikor rögzítették a hozzájárulást.

cancel_reason
string | null

A lemondáskor rögzített indok.

payment
object

Csak olvasható fizetési állapot. Az API soha nem módosítja a fizetést; a foglalási díjakat a Flowyerben kezelik.

payment mezői
status
string
Lehetséges értékek: "none" "awaiting" "partial" "paid" "refunded"
method
string | null
Lehetséges értékek: "card" "transfer"
amount
number | null
currency
string | null
invoice_number
string | null
confirmed_at
string <date-time> | null
cancelled_at
string <date-time> | null
created_at
string <date-time> | null
updated_at
string <date-time> | null

Adja át ezt a bookings.update / bookings.confirm / bookings.cancel hívásnak expected_updated_at értékként.

created_via_api
object | null

Akkor van jelen, ha a foglalást külső ügynök hozta létre ezen az API-n keresztül.

created_via_api mezői
kind
string

"key": statikus API-kulccsal létrehozva; "oauth": OAuth-on keresztül csatlakoztatott alkalmazás által létrehozva.

Lehetséges értékek: "key" "oauth"
key_id
integer

Az API-kulcs ("key" típus) vagy a csatlakoztatott alkalmazás ("oauth" típus) azonosítója; a kettő számozása külön történik.

key_name
string

Az a név, amelyet a felhasználó adott az API-kulcsnak, például "Grok integration", vagy a csatlakoztatott alkalmazás neve "oauth" típus esetén, például "Claude".

user_id
integer
user
string | null
at
string <date-time> | null
updated
boolean
Érték: true
400

Hibás formátumú kérés: érvénytelen JSON törzs, rossz host (használja a www. hostot), vagy olvashatatlan kérés.

401

A kulcs hiányzik, érvénytelen, visszavonták vagy lejárt, vagy a hozzá tartozó felhasználó már nem aktív.

403

Hiányzó scope (scope_missing), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.

404

Ismeretlen végpont, vagy a rekord nem létezik / nem látható a felhasználó számára.

405

Ezen az útvonalon nem elérhető metódus (a DELETE és a PUT soha nem az; a PATCH csak ott, ahol frissítés is elérhető).

409

A rekord megváltozott, mióta beolvasta (record_conflict: az expected_updated_at már nem egyezik; olvassa be újra, és próbálja újra az új updated_at értékkel).

413

A kérés törzse túl nagy (request_too_large).

422

A validáció sikertelen volt, vagy ismeretlen mező; a details.fields felsorolja a mezőhibákat.

429

A sebességkorlát túllépve; a Retry-After megadja, mikor próbálja újra.

503

Az iroda átmenetileg nem érhető el (karbantartás vagy beállítás van folyamatban); a Retry-After megadja, mikor próbálja újra.

default

Bármely egyéb hiba, ugyanabban a burokban.

Kérésminták

curl -X PATCH 'https://www.flowyer.hu/api/agent/bookings/1234' \
  -H 'Authorization: Bearer flw_...' \
  -H 'Content-Type: application/json' \
  -d '{
  "expected_updated_at": "2026-10-30T09:15:00+01:00",
  "date": "2026-03-05",
  "time": "11:00"
}'

Válaszminták

{
  "data": {
    "id": 4321,
    "booking_number": "string",
    "status": "pending",
    "source": "flowyer",
    "lawyer": {
      "user_id": 1234,
      "name": "string"
    },
    "date": "2026-10-30",
    "start_time": "string",
    "end_time": "string",
    "start": "2026-10-30T09:15:00+01:00",
    "end": "2026-10-30T09:15:00+01:00",
    "timezone": "string",
    "location_preference": "office",
    "meeting_link": "string",
    "client": {
      "name": "string",
      "email": "info@example.hu",
      "phone": "string",
      "description": "string"
    },
    "gdpr_consent": true,
    "gdpr_consent_at": "2026-10-30T09:15:00+01:00",
    "cancel_reason": "string",
    "payment": {
      "status": "none",
      "method": "card",
      "amount": 0,
      "currency": "string",
      "invoice_number": "string"
    },
    "confirmed_at": "2026-10-30T09:15:00+01:00",
    "cancelled_at": "2026-10-30T09:15:00+01:00",
    "created_at": "2026-10-30T09:15:00+01:00",
    "updated_at": "2026-10-30T09:15:00+01:00",
    "created_via_api": {
      "kind": "key",
      "key_id": 1234,
      "key_name": "string",
      "user_id": 1234,
      "user": "string",
      "at": "2026-10-30T09:15:00+01:00"
    }
  },
  "updated": true
}

Foglalás megerősítése

POST /api/agent/bookings/{id}/confirm

Megerősít egy pending foglalást, és E-MAILT KÜLD AZ ÜGYFÉLNEK a megerősítésről (online esetén a találkozó linkjével). Csak pending foglalás erősíthető meg; bármely más státusz 409 választ ad, így egy újrapróbálkozás soha nem küld újra e-mailt. Opcionálisan megadhatja az expected_updated_at értéket zárolási tokenként.

Hatókör
bookings:send

Útvonal-paraméterek

idkötelező
integer>= 1

Foglalásazonosító.

Példa: 4321

Kérés törzse application/json

expected_updated_at
string <date-time> | null

Opcionális optimista zárolási token: az updated_at a legutóbbi olvasásából. Ha a foglalás azóta megváltozott, az API 409 választ ad, és az újrapróbálkozás előtt újraolvassa.

meeting_link
string | nulllegfeljebb 500 karakter

Az online találkozó URL-je (http/https), amelyet a foglaláson beállít, mielőtt a megerősítő e-mail kimegy.

Válaszok

200

OK.

datakötelező
object
data mezői
id
integer
Példa: 4321
booking_number
string

Ember által olvasható foglalási szám, például "#B-0001".

status
string

pending = az ügyvéd megerősítésére vár; confirmed = jóváhagyva; cancelled/completed; az awaiting_payment/expired a megerősítés előtti fizetés folyamatához tartozik.

Lehetséges értékek: "pending" "confirmed" "cancelled" "completed" "awaiting_payment" "expired"
source
string

Honnan származik a foglalás. Az API-n keresztül létrehozott foglalás "manual".

Lehetséges értékek: "flowyer" "website" "embed_widget" "manual"
lawyer
object | null

Az ügyvéd (user_id a colleagues.list-ből), akivel az időpont van.

lawyer mezői
user_id
integer
name
string | null
date
string <date> | null

Naptári dátum a foglalás időzónájában (YYYY-MM-DD), szó szerint tárolva.

start_time
string | null

Kezdési idő HH:MM a foglalás időzónájában.

end_time
string | null

Befejezési idő HH:MM a foglalás időzónájában.

start
string <date-time> | null

A kezdés egyértelmű ISO 8601 időpontja, a foglalás időzónájával összeállítva. Ezt használja az időpontok zónák közötti összehasonlításához.

end
string <date-time> | null

A befejezés egyértelmű ISO 8601 időpontja.

timezone
string

A foglalás időzónája (booking_settings.timezone), például "Europe/Budapest". Ez határozza meg a date, start_time és end_time értékeket.

location_preference
string

Hogy a konzultáció az irodában vagy online zajlik-e.

Lehetséges értékek: "office" "online"
meeting_link
string | null

Az online találkozó URL-je, ha be van állítva.

client
object

A foglalást végző külső ügyfél: név, e-mail, telefon és a tárgy/megjegyzések. Személyes adat - csak az iroda munkatársai számára.

client mezői
name
string | null
email
string | null
phone
string | null
description
string | null
gdpr_consent
boolean

Hogy az ügyfél adatkezelési hozzájárulása rögzítve van-e.

gdpr_consent_at
string <date-time> | null

Mikor rögzítették a hozzájárulást.

cancel_reason
string | null

A lemondáskor rögzített indok.

payment
object

Csak olvasható fizetési állapot. Az API soha nem módosítja a fizetést; a foglalási díjakat a Flowyerben kezelik.

payment mezői
status
string
Lehetséges értékek: "none" "awaiting" "partial" "paid" "refunded"
method
string | null
Lehetséges értékek: "card" "transfer"
amount
number | null
currency
string | null
invoice_number
string | null
confirmed_at
string <date-time> | null
cancelled_at
string <date-time> | null
created_at
string <date-time> | null
updated_at
string <date-time> | null

Adja át ezt a bookings.update / bookings.confirm / bookings.cancel hívásnak expected_updated_at értékként.

created_via_api
object | null

Akkor van jelen, ha a foglalást külső ügynök hozta létre ezen az API-n keresztül.

created_via_api mezői
kind
string

"key": statikus API-kulccsal létrehozva; "oauth": OAuth-on keresztül csatlakoztatott alkalmazás által létrehozva.

Lehetséges értékek: "key" "oauth"
key_id
integer

Az API-kulcs ("key" típus) vagy a csatlakoztatott alkalmazás ("oauth" típus) azonosítója; a kettő számozása külön történik.

key_name
string

Az a név, amelyet a felhasználó adott az API-kulcsnak, például "Grok integration", vagy a csatlakoztatott alkalmazás neve "oauth" típus esetén, például "Claude".

user_id
integer
user
string | null
at
string <date-time> | null
400

Hibás formátumú kérés: érvénytelen JSON törzs, rossz host (használja a www. hostot), vagy olvashatatlan kérés.

401

A kulcs hiányzik, érvénytelen, visszavonták vagy lejárt, vagy a hozzá tartozó felhasználó már nem aktív.

403

Hiányzó scope (scope_missing), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.

404

Ismeretlen végpont, vagy a rekord nem létezik / nem látható a felhasználó számára.

405

Ezen az útvonalon nem elérhető metódus (a DELETE és a PUT soha nem az; a PATCH csak ott, ahol frissítés is elérhető).

413

A kérés törzse túl nagy (request_too_large).

422

A validáció sikertelen volt, vagy ismeretlen mező; a details.fields felsorolja a mezőhibákat.

429

A sebességkorlát túllépve; a Retry-After megadja, mikor próbálja újra.

503

Az iroda átmenetileg nem érhető el (karbantartás vagy beállítás van folyamatban); a Retry-After megadja, mikor próbálja újra.

default

Bármely egyéb hiba, ugyanabban a burokban.

Kérésminták

curl -X POST 'https://www.flowyer.hu/api/agent/bookings/4321/confirm' \
  -H 'Authorization: Bearer flw_...' \
  -H 'Content-Type: application/json' \
  -d '{
  "expected_updated_at": "2026-10-30T09:15:00+01:00"
}'

Válaszminták

{
  "data": {
    "id": 4321,
    "booking_number": "string",
    "status": "pending",
    "source": "flowyer",
    "lawyer": {
      "user_id": 1234,
      "name": "string"
    },
    "date": "2026-10-30",
    "start_time": "string",
    "end_time": "string",
    "start": "2026-10-30T09:15:00+01:00",
    "end": "2026-10-30T09:15:00+01:00",
    "timezone": "string",
    "location_preference": "office",
    "meeting_link": "string",
    "client": {
      "name": "string",
      "email": "info@example.hu",
      "phone": "string",
      "description": "string"
    },
    "gdpr_consent": true,
    "gdpr_consent_at": "2026-10-30T09:15:00+01:00",
    "cancel_reason": "string",
    "payment": {
      "status": "none",
      "method": "card",
      "amount": 0,
      "currency": "string",
      "invoice_number": "string"
    },
    "confirmed_at": "2026-10-30T09:15:00+01:00",
    "cancelled_at": "2026-10-30T09:15:00+01:00",
    "created_at": "2026-10-30T09:15:00+01:00",
    "updated_at": "2026-10-30T09:15:00+01:00",
    "created_via_api": {
      "kind": "key",
      "key_id": 1234,
      "key_name": "string",
      "user_id": 1234,
      "user": "string",
      "at": "2026-10-30T09:15:00+01:00"
    }
  }
}

Foglalás lemondása

POST /api/agent/bookings/{id}/cancel

Lemond egy foglalást, és E-MAILT KÜLD AZ ÜGYFÉLNEK (és az ügyvédnek) a lemondásról. Egy már lemondott vagy teljesített foglalás 409 választ ad, így egy újrapróbálkozás soha nem küld újra e-mailt. Egy kifizetett foglalást lemond, de soha nem térít vissza (ezt az iroda intézi). Opcionálisan megadhatja az expected_updated_at értéket.

Hatókör
bookings:send

Útvonal-paraméterek

idkötelező
integer>= 1

Foglalásazonosító.

Példa: 4321

Kérés törzse application/json

expected_updated_at
string <date-time> | null

Opcionális optimista zárolási token: az updated_at a legutóbbi olvasásából. Ha a foglalás azóta megváltozott, az API 409 választ ad.

reason
string | nulllegfeljebb 255 karakter

A cancel_reason értékként rögzített és a lemondási e-mailben megjelenített indok. Egyszerű szöveg; a "<" és a ">" nem engedélyezett.

Minta: ^[^<>]*$

Válaszok

200

OK.

datakötelező
object
data mezői
id
integer
Példa: 4321
booking_number
string

Ember által olvasható foglalási szám, például "#B-0001".

status
string

pending = az ügyvéd megerősítésére vár; confirmed = jóváhagyva; cancelled/completed; az awaiting_payment/expired a megerősítés előtti fizetés folyamatához tartozik.

Lehetséges értékek: "pending" "confirmed" "cancelled" "completed" "awaiting_payment" "expired"
source
string

Honnan származik a foglalás. Az API-n keresztül létrehozott foglalás "manual".

Lehetséges értékek: "flowyer" "website" "embed_widget" "manual"
lawyer
object | null

Az ügyvéd (user_id a colleagues.list-ből), akivel az időpont van.

lawyer mezői
user_id
integer
name
string | null
date
string <date> | null

Naptári dátum a foglalás időzónájában (YYYY-MM-DD), szó szerint tárolva.

start_time
string | null

Kezdési idő HH:MM a foglalás időzónájában.

end_time
string | null

Befejezési idő HH:MM a foglalás időzónájában.

start
string <date-time> | null

A kezdés egyértelmű ISO 8601 időpontja, a foglalás időzónájával összeállítva. Ezt használja az időpontok zónák közötti összehasonlításához.

end
string <date-time> | null

A befejezés egyértelmű ISO 8601 időpontja.

timezone
string

A foglalás időzónája (booking_settings.timezone), például "Europe/Budapest". Ez határozza meg a date, start_time és end_time értékeket.

location_preference
string

Hogy a konzultáció az irodában vagy online zajlik-e.

Lehetséges értékek: "office" "online"
meeting_link
string | null

Az online találkozó URL-je, ha be van állítva.

client
object

A foglalást végző külső ügyfél: név, e-mail, telefon és a tárgy/megjegyzések. Személyes adat - csak az iroda munkatársai számára.

client mezői
name
string | null
email
string | null
phone
string | null
description
string | null
gdpr_consent
boolean

Hogy az ügyfél adatkezelési hozzájárulása rögzítve van-e.

gdpr_consent_at
string <date-time> | null

Mikor rögzítették a hozzájárulást.

cancel_reason
string | null

A lemondáskor rögzített indok.

payment
object

Csak olvasható fizetési állapot. Az API soha nem módosítja a fizetést; a foglalási díjakat a Flowyerben kezelik.

payment mezői
status
string
Lehetséges értékek: "none" "awaiting" "partial" "paid" "refunded"
method
string | null
Lehetséges értékek: "card" "transfer"
amount
number | null
currency
string | null
invoice_number
string | null
confirmed_at
string <date-time> | null
cancelled_at
string <date-time> | null
created_at
string <date-time> | null
updated_at
string <date-time> | null

Adja át ezt a bookings.update / bookings.confirm / bookings.cancel hívásnak expected_updated_at értékként.

created_via_api
object | null

Akkor van jelen, ha a foglalást külső ügynök hozta létre ezen az API-n keresztül.

created_via_api mezői
kind
string

"key": statikus API-kulccsal létrehozva; "oauth": OAuth-on keresztül csatlakoztatott alkalmazás által létrehozva.

Lehetséges értékek: "key" "oauth"
key_id
integer

Az API-kulcs ("key" típus) vagy a csatlakoztatott alkalmazás ("oauth" típus) azonosítója; a kettő számozása külön történik.

key_name
string

Az a név, amelyet a felhasználó adott az API-kulcsnak, például "Grok integration", vagy a csatlakoztatott alkalmazás neve "oauth" típus esetén, például "Claude".

user_id
integer
user
string | null
at
string <date-time> | null
400

Hibás formátumú kérés: érvénytelen JSON törzs, rossz host (használja a www. hostot), vagy olvashatatlan kérés.

401

A kulcs hiányzik, érvénytelen, visszavonták vagy lejárt, vagy a hozzá tartozó felhasználó már nem aktív.

403

Hiányzó scope (scope_missing), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.

404

Ismeretlen végpont, vagy a rekord nem létezik / nem látható a felhasználó számára.

405

Ezen az útvonalon nem elérhető metódus (a DELETE és a PUT soha nem az; a PATCH csak ott, ahol frissítés is elérhető).

413

A kérés törzse túl nagy (request_too_large).

422

A validáció sikertelen volt, vagy ismeretlen mező; a details.fields felsorolja a mezőhibákat.

429

A sebességkorlát túllépve; a Retry-After megadja, mikor próbálja újra.

503

Az iroda átmenetileg nem érhető el (karbantartás vagy beállítás van folyamatban); a Retry-After megadja, mikor próbálja újra.

default

Bármely egyéb hiba, ugyanabban a burokban.

Kérésminták

curl -X POST 'https://www.flowyer.hu/api/agent/bookings/4321/cancel' \
  -H 'Authorization: Bearer flw_...' \
  -H 'Content-Type: application/json' \
  -d '{
  "expected_updated_at": "2026-10-30T09:15:00+01:00"
}'

Válaszminták

{
  "data": {
    "id": 4321,
    "booking_number": "string",
    "status": "pending",
    "source": "flowyer",
    "lawyer": {
      "user_id": 1234,
      "name": "string"
    },
    "date": "2026-10-30",
    "start_time": "string",
    "end_time": "string",
    "start": "2026-10-30T09:15:00+01:00",
    "end": "2026-10-30T09:15:00+01:00",
    "timezone": "string",
    "location_preference": "office",
    "meeting_link": "string",
    "client": {
      "name": "string",
      "email": "info@example.hu",
      "phone": "string",
      "description": "string"
    },
    "gdpr_consent": true,
    "gdpr_consent_at": "2026-10-30T09:15:00+01:00",
    "cancel_reason": "string",
    "payment": {
      "status": "none",
      "method": "card",
      "amount": 0,
      "currency": "string",
      "invoice_number": "string"
    },
    "confirmed_at": "2026-10-30T09:15:00+01:00",
    "cancelled_at": "2026-10-30T09:15:00+01:00",
    "created_at": "2026-10-30T09:15:00+01:00",
    "updated_at": "2026-10-30T09:15:00+01:00",
    "created_via_api": {
      "kind": "key",
      "key_id": 1234,
      "key_name": "string",
      "user_id": 1234,
      "user": "string",
      "at": "2026-10-30T09:15:00+01:00"
    }
  }
}

Ügyfélszolgálati jegyek

Jegyek listázása

GET /api/agent/tickets

Listázza a felhasználó számára látható ügyfélszolgálati jegyeket (postafiókonkénti láthatóság), a legújabb tevékenységtől kezdve. Szűrhet státuszra (alapértelmezés open_states = new+open+pending; az "all" a lezártakat is tartalmazza), postafiókra, felelősre, kérelmező e-mail címére vagy szabad szövegre a tárgy/kérelmező/jegyszám felett.

Hatókör
tickets:read
Flowyer-jogosultság
ticketing:read

Lekérdezési paraméterek

status
string

open_states (alapértelmezett) = new+open+pending (a webes alapértelmezett nézet); az "all" a lezártakat is tartalmazza; vagy egyetlen pontos státusz.

Lehetséges értékek: "new" "open" "pending" "closed" "open_states" "all"
Alapértelmezés: "open_states"
mailbox_id
integer>= 1

Csak az ebből a postafiókból származó jegyek. Egy olyan postafiók, amelyet a felhasználó nem láthat, üres listát ad (soha nem szivárgást).

Példa: 7
assigned_to_user_id
integer>= 0

Csak az ehhez a munkatárshoz rendelt jegyek (azonosító a colleagues.list-ből); 0 = csak a hozzá nem rendelt jegyek. Hagyja el bármely felelőshöz.

requester_email
stringlegfeljebb 255 karakter

Csak azok a jegyek, amelyek külső kérelmezőjének e-mail címe pontosan egyezik (kis-/nagybetű-független).

Példa: "ugyfel@example.com"
q
stringlegfeljebb 100 karakter

Szabad szöveges keresés a tárgy, a kérelmező neve/e-mail címe és a jegyszám felett (a kis-/nagybetű figyelmen kívül hagyva).

Példa: "számla"
limit
integer>= 1<= 100

Oldalméret, 1-100. Alapértelmezés: 25.

Alapértelmezés: 25
Példa: 25
offset
integer>= 0

A kihagyandó rekordok száma. Az előző oldal offset + limit értékével jut el a következő oldalra; a pagination.total a teljes darabszámot adja meg.

Alapértelmezés: 0
Példa: 0

Válaszok

200

OK.

datakötelező
object[]
data mezői
id
integer

Jegyazonosító (a tickets.get / tickets.update hívással használható).

Példa: 4321
ticket_number
string | null

Ember által olvasható jegyszám, például FLW-000123.

subject
string | null
status
string
Lehetséges értékek: "new" "open" "pending" "closed"
priority
string
Lehetséges értékek: "low" "normal" "high"
mailbox
object | null

A postafiók, amelyen keresztül a jegy beérkezett (központi nyilvántartás).

mailbox mezői
id
integer
email
string | null
display_name
string | null
requester
object

A külső személy, aki írt.

requester mezői
email
string | null
name
string | null
assigned_to
object | null

A munkatárs, akihez a jegy hozzá van rendelve, vagy null, ha nincs hozzárendelve.

assigned_to mezői
user_id
integer
name
string | null
matter
object | null

A jegyhez kapcsolt ügy, vagy null.

matter mezői
id
integer
case_number
string
client
object | null

A jegyhez kapcsolt ügyfél, vagy null.

client mezői
id
integer
name
string
last_message_at
string <date-time> | null

A legutóbbi szál-tevékenység ideje; a lista eszerint van rendezve, a legújabbtól kezdve.

created_at
string <date-time> | null
updated_at
string <date-time> | null

Adja át ezt a tickets.update hívásnak expected_updated_at értékként.

created_via_api
object | null

Akkor van jelen, ha a jegyet ezen az API-n keresztül hozták létre.

created_via_api mezői
kind
string

"key": statikus API-kulccsal létrehozva; "oauth": OAuth-on keresztül csatlakoztatott alkalmazás által létrehozva.

Lehetséges értékek: "key" "oauth"
key_id
integer

Az API-kulcs ("key" típus) vagy a csatlakoztatott alkalmazás ("oauth" típus) azonosítója; a kettő számozása külön történik.

key_name
string

Az a név, amelyet a felhasználó adott az API-kulcsnak, például "Grok integration", vagy a csatlakoztatott alkalmazás neve "oauth" típus esetén, például "Claude".

user_id
integer
user
string | null
at
string <date-time> | null
paginationkötelező
object
pagination mezői
limitkötelező
integer
offsetkötelező
integer
totalkötelező
integer

A találatként kapott rekordok teljes száma.

400

Hibás formátumú kérés: érvénytelen JSON törzs, rossz host (használja a www. hostot), vagy olvashatatlan kérés.

401

A kulcs hiányzik, érvénytelen, visszavonták vagy lejárt, vagy a hozzá tartozó felhasználó már nem aktív.

403

Hiányzó hatókör (scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.

404

Ismeretlen végpont, vagy a rekord nem létezik / nem látható a felhasználó számára.

405

Ezen az útvonalon nem elérhető metódus (a DELETE és a PUT soha nem az; a PATCH csak ott, ahol frissítés is elérhető).

422

A validáció sikertelen volt, vagy ismeretlen mező; a details.fields felsorolja a mezőhibákat.

429

A sebességkorlát túllépve; a Retry-After megadja, mikor próbálja újra.

503

Az iroda átmenetileg nem érhető el (karbantartás vagy beállítás van folyamatban); a Retry-After megadja, mikor próbálja újra.

default

Bármely egyéb hiba, ugyanabban a burokban.

Kérésminták

curl 'https://www.flowyer.hu/api/agent/tickets?mailbox_id=7&requester_email=ugyfel%40example.com&q=sz%C3%A1mla' \
  -H 'Authorization: Bearer flw_...'

Válaszminták

{
  "data": [
    {
      "id": 4321,
      "ticket_number": "string",
      "subject": "string",
      "status": "new",
      "priority": "low",
      "mailbox": {
        "id": 1234,
        "email": "info@example.hu",
        "display_name": "string"
      },
      "requester": {
        "email": "info@example.hu",
        "name": "string"
      },
      "assigned_to": {
        "user_id": 1234,
        "name": "string"
      },
      "matter": {
        "id": 1234,
        "case_number": "string"
      },
      "client": {
        "id": 1234,
        "name": "string"
      },
      "last_message_at": "2026-10-30T09:15:00+01:00",
      "created_at": "2026-10-30T09:15:00+01:00",
      "updated_at": "2026-10-30T09:15:00+01:00",
      "created_via_api": {
        "kind": "key",
        "key_id": 1234,
        "key_name": "string",
        "user_id": 1234,
        "user": "string",
        "at": "2026-10-30T09:15:00+01:00"
      }
    }
  ],
  "pagination": {
    "limit": 25,
    "offset": 0,
    "total": 1
  }
}

Jegy lekérése

GET /api/agent/tickets/{id}

Visszaad egy ügyfélszolgálati jegyet az üzenetszálával (a legrégebbitől kezdve) és a kapcsolt üggyel/ügyféllel. 404 választ ad, ha a jegy nem létezik, vagy olyan postafiókban van, amelyet a felhasználó nem láthat. Az olvasás soha nem változtatja meg a jegyet (egy NEW jegy nem vált OPEN állapotra).

Hatókör
tickets:read
Flowyer-jogosultság
ticketing:read

Útvonal-paraméterek

idkötelező
integer>= 1

Jegyazonosító.

Példa: 4321

Lekérdezési paraméterek

messages_limit
integer | null>= 1<= 500

Csak a szál legújabb N üzenetét adja vissza (továbbra is a legrégebbitől kezdve megjelenítve). Hagyja el a teljes szálhoz.

Válaszok

200

OK.

datakötelező
object
data mezői
id
integer

Jegyazonosító (a tickets.get / tickets.update hívással használható).

Példa: 4321
ticket_number
string | null

Ember által olvasható jegyszám, például FLW-000123.

subject
string | null
status
string
Lehetséges értékek: "new" "open" "pending" "closed"
priority
string
Lehetséges értékek: "low" "normal" "high"
mailbox
object | null

A postafiók, amelyen keresztül a jegy beérkezett (központi nyilvántartás).

mailbox mezői
id
integer
email
string | null
display_name
string | null
requester
object

A külső személy, aki írt.

requester mezői
email
string | null
name
string | null
assigned_to
object | null

A munkatárs, akihez a jegy hozzá van rendelve, vagy null, ha nincs hozzárendelve.

assigned_to mezői
user_id
integer
name
string | null
matter
object | null

A jegyhez kapcsolt ügy, vagy null.

matter mezői
id
integer
case_number
string
client
object | null

A jegyhez kapcsolt ügyfél, vagy null.

client mezői
id
integer
name
string
last_message_at
string <date-time> | null

A legutóbbi szál-tevékenység ideje; a lista eszerint van rendezve, a legújabbtól kezdve.

created_at
string <date-time> | null
updated_at
string <date-time> | null

Adja át ezt a tickets.update hívásnak expected_updated_at értékként.

created_via_api
object | null

Akkor van jelen, ha a jegyet ezen az API-n keresztül hozták létre.

created_via_api mezői
kind
string

"key": statikus API-kulccsal létrehozva; "oauth": OAuth-on keresztül csatlakoztatott alkalmazás által létrehozva.

Lehetséges értékek: "key" "oauth"
key_id
integer

Az API-kulcs ("key" típus) vagy a csatlakoztatott alkalmazás ("oauth" típus) azonosítója; a kettő számozása külön történik.

key_name
string

Az a név, amelyet a felhasználó adott az API-kulcsnak, például "Grok integration", vagy a csatlakoztatott alkalmazás neve "oauth" típus esetén, például "Claude".

user_id
integer
user
string | null
at
string <date-time> | null
messages
object[]

Az üzenetszál, a legrégebbitől kezdve.

messages mezői
id
integer
direction
string

in = a kérelmezőtől, out = a postafiókból küldött válasz/automatikus visszaigazolás, note = belső.

Lehetséges értékek: "in" "out" "note"
from
object
from mezői
email
string | null
name
string | null
to
object[]
to mezői
email
string
name
string | null
cc
object[]
cc mezői
email
string
name
string | null
sent_status
string | null

Egy kimenő üzenet kézbesítési állapota; in/note esetén null.

Lehetséges értékek: "pending" "sent" "failed" "scheduled"
body_html
string | null

Az üzenet törzse megtisztított HTML-ként (tárolásnál már biztonságos).

body_text
string | null
has_attachments
boolean
author
object | null

A munkatárs, aki egy out/note üzenetet írt; bejövő üzenet esetén null.

author mezői
user_id
integer
name
string | null
created_at
string <date-time> | null
linked_matter
object | null

A jegyhez kapcsolt ügy (ugyanaz, mint a matter).

linked_matter mezői
id
integer
case_number
string
linked_client
object | null

A jegyhez kapcsolt ügyfél (ugyanaz, mint a client).

linked_client mezői
id
integer
name
string
400

Hibás formátumú kérés: érvénytelen JSON törzs, rossz host (használja a www. hostot), vagy olvashatatlan kérés.

401

A kulcs hiányzik, érvénytelen, visszavonták vagy lejárt, vagy a hozzá tartozó felhasználó már nem aktív.

403

Hiányzó hatókör (scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.

404

Ismeretlen végpont, vagy a rekord nem létezik / nem látható a felhasználó számára.

405

Ezen az útvonalon nem elérhető metódus (a DELETE és a PUT soha nem az; a PATCH csak ott, ahol frissítés is elérhető).

422

A validáció sikertelen volt, vagy ismeretlen mező; a details.fields felsorolja a mezőhibákat.

429

A sebességkorlát túllépve; a Retry-After megadja, mikor próbálja újra.

503

Az iroda átmenetileg nem érhető el (karbantartás vagy beállítás van folyamatban); a Retry-After megadja, mikor próbálja újra.

default

Bármely egyéb hiba, ugyanabban a burokban.

Kérésminták

curl 'https://www.flowyer.hu/api/agent/tickets/4321' \
  -H 'Authorization: Bearer flw_...'

Válaszminták

{
  "data": {
    "id": 4321,
    "ticket_number": "string",
    "subject": "string",
    "status": "new",
    "priority": "low",
    "mailbox": {
      "id": 1234,
      "email": "info@example.hu",
      "display_name": "string"
    },
    "requester": {
      "email": "info@example.hu",
      "name": "string"
    },
    "assigned_to": {
      "user_id": 1234,
      "name": "string"
    },
    "matter": {
      "id": 1234,
      "case_number": "string"
    },
    "client": {
      "id": 1234,
      "name": "string"
    },
    "last_message_at": "2026-10-30T09:15:00+01:00",
    "created_at": "2026-10-30T09:15:00+01:00",
    "updated_at": "2026-10-30T09:15:00+01:00",
    "created_via_api": {
      "kind": "key",
      "key_id": 1234,
      "key_name": "string",
      "user_id": 1234,
      "user": "string",
      "at": "2026-10-30T09:15:00+01:00"
    },
    "messages": [
      {
        "id": 1234,
        "direction": "in",
        "from": {
          "email": "info@example.hu",
          "name": "string"
        },
        "to": [
          {
            "email": "info@example.hu",
            "name": "string"
          }
        ],
        "cc": [
          {
            "email": "info@example.hu",
            "name": "string"
          }
        ],
        "sent_status": "pending",
        "body_html": "string",
        "body_text": "string",
        "has_attachments": true,
        "author": {
          "user_id": 1234,
          "name": "string"
        },
        "created_at": "2026-10-30T09:15:00+01:00"
      }
    ],
    "linked_matter": {
      "id": 1234,
      "case_number": "string"
    },
    "linked_client": {
      "id": 1234,
      "name": "string"
    }
  }
}

Válasz a jegyre

POST /api/agent/tickets/{id}/reply

Válaszol egy ügyfélszolgálati jegyre, és E-MAILBEN ELKÜLDI a választ a külső kérelmezőnek (a jegy postafiókján keresztül). A törzs formázott HTML, a szerveroldalon megtisztítva tárolás előtt. Egy azonos Idempotency-Key kulccsal való újrapróbálkozás soha nem küld második e-mailt.

Hatókör
tickets:reply
Flowyer-jogosultság
ticketing:read

Útvonal-paraméterek

idkötelező
integer>= 1

Jegyazonosító (a postafiók ACL-jén keresztül láthatónak kell lennie).

Példa: 4321

Fejléc-paraméterek

Idempotency-Key
stringlegfeljebb 128 karakter

Minden létrehozásnál ajánlott. Logikai műveletenként egyedi érték (például egy UUID). Ugyanaz az érték ugyanazt a rekordot adja vissza: az azzal való újrapróbálkozás az először létrehozott rekordot adja vissza ahelyett, hogy egy másodikat hozna létre. A különböző értékek mindig különböző rekordokat hoznak létre. Azok az ügyfelek, amelyek nem tudnak fejléceket küldeni, ugyanazt az értéket átadhatják az idempotency_key törzsmezőben. Betűk, számjegyek, _, -, : vagy ., legfeljebb 128 karakter.

Minta: ^[A-Za-z0-9_\-:.]{1,128}$

Kérés törzse application/json

body_htmlkötelező
stringlegalább 1 karakter

A válasz, formázott HTML (ahogyan a TinyMCE előállítja). A szerveroldalon HTMLPurifierrel megtisztítva tárolás előtt és küldés előtt. Legfeljebb 100000 karakter; elutasításra kerül, ha a megtisztítás után semmi nem marad.

Példa: "<p>Köszönjük megkeresését, csatoltan küldjük a választ.</p>"
cc
string[]legfeljebb 10 elem

Extra Cc címzettek (legfeljebb 10). A kérelmező és a postafiók automatikusan ki van zárva; egy érvénytelen cím 422 választ ad.

status
string

A válasz után beállítandó jegystátusz (alapértelmezés "pending" = a kérelmezőre várva). Rögzít egy státuszváltozási eseményt.

Lehetséges értékek: "new" "open" "pending" "closed"
Alapértelmezés: "pending"
append_signature
boolean

Hozzáfűzi a kulcs felhasználójának mentett jegyaláírását CSAK a KIMENŐ e-mailhez (soha nem tárolva a szálban).

Alapértelmezés: false
idempotency_key
stringlegfeljebb 128 karakter

Ugyanaz a szerepe, mint az Idempotency-Key fejlécnek, azon ügyfelek számára, amelyek nem tudnak egyéni fejléceket küldeni. Betűk, számjegyek, _, -, : vagy ., legfeljebb 128 karakter.

Minta: ^[A-Za-z0-9_\-:.]{1,128}$
Példa: "b8f1c2e0-6f7a-4d2e-9c1b-2a3d4e5f6a7b"

Válaszok

201

Létrehozva.

datakötelező
object
data mezői
ticket_id
integer
Példa: 4321
message_id
integer

A létrehozott kimenő ticket_messages sor azonosítója.

Példa: 98765
direction
string

Mindig "out".

sent_status
string | null

"pending" a létrehozás pillanatában; az aszinkron küldés később sent/failed állapotra váltja.

Lehetséges értékek: "pending" "sent" "failed" "scheduled"
status
string

A jegy státusza a válasz után.

Lehetséges értékek: "new" "open" "pending" "closed"
created_at
string <date-time> | null
created_via_api
object | null

Akkor van jelen, ha a választ ezen az API-n keresztül hozták létre.

created_via_api mezői
kind
string

"key": statikus API-kulccsal létrehozva; "oauth": OAuth-on keresztül csatlakoztatott alkalmazás által létrehozva.

Lehetséges értékek: "key" "oauth"
key_id
integer

Az API-kulcs ("key" típus) vagy a csatlakoztatott alkalmazás ("oauth" típus) azonosítója; a kettő számozása külön történik.

key_name
string

Az a név, amelyet a felhasználó adott az API-kulcsnak, például "Grok integration", vagy a csatlakoztatott alkalmazás neve "oauth" típus esetén, például "Claude".

user_id
integer
user
string | null
at
string <date-time> | null
created
boolean
Érték: true
200

Idempotens visszajátszás: ez az Idempotency-Key (vagy kulcs nélkül egy azonos kérés 120 másodpercen belül) már létrehozta a rekordot; a rendszer újra visszaadja, semmi új nem jött létre.

datakötelező
object
data mezői
ticket_id
integer
Példa: 4321
message_id
integer

A létrehozott kimenő ticket_messages sor azonosítója.

Példa: 98765
direction
string

Mindig "out".

sent_status
string | null

"pending" a létrehozás pillanatában; az aszinkron küldés később sent/failed állapotra váltja.

Lehetséges értékek: "pending" "sent" "failed" "scheduled"
status
string

A jegy státusza a válasz után.

Lehetséges értékek: "new" "open" "pending" "closed"
created_at
string <date-time> | null
created_via_api
object | null

Akkor van jelen, ha a választ ezen az API-n keresztül hozták létre.

created_via_api mezői
kind
string

"key": statikus API-kulccsal létrehozva; "oauth": OAuth-on keresztül csatlakoztatott alkalmazás által létrehozva.

Lehetséges értékek: "key" "oauth"
key_id
integer

Az API-kulcs ("key" típus) vagy a csatlakoztatott alkalmazás ("oauth" típus) azonosítója; a kettő számozása külön történik.

key_name
string

Az a név, amelyet a felhasználó adott az API-kulcsnak, például "Grok integration", vagy a csatlakoztatott alkalmazás neve "oauth" típus esetén, például "Claude".

user_id
integer
user
string | null
at
string <date-time> | null
created
boolean
Érték: false
idempotent_replay
boolean
Érték: true
400

Hibás formátumú kérés: érvénytelen JSON törzs, rossz host (használja a www. hostot), vagy olvashatatlan kérés.

401

A kulcs hiányzik, érvénytelen, visszavonták vagy lejárt, vagy a hozzá tartozó felhasználó már nem aktív.

403

Hiányzó hatókör (scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.

404

Ismeretlen végpont, vagy a rekord nem létezik / nem látható a felhasználó számára. replay_not_visible: ez az Idempotency-Key (vagy kulcs nélkül egy azonos kérés) már létrehozta a rekordot (details.record_id), de azt azóta törölték, vagy nem látható a felhasználó számára; semmi új nem jött létre, ne hozza létre újra.

405

Ezen az útvonalon nem elérhető metódus (a DELETE és a PUT soha nem az; a PATCH csak ott, ahol frissítés is elérhető).

409

Az Idempotency-Key kulcsot egy másik erőforrástípushoz használták (idempotency_key_reused), vagy kulcs nélkül egy azonos kérés feldolgozása éppen most zajlik (duplicate_in_progress; próbálja újra rövidesen).

413

A kérés törzse túl nagy (request_too_large).

422

A validáció sikertelen volt, vagy ismeretlen mező; a details.fields felsorolja a mezőhibákat.

429

A sebességkorlát túllépve; a Retry-After megadja, mikor próbálja újra.

503

Az iroda átmenetileg nem érhető el (karbantartás vagy beállítás van folyamatban); a Retry-After megadja, mikor próbálja újra.

default

Bármely egyéb hiba, ugyanabban a burokban.

Kérésminták

curl -X POST 'https://www.flowyer.hu/api/agent/tickets/4321/reply' \
  -H 'Authorization: Bearer flw_...' \
  -H 'Content-Type: application/json' \
  -H 'Idempotency-Key: 7f3a9c21-1b2c-4d5e-8f90-0a1b2c3d4e5f' \
  -d '{
  "body_html": "<p>Köszönjük megkeresését, csatoltan küldjük a választ.</p>"
}'

Válaszminták

{
  "data": {
    "ticket_id": 4321,
    "message_id": 98765,
    "direction": "string",
    "sent_status": "pending",
    "status": "new",
    "created_at": "2026-10-30T09:15:00+01:00",
    "created_via_api": {
      "kind": "key",
      "key_id": 1234,
      "key_name": "string",
      "user_id": 1234,
      "user": "string",
      "at": "2026-10-30T09:15:00+01:00"
    }
  },
  "created": true
}

Jegy státuszának módosítása

PATCH /api/agent/tickets/{id}

Módosítja egy jegy státuszát (new, open, pending vagy closed). A "closed" beállítja a closed_at értéket; bármely más státusz törli. Adja meg az expected_updated_at értéket a legutóbbi olvasásából; ütköző módosítás esetén a válasz 409. 404 választ ad, ha a jegy nem látható.

Hatókör
tickets:update
Flowyer-jogosultság
ticketing:read

Útvonal-paraméterek

idkötelező
integer>= 1

A módosítandó rekord azonosítója.

Kérés törzse application/json

expected_updated_at
string <date-time> | null

A rekord legutóbbi olvasásából származó updated_at érték (minden esetben kötelező, ha a rekordnak van ilyen). Ha a rekord azóta megváltozott (egy kolléga szerkesztette), az API 409-et ad válaszul, és újra kell olvasnia, mielőtt újrapróbálkozna. Egy olyan régebbi rekord, amelynek az updated_at értéke null, a null értéket veszi fel.

statuskötelező
string

Az új státusz. A "closed" beállítja a closed_at értéket; bármely más státusz törli.

Lehetséges értékek: "new" "open" "pending" "closed"
Példa: "open"

Válaszok

200

Frissítve.

datakötelező
object
data mezői
id
integer

Jegyazonosító (a tickets.get / tickets.update hívással használható).

Példa: 4321
ticket_number
string | null

Ember által olvasható jegyszám, például FLW-000123.

subject
string | null
status
string
Lehetséges értékek: "new" "open" "pending" "closed"
priority
string
Lehetséges értékek: "low" "normal" "high"
mailbox
object | null

A postafiók, amelyen keresztül a jegy beérkezett (központi nyilvántartás).

mailbox mezői
id
integer
email
string | null
display_name
string | null
requester
object

A külső személy, aki írt.

requester mezői
email
string | null
name
string | null
assigned_to
object | null

A munkatárs, akihez a jegy hozzá van rendelve, vagy null, ha nincs hozzárendelve.

assigned_to mezői
user_id
integer
name
string | null
matter
object | null

A jegyhez kapcsolt ügy, vagy null.

matter mezői
id
integer
case_number
string
client
object | null

A jegyhez kapcsolt ügyfél, vagy null.

client mezői
id
integer
name
string
last_message_at
string <date-time> | null

A legutóbbi szál-tevékenység ideje; a lista eszerint van rendezve, a legújabbtól kezdve.

created_at
string <date-time> | null
updated_at
string <date-time> | null

Adja át ezt a tickets.update hívásnak expected_updated_at értékként.

created_via_api
object | null

Akkor van jelen, ha a jegyet ezen az API-n keresztül hozták létre.

created_via_api mezői
kind
string

"key": statikus API-kulccsal létrehozva; "oauth": OAuth-on keresztül csatlakoztatott alkalmazás által létrehozva.

Lehetséges értékek: "key" "oauth"
key_id
integer

Az API-kulcs ("key" típus) vagy a csatlakoztatott alkalmazás ("oauth" típus) azonosítója; a kettő számozása külön történik.

key_name
string

Az a név, amelyet a felhasználó adott az API-kulcsnak, például "Grok integration", vagy a csatlakoztatott alkalmazás neve "oauth" típus esetén, például "Claude".

user_id
integer
user
string | null
at
string <date-time> | null
updated
boolean
Érték: true
400

Hibás formátumú kérés: érvénytelen JSON törzs, rossz host (használja a www. hostot), vagy olvashatatlan kérés.

401

A kulcs hiányzik, érvénytelen, visszavonták vagy lejárt, vagy a hozzá tartozó felhasználó már nem aktív.

403

Hiányzó hatókör (scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.

404

Ismeretlen végpont, vagy a rekord nem létezik / nem látható a felhasználó számára.

405

Ezen az útvonalon nem elérhető metódus (a DELETE és a PUT soha nem az; a PATCH csak ott, ahol frissítés is elérhető).

409

A rekord megváltozott, mióta beolvasta (record_conflict: az expected_updated_at már nem egyezik; olvassa be újra, és próbálja újra az új updated_at értékkel).

413

A kérés törzse túl nagy (request_too_large).

422

A validáció sikertelen volt, vagy ismeretlen mező; a details.fields felsorolja a mezőhibákat.

429

A sebességkorlát túllépve; a Retry-After megadja, mikor próbálja újra.

503

Az iroda átmenetileg nem érhető el (karbantartás vagy beállítás van folyamatban); a Retry-After megadja, mikor próbálja újra.

default

Bármely egyéb hiba, ugyanabban a burokban.

Kérésminták

curl -X PATCH 'https://www.flowyer.hu/api/agent/tickets/1234' \
  -H 'Authorization: Bearer flw_...' \
  -H 'Content-Type: application/json' \
  -d '{
  "expected_updated_at": "2026-10-30T09:15:00+01:00",
  "status": "open"
}'

Válaszminták

{
  "data": {
    "id": 4321,
    "ticket_number": "string",
    "subject": "string",
    "status": "new",
    "priority": "low",
    "mailbox": {
      "id": 1234,
      "email": "info@example.hu",
      "display_name": "string"
    },
    "requester": {
      "email": "info@example.hu",
      "name": "string"
    },
    "assigned_to": {
      "user_id": 1234,
      "name": "string"
    },
    "matter": {
      "id": 1234,
      "case_number": "string"
    },
    "client": {
      "id": 1234,
      "name": "string"
    },
    "last_message_at": "2026-10-30T09:15:00+01:00",
    "created_at": "2026-10-30T09:15:00+01:00",
    "updated_at": "2026-10-30T09:15:00+01:00",
    "created_via_api": {
      "kind": "key",
      "key_id": 1234,
      "key_name": "string",
      "user_id": 1234,
      "user": "string",
      "at": "2026-10-30T09:15:00+01:00"
    }
  },
  "updated": true
}

Ügyfélportál

Ügyfélportálok listázása

GET /api/agent/portals

Listázza a felhasználó számára elérhető ügyfélportálokat (szálakat): az ügy, az ügyféloldali résztvevők, az üzenetek és résztvevők száma és az utolsó üzenet ideje, a legújabbtól kezdve. Opcionálisan egyetlen ügyre szűrve (matter_id). Egy ügynek legfeljebb egy portálja van.

Hatókör
portal:read
Flowyer-jogosultság
client-portal:read, cases:read

Lekérdezési paraméterek

matter_id
integer>= 1

Csak ennek az ügynek a portálja (404 matter_not_visible, ha az ügy nem látható). Egy ügynek legfeljebb egy portálja van.

Példa: 1234
limit
integer>= 1<= 100

Oldalméret, 1-100. Alapértelmezés: 25.

Alapértelmezés: 25
Példa: 25
offset
integer>= 0

A kihagyandó rekordok száma. Az előző oldal offset + limit értékével jut el a következő oldalra; a pagination.total a teljes darabszámot adja meg.

Alapértelmezés: 0
Példa: 0

Válaszok

200

OK.

datakötelező
object[]
data mezői
id
integer

Portál (szál) azonosítója - a portal.messages.list és a portal.reply hivatkozása.

Példa: 57
matter
object

Az ügy (eset), amelyhez a portál tartozik.

matter mezői
id
integer
case_number
string
client_participants
object[]

A külső ügyféloldali résztvevők, akikkel az iroda kommunikál.

client_participants mezői
name
string | null
kind
string

client = egy megbízó, contact = egy ügyfélkapcsolattartó, email = egy régi, csak e-mailes jogosultság.

Lehetséges értékek: "client" "contact" "email"
participant_count
integer

Az élő résztvevők száma (munkatársak és ügyfél).

message_count
integer

A szálban lévő, nem törölt üzenetek száma.

last_message_at
string <date-time> | null

Amikor a legújabb, nem törölt üzenetet közzétették, ISO 8601 az iroda zónájában; üres szál esetén null.

unread_for_me
integer | null

Olvasatlan üzenetek az eljáró felhasználó saját résztvevősorához; null, ha az eljáró felhasználó nem résztvevője ennek a portálnak.

created_at
string <date-time> | null
paginationkötelező
object
pagination mezői
limitkötelező
integer
offsetkötelező
integer
totalkötelező
integer

A találatként kapott rekordok teljes száma.

400

Hibás formátumú kérés: érvénytelen JSON törzs, rossz host (használja a www. hostot), vagy olvashatatlan kérés.

401

A kulcs hiányzik, érvénytelen, visszavonták vagy lejárt, vagy a hozzá tartozó felhasználó már nem aktív.

403

Hiányzó hatókör (scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.

404

Ismeretlen végpont, vagy a rekord nem létezik / nem látható a felhasználó számára.

405

Ezen az útvonalon nem elérhető metódus (a DELETE és a PUT soha nem az; a PATCH csak ott, ahol frissítés is elérhető).

422

A validáció sikertelen volt, vagy ismeretlen mező; a details.fields felsorolja a mezőhibákat.

429

A sebességkorlát túllépve; a Retry-After megadja, mikor próbálja újra.

503

Az iroda átmenetileg nem érhető el (karbantartás vagy beállítás van folyamatban); a Retry-After megadja, mikor próbálja újra.

default

Bármely egyéb hiba, ugyanabban a burokban.

Kérésminták

curl 'https://www.flowyer.hu/api/agent/portals?matter_id=1234&limit=25' \
  -H 'Authorization: Bearer flw_...'

Válaszminták

{
  "data": [
    {
      "id": 57,
      "matter": {
        "id": 1234,
        "case_number": "string"
      },
      "client_participants": [
        {
          "name": "string",
          "kind": "client"
        }
      ],
      "participant_count": 0,
      "message_count": 0,
      "last_message_at": "2026-10-30T09:15:00+01:00",
      "unread_for_me": 0,
      "created_at": "2026-10-30T09:15:00+01:00"
    }
  ],
  "pagination": {
    "limit": 25,
    "offset": 0,
    "total": 1
  }
}

Portálüzenetek listázása

GET /api/agent/portals/{id}/messages

Listázza egy ügyfélportál-szál üzeneteit, a legrégebbitől kezdve, a szerzővel (munkatárs vagy ügyfél), a sima szöveges törzzsel és az esetleges mellékletmetaadatokkal. 404 választ ad, ha a portál nem létezik vagy nem elérhető. Nem jelöli olvasottként az üzeneteket.

Hatókör
portal:read
Flowyer-jogosultság
client-portal:read, cases:read

Útvonal-paraméterek

idkötelező
integer>= 1

Portálazonosító (elérhetőnek kell lennie).

Példa: 57

Lekérdezési paraméterek

include_deleted
boolean

A törölt üzenetek is szerepeljenek (a törzsük üres). Alapértelmezés false.

Alapértelmezés: false
limit
integer>= 1<= 100

Oldalméret, 1-100. Alapértelmezés: 25.

Alapértelmezés: 25
Példa: 25
offset
integer>= 0

A kihagyandó rekordok száma. Az előző oldal offset + limit értékével jut el a következő oldalra; a pagination.total a teljes darabszámot adja meg.

Alapértelmezés: 0
Példa: 0

Válaszok

200

OK.

datakötelező
object[]
data mezői
id
integer

portal_messages.id.

Példa: 8012
author
object

Ki írta az üzenetet.

author mezői
participant_id
integer | null
name
string | null
kind
string

staff = az iroda egy munkatársa, client = a külső ügyfél.

Lehetséges értékek: "staff" "client"
direction
string

from_firm = munkatárs szerző, from_client = a külső ügyfél.

Lehetséges értékek: "from_firm" "from_client"
body
string

Az üzenet sima szövegként (a <br> sortörésekre dekódolva). Törölt üzenet esetén üres karakterlánc.

attachment
object | null

Mellékletmetaadatok, ha az üzenethez dokumentum tartozik; a letöltése nem tartozik a hatókörbe. Null, ha nincs ilyen.

attachment mezői
portal_document_id
integer
file_name
string
is_deleted
boolean
deleted_at
string <date-time> | null
created_at
string <date-time> | null

Amikor az üzenetet közzétették, ISO 8601 az iroda zónájában.

paginationkötelező
object
pagination mezői
limitkötelező
integer
offsetkötelező
integer
totalkötelező
integer

A találatként kapott rekordok teljes száma.

400

Hibás formátumú kérés: érvénytelen JSON törzs, rossz host (használja a www. hostot), vagy olvashatatlan kérés.

401

A kulcs hiányzik, érvénytelen, visszavonták vagy lejárt, vagy a hozzá tartozó felhasználó már nem aktív.

403

Hiányzó hatókör (scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.

404

Ismeretlen végpont, vagy a rekord nem létezik / nem látható a felhasználó számára.

405

Ezen az útvonalon nem elérhető metódus (a DELETE és a PUT soha nem az; a PATCH csak ott, ahol frissítés is elérhető).

422

A validáció sikertelen volt, vagy ismeretlen mező; a details.fields felsorolja a mezőhibákat.

429

A sebességkorlát túllépve; a Retry-After megadja, mikor próbálja újra.

503

Az iroda átmenetileg nem érhető el (karbantartás vagy beállítás van folyamatban); a Retry-After megadja, mikor próbálja újra.

default

Bármely egyéb hiba, ugyanabban a burokban.

Kérésminták

curl 'https://www.flowyer.hu/api/agent/portals/57/messages?limit=25' \
  -H 'Authorization: Bearer flw_...'

Válaszminták

{
  "data": [
    {
      "id": 8012,
      "author": {
        "participant_id": 1234,
        "name": "string",
        "kind": "staff"
      },
      "direction": "from_firm",
      "body": "string",
      "attachment": {
        "portal_document_id": 1234,
        "file_name": "string"
      },
      "is_deleted": true,
      "deleted_at": "2026-10-30T09:15:00+01:00",
      "created_at": "2026-10-30T09:15:00+01:00"
    }
  ],
  "pagination": {
    "limit": 25,
    "offset": 0,
    "total": 1
  }
}

Válasz az ügyfélportálon

POST /api/agent/portals/{id}/messages

Közzétesz egy munkatársi választ egy ügyfélportál-szálban. Az ügyfél a portálon látja, és e-mailben értesítést kap (egy aláírt magic-link értesítés, nem a szöveg); a munkatársak alkalmazáson belüli értesítést kapnak. Egyszerű szöveg, tároláskor escape-elve. 404, ha a portál nem elérhető.

Hatókör
portal:reply
Flowyer-jogosultság
client-portal:read, cases:read

Útvonal-paraméterek

idkötelező
integer>= 1

A portál azonosítója, amelyben válaszol (elérhetőnek kell lennie).

Példa: 57

Fejléc-paraméterek

Idempotency-Key
stringlegfeljebb 128 karakter

Minden létrehozásnál ajánlott. Logikai műveletenként egyedi érték (például egy UUID). Ugyanaz az érték ugyanazt a rekordot adja vissza: az azzal való újrapróbálkozás az először létrehozott rekordot adja vissza ahelyett, hogy egy másodikat hozna létre. A különböző értékek mindig különböző rekordokat hoznak létre. Azok az ügyfelek, amelyek nem tudnak fejléceket küldeni, ugyanazt az értéket átadhatják az idempotency_key törzsmezőben. Betűk, számjegyek, _, -, : vagy ., legfeljebb 128 karakter.

Minta: ^[A-Za-z0-9_\-:.]{1,128}$

Kérés törzse application/json

bodykötelező
stringlegalább 1 karakterlegfeljebb 20000 karakter

A válasz, egyszerű szöveg. A csúcsos zárójelek elfogadottak, és tároláskor escape-elve. Legfeljebb 20000 karakter.

Példa: "Tisztelt Ügyfelünk! A beadványt ma benyújtottuk."
idempotency_key
stringlegfeljebb 128 karakter

Ugyanaz a szerepe, mint az Idempotency-Key fejlécnek, azon ügyfelek számára, amelyek nem tudnak egyéni fejléceket küldeni. Betűk, számjegyek, _, -, : vagy ., legfeljebb 128 karakter.

Minta: ^[A-Za-z0-9_\-:.]{1,128}$
Példa: "b8f1c2e0-6f7a-4d2e-9c1b-2a3d4e5f6a7b"

Válaszok

201

Létrehozva.

datakötelező
object
data mezői
message
object

A közzétett válasz.

message mezői
id
integer
Példa: 8012
author
object

Az eljáró munkatárs-felhasználó, aki a választ közzétette.

author mezői
participant_id
integer | null
name
string | null
kind
string

staff = az iroda egy munkatársa, client = a külső ügyfél.

Lehetséges értékek: "staff" "client"
direction
string

Mindig "from_firm" egy ezen az API-n keresztül közzétett válasz esetén.

Lehetséges értékek: "from_firm" "from_client"
body
string

A közzétett üzenet sima szövegként.

created_at
string <date-time> | null
portal
object

A portál (szál) és annak ügye, amelyben a választ közzétették.

portal mezői
id
integer
matter
object
matter mezői
id
integer
case_number
string
created_via_api
object | null

Az ezen az API-n keresztül létrehozott üzenet eredete.

created_via_api mezői
kind
string

"key": statikus API-kulccsal létrehozva; "oauth": OAuth-on keresztül csatlakoztatott alkalmazás által létrehozva.

Lehetséges értékek: "key" "oauth"
key_id
integer

Az API-kulcs ("key" típus) vagy a csatlakoztatott alkalmazás ("oauth" típus) azonosítója; a kettő számozása külön történik.

key_name
string

Az a név, amelyet a felhasználó adott az API-kulcsnak, például "Grok integration", vagy a csatlakoztatott alkalmazás neve "oauth" típus esetén, például "Claude".

user_id
integer
user
string | null
at
string <date-time> | null
created
boolean
Érték: true
200

Idempotens visszajátszás: ez az Idempotency-Key (vagy kulcs nélkül egy azonos kérés 120 másodpercen belül) már létrehozta a rekordot; a rendszer újra visszaadja, semmi új nem jött létre.

datakötelező
object
data mezői
message
object

A közzétett válasz.

message mezői
id
integer
Példa: 8012
author
object

Az eljáró munkatárs-felhasználó, aki a választ közzétette.

author mezői
participant_id
integer | null
name
string | null
kind
string

staff = az iroda egy munkatársa, client = a külső ügyfél.

Lehetséges értékek: "staff" "client"
direction
string

Mindig "from_firm" egy ezen az API-n keresztül közzétett válasz esetén.

Lehetséges értékek: "from_firm" "from_client"
body
string

A közzétett üzenet sima szövegként.

created_at
string <date-time> | null
portal
object

A portál (szál) és annak ügye, amelyben a választ közzétették.

portal mezői
id
integer
matter
object
matter mezői
id
integer
case_number
string
created_via_api
object | null

Az ezen az API-n keresztül létrehozott üzenet eredete.

created_via_api mezői
kind
string

"key": statikus API-kulccsal létrehozva; "oauth": OAuth-on keresztül csatlakoztatott alkalmazás által létrehozva.

Lehetséges értékek: "key" "oauth"
key_id
integer

Az API-kulcs ("key" típus) vagy a csatlakoztatott alkalmazás ("oauth" típus) azonosítója; a kettő számozása külön történik.

key_name
string

Az a név, amelyet a felhasználó adott az API-kulcsnak, például "Grok integration", vagy a csatlakoztatott alkalmazás neve "oauth" típus esetén, például "Claude".

user_id
integer
user
string | null
at
string <date-time> | null
created
boolean
Érték: false
idempotent_replay
boolean
Érték: true
400

Hibás formátumú kérés: érvénytelen JSON törzs, rossz host (használja a www. hostot), vagy olvashatatlan kérés.

401

A kulcs hiányzik, érvénytelen, visszavonták vagy lejárt, vagy a hozzá tartozó felhasználó már nem aktív.

403

Hiányzó hatókör (scope_missing), hiányzó Flowyer modulengedély (module_forbidden), az iroda számára letiltott API, lejárt licenc vagy archivált iroda.

404

Ismeretlen végpont, vagy a rekord nem létezik / nem látható a felhasználó számára. replay_not_visible: ez az Idempotency-Key (vagy kulcs nélkül egy azonos kérés) már létrehozta a rekordot (details.record_id), de azt azóta törölték, vagy nem látható a felhasználó számára; semmi új nem jött létre, ne hozza létre újra.

405

Ezen az útvonalon nem elérhető metódus (a DELETE és a PUT soha nem az; a PATCH csak ott, ahol frissítés is elérhető).

409

Az Idempotency-Key kulcsot egy másik erőforrástípushoz használták (idempotency_key_reused), vagy kulcs nélkül egy azonos kérés feldolgozása éppen most zajlik (duplicate_in_progress; próbálja újra rövidesen).

413

A kérés törzse túl nagy (request_too_large).

422

A validáció sikertelen volt, vagy ismeretlen mező; a details.fields felsorolja a mezőhibákat.

429

A sebességkorlát túllépve; a Retry-After megadja, mikor próbálja újra.

503

Az iroda átmenetileg nem érhető el (karbantartás vagy beállítás van folyamatban); a Retry-After megadja, mikor próbálja újra.

default

Bármely egyéb hiba, ugyanabban a burokban.

Kérésminták

curl -X POST 'https://www.flowyer.hu/api/agent/portals/57/messages' \
  -H 'Authorization: Bearer flw_...' \
  -H 'Content-Type: application/json' \
  -H 'Idempotency-Key: 7f3a9c21-1b2c-4d5e-8f90-0a1b2c3d4e5f' \
  -d '{
  "body": "Tisztelt Ügyfelünk! A beadványt ma benyújtottuk."
}'

Válaszminták

{
  "data": {
    "message": {
      "id": 8012,
      "author": {
        "participant_id": 1234,
        "name": "string",
        "kind": "staff"
      },
      "direction": "from_firm",
      "body": "string",
      "created_at": "2026-10-30T09:15:00+01:00",
      "portal": {
        "id": 1234,
        "matter": {
          "id": 1234,
          "case_number": "string"
        }
      },
      "created_via_api": {
        "kind": "key",
        "key_id": 1234,
        "key_name": "string",
        "user_id": 1234,
        "user": "string",
        "at": "2026-10-30T09:15:00+01:00"
      }
    }
  },
  "created": true
}