Skip to content

Xero: Updates or creates one or more purchase orders

Xero accounting.updateOrCreatePurchaseOrders: arguments, response, policy and SDK examples.

← Accounting operations · Get started

Operation xero.updateorcreatepurchaseorders

Provider route: POST /api.xro/2.0/PurchaseOrders. Alter supplies the connection’s credentials and routing.

Install @alter-ai/sdk @alter-ai/xero with npm, or alter-sdk-xero with pip. Supply your connected customer’s grant ID and the arguments described below.

import { App } from "@alter-ai/sdk";
import { XeroIntegration } from "@alter-ai/xero";
async function execute(input: Parameters<XeroIntegration["accounting"]["updateOrCreatePurchaseOrders"]>[0]) {
const app = new App({ apiKey: process.env.ALTER_API_KEY! });
try {
const provider = new XeroIntegration(app, { grantId: process.env.PROVIDER_GRANT_ID! });
const call = await provider.accounting.updateOrCreatePurchaseOrders(input);
const result = await call.wait();
return result.bodyJson();
} finally {
await app.close();
}
}
import os
from alter_sdk import App
from alter_sdk_xero import XeroIntegration
async def execute(arguments):
async with App(api_key=os.environ["ALTER_API_KEY"]) as app:
provider = XeroIntegration(app, {"grant_id": os.environ["PROVIDER_GRANT_ID"]})
call = await provider.accounting.update_or_create_purchase_orders(arguments)
result = await call.wait()
return result.body_json()
FieldTypePresenceDescription and constraints
$objectRootAdditional keys: not allowed
queryobjectOptionalAdditional keys: not allowed
query.summarizeErrorsbooleanOptionalDefault: false
headersobjectRequired within parentAdditional keys: not allowed
headers.xero-tenant-idstringRequired within parent
headers.Idempotency-KeystringOptional
bodyModelRequired within parentExpand Updates a specific purchase order — request body — body

Referenced models: Updates a specific purchase order — request body — body

Response media type: application/json. The table describes the pinned successful response. Referenced models link to their complete fields.

FieldTypePresenceDescription and constraints
$ModelRootExpand Retrieves purchase orders — response body

Referenced models: Retrieves purchase orders — response body

31 more schemas are linked from the tables above, on the schema pages.

Retrieves purchase orders — response body
FieldTypePresenceDescription and constraints
$objectRoot
PurchaseOrdersarrayOptional
PurchaseOrders[]ModelEach itemExpand Retrieves purchase orders — response body — Purchase Orders item
WarningsarrayOptionalDisplays array of warning messages from the API
Warnings[]ModelEach itemExpand Retrieves journals — response body — Warnings item
paginationModelOptionalExpand Retrieves prepayments — response body — pagination

Referenced models: Retrieves prepayments — response body — pagination, Retrieves purchase orders — response body — Purchase Orders item, Retrieves journals — response body — Warnings item

Updates a specific purchase order — request body — body
FieldTypePresenceDescription and constraints
$objectRoot
PurchaseOrdersarrayOptional
PurchaseOrders[]ModelEach itemExpand Updates a specific purchase order — request body — body Purchase Orders item
WarningsarrayOptionalDisplays array of warning messages from the API
Warnings[]ModelEach itemExpand Retrieves journals — response body — Warnings item
paginationModelOptionalExpand Creates a new credit note — request body — body pagination

Referenced models: Creates a new credit note — request body — body pagination, Retrieves journals — response body — Warnings item, Updates a specific purchase order — request body — body Purchase Orders item

Retrieves prepayments — response body — pagination
FieldTypePresenceDescription and constraints
$objectRoot
itemCountJSONOptional
itemCount (anyOf 1)integerAlternative
itemCount (anyOf 2)stringAlternativePattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$
pageJSONOptional
page (anyOf 1)integerAlternative
page (anyOf 2)stringAlternativePattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$
pageCountJSONOptional
pageCount (anyOf 1)integerAlternative
pageCount (anyOf 2)stringAlternativePattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$
pageSizeJSONOptional
pageSize (anyOf 1)integerAlternative
pageSize (anyOf 2)stringAlternativePattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$
Retrieves purchase orders — response body — Purchase Orders item
FieldTypePresenceDescription and constraints
$objectRoot
AttachmentsarrayOptionalDisplays array of attachments from the API
Attachments[]ModelEach itemExpand create Contact Attachment By File Name — response body — Attachments item
AttentionTostringOptionalThe person that the delivery is going to
BrandingThemeIDstringOptionalSee BrandingThemes
Format: uuid
ContactModelOptionalExpand Creates contacts to a specific contact group — response body — Contacts item
CurrencyCodeModelOptionalExpand Deletes an Allocation from a Prepayment — response body — Invoice Currency Code
CurrencyRateJSONOptional
CurrencyRate (anyOf 1)numberAlternativeThe currency rate for a multicurrency purchase order. If no rate is specified, the XE.com day rate is used.
Format: double
CurrencyRate (anyOf 2)stringAlternativePattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$
DatestringOptionalDate purchase order was issued – YYYY-MM-DD. If the Date element is not specified then it will default to the current date based on the timezone setting of the organisation
DeliveryAddressstringOptionalThe address the goods are to be delivered to
DeliveryDatestringOptionalDate the goods are to be delivered – YYYY-MM-DD
DeliveryInstructionsstringOptionalA free text feild for instructions (500 characters max)
ExpectedArrivalDatestringOptionalThe date the goods are expected to arrive.
HasAttachmentsbooleanOptionalboolean to indicate if a purchase order has an attachment
Default: false
Read only: true
LineAmountTypesstringOptionalLine amounts are exclusive of tax by default if you don’t specify this element. See Line Amount Types
Known values: Exclusive, Inclusive, NoTax
LineItemsarrayOptionalSee LineItems
LineItems[]ModelEach itemExpand Deletes an Allocation from a Prepayment — response body — Invoice Line Items item
PurchaseOrderIDstringOptionalXero generated unique identifier for purchase order
Format: uuid
PurchaseOrderNumberstringOptionalUnique alpha numeric code identifying purchase order (when missing will auto-generate from your Organisation Invoice Settings)
ReferencestringOptionalAdditional reference number
SentToContactbooleanOptionalBoolean to set whether the purchase order should be marked as “sent”. This can be set only on purchase orders that have been approved or billed
StatusstringOptionalSee Purchase Order Status Codes
Known values: DRAFT, SUBMITTED, AUTHORISED, BILLED, DELETED
StatusAttributeStringstringOptionalA string to indicate if a invoice status
SubTotalJSONOptional
SubTotal (anyOf 1)numberAlternativeTotal of purchase order excluding taxes
Format: double
Read only: true
SubTotal (anyOf 2)stringAlternativePattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$
TelephonestringOptionalThe phone number for the person accepting the delivery
TotalJSONOptional
Total (anyOf 1)numberAlternativeTotal of Purchase Order tax inclusive (i.e. SubTotal + TotalTax)
Format: double
Read only: true
Total (anyOf 2)stringAlternativePattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$
TotalDiscountJSONOptional
TotalDiscount (anyOf 1)numberAlternativeTotal of discounts applied on the purchase order line items
Format: double
Read only: true
TotalDiscount (anyOf 2)stringAlternativePattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$
TotalTaxJSONOptional
TotalTax (anyOf 1)numberAlternativeTotal tax on purchase order
Format: double
Read only: true
TotalTax (anyOf 2)stringAlternativePattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$
UpdatedDateUTCstringOptionalLast modified date UTC format
Read only: true
ValidationErrorsarrayOptionalDisplays array of validation error messages from the API
ValidationErrors[]ModelEach itemExpand Retrieves journals — response body — Warnings item
WarningsarrayOptionalDisplays array of warning messages from the API
Warnings[]ModelEach itemExpand Retrieves journals — response body — Warnings item

Referenced models: Deletes an Allocation from a Prepayment — response body — Invoice Currency Code, create Contact Attachment By File Name — response body — Attachments item, Creates contacts to a specific contact group — response body — Contacts item, Deletes an Allocation from a Prepayment — response body — Invoice Line Items item, Retrieves journals — response body — Warnings item

Retrieves journals — response body — Warnings item
FieldTypePresenceDescription and constraints
$objectRoot
MessagestringOptionalValidation error message
Creates a new credit note — request body — body pagination
FieldTypePresenceDescription and constraints
$objectRoot
itemCountintegerOptional
pageintegerOptional
pageCountintegerOptional
pageSizeintegerOptional
Creates a single payment for invoice or credit notes — request body — body Invoice Attachments item
FieldTypePresenceDescription and constraints
$objectRoot
AttachmentIDstringOptionalUnique ID for the file
Format: uuid
ContentLengthintegerOptionalLength of the file content
FileNamestringOptionalName of the file
IncludeOnlinebooleanOptionalInclude the file with the online invoice
MimeTypestringOptionalType of file
UrlstringOptionalURL to the file on xero.com

SDK function policy ID: xero.updateorcreatepurchaseorders. Catalog operation: updateOrCreatePurchaseOrders. Rules can name either ID; function rules distinguish managed calls and conservatively cover raw calls sharing the route. Existing grant permissions and policy rules apply. wait() returns an immediate result or waits for a required approval; it never approves the request itself. Persist the approval ID to resume after a restart.

Provider errors retain their response; JSON decoding raises ProviderAPIError for provider failures. ManagedOperationError identifies contract/input/retention errors. See error handling and provider-specific behavior. Sensitive input may be refused before approval storage. A decoding error never resubmits a write.

Official provider source

Report an issue with this page

Necessary

Required for sign-in, security, authorization, and remembering your choices.

Always active

Analytics

Helps us understand which product and documentation features are useful.

Performance diagnostics

Uses performance tracing and privacy-masked session replay to diagnose problems.

You can change these choices at any time from Cookie settings.