API aprašymas

API specifikacija

OpenAPI adresas pateikiamas čia: RIVILE ERP_API

PHP kodo pavyzdys

Užduotis: Suformuoti pardavimų sąskaitos sukūrimą ir registravimą, naudojant POST užklausą į Rivile REST API.

Naudojant suformuotą pavyzdį naudoti savo API raktą ( <Jūsų_API_Raktas> ).

 <?php
// Rivile REST API URL
$url = "https://erp.rivile.cloud/public-api/v1/sale-invoices";
// Jūsų API rakto tokenas
$api_key = "<Jūsų_API_Raktas>";
// Sukuriame duomenų masyvą JSON formatu, kuris atitinka Jūsų pateiktą pavyzdį
$data = array(
    "clientId" => "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "clientName" => "Rivilė, UAB",
    "documentNo" => "ERP-002365",
    "isTaxIncluded" => false,
    "currencyCode" => "EUR",
    "notes" => "Sąskaita iš elektroninės parduotuvės",
    "lines" => array(
        array(
            "itemCode" => "SM-S928BZYHEUB",
            "itemName" => "Samsung Galaxy S21 Ultra",
            "uomAltCode" => "VNT",
            "qtyAlt" => 1,
            "price" => 1000.00,
            "departmentCode" => "SAND1"
        )
    )
);

// Pavertėme duomenis į JSON formatą
$json_data = json_encode($data);

// Sukuriame HTTP antraštę su API raktu ir turiniu
$headers = [
    "X-SessionToken: " . $api_key,
    "Content-Type: application/json",
];
// Sukuriame cURL užklausos resursą
$ch = curl_init($url);

// Nustatome cURL parinktis
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_POSTFIELDS, $json_data);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');

// Įvykdome cURL užklausą
$response = curl_exec($ch);
// Patikriname, ar nėra klaidų
if (curl_errno($ch)) {
    echo 'Curl klaida: ' . curl_error($ch);
}
// Uždarome cURL sesiją
curl_close($ch);
// Atvaizduojame atsakymą
echo $response;
?>

Šis URL gali būti keičiamas ir pritaikomas pagal individualios integracijos poreikius.

ID ir CODE naudojimas POST metoduose

API įrašų kūrimo metu galimi du normatyvų identifikavimo būdai:

  • naudojant ID (pvz."clientId": "3fa85f64-5717-4562-b3fc-2c963f66afa6" gali būti unikalus kliento identifikatorius (ID));
  • naudojant kodą (pvz. "clientCode": "string" gali būti kliento unikalus kodas).

Nurodžius abi identifikavimo reikšmes, bus naudojamas ID.

Privalomi / Neprivalomi laukai POST metoduose kuriant įrašus

Kuriant įrašus POST metoduose dauguma laukų gali būti nepildomi, nes Rivile ERP automatiškai užpildys pagal parametruose aprašytus nustatymus. Tačiau yra tam tikrų privalomų laukų, kuriuos būtina užpildyti reikšmėmis, kad įrašas būtų sėkmingai sukurtas. Privalomų laukų užpildymas priklauso nuo konkretaus įrašo tipo.

Pavyzdys:

Sąskaitos arba užsakymo sukūrimas

{  "clientCode": "000005",  "lines": [    {      "itemCode": "000002",      "uomAltCode": "VNT",      "qtyAlt": 1,      "departmentCode": "demo"    }  ] }

Privalomi Laukai:

  • clientId arba clientCode: Kliento ID arba kodas, su kuriuo siejama sąskaita ar užsakymas.
  • lines:
    • itemId arba itemCode: Prekės / paslaugos ID arba kodas.
    • uomAltId arba uomAltCode: Mato vieneto ID arba kodas.
    • qtyAlt : kiekis nurodytu mato vienetu.
    • departmentId arba departmentCode: Įmonės padalinio ID arba kodas.

Sistema gavusi šią informaciją automatiškai užpildys: dokumentų numerį (pagal aprašytus skaitliukus), kainą (pagal aprašytą kainyną), datą ir pan., jeigu ji nebus užpildoma API duomenų perdavimo metu.

Duomenų filtravimas GET sąrašiniuose metoduose

GET sąrašiniuose metoduose galimas duomenų filtravimas, kuris leidžia sujungti kelis filtrus naudojant loginę funkciją AND .

Filtravimui galimi naudoti operatoriai:

  • CONTAINS: Tikrina, ar laukas turi nurodytą tekstą.
  • NOT_CONTAINS: Tikrina, ar laukas neturi nurodyto teksto.
  • EQUAL: Tikrina, ar laukas yra lygus nurodytam tekstui, skaičiui arba loginei reikšmei.
  • NOT_EQUAL: Tikrina, ar laukas nėra lygus nurodytam tekstui arba skaičiui.
  • GREATER_THAN: Tikrina, ar laukas yra didesnis nei nurodytas skaičius.
  • STARTS_WITH: Tikrina, ar laukas prasideda nurodytu tekstu.
  • ENDS_WITH: Tikrina, ar laukas baigiasi nurodytu tekstu.

Pavyzdys:

Užduotis: Vykdyti filtravimą klientų, kurių pavadinime yra fragmentas "Demo" ir jie yra aktyvūs.

API filtrų sąlyga:

  {    "operation": "CONTAINS",    "name": "name",    "value": "Demo"  },  {    "operation": "EQUAL",    "name": "active",    "value": true  } 

Vykdant užklausą filtro reikšmę reikia užkoduoti (Encode). Naudojant Postman paspaudus ant įvestos reikšmės pasirinkti Encode/Decode.

API filtro rezultatas:

GET {{baseUrl}}/v1/clients?size=30&page=0&filter=%7B%22operation%22%3A%22CONTAINS%22%2C%22name%22%3A%22name%22%2C%22value%22%3A%22Demo%22%7D%2C%7B%22operation%22%3A%22EQUAL%22%2C%22name%22%3A%22active%22%2C%22value%22%3Atrue%7D

Kriterijų keitimas (pvz. puslapių numerai, įrašų skaičius puslapyje ir pan.) galimas pagal individualų poreikį. Užklausoje įrašų skaičius negali viršyti 100.

API