API Reference
This page lists every endpoint available to a Personal API Token — auto-generated from the backend's route definitions, so it always matches what's actually deployed. Every request must carry both required headers:
Authorization: Bearer smv_live_...
x-api-key: <your API key>
See API Access for how to generate a token, and for rate limits and quotas.
Response bodies are not yet documented here — every endpoint below shows the request shape (if any); the shape of a successful response isn't part of this generated reference yet. A standalone PDF of this page is also available.
API Tokens
GET /v1/api-tokens
No request body.
POST /v1/api-tokens
| Field | Type | Required |
|---|---|---|
name | string | Yes |
expiresAt | string | No |
DELETE /v1/api-tokens/{tokenId}
No request body.
Account
GET /v1/account/addresses
No request body.
PUT /v1/account/addresses
| Field | Type | Required |
|---|---|---|
version | integer | Yes |
addresses | array of object (AddressSchema) | Yes |
PATCH /v1/account/addresses
| Field | Type | Required |
|---|---|---|
version | integer | Yes |
budgetsSuppressed | boolean | No |
reminderEmail | string | No |
allowContractReminderOverride | boolean | No |
dashboardWidgets | array of object (DashboardWidgetSettingsSchema) | No |
dateFormat | DD.MM.YYYY | DD/MM/YYYY |
numberFormat | 1.234,56 | 1,234.56 |
currency | EUR | GBP |
incomingPaymentTerm | SOLL | HABEN |
Audit Trail
GET /v1/audit-events
No request body.
Authentication
POST /v1/auth/confirm
No request body.
POST /v1/auth/forgot-password
No request body.
POST /v1/auth/login
No request body.
POST /v1/auth/logout
No request body.
POST /v1/auth/refresh
No request body.
POST /v1/auth/register
No request body.
POST /v1/auth/reset-password
No request body.
Bank Statement Imports
POST /v1/bank-statement-imports
| Field | Type | Required |
|---|---|---|
fileId | string | Yes |
key | string | Yes |
fileName | string | No |
periodFrom | string | Yes |
periodTo | string | Yes |
autoApprove | boolean | No |
GET /v1/bank-statement-imports/active
No request body.
DELETE /v1/bank-statement-imports/{importId}
No request body.
POST /v1/bank-statement-imports/{importId}/finalize
| Field | Type | Required |
|---|---|---|
version | integer | Yes |
PATCH /v1/bank-statement-imports/{importId}/transactions/{index}
| Field | Type | Required |
|---|---|---|
version | integer | Yes |
decision | ACCEPTED | REJECTED |
Billing
GET /v1/account/billing
No request body.
PUT /v1/account/billing/bank-account
| Field | Type | Required |
|---|---|---|
card | object (CardSchema) | Yes |
billingMethod | string | Yes |
version | integer | Yes |
PUT /v1/account/billing/card
| Field | Type | Required |
|---|---|---|
card | object (CardSchema) | Yes |
billingMethod | string | Yes |
version | integer | Yes |
Budget Categories
GET /v1/budget-categories
No request body.
POST /v1/budget-categories
| Field | Type | Required |
|---|---|---|
name | string | Yes |
monthlyLimit | number | Yes |
currency | string | Yes |
keywords | array of string | Yes |
active | boolean | Yes |
PATCH /v1/budget-categories/{categoryId}
| Field | Type | Required |
|---|---|---|
version | integer | Yes |
name | string | No |
monthlyLimit | number | No |
currency | string | No |
keywords | array of string | No |
active | boolean | No |
DELETE /v1/budget-categories/{categoryId}
No request body.
Budget Entries
GET /v1/budget-entries
No request body.
POST /v1/budget-entries
| Field | Type | Required |
|---|---|---|
categoryId | string | Yes |
categoryName | string | No |
amount | number | Yes |
currency | string | Yes |
entryDate | string | Yes |
documentId | string | No |
vendorName | string | No |
DELETE /v1/budget-entries/{entryId}
No request body.
Contracts
GET /v1/contracts
No request body.
POST /v1/contracts
| Field | Type | Required |
|---|---|---|
name | string | Yes |
partnerId | string | Yes |
partnerName | string | Yes |
partnerType | CUSTOMER | VENDOR |
startDate | string | Yes |
totalValue | number | Yes |
currency | string | Yes |
status | DRAFT | ACTIVE |
endDate | string | No |
description | string | No |
tags | array of string | No |
advanced | object (ContractAdvanced) | No |
GET /v1/contracts/{contractId}
No request body.
PUT /v1/contracts/{contractId}
| Field | Type | Required |
|---|---|---|
version | integer | Yes |
name | string | No |
partnerId | string | No |
partnerName | string | No |
partnerType | CUSTOMER | VENDOR |
status | DRAFT | ACTIVE |
startDate | string | No |
endDate | string | No |
totalValue | number | No |
currency | string | No |
description | string | No |
tags | array of string | No |
advanced | object (ContractAdvanced) | No |
DELETE /v1/contracts/{contractId}
No request body.
Dashboard
GET /v1/dashboard/cash-anchor
No request body.
PUT /v1/dashboard/cash-anchor
| Field | Type | Required |
|---|---|---|
openingBalance | number | Yes |
effectiveDate | string | Yes |
GET /v1/dashboard/stats
No request body.
GET /v1/dashboard/timeseries
No request body.
Document Rasterization
POST /v1/documents/rasterize
No request body.
Document Templates
GET /v1/document-templates
No request body.
POST /v1/document-templates
| Field | Type | Required |
|---|---|---|
name | string | Yes |
documentType | LETTER | OFFER |
contentSource | string | Yes |
fields | array of object (TemplateField) | No |
headerSource | string | No |
headerVisibility | ALL_PAGES | FIRST_PAGE_ONLY |
footerSource | string | No |
footerVisibility | ALL_PAGES | FIRST_PAGE_ONLY |
showLogo | boolean | No |
logoPosition | TOP_LEFT | TOP_RIGHT |
status | DRAFT | PUBLISHED |
systemKey | TERMINATION | NOTICE |
compiledHeaderHtml | string | No |
compiledContentHtml | string | No |
compiledFooterHtml | string | No |
POST /v1/document-templates/compile
| Field | Type | Required |
|---|---|---|
name | string | Yes |
documentType | LETTER | OFFER |
contentSource | string | Yes |
fields | array of object (TemplateField) | No |
headerSource | string | No |
headerVisibility | ALL_PAGES | FIRST_PAGE_ONLY |
footerSource | string | No |
footerVisibility | ALL_PAGES | FIRST_PAGE_ONLY |
showLogo | boolean | No |
logoPosition | TOP_LEFT | TOP_RIGHT |
status | DRAFT | PUBLISHED |
systemKey | TERMINATION | NOTICE |
compiledHeaderHtml | string | No |
compiledContentHtml | string | No |
compiledFooterHtml | string | No |
GET /v1/document-templates/{templateId}
No request body.
PUT /v1/document-templates/{templateId}
| Field | Type | Required |
|---|---|---|
version | integer | Yes |
name | string | No |
documentType | LETTER | OFFER |
contentSource | string | No |
fields | array of object (TemplateField) | No |
status | DRAFT | PUBLISHED |
headerSource | string | No |
headerVisibility | ALL_PAGES | FIRST_PAGE_ONLY |
footerSource | string | No |
footerVisibility | ALL_PAGES | FIRST_PAGE_ONLY |
showLogo | boolean | No |
logoPosition | TOP_LEFT | TOP_RIGHT |
systemKey | TERMINATION | NOTICE |
compiledHeaderHtml | string | No |
compiledContentHtml | string | No |
compiledFooterHtml | string | No |
Documents
GET /v1/documents
No request body.
POST /v1/documents
| Field | Type | Required |
|---|---|---|
documentType | CONTRACT | INVOICE |
name | string | Yes |
documentNumber | string | No |
contractId | string | No |
contractName | string | No |
partnerId | string | No |
partnerName | string | No |
creationDate | string | Yes |
status | DRAFT | FINAL |
source | GENERATED | UPLOADED |
templateId | string | No |
fileId | string | No |
fileType | string | No |
POST /v1/documents/processing
| Field | Type | Required |
|---|---|---|
documentType | CONTRACT | INVOICE |
name | string | Yes |
documentNumber | string | No |
contractId | string | No |
contractName | string | No |
partnerId | string | No |
partnerName | string | No |
creationDate | string | Yes |
status | DRAFT | FINAL |
source | GENERATED | UPLOADED |
templateId | string | No |
fileId | string | No |
fileType | string | No |
GET /v1/documents/{documentId}
No request body.
PUT /v1/documents/{documentId}
| Field | Type | Required |
|---|---|---|
version | integer | Yes |
documentType | CONTRACT | INVOICE |
name | string | No |
documentNumber | string | No |
contractId | string | No |
contractName | string | No |
partnerId | string | No |
partnerName | string | No |
creationDate | string | No |
status | DRAFT | FINAL |
DELETE /v1/documents/{documentId}
No request body.
POST /v1/documents/{documentId}/send
No request body.
Files
GET /v1/files
No request body.
GET /v1/files/download-url
No request body.
POST /v1/files/upload-url
No request body.
DELETE /v1/files/{fileId}
No request body.
Licenses
GET /v1/licenses
No request body.
Newsletter
GET /v1/newsletter/confirm
No request body.
POST /v1/newsletter/signup
| Field | Type | Required |
|---|---|---|
email | string | Yes |
GET /v1/newsletter/unsubscribe
No request body.
Notes
GET /v1/notes
No request body.
POST /v1/notes
| Field | Type | Required |
|---|---|---|
parentType | PARTNER | CONTRACT |
parentId | string | Yes |
type | NOTE | REMINDER |
title | string | Yes |
content | string | Yes |
dueDate | string | No |
GET /v1/notes/{noteId}
No request body.
PUT /v1/notes/{noteId}
| Field | Type | Required |
|---|---|---|
version | integer | Yes |
title | string | No |
content | string | No |
dueDate | string | No |
done | boolean | No |
DELETE /v1/notes/{noteId}
No request body.
Partners
GET /v1/partners
No request body.
POST /v1/partners
| Field | Type | Required |
|---|---|---|
name | string | Yes |
type | CUSTOMER | VENDOR |
description | string | No |
website | string | No |
logoFileId | string | No |
addresses | array of object (AddressSchema) | No |
tags | array of string | No |
GET /v1/partners/{partnerId}
No request body.
PUT /v1/partners/{partnerId}
| Field | Type | Required |
|---|---|---|
version | integer | Yes |
name | string | No |
type | CUSTOMER | VENDOR |
description | string | No |
website | string | No |
logoFileId | string | No |
addresses | array of object (AddressSchema) | No |
tags | array of string | No |
DELETE /v1/partners/{partnerId}
No request body.
Payments
GET /v1/payments
No request body.
POST /v1/payments
| Field | Type | Required |
|---|---|---|
direction | INCOMING | OUTGOING |
documentId | string | No |
documentNumber | string | No |
contractId | string | No |
contractName | string | No |
partnerId | string | Yes |
partnerName | string | Yes |
amount | number | Yes |
currency | string | Yes |
paymentDate | string | Yes |
status | PENDING | MARKED |
paymentMethod | BANK_TRANSFER | CREDIT_CARD |
stripePaymentIntentId | string | No |
failureReason | string | No |
GET /v1/payments/{paymentId}
No request body.
PUT /v1/payments/{paymentId}
| Field | Type | Required |
|---|---|---|
version | integer | Yes |
status | PENDING | MARKED |
amount | number | No |
currency | string | No |
paymentDate | string | No |
paymentMethod | BANK_TRANSFER | CREDIT_CARD |
stripePaymentIntentId | string | No |
failureReason | string | No |
contractId | string | No |
contractName | string | No |
DELETE /v1/payments/{paymentId}
No request body.
POST /v1/webhooks/stripe
| Field | Type | Required |
|---|---|---|
direction | INCOMING | OUTGOING |
documentId | string | No |
documentNumber | string | No |
contractId | string | No |
contractName | string | No |
partnerId | string | Yes |
partnerName | string | Yes |
amount | number | Yes |
currency | string | Yes |
paymentDate | string | Yes |
status | PENDING | MARKED |
paymentMethod | BANK_TRANSFER | CREDIT_CARD |
stripePaymentIntentId | string | No |
failureReason | string | No |
Plans
GET /v1/plans
No request body.
PATCH /v1/plans
No request body.
Products
GET /v1/products
No request body.
POST /v1/products
| Field | Type | Required |
|---|---|---|
name | string | Yes |
type | SERVICE | GOODS |
unitPrice | number | Yes |
currency | string | Yes |
unit | string | No |
description | string | No |
photoFileId | string | No |
taxRateId | string | No |
tags | array of string | No |
GET /v1/products/{productId}
No request body.
PUT /v1/products/{productId}
| Field | Type | Required |
|---|---|---|
version | integer | Yes |
name | string | No |
type | SERVICE | GOODS |
unitPrice | number | No |
currency | string | No |
unit | string | No |
description | string | No |
photoFileId | string | No |
taxRateId | string | No |
tags | array of string | No |
DELETE /v1/products/{productId}
No request body.
Subscription Billing
POST /v1/webhooks/stripe-subscriptions
No request body.
Tax Rates
GET /v1/tax-rates
No request body.
POST /v1/tax-rates
| Field | Type | Required |
|---|---|---|
name | string | Yes |
rate | number | Yes |
isDefault | boolean | No |
PATCH /v1/tax-rates/{taxRateId}
| Field | Type | Required |
|---|---|---|
version | integer | Yes |
name | string | No |
rate | number | No |
isDefault | boolean | No |
DELETE /v1/tax-rates/{taxRateId}
No request body.
Usage
GET /v1/usage
No request body.
Users
PATCH /v1/me/newsletter-subscription
| Field | Type | Required |
|---|---|---|
subscribed | boolean | Yes |
GET /v1/users
No request body.
POST /v1/users
| Field | Type | Required |
|---|---|---|
name | string | Yes |
email | string | Yes |
role | admin | user |
POST /v1/users/confirm
| Field | Type | Required |
|---|---|---|
name | string | Yes |
email | string | Yes |
role | admin | user |
GET /v1/users/{userId}
No request body.
PATCH /v1/users/{userId}
| Field | Type | Required |
|---|---|---|
role | admin | user |
DELETE /v1/users/{userId}
No request body.