# CreateVendorInvoiceInput

input type

Create-input for createVendorInvoice.

## Fields

| Field | Type | Required | Notes |
| --- | --- | --- | --- |
| `caption` | [String](/types/#scalars) | no | Optional: when omitted the vendor invoice number IS the caption; when supplied it must be non-blank. |
| `purchaseOrderId` | [ID](/types/#scalars) `ID!` | yes | The PurchaseOrder this bill captures against (rides the HEADER parentId) — tenant-scoped + past-issue server-side (a draft/pending order was never sent; a cancelled one refuses). |
| `invoiceOrgVendorId` | [ID](/types/#scalars) | no | The BILLING OrgVendor — OPTIONAL (defaults to the PO vendor); a carrier/broker onboarded as its own OrgVendor names itself here. ACTIVE-gated. |
| `invoiceNumber` | [String](/types/#scalars) `String!` | yes | The vendor own invoice number (raw spelling stored; trim+case-fold normalized for the double-pay UNIQ pair — a live holder refuses CONFLICT/IDENTITY_TAKEN naming it). |
| `invoiceDate` | [String](/types/#scalars) `String!` | yes | The vendor invoice date (UTC ISO-8601 — their paper date). |
| `matchLines` | [VendorInvoiceMatchLineInput](/types/VendorInvoiceMatchLineInput/) `[VendorInvoiceMatchLineInput!]` | no | The merchandise match lines (≤24, one per PO line) — at-least-one-of with actualComponents. |
| `actualComponents` | [LandedCostComponentInput](/types/LandedCostComponentInput/) `[LandedCostComponentInput!]` | no | The landed-cost ACTUAL components (≤8, amounts in the PO currency) — trued-up at capture against the posted receipts estimates of the same component type. |
| `total` | [MoneyEntryInput](/types/MoneyEntryInput/) | no | Optional vendor-stated grand total (informational; in the PO currency). |
| `notes` | [String](/types/#scalars) | no | Optional free-text notes (max 4096). |

## Used by

- [createVendorInvoice](/reference/purchasing/createVendorInvoice/)
