Fiskaliza
Referenca e API-sëPikat e shitjes

Register a point of sale

Requires ALL POS access. Business and fiscal identifiers are assigned by the service. An identical idempotency key and body replay the POS; a changed body returns idempotency_conflict. Concurrent onboarding under the same key returns request_in_progress while its two-minute lease is active.

POST/v1/pos

Requires ALL POS access. Business and fiscal identifiers are assigned by the service. An identical idempotency key and body replay the POS; a changed body returns idempotency_conflict. Concurrent onboarding under the same key returns request_in_progress while its two-minute lease is active.

Authorization

fiskalizaKey fiskaliza:pos:manage
AuthorizationBearer <token>

An opaque Fiskaliza API key. Each operation lists the capabilities required on that key.

In: header

Scope: fiskaliza:pos:manage

Header Parameters

Idempotency-Key*string

Reuse with the same request to replay the result. Changed input returns idempotency_conflict. Scoped to the business for POS onboarding and receipt documents, and to the POS for commands. Command creation also deduplicates by external_id within that POS; a matching request replays the existing command even with a different idempotency key.

Length1 <= length

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

branch_id is the taxpayer's unit number as registered with ATK. It prints on every coupon as the unit number and is signed into the SEF identifier, so it must be the registered value; ATK checks it against fiscalization_no while the point of sale is being onboarded, and an unregistered pairing fails onboarding. pos_id numbers the till within that unit and defaults to the next unused number for the unit. A unit and till already onboarded for this taxpayer returns 409 resource_conflict.

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://example.com/v1/pos" \  -H "Idempotency-Key: string" \  -H "Content-Type: application/json" \  -d '{    "fiscalization_no": "601234567",    "branch_id": 1,    "vat_number": "330123456",    "address": {      "line_1": "Bulevardi Nene Tereza 1",      "city": "Prishtina",      "country": "XK",      "phone": "+383 38 123 456"    },    "timezone": "Europe/Belgrade",    "default_operator": {      "name": "Ana"    }  }'
{  "success": true,  "warnings": [    "string"  ],  "data": {    "pos": {      "id": "string",      "legal_name": "string",      "vat_number": "string",      "operating_profile": "GENERAL_RETAIL",      "address": {        "line_1": "string",        "line_2": "string",        "city": "string",        "region": "string",        "postal_code": "string",        "country": "st",        "phone": "string"      },      "timezone": "Europe/Belgrade",      "default_operator": {        "name": "string"      },      "free_text": "string",      "certificate_not_before": "2019-08-24T14:15:22Z",      "certificate_not_after": "2019-08-24T14:15:22Z",      "certificate_fingerprint": "string",      "status": "string"    }  }}