Skip to main content
POST
Confirm delivery for a purchase invoice

Authorizations

Authorization
string
header
required

Portal API key minted in portal Settings → API access. Scope read or write; pinned to one company. Send as Authorization: Bearer lac_sk_....

Path Parameters

bill_id
string
required

Exact opaque purchase-bill entity ID, URL-encoded as one path segment. Preserve a literal bill: prefix or whitespace; this parameter is not the family-qualified row ID used by the unified invoice record route.

Body

application/json
customer_id
string
required
revision
string
required

Current commercial/source review revision from the invoice read model; accounting-only coding is excluded.

Pattern: ^sha256:[0-9a-f]{64}$
decision
enum<string>
required
Available options:
accepted,
returned
idempotency_key
string
required
Required string length: 8 - 128
Pattern: ^[A-Za-z0-9][A-Za-z0-9._:/-]{7,127}$
reason
string

Required for a returned decision; empty for acceptance.

Response

Updated purchase invoice.

One sales invoice, sales draft, or purchase invoice. Amounts are integer cents; interior fields beyond the stable ones vary by status.

id
string
status
string
draft_saved_at
string

Time the canonical draft was last saved; empty for issued invoices.

delivery_channel
string
document_type
enum<string>
Available options:
invoice,
credit_note
original_invoice_id
string
original_invoice_number
string
original_invoice_date
string<date>
correction_reason
string
credited_cents
integer<int64>
paid_cents
integer<int64>

Live allocated payment amount in integer cents.

open_cents
integer<int64>

Amount still outstanding in integer cents.

can_cancel_before_sending
boolean

True only when this issued Maventa invoice has one queued intent, no provider attempt or id, no payment or earlier correction, and an active original journal. The write route repeats these checks under the outbound and journal locks.

seller_name
string

Customer-facing seller name captured for this invoice.

Registered legal seller name captured for this invoice.

seller_business_id
string

Seller Business ID captured for this invoice.

seller_iban
string

Payment account captured for this invoice.

payment_reference_issue
string

Unresolved creditor-reference uncertainty from the canonical purchase readiness owner; empty when no issue is recorded.

seller_profile_id
string

Partner seller profile id; empty for the tenant's own sale.

posts_ledger
boolean

False for a partner sale. Such an invoice is excluded from this company's journal, VAT facts, receivables, aging, and overdue controls.

partner_copy_status
enum<string>

Delivery state of the partner's bookkeeping PDF copy.

Available options:
not_required,
no_contact_email,
pending,
sending,
sent,
failed,
ambiguous
partner_copy_error
string

Latest partner-copy delivery error.

pdf_available
boolean

Whether the exact issued PDF is registered as retained evidence.

pdf_document_id
string

Canonical evidence-document id for the issued PDF.

pdf_sha256
string

SHA-256 of the exact bytes returned by the PDF endpoint.

Pattern: ^[0-9a-f]{64}$
pdf_size_bytes
integer<int64>

Size of the retained PDF in bytes.

approval_status
enum<string>

Where this draft stands with its approver, for a company whose invoice_approval_policy is required. Meaningful only while the row is a draft; an issued invoice carries an empty value because approval no longer applies to it. Changing a draft resets this to none: the approval was for the invoice as written.

Available options:
none,
awaiting,
approved,
rejected
approval_requested_by
string

Who asked for approval.

approval_request_id
string

Stable identity of the current approval request.

Pattern: ^[0-9a-f]{32}$
approval_decided_by
string

Which approver approved it or sent it back.

approval_reason
string

Why an approver did not approve it.

approval_created_by
string

Who created the draft; this person cannot decide it.

approval_revision
string

Material sales invoice revision that approve or return must echo.

Pattern: ^[0-9a-f]{64}$
approval_returned_revision
string

Material revision that was returned. A new request needs a different current revision.

Pattern: ^[0-9a-f]{64}$
review_revision
string

Current commercial/source review revision of a purchase invoice; accounting-only coding is excluded.

payment_claimed_by_batch
boolean

A live unsettled payment batch owns this bill, including an unreleased preparation. Resolve that attempt before inviting a competing manual transfer. This fact does not grant access to other sources in its batch.

review_next_action
enum<string>
Available options:
verify,
approve,
returned,
approved,
ready_for_payment,
payment_prepared,
payment_in_progress,
paid,
source_unavailable,
payment_details_missing
review_stale_reasons
enum<string>[]

Every cause LAC can prove for an earlier decision no longer applying to this version, from the audited einvoice payment-detail enrichment, ordered most-blocking first. Empty when no decision was superseded or no cause is provable. Never complete: an amount or due date can move with nothing to prove it, so clients must keep the general "details changed" warning beside whatever this names.

Available options:
payment_reference_added,
payment_reference_corrected,
payment_reference_ambiguous,
payment_reference_ambiguity_resolved,
payee_account_added
review_can_decide
boolean

Whether this person may perform the next purchase review action. Follows the membership record exactly: an admin who stepped out of a stage in the approval flow reads false here like anyone else without the capability.

review_owners
object[]

Whose move the open review step is: the active members holding its capability, minus the bill's maker and, under verify_and_approve, the person who verified it. Absent when the membership ledger could not be read; empty when nobody can decide the step.

agent_review
object

A read-only recommendation about the current invoice facts. It never approves, returns, pays, or sends a reminder.

review_history
object[]
review_evidence
object[]
has_original
boolean

Whether a retained supplier-invoice source document is available; explicit receipt/supporting attachments do not qualify.

customer
object

An invoicing counterparty (the customer you invoice), with e-invoice routing and per-party defaults. Rates in basis points (25.5% = 2550).

lines
object[]

One invoice line. Money in integer cents; VAT rate in basis points; quantity is a decimal string.