Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Info

TL;DR

  • Rest API, HTTPS, Basic Auth.

  • Väljundiks XML või JSON (default: XML)

  • GET päringutega töötavad filter, sort, range, updates_after ja vastuses soovitud väljade loetelu.

  • POST ja PATCH meetodi andmeformaat on x-www-form-urlencoded

  • Kasutatavad kõik registrid, mis ka Standard Booksi klientprogrammis

  • Rest API kasutaja allub standardsele Kasutajagrupile.

  • Attachmente võib GETiga Standard Booksist küsida, kuid neid ei saa lisada.

Seadistamine Standard Booksis

Alates versioonist 8.0 saab HansaWorldi toodetes kasutada Web API päringuid andmete pärimiseks ja kirjutamiseks.

Eeltingimused

·        Kliendil Kliendil peab olemas olema moodul:

  • Standard ERP puhul - "Veebipood"

...

On rangelt soovitatav kasutada MyStandardis valideeritud emaili sisse logimiseks. Uue isiku ja sealhulgas valideerimise juhend on siin: https://www.excellent.ee/kasutajatugi/kuidas-lisada-uut-kasutajat/

Kasutajagrupid Kasutajagrupil REST API

...

Valikulised võimalused

...

Märgitud peavad olema järgnevad valikud:·        

  • Web Rest API

...

  • Allow Basic HTTP Authentication

Valikulised Võimalused

...

Kasutamine

...

Andmed päritakse URLiga ehk inimkeeli - klient ütleb Hansa serverile aadressi, mille põhjal Hansa server väljastab vastava info.

Element

Kirjeldus

Näide

Protokoll

kasutatakse kas HTTP või HTTPS protokolli. HTTPS on turvaline, HTTP on peaagu avalik

https

IP

Serveri IP aadress

mars.excellent.ee

Port

Serveri veebi port

4455

Ettevõte

Ettevõtte kood andmebaasis

1

Register

Registri nimi, mida pärime

ivvc

Filter

Väli, mille alusel päringut filtreerida

filter.Custcode=

Väljad

Väljad, mis tagastatakse päringuga. (Ilma antud elemendita tagastatakse kõik

väljad)fields=SerNr,OKFlag,

väljad)

fields=SerNr,OKFlag,

header

HTTP päringu headeris määratakse, mis formaadis andmeid saadetakse, mis formaadis palutakse vastust ning ka Basic Auth informatsioon.

“Accept” väärtust on vaja täpsustada vaid siis, kui soovitakse JSONit. Default on XML.

Code Block
--header 'Content-Type: application/x-www-form-urlencoded;charset=utf-8'
--header 'Accept: application/json'
--header 'Authorization: XXX=='

 

Eraldajad:

  • ? - Sisestatakse peale Registri defineerimist, et kirjeldada filtreid.

  • & - Sisestatakse erineva tüübiga filtreeringute vahele.

Näidis URL:

Code Block
languagec
https://mars.excellent.ee:4455/api/1/ivvc?filter.CustCode=105&fields=SerNr,OKFlag,Addr0,ArtCode,CustCode,InvDate,TransDate,Objects

Vastus:

Code Block
languagexml
<data register="IVVc" sequence="1051619" systemversion="8.5.29.105">
	<IVVc>
		<SerNr>4</SerNr>
		<InvDate>2014-03-16</InvDate>
		<CustCode>105</CustCode>
		<Addr0>Eraisik</Addr0>
		<OKFlag>1</OKFlag>
		<Objects/>
		<TransDate>2014-03-16</TransDate>
		<rows>
			<row rownumber="0">
				<ArtCode>005</ArtCode>
				<Objects/>
			</row>
			<row rownumber="1">
				<ArtCode>012</ArtCode>
				<Objects/>
			</row>
			<row rownumber="2">
				<ArtCode>040</ArtCode>
				<Objects/>
			</row>
		</rows>
	</IVVc>
	<IVVc>
		<SerNr>6</SerNr>
		<InvDate>2014-03-25</InvDate>
		<CustCode>105</CustCode>
		<Addr0>Eraisik</Addr0>
		<OKFlag>1</OKFlag>
		<Objects/>
		<TransDate>2014-03-25</TransDate>
		<rows>
			<row rownumber="0">
				<ArtCode>011</ArtCode>
				<Objects/>
			</row>
		</rows>
	</IVVc>
</data>

See väljastab arved kliendilt 105. Arve pole täielik, vaid on ainult väljad number, Kinnita linnuke, aadressi esimene rida, artiklikood, kliendikood, arve kuupäev, kande kuupäev, objektid.

Päringu vormistamine

http://username:password@hostname:port/api/1/IVVc

See on kõige lihtsam näidis päring kindlast ettevõttest ja kindlast registrist, kus

...

See päring tõmbab kõik müügiarved ettevõttest 1. Kui soovid sarnaselt saada infot näiteks baasvaluutade kohta, siis pead kasutama päringut:

http://username:password@hostname:port/api/1/BaseCurBlock

Auth info ehk kasutaja/salasõna päringuga saatmine

...

sort - sorteerimise parameeter sorteerib saadud kaardid määratud andmevälja järgi. Indeksi nimi, mida kasutati, väljastatakse samuti päringu tulemuses. Sorteerida saab ainult kaardi päise väljade järgi. Võimalik on sorteerida ainult ühe välja järgi korraga, ja eeldusel, et selle jaoks on olemas sobiv indeks. Kui sobiv indeks puudub, siis päring tulemust ei väljasta. Välja nime puhul on olulised suured ja väikesed tähed. Näide (päring müügiarvete registrist, sorteerituna kliendikoodi järgi):

http://username:@hostname/api/1/IVVc?sort=CustCode

range - vahemiku parameetri kasutamiseks tuleb kasutada ka sorteerimise parameetrit. Vahemik pärib ainult need kaardid, kus sorteeritava välja väärtus langeb määratud vahemikku. Väärtused, mis võrduvad vahemiku alguse ja lõpuga, kaastakse tulemusse. Vahemiku alguse ja lõpu väärtused eraldatakse ":" (kooloniga). On lubatud ka päringud, kus määratud on ainult vahemiku alguse või ainult lõpu väärtus. Kui päringus kasutatakse ainult ühte kindlat väärtust (ilma koolonita), siis väljastatakse ainult kaardid, mis vastavad sellele konkreetsele väärtusele.

Näide 1 (väljastab müügiarved, kus kliendikoodid on vahemikus 10101 kuni 10104):

http://username:@hostname@hostname/api/1/IVVc?sort=CustCode&range=10101:10104

Näide 2 (väljastab müügiarved, kus kliendikoodid on 10104 kuni viimase kliendini):

http://username:@hostname/api/1/IVVc?sort=CustCode&range=10104:

Näide 3 (väljastab müügiarved, kus on ainult klient koodiga 10104):

http://username:@hostname/api/1/IVVc?sort=CustCode&range=10104

Vahemiku parameeter on kiire, sest kasutab indeksit.

...

Näide (väljastab müügiarved, ainult arve numbriga: 

http://username:@hostname/api/1/IVVc? fields=SerNr

filter - Andmeid saab filtreerida selle parameetri abil. Filter on oluliselt aeglasem kui vahemik, kuna ei kasuta indekseid ja otsib läbi kõik kaardid. Kui kasutad vahemiku parameetrit, siis filter köib läbi ainult need kaardid, mis jäävad vahemikku. Sellepärast on soovitav kasutada võimalikult täpset vahemiku määrangut ja teisi filtreid. NB: Filter väli peab kattuma täielikult otsitava väljaga. Ei saa otsida sisu osa

Näide:

http://username:@hostname/api/1/IVVc?filter.CustCode=10104

  • Ühe välja kohta tohib kasutada ainult ühte filtrit

  • Erinevate väljade kasutamisel, saab kasutada mitut filtrit

  • Filtrid saavad kasutada sarnaselt väärtuste vahemike, k.a. ainult vahemiku alguse või ainult lõpuga määratud.

  • Filtrid toimivad ainult kaartide/dokumentide päise andmeväljadega

  • Nimekirja väljades filtreerimine (näiteks Objektid) toimub kogu stringi ulatuses.

...

Näide (väljastab müügiarved, mille lõppsumma on vahemikus 100 kuni 1000 ja kus kliendikoodid on vahemikus 10100 kuni 10200):

http://username:@hostname/api/1/IVVc?filter.CustCode=10100:10200&Sum4=100:1000

listfilter - töötab sarnaselt filter parameetriga kuid suudab eristada ühte osa loetelust ehk terve välja sisu ei pea kattuma 100%.

...

Vastused saan kõikide kaartide kohta, kus vähemalt üheks objektiks on KONTOR:

Code Block
languagexml
    <CUVc register='CUVc' sequence='94801' url='/api/1/CUVc/53'>
        <Code>53</Code>
        <Name> Creative OÜ</Name>
        <Objects>KONTOR</Objects>
    </CUVc>
    <CUVc register='CUVc' sequence='94808' url='/api/1/CUVc/55'>
        <Code>55</Code>
        <Name>Kontaktihoidja AS</Name>
        <Objects>12,KONTOR,TARTU</Objects>

...

Näide (väljastab 15 esimest müügiarvet 3 erineva päringuga):

http://username:@hostname@hostname/api/1/IVVc?offset=0&limit=5 

http://username:@hostname@hostname/api/1/IVVc?offset=5&limit=5 

http://username:@hostname@hostname/api/1/IVVc?offset=10&limit=5

"offset" ja "limit" saab kasutada koos kõikide teiste parameetritega.

...

NB: et kasutada updates_after ja deletes_after funktsioone peab olema peal seadistus: Moodul Tehnika > Seadistused > Sünkroniseerimise võimalused > Aktiveeri.

Näide:

http://username:@hostname/api/1/IVVc?updates_after=5000

deletes_after - väljastab kõik kaardid/dokumendid, mis on kustutatud peale määratud järjekorra numbrit. Järjekorra number väljastatakse igas päringus ning seda saab kasutada hiljem koos parametriga "deletes_after"

Näide:

http://username:@hostname/api/1/IVVc?deletes_after=5000

NB: Kui kasutate deletes_after või updates_after parameetreid, siis võiks enne andmebaasi eksporti-importi (hooldus, ver uuendus) peale panna Üldine > Seadistused > Valikulised võimalused > linnuke "Ekspordi järjekorranumbrid".Siis säilivad baasis sequence cväärtused. Kui seda peale ei panda, siis hakkavad sequence väärtused uuesti otsast peale jooksma. Mis ei ole suur mure ilmselt, aga on võimalik vältida.

...

  • Sequence number antakse igale Standard Booksis loodud või muudetud kaardile / andmeblokile (seadistused). Sisuliselt on see andmebaasis tehtud muudatuste järjekorranumber. Ja iga kaardi või seadistuse loomine ja muutmine on andmebaasimuudatus.

  • API päringu vastuses antakse kaasa alati viimane andmebaasimuudatusele omistatud sequence number.

  • Ajas sequence niisama ei muutu - kui teha päringuid nii, et keegi Standard Booksis ei toimeta, ei muutu ka sequence väärtus API päringu vastuse päises.

  • Filter.xxx ja Sort ja Range päringud ei toimi koos updates_afteriga - kui neid kasutada koos, kehtib vaid updates_after. Küll aga saab updates_afteriga koos kasutda fields=xxx parametrit.

...

Code Block
Content-Type: application/x-www-form-urlencoded; charset=utf-8

POST

Registrisse uue kirje lisamiseks tuleb andmed saata Rest API POST meetodiga, url-formaadis. Iga välja juures tuleb kasutada set käsku.

...

Näide 1.1, kaherealine arve, kasutame --data-raw

Code Block
languagebash
curl --location --request POST 'https://mars.excellent.ee:4455/api/1/IVVc' \
--header 'Content-Type: application/x-www-form-urlencoded; charset=utf-8' \
--header 'Authorization: Basic aHR0cHM6Ly95b3V0dS5iZS9kUXc0dzlXZ1hjUQ==' \
--header 'Cookie: country=global' \
--data-raw 'set_field.CustCode=111&
set_field.Comment=Üürilepingust tulenev tasu&
set_field.InvDate=2022-04-22&
set_row_field.0.ArtCode=001&
set_row_field.0.Quant=1&
set_row_field.1.ArtCode=002&
set_row_field.1.Quant=21&
'

Näide 1,2, sama kaherealine arve, sisu otse URLis:

Code Block
languagebash
curl --location --request POST 'https://mars.excellent.ee:4455/api/1/IVVc?set_field.CustCode=111&set_field.Comment=%C3%9C%C3%BCrilepingust%20tulenev%20tasu&set_field.InvDate=2022-04-22&set_row_field.0.ArtCode=001&set_row_field.0.Quant=1&set_row_field.1.ArtCode=002&set_row_field.1.Quant=21&' \
--header 'Content-Type: application/x-www-form-urlencoded; charset=utf-8' \
--header 'Authorization: Basic aHR0cHM6Ly95b3V0dS5iZS9kUXc0dzlXZ1hjUQ==' \
--header 'Cookie: country=global'

Sellele POSTile saadetakse vastus:

Code Block
languagexml
<?xml version='1.0' encoding='UTF-8' standalone='yes'?>
<data  register="IVVc" sequence="4663498" url="/api/1/IVVc/1202053623" systemversion="8.5.38.86">
    <IVVc>
        <SerNr>1202053623</SerNr>
        <InvDate>2022-04-22</InvDate>
        <CustCode>111</CustCode>
        <PayDate>2022-04-29</PayDate>
        <Addr0>Ehitajate tee 91/2-24</Addr0>
        <Addr1>Mustamäe linnaosa</Addr1>
        <Addr2>Tallinn</Addr2>
        <Addr3>Harju maakond</Addr3>
        <Addr4>12915</Addr4>
        <PayDeal>7</PayDeal>
        <pdays>7</pdays>
        <CustCat>EES</CustCat>
        <InvType>1</InvType>
        <ARAcc>1010</ARAcc>
        <TransDate>2022-04-22</TransDate>
        <CurncyCode>EUR</CurncyCode>
        <Sign>AA</Sign>
        <Sum1>495.41</Sum1>
        <Sum3>99.08</Sum3>
        <Sum4>594.49</Sum4>
        <VATNr>EE112255887</VATNr>
        <TAX1Sum>118.90</TAX1Sum>
        <BaseSum4>594.49</BaseSum4>
        <TotGP>18.62</TotGP>
        <RetValue>-594.49</RetValue>
        <TotQty>22</TotQty>
        <SumIncCom>594.49</SumIncCom>
        <rows>
            <row rownumber="0">
                <stp>1</stp>
                <ArtCode>001</ArtCode>
                <Quant>1</Quant>
                <Price>15.59</Price>
                <Sum>14.03</Sum>
                <BasePrice>14.94</BasePrice>
                <Spec>Jauram 1,2 meetrit</Spec>
                <VATCode>1</VATCode>
                <UnitCode>TK</UnitCode>
                <UnitComment>tükk</UnitComment>
            </row>
            <row rownumber="1">
                <stp>1</stp>
                <ArtCode>002</ArtCode>
                <Quant>21</Quant>
                <Price>25.47</Price>
                <Sum>481.38</Sum>
                <BasePrice>21.99</BasePrice>
                <Spec>Testseadmete ≤1 kV (seadmed kuni 3 mõõte-</Spec>
                <VATCode>1</VATCode>
                <UnitCode>TK</UnitCode>
                <UnitComment>tükk</UnitComment>
            </row>
        </rows>
    </IVVc>
</data>

...

Code Block
curl --location --request PATCH 'https://mars.excellent.ee:4455/api/1/IVVc/1202053623?set_field.CustCode=109' \
--header 'Content-Type: application/x-www-form-urlencoded; charset=utf-8' \
--header 'Authorization: Basic aHR0cHM6Ly95b3V0dS5iZS9kUXc0dzlXZ1hjUQ==' \
--header 'Cookie: country=global'

Vastus on samasugune, nagu POST päringul. sisuks uuenenud andmed:

...

Code Block
<data  register="PIVc" sequence="385206" url="/api/1/PIVc/002/PL/001/80702" systemversion="8.5.33.1255">

Lihtsad POSTi näited

POST meetodiga saab tekitada uusi dokumente

...

Koostame kliendi

Code Block
languagebash
curl --location --request PATCH 'https://mars.excellent.ee:4455/api/1/CUVc' \
--header 'Content-Type: application/x-www-form-urlencoded; charset=utf-8' \
--header 'Authorization: Basic aHR0cHM6Ly95b3V0dS5iZS9kUXc0dzlXZ1hjUQ==' \
--header 'Cookie: HSESSION=F781FB1F-605F90E0-EC009210-F7841492-3AE28E44; country=global' \
--data-raw 'set_field.Name=Karjaküla OÜ&
set_field.InvAddr0=Ehitajate tee 91/2-24&
set_field.InvAddr1=Mustamäe linnaosa&
set_field.InvAddr2=Tallinn&
set_field.InvAddr3=Harju maakond&
set_field.InvAddr4=12915&
set_field.Phone=55887744&
set_field.CountryCode=EE&
set_field.ExportFlag=0&
set_field.CustCat=EES&
set_field.PayDeal=7&
set_field.VATNr=EE792919432&
set_field.LangCode=EST
set_field.VATCode=20&
set_field.ExportFlag=0&
set_field.Person=Mariliis Männik&'

Saame vastuse:

Code Block
languagexml
<?xml version='1.0' encoding='UTF-8' standalone='yes'?>
<data  register="CUVc" sequence="4663625" url="/api/1/CUVc/BRANCHIDIV1" systemversion="8.5.38.86">
    <CUVc>
        <UUID>3BA2B0DC-CEDE7E89-0DE655E2-23BD9051-F11E3237</UUID>
        <SyncFlags>1</SyncFlags>
        <Code>BRANCHIDIV1</Code>
        <Name>Karjaküla OÜ</Name>
        <Person>Mariliis Männik</Person>
        <InvAddr0>Ehitajate tee 91/2-24</InvAddr0>
        <InvAddr1>Mustamäe linnaosa</InvAddr1>
        <InvAddr2>Tallinn</InvAddr2>
        <InvAddr3>Harju maakond</InvAddr3>
        <InvAddr4>12915</InvAddr4>
        <Phone>55887744</Phone>
        <CustCat>EES</CustCat>
        <PayDeal>7</PayDeal>
        <InterestFlag>1</InterestFlag>
        <VATNr>EE792919431</VATNr>
        <CountryCode>EE</CountryCode>
        <RemndrFlag>1</RemndrFlag>
        <LangCode>EST</LangCode>
        <SalesMan>AA</SalesMan>
        <CreditLimit>0.00</CreditLimit>
        <VATCode>20</VATCode>
        <Classification>23619</Classification>
        <DateChanged>2021-07-27</DateChanged>
        <Password>0</Password>
        <DateCreated>2021-07-27</DateCreated>
        <CUType>1</CUType>
        <CreditLimitDays>0</CreditLimitDays>
        <InvCountryName>Eesti</InvCountryName>
        <TaxCondition>2</TaxCondition>
        <Sign>AA</Sign>
        <eInvPostage>2</eInvPostage>
    </CUVc>
</data>

...

Koostame artikli

Code Block
languagebash
curl --location --request POST 'https://mars.excellent.ee:4455/api/1/INVc' \
--header 'Content-Type: application/x-www-form-urlencoded; charset=utf-8' \
--header 'Authorization: Basic aHR0cHM6Ly95b3V0dS5iZS9kUXc0dzlXZ1hjUQ==' \
--header 'Cookie: HSESSION=457D70DF-51620277-2DF144FF-7148A3FA-E412709F; country=global' \
--data-raw 'set_field.Name=Trenažöör põlvedele&
set_field.MinLevel=100&
set_field.Objects=NO_PREEMIA&
set_field.UPrice1=1700.00&
set_field.Group=KOHV&
set_field.BarCode=1022154455&'

Vastus

Code Block
languagexml
<?xml version='1.0' encoding='UTF-8' standalone='yes'?>
<data  register="INVc" sequence="4663637" url="/api/1/INVc/MYYK8" systemversion="8.5.38.86">
    <INVc>
        <UUID>E241260B-327E021F-87C1C234-B90E2DE9-451B042F</UUID>
        <SyncFlags>1</SyncFlags>
        <Code>MYYK8</Code>
        <Name>Trenažöör põlvedele</Name>
        <MinLevel>100</MinLevel>
        <Objects>NO_PREEMIA</Objects>
        <UPrice1>1700.00</UPrice1>
        <Group>KOHV</Group>
        <BarCode>1022154455</BarCode>
        <UpdateCost>1</UpdateCost>
        <LastPriceChange>2021-07-27</LastPriceChange>
        <WarrantyLength>0</WarrantyLength>
        <LastBasePriceChange>2021-07-27</LastBasePriceChange>
        <colnr>Hall</colnr>
        <rows></rows>
    </INVc>
</data>

...

Koostame arve, kasutame loodud artiklit ja klienti

Code Block
languagebash
curl --location --request POST 'https://mars.excellent.ee:4455/api/1/IVVc' \
--header 'Content-Type: application/x-www-form-urlencoded; charset=utf-8' \
--header 'Authorization: Basic aHR0cHM6Ly95b3V0dS5iZS9kUXc0dzlXZ1hjUQ==' \
--header 'Cookie: HSESSION=457D70DF-51620277-2DF144FF-7148A3FA-E412709F; country=global' \
--data-raw 'set_field.InvDate=2019-02-10& 
set_field.CustCode=BRANCHIDIV1&
set_field.NotUpdStockFlag=1&
set_row_field.0.ArtCode=MYYK8&
set_row_field.0.Quant=1&'

Vastuseks saime üherealise arve:

Code Block
languagexml
<?xml version='1.0' encoding='UTF-8' standalone='yes'?>
<data  register="IVVc" sequence="4663662" url="/api/1/IVVc/1202053624" systemversion="8.5.38.86">
    <IVVc>
        <SerNr>1202053624</SerNr>
        <InvDate>2019-02-10</InvDate>
        <CustCode>BRANCHIDIV1</CustCode>
        <Math></Math>
        <PayDate>2019-02-17</PayDate>
        <Addr0>Karjaküla OÜ</Addr0>
        <Addr1>Ehitajate tee 91/2-24</Addr1>
        <Addr2>Tallinn</Addr2>
        <Addr3>Harju maakond</Addr3>
        <Addr4>12915</Addr4>
        <ClientContact>Mariliis Männik</ClientContact>
        <PayDeal>7</PayDeal>
        <Prntdf>1</Prntdf>
        <pdays>7</pdays>
        <pdvrebt>0</pdvrebt>
        <pdrdays>0</pdrdays>
        <CustCat>EES</CustCat>
        <InvType>1</InvType>
        <PriceList>KN</PriceList>
        <Objects>ABIVAHEND</Objects>
        <ARAcc>1010</ARAcc>
        <SalesMan>AA</SalesMan>
        <TransDate>2019-02-10</TransDate>
        <CurncyCode>EUR</CurncyCode>
        <LangCode>EST</LangCode>
        <Sign>AA</Sign>
        <FrGP>0.00</FrGP>
        <Sum0>0.00</Sum0>
        <Sum1>1530.00</Sum1>
        <Sum3>306.00</Sum3>
        <Sum4>1836.00</Sum4>
        <VATNr>EE792919431</VATNr>
        <CustVATCode>20</CustVATCode>
        <RebCode>11</RebCode>
        <Phone>55887744</Phone>
        <IntCode>25.55</IntCode>
        <ARonTR>1</ARonTR>
        <BaseSum4>1836.00</BaseSum4>
        <TotGP>1530.00</TotGP>
        <RetValue>-1836.00</RetValue>
        <TotQty>1</TotQty>
        <SumIncCom>1836.00</SumIncCom>
        <RetnValue>-1836.00</RetnValue>
        <TransTime>12:33:29</TransTime>
        <ServiceDelDate>2019-02-10</ServiceDelDate>
        <NoTAXonVAT>0</NoTAXonVAT>
        <TotalwoTAX>1</TotalwoTAX>
        <RegDate>2021-07-27</RegDate>
        <RegTime>12:33:29</RegTime>
        <InvCountry>EE</InvCountry>
        <InvCountryName>Eesti</InvCountryName>
        <IPBookVAT>1</IPBookVAT>
        <GPProc>100.0</GPProc>
        <rows>
            <row rownumber="0">
                <stp>1</stp>
                <ArtCode>MYYK8</ArtCode>
                <Quant>1</Quant>
                <Price>1700.00</Price>
                <Sum>1530.00</Sum>
                <vRebate>10.0</vRebate>
                <SalesAcc>3100</SalesAcc>
                <Objects>NO_PREEMIA</Objects>
                <rowGP>1530.00</rowGP>
                <Spec>Trenažöör põlvedele</Spec>
                <VATCode>20</VATCode>
                <TaxMatrix></TaxMatrix>
            </row>
        </rows>
    </IVVc>
</data>

...

Muudame koostatud arvel kogust

Code Block
languagebash
curl --location --request PATCH 'https://mars.excellent.ee:4455/api/1/IVVc/1202053624' \
--header 'Content-Type: application/x-www-form-urlencoded; charset=utf-8' \
--header 'Authorization: Basic aHR0cHM6Ly95b3V0dS5iZS9kUXc0dzlXZ1hjUQ==' \
--header 'Cookie: HSESSION=457D70DF-51620277-2DF144FF-7148A3FA-E412709F; country=global' \
--data-raw 'set_row_field.0.Quant=4&'

Vastuseks on samasugune arve XML, nagu arve postitamisel, vaid kogus on muutunud 3-ks.

...

Kinnitame arve

Code Block
languagebash
curl --location --request PATCH 'https://mars.excellent.ee:4455/api/1/IVVc/1202053624' \
--header 'Content-Type: application/x-www-form-urlencoded; charset=utf-8' \
--header 'Authorization: Basic aHR0cHM6Ly95b3V0dS5iZS9kUXc0dzlXZ1hjUQ==' \
--header 'Cookie: HSESSION=457D70DF-51620277-2DF144FF-7148A3FA-E412709F; country=global' \
--data-raw 'set_field.OKFlag=1&'

tekkis viga, puudu on konto käibemaksukoodi pealt. Saime veateate:

Code Block
languagexml
<?xml version='1.0' encoding='UTF-8' standalone='yes'?>
<message  description="TAX Account not found, check VAT Codes"></message>
<error  code="20078" description="TAX Account not found, check VAT Codes" row="-1" field="-1"></error>

...

Näide ühe arve manuste kohta:

https://mars.excellent.ee:445/api/1/IVVc?get_links=1&filter.SerNr=230008

Ja tulemuses on iga registrikaardi lõpus <links> osa:

Code Block
languagexml
.....
            </row>
        </rows>
        <links>
            <link comment='Arve 230008.pdf    406 KB'>
                <url>/api/1/Attach2Vc/126</url>
            </link>
            <link comment='Arve 230008'>
                <url>/api/1/MailVc/86</url>
            </link>
        </links>
    </IVVc>
</data>

...

Manuste pärimiseks teme päringu Attach2Vc registri pihta. Eelpool toodud näidet kasutades saame PDFi pärida nii:

https://mars.excellent.ee:445/api/1/Attach2Vc?filter.SerNr=126&get_attachdata=true

Vastuses on metadata ja manuse sisu base64 kodeeringus:

Code Block
languagexml
<?xml version='1.0' encoding='UTF-8' standalone='yes'?>
<data register='Attach2Vc' sequence='94784' systemversion='8.5.55.3480'>
    <Attach2Vc register='Attach2Vc' sequence='94778' url='/api/1/Attach2Vc/126'>
        <UUID>9B158C54-CE868FEC-17890241-4A8BB8B4-07A73BC0</UUID>
        <ServerSequence>-1</ServerSequence>
        <SyncFlags></SyncFlags>
        <SerNr>126</SerNr>
        <FileName>Arve 230008.pdf</FileName>
        <PackTyp>0</PackTyp>
        <Uploading>0</Uploading>
        <FileSize>134</FileSize>
        <Type>0</Type>
        <Storage>SerNr</Storage>
        <ContentId></ContentId>
        <attachment>JVBERi0xLjcKJbe+raoKMSAwIG9iago8PAovVHlwZSAvQ2F0YWxvZOSAwIFIgXQovTWV0YWRhdGEgNDAgMCBSCi9NYXJrSWBhZ2VzCi9LaWRzIFsgNCAwIFIgXQovQ291bnQgMQo==</attachment>
    </Attach2Vc>
</data>

...