Developers

PUBLIC API v1

Extract an invoice proposal from a contract

POST /api/v1/companies/{company_pk}/invoices/contract-draft/

Stores the source contract and returns terms for review. Does not create or send invoices. The draft uses major currency units for line rates; invoice creation uses minor units. Maximum file size: 10 MB.

Permission: write_invoices write_documents read_clients · Direct link

Company-scoped. Account permissions, plan limits and document state still apply.

Path and query parameters

ParameterLocation / typeDescription
company_pkRequiredpath · string (uuid)Not specified

Request body

application/json

FieldType / accepted valuesDescription
filestring (binary)Not specified
attachmentIdstring (uuid)Not specified
contextAttachmentIdstring (uuid)Not specified
fileContentBase64stringNot specified
filenamestringNot specified

multipart/form-data

FieldType / accepted valuesDescription
filestring (binary)Not specified
attachmentIdstring (uuid)Not specified
contextAttachmentIdstring (uuid)Not specified
fileContentBase64stringNot specified
filenamestringNot specified

application/x-www-form-urlencoded

FieldType / accepted valuesDescription
filestring (binary)Not specified
attachmentIdstring (uuid)Not specified
contextAttachmentIdstring (uuid)Not specified
fileContentBase64stringNot specified
filenamestringNot specified

Responses

200 Response fields

application/json

FieldType / accepted valuesDescription
sourceContractRequiredstring (uuid)Not specified
sourceContractNameRequiredstringNot specified
draftRequiredobjectProposal for review. Line rates use major currency units; convert to minor units before creating an invoice.
clientDataRequiredobjectNot specified
reviewNotesRequiredstring[]Not specified
401 The API key is invalid, expired or revoked.
403 Missing scope, company mismatch, unsupported operation, or a plan/account restriction.
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.