API integracija
Integruokite mūsų paslaugas į savo programas naudodami mūsų REST API.
Pradėti
Norėdami naudotis API, jums reikia slaptojo rakto. Savo slaptąjį raktą galite rasti paskyros nustatymuose prisijungę.
Autentifikacija
Visoms API užklausoms reikalingas autentifikavimas naudojant jūsų slaptąjį raktą. Įtraukite jį į Authorization antraštę:
Authorization: Bearer your_secret_key_here
Bazinis URL
Jūsų aplinkos API bazinis URL:
http://saskaitusuvedimas.lt/api/v1
Gauti dokumentų sąrašą
GET /api/v1/documents
GET metodas, kuris nuskaito įkeltų dokumentų detales iš saskaitusuvedimas.lt. Rezultatus galima filtruoti ir puslapiuoti naudojant specifinius užklausos parametrus.
GET /api/v1/documents?page=0&limit=50
-
status(neprivaloma): Būsenos filtravimo sąlygos:
- 0 - Laukiama
- 1 - Apdorojama
- 2 - Apdorota
- 3 - Nepavyko
-
externalId(neprivaloma): Filtruoti pagal išorinį ID -
page(neprivaloma): Puslapio numeris puslapiavimui (nuo 0, numatytasis: 0) -
limit(neprivaloma): Puslapio dydis (numatytasis: 50, maks. 100)
- 200 Sėkmė: Grąžina puslapiuotą įkeltų dokumentų detalių sąrašą.
- 401 Neautorizuota: Neteisingas arba trūkstamas API raktas.
import requests
url = "http://saskaitusuvedimas.lt/api/v1/documents"
querystring = {
"status": "2",
"page": "0",
"limit": "50"
}
# Note: externalId parameter is optional and can be omitted
headers = {
"Authorization": "Bearer your_secret_key_here"
}
response = requests.get(url, headers=headers, params=querystring)
response.raise_for_status()
print(response.json())
curl -X GET "http://saskaitusuvedimas.lt/api/v1/documents?status=2&page=0&limit=50" \
-H "Authorization: Bearer your_secret_key_here"
using System;
using System.Net.Http;
using System.Threading.Tasks;
public class Program
{
private static readonly HttpClient client = new HttpClient();
public static void Main(string[] args)
{
GetDocumentList().Wait();
}
private static async Task GetDocumentList()
{
try
{
client.DefaultRequestHeaders.Authorization =
new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", "your_secret_key_here");
var response = await client.GetAsync("http://saskaitusuvedimas.lt/api/v1/documents?status=2&page=0&limit=50");
response.EnsureSuccessStatusCode();
string responseBody = await response.Content.ReadAsStringAsync();
Console.WriteLine(responseBody);
}
catch (HttpRequestException e)
{
Console.WriteLine($"Error: {e.Message}");
}
}
}
// Node.js 18+ (built-in fetch)
// For older Node.js versions, install: npm install node-fetch
const url = 'http://saskaitusuvedimas.lt/api/v1/documents?status=2&page=0&limit=50';
const options = {
method: 'GET',
headers: {
'Authorization': 'Bearer your_secret_key_here'
}
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));
Gauti dokumento detales
GET /api/v1/documents/{id}
GET metodas, kuris nuskaito konkretaus dokumento detales iš saskaitusuvedimas.lt naudojant jo dokumento ID.
GET /api/v1/documents/abc123
-
id: Dokumento ID (tekstas).
- 200 Sėkmė: Grąžina prašomo dokumento detales.
- 404 Nerasta: Prašomas dokumentas nerastas.
- 401 Neautorizuota: Neteisingas arba trūkstamas API raktas.
import requests
document_id = "abc123"
url = "http://saskaitusuvedimas.lt/api/v1/documents/" + document_id
headers = {
"Authorization": "Bearer your_secret_key_here"
}
response = requests.get(url, headers=headers)
response.raise_for_status()
print(response.json())
curl -X GET "http://saskaitusuvedimas.lt/api/v1/documents/abc123" \
-H "Authorization: Bearer your_secret_key_here"
using System;
using System.Net.Http;
using System.Threading.Tasks;
class Program
{
private static readonly HttpClient client = new HttpClient();
static void Main(string[] args)
{
GetDocumentDetails("abc123").Wait();
}
private static async Task GetDocumentDetails(string id)
{
try
{
client.DefaultRequestHeaders.Authorization =
new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", "your_secret_key_here");
var response = await client.GetAsync("http://saskaitusuvedimas.lt/api/v1/documents/" + id);
response.EnsureSuccessStatusCode();
string responseBody = await response.Content.ReadAsStringAsync();
Console.WriteLine(responseBody);
}
catch (HttpRequestException e)
{
Console.WriteLine($"Error: {e.Message}");
}
}
}
// Node.js 18+ (built-in fetch)
// For older Node.js versions, install: npm install node-fetch
const documentId = 'abc123';
const url = `http://saskaitusuvedimas.lt/api/v1/documents/${documentId}`;
const options = {
method: 'GET',
headers: {
'Authorization': 'Bearer your_secret_key_here'
}
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));
Pateikti dokumentą apdorojimui naudojant išorinį URL
POST /api/v1/documents/queue/url
POST metodas, kuris pateikia dokumentą laukų ir lentelių apdorojimui naudojant išorinę nuorodą. Dokumentas bus atsisiųstas iš pateikto URL ir apdorotas.
POST /api/v1/documents/queue/url
{
"url": "https://example.com/invoice.pdf",
"externalId": "optional-external-id"
}
-
url(privaloma): Absoliutus dokumento URL, kurį reikia atsisiųsti ir apdoroti. Turi būti galiojantis HTTP/HTTPS URL. -
externalId(neprivaloma): Išorinis identifikatorius sekimo tikslais.
- 200 OK: Dokumentas sėkmingai pateiktas į eilę.
- 400 Bloga užklausa: Neteisingas URL arba užklausos formatas.
- 401 Neautorizuota: Neteisingas arba trūkstamas API raktas.
import requests
import json
url = "http://saskaitusuvedimas.lt/api/v1/documents/queue/url"
headers = {
"Authorization": "Bearer your_secret_key_here",
"Content-Type": "application/json"
}
payload = {
"url": "https://example.com/invoice.pdf",
"externalId": "optional-external-id"
}
response = requests.post(url, headers=headers, json=payload)
response.raise_for_status()
print(response.json())
curl -X POST "http://saskaitusuvedimas.lt/api/v1/documents/queue/url" \
-H "Authorization: Bearer your_secret_key_here" \
-H "Content-Type: application/json" \
-d '{
"url": "https://example.com/invoice.pdf",
"externalId": "optional-external-id"
}'
using System;
using System.Net.Http;
using System.Text;
using System.Text.Json;
using System.Threading.Tasks;
class Program
{
private static readonly HttpClient client = new HttpClient();
static void Main(string[] args)
{
EnqueueDocumentFromUrl().Wait();
}
private static async Task EnqueueDocumentFromUrl()
{
try
{
client.DefaultRequestHeaders.Authorization =
new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", "your_secret_key_here");
var payload = new
{
url = "https://example.com/invoice.pdf",
externalId = "optional-external-id"
};
var json = JsonSerializer.Serialize(payload);
var content = new StringContent(json, Encoding.UTF8, "application/json");
var response = await client.PostAsync("http://saskaitusuvedimas.lt/api/v1/documents/queue/url", content);
response.EnsureSuccessStatusCode();
string responseBody = await response.Content.ReadAsStringAsync();
Console.WriteLine(responseBody);
}
catch (HttpRequestException e)
{
Console.WriteLine($"Error: {e.Message}");
}
}
}
// Node.js 18+ (built-in fetch)
// For older Node.js versions, install: npm install node-fetch
const url = 'http://saskaitusuvedimas.lt/api/v1/documents/queue/url';
const options = {
method: 'POST',
headers: {
'Authorization': 'Bearer your_secret_key_here',
'Content-Type': 'application/json'
},
body: JSON.stringify({
url: 'https://example.com/invoice.pdf',
externalId: 'optional-external-id'
})
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));
Pateikti dokumentą apdorojimui naudojant base64 koduotę
POST /api/v1/documents/queue/base64
POST metodas, kuris pateikia dokumentą laukų ir lentelių apdorojimui naudojant base64 koduotą dvejetainę reprezentaciją. Dokumentas identifikuojamas pagal failo pavadinimą.
POST /api/v1/documents/queue/base64
{
"data": "base64-encoded-file-content",
"filename": "invoice.pdf",
"externalId": "optional-external-id"
}
-
data(privaloma): Base64 koduota dokumento dvejetainė reprezentacija. -
filename(neprivaloma): Failo identifikavimas (failo pavadinimas). Jei nepateikta, numatytoji reikšmė document.pdf. -
externalId(neprivaloma): Išorinis identifikatorius sekimo tikslais.
- 201 Sukurta: Dokumentas sėkmingai pateiktas apdorojimui.
- 400 Bloga užklausa: Neteisingi base64 duomenys arba failo tipas.
- 401 Neautorizuota: Neteisingas arba trūkstamas API raktas.
import requests
import base64
# Read file and encode to base64
with open('invoice.pdf', 'rb') as f:
file_data = base64.b64encode(f.read()).decode('utf-8')
url = "http://saskaitusuvedimas.lt/api/v1/documents/queue/base64"
headers = {
"Authorization": "Bearer your_secret_key_here",
"Content-Type": "application/json"
}
payload = {
"data": file_data,
"filename": "invoice.pdf",
"externalId": "optional-external-id"
}
response = requests.post(url, headers=headers, json=payload)
response.raise_for_status()
print(response.json())
# First, encode file to base64
# Linux/Mac:
BASE64_DATA=$(base64 invoice.pdf)
# Windows PowerShell:
# $BASE64_DATA = [Convert]::ToBase64String([IO.File]::ReadAllBytes("invoice.pdf"))
curl -X POST "http://saskaitusuvedimas.lt/api/v1/documents/queue/base64" \
-H "Authorization: Bearer your_secret_key_here" \
-H "Content-Type: application/json" \
-d "{
\"data\": \"$BASE64_DATA\",
\"filename\": \"invoice.pdf\",
\"externalId\": \"optional-external-id\"
}"
using System;
using System.IO;
using System.Net.Http;
using System.Text;
using System.Text.Json;
using System.Threading.Tasks;
class Program
{
private static readonly HttpClient client = new HttpClient();
static void Main(string[] args)
{
EnqueueDocumentFromBase64().Wait();
}
private static async Task EnqueueDocumentFromBase64()
{
try
{
client.DefaultRequestHeaders.Authorization =
new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", "your_secret_key_here");
// Read file and encode to base64
byte[] fileBytes = File.ReadAllBytes("invoice.pdf");
string base64Data = Convert.ToBase64String(fileBytes);
var payload = new
{
data = base64Data,
filename = "invoice.pdf",
externalId = "optional-external-id"
};
var json = JsonSerializer.Serialize(payload);
var content = new StringContent(json, Encoding.UTF8, "application/json");
var response = await client.PostAsync("http://saskaitusuvedimas.lt/api/v1/documents/queue/base64", content);
response.EnsureSuccessStatusCode();
string responseBody = await response.Content.ReadAsStringAsync();
Console.WriteLine(responseBody);
}
catch (HttpRequestException e)
{
Console.WriteLine($"Error: {e.Message}");
}
}
}
const fs = require('fs');
// Node.js 18+ (built-in fetch)
// For older Node.js versions, install: npm install node-fetch
// Read file and encode to base64
const fileBuffer = fs.readFileSync('invoice.pdf');
const base64Data = fileBuffer.toString('base64');
const url = 'http://saskaitusuvedimas.lt/api/v1/documents/queue/base64';
const options = {
method: 'POST',
headers: {
'Authorization': 'Bearer your_secret_key_here',
'Content-Type': 'application/json'
},
body: JSON.stringify({
data: base64Data,
filename: 'invoice.pdf',
externalId: 'optional-external-id'
})
};
fetch(url, options)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));
HTTP būsenos kodai
| Kodas | Aprašymas |
|---|---|
200 |
Sėkmė |
201 |
Sukurta (dokumentas sėkmingai įtrauktas į eilę) |
400 |
Bloga užklausa (neteisingi parametrai arba duomenys) |
401 |
Neautorizuota (neteisingas arba trūkstamas API raktas) |
404 |
Nerasta (dokumentas nerastas) |
500 |
Vidinė serverio klaida |
Klaidos atsakymo formatas
Įvykus klaidai, API grąžina JSON objektą su klaidos pranešimu:
{
"error": "Error message description"
}
Kiekvienas atsakymas pateikiamas su gauto JSON schema, kad būtų lengviau suprasti. Kiekvieno POST užklausos body dalyje turi būti nurodyti užklausos parametrai.