PUBLIC API v1
Set up a recurring invoice
POST /api/v1/companies/{company_pk}/recurring-invoices/
The template is the invoice as typed, without number and dates. On each run date Norman makes one ordinary invoice from it: a draft (mode=draft), an issued invoice (issue) or an issued and emailed one (send). Placeholders {month}, {year}, {quarter}, {week} and {period} in line texts, notes and the email are filled from the period each invoice covers. A start today or earlier makes the first invoice at once.
Permission: write_invoices · Direct link
Company-scoped. Account permissions, plan limits and document state still apply.
Path and query parameters
| Parameter | Location / type | Description |
|---|---|---|
company_pkRequired | path · string (uuid) | Not specified |
Request body
application/json
| Field | Type / accepted values | Description | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
client | string (uuid) | null | Not specified | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
invoiceType | "GOODS" | "SERVICES" | * `GOODS` - Goods * `SERVICES` - Services | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
invoicedItems | object[] | Not specifiedNested fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||
currency | string | Not specified | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
currencyExchanged | string | Not specified | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
language | "de" | "en" | "pl" | "it" | "es" | * `de` - German * `en` - English * `pl` - Polish * `it` - Italian * `es` - Spanish | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
isVatIncluded | boolean | Not specified | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
discountPercents | integer | Not specified | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
paymentTerms | string | Not specified | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
notes | string | Not specified | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
instructions | string | Not specified | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
message | string | Not specified | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
taxExemptReason | string | null | Not specified | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
companyEmail | string (email) | null | Not specified | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
createQr | boolean | Not specified | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
settingsOnOverdue | object | null | Not specifiedNested fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||
mailingData | object | null | Not specified | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
onlinePaymentEnabled | boolean | Not specified | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
documentDesign | object | Not specifiedNested fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||
font | string | Not specified | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
colorSchema | string | Not specified | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
sourceContract | string (uuid) | null | Not specified | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
interval | "week" | "month" | "year" | * `week` - Week * `month` - Month * `year` - Year | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
intervalCount | integer | Not specified | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
startsOn | string (date) | Not specified | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
endsOn | string (date) | null | Not specified | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
endsAfter | integer | null | Not specified | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
paymentDueDays | integer | Not specified | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
billingInAdvance | boolean | Not specified | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
mode | "draft" | "issue" | "send" | * `draft` - Create a draft * `issue` - Issue * `send` - Issue and send | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
clientData | object | Not specifiedNested fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||
saveClientDetails | boolean | Not specified | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
iban | string | null | Not specified | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
bic | string | null | Not specified | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
bankName | string | null | Not specified | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
skipBankDetails | boolean | Not specified |
multipart/form-data
| Field | Type / accepted values | Description | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
client | string (uuid) | null | Not specified | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
invoiceType | "GOODS" | "SERVICES" | * `GOODS` - Goods * `SERVICES` - Services | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
invoicedItems | object[] | Not specifiedNested fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||
currency | string | Not specified | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
currencyExchanged | string | Not specified | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
language | "de" | "en" | "pl" | "it" | "es" | * `de` - German * `en` - English * `pl` - Polish * `it` - Italian * `es` - Spanish | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
isVatIncluded | boolean | Not specified | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
discountPercents | integer | Not specified | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
paymentTerms | string | Not specified | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
notes | string | Not specified | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
instructions | string | Not specified | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
message | string | Not specified | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
taxExemptReason | string | null | Not specified | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
companyEmail | string (email) | null | Not specified | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
createQr | boolean | Not specified | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
settingsOnOverdue | object | null | Not specifiedNested fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||
mailingData | object | null | Not specified | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
onlinePaymentEnabled | boolean | Not specified | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
documentDesign | object | Not specifiedNested fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||
font | string | Not specified | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
colorSchema | string | Not specified | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
sourceContract | string (uuid) | null | Not specified | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
interval | "week" | "month" | "year" | * `week` - Week * `month` - Month * `year` - Year | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
intervalCount | integer | Not specified | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
startsOn | string (date) | Not specified | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
endsOn | string (date) | null | Not specified | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
endsAfter | integer | null | Not specified | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
paymentDueDays | integer | Not specified | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
billingInAdvance | boolean | Not specified | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
mode | "draft" | "issue" | "send" | * `draft` - Create a draft * `issue` - Issue * `send` - Issue and send | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
clientData | object | Not specifiedNested fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||
saveClientDetails | boolean | Not specified | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
iban | string | null | Not specified | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
bic | string | null | Not specified | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
bankName | string | null | Not specified | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
skipBankDetails | boolean | Not specified |
application/x-www-form-urlencoded
| Field | Type / accepted values | Description | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
client | string (uuid) | null | Not specified | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
invoiceType | "GOODS" | "SERVICES" | * `GOODS` - Goods * `SERVICES` - Services | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
invoicedItems | object[] | Not specifiedNested fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||
currency | string | Not specified | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
currencyExchanged | string | Not specified | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
language | "de" | "en" | "pl" | "it" | "es" | * `de` - German * `en` - English * `pl` - Polish * `it` - Italian * `es` - Spanish | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
isVatIncluded | boolean | Not specified | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
discountPercents | integer | Not specified | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
paymentTerms | string | Not specified | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
notes | string | Not specified | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
instructions | string | Not specified | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
message | string | Not specified | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
taxExemptReason | string | null | Not specified | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
companyEmail | string (email) | null | Not specified | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
createQr | boolean | Not specified | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
settingsOnOverdue | object | null | Not specifiedNested fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||
mailingData | object | null | Not specified | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
onlinePaymentEnabled | boolean | Not specified | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
documentDesign | object | Not specifiedNested fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||
font | string | Not specified | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
colorSchema | string | Not specified | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
sourceContract | string (uuid) | null | Not specified | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
interval | "week" | "month" | "year" | * `week` - Week * `month` - Month * `year` - Year | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
intervalCount | integer | Not specified | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
startsOn | string (date) | Not specified | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
endsOn | string (date) | null | Not specified | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
endsAfter | integer | null | Not specified | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
paymentDueDays | integer | Not specified | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
billingInAdvance | boolean | Not specified | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
mode | "draft" | "issue" | "send" | * `draft` - Create a draft * `issue` - Issue * `send` - Issue and send | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
clientData | object | Not specifiedNested fields
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||
saveClientDetails | boolean | Not specified | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
iban | string | null | Not specified | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
bic | string | null | Not specified | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
bankName | string | null | Not specified | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
skipBankDetails | boolean | Not specified |
Responses
201 Response fields
application/json
| Field | Type / accepted values | Description | ||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
publicIdRequiredRead only | string (uuid) | Not specified | ||||||||||||||||||||||||||||||||||||||||||||||||
status | "active" | "paused" | "ended" | * `active` - Active * `paused` - Paused * `ended` - Ended | ||||||||||||||||||||||||||||||||||||||||||||||||
statusReason | "by_user" | "completed" | "client_removed" | "company_archived" | "plan" | "failed" | "replaced" | "" | Not specified | ||||||||||||||||||||||||||||||||||||||||||||||||
lastError | string | Not specified | ||||||||||||||||||||||||||||||||||||||||||||||||
nextRunOn | string (date) | null | Not specified | ||||||||||||||||||||||||||||||||||||||||||||||||
periodStartRequiredRead only | string (date) | null | Not specified | ||||||||||||||||||||||||||||||||||||||||||||||||
runsMade | integer | Not specified | ||||||||||||||||||||||||||||||||||||||||||||||||
fullCost | integer (int64) | null | Not specified | ||||||||||||||||||||||||||||||||||||||||||||||||
fullCostOrigin | string (decimal) | null | Not specified | ||||||||||||||||||||||||||||||||||||||||||||||||
isReverseCharged | boolean | Not specified | ||||||||||||||||||||||||||||||||||||||||||||||||
createdRequiredRead only | string (date-time) | Not specified | ||||||||||||||||||||||||||||||||||||||||||||||||
interval | "week" | "month" | "year" | * `week` - Week * `month` - Month * `year` - Year | ||||||||||||||||||||||||||||||||||||||||||||||||
intervalCount | integer | Not specified | ||||||||||||||||||||||||||||||||||||||||||||||||
startsOnRequired | string (date) | Not specified | ||||||||||||||||||||||||||||||||||||||||||||||||
endsOn | string (date) | null | Not specified | ||||||||||||||||||||||||||||||||||||||||||||||||
endsAfter | integer | null | Not specified | ||||||||||||||||||||||||||||||||||||||||||||||||
paymentDueDays | integer | Not specified | ||||||||||||||||||||||||||||||||||||||||||||||||
billingInAdvance | boolean | Not specified | ||||||||||||||||||||||||||||||||||||||||||||||||
mode | "draft" | "issue" | "send" | * `draft` - Create a draft * `issue` - Issue * `send` - Issue and send | ||||||||||||||||||||||||||||||||||||||||||||||||
client | string (uuid) | null | Not specified | ||||||||||||||||||||||||||||||||||||||||||||||||
invoiceType | "GOODS" | "SERVICES" | * `GOODS` - Goods * `SERVICES` - Services | ||||||||||||||||||||||||||||||||||||||||||||||||
invoicedItemsRequired | object[] | Not specifiedNested fields
| ||||||||||||||||||||||||||||||||||||||||||||||||
currencyRequired | string | Not specified | ||||||||||||||||||||||||||||||||||||||||||||||||
currencyExchangedRequired | string | Not specified | ||||||||||||||||||||||||||||||||||||||||||||||||
language | "de" | "en" | "pl" | "it" | "es" | * `de` - German * `en` - English * `pl` - Polish * `it` - Italian * `es` - Spanish | ||||||||||||||||||||||||||||||||||||||||||||||||
isVatIncluded | boolean | Not specified | ||||||||||||||||||||||||||||||||||||||||||||||||
discountPercents | integer | Not specified | ||||||||||||||||||||||||||||||||||||||||||||||||
paymentTerms | string | Not specified | ||||||||||||||||||||||||||||||||||||||||||||||||
notes | string | Not specified | ||||||||||||||||||||||||||||||||||||||||||||||||
instructions | string | Not specified | ||||||||||||||||||||||||||||||||||||||||||||||||
message | string | Not specified | ||||||||||||||||||||||||||||||||||||||||||||||||
taxExemptReason | string | null | Not specified | ||||||||||||||||||||||||||||||||||||||||||||||||
companyEmail | string (email) | null | Not specified | ||||||||||||||||||||||||||||||||||||||||||||||||
createQr | boolean | Not specified | ||||||||||||||||||||||||||||||||||||||||||||||||
settingsOnOverdue | object | null | Not specified | ||||||||||||||||||||||||||||||||||||||||||||||||
mailingData | object | null | Not specified | ||||||||||||||||||||||||||||||||||||||||||||||||
onlinePaymentEnabled | boolean | Not specified | ||||||||||||||||||||||||||||||||||||||||||||||||
documentDesign | object | Not specifiedNested fields
| ||||||||||||||||||||||||||||||||||||||||||||||||
font | string | Not specified | ||||||||||||||||||||||||||||||||||||||||||||||||
colorSchema | string | Not specified | ||||||||||||||||||||||||||||||||||||||||||||||||
sourceContract | string (uuid) | null | Not specified | ||||||||||||||||||||||||||||||||||||||||||||||||
clientName | string | Not specified | ||||||||||||||||||||||||||||||||||||||||||||||||
upcomingRequiredRead only | object[] | Not specified | ||||||||||||||||||||||||||||||||||||||||||||||||
invoicesRequiredRead only | object[] | Not specified |
400 Response fields
application/json
| Field | Type / accepted values | Description |
|---|---|---|
fieldRequired | string | Not specified |
code | integer | Not specified |
messageRequired | string | Not specified |
type_ | string | Not specified |
401 Response fields
application/json
| Field | Type / accepted values | Description |
|---|---|---|
detailRequiredRead only | string | Not specified |
403 Response fields
application/json
| Field | Type / accepted values | Description |
|---|---|---|
detailRequiredRead only | string | Not specified |
404 Response fields
application/json
| Field | Type / accepted values | Description |
|---|---|---|
detailRequired | string | Not specified |
codeRequired | integer | Not specified |
type_Required | string | Not specified |
fieldRequired | string | Not specified |
429 Rate limit exceeded. Wait for the Retry-After header before retrying.
Use the base URL https://api.norman.finance/api/v1. Sign up or log in to Norman to create an API key, then send it as a Bearer token. For an OpenAPI JSON file, contact support.