Skip to content

Organizacije in delovni prostori

Pregled

qr3.app uporablja dvonivojsko hierarhijo:

Organization (Firma/Agentur)
└── Workspace 1 (Kunde A)
└── Workspace 2 (Kunde B)
└── Workspace 3 (Internes Team)
  • Organizacija — najvišja raven, povezana z računom Stripe in naročniškim paketom
  • Delovni prostor (Workspace) — izolirano območje za kode QR, skeniranja in ključe API

API za organizacije

GET /v1/organizations

Vrne organizacijo, ki ji pripada trenutni ključ API.

Terminal window
curl https://qr3.app/v1/organizations \
-H "Authorization: Bearer qr3_sk_..."

GET /v1/organizations/usage

Vrne trenutno porabo organizacije glede na omejitve paketa — sešteto za vse delovne prostore in izračunano v živo: scans za trenutni obračunski mesec (glede na max_scans_per_month) in dynamic_codes, število aktivnih dinamičnih kod (glede na max_dynamic_codes). Nobena od teh vrednosti ob dosegu omejitve ni blokirana; to končno točko (endpoint) uporabite za prikaz porabe in obvestila o nadgradnji.

Terminal window
curl https://qr3.app/v1/organizations/usage \
-H "Authorization: Bearer qr3_sk_..."
{
"data": {
"scans": {
"used": 4120,
"limit": 5000,
"usage_pct": 82,
"remaining": 880,
"period": "2026-06",
"period_start": "2026-06-01T00:00:00.000Z"
},
"dynamic_codes": {
"used": 142,
"limit": 500,
"usage_pct": 28,
"remaining": 358
}
}
}

POST /v1/organizations

Ustvari novo organizacijo.

Terminal window
curl -X POST https://qr3.app/v1/organizations \
-H "Authorization: Bearer qr3_sk_..." \
-H "Content-Type: application/json" \
-d '{
"name": "Digital Heroes GmbH",
"slug": "digital-heroes",
"billing_email": "[email protected]"
}'

Polja:

PoljeTipObveznoOpis
namestring✅Prikazno ime (največ 255 znakov)
slugstring✅URL-ju prijazno, edinstveno (najmanj 2, največ 63 znakov, samo a-z0-9-)
billing_emailstring—E-pošta za izstavitev računov

PATCH /v1/organizations/:id

Spremeni ime, e-poštni naslov za račune in e-poštni naslov za obvestila organizacije.

Spremeni jih lahko le org_admin v seji Nadzorne plošče. Zahteve s ključem API so zavrnjene s 403 — tudi s ključi qr3_sk_ in qr3_test_sk_ —, zato razkrit ključ ne more preusmeriti naslova za račune ali obvestila.

DELETE /v1/organizations/:id

Mehki izbris (soft-delete) organizacije. Vsi pripadajoči delovni prostori in kode QR se ohranijo, vendar niso več dostopni.

Zahteva vlogo org_admin (seja Nadzorne plošče). Zahteve z le navadnim ključem API so zavrnjene s 403 — ključi API nikoli ne pridobijo skrbniške vloge, zato razkrit ključ ne more izbrisati organizacije.


API za delovne prostore

GET /v1/workspaces

Seznam delovnih prostorov, ki jih klicatelj vidi: org_admin in lastnik organizacije vidita vse delovne prostore organizacije, drugi člani le delovne prostore, ki jim pripadajo, ključ API pa le svoj delovni prostor. Delovni prostor, ki ga klicatelj ne vidi, na vsaki poti /v1/workspaces/:id odgovori s 404, natanko tako kot neznan ID.

Terminal window
curl https://qr3.app/v1/workspaces \
-H "Authorization: Bearer qr3_sk_..."

POST /v1/workspaces

Ustvari nov delovni prostor.

Terminal window
curl -X POST https://qr3.app/v1/workspaces \
-H "Authorization: Bearer qr3_sk_..." \
-H "Content-Type: application/json" \
-d '{
"name": "Kunde Bäckerei Schmidt",
"slug": "baeckerei-schmidt",
"default_locale": "de",
"primary_color": "#8B4513",
"approval_required": false
}'

Z API ključem lahko delovni prostor ustvari le ključ, ki ga je ustvaril org_admin ali lastnik organizacije; vsak drug ključ prejme 403, še preden se preveri slug (odgovor torej ne razkrije, kateri slugi so zasedeni). Vloga osebe, ki je ustvarila ključ, se preveri pri vsaki zahtevi: če ji vlogo znižajo, njen ključ izgubi to pravico. Ključ API je vezan na svoj delovni prostor in novega pozneje ne vidi: njegov id je v odgovoru 201; org_admin ga odpre v Nadzorni plošči in tam zanj lahko ustvari ključ. V Nadzorni plošči lahko delovne prostore ustvarja le org_admin.

Polja:

PoljeTipPrivzetoOpis
namestring—Prikazno ime (obvezno)
slugstring—URL-ju prijazno, edinstveno znotraj organizacije (obvezno)
default_localestringdePrivzeti jezik
approval_requiredbooleanfalseRezervirano za načrtovani potek dela za odobritev (ni implementiran)
primary_colorstring—Primarna barva blagovne znamke (#RRGGBB)

Omejitve paketov:

PaketNajveč delovnih prostorov
Free1
Pro1
Business10
Agency50
Enterprise500

PATCH /v1/workspaces/:id

Terminal window
curl -X PATCH https://qr3.app/v1/workspaces/ws_xyz789 \
-H "Authorization: Bearer qr3_sk_..." \
-H "Content-Type: application/json" \
-d '{
"name": "Neuer Name",
"approval_required": true
}'

DELETE /v1/workspaces/:id

Arhivira delovni prostor. Ni mogoče uporabiti za lasten delovni prostor.

Zahteva org_admin ali ws_admin delovnega prostora, ki ga želite arhivirati; druge vloge prejmejo 403. Delovni prostor, ki ga klicatelj ne vidi, odgovori s 404 — za ključ API je to vsak delovni prostor razen njegovega lastnega, ki ga prav tako ne more arhivirati.


Revizijski dnevniki

GET /v1/audit-logs

Sledljiv dnevnik vseh sprememb v delovnem prostoru.

Terminal window
curl "https://qr3.app/v1/audit-logs?resource_type=codes&limit=50" \
-H "Authorization: Bearer qr3_sk_..."

Parametri poizvedbe:

ParameterTipOpis
resource_typestringFiltriranje po viru: codes, api_keys, webhooks, workspaces
resource_idstringFiltriranje po določeni ID-številki vira
actionstringFiltriranje po dejanju (npr. codes.created)
cursorstringKazalec za paginacijo (Pagination-Cursor)
limitintegerNajveč 100 (privzeto: 50)

Primer odgovora:

{
"data": [
{
"id": "aud_a1b2c3",
"actor_type": "api",
"action": "codes.created",
"resource_type": "codes",
"resource_id": "qr_xyz123",
"changes": {},
"created_at": "2026-03-15T10:00:00.000Z"
}
]
}