POS operacijų importas (pinigų įdėjimas, išėmimas, kvito formavimas)
POST https://api.manorivile.lt/client/v2
ApiKey
: Privalomas. Unikalus API raktas išduodamas užsakant paslaugąContent-Type
: Privalomas. Kokiu formatu paduodami parametrai ir duomenys (request):
application/xml
application/json
Accept
: Neprivalomas. Gražinamo rezultato (response) formatas
application/xml
(default)application/json
(veikia nuo Manorivile-Gateway-1.1.0 versijos)method
: EDIT_I61_FULL
params
: perduodami parametrai:
response_type
: Neprivalomas. response_type = 1
(default) - gražina pilną rezultatą, response_type = 4
- gražina tik sukurtos operacijos numerįdata
: perduodami duomenys:
Vienu metu veiksmai atliekami tik su vienu dokumentu.
Pirmi 7 ApiKey simboliai (pvz USERABC.JQKPG1d7Pkjxj37ObsgdfEkvfEfvF1oL7h7UMOLo
-> USERABC
) yra vartotojo vardas Rivile GAMA programoje, kuriuo bus kuriami ar koreguojami įrašai.
Naudojant tag'ą <i06_kodas_po>
galima susisieti POS operaciją su Pardavimų modulio operacija. Tam, kad šis tag'as veiktų:
1. POS operacijos tipas turi būti kvitas (i61_tipas = 1).
2. Pardavimo operacijos tipas gali būti tik važtaraštis arba užsakymas (i06_op_tip = 51 arba i06_op_tip = 53).
3. jeigu naudojamas šis tag'as dokumento antraštėje, tuomet prie detalių eilučių būtinai turi būti naudojami tag'ai <i62_eil_nr_po>
ir <i62_kodas_po>
, nurodantys eilutės numerį pardavimo operacijoje ir pardavimo operacijos numerį.
Jeigu naudojamas tag'as <i06_kodas_po>
ir Pardavimo operacijos tipas - Važtaraštis, importuojant POS operaciją bus papildomai atliekami tokie veiksmai:
Jeigu naudojamas tag'as <i06_kodas_po>
ir Pardavimo operacijos tipas - Užsakymas, importuojant POS operaciją bus papildomai atliekami tokie veiksmai:
Kvito sukūrimo metu likučių rezervavimas valdomas per Rivile GAMA įrenginių parametrą:
pvz application/xml
:
<body>
<method>EDIT_I61_FULL</method>
<params>
<oper>I</oper>
</params>
<data>
<I61>
<I61_KODAS_KK>POS01</I61_KODAS_KK>
<I61_TIPAS>1</I61_TIPAS>
<I61_DOK_NR>M00000000004</I61_DOK_NR>
<I61_OP_DATA>2020.10.29 15:24</I61_OP_DATA>
<I61_KODAS_KS>K1 </I61_KODAS_KS>
<I61_SUMA> 1000.00</I61_SUMA>
<I61_KODAS_SS> </I61_KODAS_SS>
<I61_KODAS_SS_0>2710 </I61_KODAS_SS_0>
<I61_PINIGAI> 1000.00</I61_PINIGAI>
<I61_APRASYMAS>APRASYMAS</I61_APRASYMAS>
<I62>
<I62_TIPAS>1</I62_TIPAS>
<I62_KODAS_PS>006 </I62_KODAS_PS>
<I62_KODAS_IS>01 </I62_KODAS_IS>
<I62_KODAS_US>VNT </I62_KODAS_US>
<I62_KIEKIS> 2</I62_KIEKIS>
<I62_KIEKIS_M> 0</I62_KIEKIS_M>
<I62_FRAKCIJA> 1</I62_FRAKCIJA>
<I62_KODAS_US_P>VNT </I62_KODAS_US_P>
<I62_ALT_KIEKIS> 2</I62_ALT_KIEKIS>
<I62_ALT_FRAK> 1</I62_ALT_FRAK>
<I62_KODAS_US_A>VNT </I62_KODAS_US_A>
<I62_KAINA_SU> 500.0000</I62_KAINA_SU>
<I62_SUMA> 1000.00</I62_SUMA>
<I62_TAX>1</I62_TAX>
<I62_MOKESTIS_P> 21.00</I62_MOKESTIS_P>
</I62>
</I61>
</data>
</body>
pvz application/json
:
{
"method": "EDIT_I61_FULL",
"data": {
"I61": {
"I61_KODAS_KK": "POS",
"I61_TIPAS": 1,
"I61_DOK_NR": "",
"I06_DOK_NR": "M00000000004",
"I61_OP_DATA": "2020.10.29",
"I61_KODAS_KS": "K1",
"I61_SUMA": 1000.00,
"I61_KODAS_SS_0": "2710",
"I61_PINIGAI": 1000.00,
"I61_APRASYMAS": "APRASYMAS",
"I62":[
{
"I62_TIPAS": 1,
"I62_KODAS_PS": "006",
"I62_KODAS_IS": "01",
"I62_KODAS_US": "VNT",
"I62_KIEKIS": 2,
"I62_KIEKIS_M": 0,
"I62_FRAKCIJA": 1,
"I62_KODAS_US_P": "VNT",
"I62_ALT_KIEKIS": 2,
"I62_ALT_FRAK": 1,
"I62_KODAS_US_A": "VNT",
"I62_KAINA_SU": 500.0000,
"I62_SUMA": 1000.00,
"I62_TAX": 1,
"I62_MOKESTIS_P": 21
}
]
}
}
}
Tag'as <i06_kodas_po>
:
{
"method": "EDIT_I61_FULL",
"data": {
"I61": {
"I61_KODAS_KK": "POS",
"I61_TIPAS": 1,
"I61_OP_DATA": "2022.01.06",
"I61_SUMA": 1000.00,
"I61_KODAS_SS_0": "2711",
"I61_PINIGAI": 1000.00,
"I06_KODAS_PO": "010000019382",
"I62":[
{
"I62_TIPAS": 1,
"I62_KODAS_PS": "000000000001",
"I62_KODAS_IS": "IM",
"I62_KODAS_US": "VNT",
"I62_KIEKIS": 2,
"I62_KIEKIS_M": 0,
"I62_FRAKCIJA": 1,
"I62_KODAS_US_P": "VNT",
"I62_ALT_KIEKIS": 2,
"I62_ALT_FRAK": 1,
"I62_KODAS_US_A": "VNT",
"I62_KAINA_SU": 500.0000,
"I62_SUMA": 1000.00,
"I62_TAX": 1,
"I62_MOKESTIS_P": 21,
"I62_KODAS_PO": "010000019382",
"I62_EIL_NR_PO": 1
}
]
}
}
}
Grąžinama informacija XML formate tarp tag'ų <RET_DOK>..</RET_DOK>
.
pvz response:
<?xml version='1.0'?>
<RET_DOK>
<I06>
<I06_KODAS_PO>010R00001042</I06_KODAS_PO>
<Row_number>1</Row_number>
<I06_OP_TIP>51</I06_OP_TIP>
<I06_DOK_NR>DOK-001</I06_DOK_NR>
<I06_OP_DATA>2020-01-30 00:00:00.000</I06_OP_DATA>
...
<I07>
...
</I07>
...
<I08>
...
</I08>
<I13>
...
</I13>
</I06>
</RET_DOK>
Pinigų įdėjimas / išėmimas
Pinigų įdėjimui/išėmimui: I61_TIPAS=2. Kai I61_SUMA>0 - įdėjimas, kai I61_SUMA<0 - išėmimas, pvz.:
Pinigų įdėjimas
<body>
<method>EDIT_I61_FULL</method>
<data>
<I61>
<I61_KODAS_KK>EEKGHH6</I61_KODAS_KK>
<I61_TIPAS>2</I61_TIPAS>
<I61_SUMA>20.00</I61_SUMA>
</I61>
</data>
</body>
Pinigų įdėjimas
<body>
<method>EDIT_I61_FULL</method>
<data>
<I61>
<I61_KODAS_KK>EEKGHH6</I61_KODAS_KK>
<I61_TIPAS>2</I61_TIPAS>
<I61_SUMA>-20.00</I61_SUMA>
</I61>
</data>
</body>
Z‘to registravimas
Z operacijai pinigų suma nėra perduodama. Ši operacija susumuoja grynųjų pinigų sumą pagal POS aprašymą nuo gyvavimo pradžios ir skirtumą minusuoja – išima pinigus iš stalčiaus. Po Z‘to stalčiuje grynųjų pinigų likutis yra lygus 0, pvz.:
<body>
<method>EDIT_I61_FULL</method>
<data>
<I61>
<I61_KODAS_KK>EEKGHH6</I61_KODAS_KK>
<I61_TIPAS>4</I61_TIPAS>
</I61>
</data>
</body>
Pastaba: jei norima, kad pinigų įdėjimai ir išėmimai, taip pat ir Z-to registravimas, būtų apskaitomi DK, reikia POS aprašyme nurodyti pinigų įdėjimo (iš kokios sąskaitos) ir išėmimo (į kurią sąskaitą) buhalterines sąskaitas.
Klaida paduodant duomenis / SQL sintaksės klaidos / kitos DB klaidos, pvz:
<?xml version='1.0' encoding='UTF-8'?>
<?xml version='1.0' encoding='UTF-8'?>
<RET_DOK>
<id>1266808491.0a510fdd.1603984213260</id>
<durationMs>8</durationMs>
<errorMessage>Nepavyko įvykdyti metodo</errorMessage>
<errors>
<error>
<data><I61><I61_TIPAS>1</I61_TIPAS><I61_OP_DATA>2020-10-29T15:24:00</I61_OP_DATA><I61_KODAS_KK>POS01</I61_KODAS_KK><I61_KODAS_SS> </I61_KODAS_SS><Oper>I</Oper><I61_DOK_NR>M00000000003</I61_DOK_NR><I61_PINIGAI>1000.00</I61_PINIGAI><I61_KODAS_KS>K1</I61_KODAS_KS><I61_SUMA>1000.00</I61_SUMA><I61_KODAS_SS_0>2710</I61_KODAS_SS_0><I61_USERIS>0HLPUFX</I61_USERIS><Id>2</Id><I61_ADDUSR>0HLPUFX</I61_ADDUSR></I61></data>
<dataErrors>
<dataError>
<tag>I61_DOK_NR</tag>
<code>16058</code>
<message>Toks dokumento numeris jau yra</message>
</dataError>
</dataErrors>
</error>
</errors>
</RET_DOK>
Blogai nurodytas adresas / neteisingai nurodytas API raktas / nenurodytas API raktas / pasibaigęs API rakto galiojimas, pvz.:
<?xml version='1.0' encoding='UTF-8'?>
<RET_DOK>
<id>0</id>
<durationMs>0</durationMs>
<errorMessage>Api key is not valid</errorMessage>
</RET_DOK>
Nepaleistas MANO Rivile Gateway arba kitaip sutrikusi jo veikla
<?xml version='1.0' encoding='UTF-8'?>
<RET_DOK>
<id/>
<durationMs>0</durationMs>
<errorMessage>Rivile GAMA database is unavailable. Please check if the gateway is running and is set up correctly.</errorMessage>
</RET_DOK>
Laiku nebuvo gautas Rivile API užklausos atsakymas, pavyzdžiui, apkrauta GAMA duomenų bazė
<?xml version='1.0' encoding='UTF-8'?>
<RET_DOK>
<id/>
<durationMs>0</durationMs>
<errorMessage>No response received from client gateway</errorMessage>
</RET_DOK>
Bendrinė sistemos klaida, pvz.:
<?xml version='1.0' encoding='UTF-8'?>
<Map>
<timestamp>2020-02-05T12:34:26.890+0000</timestamp>
<status>500</status>
<error>Internal Server Error</error>
<message>No message available</message>
<path>/v2</path>
</Map>
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'ApiKey: uUCz6UD.sKVrjaWRDJAH1c7l4qL2nOoN2K0jARkvuHDdYsss',
'Content-Type: application/json',
]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $payload);
$response = curl_exec($ch);
curl_close($ch);
POS kvito antraštės lentelė | Laukas | Tipas | Aprašymas | Pastabos naudojant EDIT metodus |
---|---|---|---|---|
I61_KODAS_WW | C(12) | Operacijos numeris | ||
I61_KODAS_KK | C(12) | POS kodas | ||
I61_TIPAS | N(1) | Tipas:0-kvitas,1-stalčiaus operacija | ||
I61_DOK_NR | C(12) | Kvito numeris | ||
I61_OP_DATA | T(8) | Operacijos data | ||
I61_KODAS_MS | C(12) | Menedžerio kodas | ||
I61_KODAS_KS | C(12) | Kliento kodas | ||
I61_SUMA | N(12,2) | Pardavimo suma | ||
I61_KODAS_SS | C(12) | Mokėjimo sąskaita | ||
I61_KODAS_SS_0 | C(12) | Kredito sąskaitos kodas 0 | ||
I61_PINIGAI | N(12,2) | Gauta pinigų suma | ||
I61_KODAS_SS_1 | C(12) | Kredito sąskaitos kodas 1 | ||
I61_PINIGAI1 | N(12,2) | Pinigai 1 | ||
I61_KODAS_SS_2 | C(12) | Kredito sąskaitos kodas 2 | ||
I61_PINIGAI2 | N(12,2) | Pinigai 2 | ||
I61_PINIGAI_GR | N(12,2) | Apmokėta grynais | ||
I61_PERKELTA | N(1) | Perkelta? | ||
I61_FISKAL | N(1) | 1-Naujas, 2-Ok, 3-Pabaigos požymis | ||
I61_NUOL_S | N(12,2) | Kvito nuolaidos suma | ||
I61_ADDUSR | C(12) | Kas sukūrė | ||
I61_R_DATE | T(8) | Kada koregavo | ||
I61_USERIS | C(12) | Kas koregavo | ||
I61_SASK_NR | C(20) | Sąskaitos-Faktūros numeris | ||
I61_KODAS_SS_3 | C(12) | Kredito sąskaitos kodas 3 | ||
I61_KODAS_SS_4 | C(12) | Kredito sąskaitos kodas 4 | ||
I61_KODAS_SS_5 | C(12) | Kredito sąskaitos kodas 5 | ||
I61_PINIGAI3 | N(12,2) | Pinigai 3 | ||
I61_PINIGAI4 | N(12,2) | Pinigai 4 | ||
I61_PINIGAI5 | N(12,2) | Pinigai 5 | ||
I61_PINIGAI_M | N(12,2) | Apmokėti pinigai | ||
I61_PINIGAI_M1 | N(12,2) | Apmokėti pinigai 1 | ||
I61_PINIGAI_M2 | N(12,2) | Apmokėti pinigai 2 | ||
I61_PINIGAI_M3 | N(12,2) | Apmokėti pinigai 3 | ||
I61_PINIGAI_M4 | N(12,2) | Apmokėti pinigai 4 | ||
I61_PINIGAI_M5 | N(12,2) | Apmokėti pinigai 5 | ||
I61_KODAS_SM | C(12) | Asmuo | ||
I61_REZERVAS_1 | C(12) | Kvito Nr. iš fiskalo | ||
I61_REZERVAS_2 | C(12) | Rezervas 2 | ||
I61_REZERVAS_3 | C(12) | Rezervas 3 | ||
I61_SUMA_WK | N(12,2) | WB įsipareigojimų suma | ||
I61_KODAS_ZN | C(12) | Zona | ||
I61_APRASYMAS | C(300) | Aprašymas | ||
I06_KODAS_PO | C(12) | Pardavimo operacijos numeris |
POS kvito detalios informacijos lentelė | Laukas | Tipas | Aprašymas | Pastabos naudojant EDIT metodus |
---|---|---|---|---|
I62_KODAS_WW | C(12) | Operacijos numeris | ||
I62_EIL_NR | N(6) | Eil. numeris | ||
I62_EIL_NR_VD | N(6) | Mat.vnt.vidinis eilutės numeris | ||
I62_KODAS_PO | C(12) | Pardavimo operacijos numeris | ||
I62_EIL_NR_PO | N(6) | Eilutės numeris pardavimo operacijoje | ||
I62_TIPAS | N(1) | Tipas:1-Prekė,2-paslauga,3-prekė pagal konkretų objektą ir seriją | ||
I62_KODAS_PS | C(12) | Prekės,paslaugos kodas | ||
I62_KODAS_IS | C(12) | Padalinio kodas | ||
I62_KODAS_OS | C(12) | Objekto kodas | ||
I62_KODAS_OS_C | C(12) | Centro kodas | ||
I62_SERIJA | C(12) | Serija | ||
I62_KODAS_US | C(12) | Pagrindinis matavimo vieneto kodas | ||
I62_KIEKIS | N(14) | Kiekis pagrindiniu matu | ||
I62_KIEKIS_M | N(14) | Kiek parduota į minusą pag. matu | ||
I62_FRAKCIJA | N(4) | Pagrindinio matavimo frakcija | ||
I62_KODAS_US_P | C(12) | Alternatyvaus matavimo vieneto kodas | ||
I62_ALT_KIEKIS | N(14) | Alternatyvus kiekis | ||
I62_ALT_FRAK | N(4) | Alternatyvi frakcija | ||
I62_KODAS_US_A | C(12) | Užpajamavimo matavimo vieneto kodas | ||
I62_KAINA_SU | N(12,4) | Pardavimo kaina su PVM | ||
I62_NUOLAIDA | N(6,2) | Nuolaidos procentas | ||
I62_SUMA | N(12,2) | Suma su PVM | ||
I62_TAX | N(1) | Mokestis:0-Ne,1-A,2-B,3-C,4-D | ||
I62_MOKESTIS_P | N(6,2) | Mokesčio procentas | ||
I62_NUOLAIDA_S | N(12,2) | Nuolaidos suma | ||
I62_PERKELTA | N(1) | Perkelta | ||
I62_ADDUSR | C(12) | Kas sukūrė | ||
I62_USERIS | C(12) | Kas koregavo | ||
I62_R_DATE | T(8) | Koregavimo laikas | ||
I62_KODAS_KT | C(12) | Sutartis | ||
I62_KODAS_K0 | C(12) | Priedo numeris | ||
I62_PVM | N(12,2) | PVM suma | ||
I62_SAVIKAINA | N(12,2) | Savikaina | ||
I62_NUOLAIDA_BE | N(6,2) | Nuolaidos procentas be lojalumo | ||
I62_NUOLAIDA_S_BE | N(12,2) | Nuolaida be lojalumo | ||
I62_SUMA_BE | N(12,2) | Suma be lojalumo |