SDK Overview
Zyntem offers two SDK families, each designed for a different deployment model. Pick the one that matches your architecture -- you only need one.
Choose Your Deployment Mode
| Cloud API | Embedded Local | |
|---|---|---|
| How it works | Your POS calls api.zyntem.com over HTTPS | Your POS calls a native library in-process |
| Network required | Yes, on every transaction | Only for initial token provisioning and queued submission |
| Latency | ~100-300ms (network round-trip) | ~1-5ms (local function call) |
| Offline support | No | Yes -- transactions are signed locally and queued for submission |
| Best for | Web apps, cloud-native POS, SaaS platforms | Traditional POS (Windows/.NET, Linux), tablet POS (iPad, Android), kiosks |
| Integration effort | Low -- standard HTTP calls | Medium -- embed native library in your build |
Cloud API SDKs
Standard HTTP client libraries generated from our OpenAPI specification. Use these if your POS has reliable internet connectivity and you prefer a thin integration.
# JavaScript/TypeScript
npm install @zyntem/fiscalapi
# Python
pip install zyntem-fiscalapi
# Go
go get github.com/javipelopi-dev/fiscalapi-go
Usage is straightforward HTTP:
import { FiscalAPI } from '@zyntem/fiscalapi';
const client = new FiscalAPI({ apiKey: 'zyn_live_...' });
const result = await client.transactions.create({
location_id: 'loc_123',
type: 'sale',
currency: 'EUR',
items: [{ description: 'Coffee', quantity: 1, unit_price: 350, tax_rate: 2100 }]
});
Available for: JavaScript/TypeScript, Python, Go, PHP, Ruby, Java.
Embedded Local SDKs
Native libraries that run the fiscalization engine inside your application. Transactions are signed and hash-chained locally with full legal validity. A background queue forwards them to the tax authority within the regulatory window -- no real-time network dependency.
| Platform | Package | Install |
|---|---|---|
| Windows (.NET) | Zyntem.Fiscalization | dotnet add package Zyntem.Fiscalization |
| Android | com.zyntem.fiscalization | implementation("com.zyntem.fiscalization:fiscalization-sdk:1.0.0") |
| iOS/iPad | FiscalizationSDK | Swift Package Manager (binary target) |
| Web/Node.js | @zyntem/fiscal | npm install @zyntem/fiscal |
| Python | zyntem-fiscal | pip install zyntem-fiscal |
| C/C++/Go (via cgo) | Pre-built .so/.dylib | Download from GitHub Releases |
Usage is a single function call:
// C# (.NET)
using Zyntem.Fiscalization;
FiscalEngine.Init("fiscalization.yaml");
string result = FiscalEngine.ProcessTransaction(jsonInput);
// Kotlin (Android)
import com.zyntem.fiscalization.FiscalEngine
val result = FiscalEngine.processTransaction(jsonInput)
// Swift (iOS)
import FiscalizationSDK
let result = FiscalEngine.processTransaction(jsonInput)
How Embedded Local Works
- First boot: The library exchanges your API key for a signed token (one network call per merchant)
- Every transaction: Signed and hash-chained locally -- no network needed
- Background queue: Forwards fiscal records to the tax authority within the legal submission window
- Offline resilience: If the network is down, transactions continue. The queue drains when connectivity returns
Token and Billing
Both SDK families use the same API key (zyn_live_*) and the same account. Billing is based on unique merchant VAT IDs across all deployments -- cloud and embedded merchants are counted together. Your deployment topology doesn't affect pricing.
Which Should I Use?
Use Cloud API if:
- Your POS is a web application or cloud-hosted service
- You have reliable internet at every point of sale
- You want the simplest possible integration
Use Embedded Local if:
- Your POS runs on Windows, tablets, or kiosks
- You need offline transaction processing
- Network latency or reliability is a concern
- You want zero runtime dependencies beyond your application
You can use both. Some ISVs use the Cloud API for their web dashboard and Embedded Local for their on-premise POS installations. The same account and API keys work with both.