Update Purchase Invoice Information: purchase-invoices/{id}/information
Purpose
Update the informational metadata of an existing purchase invoice. This endpoint supports partial updates to a purchase invoice's non-financial metadata fields, including the customer purchase order reference, alternate billing dates, alternate issue and due dates, invoice notes, and custom attributes. It does not modify financial fields such as line items, totals, or tax amounts, ensuring that corrections to administrative and reference data can be made safely without affecting the financial integrity of the invoice. Only the fields provided in the request body are updated; omitted fields retain their current values.
Use Case
This endpoint is used to update reference information and metadata on a purchase invoice after it has been created. Common scenarios include adding or correcting the customer purchase order reference number for cross-referencing with the supplier's records, adjusting alternate billing dates to align with internal reporting periods, and adding invoice notes with contextual information such as approval details or dispute resolution outcomes. Finance teams use this endpoint to enrich invoice records with additional metadata that was not available at the time of creation, or to correct data entry errors in non-financial fields. It also supports workflows where custom attributes need to be updated after initial invoice capture, such as tagging invoices with department codes, project references, or compliance flags for downstream reporting and audit purposes.
Path Parameters
| Parameter | Type | Description |
|---|---|---|
| purchase_invoice_id | String | The unique ID of the purchase invoice (e.g., PI-5Q22OS-0032) |
Query Parameters
No query parameters required.
Request Body
{
"purchase-invoice": {
"issue_date": "2026-03-08",
"due_date": "2026-03-08",
"purchase_order_note": "Purchase order note added"
}
}
Response
Returns the full purchase invoice object with all fields reflecting the current state after the update. The response includes the invoice status, human-readable ID, currency details with link, issue and due dates (including any updated alternate dates), computed financial totals (subtotal, tax, total), the supplier account ID, and the associated purchase order ID. Each line item in the lines array contains the full pricing snapshot with pricing rule details, tax configuration, quantity, and accounting code. The kpis object provides current financial metrics including outstanding amount, overdue amount, payment applied, and credit applied. The externalBankDetails object contains the supplier's banking information. Audit fields (createdBy, createdOn, lastUpdatedBy, lastUpdatedOn) are updated to reflect the modification, and the version field is incremented for optimistic concurrency control.
Response Body
{
"purchaseInvoice": {
"status": "PURCHASE_INVOICE_STATUS",
"id": "PURCHASE_INVOICE_ID",
"customForm": {
"uuid": "CUSTOM_FORM_UUID",
"version": "CUSTOM_FORM_VERSION"
},
"currency": {
"id": "CURRENCY_UUID",
"name": "CURRENCY_CODE",
"link": {
"rel": "LINK_REL",
"href": "LINK_HREF"
}
},
"issueDate": "ISSUE_DATE",
"alternateIssueDate": "ALTERNATE_ISSUE_DATE",
"dueDate": "DUE_DATE",
"alternateDueDate": "ALTERNATE_DUE_DATE",
"subtotal": "SUBTOTAL_AMOUNT",
"tax": "TAX_AMOUNT",
"total": "TOTAL_AMOUNT",
"priceTaxInclusive": "TAX_INCLUSIVE_FLAG",
"accountId": "ACCOUNT_ID",
"purchaseOrderId": "PURCHASE_ORDER_ID",
"createdBy": "CREATED_BY_USER",
"createdOn": "CREATED_ON_DATETIME",
"lastUpdatedBy": "LAST_UPDATED_BY_USER",
"lastUpdatedOn": "LAST_UPDATED_ON_DATETIME",
"uuid": "PURCHASE_INVOICE_UUID",
"version": "PURCHASE_INVOICE_VERSION",
"customAttributes": [],
"customObjects": [],
"lines": [
{
"subtotal": "LINE_SUBTOTAL",
"total": "LINE_TOTAL",
"tax": "LINE_TAX",
"accountingCode": "ACCOUNTING_CODE",
"itemUuid": "ITEM_UUID",
"itemPurchaseOrderQuantity": "PO_QUANTITY",
"itemUom": "UNIT_OF_MEASURE",
"itemWarehouse": "WAREHOUSE",
"uuid": "LINE_UUID",
"version": "LINE_VERSION",
"itemId": "ITEM_ID",
"itemName": "ITEM_NAME",
"itemQuantity": "ITEM_QUANTITY",
"itemPriceSnapshot": {
"pricingRule": {
"uuid": "PRICING_RULE_UUID",
"version": "PRICING_RULE_VERSION",
"priceType": "PRICE_TYPE",
"price": "UNIT_PRICE",
"uom": "UNIT_OF_MEASURE",
"warehouse": "WAREHOUSE",
"pricingVersion": "PRICING_VERSION",
"latestUsedPricingVersion": "LATEST_PRICING_VERSION"
}
},
"itemPriceTax": {
"uuid": "TAX_UUID",
"code": "TAX_CODE",
"rate": "TAX_RATE",
"link": "TAX_LINK"
},
"priceTaxExampt": "TAX_EXEMPT_FLAG"
}
],
"kpis": {
"outstanding": "OUTSTANDING_AMOUNT",
"overdue": "OVERDUE_AMOUNT",
"lastPaymentDate": "LAST_PAYMENT_DATE",
"paymentApplied": "PAYMENT_APPLIED_AMOUNT",
"creditApplied": "CREDIT_APPLIED_AMOUNT",
"creditIssued": "CREDIT_ISSUED",
"lastReactivatedOn": "LAST_REACTIVATED_ON",
"lastCancelledOn": "LAST_CANCELLED_ON",
"lastAmendedOn": "LAST_AMENDED_ON",
"voidedOn": "VOIDED_ON",
"deletedOn": "DELETED_ON"
},
"externalBankDetails": {
"bankName": "BANK_NAME",
"bankCode": "BANK_CODE",
"accountName": "ACCOUNT_NAME",
"accountNumber": "ACCOUNT_NUMBER",
"swiftBicCode": "SWIFT_BIC_CODE",
"abaRouting": "ABA_ROUTING",
"bankAccountNumber": "BANK_ACCOUNT_NUMBER"
}
}
}
| Attribute | Type | Description |
|---|---|---|
| status | String | Invoice status (e.g., ACTIVE, DRAFT) |
| id | String | Human-readable invoice ID |
| customForm | Object | Custom form associated with the invoice |
| currency.id | String | Currency UUID |
| currency.name | String | Currency code (e.g., AUD) |
| currency.link.rel | String | Link relation type |
| currency.link.href | String | Link URL |
| issueDate | String (ISO 8601) | Date the invoice was issued |
| alternateIssueDate | String (ISO 8601) | Alternate issue date |
| dueDate | String (ISO 8601) | Payment due date |
| alternateDueDate | String (ISO 8601) | Alternate due date |
| subtotal | String | Invoice subtotal before tax |
| tax | String | Total tax amount |
| total | String | Invoice total amount |
| priceTaxInclusive | String | Whether prices include tax |
| accountId | String | Supplier account ID |
| purchaseOrderId | String | Associated purchase order ID |
| createdBy | String | Username of the invoice creator |
| createdOn | String (ISO 8601) | Timestamp when the invoice was created |
| lastUpdatedBy | String | Username of the last editor |
| lastUpdatedOn | String (ISO 8601) | Timestamp of the last update |
| uuid | String (UUID) | UUID of the invoice |
| version | String | Version number of the invoice |
| lines | Array | Line items on the invoice |
| lines[].subtotal | String | Line item subtotal before tax |
| lines[].total | String | Line item total amount |
| lines[].tax | String | Tax amount for the line item |
| lines[].accountingCode | String | Accounting code for the line item |
| lines[].itemUuid | String (UUID) | UUID of the item |
| lines[].itemId | String | Human-readable item identifier |
| lines[].itemName | String | Display name of the item |
| lines[].itemQuantity | String | Quantity invoiced |
| lines[].itemPriceSnapshot.pricingRule.priceType | String | Pricing type (e.g., PER_UNIT_PRICING) |
| lines[].itemPriceSnapshot.pricingRule.price | String | Unit price |
| lines[].itemPriceTax.code | String | Tax code applied |
| lines[].itemPriceTax.rate | String | Tax rate percentage |
| lines[].priceTaxExampt | String | Whether the line item is tax exempt |
| lines[].uuid | String (UUID) | UUID of the line item |
| lines[].version | String | Version number of the line item |
| kpis.outstanding | Number | Outstanding amount on the invoice |
| kpis.overdue | Number | Overdue amount on the invoice |
| kpis.lastPaymentDate | String (ISO 8601) | Date of the last payment |
| kpis.paymentApplied | Number | Total payment amount applied |
| kpis.creditApplied | Number | Total credit amount applied |
| kpis.creditIssued | String | Credit issued amount |
| kpis.lastReactivatedOn | String (ISO 8601) | Date the invoice was last reactivated |
| kpis.lastCancelledOn | String (ISO 8601) | Date the invoice was last cancelled |
| kpis.lastAmendedOn | String (ISO 8601) | Date the invoice was last amended |
| kpis.voidedOn | String (ISO 8601) | Date the invoice was voided |
| kpis.deletedOn | String (ISO 8601) | Date the invoice was deleted |
| externalBankDetails.bankName | String | Supplier bank name |
| externalBankDetails.bankCode | String | Bank code |
| externalBankDetails.accountName | String | Bank account holder name |
| externalBankDetails.accountNumber | String | Bank account number |
| externalBankDetails.swiftBicCode | String | SWIFT/BIC code |
| externalBankDetails.abaRouting | String | ABA routing number |
| externalBankDetails.bankAccountNumber | String | Bank account number |
