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.

Content Introduction

The Tenant API content endpoint (POST /v2/tenant/{tenantKey}/content) delivers digital content from a sender to a recipient in Kivra, either a private person or a company. Every request identifies the recipient, includes a subject, and sets a type.

The type is the most important choice you make when sending content. It determines how Kivra presents the content in the recipient’s inbox, which notifications and reminders are sent, and which actions the recipient can take, such as paying an invoice, signing a document or booking an appointment. Each type also has its own metadata requirements.

Use the guides to choose the right content type and to provide the metadata needed for the content you want to create.

Content type API values Guide
Invoices invoice, invoice.* Invoices
Letters letter, letter.* Letters
Salary slips salaryslip Salary slips
Invites invite.* Invites
Booking or appointment booking Bookings

The types above only need a single request to the content endpoint. The content types below require setup or follow-up calls.

Content type API value Guide
Form letter.form Forms
Registered letter registered.letter Registered letters
Event ticket ticket.event Tickets

Send a POST request to /v2/tenant/{tenantKey}/content. At minimum, every request needs one valid recipient identifier (vat_number, ssn, or email), a subject, and a type.

Field Purpose
ssn, email, or vat_number Identifies the person or company recipient
subject Inbox title; keep it short and never include personal or sensitive information
type Selects the content experience; letter is the default for non-payable content
parts Includes one or more Base64-encoded document parts
generated_at Optional generation timestamp for accurate inbox sorting
retain and retention_time Holds supported content for an inactive recipient
Type-specific object Supplies metadata such as payment_multiple_options, salaryslip, or invite
{
"ssn": "YYYYMMDDNNNN",
"subject": "Your monthly statement",
"type": "letter",
"parts": [
{
"name": "statement.pdf",
"content_type": "application/pdf",
"data": "BASE64_ENCODED_PDF"
}
]
}

See Request limits for content, rate, and payload limits, Retained content for delivery to recipients who have not yet registered, Duplicate control for safe retries, and Responsive content for mobile-friendly document presentation.

See the Send content API reference for the complete request schema, validation rules, and current list of supported values.