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 (query parameters and body, 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

FieldTypeRequired
namestringYes
expiresAtstringNo

DELETE /v1/api-tokens/{tokenId}

No request body.

Account

GET /v1/account/addresses

No request body.

PUT /v1/account/addresses

FieldTypeRequired
versionintegerYes
addressesarray of object (AddressSchema)Yes

PATCH /v1/account/addresses

FieldTypeRequired
versionintegerYes
budgetsSuppressedbooleanNo
reminderEmailstringNo
allowContractReminderOverridebooleanNo
allowInvoiceLineItemOverridebooleanNo
dashboardWidgetsarray of object (DashboardWidgetSettingsSchema)No
companyProfileobject (CompanyProfileSchema)No
dateFormatDD.MM.YYYYDD/MM/YYYY
numberFormat1.234,561,234.56
currencyEURGBP
incomingPaymentTermSOLLHABEN

Audit Trail

GET /v1/audit-events

Query parameters

ParameterTypeRequiredDefault
cursorstringNo—
limitintegerNo20
userIdstringNo—

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

FieldTypeRequired
fileIdstringYes
keystringYes
fileNamestringNo
periodFromstringYes
periodTostringYes
autoApprovebooleanNo

GET /v1/bank-statement-imports/active

No request body.

GET /v1/bank-statement-imports/{importId}

No request body.

DELETE /v1/bank-statement-imports/{importId}

No request body.

POST /v1/bank-statement-imports/{importId}/finalize

FieldTypeRequired
versionintegerYes

PATCH /v1/bank-statement-imports/{importId}/transactions/{index}

FieldTypeRequired
versionintegerYes
decisionACCEPTEDREJECTED

Budget Categories

GET /v1/budget-categories

Query parameters

ParameterTypeRequiredDefault
limitintegerNo20
pageintegerNo1

No request body.

POST /v1/budget-categories

FieldTypeRequired
namestringYes
monthlyLimitnumberYes
currencystringYes
keywordsarray of stringYes
activebooleanYes

PATCH /v1/budget-categories/{categoryId}

FieldTypeRequired
versionintegerYes
namestringNo
monthlyLimitnumberNo
currencystringNo
keywordsarray of stringNo
activebooleanNo

DELETE /v1/budget-categories/{categoryId}

No request body.

Budget Entries

GET /v1/budget-entries

Query parameters

ParameterTypeRequiredDefault
categoryIdstringNo—
limitintegerNo20
pageintegerNo1

No request body.

POST /v1/budget-entries

FieldTypeRequired
categoryIdstringYes
categoryNamestringNo
amountnumberYes
currencystringYes
entryDatestringYes
documentIdstringNo
vendorNamestringNo

DELETE /v1/budget-entries/{entryId}

No request body.

Contracts

GET /v1/contracts

Query parameters

ParameterTypeRequiredDefault
partnerIdstringNo—
sortstringNo—
limitintegerNo20
pageintegerNo1

No request body.

POST /v1/contracts

FieldTypeRequired
namestringYes
partnerIdstringYes
partnerNamestringYes
partnerTypeCUSTOMERVENDOR
startDatestringYes
totalValuenumberYes
currencystringYes
statusDRAFTACTIVE
endDatestringNo
descriptionstringNo
tagsarray of stringNo
advancedobject (ContractAdvanced)No

GET /v1/contracts/{contractId}

No request body.

PUT /v1/contracts/{contractId}

FieldTypeRequired
versionintegerYes
namestringNo
partnerIdstringNo
partnerNamestringNo
partnerTypeCUSTOMERVENDOR
statusDRAFTACTIVE
startDatestringNo
endDatestringNo
totalValuenumberNo
currencystringNo
descriptionstringNo
tagsarray of stringNo
advancedobject (ContractAdvanced)No

DELETE /v1/contracts/{contractId}

No request body.

Dashboard

GET /v1/dashboard/cash-anchor

No request body.

PUT /v1/dashboard/cash-anchor

FieldTypeRequired
openingBalancenumberYes
effectiveDatestringYes

GET /v1/dashboard/stats

Query parameters

ParameterTypeRequiredDefault
fromstringNo—
tostringNo—

No request body.

GET /v1/dashboard/timeseries

Query parameters

ParameterTypeRequiredDefault
metricstringNo—
granularitystringNo—
viewstringNo—
tostringNo—
fromstringNo—

No request body.

Document Rasterization

POST /v1/documents/rasterize

No request body.

Document Templates

GET /v1/document-templates

Query parameters

ParameterTypeRequiredDefault
statusstringNo—
limitintegerNo20
pageintegerNo1

No request body.

POST /v1/document-templates

FieldTypeRequired
namestringYes
documentTypeLETTEROFFER
contentSourcestringYes
fieldsarray of object (TemplateField)No
headerSourcestringNo
headerVisibilityALL_PAGESFIRST_PAGE_ONLY
footerSourcestringNo
footerVisibilityALL_PAGESFIRST_PAGE_ONLY
showLogobooleanNo
logoPositionTOP_LEFTTOP_RIGHT
statusDRAFTPUBLISHED
systemKeyTERMINATIONNOTICE
compiledHeaderHtmlstringNo
compiledContentHtmlstringNo
compiledFooterHtmlstringNo

POST /v1/document-templates/compile

FieldTypeRequired
namestringYes
documentTypeLETTEROFFER
contentSourcestringYes
fieldsarray of object (TemplateField)No
headerSourcestringNo
headerVisibilityALL_PAGESFIRST_PAGE_ONLY
footerSourcestringNo
footerVisibilityALL_PAGESFIRST_PAGE_ONLY
showLogobooleanNo
logoPositionTOP_LEFTTOP_RIGHT
statusDRAFTPUBLISHED
systemKeyTERMINATIONNOTICE
compiledHeaderHtmlstringNo
compiledContentHtmlstringNo
compiledFooterHtmlstringNo

GET /v1/document-templates/{templateId}

No request body.

PUT /v1/document-templates/{templateId}

FieldTypeRequired
versionintegerYes
namestringNo
documentTypeLETTEROFFER
contentSourcestringNo
fieldsarray of object (TemplateField)No
statusDRAFTPUBLISHED
headerSourcestringNo
headerVisibilityALL_PAGESFIRST_PAGE_ONLY
footerSourcestringNo
footerVisibilityALL_PAGESFIRST_PAGE_ONLY
showLogobooleanNo
logoPositionTOP_LEFTTOP_RIGHT
systemKeyTERMINATIONNOTICE
compiledHeaderHtmlstringNo
compiledContentHtmlstringNo
compiledFooterHtmlstringNo

DELETE /v1/document-templates/{templateId}

No request body.

Documents

GET /v1/documents

Query parameters

ParameterTypeRequiredDefault
contractIdstringNo—
limitintegerNo20
pageintegerNo1

No request body.

POST /v1/documents

FieldTypeRequired
documentTypeCONTRACTINVOICE
namestringYes
documentNumberstringNo
contractIdstringNo
contractNamestringNo
partnerIdstringNo
partnerNamestringNo
creationDatestringYes
statusDRAFTFINAL
sourceGENERATEDUPLOADED
templateIdstringNo
sourceDocumentIdstringNo
lineItemsarray of object (LineItemSchema)No
taxBreakdownarray of object (TaxBreakdownEntrySchema)No
netAmountnumberNo
taxAmountnumberNo
totalAmountnumberNo
currencystringNo
dueDatestringNo
fileIdstringNo
fileTypestringNo

POST /v1/documents/processing

FieldTypeRequired
documentTypeCONTRACTINVOICE
namestringYes
documentNumberstringNo
contractIdstringNo
contractNamestringNo
partnerIdstringNo
partnerNamestringNo
creationDatestringYes
statusDRAFTFINAL
sourceGENERATEDUPLOADED
templateIdstringNo
sourceDocumentIdstringNo
lineItemsarray of object (LineItemSchema)No
taxBreakdownarray of object (TaxBreakdownEntrySchema)No
netAmountnumberNo
taxAmountnumberNo
totalAmountnumberNo
currencystringNo
dueDatestringNo
fileIdstringNo
fileTypestringNo

GET /v1/documents/{documentId}

No request body.

PUT /v1/documents/{documentId}

FieldTypeRequired
versionintegerYes
documentTypeCONTRACTINVOICE
namestringNo
documentNumberstringNo
contractIdstringNo
contractNamestringNo
partnerIdstringNo
partnerNamestringNo
creationDatestringNo
statusDRAFTFINAL
sourceGENERATEDUPLOADED
templateIdstringNo
sourceDocumentIdstringNo
lineItemsarray of object (LineItemSchema)No
taxBreakdownarray of object (TaxBreakdownEntrySchema)No
netAmountnumberNo
taxAmountnumberNo
totalAmountnumberNo
currencystringNo
dueDatestringNo
fileIdstringNo
fileTypestringNo

DELETE /v1/documents/{documentId}

No request body.

POST /v1/documents/{documentId}/generate-einvoice

No request body.

POST /v1/documents/{documentId}/send

No request body.

Files

GET /v1/files

Query parameters

ParameterTypeRequiredDefault
limitintegerNo20
pageintegerNo1

No request body.

GET /v1/files/download-url

Query parameters

ParameterTypeRequiredDefault
keystringNo—
fileIdstringNo—

No request body.

POST /v1/files/upload-url

FieldTypeRequired
fileNamestringYes
fileSizeintegerNo
contentTypestringNo
skipProcessingbooleanNo

DELETE /v1/files/{fileId}

No request body.

Leads

GET /v1/leads

Query parameters

ParameterTypeRequiredDefault
statusstringNo—
limitintegerNo20
pageintegerNo1

No request body.

POST /v1/leads

FieldTypeRequired
namestringYes
contactEmailstringNo
contactPhonestringNo
sourceWEBSITEREFERRAL
notesstringNo

GET /v1/leads/{leadId}

No request body.

PUT /v1/leads/{leadId}

FieldTypeRequired
versionintegerYes
namestringNo
contactEmailstringNo
contactPhonestringNo
sourceWEBSITEREFERRAL
statusLEADQUALIFIED
notesstringNo

DELETE /v1/leads/{leadId}

No request body.

POST /v1/leads/{leadId}/convert

FieldTypeRequired
contractNamestringNo
totalValuenumberNo
currencystringNo
startDatestringNo

Licenses

GET /v1/licenses

No request body.

Newsletter

GET /v1/newsletter/confirm

Query parameters

ParameterTypeRequiredDefault
tokenstringNo—

No request body.

POST /v1/newsletter/signup

FieldTypeRequired
emailstringYes

GET /v1/newsletter/unsubscribe

Query parameters

ParameterTypeRequiredDefault
tokenstringNo—

No request body.

Notes

GET /v1/notes

Query parameters

ParameterTypeRequiredDefault
parentTypestringNo—
parentIdstringNo—
limitintegerNo20
pageintegerNo1

No request body.

POST /v1/notes

FieldTypeRequired
parentTypePARTNERCONTRACT
parentIdstringYes
typeNOTEREMINDER
titlestringYes
contentstringYes
dueDatestringNo

GET /v1/notes/{noteId}

No request body.

PUT /v1/notes/{noteId}

FieldTypeRequired
versionintegerYes
titlestringNo
contentstringNo
dueDatestringNo
donebooleanNo

DELETE /v1/notes/{noteId}

No request body.

Partners

GET /v1/partners

Query parameters

ParameterTypeRequiredDefault
limitintegerNo20
pageintegerNo1

No request body.

POST /v1/partners

FieldTypeRequired
namestringYes
typeCUSTOMERVENDOR
descriptionstringNo
websitestringNo
logoFileIdstringNo
addressesarray of object (AddressSchema)No
tagsarray of stringNo
vatIdstringNo
registrationCourtstringNo
registrationNumberstringNo

GET /v1/partners/{partnerId}

No request body.

PUT /v1/partners/{partnerId}

FieldTypeRequired
versionintegerYes
namestringNo
typeCUSTOMERVENDOR
descriptionstringNo
websitestringNo
logoFileIdstringNo
addressesarray of object (AddressSchema)No
tagsarray of stringNo
vatIdstringNo
registrationCourtstringNo
registrationNumberstringNo

DELETE /v1/partners/{partnerId}

No request body.

Payments

GET /v1/payments

Query parameters

ParameterTypeRequiredDefault
documentIdstringNo—
contractIdstringNo—
sortstringNo—
limitintegerNo1000
pageintegerNo1

No request body.

POST /v1/payments

FieldTypeRequired
directionINCOMINGOUTGOING
documentIdstringNo
documentNumberstringNo
contractIdstringNo
contractNamestringNo
partnerIdstringYes
partnerNamestringYes
amountnumberYes
currencystringYes
paymentDatestringYes
statusPENDINGMARKED
paymentMethodBANK_TRANSFERCREDIT_CARD
stripePaymentIntentIdstringNo
failureReasonstringNo

GET /v1/payments/{paymentId}

No request body.

PUT /v1/payments/{paymentId}

FieldTypeRequired
versionintegerYes
statusPENDINGMARKED
amountnumberNo
currencystringNo
paymentDatestringNo
paymentMethodBANK_TRANSFERCREDIT_CARD
stripePaymentIntentIdstringNo
failureReasonstringNo
contractIdstringNo
contractNamestringNo

DELETE /v1/payments/{paymentId}

No request body.

POST /v1/webhooks/stripe

FieldTypeRequired
directionINCOMINGOUTGOING
documentIdstringNo
documentNumberstringNo
contractIdstringNo
contractNamestringNo
partnerIdstringYes
partnerNamestringYes
amountnumberYes
currencystringYes
paymentDatestringYes
statusPENDINGMARKED
paymentMethodBANK_TRANSFERCREDIT_CARD
stripePaymentIntentIdstringNo
failureReasonstringNo

Plans

GET /v1/plans

No request body.

PATCH /v1/plans

No request body.

Products

GET /v1/products

Query parameters

ParameterTypeRequiredDefault
limitintegerNo20
pageintegerNo1

No request body.

POST /v1/products

FieldTypeRequired
namestringYes
typeSERVICEGOODS
unitPricenumberYes
currencystringYes
unitstringNo
descriptionstringNo
photoFileIdstringNo
taxRateIdstringNo
tagsarray of stringNo

GET /v1/products/{productId}

No request body.

PUT /v1/products/{productId}

FieldTypeRequired
versionintegerYes
namestringNo
typeSERVICEGOODS
unitPricenumberNo
currencystringNo
unitstringNo
descriptionstringNo
photoFileIdstringNo
taxRateIdstringNo
tagsarray of stringNo

DELETE /v1/products/{productId}

No request body.

Startup Metrics

GET /v1/startup-metrics/timeseries

No request body.

Subscription Billing

POST /v1/webhooks/stripe-subscriptions

FieldTypeRequired
paymentMethodIdstringYes

Tax Rates

GET /v1/tax-rates

Query parameters

ParameterTypeRequiredDefault
limitintegerNo20
pageintegerNo1

No request body.

POST /v1/tax-rates

FieldTypeRequired
namestringYes
ratenumberYes
isDefaultbooleanNo
vatCategoryCodestringNo

PATCH /v1/tax-rates/{taxRateId}

FieldTypeRequired
versionintegerYes
namestringNo
ratenumberNo
isDefaultbooleanNo
vatCategoryCodestringNo

DELETE /v1/tax-rates/{taxRateId}

No request body.

Usage

GET /v1/usage

No request body.

Users

PATCH /v1/me/newsletter-subscription

FieldTypeRequired
subscribedbooleanYes

GET /v1/users

No request body.

POST /v1/users

FieldTypeRequired
namestringYes
emailstringYes
roleadminuser

POST /v1/users/confirm

FieldTypeRequired
namestringYes
emailstringYes
roleadminuser

GET /v1/users/{userId}

No request body.

PATCH /v1/users/{userId}

FieldTypeRequired
roleadminuser

DELETE /v1/users/{userId}

No request body.