Skip to content
This is a new version of the Kivra Developer Docs. Report issues or share feedback at avsandare.support@kivra.se. The previous version can be found here.

Sale receipts

A sale receipt contains only sale items. Send it when a customer completes a purchase, so the receipt can appear in their Kivra inbox and remain available for later reference.

Option Purpose
business_unit Describes the store. Omit service_id to create or resolve it automatically.
receipt_identifier Supplies the POS receipt number
time_of_purchase and currency Describe when and in which currency the sale happened
items Contains objects with a sale key
totals and payments Represents net, VAT, gross, paid amount, and tender
customer Adds an SSN, email, phone, or card token for matching
{
"business_unit": {
"organization_number": "556838-8200",
"name": "Example Retail AB",
"external_id": "EXAMPLE-STORE-001",
"contact": {
"address": {
"street_address": "Example Street 1",
"locality": "Stockholm",
"postal_code": "11122",
"country_code": "SWE"
}
}
},
"sales_recording_system": {"id": "POS-1", "name": "Example POS"},
"receipt_identifier": {"sequence_number": 123456},
"time_of_purchase": "2026-09-01T10:30:00+02:00",
"currency": "SEK",
"totals": {
"gross": {"amount": 125},
"vat": {
"amount": 25,
"sub_totals": [{"amount": 25, "taxable_amount": 125, "net_amount": 100, "tax_percentage": 25}]
},
"paid": {"amount": 125, "received": 125, "returned": 0}
},
"items": [
{
"sale": {
"identifiers": [{"identifier_type": "pos", "value": "ITEM-001"}],
"description": "Example product",
"quantity": {"value": 1, "unit": "ea"},
"regular_sales_unit_price": 125,
"extended_amount": 125,
"tax_percentage": 25,
"tax_amount": 25,
"sequence_number": 1
}
}
],
"payments": [{"amount": 125, "amount_applied_to_bill": 125, "tender": {"cash": {}}}],
"customer": {"id": {"phone": "+46700000000"}}
}

The recipient sees the store, time of purchase, purchased items, discounts, VAT, total, and payment information. A customer identifier allows Kivra to associate that receipt with the recipient; otherwise the agreed retained or digital-waste-bin behaviour applies.

This example shows how the receipt renders on the website.

Sale receipt rendered in the Kivra app

Use the complete schema and the Send receipt API reference to add the required totals and payment data.