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
Saugumas: Saugokite savo slaptąjį raktą ir niekada neatskleiskite jo kliento pusės kode.
Bazinis URL

Jūsų aplinkos API bazinis URL:

http://www.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.

Pavyzdinė užklausa
GET /api/v1/documents?page=0&limit=50
Užklausos parametrai
  • 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)
Atsakymai
  • 200 Sėkmė: Grąžina puslapiuotą įkeltų dokumentų detalių sąrašą.
  • 401 Neautorizuota: Neteisingas arba trūkstamas API raktas.
import requests

url = "http://www.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://www.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://www.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://www.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.

Pavyzdinė užklausa
GET /api/v1/documents/abc123
Kelio parametrai
  • id: Dokumento ID (tekstas).
Atsakymai
  • 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://www.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://www.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://www.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://www.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.

Pavyzdinė užklausa
POST /api/v1/documents/queue/url
Užklausos body
{
  "url": "https://example.com/invoice.pdf",
  "externalId": "optional-external-id"
}
Užklausos parametrai
  • 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.
Atsakymai
  • 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.
Palaikomi failų tipai: PDF, JPG, JPEG, PNG, WEBP (Maks. dydis: 10MB)
import requests
import json

url = "http://www.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://www.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://www.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://www.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ą.

Pavyzdinė užklausa
POST /api/v1/documents/queue/base64
Užklausos body
{
  "data": "base64-encoded-file-content",
  "filename": "invoice.pdf",
  "externalId": "optional-external-id"
}
Užklausos parametrai
  • 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.
Atsakymai
  • 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.
Palaikomi failų tipai: PDF, JPG, JPEG, PNG, WEBP (Maks. dydis: 10MB)
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://www.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://www.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://www.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://www.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.