Bulk Documentation
Product referenceOperationsFinance

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 Issued through Sent and Confirmed to the terminal Issued Confirmed state — 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:

DraftPending approvalApprovedIssuedSentConfirmedIssued 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 familyStatuses it coversMeaning
DraftDraft, Pending approval, ApprovedStill being prepared or reviewed; editable only in Draft
IssuedIssued, Sent, ConfirmedA permanent document exists and is moving through confirmation
Issued ConfirmedIssued ConfirmedFully finalised and locked; cannot be voided
VoidedVoidedCancelled 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 Approved first. A draft over the threshold shows Submit for approval instead of Issue, and issuing it directly fails with This 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

  1. In the left navigation, open Finance, then Invoices (the invoices list at /finance/invoices).
  2. Select the invoice you want to issue. It opens on the invoice detail page.
  3. 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 Approved invoice also shows Issue. The control is disabled when the backend says the action is not allowed.
  4. 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.
  5. 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 more count 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.
  6. Choose Issue to confirm. A confirmation message reads Invoice <number> issued with the new permanent number.
A ready invoice draft header with Issue and Discard actions.
A ready draft exposes Issue as its primary header action and keeps Discard beside it.

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:

ModeWhat happens
ManualYou advance the invoice by hand: IssuedMark sentConfirmMark issued-confirmed.
ImmediateIssuing confirms the invoice straight away. It jumps to Issued Confirmed in the same action, with no extra steps.
WorkflowA 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:

  1. Mark sent — moves IssuedSent. Use it once you have sent the invoice to the customer. The message reads Invoice marked as sent.
  2. Confirm — moves SentConfirmed. Use it once the customer has acknowledged the invoice. The message reads Invoice confirmed.
  3. Mark issued-confirmed — moves ConfirmedIssued Confirmed, the terminal locked state. The message reads Invoice 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.

An issued invoice header with Mark sent and an overflow menu containing Create credit note and Void.
The next manual lifecycle step is the primary button; credit-note and void actions remain in the overflow menu when allowed.

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 to Issued Confirmed in 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 Confirmed ends 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 Sent or Confirmed, 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 symptomWhat 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 configuredThe 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 issueThe 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 serviceThat 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 failureThe 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 invoiceIssued 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 invoiceThe invoice is in Immediate or Workflow confirmation mode, you lack the required permission, or the customer's operational status blocks invoice issue/send actions.