Updates multiple sales invoices. Returns 200 on success, or 400 if any entry fails validation.
Headers
-
API token (can be retrieved from account settings)
-
ID of organization, for which the operation must be performed
Body
Required
-
Entity ID. If negative value, a new entity will be created
-
Journal entry ID
-
Invoice number
-
Invoice date (format dd/MM/yyyy)
-
Client contact ID
-
Client address ID
-
Invoice client address. If clientAddressId is not provided, a new invoice client address can be specified.
-
Our contact ID
-
Client's internal contact ID
-
Client name for display
-
Internal reference
-
Client's reference
-
Currency ID
-
Invoice description
-
Internal comments
-
Receivable chart of accounts ID
-
VAT type code ID
-
Whether this invoice is excluded from VAT reporting
-
Accrual period start date (format dd/MM/yyyy)
-
Accrual period end date (format dd/MM/yyyy)
-
Whether the invoice is validated. Only applied if the current user has validation permission
-
Line item of a sales invoice
-
Layout tree node grouping and ordering sales invoice lines. Processed into a materialized path structure on the server; the recursive children field is required to define the tree since the server does not use a flat parentId reference for this endpoint.
-
Payment record for a sales invoice
-
Timesheet entry billed through a sales invoice
curl \
--request POST 'https://wyzio.app/api-v1/sales-invoice/batch' \
--header "Content-Type: application/json" \
--data '[{"id":12345678,"journalEntryId":12345678,"number":"2026-0001","date":"01/06/2026","clientId":12345678,"clientAddressId":12345678,"address":{"id":12345678,"name":"Main Office","line1":123,"line2":"Suite 4B","city":"Geneva","region":{"id":206},"countryCode2":"CH","countryId":12345678,"postCode":1200,"houseNumber":42,"toTheAttentionOf":"John Doe","position":1,"service":"HR"},"ourContactId":12345678,"yourContactId":12345678,"clientName":"Acme Corp","reference":"REF-2026-001","yourReference":"PO-2026-100","currencyId":12345678,"description":"Consulting services Q2 2026","comments":"Approved by finance","receivableAccountId":12345678,"vatTypeCodeId":12345678,"excludedFromVat":false,"accrualFrom":"01/01/2026","accrualTo":"31/03/2026","validated":false,"invoiceLines":[{"id":12345678,"tempId":-1,"lineType":"ARTICLE","quantity":5.0,"articleId":12345678,"description":"Consulting hours","longDescription":"string","netUnitPrice":150.0,"discount":0.0,"totalNet":750.0,"vatRateId":12345678,"vat":58.5,"totalPrice":808.5,"saleAccountId":12345678,"departmentId":12345678,"allocationKey":"50/50","appliedAllocationRules":["string"],"vatTypeCodeId":12345678,"officeId":12345678}],"invoiceLinesLayout":[{"id":-1,"name":"Consulting Services","position":1,"lineType":"HEADER","salesInvoiceLineId":12345678,"sourceOrderId":12345678,"children":[]}],"payments":[{"id":12345678,"receivableByAccountId":12345678,"requestedDate":"01/06/2026","overdueDate":"15/07/2026","valueDate":"05/06/2026","sentDate":"05/06/2026","requestedAmount":1200.0,"paidAmount":1200.0,"bankCharges":5.0,"lossOnDebtors":0.0,"qrBillData":"SPC...","qrReferenceNumber":210000000003139471430009017}],"timesheetInfoItems":[{"id":12345678,"date":"01/06/2026","description":"Development work","time":8.0,"billableAmount":800.0,"billableRate":100.0,"employeeContactId":12345678,"originalTimesheetId":12345678,"employeeTaskId":12345678}]}]'
# Headers
# Payload
[
{
"id": 12345678,
"journalEntryId": 12345678,
"number": "2026-0001",
"date": "01/06/2026",
"clientId": 12345678,
"clientAddressId": 12345678,
"address": {
"id": 12345678,
"name": "Main Office",
"line1": 123,
"line2": "Suite 4B",
"city": "Geneva",
"region": {
"id": 206
},
"countryCode2": "CH",
"countryId": 12345678,
"postCode": 1200,
"houseNumber": 42,
"toTheAttentionOf": "John Doe",
"position": 1,
"service": "HR"
},
"ourContactId": 12345678,
"yourContactId": 12345678,
"clientName": "Acme Corp",
"reference": "REF-2026-001",
"yourReference": "PO-2026-100",
"currencyId": 12345678,
"description": "Consulting services Q2 2026",
"comments": "Approved by finance",
"receivableAccountId": 12345678,
"vatTypeCodeId": 12345678,
"excludedFromVat": false,
"accrualFrom": "01/01/2026",
"accrualTo": "31/03/2026",
"validated": false,
"invoiceLines": [
{
"id": 12345678,
"tempId": -1,
"lineType": "ARTICLE",
"quantity": 5.0,
"articleId": 12345678,
"description": "Consulting hours",
"longDescription": "string",
"netUnitPrice": 150.0,
"discount": 0.0,
"totalNet": 750.0,
"vatRateId": 12345678,
"vat": 58.5,
"totalPrice": 808.5,
"saleAccountId": 12345678,
"departmentId": 12345678,
"allocationKey": "50/50",
"appliedAllocationRules": [
"string"
],
"vatTypeCodeId": 12345678,
"officeId": 12345678
}
],
"invoiceLinesLayout": [
{
"id": -1,
"name": "Consulting Services",
"position": 1,
"lineType": "HEADER",
"salesInvoiceLineId": 12345678,
"sourceOrderId": 12345678,
"children": []
}
],
"payments": [
{
"id": 12345678,
"receivableByAccountId": 12345678,
"requestedDate": "01/06/2026",
"overdueDate": "15/07/2026",
"valueDate": "05/06/2026",
"sentDate": "05/06/2026",
"requestedAmount": 1200.0,
"paidAmount": 1200.0,
"bankCharges": 5.0,
"lossOnDebtors": 0.0,
"qrBillData": "SPC...",
"qrReferenceNumber": 210000000003139471430009017
}
],
"timesheetInfoItems": [
{
"id": 12345678,
"date": "01/06/2026",
"description": "Development work",
"time": 8.0,
"billableAmount": 800.0,
"billableRate": 100.0,
"employeeContactId": 12345678,
"originalTimesheetId": 12345678,
"employeeTaskId": 12345678
}
]
}
]
{
"items": [
{
"errorCode": {
"errorCode": "NO_ERROR",
"errorDetailValues": [
{
"errorCode": "string",
"fieldName": "string",
"data": "string",
"isSevere": true
}
]
},
"possibleWorkflows": [
{
"id": 42,
"name": "string"
}
],
"error": true,
"severeError": true
}
]
}