Edit and resubmit a sales invoice
Updates and resubmits a specific sales invoice after fixing validation or transmission issues. See the right panel for request samples and response JSON.
Rate limit
See Rate limiting for response headers (X-RateLimit-*) and retry guidance.
Path parameters
Request body
Resubmit requires the complete sales invoice JSON — send the full document payload again, not a partial patch. Include every root-level field you would send on create; corrected values replace the stored document. Omitting fields may clear or reset them.
See Request payload for the full UBL-aligned field catalogue.
Do not send: accounting_supplier_party — the API sets the supplier from {supplier_profile_id}. Do not send calculated or system fields (id, org_id, document_sequence, status, totals, meta_info, etc.) — those appear in the response only.
Resubmit condition
Resubmit is allowed only when all of the following are true:
The document lifecycle
statusisACTIVE(obsolete documents cannot be resubmitted)The document was not received over Peppol (
document_sourceis notPEPPOL)meta_info.peppol_statusis present (if missing or still pending, the API returns 400)At least one of:
meta_info.peppol_status.overall_statusisVALIDATION_FAILEDorREJECTEDmeta_info.peppol_status.participant_statusisREJECTEDmeta_info.peppol_status.validation_resultsis a non-empty array
System behavior
On successful resubmit:
The existing document is marked
OBSOLETEA new document is created with
statusACTIVE, a new `uuid`, the samedocument_number, and clearedmeta_infoValidation, QR generation, and Peppol submission restart for the new document (same
document-createdevent path as create)List endpoints return only active documents; the obsolete version remains retrievable by its original UUID
Response
Status code: 200 OK
Returns the new invoice object (not the obsolete original). System-generated and calculated fields match create, including seller_uuid, qr_code_base64, and monetary totals. The response status is ACTIVE.
Attachments
If you include attachments, each item requires file_name, file_type, and Base64 file_content. On resubmit, omit attachments to keep the existing set, or send a new array to replace it.
Error responses
{
"errors": {
"document_status": "document status is still pending state you cannot resubmit"
}
}{
"errors": {
"document_status": "Obsolete documents cannot be resubmitted"
}
}