API-Referenz
Diese Seite listet jeden Endpunkt auf, der mit einem Personal API Token erreichbar ist — automatisch aus den Routendefinitionen des Backends generiert, sodass sie immer dem tatsächlich bereitgestellten Stand entspricht. Jede Anfrage muss beide erforderlichen Header enthalten:
Authorization: Bearer smv_live_...
x-api-key: <dein API-Schlüssel>
Wie du ein Token erzeugst und welche Ratenlimits/Kontingente gelten, steht unter API-Zugriff.
Antwortformate sind hier noch nicht dokumentiert — jeder Endpunkt unten zeigt die Form der Anfrage (falls vorhanden); die Form einer erfolgreichen Antwort ist noch nicht Teil dieser generierten Referenz. Eine eigenständige PDF dieser Seite ist ebenfalls verfügbar.
API-Tokens
GET /v1/api-tokens
Kein Request-Body.
POST /v1/api-tokens
| Feld | Typ | Erforderlich |
|---|---|---|
name | string | Ja |
expiresAt | string | Nein |
DELETE /v1/api-tokens/{tokenId}
Kein Request-Body.
Abo-Abrechnung
POST /v1/webhooks/stripe-subscriptions
Kein Request-Body.
Abrechnung
GET /v1/account/billing
Kein Request-Body.
PUT /v1/account/billing/bank-account
| Feld | Typ | Erforderlich |
|---|---|---|
card | object (CardSchema) | Ja |
billingMethod | string | Ja |
version | integer | Ja |
PUT /v1/account/billing/card
| Feld | Typ | Erforderlich |
|---|---|---|
card | object (CardSchema) | Ja |
billingMethod | string | Ja |
version | integer | Ja |
Aktivitätsprotokoll
GET /v1/audit-events
Kein Request-Body.
Anmeldung
POST /v1/auth/confirm
Kein Request-Body.
POST /v1/auth/forgot-password
Kein Request-Body.
POST /v1/auth/login
Kein Request-Body.
POST /v1/auth/logout
Kein Request-Body.
POST /v1/auth/refresh
Kein Request-Body.
POST /v1/auth/register
Kein Request-Body.
POST /v1/auth/reset-password
Kein Request-Body.
Benutzer
PATCH /v1/me/newsletter-subscription
| Feld | Typ | Erforderlich |
|---|---|---|
subscribed | boolean | Ja |
GET /v1/users
Kein Request-Body.
POST /v1/users
| Feld | Typ | Erforderlich |
|---|---|---|
name | string | Ja |
email | string | Ja |
role | admin | user |
POST /v1/users/confirm
| Feld | Typ | Erforderlich |
|---|---|---|
name | string | Ja |
email | string | Ja |
role | admin | user |
GET /v1/users/{userId}
Kein Request-Body.
PATCH /v1/users/{userId}
| Feld | Typ | Erforderlich |
|---|---|---|
role | admin | user |
DELETE /v1/users/{userId}
Kein Request-Body.
Budgeteinträge
GET /v1/budget-entries
Kein Request-Body.
POST /v1/budget-entries
| Feld | Typ | Erforderlich |
|---|---|---|
categoryId | string | Ja |
categoryName | string | Nein |
amount | number | Ja |
currency | string | Ja |
entryDate | string | Ja |
documentId | string | Nein |
vendorName | string | Nein |
DELETE /v1/budget-entries/{entryId}
Kein Request-Body.
Budgetkategorien
GET /v1/budget-categories
Kein Request-Body.
POST /v1/budget-categories
| Feld | Typ | Erforderlich |
|---|---|---|
name | string | Ja |
monthlyLimit | number | Ja |
currency | string | Ja |
keywords | array of string | Ja |
active | boolean | Ja |
PATCH /v1/budget-categories/{categoryId}
| Feld | Typ | Erforderlich |
|---|---|---|
version | integer | Ja |
name | string | Nein |
monthlyLimit | number | Nein |
currency | string | Nein |
keywords | array of string | Nein |
active | boolean | Nein |
DELETE /v1/budget-categories/{categoryId}
Kein Request-Body.
Dashboard
GET /v1/dashboard/cash-anchor
Kein Request-Body.
PUT /v1/dashboard/cash-anchor
| Feld | Typ | Erforderlich |
|---|---|---|
openingBalance | number | Ja |
effectiveDate | string | Ja |
GET /v1/dashboard/stats
Kein Request-Body.
GET /v1/dashboard/timeseries
Kein Request-Body.
Dateien
GET /v1/files
Kein Request-Body.
GET /v1/files/download-url
Kein Request-Body.
POST /v1/files/upload-url
Kein Request-Body.
DELETE /v1/files/{fileId}
Kein Request-Body.
Dokumente
GET /v1/documents
Kein Request-Body.
POST /v1/documents
| Feld | Typ | Erforderlich |
|---|---|---|
documentType | CONTRACT | INVOICE |
name | string | Ja |
documentNumber | string | Nein |
contractId | string | Nein |
contractName | string | Nein |
partnerId | string | Nein |
partnerName | string | Nein |
creationDate | string | Ja |
status | DRAFT | FINAL |
source | GENERATED | UPLOADED |
templateId | string | Nein |
fileId | string | Nein |
fileType | string | Nein |
POST /v1/documents/processing
| Feld | Typ | Erforderlich |
|---|---|---|
documentType | CONTRACT | INVOICE |
name | string | Ja |
documentNumber | string | Nein |
contractId | string | Nein |
contractName | string | Nein |
partnerId | string | Nein |
partnerName | string | Nein |
creationDate | string | Ja |
status | DRAFT | FINAL |
source | GENERATED | UPLOADED |
templateId | string | Nein |
fileId | string | Nein |
fileType | string | Nein |
GET /v1/documents/{documentId}
Kein Request-Body.
PUT /v1/documents/{documentId}
| Feld | Typ | Erforderlich |
|---|---|---|
version | integer | Ja |
documentType | CONTRACT | INVOICE |
name | string | Nein |
documentNumber | string | Nein |
contractId | string | Nein |
contractName | string | Nein |
partnerId | string | Nein |
partnerName | string | Nein |
creationDate | string | Nein |
status | DRAFT | FINAL |
DELETE /v1/documents/{documentId}
Kein Request-Body.
POST /v1/documents/{documentId}/send
Kein Request-Body.
Dokumenten-Rasterung
POST /v1/documents/rasterize
Kein Request-Body.
Dokumentvorlagen
GET /v1/document-templates
Kein Request-Body.
POST /v1/document-templates
| Feld | Typ | Erforderlich |
|---|---|---|
name | string | Ja |
documentType | LETTER | OFFER |
contentSource | string | Ja |
fields | array of object (TemplateField) | Nein |
headerSource | string | Nein |
headerVisibility | ALL_PAGES | FIRST_PAGE_ONLY |
footerSource | string | Nein |
footerVisibility | ALL_PAGES | FIRST_PAGE_ONLY |
showLogo | boolean | Nein |
logoPosition | TOP_LEFT | TOP_RIGHT |
status | DRAFT | PUBLISHED |
systemKey | TERMINATION | NOTICE |
compiledHeaderHtml | string | Nein |
compiledContentHtml | string | Nein |
compiledFooterHtml | string | Nein |
POST /v1/document-templates/compile
| Feld | Typ | Erforderlich |
|---|---|---|
name | string | Ja |
documentType | LETTER | OFFER |
contentSource | string | Ja |
fields | array of object (TemplateField) | Nein |
headerSource | string | Nein |
headerVisibility | ALL_PAGES | FIRST_PAGE_ONLY |
footerSource | string | Nein |
footerVisibility | ALL_PAGES | FIRST_PAGE_ONLY |
showLogo | boolean | Nein |
logoPosition | TOP_LEFT | TOP_RIGHT |
status | DRAFT | PUBLISHED |
systemKey | TERMINATION | NOTICE |
compiledHeaderHtml | string | Nein |
compiledContentHtml | string | Nein |
compiledFooterHtml | string | Nein |
GET /v1/document-templates/{templateId}
Kein Request-Body.
PUT /v1/document-templates/{templateId}
| Feld | Typ | Erforderlich |
|---|---|---|
version | integer | Ja |
name | string | Nein |
documentType | LETTER | OFFER |
contentSource | string | Nein |
fields | array of object (TemplateField) | Nein |
status | DRAFT | PUBLISHED |
headerSource | string | Nein |
headerVisibility | ALL_PAGES | FIRST_PAGE_ONLY |
footerSource | string | Nein |
footerVisibility | ALL_PAGES | FIRST_PAGE_ONLY |
showLogo | boolean | Nein |
logoPosition | TOP_LEFT | TOP_RIGHT |
systemKey | TERMINATION | NOTICE |
compiledHeaderHtml | string | Nein |
compiledContentHtml | string | Nein |
compiledFooterHtml | string | Nein |
Konto
GET /v1/account/addresses
Kein Request-Body.
PUT /v1/account/addresses
| Feld | Typ | Erforderlich |
|---|---|---|
version | integer | Ja |
addresses | array of object (AddressSchema) | Ja |
PATCH /v1/account/addresses
| Feld | Typ | Erforderlich |
|---|---|---|
version | integer | Ja |
budgetsSuppressed | boolean | Nein |
reminderEmail | string | Nein |
allowContractReminderOverride | boolean | Nein |
dashboardWidgets | array of object (DashboardWidgetSettingsSchema) | Nein |
dateFormat | DD.MM.YYYY | DD/MM/YYYY |
numberFormat | 1.234,56 | 1,234.56 |
currency | EUR | GBP |
incomingPaymentTerm | SOLL | HABEN |
Kontoauszugs-Import
POST /v1/bank-statement-imports
| Feld | Typ | Erforderlich |
|---|---|---|
fileId | string | Ja |
key | string | Ja |
fileName | string | Nein |
periodFrom | string | Ja |
periodTo | string | Ja |
autoApprove | boolean | Nein |
GET /v1/bank-statement-imports/active
Kein Request-Body.
DELETE /v1/bank-statement-imports/{importId}
Kein Request-Body.
POST /v1/bank-statement-imports/{importId}/finalize
| Feld | Typ | Erforderlich |
|---|---|---|
version | integer | Ja |
PATCH /v1/bank-statement-imports/{importId}/transactions/{index}
| Feld | Typ | Erforderlich |
|---|---|---|
version | integer | Ja |
decision | ACCEPTED | REJECTED |
Lizenzen
GET /v1/licenses
Kein Request-Body.
Newsletter
GET /v1/newsletter/confirm
Kein Request-Body.
POST /v1/newsletter/signup
| Feld | Typ | Erforderlich |
|---|---|---|
email | string | Ja |
GET /v1/newsletter/unsubscribe
Kein Request-Body.
Notizen
GET /v1/notes
Kein Request-Body.
POST /v1/notes
| Feld | Typ | Erforderlich |
|---|---|---|
parentType | PARTNER | CONTRACT |
parentId | string | Ja |
type | NOTE | REMINDER |
title | string | Ja |
content | string | Ja |
dueDate | string | Nein |
GET /v1/notes/{noteId}
Kein Request-Body.
PUT /v1/notes/{noteId}
| Feld | Typ | Erforderlich |
|---|---|---|
version | integer | Ja |
title | string | Nein |
content | string | Nein |
dueDate | string | Nein |
done | boolean | Nein |
DELETE /v1/notes/{noteId}
Kein Request-Body.
Nutzung
GET /v1/usage
Kein Request-Body.
Partner
GET /v1/partners
Kein Request-Body.
POST /v1/partners
| Feld | Typ | Erforderlich |
|---|---|---|
name | string | Ja |
type | CUSTOMER | VENDOR |
description | string | Nein |
website | string | Nein |
logoFileId | string | Nein |
addresses | array of object (AddressSchema) | Nein |
tags | array of string | Nein |
GET /v1/partners/{partnerId}
Kein Request-Body.
PUT /v1/partners/{partnerId}
| Feld | Typ | Erforderlich |
|---|---|---|
version | integer | Ja |
name | string | Nein |
type | CUSTOMER | VENDOR |
description | string | Nein |
website | string | Nein |
logoFileId | string | Nein |
addresses | array of object (AddressSchema) | Nein |
tags | array of string | Nein |
DELETE /v1/partners/{partnerId}
Kein Request-Body.
Produkte
GET /v1/products
Kein Request-Body.
POST /v1/products
| Feld | Typ | Erforderlich |
|---|---|---|
name | string | Ja |
type | SERVICE | GOODS |
unitPrice | number | Ja |
currency | string | Ja |
unit | string | Nein |
description | string | Nein |
photoFileId | string | Nein |
taxRateId | string | Nein |
tags | array of string | Nein |
GET /v1/products/{productId}
Kein Request-Body.
PUT /v1/products/{productId}
| Feld | Typ | Erforderlich |
|---|---|---|
version | integer | Ja |
name | string | Nein |
type | SERVICE | GOODS |
unitPrice | number | Nein |
currency | string | Nein |
unit | string | Nein |
description | string | Nein |
photoFileId | string | Nein |
taxRateId | string | Nein |
tags | array of string | Nein |
DELETE /v1/products/{productId}
Kein Request-Body.
Steuersätze
GET /v1/tax-rates
Kein Request-Body.
POST /v1/tax-rates
| Feld | Typ | Erforderlich |
|---|---|---|
name | string | Ja |
rate | number | Ja |
isDefault | boolean | Nein |
PATCH /v1/tax-rates/{taxRateId}
| Feld | Typ | Erforderlich |
|---|---|---|
version | integer | Ja |
name | string | Nein |
rate | number | Nein |
isDefault | boolean | Nein |
DELETE /v1/tax-rates/{taxRateId}
Kein Request-Body.
Tarife
GET /v1/plans
Kein Request-Body.
PATCH /v1/plans
Kein Request-Body.
Verträge
GET /v1/contracts
Kein Request-Body.
POST /v1/contracts
| Feld | Typ | Erforderlich |
|---|---|---|
name | string | Ja |
partnerId | string | Ja |
partnerName | string | Ja |
partnerType | CUSTOMER | VENDOR |
startDate | string | Ja |
totalValue | number | Ja |
currency | string | Ja |
status | DRAFT | ACTIVE |
endDate | string | Nein |
description | string | Nein |
tags | array of string | Nein |
advanced | object (ContractAdvanced) | Nein |
GET /v1/contracts/{contractId}
Kein Request-Body.
PUT /v1/contracts/{contractId}
| Feld | Typ | Erforderlich |
|---|---|---|
version | integer | Ja |
name | string | Nein |
partnerId | string | Nein |
partnerName | string | Nein |
partnerType | CUSTOMER | VENDOR |
status | DRAFT | ACTIVE |
startDate | string | Nein |
endDate | string | Nein |
totalValue | number | Nein |
currency | string | Nein |
description | string | Nein |
tags | array of string | Nein |
advanced | object (ContractAdvanced) | Nein |
DELETE /v1/contracts/{contractId}
Kein Request-Body.
Zahlungen
GET /v1/payments
Kein Request-Body.
POST /v1/payments
| Feld | Typ | Erforderlich |
|---|---|---|
direction | INCOMING | OUTGOING |
documentId | string | Nein |
documentNumber | string | Nein |
contractId | string | Nein |
contractName | string | Nein |
partnerId | string | Ja |
partnerName | string | Ja |
amount | number | Ja |
currency | string | Ja |
paymentDate | string | Ja |
status | PENDING | MARKED |
paymentMethod | BANK_TRANSFER | CREDIT_CARD |
stripePaymentIntentId | string | Nein |
failureReason | string | Nein |
GET /v1/payments/{paymentId}
Kein Request-Body.
PUT /v1/payments/{paymentId}
| Feld | Typ | Erforderlich |
|---|---|---|
version | integer | Ja |
status | PENDING | MARKED |
amount | number | Nein |
currency | string | Nein |
paymentDate | string | Nein |
paymentMethod | BANK_TRANSFER | CREDIT_CARD |
stripePaymentIntentId | string | Nein |
failureReason | string | Nein |
contractId | string | Nein |
contractName | string | Nein |
DELETE /v1/payments/{paymentId}
Kein Request-Body.
POST /v1/webhooks/stripe
| Feld | Typ | Erforderlich |
|---|---|---|
direction | INCOMING | OUTGOING |
documentId | string | Nein |
documentNumber | string | Nein |
contractId | string | Nein |
contractName | string | Nein |
partnerId | string | Ja |
partnerName | string | Ja |
amount | number | Ja |
currency | string | Ja |
paymentDate | string | Ja |
status | PENDING | MARKED |
paymentMethod | BANK_TRANSFER | CREDIT_CARD |
stripePaymentIntentId | string | Nein |
failureReason | string | Nein |