# Centas API dokumentacija

## Dokumento importavimas

<mark style="color:green;">`POST`</mark> `https://ws.centas.lt/v1/documents/create`

Naudojama norint importuoti naują dokumentą.

#### Query Parameters

| Name               | Type   | Description                                                                                                                       |
| ------------------ | ------ | --------------------------------------------------------------------------------------------------------------------------------- |
| rows               | array  | JSON masyvas, kuriame nurodytos sąskaitos eilutės                                                                                 |
| trans\_id          | string | Transakcijos ID (reikalingas automatiniam SF numeriui iš programos blankų)                                                        |
| intrs\_transprusis | string | Transporto kodas (intrastatui)                                                                                                    |
| intrs\_pristsal    | string | Pristatymo sąlygų kodas (instrastatui)                                                                                            |
| intrs\_sandoris    | string | Sandorio kodas (intrastatui)                                                                                                      |
| intrs\_apskritis   | string | Apskrities kodas (intrastatui)                                                                                                    |
| intrs\_eusalis     | string | ES šalies kodas (intrastatui)                                                                                                     |
| oper\_apras        | string | Papildomas operacijos aprašymas                                                                                                   |
| projektas          | string | Projekto (kaštų centro) informacija                                                                                               |
| uzsaknr            | string | Priimto užsakymo numeris                                                                                                          |
| isaf               | string | Naudojama, kai sąskaita neįtraukiama į I.SAF registrus                                                                            |
| pastaba            | string | Papildoma dokumento pastaba                                                                                                       |
| israse\_pareigos   | string | Sąskaitą išrašiusio asmens pareigos                                                                                               |
| israse\_asmuo      | string | Sąskaitą išrašęs asmuo                                                                                                            |
| sask\_moketpvm     | number | Buhalterinė mokėtino PVM sąskaita                                                                                                 |
| sask\_pirkskol     | string | Buhalterinė pirkėjo skolų sąskaita                                                                                                |
| sask\_pajamos      | number | Buhalterinė pajamų sąskaita                                                                                                       |
| kl\_kodas          | string | Pirkėjo kodas pardavėjo informacinėse sistemose                                                                                   |
| estipas            | string | Pirkėjo ES tipas (0 - vietinis, 1 - kitas ES šalis, 2 - ne ES šalis)                                                              |
| email              | string | Pirkėjo el. paštas                                                                                                                |
| miestas            | string | Pirkėjo miestas                                                                                                                   |
| adresas            | string | Pirkėjo adresas                                                                                                                   |
| salis              | string | Pirkėjo šalis                                                                                                                     |
| grupe              | string | Pirkėjo grupė (jeigu priskiriamas naujas pirkėjas)                                                                                |
| pvm\_kodas         | string | Pirkėjo PVM kodas                                                                                                                 |
| im\_kodas          | string | Pirkėjo įmonės (asmens) kodas                                                                                                     |
| savikaina          | number | Dokumento savikaina                                                                                                               |
| bepvm\_suma        | number | Dokumento suma be PVM                                                                                                             |
| pvm\_suma          | number | Dokumento PVM suma                                                                                                                |
| apmok\_iki         | string | Dokumento apmokėjimo terminas                                                                                                     |
| dok\_num           | string | Dokumento numeris. Pastaba: kai norima naudoti laisvus SF blankus, naudojama reikšmė "auto" ir būtinai pildomas laukas trans\_id. |
| dok\_suma          | number | Dokumento suma                                                                                                                    |
| data               | string | Dokumento data                                                                                                                    |
| token              | string | API raktas, skirtas Jūsų projektui                                                                                                |
| pirkejas           | string | Pirkėjo pavadinimas                                                                                                               |
| asmuo\_status      | string |                                                                                                                                   |
| salis\_kodas       | string |                                                                                                                                   |

{% tabs %}
{% tab title="200 Visuomet grąžinamas Response 200 atsakymas, tačiau įvykus klaidai, success parametras tampa 0. Atitinkamai, įvykus klaidai, nurodomas error parametras, kuriame detaliau nurodytas klaidos pranešimas." %}

```javascript
{
    "success": 1,
    "document_id": "[Created document hash]"
}
```

{% endtab %}
{% endtabs %}

## JSON prekių eilučių masyvo rows reikšmės

`OPTIONS`&#x20;

#### Query Parameters

| Name          | Type   | Description                                                  |
| ------------- | ------ | ------------------------------------------------------------ |
| kodas         | string | Prekės (paslaugos) kodas, pagal kurį vykdoma paieška         |
| pavadinimas   | string | Prekės (paslaugos) pavadinimas                               |
| matovnt       | string | Prekės (paslaugos) matas                                     |
| kiekis        | number | Prekės (paslaugos) kiekis                                    |
| kaina         | number | Prekės (paslaugos) pardavimo kaina be PVM                    |
| pvmtar        | number | Eilutės PVM tarifas                                          |
| Mok\_kodas    | string | Eilutės PVM mokesčio kodas, pagal VMI klasifikatorių (I.SAF) |
| sask\_pajamos | string | Eilutės buhalterinė pajamų sąskaita                          |
| projektas     | string | Eilutės projektas                                            |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

JSON masyvo - **rows** (prekių eilučių) pavyzdys:

```javascript
[
  {
    "kodas": "11222",
    "pavadinimas": "Kompiuteris",
    "matovnt": "vnt.",
    "kiekis": "2",
    "kaina": "1050",
    "pvmtar": "21",
    "Mok_kodas": "12255",
    "sask_pajamos": "200",
    "projektas": "Kompiuteriai"
 },
 {
    "kodas": "11223",
    "pavadinimas": "Telefonas",
    "matovnt": "vnt.",
    "kiekis": "5",
    "kaina": "100",
    "pvmtar": "21",
    "Mok_kodas": "12255",
    "sask_pajamos": "20",
    "projektas": "Telefonai"
 }
]
```

## Užsakymo importavimas<br>

<mark style="color:green;">`POST`</mark> `https://ws.centas.lt/v1/orders/create`

Naujo užsakymo importavimas

#### Query Parameters

| Name               | Type   | Description                                                                  |
| ------------------ | ------ | ---------------------------------------------------------------------------- |
| rows               | string | Užsakymo prekių eilutės JSON array formatu (specifikacija nurodyta apačioje) |
| token              | string | API raktas, skirtas Jūsų projektui                                           |
| uzsakovas          | string | Užsakovo (pirkėjo) pavadinimas                                               |
| miestas            | string | Užsakovo (pirkėjo) miestas                                                   |
| adresas            | string | Užsakovo (pirkėjo) adresas                                                   |
| tel                | string | Užsakovo (pirkėjo) telefono numeris                                          |
| im\_kodas          | string | Užsakovo (pirkėjo) įmonės kodas                                              |
| pvm\_kodas         | string | Užsakovo (pirkėjo) PVM kodas                                                 |
| email              | string | Užsakovo (pirkėjo) el. paštas                                                |
| uzsak\_data        | string | Užsakymo data                                                                |
| vykd\_data         | string | Vykdymo data                                                                 |
| pristat\_data      | string | Pristatymo data                                                              |
| apmok\_data        | string | Apmokėjimo data                                                              |
| atvyk\_data        | string | Atvykimo data                                                                |
| isvyk\_data        | string | Išvykimo data                                                                |
| uzsak\_suma        | number | Užsakymo suma                                                                |
| uzsak\_num         | string | Užsakymo numeris                                                             |
| pvm\_suma          | number | Užsakymo PVM suma                                                            |
| bepvm\_suma        | number | Užsakymo suma be PVM                                                         |
| sandelis           | string | Sandėlis                                                                     |
| pasto\_kodas       | string | Pašto kodas                                                                  |
| uzsakovas\_pastaba | string | Užsakovo (pirkėjo) pastaba                                                   |
| pirk\_skolsask     | string | Užsakovo (pirkėjo) skolų sąskaita                                            |

{% tabs %}
{% tab title="200 Visuomet grąžinamas Response 200 atsakymas, tačiau įvykus klaidai success parametras tampa su reikšme 0. Klaidos atveju taip pat pateikiamas papildomas Response parametras - error, kuriame nurodoma, kokia klaida įvyko.
Sėkmingo užsakymo importavimo atveju, grąžinamas parametras order\_hash, kuris yra unikalus Jūsų užsakymo pateikimo kodas, pagal kurį sistema gali atpažinti užsakymą." %}

```javascript
{
    "success": 1,
    "order_hash": "[Created order hash]"
}
```

{% endtab %}
{% endtabs %}

## JSON užsakymo prekių eilučių reikšmės

`OPTIONS`&#x20;

#### Query Parameters

| Name        | Type   | Description                  |
| ----------- | ------ | ---------------------------- |
| kodas       | string | Prekės/paslaugos kodas       |
| t\_kodas    | string | Tiekėjo kodas                |
| pavadinimas | string | Prekės/paslaugos pavadinimas |
| matovnt     | string | Prekės/paslaugos mato vnt.   |
| kiekis      | number | Prekės/paslaugos kiekis      |
| kaina       | number | Prekės/paslaugos kaina       |
| pvm\_tar    | number | PVM tarifas                  |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

Pavyzdys:

```javascript
[
  {
    "kodas": "11222",
    "t_kodas": "122",
    "pavadinimas": "Kompiuteris",
    "matovnt": "vnt.",
    "kiekis": "2",
    "kaina": "1050",
    "pvmtar": "21",
 },
 {
    "kodas": "11222",
    "t_kodas": "122",
    "pavadinimas": "Kompiuteris",
    "matovnt": "vnt.",
    "kiekis": "2",
    "kaina": "1050",
    "pvmtar": "21",
 }
]
```

## Produktų importavimas

<mark style="color:green;">`POST`</mark> `http://ws.centas.lt/v1/products/import`

Produktų importavimas vykdomas pateikiant XML dokumentą kaip tekstą per POST parametrą **data.**

#### Query Parameters

| Name  | Type   | Description                        |
| ----- | ------ | ---------------------------------- |
| token | string | API raktas, skirtas Jūsų projektui |

#### Request Body

| Name | Type   | Description          |
| ---- | ------ | -------------------- |
| data | string | Duomenys XML formatu |

{% tabs %}
{% tab title="200 Sėkmingo importavimo atveju, grąžinas JSON su informacija, pavyzdys:" %}

```javascript
{
    "success": 1,
    "products_found_xml": 1,
    "products_created": 1,
    "products_updated": 0
}
```

{% endtab %}
{% endtabs %}

data parametro turinio (xml) pavyzdys:

```markup
<?xml version="1.0" encoding="UTF-8"?>
<root>
    <item>
        <token>tk_91875401d16245911c7021313258bc25ac40836367edvdcff</token>
        <oper>UPD</oper>
        <id>101</id>
        <kodas>C001</kodas>
        <pavadinimas>Programa nr. 1</pavadinimas>
        <matovnt>vnt.</matovnt>
        <kaina>100.000000</kaina>
        <pvmtar>21</pvmtar>
        <likutis>250</likutis>
        <grupe1></grupe1>
        <grupe2>0</grupe2>
        <grupe3></grupe3>
        <barkodas>123456789</barkodas>
        <aprasymas>Prekės aprašymas</aprasymas>
        <Nuotrauka></Nuotrauka>
        <Stocks>
					<Stock>
						<WarehouseId>1</WarehouseId>
						<WarehouseName>Sandelis Nr. 1</WarehouseName>
						<Quantity>18566.6440</Quantity>
					</Stock>
					<Stock>
						<WarehouseId>2</WarehouseId>
						<WarehouseName>Sandelis Nr. 2</WarehouseName>
						<Quantity>61.0000</Quantity>
					</Stock>
		    </Stocks>
     		<ProductParameters>
     			<Parameter>
     				<Name>Kuras</Name>
     				<Value>Dujos</Value>
     			</Parameter>
     			<Parameter>
     				<Name>Automobilio modelis</Name>
     				<Value>Opel</Value>
     			</Parameter>
     		</ProductParameters>
        <AnalogProducts></AnalogProducts>
        <RecommendedProducts></RecommendedProducts>
    </item>
    <item>
        <token>tk_91875401d16245911c7021313258bc25ac40836367edvdcff</token>
        <oper>UPD</oper>
        <id>102</id>
        <kodas>C002</kodas>
        <pavadinimas>Programa nr. 2</pavadinimas>
        <matovnt>vnt.</matovnt>
        <kaina>180.000000</kaina>
        <pvmtar>21</pvmtar>
        <likutis>147</likutis>
        <grupe1></grupe1>
        <grupe2></grupe2>
        <grupe3></grupe3>
        <Nuotrauka></Nuotrauka>
        <AnalogProducts></AnalogProducts>
        <RecommendedProducts></RecommendedProducts>
    </item>
</root>
```

## Produktų eksportavimas (XML)

<mark style="color:blue;">`GET`</mark> `http://ws.centas.lt/v1/products/export`

Metodas skirtas produktų/produkto informacijos eksportavimui pagal token raktą XML formatu.

#### Query Parameters

| Name  | Type   | Description                                                                  |
| ----- | ------ | ---------------------------------------------------------------------------- |
| token | string | API raktas, skirtas Jūsų projektui                                           |
| id    | string | Produkto ID, jeigu nori išgauti tik vieno produkto informaciją (neprivaloma) |

{% tabs %}
{% tab title="200 Metodas, sėkmingo produktų eksportavimo atveju, grąžina atsakymą XML formatu, pavyzdys:" %}

```markup
<?xml version="1.0" encoding="UTF-8"?>
<root>
    <item>
        <token>tk_456453214565416283b911c70b1df65sdxh65fds4h65</token>
        <oper>UPD</oper>
        <id>1547</id>
        <kodas>1-15</kodas>
        <pavadinimas>Prekė 01</pavadinimas>
        <matovnt>vnt.</matovnt>
        <kaina>113.99</kaina>
        <pvmtar>21</pvmtar>
        <likutis>907.0000</likutis>
        <grupe1></grupe1>
        <grupe2></grupe2>
        <grupe3></grupe3>
        <Nuotrauka></Nuotrauka>
        <barkodas>123456789</barkodas>
        <aprasymas>Prekės aprašymas</aprasymas>
        <Stocks>
					<Stock>
						<WarehouseId>1</WarehouseId>
						<WarehouseName>Sandelis Nr. 1</WarehouseName>
						<Quantity>18566.6440</Quantity>
					</Stock>
					<Stock>
						<WarehouseId>2</WarehouseId>
						<WarehouseName>Sandelis Nr. 2</WarehouseName>
						<Quantity>61.0000</Quantity>
					</Stock>
		    </Stocks>
     		<ProductParameters>
     			<Parameter>
     				<Name>Kuras</Name>
     				<Value>Dujos</Value>
     			</Parameter>
     			<Parameter>
     				<Name>Automobilio modelis</Name>
     				<Value>Opel</Value>
     			</Parameter>
     		</ProductParameters>
    </item>
</root>
```

{% endtab %}
{% endtabs %}

## Mokėjimų importavimas

<mark style="color:green;">`POST`</mark> `http://ws.centas.lt/v1/payments/import`

Metodas skirtas mokėjimų importavimui pagal token raktą XML formatu.

#### Query Parameters

| Name  | Type   | Description                        |
| ----- | ------ | ---------------------------------- |
| token | string | API raktas, skirtas Jūsų projektui |

#### Request Body

| Name | Type   | Description                    |
| ---- | ------ | ------------------------------ |
| data | string | XML dokumentas teksto pavidalu |

{% tabs %}
{% tab title="200 Sėkmingo importavimo metu, grąžinamas atsakymas JSON formatu:" %}

```javascript
{
    "success": 1,
    "payments_found_xml": 1,
    "payments_created": 1
}
```

{% endtab %}
{% endtabs %}

data parametro turinio pavyzdys:

```markup
<?xml version="1.0" encoding="UTF-8"?>
<root>
    <Payment>
        <PaymentType>BankDeb</PaymentType>
        <Date>2020.01.01</Date>
        <Amount>123.23</Amount>
        <DocNr>NR001_is_banko</DocNr>
        <RefNr>ABC001001001_unikalus nr dokumento identifikacijai</RefNr>
        <Details>mokejimo paskirtis</Details>
        <RecName>UAB Moketojas</RecName>
        <RecId>303030303</RecId>
        <ToAccountNumber>LT1234567890</ToAccountNumber>
    </Payment>
</root>
```

## Mokėjimų eksportavimas

<mark style="color:blue;">`GET`</mark> `http://ws.centas.lt/v1/payments/export`

Metodas skirtas išgauti mokėjimus pagal Token raktą XML formatu.

#### Query Parameters

| Name  | Type   | Description                        |
| ----- | ------ | ---------------------------------- |
| token | string | API raktas, skirtas Jūsų projektui |

{% tabs %}
{% tab title="200 Sėkmingo eksportavimo atveju, grąžinamas atsakymas XML formatu su mokėjimų informacija:" %}

```markup
<?xml version="1.0" encoding="UTF-8"?>
<root>
	<Payment>
		<token>99875401d16283b911c70b1ddbc25ac40836367f</token>
		<PaymentType>BankDeb</PaymentType>
		<Date>2020.01.01</Date>
		<Amount>123.23</Amount>
		<DocNr>NR001_is_banko</DocNr>
		<RefNr>ABC001001001_unikalus nr dokumento identifikacijai</RefNr>
		<Details>mokejimo paskirtis</Details>
		<RecName>UAB Moketojas</RecName>
		<RecId>303030303</RecId>
		<ToAccountNumber>LT1234567890</ToAccountNumber>
	</Payment>
</root>
```

{% endtab %}
{% endtabs %}

## Pirkimo dokumento įkėlimas

<mark style="color:green;">`POST`</mark> `http://ws.centas.lt/v1/documents/purchase/import`

Postman užklausos pvz.: <https://www.postman.com/collections/aaf18c6264096f4225e5>

#### Query Parameters

| Name                                    | Type   | Description  |
| --------------------------------------- | ------ | ------------ |
| token<mark style="color:red;">\*</mark> | String | Token raktas |

#### Request Body

| Name                                          | Type   | Description           |
| --------------------------------------------- | ------ | --------------------- |
| kontrah<mark style="color:red;">\*</mark>     | String | Pardavėjo pavadinimas |
| data<mark style="color:red;">\*</mark>        | String | Data                  |
| dok\_suma<mark style="color:red;">\*</mark>   | String | Dokumento suma        |
| dok\_num<mark style="color:red;">\*</mark>    | String | Dokumento nr.         |
| pvm\_suma<mark style="color:red;">\*</mark>   | String | PVM suma              |
| bepvm\_suma<mark style="color:red;">\*</mark> | String | Suma be PVM           |
| rows<mark style="color:red;">\*</mark>        | String | JSON produktų masyvas |

{% tabs %}
{% tab title="200: OK Pirkimo dokumentas s4k" %}

```javascript
{
    "success": 1,
    "purchase_id": 1
}
```

{% endtab %}
{% endtabs %}
