1.) Obecná syntaxe
GET request
GET http(s)://[adresa API]/graphql?query={[dotaz]}
Authorization: Bearer [token]
POST request
POST http(s)://[adresa API]/graphql
Authorization: Bearer [token]
request body: {„query“:“{[dotaz]}“}
Schéma
GET http(s)://[adresa API]/graphql/schema
(bez autorizace)
2.) Čtení dat (select)
2.1 číslo verze
GET http(s)://[adresa API]/graphql?query={Version} POST http(s)://[adresa API]/graphql request body: {"query":"{Version}"}
2.2. seznam firem
GET http(s)://[adresa API]/graphql?query={Companies{ID,Kod,Nazev}} POST http(s)://[adresa API]/graphql request body: {"query":"{Companies{ID,Nazev,ObchMisto}}"}
2.3 firma (dle ID)
GET http(s)://[adresa API]/graphql?query={Company(ID:"64d9f777-0035-40c2-9954-572fe61298fe"){ID,Kod,Nazev}} POST http(s)://[adresa API]/graphql request body: {"query":"{Company(ID:\"64d9f777-0035-40c2-9954-572fe61298fe\"){ID,Nazev,ObchMisto}}"} nebo {"query":"{Companies (Filter:\"ID~eq~64d9f777-0035-40c2-9954-572fe61298fe\") {ID,Kod,Nazev} }"}
2.4 seznam zakázek
GET http(s)://[adresa API]/graphql?query={JobOrders{ID,Kod,Nazev}} POST http(s)://[adresa API]/graphql request body: {"query":"{JobOrders{ID, Kod, Nazev, Firma_ID, Firma{ID, Nazev}}}"}
2.5 zakázka (dle ID)
GET http(s)://[adresa API]/graphql?query={JobOrder(ID:"7734856e-e003-4b29-9bfa-561498a80b33"){ID,Kod,Nazev}} POST http(s)://[adresa API]/graphql request body: {"query":"{JobOrder(ID:\"7734856e-e003-4b29-9bfa-561498a80b33\") {ID,Kod,Nazev}}"}
2.6 Skupiny v seznamech (Group_ID)
Při zaslání dokladu je vhodné použít i Group_ID, který doklad zapíšete do specifické skupiny, která může mít nastavenou například svou číselnou řadu nebo třeba středisko. V každém seznamu je jednotná skupina Nezařazeno a další skupiny si zakládají uživatele vlastní.
Názvy objektů např.: ObjednavkaPrijata, ObjednavkaVydana, FakturaPrijata, FakturaVydana, Zasoba, PolozkaCeniku, Artikl, DodaciListVydany, DodaciListPrijaty, Firma, PokladniDoklad, BankovniVypis, ProdejkaVydana, ProdejkaPrijata, SkladovyDoklad
POST http(s)://[adresa API]/graphql request body: {"query":"{MerpGroups(ObjectName:\"ObjednavkaVydana\") {ID, Parent_ID, Kod, Nazev, Object_ID, ObjectName}}"}
POST http(s)://[adresa API]/graphql request body: { ReceivedOrders #(Filter: "DatumVystaveni~gte~2023-01-01#DatumVystaveni~lte~2023-02-14") { ID, CisloDokladu, VariabilniSymbol, DatumVystaveni, DatumVyrizeni, IC, DIC, ICDPH, Firma_ID, AdresaNazev, AdresaUlice, AdresaMisto, AdresaPSC, AdresaStat_ID, AdresaStat{Kod,Nazev}, DodaciAdresaFirma_ID, DodaciAdresaNazev, DodaciAdresaUlice, DodaciAdresaMisto, DodaciAdresaPSC, DodaciAdresaStat, AdresaKoncovehoPrijemceKontaktniOsobaNazev, AdresaKoncovehoPrijemceTelefon, AdresaKoncovehoPrijemceEmail, FakturacniAdresaFirma_ID, FakturacniAdresaNazev, FakturacniAdresaUlice, FakturacniAdresaMisto, FakturacniAdresaPSC, FakturacniAdresaStat, #Zaplaceno_UserData, Poznamka, Sleva, SumaCelkem, PriznakVyrizeno, ZpusobPlatby_ID, ZpusobPlatby { Nazev, Kod }, ZpusobDopravy_ID, ZpusobDopravy { Nazev, Kod }, Mena_ID, Mena { Kod }, WorkflowStavObjektu{ Stav_ID, Stav{ Kod, Nazev } }, Stredisko_ID, Stredisko {Kod, Nazev}, Cinnost_ID, Cinnost {Kod, Nazev}, Zakazka_ID, Zakazka {Kod, Nazev} Polozky { ID, Poradi, Nazev, Katalog, Jednotka, Mnozstvi, JednCenaCM, DphSazba, CelkovaCenaCM, TypCeny, Sleva, Vratka, PriznakVyrizeno, ObsahPolozky {Artikl_ID, Artikl{CarovyKod, VlastniHmotnost}, Sklad_ID, Sklad{Kod, Nazev}, Cenik_ID, Cenik{Kod, Nazev}}, Stredisko_ID, Stredisko {Kod, Nazev}, Cinnost_ID, Cinnost {Kod, Nazev}, Zakazka_ID, Zakazka {Kod, Nazev} }, Create_Date, Modify_Date } }
POST http(s)://[adresa API]/graphql request body: {"query":"{ IssuedInvoices(Filter: \"DatumVystaveni~gte~2022-02-13#DatumVystaveni~lte~2022-02-14\") { ID, ZpusobPlatby { Nazev, Kod }, ZpusobPlatby_ID, ZpusobDopravy { Nazev, Kod }, ZpusobDopravy_ID, AdresaKoncovehoPrijemceEmail, AdresaKoncovehoPrijemceKontaktniOsobaNazev, AdresaKoncovehoPrijemceStat_ID, AdresaKoncovehoPrijemceTelefon, AdresaKontaktniOsobaJmeno, AdresaKontaktniOsobaNazev, AdresaKontaktniOsobaPrijmeni, AdresaMisto, AdresaNazev, AdresaPrijemceFakturyKontaktniOsobaNazev, AdresaPrijemceFakturyStat_ID, AdresaPSC, AdresaStat{Nazev}, AdresaStat_ID, AdresaUlice, CisloDokladu, DatumVystaveni, DodaciAdresaFirma_ID, DodaciAdresaMisto, DodaciAdresaNazev, DodaciAdresaPSC, DodaciAdresaStat, DodaciAdresaUlice, DomaciMena_ID, FakturacniAdresaMisto, FakturacniAdresaNazev, FakturacniAdresaPSC, FakturacniAdresaStat, FakturacniAdresaUlice, Poznamka, SumaCelkem, VariabilniSymbol, Mena_ID, Mena { Kod }, Polozky { ID, Jednotka, Mnozstvi, Nazev, Katalog, Poradi }, Create_Date, Modify_Date } } "}
POST http(s)://[adresa API]/graphql request body: { Companies #(Filter: "ICO~eq~60737689") { ID, Kod Nazev, ICO, ICDPH, DIC, Tel1Cislo, Email, WWW, OdlisnaFakturacniAdresa, OdlisnaAdresaProvozovny, ObchNazev, ObchUlice, ObchMisto, ObchPsc, ObchStat { Kod, Nazev }, FaktNazev, FaktUlice, FaktMisto, FaktPsc, FaktStat { Kod, Nazev }, ProvNazev, ProvUlice, ProvMisto, ProvPsc, ProvStat { Kod, Nazev }, SeznamSpojeni { ID, SpojeniCislo, Poradi, TypSpojeni_ID, Vychozi, TypSpojeni { ID, Kod, Nazev, DruhSpojeni } }, PouzivatKredit, HodnotaKreditu, VlastniSleva, HodnotaSlevy, SeznamCeniku { ID, Poradi, Firma_ID, Cenik {ID, Kod, Nazev, Neaktivni, PlatnostOd, PlatnostDo} }, ZpusobDopravy { ID, Kod, Nazev }, ZpusobPlatby{ ID, Kod, Nazev }, VlastniSplatnostPohledavek, SplatnostPohledavek } }
POST http(s)://[adresa API]/graphql request body: { InternalAccountingDocs (Filter: "CisloDokladu~eq~ID2300001") { ID, Group_ID, CisloDokladu, VariabilniSymbol, ParovaciSymbol, DatumVystaveni, DatumUcetnihoPripadu, DatumUplatneni, DatumPlneni, Nazev, Firma_ID, AdresaNazev, AdresaMisto, AdresaUlice, AdresaPSC, AdresaStat_ID, AdresaStat{Kod, Nazev}, IC, ICDPH, DIC, Predkontace_ID, Predkontace{Kod, Nazev},CleneniDPH_ID, CleneniDPH{Kod, Nazev}, PrimarniUcetMD_ID, PrimarniUcetMD{CisloUctu},PrimarniUcetDal_ID, PrimarniUcetDal{CisloUctu}, Stredisko_ID, Stredisko{ID, Kod, Nazev}, Zakazka_ID, Zakazka{ID, Kod, Nazev}, Cinnost_ID, Cinnost{ID, Kod, Nazev} PrijatyDoklad, PuvodniDoklad, Mena_ID, Mena{Kod, Nazev}, UcetniKurzKurz SumaZaklad, SumaZakladCM, SumaDan, SumaDanCM, CelkovaCastka, CelkovaCastkaCM, UhradyZbyva, UhradyZbyvaCM, Polozky { ID, Poradi, Nazev, Mnozstvi, Jednotka, JednCenaCM, CelkovaCenaCM, TypCeny, DphSazba, SazbaDPH {ID, Sazba}, CleneniDPH_ID, Predkontace_ID, UcetMD_ID, UcetDal_ID, ParovaciSymbol, ICO, Stredisko_ID, Zakazka_ID, Cinnost_ID, Cinnost{ID,Kod, Nazev} }, Create_Date, Modify_Date } }
Pokud je aktivní modul Eshop konektor, tak jsou dostupné i některé specifické informace pro potřeby eshop (objecty s předponou Esh_ a Eshop).
POST http(s)://[adresa API]/graphql request body: { #Položky dle vybraného Eshopu EShopArticles (Filter: "Obchod_ID~eq~b40575ac-394b-4c35-9455-5f72c3bc3b6e") { ID Artikl_ID Obchod{Nazev} Obchod_ID Artikl { ID Nazev Katalog CarovyKod HlavniJednotka {Kod} NadrazenyArtikl{ ID Nazev Katalog } } } }
POST http(s)://[adresa API]/graphql request body: { Articles { ID, Nazev, Kod, Katalog PLU, CarovyKod, HlavniJednotka {Kod} Vyrobce_Nazev, NadrazenyArtikl_ID, VlastniHmotnost, Kategorie, NadrazenyArtikl{ ID, Nazev, Vyrobce_Nazev, } } }
POST http(s)://[adresa API]/graphql request body: { Esh_ArticleExtras (Filter: "Parent_ID~eq~8ba207a4-8705-41c5-a9db-77169210529e") { ID, Parent_ID, Root_ID, MutaceTextu{ID, Parent_ID, Root_ID, Nazev, NazevProFeed, Jazyk_ID, Jazyk{ID, Nazev} }, MutaceHtmlPopisu {ID, Parent_ID, Root_ID, KratkyPopis, DlouhyPopis, Jazyk_ID, Jazyk{ID, Nazev} }, Priznaky {ID, Parent_ID, Root_ID, Definice{ID, Kod, Nazev}, Hodnota{ID, ViewHodnota} }, CrossSellArtikly {ID, Parent_ID, Artikl_ID, Artikl {ID, Katalog}}, Souvisejici {ID, Parent_ID, Artikl_ID, Artikl {ID, Katalog}}, Darky {ID, Parent_ID, Artikl_ID, Artikl {ID, Katalog}}, DoplnkoveSluzby {ID, Parent_ID, Artikl_ID, Artikl {ID, Katalog}}, DostupnostZobrDostProdJeNaSklade {Kod, Nazev}, DostupnostZobrDostProdNeniNaSklade {Kod, Nazev}, DostupnostStavProduktu {Kod, Nazev} } }
POST http(s)://[adresa API]/graphql request body: { #Překlad pro konkrétní katalogovou položku a jazyk { Esh_ArticleTextMutations (Filter: "Root_ID~eq~8ba207a4-8705-41c5-a9db-77169210529e|Jazyk_ID~eq~dfd794de-af8c-4cf1-86e8-2a17785bd48d") { ID, Root_ID, Nazev, Jazyk_ID } }
POST http(s)://[adresa API]/graphql request body: { #Konkrétní katalogová položka Parent_ID=Artikl_ID Esh_ArticleExtras (Filter: "Parent_ID~eq~8ba207a4-8705-41c5-a9db-77169210529e") { ID, Parent_ID, Root_ID, Priznaky {ID, Parent_ID, Root_ID, Definice{ID, Kod, Nazev}, Hodnota{ID, ViewHodnota } } } }
POST http(s)://[adresa API]/graphql request body: { WarehouseStocks (Filter: "Sklad_ID~eq~8537627e-11d4-4a2d-a2ef-f55f59ad662f#Modify_Date~eq~2024-01-31T12:44:53.307") { ID, Sklad_ID, Artikl_ID, Kod, DostupneMnozstvi, Rezervovano, Objednano, Modify_Date, Sklad { Nazev, Kod }, Artikl{ Katalog, CarovyKod } } }
POST http(s)://[adresa API]/graphql request body: { PriceListItems (Filter: "Cenik_ID~eq~fe54f320-21ae-4ca7-b81c-fc35aebdfbbf") { Kod, Nazev, Artikl_ID, Cenik_ID, Cena, TypCeny, DruhSazby, NepodlehatSleveDokladu, Artikl{ ID, Nazev, Katalog, CarovyKod } Cenik{ ID, Kod, Nazev } } }
Některé příklady jsou uvedeny záměrně pro formulaci těla jako GraphQL a některé jako raw – json. Je potřeba nezapomenout na rozdíly uvození a nutnosti použít zpětných lomítek. Pro rychlý překlad vzorů lze použít např. GraphlQL to JSON Body Converter.
V případě potřeby dotazů, které jsou zanořené do nižší úrovně než 4, tak je potřeba v configuraci API nastavit vyšší hodnotu než je defaultní hodnota 4 („MaxNestingDepthLevel“: 5,). Takový typický dotaz může být například dotaz na položku dokladu, kdy přes ObsahPoložky je požadovaná informace na Katalogu o čárovém kódu nebo vlastní hmotnosti.
{ IssuedInvoices(Filter: "DatumVystaveni~gte~2022-03-17#DatumVystaveni~lte~2022-03-18") { CisloDokladu, Polozky { ID, Poradi, Nazev, Jednotka, Mnozstvi ObsahPolozky { Artikl { Katalog, CarovyKod, VlastniHmotnost } } } } }
2.8 Stavy dokladů
Některé doklady (Objednávky přijaté, Reklamace přijaté/vydané, Servisní doklady přijaté/vydané) umožňují evidovat stav dokladu dle uživatelem zvoleného workflow neboli scénáře. Pro jeden object (např. objednávky přijaté) lze evidovat několik různých scénářů, které jsou přiřazené ke skupině dokladů.
Doklad je možné si zavolat jako celek, kde součástí požadovaných informací je i stav dokladu (viz předchozí dotazy). Samotné doklady však nelze filtrovat podle podřízeného objectu, tedy ani dle stavu dokladu. V případě potřeby vyhledat doklady jen v určitém stavu je nutné volat seznam ID (dokladů) nad objectem WorkflowDocStates, který Vám vrátí odpovídající ID dokladů, které následně aplikujete v dalším samostatném requestu pro object objednávek.
{ ReceivedOrder (ID: "fe91ab35-5acb-4bb5-9357-ffb885b7e5f8") { ID, CisloDokladu, VariabilniSymbol, DatumVystaveni, IC, DIC, Firma_ID, Stav WorkflowStavObjektu{ Object_ID DefiniceScenar_ID, Stav_ID, Stav{ Kod, Nazev } }, } }
{ WorkflowDefStates (Filter: "Parent_ID~eq~332845e6-3a8e-4fc0-b010-c8d4ab113249"){ ID Parent_ID Kod Nazev } }
{ WorkflowDocStates (Filter: "Stav_ID~eq~cdf36c5d-f3aa-4470-8354-5b7a4030cbca") { ID Object_ID ObjectObjectName DefiniceScenar_ID Stav_ID Stav {ID, Kod, Nazev} } }
2.9 Prodejní ceny
Od verze 1.15.5 je v API dostupná funkce (ProdejniCenaDetailItem), která umožňuje exeterni získat přiřazené prodejní ceny pro konkrétní firmy. V Money je tato funkce dostupná nad Adresářem v detailu s názvem Prodejní ceny. Voláním této funkce získáte prodejní ceny katalogových položek spočítané dle cenové politiky nastavené v Money.
{ ProdejniCeny( FirmaID: "e6847bf7-ba7d-47c8-b7c6-85f3e3d84711", #SkladID: "c0406db0-fed8-40e1-b3e2-1cc7679288d8", #Count: 10 ) { ID, ArtiklNazev, Katalog, CarovyKod, TypCeny, CenaBezDane, CenaSDani, Artikl_ID, Katalog, Cenik_ID, PolozkaCeniku_ID, SkladKod, Zasoba_ID, Rezervovano, Objednano, ZustatekMnozstvi } }
3.) Zápis dat (insert)
artikl
POST http(s)://[adresa API]/graphql {"query":"mutation { CreateArticle(Article:{Nazev: \"Artikl\"}) {ID,Nazev} }"}
objednávka přijatá
POST http(s)://[adresa API]/graphql {"query":"mutation { CreateReceivedOrder(ReceivedOrder:{Nazev: \"objednávka\", Polozky: [{Nazev: \"položka\", ObsahPolozky: {Artikl_ID:\"848a11a5-97bc-43e4-8e88-25c803bb51ff\"}}]}) {ID,Nazev} }"}
Skupiny v seznamech (Group_ID)
Při zaslání dokladu je vhodné použít i element Group_ID, který doklad zapíšete do specifické skupiny, která může mít nastavenou například svou číselnou řadu nebo třeba středisko. V každém seznamu je jednotná skupina Nezařazeno a další skupiny si uživatelé zakládají vlastní (různé Group_ID).
Názvy objektů např.: ObjednavkaPrijata, ObjednavkaVydana, FakturaPrijata, FakturaVydana, Zasoba, PolozkaCeniku, Artikl, DodaciListVydany, DodaciListPrijaty, Firma, PokladniDoklad, BankovniVypis, ProdejkaVydana, ProdejkaPrijata, SkladovyDoklad
POST http(s)://[adresa API]/graphql request body: {"query":"{MerpGroups(ObjectName:\"ObjednavkaVydana\") {ID, Parent_ID, Kod, Nazev, Object_ID, ObjectName}}"}
Struktura povinných a nepovinných polí je stejná i pro rest. Popis jednotlivých elementů je v rámci vzorů pro REST-API.
mutation { CreateReceivedOrder( ReceivedOrder: { CisloDokladu: "22030001" Nazev: "Objednávka č.22030001 z solitea.cz" VariabilniSymbol: "22030001" Odkaz: "22030001" Group_ID: "c2b0081d-bda0-4c6e-b85a-48a4ac62b52c" IC: "01572377" DIC: "CZ01572377" Firma_ID: "d9d5324f-ca16-43b4-a326-f854ff03bca3" AdresaNazev: "Solitea, a.s." AdresaUlice: "Drobného 555/49" AdresaMisto: "Brno" AdresaPSC: "60200" AdresaStat_ID: "3d3f235c-df25-42ad-9cce-1b460e3a3c5f" DodaciAdresaFirma_ID: null DodaciAdresaNazev: "Solitea, a.s." DodaciAdresaUlice: "Okružní 732/5" DodaciAdresaMisto: "Brno" DodaciAdresaPSC: "63800" DodaciAdresaStat: "Česká republika" AdresaKoncovehoPrijemceStat_ID: "3d3f235c-df25-42ad-9cce-1b460e3a3c5f" AdresaKoncovehoPrijemceKontaktniOsobaNazev: "Jan Novák" AdresaKoncovehoPrijemceTelefon: "+420734123456" AdresaKoncovehoPrijemceEmail: "moneyerp@solitea.cz" FakturacniAdresaFirma_ID: null FakturacniAdresaNazev: "Solitea, a.s." FakturacniAdresaUlice: "Drobného 555/49" FakturacniAdresaMisto: "Brno" FakturacniAdresaPSC: "60200" AdresaPrijemceFakturyStat_ID: "3d3f235c-df25-42ad-9cce-1b460e3a3c5f" ZpusobPlatby_ID: "5b035689-496c-4f5f-a48a-4418a7d041ae" ZpusobDopravy_ID: "73cd5949-ceaa-4ed3-ace8-34710f724e9c" Mena_ID: "00f9adb2-d300-42c3-9240-ae1320b019cc" #Zaplaceno_UserData:false, Sleva: 0.0000 Poznamka: "Poznámka k dokladu" System_Komentar: "Komentář dokladu" System_Priznak: 2 Polozky: [ { Poradi: 1 GenerateSubItems: true Nazev: "Skladová položka" Katalog: "11K1" Jednotka: "ks" Mnozstvi: 2 JednCenaCM: 12 DphSazba: 21 TypCeny: 1 TypObsahu: 1 ObsahPolozky: { Artikl_ID: "7bb036fa-ef6e-4bd4-acf5-031143161c03" Sklad_ID: "9bcfddf9-d7c0-4f59-8c9b-73ae5bba3c15" Cenik_ID: "afe86a46-6fa4-4a8a-b97d-ede320d33c7c" } Sleva: 0 Vratka: false } { Poradi: 2 Nazev: "Neskladová položka" Katalog: "12K2" Jednotka: "ks" Mnozstvi: 3 JednCenaCM: 33.33 DphSazba: 21 TypCeny: 1 TypObsahu: 0 Sleva: 0 Vratka: false } ] } ) { ID CisloDokladu Polozky { ID Nazev Poradi Mnozstvi JednCenaCM CelkovaCenaCM DphSazba } } }
mutation { CreateCompany( Company: { Kod: "ADR00001" Group_ID: "d894c9c9-e1df-4cc4-bd0e-f6cd26bec0d8" Nazev: "Solitea - zařadit" DIC: "CZ01572377" ICO: "01572377" OdlisnaAdresaProvozovny: true OdlisnaFakturacniAdresa: true ObchMisto: "Brno" ObchNazev: "Solitea, a.s." ObchUlice: "Drobného 555/49" ObchPsc: "60200" ObchStat_ID: "3d3f235c-df25-42ad-9cce-1b460e3a3c5f" ProvMisto: "Brno" ProvNazev: "Solitea, a.s." ProvUlice: "Drobného 555/49" ProvPsc: "60200" ProvStat_ID: "3d3f235c-df25-42ad-9cce-1b460e3a3c5f" FaktMisto: "Brno" FaktNazev: "Solitea, a.s." FaktUlice: "Drobného 555/49" FaktPsc: "60200" FaktStat_ID: "3d3f235c-df25-42ad-9cce-1b460e3a3c5f" VariabilniSymbol: "" PouzivatKredit: true HodnotaKreditu: 500.0000 VlastniSleva: true HodnotaSlevy: 10.0000 VlastniSplatnostPohledavek: false SplatnostPohledavek: 0 VlastniSplatnostZavazku: false SplatnostZavazku: 0 SeznamSpojeni: [ { SpojeniCislo: "+420 731123456" TypSpojeni_ID: "999a45ed-7c85-425c-8230-d58ae08a21c6" } { SpojeniCislo: "muj@email.cz" TypSpojeni_ID: "dc748a02-43ed-4cc5-8264-4994b56919d0" } ] Zprava: "" Poznamka: "" } ) { ID Nazev Tel1Cislo Tel2Cislo Email SeznamSpojeni { ID Poradi SpojeniCislo } } }
mutation { CreateReceivedInvoice( ReceivedInvoice: { CisloDokladu: "22030003" Nazev: "Faktura č.22030002" VariabilniSymbol: "22030001" DatumVystaveni: "2023-11-15T00:00:00" DatumUcetnihoPripadu: "2023-11-15T00:00:00" DatumPlneni: "2023-11-15T00:00:00" DatumSplatnosti: "2023-11-15T00:00:00" DatumSkladovehoPohybu: "2023-11-15T00:00:00" DatumUplatneni: "2023-11-15T00:00:00" OdkazNaDoklad: "ProVykaz" PuvodniDoklad: "" # ParovaciSymbol:"", Group_ID: "b9bf30ab-f702-4ff9-ae03-c9b6562f5b85" IC: "01572377" DIC: "CZ01572377" Firma_ID: "97385817-15a2-4dd4-a652-bf1aaa29325d" AdresaNazev: "Seyfor, a.s." AdresaUlice: "Drobného 555/49" AdresaMisto: "Brno" AdresaPSC: "60200" AdresaStat_ID: "3d3f235c-df25-42ad-9cce-1b460e3a3c5f" DodaciAdresaFirma_ID: null DodaciAdresaNazev: "Seyfor, a.s." DodaciAdresaUlice: "Okružní 732/5" DodaciAdresaMisto: "Brno" DodaciAdresaPSC: "63800" DodaciAdresaStat: "Česká republika" AdresaKoncovehoPrijemceStat_ID: "3d3f235c-df25-42ad-9cce-1b460e3a3c5f" AdresaKoncovehoPrijemceKontaktniOsobaNazev: "Jan Novák" AdresaKoncovehoPrijemceTelefon: "+420734123456" AdresaKoncovehoPrijemceEmail: "obchod@moneyerp.com" FakturacniAdresaFirma_ID: null FakturacniAdresaNazev: "Seyfor, a.s." FakturacniAdresaUlice: "Drobného 555/49" FakturacniAdresaMisto: "Brno" FakturacniAdresaPSC: "60200" AdresaPrijemceFakturyStat_ID: "3d3f235c-df25-42ad-9cce-1b460e3a3c5f" ZpusobPlatby_ID: "5b035689-496c-4f5f-a48a-4418a7d041ae" ZpusobDopravy_ID: "73cd5949-ceaa-4ed3-ace8-34710f724e9c" # Měna na dokladu je dosazena automaticky výchozí domácí obvykle CZK, # pokud má být jiná, tak je potřeba určit měnu a kurz # Mena_ID:"e9daab77-0517-4f36-ac41-9b798182a7ae", # UcetniKurzKurz: 25.30, # KurzMnozstvi: 1, # Následující hodnoty jsou obvykle převzaty ze skupiny dokladů # Predkontace_ID:"acc2154d-93f6-48e5-bab0-7a2e9971a9ba" # CleneniDPH_ID:"bd0fe7aa-10a4-4fcc-8ad3-dc7a779ebc3e" # PrimarniUcet_ID:"b06c2efc-3c07-46f4-924d-051337043e04" #Kontrolingové proměnné, pokud není doplněno na položce, použije se z hlavičky #Stredisko_ID: "06fda739-f4d7-43a3-8689-a2a49a926166", #Zakazka_ID: "4d46f8e3-88e8-4e3b-bd7d-8235c4dc6e7d", #Cinnost_ID: "0318e49c-cfeb-490f-9fca-b9d9539de2fe", Sleva: 0.0000 Poznamka: "Poznámka k dokladu" Polozky: [ { Poradi: 1 GenerateSubItems: true # Pokud je položka skladová a se složením, tak automticky vloží její složení, je možné posílat výdy u všech položek Nazev: "Skladová položka 1" Katalog: "11K1" Jednotka: "ks" Mnozstvi: 2 JednCenaCM: 12 # Jednotková cena v cizí měně, pokud je měna stejná jako domácí, tak hodnota bez CM je také stejná DphSazba: 21 TypCeny: 1 # 0-bezDPH, 1-sDPH, 2-PouzeZaklad, 3-PouzeDan TypObsahu: 1 # vazba na sklad, vyžaduje ObsahPolozky ObsahPolozky: { Artikl_ID: "5f051127-89d7-49b9-be36-00aa04e5269b" Sklad_ID: "8537627e-11d4-4a2d-a2ef-f55f59ad662f" } Sleva: 0 Vratka: false } { Poradi: 2 GenerateSubItems: true Nazev: "Skladová položka 2" Katalog: "11K1" Jednotka: "ks" Mnozstvi: 2 JednCenaCM: 12 DphSazba: 21 TypCeny: 1 TypObsahu: 1 ObsahPolozky: { Artikl_ID: "8ba207a4-8705-41c5-a9db-77169210529e" Sklad_ID: "8537627e-11d4-4a2d-a2ef-f55f59ad662f" } } { Poradi: 3 GenerateSubItems: true Nazev: "Textová položka" Katalog: "T12" Jednotka: "ks" Mnozstvi: 2 JednCenaCM: 33 DphSazba: 21 TypCeny: 1 TypObsahu: 0 Sleva: 0 Vratka: false } { Poradi: 4 GenerateSubItems: true Nazev: "Úcetní položka" Katalog: "T14" Jednotka: "ks" Mnozstvi: 1 JednCenaCM: 33 DphSazba: 21 TypCeny: 2 #Pouze základ TypObsahu: 0 Sleva: 0 Vratka: false UcetDal_ID: "b06c2efc-3c07-46f4-924d-051337043e04" UcetMD_ID: "72d27c2c-c32c-41a4-a45f-eb5027181cf6" # Stredisko_ID: "1a6b0adc-4100-46ad-b182-c994314b9f25", # Zakazka_ID: "4d46f8e3-88e8-4e3b-bd7d-8235c4dc6e7d", # Cinnost_ID: "4c438132-d971-42e7-9475-156782874c12", } ] } ) { ID Nazev IC DIC Polozky { ID Nazev ObsahPolozky { ID Artikl_ID } } } }
mutation { CreateBankAccountStatement( BankAccountStatement: { CisloDokladu: "CC22200030" # Na skupině BV musí být vypnutá číselná řada Group_ID: "622ad277-6175-4cba-8782-2e4f6b56ac49" # Zařazení do skupiny BV, dodá zákazník CisloVypisu: 288 DatumPlneni: "2023-01-25T00:00:00" DatumUplatneni: "2023-01-26T00:00:00" DatumUcetnihoPripadu: "2023-01-26T00:00:00" DatumVystaveni: "2023-01-24T00:00:00" PocatecniDatum: "2023-01-25T00:00:00" KoncoveDatum: "2023-01-25T00:00:00" #PocatecniZustatekCM:4305.66, #PocatecniZustatek:4305.66, Mena_ID: "00f9adb2-d300-42c3-9240-ae1320b019cc" # Obvykle se neposílá vůbec. Hodnota je převzata ze skupiny, kde je uveden bankovní účet včetně měny a primárního účtu. Polozky: [ { Nazev: "Přijatá platba" Zprava: "Zprava" CisloPolozky: 1 TypPolozky: 1 # 1 příjmová položka, 2 výdejová položka TypCeny: 1 # 0-bezDPH, 1-sDPH, 2-PouzeZaklad, 3-PouzeDan TypTransakce: 0 # 0-Nespárováno, 1 úhrada, 2 úrok, 3 vklad, 4 poplatek, 5 výběr, 6 převod, 7 inkaso CelkovaCenaCM: 50.00 # CM cizí měna, typicky cena v EUR CelkovaCena: 50.00 # cena v domácí měně DatumUplatneniDPH: "2023-01-25T00:00:00" DatumPlatby: "2023-01-25T00:00:00" DatumUcetnihoPripadu: "2023-01-25T00:00:00" DatumPlneni: "2023-01-25T00:00:00" DruhSazbyDPH: 2 # 0 snižená, 1 základní, 2 nulová BankaKod: "0800" CisloTransakce: "" Poznamka: "Pozn." SpecifickySymbol: "888" CisloUctu: "0000435195001 " IBAN: "CZ2627000000002102290124" VariabilniSymbol: "123" # Nutné pro párování dokladů ParovaciSymbol: "999" UcetniKurzMnozstvi: 1.000000 # Elementy se zasílají v případě cizí měny UcetniKurzKurz: 1.000000 # Elementy se zasílají v případě cizí měny FirmaNazev: "ABC" FirmaUlice: "Lotyšská 5510/1500" FirmaPSC: "60200" ICO: "DE_12345678901" DIC: "" } { Nazev: "Poplatek" Zprava: "Zprava" CisloPolozky: 2 TypPolozky: 2 TypCeny: 2 TypTransakce: 4 CelkovaCenaCM: 50.00 CelkovaCena: 50.00 DatumUplatneniDPH: "2023-01-25T00:00:00" DatumPlatby: "2023-01-25T00:00:00" DatumUcetnihoPripadu: "2023-01-25T00:00:00" DatumPlneni: "2023-01-25T00:00:00" DruhSazbyDPH: 2 BankaKod: "0800" CisloTransakce: "" Poznamka: "Pozn." SpecifickySymbol: "222" CisloUctu: "0000435195001 " IBAN: "CZ2627000000002102290124" VariabilniSymbol: "345" ParovaciSymbol: "777" UcetniKurzMnozstvi: 1.000000 UcetniKurzKurz: 1.000000 FirmaNazev: "Firma" FirmaUlice: "Dukelská 550" FirmaPSC: "63200" ICO: "CZ_12345678901" DIC: "" } ] } ) { Nazev PocatecniZustatekCM KonecnyZustatekCM Vydaje Prijmy Polozky { ID Nazev CelkovaCenaCM } } }
mutation { CreateInternalAccountingDoc( InternalAccountingDoc: { CisloDokladu: "22030001t" #Ze skupiny si může převzít některé hodnoty, jako Předkontace, Členění DPH, Kontrolingové Group_ID: "4766d7a9-8402-4aa2-b79e-2f75a1eb2a6c" Nazev: "Popis dokladu" VariabilniSymbol: "22030001" ParovaciSymbol: "22030001" DatumVystaveni: "2024-03-22T00:00:00" DatumUcetnihoPripadu: "2024-03-22T00:00:00" DatumUplatneni: "2024-03-22T00:00:00" DatumPlneni: "2024-03-22T00:00:00" Firma_ID: "1d7b5dda-c97f-4c86-b65d-54b466713c35" #Platí pro všechny položky, pokud na položce není uvedeno jinak. Lze zaslat jen u položek, pak není potřeba zasílat hlavičkově. Kombinace Primárního účtu závisí na druhu dokladu a použité Předkontace (výsledek musí být účetně doplněné obě strany MD/D). Predkontace_ID: "4b1f0c3f-e16c-438b-802e-05c9c4a17752" CleneniDPH_ID: "56ce0d24-81bf-4b5b-adfa-a97abd4f0be5" PrimarniUcetDal_ID: "01d74f83-a388-409c-9950-9d27c32661ab" #PrimarniUcetMD_ID: null, #Pokud není uvedeno jinak, tak je doklad v domácí měně a není potřeba zasílat #Mena_ID: "e9daab77-0517-4f36-ac41-9b798182a7ae", #UcetniKurzKurz: 23.560000, #Kontrolingové proměnné, pokud není doplněno na položce, použije se z hlavičky #Stredisko_ID: "06fda739-f4d7-43a3-8689-a2a49a926166", #Zakazka_ID: "4d46f8e3-88e8-4e3b-bd7d-8235c4dc6e7d", #Cinnost_ID: "0318e49c-cfeb-490f-9fca-b9d9539de2fe", Polozky: [ { Poradi: 1 Nazev: "Textová položka" Jednotka: "ks" Mnozstvi: 2 #JednCenaCM = jednotková cena v cizí měně JednCenaCM: 12 DphSazba: 21 #TypCeny - hodnoty 0-bezDPH, 1-sDPH, 2-PouzeZaklad, 3-PouzeDan TypCeny: 1 } { Poradi: 2 Nazev: "Textová položka pouze základ" Jednotka: "ks" Mnozstvi: 3 JednCenaCM: 33.33 DphSazba: 21 TypCeny: 2 #Element Předkontace lze použít pro jakýkoliv TypCeny a přebíjí nastavení Předkontace z hlavičky. Pokud chcete použít konkrétní element UcetMD nebo UcetDal, tak je povolené pouze pro kombinaci TypCeny buď Pouze základ = 2 nebo Pouze daň = 3 Predkontace_ID: null UcetMD_ID: "01d74f83-a388-409c-9950-9d27c32661ab" UcetDal_ID: "01d74f83-a388-409c-9950-9d27c32661ab" #Zbylé opět přebíjí nastavení z hlavičky dokladu CleneniDPH_ID: "56ce0d24-81bf-4b5b-adfa-a97abd4f0be5" ParovaciSymbol: "" ICO: "" Stredisko_ID: "1a6b0adc-4100-46ad-b182-c994314b9f25" Zakazka_ID: "4d46f8e3-88e8-4e3b-bd7d-8235c4dc6e7d" Cinnost_ID: "4c438132-d971-42e7-9475-156782874c12" } ] } ) { ID CisloDokladu Polozky { ID Nazev Poradi Mnozstvi JednCenaCM CelkovaCenaCM DphSazba } } }
4.) Modifikace dat (update)
artikl
POST http(s)://[adresa API]/graphql
{"query":"mutation { EditArticle(Article:{ID: \"8cf11616-833d-4f17-b4d3-98ba92e6fd27\", Nazev: \"Artikl-upr\"}) {ID,Nazev} }"}
Při editaci dokladu hlavičky je možné použít jen změnu pro konkrétní pole. Pokud potřebujete editovat položky dokladu, tak je potřeba poslat všechny náležitosti každé položky. Editace položek v dokladu maže všechny předchozí a dosazuje nové položky, tak jak jsou zaslány.
5.) Mazání dat (delete)
artikl
POST http(s)://[adresa API]/graphql
{"query":"mutation { DeleteArticle(ID: \"8cf11616-833d-4f17-b4d3-98ba92e6fd27\") }"}
6.) Doplňkový XmlExchangeImport
V rámci GraphQL je uveřejněný i object System_XmlExchangeImport, který se používá pro externí zápis do DB pro import pomocí individuálních konfigurací Import XML. Tento object umožňuje přes API zapsat požadavek na zápis/editaci/smazání většiny objectů v Money a to včetně možností předřazení XSLT transformačních šablon. Prakticky je přes API zapsán do importní tabulky záznam včetně samotného XML a tento záznam je následně zpracován dle nastavené individuální logiky Import XML.