EDIT_I61_FULL

Aprašymas

POS operacijų importas (pinigų įdėjimas, išėmimas, kvito formavimas)

Specifikacija

Address

POST https://api.manorivile.lt/client/v2

Header
  • 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)
Body
  • 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:
    • I61 - POS operacijos antraštė (i61)
    • I62 - POS kvito informacija (neprivalomas) (i62)

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:

  1. Iš Pardavimo važtaraščio į POS operaciją bus nukopijuojama Sąskaitos-Faktūros numeris, kliento kodas, asmens kodas (I61_SASK_NR = I06_DOK_NR, I61_KODAS_KS = I06_KODAS_KS, I61_KODAS_SM = I06_KODAS_SM);
  2. Kvitas perkeliamas;
  3. Jeigu Pardavimo važtaraščio požymis buvo "Perkeltas", požymis keičiamas į "Koreguotas".
  4. Pardavimo važtaraščio operacijos data pakoreguojama į kvito datą;
  5. Pardavimo važtaraštyje sugeneruojamas mišrus apmokėjimas remiantis kvito informacija.

Jeigu naudojamas tag'as <i06_kodas_po> ir Pardavimo operacijos tipas - Užsakymas, importuojant POS operaciją bus papildomai atliekami tokie veiksmai:

  1. Iš Pardavimo važtaraščio į POS operaciją bus nukopijuojama kliento kodas, asmens kodas (I61_KODAS_KS = I06_KODAS_KS, I61_KODAS_SM = I06_KODAS_SM);
  2. Kvito operacijoje sugeneruojamas Sąskaitos-faktūros numeris (I61_SASK_NR ). Būtinai turi būti aprašytas dokumentų skaitliukas Pardavimų važtaraščiams, kitaip bus gaunama klaida "Nenurodytas dokumento numeris".

Kvito sukūrimo metu likučių rezervavimas valdomas per Rivile GAMA įrenginių parametrą:

pos_param1

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
                }  
            ]
        }
    }
}
Response (status 200 OK)

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.

Response (status 400)

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>&lt;I61>&lt;I61_TIPAS>1&lt;/I61_TIPAS>&lt;I61_OP_DATA>2020-10-29T15:24:00&lt;/I61_OP_DATA>&lt;I61_KODAS_KK>POS01&lt;/I61_KODAS_KK>&lt;I61_KODAS_SS> &lt;/I61_KODAS_SS>&lt;Oper>I&lt;/Oper>&lt;I61_DOK_NR>M00000000003&lt;/I61_DOK_NR>&lt;I61_PINIGAI>1000.00&lt;/I61_PINIGAI>&lt;I61_KODAS_KS>K1&lt;/I61_KODAS_KS>&lt;I61_SUMA>1000.00&lt;/I61_SUMA>&lt;I61_KODAS_SS_0>2710&lt;/I61_KODAS_SS_0>&lt;I61_USERIS>0HLPUFX&lt;/I61_USERIS>&lt;Id>2&lt;/Id>&lt;I61_ADDUSR>0HLPUFX&lt;/I61_ADDUSR>&lt;/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>
Response (status 401)

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>
Response (status 502)

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>
Response (status 504)

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>
Response (status 500)

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 pvz

<?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);

Lentelės

I61

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

I62

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