Wiresphere REST API
Kompletná vývojárska dokumentácia REST API Wiresphere. Toto API umožňuje spravovať produkty, transakcie, zákaznícke kontakty, platby a nastavenia obchodu v kontexte multi-tenant systému.
https://api.wiresphere.com (PLACEHOLDER) · autentifikácia pomocou Bearer JWT (platnosť 24 h) · hlavička tenant-id povinná takmer vo všetkých koncových bodoch. Späť na prehľad dokumentácie.API využíva autentifikáciu založenú na tokenoch (Bearer JWT). Tokeny sú platné 24 hodín.
Odošlite username a password na autentifikačný koncový bod. V prípade administrátorských používateľov hlavička tenant-id nesmie byť odoslaná.
Získaný token umiestnite do hlavičky Authorization všetkých zabezpečených požiadaviek:
Authorization: Bearer <ziskany-token>
Tokeny sú platné 24 hodín. Expirovaný alebo neplatný token vedie k odpovedi 409 Conflict.
Parametre hlavičky
| Názov | In | Typ | Povinný | Popis |
|---|---|---|---|---|
| tenant-id | header | string | Nie | Kontext obchodu. Musí byť vynechaná pri autentifikácii administrátora. |
Request Body (application/json)
{
"username": "meno-pouzivatela",
"password": "heslo"
}
Odpoveď
{
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
}
API je multi-tenant (viacnájomné). Každá požiadavka (s výnimkou autentifikácie ako administrátor) musí identifikovať kontext obchodu pomocou hlavičky tenant-id.
Hlavička tenant-id
Hlavička tenant-id je povinným poľom takmer vo všetkých koncových bodoch. Určuje, v ktorom kontexte obchodu sa operácia vykonáva. Požiadavky bez tejto hlavičky sú odmietnuté.
tenant-id: id-mojho-obchodu
Koncové body vracajúce zoznamy podporujú jednotné parametre dopytu pre stránkovanie, filtrovanie a triedenie.
Parametre dopytu (koncové body zoznamov)
| Parameter | Predvolené | Popis |
|---|---|---|
| p | 0 | Číslo stránky (počítané od 0) |
| s | 10 | Počet záznamov na stránku |
| f | — | Filtrovací výraz (pozri nižšie) |
| o | — | Triediaci výraz (pozri nižšie) |
Syntax filtrov (parameter f)
Filtre sa zadávajú ako skupiny kľúč – hodnota:
# Jednoduchý filter (vyhľadávanie podreťazca) f=fieldName::value # Viacero hodnôt (spojené operátorom ALEBO) f=fieldName::val1~~val2 # Vylúčenie (prefix --) f=fieldName::--vylucenaHodnota # Kombinácia f=name::Jan~~--Juraj,email::@example.com # Filter časového rozsahu (ISO 8601) f=min_createdAt::2024-01-01T00:00:00.000Z f=max_createdAt::2024-12-31T23:59:59.999Z
Syntax triedenia (parameter o)
# Vzostupne o=name::ASC # Zostupne o=createdAt::DESC # Viacero polí o=createdAt::DESC,name::ASC
Správa inventára produktov obchodu. Podporuje operácie CRUD aj hromadné operácie.
Hlavičky
| Názov | In | Povinný | Popis |
|---|---|---|---|
| tenant-id | header | ID obchodu | |
| Authorization | header | Bearer <token> |
Parametre dopytu
| Názov | Typ | Popis |
|---|---|---|
| p | integer | Stránka (predvolene: 0) |
| s | integer | Veľkosť stránky (predvolene: 10) |
| f | string[] | Filter: name, SKU, vatClass, status |
| o | string[] | Triedenie: name, SKU, vatClass, status |
Odpoveď (200)
{
"totalElements": 42,
"totalPages": 5,
"size": 10,
"number": 0,
"first": true,
"last": false,
"content": [
{
"base": { /* Základné údaje produktu */ },
"additional": { /* Dodatočné údaje */ }
}
]
}
Parametre cesty
| Názov | In | Popis |
|---|---|---|
| sku* | path | Jedinečný identifikátor produktu v obchode (Stock Keeping Unit) |
Odpoveď (200) — ProductDataDTO
{
"base": { /* Základné údaje produktu (názov, SKU, cena atď.) */ },
"additional": { /* Rozšírené polia */ }
}
Request Body (application/json) — ProductDataDTO
{
"base": {
// Povinné polia a údaje produktu (názov, SKU, cena, status atď.)
},
"additional": {
// Voliteľné dodatočné polia
}
}
Odpoveď
Request Body (application/json)
["produktId1", "produktId2"]
Odpoveď
Vracia všetky zaregistrované hromadné operácie vrátane schém ich parametrov.
Odpoveď (200) — pole ProductOperationRegistrationDTO
[{
"operationId": "set-status",
"description": "Nastaví status produktov",
"parameterTypes": { "status": "string" },
"previewProperties": ["status"]
}]
Simuluje hromadnú operáciu a zobrazuje stav pred/po — bez uloženia údajov.
Request Body
{
"operationId": "set-status",
"parameters": { "status": "ACTIVE" },
"confirmAll": false
}
Vykonáva hromadnú operáciu na filtrovaných produktoch. Trvalo mení údaje.
Parametre dopytu
| Názov | Popis |
|---|---|
| f | Filter určujúci, ktorých produktov sa operácia týka |
Request Body
{
"operationId": "set-status",
"parameters": { "status": "INACTIVE" }
}
Transakcie zahŕňajú všetky objednávky, zmluvy a faktúry. K dispozícii je verejný aj administrátorský koncový bod.
Dostupné hodnoty doctype
Pri filtrovaní podľa doctype sú známe nasledujúce hodnoty: ORDER, CONTRACT, INVOICE
Polia filtrov (parameter f)
| Pole | Formát | Popis |
|---|---|---|
| min_createdAt | ISO 8601 | Vytvorené od dátumu |
| max_createdAt | ISO 8601 | Vytvorené do dátumu |
| doctype | ORDER/CONTRACT/INVOICE | Typ transakcie |
| docId | string | ID dokumentu |
| processId | string | ID procesu |
| processType | string | Pipeline procesu |
| payload.channel | string | Predajný kanál |
| payload.email | string | E-mailová adresa zákazníka |
Polia triedenia (parameter o)
createdAt, docId, payload.netTotalPrice, payload.grossTotalPrice, payload.customer.name
Príklad
GET /api/v1/admin/transaction/?f=doctype::ORDER,min_createdAt::2024-01-01T00:00:00.000Z&o=createdAt::DESC&p=0&s=20 Authorization: Bearer <token> tenant-id: moj-obchod
Parametre cesty
| Názov | Popis |
|---|---|
| processId* | ID procesu (zoskupuje navzájom súvisiace transakcie) |
| docId* | ID dokumentu konkrétnej transakcie |
Parametre dopytu
| Názov | Povinný | Popis |
|---|---|---|
| props | Polia, pre ktoré sa majú určiť hodnoty distinct | |
| and | Nie | Predfilter AND |
| or | Nie | Predfilter OR |
Odpoveď (200)
{
"doctype": ["ORDER", "INVOICE"],
"payload.channel": ["online", "terminal"]
}
Parametre cesty
| Názov | Popis |
|---|---|
| processId* | ID procesu |
| docId* | ID dokumentu transakcie na zrušenie |
Parametre dopytu
| Názov | Popis |
|---|---|
| reason | Voliteľný dôvod zrušenia |
Parametre cesty
| Názov | Popis |
|---|---|
| processId* | ID procesu — zrušené budú všetky súvisiace transakcie |
Parametre dopytu
| Názov | Popis |
|---|---|
| reason | Voliteľný dôvod zrušenia |
Rovnaké možnosti filtrovania a triedenia ako v administrátorskom koncovom bode, avšak bez Bearer autentifikácie. Filtruje údaje dostupné v kontexte obchodu.
Správa osôb v CRM (zákazníci, kontakty). Existujú dve paralelné cesty kontrolérov s identickou funkcionalitou.
Paralelné koncové body
Osoby je možné spravovať cez dve cesty: /api/v1/admin/person/ a /api/v1/admin/business-contacts/people/. Obe poskytujú rovnakú funkcionalitu — pri nových integráciách odporúčame cestu business-contacts.
Polia filtrov (parameter f)
personId, firstName, lastName, email
Odpoveď (200) — PageCrmPersonDTO
{
"totalElements": 100,
"content": [{
"id": "507f1f77bcf86cd799439011",
"firstName": "Ján",
"lastName": "Novák",
"email": "jan@example.com",
"personId": "ext-123",
"addresses": [],
"communications": [],
"organisations": [],
"types": []
}]
}
Parametre cesty
| Názov | Popis |
|---|---|
| id* | MongoDB ObjectId osoby |
Request Body (application/json) — PersonDTO
{
"firstName": "Ján",
"lastName": "Novák",
"email": "jan@example.com",
"salutation": "Pán",
"title": "dr",
"personId": "externe-id-123",
"addresses": [{
"street": "Ukážková",
"streetNumber": "1",
"zipCode": "811 01",
"city": "Bratislava",
"country": "SK",
"type": "MAIN"
}],
"communications": [{
"type": "PHONE",
"value": "+48 123 456 789"
}],
"types": []
}
Rovnaké request body ako pri POST. Úplné nahradenie záznamu.
Request Body — RelationDeltaDTO
{
"add": ["orgId1", "orgId2"],
"remove": ["staraOrgId"]
}
Odpoveď (200) — OkDTO
{ "ok": true }
Request Body
["id1", "id2", "id3"]
Správa firiem a organizácií. Analogicky k osobám dostupné taktiež cez dve paralelné cesty.
Polia filtrov
name (vyhľadávanie podreťazca)
Odpoveď (200) — PageCrmOrganisationDTO
{
"totalElements": 10,
"content": [{
"id": "...",
"name": "Príklad s.r.o.",
"organisationId": "externe-id",
"addresses": [],
"communications": [],
"people": [],
"types": []
}]
}
Request Body — OrganisationDTO
{
"name": "Príklad s.r.o.",
"organisationId": "externe-id",
"addresses": [],
"communications": [],
"types": []
}
Request Body — RelationDeltaDTO
{
"add": ["personId1"],
"remove": []
}
Slugy definujú URL trasy v obchode a prezentujú jednotlivé produkty (product) alebo zoznamy produktov (product-list).
Odpoveď — PageSlug
{
"content": [{
"id": "507f...",
"slug": "beton-c25-30",
"label": "Beton C25/30",
"objectType": "product",
"collection": "products",
"refId": "produktMongoId",
"inactive": false
}]
}
Request Body — Slug
{
"id": "507f...", // Uveďte pri aktualizácii
"slug": "moj-slug", // Segment URL (povinné)
"collection": "products", // Kolekcia MongoDB (povinné)
"objectType": "product", // "product" alebo "product-list" (povinné)
"refId": "...", // ID produktu (pri objectType "product")
"fields": { // Filter pre "product-list"
"category": "beton"
},
"defaultSort": [{ "field": "name", "direction": "asc" }],
"context": ["main-nav"],
"inactive": false
}
Užitočné na nájdenie slugu priradeného známemu produktu.
Parametre cesty
| Názov | Popis |
|---|---|
| fieldName* | Pole produktu, z ktorého sa generujú slugy |
Parametre dopytu
| Názov | Popis |
|---|---|
| values | Voliteľné obmedzenie na určité hodnoty poľa |
Parametre dopytu
| Názov | Popis |
|---|---|
| navScope | Voliteľný filter kontextu navigácie |
Odpoveď (200)
["main-nav", "footer", "sidebar"]
Request Body — pole ItemOrderDTO
[
{ "sku": "SKU-001", "categoryId": "catId", "order": 0 },
{ "sku": "SKU-002", "categoryId": "catId", "order": 1 }
]
Request Body — NavigationUpdateDTO
{
"slugId": "slugMongoId",
"navigationNames": ["main-nav", "footer"]
}
Parametre cesty
| Názov | Popis |
|---|---|
| key* | Kľúč nastavenia |
Request Body — Setting
{
"key": "kluc-nastavenia",
"public": {
// Verejne dostupné nastavenia
"theme": "dark"
},
"private": {
// Dostupné len pre autentifikované požiadavky
"apiKey": "secret"
}
}
Parametre dopytu
| Názov | Popis |
|---|---|
| p | Stránka |
| s | Veľkosť stránky |
| f | Filter názvu súboru |
| mime | Filter typu MIME (napr. image/png) |
Požiadavka ako multipart/form-data s poľom file.
Content-Type: multipart/form-data file: [binary data]
Integrácia Stripe na spracovanie platieb. K dispozícii sú dva režimy: štandardný Stripe (stripe) a externý Stripe (stripe-external).
Odpoveď (200)
{ "publishableKey": "pk_live_..." }
Vracia aktuálny stav platieb obchodu.
Len pre Stripe webhooky
Tento koncový bod slúži na spracovanie prichádzajúcich webhook udalostí Stripe. Hlavička Stripe-Signature je povinná a nastavuje ju automaticky Stripe.
Hlavičky
| Názov | Popis |
|---|---|
| Stripe-Signature* | Podpisová hlavička nastavovaná službou Stripe na účely overenia |
Odpoveď (200) — WebhookTestStatusDTO
{
"sandbox": {
"mode": "SANDBOX",
"passed": true,
"ranAt": "2024-01-15T10:30:00Z",
"durationMs": 234,
"pending": false
},
"production": { /* analogicky */ }
}
Parametre cesty
| Názov | Popis |
|---|---|
| entity* | Typ entity (napr. products, persons) |
Request Body (multipart)
Content-Type: application/json file: [binary — súbor CSV alebo JSON]
Odpoveď (200) — UploadResponse
{
"success": true,
"importCount": 42
}
Parametre cesty
| Názov | Popis |
|---|---|
| entity* | Typ entity (napr. products, persons) |
Odpoveď
Binárny súbor (string format: binary)
Prehľad všetkých používaných dátových štruktúr.
PersonDTO
| Pole | Typ | Popis |
|---|---|---|
| id | string | MongoDB ObjectId |
| firstName | string | Meno |
| lastName | string | Priezvisko |
| string | E-mailová adresa | |
| salutation | string | Oslovenie |
| title | string | Titul (napr. dr) |
| personId | string | Externé/vlastné ID |
| tenantId | integer | Priradenie k tenantovi |
| addresses | AddressDTO[] | Adresy |
| communications | CommunicationDTO[] | Komunikačné kanály |
| organisations | OrganisationDTO[] | Priradené organizácie |
| types | BusinessContactTypeDTO[] | Typy kontaktov |
| createdAt | datetime | Dátum vytvorenia |
| updatedAt | datetime | Posledná aktualizácia |
AddressDTO
| Pole | Typ | Popis |
|---|---|---|
| street | string | Názov ulice |
| streetNumber | string | Číslo domu |
| supplemental | string | Dodatočné adresné informácie |
| zipCode | string | PSČ |
| city | string | Mesto |
| country | string | Krajina (ISO kód, napr. SK) |
| type | string | Typ adresy (napr. MAIN, BILLING) |
Slug
| Pole | Typ | Povinný | Popis |
|---|---|---|---|
| id | string | — | MongoDB ObjectId |
| slug | string | URL podcesta obchodu | |
| label | string | — | Čitateľný názov |
| collection | string | Kolekcia MongoDB | |
| objectType | string | "product" alebo "product-list" | |
| refId | string | — | Referencia produktu (pri product) |
| fields | object | — | Filter pre product-list |
| context | string[] | — | Kontexty zobrazenia |
| defaultSort | SortField[] | — | Predvolené triedenie |
| inactive | boolean | — | Deaktivuje slug |
ProductDataDTO
| Pole | Typ | Popis |
|---|---|---|
| base | object | Základné údaje produktu (dynamické, závislé od obchodu) |
| additional | object | Rozšíriteľné dodatočné polia |
RelationDeltaDTO
Používa sa v koncových bodoch PATCH na správu relácií (osoby↔organizácie).
| Pole | Typ | Popis |
|---|---|---|
| add | string[] | ID, ktoré sa majú pridať |
| remove | string[] | ID, ktoré sa majú odstrániť |
Wiresphere API · OpenAPI 3.0.1 · Dokumentácia vygenerovaná v máji 2026
Základná URL: https://api.wiresphere.com · Autentifikácia: Bearer JWT · Platnosť tokenu: 24 hodín