curl --request POST \
--url https://api.openfiskal.com/v1/operations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'Idempotency-Key: <idempotency-key>' \
--header 'X-OpenFiskal-Merchant: <x-openfiskal-merchant>' \
--data '
{
"source": "POS",
"currency": "USD",
"pretax_amount": "9.00",
"tax_amount": "0.95",
"tip_amount": "0.00",
"total_amount": "9.95",
"line_items": [
{
"title": "Café Latte",
"quantity": 2,
"unit_price": "4.50",
"total_amount": "9.00",
"sku_identifier": "TSHIRT-BLUE-M",
"taxes": [
{
"name": "State SUT",
"rate": "0.105",
"tax_amount": "1.58"
}
],
"type": "item",
"gift_card_id": "gc_abc123"
}
],
"type": "sale",
"register_id": "reg_abc123",
"external_id": "order-12345",
"note": "Customer requested extra napkins",
"cart_level_discounts": [
{
"amount": "5.00",
"description": "WELCOME10"
}
]
}
'import requests
url = "https://api.openfiskal.com/v1/operations"
payload = {
"source": "POS",
"currency": "USD",
"pretax_amount": "9.00",
"tax_amount": "0.95",
"tip_amount": "0.00",
"total_amount": "9.95",
"line_items": [
{
"title": "Café Latte",
"quantity": 2,
"unit_price": "4.50",
"total_amount": "9.00",
"sku_identifier": "TSHIRT-BLUE-M",
"taxes": [
{
"name": "State SUT",
"rate": "0.105",
"tax_amount": "1.58"
}
],
"type": "item",
"gift_card_id": "gc_abc123"
}
],
"type": "sale",
"register_id": "reg_abc123",
"external_id": "order-12345",
"note": "Customer requested extra napkins",
"cart_level_discounts": [
{
"amount": "5.00",
"description": "WELCOME10"
}
]
}
headers = {
"X-OpenFiskal-Merchant": "<x-openfiskal-merchant>",
"Idempotency-Key": "<idempotency-key>",
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'X-OpenFiskal-Merchant': '<x-openfiskal-merchant>',
'Idempotency-Key': '<idempotency-key>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
source: 'POS',
currency: 'USD',
pretax_amount: '9.00',
tax_amount: '0.95',
tip_amount: '0.00',
total_amount: '9.95',
line_items: [
{
title: 'Café Latte',
quantity: 2,
unit_price: '4.50',
total_amount: '9.00',
sku_identifier: 'TSHIRT-BLUE-M',
taxes: [{name: 'State SUT', rate: '0.105', tax_amount: '1.58'}],
type: 'item',
gift_card_id: 'gc_abc123'
}
],
type: 'sale',
register_id: 'reg_abc123',
external_id: 'order-12345',
note: 'Customer requested extra napkins',
cart_level_discounts: [{amount: '5.00', description: 'WELCOME10'}]
})
};
fetch('https://api.openfiskal.com/v1/operations', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.openfiskal.com/v1/operations",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'source' => 'POS',
'currency' => 'USD',
'pretax_amount' => '9.00',
'tax_amount' => '0.95',
'tip_amount' => '0.00',
'total_amount' => '9.95',
'line_items' => [
[
'title' => 'Café Latte',
'quantity' => 2,
'unit_price' => '4.50',
'total_amount' => '9.00',
'sku_identifier' => 'TSHIRT-BLUE-M',
'taxes' => [
[
'name' => 'State SUT',
'rate' => '0.105',
'tax_amount' => '1.58'
]
],
'type' => 'item',
'gift_card_id' => 'gc_abc123'
]
],
'type' => 'sale',
'register_id' => 'reg_abc123',
'external_id' => 'order-12345',
'note' => 'Customer requested extra napkins',
'cart_level_discounts' => [
[
'amount' => '5.00',
'description' => 'WELCOME10'
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json",
"Idempotency-Key: <idempotency-key>",
"X-OpenFiskal-Merchant: <x-openfiskal-merchant>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.openfiskal.com/v1/operations"
payload := strings.NewReader("{\n \"source\": \"POS\",\n \"currency\": \"USD\",\n \"pretax_amount\": \"9.00\",\n \"tax_amount\": \"0.95\",\n \"tip_amount\": \"0.00\",\n \"total_amount\": \"9.95\",\n \"line_items\": [\n {\n \"title\": \"Café Latte\",\n \"quantity\": 2,\n \"unit_price\": \"4.50\",\n \"total_amount\": \"9.00\",\n \"sku_identifier\": \"TSHIRT-BLUE-M\",\n \"taxes\": [\n {\n \"name\": \"State SUT\",\n \"rate\": \"0.105\",\n \"tax_amount\": \"1.58\"\n }\n ],\n \"type\": \"item\",\n \"gift_card_id\": \"gc_abc123\"\n }\n ],\n \"type\": \"sale\",\n \"register_id\": \"reg_abc123\",\n \"external_id\": \"order-12345\",\n \"note\": \"Customer requested extra napkins\",\n \"cart_level_discounts\": [\n {\n \"amount\": \"5.00\",\n \"description\": \"WELCOME10\"\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-OpenFiskal-Merchant", "<x-openfiskal-merchant>")
req.Header.Add("Idempotency-Key", "<idempotency-key>")
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.openfiskal.com/v1/operations")
.header("X-OpenFiskal-Merchant", "<x-openfiskal-merchant>")
.header("Idempotency-Key", "<idempotency-key>")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"source\": \"POS\",\n \"currency\": \"USD\",\n \"pretax_amount\": \"9.00\",\n \"tax_amount\": \"0.95\",\n \"tip_amount\": \"0.00\",\n \"total_amount\": \"9.95\",\n \"line_items\": [\n {\n \"title\": \"Café Latte\",\n \"quantity\": 2,\n \"unit_price\": \"4.50\",\n \"total_amount\": \"9.00\",\n \"sku_identifier\": \"TSHIRT-BLUE-M\",\n \"taxes\": [\n {\n \"name\": \"State SUT\",\n \"rate\": \"0.105\",\n \"tax_amount\": \"1.58\"\n }\n ],\n \"type\": \"item\",\n \"gift_card_id\": \"gc_abc123\"\n }\n ],\n \"type\": \"sale\",\n \"register_id\": \"reg_abc123\",\n \"external_id\": \"order-12345\",\n \"note\": \"Customer requested extra napkins\",\n \"cart_level_discounts\": [\n {\n \"amount\": \"5.00\",\n \"description\": \"WELCOME10\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.openfiskal.com/v1/operations")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-OpenFiskal-Merchant"] = '<x-openfiskal-merchant>'
request["Idempotency-Key"] = '<idempotency-key>'
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"source\": \"POS\",\n \"currency\": \"USD\",\n \"pretax_amount\": \"9.00\",\n \"tax_amount\": \"0.95\",\n \"tip_amount\": \"0.00\",\n \"total_amount\": \"9.95\",\n \"line_items\": [\n {\n \"title\": \"Café Latte\",\n \"quantity\": 2,\n \"unit_price\": \"4.50\",\n \"total_amount\": \"9.00\",\n \"sku_identifier\": \"TSHIRT-BLUE-M\",\n \"taxes\": [\n {\n \"name\": \"State SUT\",\n \"rate\": \"0.105\",\n \"tax_amount\": \"1.58\"\n }\n ],\n \"type\": \"item\",\n \"gift_card_id\": \"gc_abc123\"\n }\n ],\n \"type\": \"sale\",\n \"register_id\": \"reg_abc123\",\n \"external_id\": \"order-12345\",\n \"note\": \"Customer requested extra napkins\",\n \"cart_level_discounts\": [\n {\n \"amount\": \"5.00\",\n \"description\": \"WELCOME10\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"merchant_id": "<string>",
"source": "POS",
"status": "open",
"currency": "EUR",
"resource_version": 123,
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"pretax_amount": "<string>",
"tax_amount": "<string>",
"tip_amount": "<string>",
"total_amount": "<string>",
"line_items": [
{
"id": "<string>",
"type": "item",
"title": "<string>",
"quantity": 123,
"unit_price": "<string>",
"total_amount": "<string>",
"sku_identifier": "TSHIRT-BLUE-M",
"taxes": [
{
"id": "<string>",
"name": "<string>",
"rate": "<string>",
"tax_amount": "<string>"
}
],
"gift_card_id": "<string>"
}
],
"payments": [
{
"id": "<string>",
"payment_id": "<string>",
"method": "<string>",
"amount": "<string>",
"currency": "<string>",
"status": "captured",
"processor": "<string>",
"card_brand": "<string>",
"processor_reference": "<string>",
"processed_at": "2023-11-07T05:31:56Z",
"gift_card_id": "<string>"
}
],
"type": "sale",
"cart_level_discounts": [
{
"id": "<string>",
"amount": "<string>",
"description": "<string>"
}
],
"location_id": "<string>",
"register_id": "<string>",
"session_id": "<string>",
"external_id": "<string>",
"fiscal_information": {
"regime": "KassenSichV",
"document_number": "<string>",
"document_type": "<string>",
"tss_serial_number": "<string>",
"pos_client_serial_number": "<string>",
"signature_algorithm": "<string>",
"time_format": "<string>",
"start_event": {
"signed_at": "2023-11-07T05:31:56Z"
},
"end_event": {
"signed_at": "2023-11-07T05:31:56Z",
"transaction_counter": 123,
"signature": "<string>",
"public_key": "<string>",
"process_type": "<string>",
"process_data": "<string>"
},
"verification": {
"qr_data": "<string>"
}
},
"completed_at": "2023-11-07T05:31:56Z",
"voided_at": "2023-11-07T05:31:56Z",
"void_reason": "<string>",
"note": "<string>"
}{
"code": "invalid_request",
"message": "The request body is malformed.",
"retryable": false
}{
"code": "unauthorized",
"message": "Authentication failed.",
"retryable": false
}{
"code": "forbidden",
"message": "The authenticated caller cannot access this resource.",
"retryable": false
}{
"code": "idempotency_key_conflict",
"message": "The idempotency key was already used with a different payload.",
"retryable": false
}{
"code": "regime_validation_failed",
"message": "The payload violates regime-specific validation rules.",
"retryable": false
}{
"code": "rate_limit_exceeded",
"message": "Too many requests.",
"retryable": true
}Create operation
Starts a new operation. The body is a discriminated union on type: goods movement (sale / return / exchange) or session lifecycle (session_open / session_cash_adjustment / session_cash_count / session_close).
curl --request POST \
--url https://api.openfiskal.com/v1/operations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'Idempotency-Key: <idempotency-key>' \
--header 'X-OpenFiskal-Merchant: <x-openfiskal-merchant>' \
--data '
{
"source": "POS",
"currency": "USD",
"pretax_amount": "9.00",
"tax_amount": "0.95",
"tip_amount": "0.00",
"total_amount": "9.95",
"line_items": [
{
"title": "Café Latte",
"quantity": 2,
"unit_price": "4.50",
"total_amount": "9.00",
"sku_identifier": "TSHIRT-BLUE-M",
"taxes": [
{
"name": "State SUT",
"rate": "0.105",
"tax_amount": "1.58"
}
],
"type": "item",
"gift_card_id": "gc_abc123"
}
],
"type": "sale",
"register_id": "reg_abc123",
"external_id": "order-12345",
"note": "Customer requested extra napkins",
"cart_level_discounts": [
{
"amount": "5.00",
"description": "WELCOME10"
}
]
}
'import requests
url = "https://api.openfiskal.com/v1/operations"
payload = {
"source": "POS",
"currency": "USD",
"pretax_amount": "9.00",
"tax_amount": "0.95",
"tip_amount": "0.00",
"total_amount": "9.95",
"line_items": [
{
"title": "Café Latte",
"quantity": 2,
"unit_price": "4.50",
"total_amount": "9.00",
"sku_identifier": "TSHIRT-BLUE-M",
"taxes": [
{
"name": "State SUT",
"rate": "0.105",
"tax_amount": "1.58"
}
],
"type": "item",
"gift_card_id": "gc_abc123"
}
],
"type": "sale",
"register_id": "reg_abc123",
"external_id": "order-12345",
"note": "Customer requested extra napkins",
"cart_level_discounts": [
{
"amount": "5.00",
"description": "WELCOME10"
}
]
}
headers = {
"X-OpenFiskal-Merchant": "<x-openfiskal-merchant>",
"Idempotency-Key": "<idempotency-key>",
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'X-OpenFiskal-Merchant': '<x-openfiskal-merchant>',
'Idempotency-Key': '<idempotency-key>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
source: 'POS',
currency: 'USD',
pretax_amount: '9.00',
tax_amount: '0.95',
tip_amount: '0.00',
total_amount: '9.95',
line_items: [
{
title: 'Café Latte',
quantity: 2,
unit_price: '4.50',
total_amount: '9.00',
sku_identifier: 'TSHIRT-BLUE-M',
taxes: [{name: 'State SUT', rate: '0.105', tax_amount: '1.58'}],
type: 'item',
gift_card_id: 'gc_abc123'
}
],
type: 'sale',
register_id: 'reg_abc123',
external_id: 'order-12345',
note: 'Customer requested extra napkins',
cart_level_discounts: [{amount: '5.00', description: 'WELCOME10'}]
})
};
fetch('https://api.openfiskal.com/v1/operations', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.openfiskal.com/v1/operations",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'source' => 'POS',
'currency' => 'USD',
'pretax_amount' => '9.00',
'tax_amount' => '0.95',
'tip_amount' => '0.00',
'total_amount' => '9.95',
'line_items' => [
[
'title' => 'Café Latte',
'quantity' => 2,
'unit_price' => '4.50',
'total_amount' => '9.00',
'sku_identifier' => 'TSHIRT-BLUE-M',
'taxes' => [
[
'name' => 'State SUT',
'rate' => '0.105',
'tax_amount' => '1.58'
]
],
'type' => 'item',
'gift_card_id' => 'gc_abc123'
]
],
'type' => 'sale',
'register_id' => 'reg_abc123',
'external_id' => 'order-12345',
'note' => 'Customer requested extra napkins',
'cart_level_discounts' => [
[
'amount' => '5.00',
'description' => 'WELCOME10'
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json",
"Idempotency-Key: <idempotency-key>",
"X-OpenFiskal-Merchant: <x-openfiskal-merchant>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.openfiskal.com/v1/operations"
payload := strings.NewReader("{\n \"source\": \"POS\",\n \"currency\": \"USD\",\n \"pretax_amount\": \"9.00\",\n \"tax_amount\": \"0.95\",\n \"tip_amount\": \"0.00\",\n \"total_amount\": \"9.95\",\n \"line_items\": [\n {\n \"title\": \"Café Latte\",\n \"quantity\": 2,\n \"unit_price\": \"4.50\",\n \"total_amount\": \"9.00\",\n \"sku_identifier\": \"TSHIRT-BLUE-M\",\n \"taxes\": [\n {\n \"name\": \"State SUT\",\n \"rate\": \"0.105\",\n \"tax_amount\": \"1.58\"\n }\n ],\n \"type\": \"item\",\n \"gift_card_id\": \"gc_abc123\"\n }\n ],\n \"type\": \"sale\",\n \"register_id\": \"reg_abc123\",\n \"external_id\": \"order-12345\",\n \"note\": \"Customer requested extra napkins\",\n \"cart_level_discounts\": [\n {\n \"amount\": \"5.00\",\n \"description\": \"WELCOME10\"\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-OpenFiskal-Merchant", "<x-openfiskal-merchant>")
req.Header.Add("Idempotency-Key", "<idempotency-key>")
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.openfiskal.com/v1/operations")
.header("X-OpenFiskal-Merchant", "<x-openfiskal-merchant>")
.header("Idempotency-Key", "<idempotency-key>")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"source\": \"POS\",\n \"currency\": \"USD\",\n \"pretax_amount\": \"9.00\",\n \"tax_amount\": \"0.95\",\n \"tip_amount\": \"0.00\",\n \"total_amount\": \"9.95\",\n \"line_items\": [\n {\n \"title\": \"Café Latte\",\n \"quantity\": 2,\n \"unit_price\": \"4.50\",\n \"total_amount\": \"9.00\",\n \"sku_identifier\": \"TSHIRT-BLUE-M\",\n \"taxes\": [\n {\n \"name\": \"State SUT\",\n \"rate\": \"0.105\",\n \"tax_amount\": \"1.58\"\n }\n ],\n \"type\": \"item\",\n \"gift_card_id\": \"gc_abc123\"\n }\n ],\n \"type\": \"sale\",\n \"register_id\": \"reg_abc123\",\n \"external_id\": \"order-12345\",\n \"note\": \"Customer requested extra napkins\",\n \"cart_level_discounts\": [\n {\n \"amount\": \"5.00\",\n \"description\": \"WELCOME10\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.openfiskal.com/v1/operations")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-OpenFiskal-Merchant"] = '<x-openfiskal-merchant>'
request["Idempotency-Key"] = '<idempotency-key>'
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"source\": \"POS\",\n \"currency\": \"USD\",\n \"pretax_amount\": \"9.00\",\n \"tax_amount\": \"0.95\",\n \"tip_amount\": \"0.00\",\n \"total_amount\": \"9.95\",\n \"line_items\": [\n {\n \"title\": \"Café Latte\",\n \"quantity\": 2,\n \"unit_price\": \"4.50\",\n \"total_amount\": \"9.00\",\n \"sku_identifier\": \"TSHIRT-BLUE-M\",\n \"taxes\": [\n {\n \"name\": \"State SUT\",\n \"rate\": \"0.105\",\n \"tax_amount\": \"1.58\"\n }\n ],\n \"type\": \"item\",\n \"gift_card_id\": \"gc_abc123\"\n }\n ],\n \"type\": \"sale\",\n \"register_id\": \"reg_abc123\",\n \"external_id\": \"order-12345\",\n \"note\": \"Customer requested extra napkins\",\n \"cart_level_discounts\": [\n {\n \"amount\": \"5.00\",\n \"description\": \"WELCOME10\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"merchant_id": "<string>",
"source": "POS",
"status": "open",
"currency": "EUR",
"resource_version": 123,
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"pretax_amount": "<string>",
"tax_amount": "<string>",
"tip_amount": "<string>",
"total_amount": "<string>",
"line_items": [
{
"id": "<string>",
"type": "item",
"title": "<string>",
"quantity": 123,
"unit_price": "<string>",
"total_amount": "<string>",
"sku_identifier": "TSHIRT-BLUE-M",
"taxes": [
{
"id": "<string>",
"name": "<string>",
"rate": "<string>",
"tax_amount": "<string>"
}
],
"gift_card_id": "<string>"
}
],
"payments": [
{
"id": "<string>",
"payment_id": "<string>",
"method": "<string>",
"amount": "<string>",
"currency": "<string>",
"status": "captured",
"processor": "<string>",
"card_brand": "<string>",
"processor_reference": "<string>",
"processed_at": "2023-11-07T05:31:56Z",
"gift_card_id": "<string>"
}
],
"type": "sale",
"cart_level_discounts": [
{
"id": "<string>",
"amount": "<string>",
"description": "<string>"
}
],
"location_id": "<string>",
"register_id": "<string>",
"session_id": "<string>",
"external_id": "<string>",
"fiscal_information": {
"regime": "KassenSichV",
"document_number": "<string>",
"document_type": "<string>",
"tss_serial_number": "<string>",
"pos_client_serial_number": "<string>",
"signature_algorithm": "<string>",
"time_format": "<string>",
"start_event": {
"signed_at": "2023-11-07T05:31:56Z"
},
"end_event": {
"signed_at": "2023-11-07T05:31:56Z",
"transaction_counter": 123,
"signature": "<string>",
"public_key": "<string>",
"process_type": "<string>",
"process_data": "<string>"
},
"verification": {
"qr_data": "<string>"
}
},
"completed_at": "2023-11-07T05:31:56Z",
"voided_at": "2023-11-07T05:31:56Z",
"void_reason": "<string>",
"note": "<string>"
}{
"code": "invalid_request",
"message": "The request body is malformed.",
"retryable": false
}{
"code": "unauthorized",
"message": "Authentication failed.",
"retryable": false
}{
"code": "forbidden",
"message": "The authenticated caller cannot access this resource.",
"retryable": false
}{
"code": "idempotency_key_conflict",
"message": "The idempotency key was already used with a different payload.",
"retryable": false
}{
"code": "regime_validation_failed",
"message": "The payload violates regime-specific validation rules.",
"retryable": false
}{
"code": "rate_limit_exceeded",
"message": "Too many requests.",
"retryable": true
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Headers
Merchant identifier returned by the merchants resource.
Unique key per endpoint, merchant, and tenant. Retained for at least 24 hours.
Body
Discriminated request body. The type field selects the variant.
- SaleOperation
- ReturnOperation
- ExchangeOperation
- SessionOpenOperation
- SessionCashAdjustmentOperation
- SessionCashCountOperation
- SessionCloseOperation
POS, ONLINE "POS"
ISO 4217 currency code
"USD"
Total before taxes
"9.00"
Total tax amount
"0.95"
Tip amount
"0.00"
Total amount (pretax + tax + tip)
"9.95"
Show child attributes
Show child attributes
sale "sale"
Required for POS, must be null for ONLINE.
"reg_abc123"
Merchant or POS identifier for the upstream order.
"order-12345"
"Customer requested extra napkins"
Cart-level (order-level) discounts applied across the SALE, not apportioned onto specific line items. Each entry surfaces as a separate Rabatt business case in DSFinV-K. Line-item totals must already reflect their post-discount values.
Show child attributes
Show child attributes
Response
Operation created
- SaleOperation
- ReturnOperation
- ExchangeOperation
- SessionOpenOperation
- SessionCashAdjustmentOperation
- SessionCashCountOperation
- SessionCloseOperation
POS, ONLINE open, completed, voided ISO 4217 currency code.
"EUR"
Current server-issued version for the operation, starting at 1. Returned as ETag header.
Show child attributes
Show child attributes
Show child attributes
Show child attributes
sale "sale"
Cart-level (order-level) discounts applied across the SALE. Empty array when none. Surfaced separately from line items so consumers do not need to back-derive from totals.
Show child attributes
Show child attributes
Only set for source: POS.
Only set for source: POS.
The RegisterSession this Operation is bound to. Set on every POS Operation; null for ONLINE goods-movement (no register, hence no session). On session-event variants this is the session being opened, adjusted, or closed; on goods-movement variants it is the session the operation was rung up during.
Merchant or POS identifier for the upstream order.
The Fiskaly signature attached to this Operation, when one exists. Null until the operation has been signed.
- FiscalInformationKassenSichV
- FiscalInformationRKSV
- FiscalInformationRT
Show child attributes
Show child attributes
Merchant free-text note for the goods-movement event.
Was this page helpful?