Upload invoice
Create or update one invoice with its PDF from your own billing system. It lists in the Invoices table with the synced ones, and the company’s portal users can open the PDF there. Send the PDF inline as base64. The record is keyed by externalId: push it again to update it, for example when it is paid; omit pdf to keep the stored one. Requires financial.write and the linked user’s write_settings_integrations permission; staff API keys only. No PSA or quoting integration is needed.
Authorizations
Use your API key as a Bearer token. API keys can be generated in Settings → Integrations → API Access.
Body
Your system's id for the record. Pushing the same externalId again updates the record instead of creating a second one.
1 - 255Invoice number; at most 18 digits in total
1 - 100"2026-1042"
MSPortal company (client) id, from GET /api/public/v1/companies. Its portal users see the record.
^\d{4}-\d{2}-\d{2}$"2026-10-01"
Invoice total; must be greater than 0
0 < x <= 10000000000001190
^\d{4}-\d{2}-\d{2}$Set when paid; marks the invoice closed
^\d{4}-\d{2}-\d{2}$Status shown in the table
100"Open"
Defaults to Standard
100ISO 4217 currency code
^[A-Za-z]{3}$"EUR"
-1000000000000 <= x <= 1000000000000-1000000000000 <= x <= 1000000000000-1000000000000 <= x <= 1000000000000Amount still due; defaults to 0 when paidDate is set, otherwise total minus payments
-1000000000000 <= x <= 1000000000000255100The document the client opens in the portal. Required the first time an externalId is pushed; omit it on a later push to keep the stored PDF.
Response
invoice updated