Issue or confirm an invoice
Issue an approved or ready draft invoice to lock it and assign its permanent number, then advance it through the confirmation track to Issued Confirmed.
In Bulk, an invoice moves through a fixed sequence of statuses from the moment it is drafted to the point it is fully finalised. Issuing and confirming are the two actions that move an invoice through the later part of that sequence:
- Issuing is the financial commit. It turns a ready draft (or an approved invoice) into a permanent, locked document: Bulk assigns the real invoice number, freezes the customer, seller, currency, custom fields, and line detail onto the document, generates the PDF, and — for standard invoices built from production jobs — marks the billed jobs as invoiced.
- Confirming advances an already-issued invoice along the confirmation track — the run of statuses from
IssuedthroughSentandConfirmedto the terminalIssued Confirmedstate — so your records show that the invoice has been sent to the customer and acknowledged.
You issue an invoice once its lines and prices are correct and any required approval is complete. You confirm it afterward to keep the invoice's status in step with what has actually happened in the real world.
The invoice lifecycle
The legal status progression is:
Draft → Pending approval → Approved → Issued → Sent → Confirmed → Issued Confirmed, plus the terminal Voided.
Approval is optional: a ready draft that does not need approval moves directly
from Draft to Issued. An invoice in Immediate confirmation mode moves
from Issued to Issued Confirmed as part of the same issue action.
Bulk groups these statuses into four badge families for at-a-glance reading:
| Badge family | Statuses it covers | Meaning |
|---|---|---|
| Draft | Draft, Pending approval, Approved | Still being prepared or reviewed; editable only in Draft |
| Issued | Issued, Sent, Confirmed | A permanent document exists and is moving through confirmation |
| Issued Confirmed | Issued Confirmed | Fully finalised and locked; cannot be voided |
| Voided | Voided | Cancelled after issue; jobs and credits released |
Issuing is the single step that crosses from the Draft family into the Issued family. Everything after it belongs to the confirmation track.
Before you can issue
Issuing runs a set of checks. An invoice can only be issued when all of these are true:
- Your invoicing profile is configured. The entity needs a complete "bill from" seller profile (name and address). If it is missing, issuing fails with
Invoicing profile not configured. - The invoice has at least one priced line and a total greater than zero. A draft with no lines, or a zero-value total, cannot be issued.
- The invoice has no more than 200 lines.
- Any required invoice fields are filled. Custom fields marked required on your entity must have values.
- Invoice service lines have finished updating. Assigning or removing a service on a linked job rebuilds the draft lines in the background. While that sync is running, lifecycle controls show Updating… and remain disabled.
- Approval is complete when it is required. If your entity requires approval and the invoice total is at or over the approval threshold, the invoice must reach
Approvedfirst. A draft over the threshold showsSubmit for approvalinstead ofIssue, and issuing it directly fails withThis invoice needs approval before it can be issued. - For standard invoices, the linked jobs are still invoiceable. Each job must still be eligible, in the invoice's currency, still belong to the order, and not already sit on another non-voided invoice.
- The customer is not blocked from invoice issue/send. A customer operational status can suppress issue, approval submission, and confirmation actions. Voiding an already-issued invoice remains a separate action.
Issuing requires the production_invoicing.issue permission, which the Invoicing, Manager, and Entity admin roles carry by default. Confirming (the Sent / Confirmed / Issued Confirmed steps) requires production_invoicing.confirm, which those roles also carry and which the Operator role additionally holds — so an operator can confirm an issued invoice even though they cannot issue one.
Where confirmation behaviour is set
Whether you confirm invoices by hand, automatically at issue, or through a connected workflow is controlled by the Confirmation after issue setting in your entity's invoicing profile. See Configure the invoicing profile.
Check services, jobs, and custom fields on the draft
For a standard invoice, the detail page shows both a Services card and a Jobs sheet. The Services column in the Jobs sheet controls which order services apply to each linked job. A job contributes invoice lines only when it has at least one active order service assigned.
Jobs without a service do not block the draft by themselves. The Services card warns how many linked jobs have no service and explains the result: when you issue, Bulk removes those jobs from this invoice and leaves them open for a later invoice. Assign a service first if they should be billed now.
If the invoice has configured custom fields, the Custom fields card also appears on the draft detail page. Fill required values there before issuing. Custom-field and note edits autosave, and Bulk flushes any pending edit before the issue request so a value typed just before Issue is not lost. Submitted and approved invoices show saved custom-field values read-only; issued invoices keep the frozen snapshot used for the document and PDF.
Issue an invoice
- In the left navigation, open Finance, then Invoices (the invoices list at
/finance/invoices). - Select the invoice you want to issue. It opens on the invoice detail page.
- In the page header, choose the primary Issue button. A draft always shows
its next lifecycle action: Submit for approval when approval is required,
otherwise Issue. An
Approvedinvoice also shows Issue. The control is disabled when the backend says the action is not allowed. - Wait if the primary action says Preparing… or Updating…. Preparing… means Bulk is loading the billed-jobs preview; Updating… means a service change is still rebuilding invoice lines. Both the lifecycle action and the draft's Discard action stay disabled during service sync.
- Review the Issue invoice? dialog. It summarises the Customer,
Order, Draft number, and Total. For a standard invoice it also
lists Jobs billed on this invoice. Up to eight job numbers are shown,
followed by a
+N morecount when needed. A warning identifies linked jobs with no service and explains that they will be removed from this invoice and left open. The dialog's Issue button remains disabled if the preview or service sync is not ready. - Choose Issue to confirm. A confirmation message reads
Invoice <number> issuedwith the new permanent number.

finance.issue-invoice-01
Once you confirm:
- Bulk assigns the next gapless permanent invoice number, replacing the temporary
DRAFT-placeholder. - The issue date is set (today unless you supplied one) and the due date is calculated from your entity's payment terms — 30 days after the issue date when no other term is set.
- The customer, seller, currency, and custom-field snapshots are frozen onto the document so the issued invoice stays self-contained even if that master data later changes.
- The invoice PDF is generated in the background. The header first shows
Preparing PDF…, then a Download PDF button once it is ready. - For a standard invoice, the covered production jobs are stamped as invoiced and their invoicing routing step is completed.
If one or more billed jobs are currently at the shop-floor Invoicing routing
step, issuing opens a Job updates progress dialog after the financial commit.
It moves through Queued, Updating jobs, and Complete, and shows the
processed count as N / total. The dialog cannot be dismissed while work is
running. Jobs that no longer need that routing update are counted as processed
but skipped. If the update fails, the invoice is still issued; the dialog shows
the failure because routing completion happens after the financial commit.
When none of the billed jobs is currently at an Invoicing routing step, there is no routing-completion job and no progress dialog.
Issuing locks the invoice
An issued invoice cannot be edited. To change one, you must void it and create a replacement. Voiding is available while the invoice is Issued, Sent, or Confirmed, but not once it reaches Issued Confirmed.
Confirm an issued invoice
After issue, an invoice sits at Issued. How it advances to Issued Confirmed depends on the Confirmation after issue mode frozen onto the invoice when you issued it:
| Mode | What happens |
|---|---|
| Manual | You advance the invoice by hand: Issued → Mark sent → Confirm → Mark issued-confirmed. |
| Immediate | Issuing confirms the invoice straight away. It jumps to Issued Confirmed in the same action, with no extra steps. |
| Workflow | A connected workflow advances the invoice to confirmed automatically. Manual confirmation actions are not offered. |
Advance a manual invoice by hand
When the invoice is in Manual mode, open its detail page. The next legal step is the primary button in the header:
- Mark sent — moves
Issued→Sent. Use it once you have sent the invoice to the customer. The message readsInvoice marked as sent. - Confirm — moves
Sent→Confirmed. Use it once the customer has acknowledged the invoice. The message readsInvoice confirmed. - Mark issued-confirmed — moves
Confirmed→Issued Confirmed, the terminal locked state. The message readsInvoice marked issued-confirmed.
You cannot skip a step. Each action only advances the invoice one status, so the confirmation history always reflects the real order of events.
The three-dot More invoice actions menu is separate from that lifecycle button. When allowed, it contains Create credit note and Void.

finance.issue-invoice-03
Example: Granite Peak Manufacturing
Granite Peak Manufacturing runs its Leeds Fabrication Plant with Manual confirmation so the finance team keeps a clear record of when each invoice was sent and acknowledged.
Dana Winters, the plant's finance lead, has just finished a standard invoice for customer Northgate Rail covering three completed fabrication jobs on order SO-4471. The plant requires approval for invoices over 5,000 GBP, and this one totals 8,240 GBP, so a colleague has already approved it — the invoice sits at Approved.
Dana opens the invoice from Finance → Invoices, chooses Issue, and reviews
the billed-job preview. If all three jobs have services, she confirms. Bulk
assigns invoice number INV-002091, sets a due date 30 days out, marks the three
jobs as invoiced, and starts the PDF. When Dana emails the PDF to Northgate Rail,
she returns to the invoice and chooses the primary Mark sent button. A week
later, when Northgate confirms receipt, she chooses Confirm, and finally
Mark issued-confirmed to close the record. The badge now reads
Issued Confirmed, and the invoice can no longer be voided.
What to expect after issuing
- The invoice badge changes from a Draft-family status to
Issued(or straight toIssued Confirmedin Immediate mode). - The invoice carries a permanent number, an issue date, and a due date.
- A downloadable PDF appears in the header once generation finishes.
- Billed standard-invoice jobs no longer appear as awaiting invoicing. Linked jobs without services are removed from this invoice and stay open.
- When billed jobs require their shop-floor Invoicing step to be completed, the Job updates dialog reports progress after issue.
- The full sequence of issue and confirmation events is recorded in the invoice's history, each stamped with who acted and when.
Feature state and limitations
Invoicing is generally available. Keep these behaviours in mind:
- Issued invoices are immutable. There is no edit path after issue — correct mistakes by voiding and reissuing.
Issued Confirmedends the lifecycle track. It has no further confirmation step and cannot be voided. If permitted, Create credit note can still be available for the financial correction workflow.- Confirmation mode is frozen at issue. Changing the entity's Confirmation after issue setting later does not change how already-issued invoices behave; each invoice keeps the mode it had when it was issued.
- Confirmation steps are one-way and single-step. You cannot skip
SentorConfirmed, and there is no built-in "un-send" — the track only moves forward. - Only billed standard-invoice jobs are updated. Miscellaneous invoices have no linked jobs. Standard-invoice jobs without an active service are removed and stay open, and only billed jobs currently at an Invoicing routing step are included in routing-completion progress.
Troubleshooting
| Message or symptom | What it means and how to recover |
|---|---|
This invoice needs approval before it can be issued. | The invoice total is at or over your entity's approval threshold. Choose Submit for approval, have a designated approver approve it, then issue the Approved invoice. See Submit and approve an invoice. |
Invoicing profile not configured | The entity's seller ("bill from") details are incomplete. An administrator must complete the invoicing profile before any invoice can be issued. See Configure the invoicing profile. |
The Issue button is disabled with a hint like Add a priced line to issue | The invoice has no priced lines or a zero total. Add at least one line with a price so the total is greater than zero. |
| The draft actions say Updating… | A service assignment changed and Bulk is rebuilding the invoice lines. Wait for both the lifecycle and Discard actions to become available. If they do not recover, retry the service change or contact support. |
| The issue action says Preparing… | Bulk is loading the billed-jobs preview. Wait for the preview to finish before interpreting the dialog's job count. |
| The dialog says a linked job has no service | That job will not be billed now. Cancel and assign an active service if it belongs on this invoice, or continue and Bulk will remove it from this invoice and leave it open. |
| A job "is no longer available to invoice" or "is already on another invoice" | A linked job's status changed, its currency no longer matches, or it was invoiced elsewhere since the draft was built. Remove or replace the affected job, then issue again. |
| Job updates reports a failure | The invoice has already been issued. The failure concerns the later routing-step update, so note the affected jobs and contact support; do not issue the invoice again. |
| You need to change an already-issued invoice | Issued invoices are locked. Void the invoice (while it is Issued, Sent, or Confirmed) and create a replacement. See Void an invoice. |
| The confirmation action is missing on an issued invoice | The invoice is in Immediate or Workflow confirmation mode, you lack the required permission, or the customer's operational status blocks invoice issue/send actions. |