Sąskaitos sukūrimas per API
Pavyzdyje kuriama pirkimo PVM sąskaita su dviem skirtingais eilučių PVM kodais. Naudokite savo veiklos, tiekėjo ir dokumento duomenis.
https://www.saskaitos.lt/api type: bill$config = [ 'apiKey' => 'JUSU_API_RAKTAS', 'companyId' => 1,]; $billParams = [ 'type' => 'bill', 'action' => 'create', 'Bill' => [ 'Customer' => [ 'ID' => 123, ], 'Prefix' => 'SF', 'Number' => '00000001', 'Date' => '2026-10-20', 'PayDate' => '2026-11-03', 'Currency' => 'EUR', 'PaymentAmount' => '', 'PaymentDate' => '', 'Recipient' => '', 'TaxPercentage' => '21', 'TaxCode' => 'PVM1', 'Type' => 'buy_with_tax', 'Wrote' => 'Vardas Pavarde', 'Comment' => 'API pavyzdys', 'Total' => '57.74', 'TotalTax' => '10.61', 'TotalWithTax' => '68.35', 'Item' => [ 'Count' => [1, 1], 'Name' => ['Apmokestinama paslauga', 'Neapmokestinama paslauga'], 'SKU' => ['PASL-1', 'PASL-2'], 'Price' => ['50.55', '7.19'], 'PriceWithTax' => ['61.16', '7.19'], 'Total' => ['50.55', '7.19'], 'TotalWithTax' => ['61.16', '7.19'], 'Type' => ['vnt', 'vnt'], 'Tax' => ['21', ''], 'NoTax' => [0, 1], 'TaxCode' => ['PVM1', 'PVM5'], ], 'Settings' => ['ReverseVAT' => '0'], 'Test' => '1', ],]; $respondBill = json_decode(UseCURLSocket( 'https://www.saskaitos.lt/api', array_merge($config, $billParams))); Pavyzdyje naudojama UseCURLSocket() funkcija. Jos aprašymas yra pilname PHP API pavyzdyje.
LAUKŲ ŽINYNAS
Laukai, tipai ir galimos reikšmės
Žemiau – šio PHP pavyzdžio parametrai ir paaiškinimas, ką juose perduoti.
stringTekstas, pvz. vardas ar įmonės kodas.intSkaitinis ID, pavyzdyje sveikasis skaičius.arraySusijusių laukų arba reikšmių masyvas.PHP masyvai perduodami POST formos laukais, pvz. Bill[Type]. Užklausos reikšmės perduodamos tekstu, atsakymas grąžinamas JSON.
apiKeystringJūsų veiklos API raktas.
Bent 10 simbolių. Naudokite savo veiklos nustatymuose esantį raktą.
'JUSU_API_RAKTAS'PrivalomascompanyIdintVeiklos, kurios vardu atliekate veiksmą, numeris.
Teigiamas veiklos ID, pavyzdyje 1.
1PrivalomastypestringAPI duomenų sritis.
Sąskaitoms naudokite 'bill'; dokumento rūšis pasirenkama Bill.Type.
'bill'Privalomas šiame pavyzdyjeactionstringVeiksmas su dokumentu.
Šiame pavyzdyje 'create'. Kiti šios srities veiksmai: get, update, delete, seria, list.
'create'Pasirinkite veiksmąBillarraySąskaitos duomenų grupė.
PHP asociatyvus masyvas su dokumento parametrais.
[...]Duomenų grupėBill.CustomerarrayNuoroda į išsaugotą klientą arba tiekėją.
Perduokite įrašo ID. Naują klientą ar tiekėją galite įrašyti per customer API.
['ID' => 123]Šiame pavyzdyjeBill.Customer.IDintIšsaugoto kliento arba tiekėjo ID.
Pirkimo dokumente nurodykite tiekėjo, o pardavimo dokumente kliento ID.
123Nurodykite pavyzdyjeBill.PrefixstringDokumento serijos priešdėlis.
Pirkimui nurodykite tiekėjo dokumento seriją. Pardavimui galite naudoti Seria.Prefix reikšmę.
'SF'Serijos duomenysBill.NumberstringDokumento numeris serijoje.
Pirkimui nurodykite tiekėjo dokumento numerį. Pardavimui galite naudoti Seria.Number reikšmę. Perduokite tekstu, kad išliktų pradžios nuliai.
'00000001'Serijos duomenysBill.DatestringIšrašomo dokumento data.
Formatas YYYY-MM-DD, pvz. 2026-10-20.
'2026-10-20'PrivalomasBill.PayDatestringApmokėjimo termino data.
Naudokite YYYY-MM-DD. Jei perduotas teigiamas Bill.PayInDays, PayDate perskaičiuojama nuo Bill.Date.
'2026-11-03'PapildomasBill.CurrencystringDokumento valiuta.
Pavyzdyje EUR. Naudokite dokumentui reikalingą valiutos kodą.
'EUR'Nurodykite pavyzdyjeBill.PaymentAmountstringNurodyta apmokėta suma.
Neapmokėtam dokumentui pavyzdyje paliekama tuščia; kitais atvejais pateikite skaitinę sumą tekstu.
''PapildomasBill.PaymentDatestringNurodyta apmokėjimo data.
Neapmokėtam dokumentui palikite tuščią; datai naudokite YYYY-MM-DD.
''PapildomasBill.RecipientstringDokumento siuntimo gavėjo el. paštas.
Gavėjo el. paštas arba tuščia reikšmė. Vien gavėjo nurodymas nėra išsiuntimo patvirtinimas.
''PapildomasBill.TaxPercentagestringBendras dokumento PVM procentas.
Skaitinis dokumentui taikomas procentas tekstu, pavyzdyje '21'.
'21'Pagal dokumentąBill.TaxCodestringDokumento PVM klasifikatoriaus kodas.
Dokumentui taikomas PVM klasifikatoriaus kodas, pavyzdyje PVM1.
'PVM1'Pagal dokumentąBill.TypestringDokumento rūšis.
Pardavimui naudokite 'bill', pirkimo PVM sąskaitai 'buy_with_tax'. Abiem atvejais viršutinio lygmens type reikšmė yra 'bill'.
'buy_with_tax'PrivalomasBill.WrotestringDokumentą išrašęs asmuo.
Laisvas tekstas.
'Vardas Pavarde'PapildomasBill.CommentstringDokumento komentaras.
Laisvas tekstas.
'API pavyzdys'PapildomasBill.TotalstringBendra dokumento suma be PVM.
Mišraus PVM dokumentui pateikite dokumente nurodytą sumą su dešimtainiu tašku.
'57.74'Pagal dokumentąBill.TotalTaxstringBendra dokumento PVM suma.
Perduokite dokumente nurodytą PVM sumą. Mišrios PVM1 ir PVM25 sąskaitos pavyzdyje ji apima tiekėjo ir pirkėjo apskaičiuotą PVM, iš viso 948,57 EUR.
'10.61'Pagal dokumentąBill.TotalWithTaxstringBendra dokumento suma su PVM.
Kai dalį PVM apskaičiuoja pirkėjas, perduokite tiekėjui mokėtiną sumą. PVM1 ir PVM25 pavyzdyje ji yra 5 100,86 EUR.
'68.35'Pagal dokumentąBill.ItemarrayDokumento eilučių duomenys.
Lygiagretūs laukų masyvai, ne masyvas iš atskirų eilutės objektų. Vienodas indeksas visuose masyvuose aprašo tą pačią eilutę.
[...]Duomenų grupėBill.Item.CountarrayEilučių kiekiai.
Kiekių masyvas. Tas pats indeksas visuose eilučių masyvuose reiškia tą pačią prekę ar paslaugą.
[1, 1]Eilučių duomenysBill.Item.NamearrayPrekių ar paslaugų pavadinimai.
Prekių ar paslaugų pavadinimų masyvas; pagal jo indeksus perduokite ir kitus eilutės laukus.
['Apmokestinama paslauga', 'Neapmokestinama paslauga']Eilučių duomenysBill.Item.SKUarrayPrekių ar paslaugų kodai.
Tekstų masyvas tais pačiais eilučių indeksais.
['PASL-1', 'PASL-2']Papildomas eilutės laukasBill.Item.PricearrayVieneto kainos be PVM.
Skaitinių reikšmių tekstų masyvas; pavyzdyje kainos su dešimtainiu tašku. Bendras skaičiavimas naudoja Price × Count, o PVM pridedamas atskirai.
['50.55', '7.19']Eilučių duomenysBill.Item.PriceWithTaxarrayVieneto kainos su PVM.
Tekstų masyvas su dešimtainiu tašku.
['61.16', '7.19']Pagal eilutęBill.Item.TotalarrayEilučių sumos be PVM.
Pateikite kiekvienos eilutės sumą po nuolaidos.
['50.55', '7.19']Pagal eilutęBill.Item.TotalWithTaxarrayEilučių sumos su PVM.
PVM25 eilutės suma apima pirkėjo apskaičiuotą PVM. Neapmokestinamoje eilutėje suma sutampa su Bill.Item.Total.
['61.16', '7.19']Pagal eilutęBill.Item.TypearrayEilučių matavimo vienetai.
Tekstų masyvas, pvz. vnt. Tai nėra dokumento Bill.Type.
['vnt', 'vnt']Eilučių duomenysBill.Item.TaxarrayEilučių PVM procentai.
Nurodykite eilutės tarifą arba palikite tuščią dokumento tarifui taikyti. Neapmokestinamą eilutę pažymėkite lauke Bill.Item.NoTax.
['21', '']Pagal eilutęBill.Item.NoTaxarrayEilučių neapmokestinimo požymiai.
Perduokite 1 eilutei be PVM, o kitoms eilutėms 0.
[0, 1]Pagal eilutęBill.Item.TaxCodearrayEilučių PVM klasifikatorių kodai.
Perduokite kodą tame pačiame indekse kaip Bill.Item.Name, pvz. Bill[Item][TaxCode][1]=PVM5. Tuščia reikšmė palieka eilutę be atskiro kodo. Tarifą, neapmokestinimą ir sumas nurodykite atskiruose laukuose.
['PVM1', 'PVM5']Papildomas eilutės laukasBill.SettingsarrayDokumento nustatymai.
Asociatyvus masyvas. Visos sąskaitos atvirkštinio PVM parinktis perduodama POST lauku Bill[Settings][ReverseVAT].
['ReverseVAT' => '0']Pagal dokumentąBill.Settings.ReverseVATstringVisos sąskaitos atvirkštinio PVM parinktis.
1 įjungia parinktį visai sąskaitai, 0 ją išjungia. Mišriai PVM1 ir PVM25 sąskaitai perduokite 0, o eilučių kodus ir sumas nurodykite Bill.Item laukuose. API mokėtinos sumos pagal šį požymį neperskaičiuoja, todėl ją perduokite lauke Bill.TotalWithTax. Atnaujindami dokumentą parinktį perduokite iš naujo.
'0'Pagal dokumentąBill.TeststringIšsaugomo dokumento žyma.
Pavyzdyje '1'. Įrašo žyma nesustabdo dokumento išsaugojimo ir nėra užklausos imitacija.
'1'Žyma, ne imitacijaBill.IDintJau išsaugoto dokumento numeris.
Reikia get, update ir delete veiksmams; kuriant naują dokumentą nesiunčiamas.
123Pagal veiksmąPirkimo sąskaita su PVM1 ir PVM25
Pakeiskite pavyzdžio API raktą, veiklos ID, tiekėjo ID ir dokumento rekvizitus savo duomenimis.
$request = [ 'apiKey' => 'JUSU_API_RAKTAS', 'companyId' => 1, 'type' => 'bill', 'action' => 'create', 'Bill' => [ 'Type' => 'buy_with_tax', 'Customer' => ['ID' => 123], 'Prefix' => 'PVZ', 'Number' => '00000002', 'Date' => '2026-09-03', 'Currency' => 'EUR', 'TaxPercentage' => '21', 'TaxCode' => 'PVM1', 'Total' => '4517.08', 'TotalTax' => '948.57', 'TotalWithTax' => '5100.86', 'Settings' => ['ReverseVAT' => '0'], 'Item' => [ 'Name' => ['PVM1 prekių grupė', 'PVM25 prekių grupė'], 'Count' => [1, 1], 'Type' => ['vnt', 'vnt'], 'Price' => ['2779.99', '1737.09'], 'PriceWithTax' => ['3363.77', '2101.88'], 'Total' => ['2779.99', '1737.09'], 'TotalWithTax' => ['3363.77', '2101.88'], 'Tax' => ['21', '21'], 'TaxCode' => ['PVM1', 'PVM25'], 'NoTax' => [0, 0], ], ],]; $ch = curl_init('https://www.saskaitos.lt/api');curl_setopt_array($ch, [ CURLOPT_POST => true, CURLOPT_POSTFIELDS => http_build_query($request), CURLOPT_HTTPHEADER => ['Content-Type: application/x-www-form-urlencoded'], CURLOPT_RETURNTRANSFER => true,]);echo curl_exec($ch);Atvirkštinis PVM sudaro 364,79 EUR. PVM25 eilutėje perduokite Bill.Item.Total[1] = 1737.09 ir Bill.Item.TotalWithTax[1] = 2101.88. Šių sumų skirtumas yra į i.SAF eksportuojamas PVM. Tam pačiam indeksui perduokite TaxCode = PVM25, Tax = 21 ir NoTax = 0.
Tiekėjui mokėtiną 5 100,86 EUR sumą perduokite lauke Bill.TotalWithTax kaip 5100.86. Ją sudaro 4 517,08 EUR suma be PVM ir 583,78 EUR PVM1 eilutės PVM. Lauke Bill.TotalTax atskirai perduokite 948.57, abiejų eilučių PVM sumą. Bill.Settings.ReverseVAT = 0 išjungia visos sąskaitos atvirkštinio PVM parinktį.
Galimos action reikšmės
createSukurti dokumentąPerduokite kliento arba tiekėjo, numeracijos ir dokumento eilučių duomenis.
getGauti dokumentąNurodykite Bill.ID.
updateAtnaujinti dokumentąNurodykite Bill.ID ir visus išsaugomus dokumento duomenis, įskaitant Bill.Item.TaxCode reikšmes. Nepateikti laukai gali būti išvalyti, o eilutės pakeistos.
deleteIštrinti dokumentąNurodykite Bill.ID.
Dokumentų tipai: bill (sąskaita faktūra), pre (išankstinė), credit_bill (kreditinė), buy (pirkimo), buy_with_tax (pirkimo PVM sąskaita), offer (pasiūlymas), confirmation (užsakymo patvirtinimas), act_of_works (priėmimo–perdavimo aktas), act_of_done (darbų atlikimo aktas), template (šablonas).
Pardavimo dokumento seriją ir numerį gaukite Serijų skiltyje. Visų Bill.Item masyvų vienodi indeksai aprašo tą pačią eilutę; jų ilgiai turi sutapti. Kainos pateikiamos be PVM, su dešimtainiu tašku. Test laukas nėra užklausos imitacija.
Atsakyme eilučių kodai ir neapmokestinimo požymiai pateikiami Bill.Item.TaxCode ir Bill.Item.NoTax masyvuose. Sąrašo atsakyme šiuos laukus rasite kiekvieno Bills masyvo dokumento Item objekte.
Atsakyme Bill.Settings.ReverseVAT grąžinamas kaip skaičius 0 arba 1. Dokumento sumos pateikiamos Bill.Total, Bill.TotalTax ir Bill.TotalWithTax laukuose. Eilučių PriceWithTax, Total ir TotalWithTax API atsakyme atskirai negrąžinami, jų bazę ir PVM galima patikrinti i.SAF DocumentTotals grupėse.
Sąskaita klientui greičiau ir tvarkingiau
Prisijungę galite panaudoti įmonės rekvizitus, išsaugoti klientą ir išsiųsti dokumentą iš tos pačios vietos.