Skip to content

Xero: Retrieves a specific purchase order using a unique purchase order Id

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

← Accounting operations · Get started

Operation xero.getpurchaseorder

Provider route: GET /api.xro/2.0/PurchaseOrders/{PurchaseOrderID}. 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"]["getPurchaseOrder"]>[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.getPurchaseOrder(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.get_purchase_order(arguments)
result = await call.wait()
return result.body_json()
FieldTypePresenceDescription and constraints
$objectRootAdditional keys: not allowed
pathobjectRequired within parentAdditional keys: not allowed
path.PurchaseOrderIDstringRequired within parentFormat: uuid
headersobjectRequired within parentAdditional keys: not allowed
headers.xero-tenant-idstringRequired within parent

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

15 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

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
Deletes an Allocation from a Prepayment — response body — Invoice Currency Code
FieldTypePresenceDescription and constraints
$stringRoot3 letter alpha code for the currency – see list of currency codes
Known values: AED, AFN, ALL, AMD, ANG, AOA, ARS, AUD, AWG, AZN, BAM, BBD, BDT, BGN, BHD, BIF, BMD, BND, BOB, BRL, BSD, BTN, BWP, BYN, BYR, BZD, CAD, CDF, CHF, CLF, CLP, CNY, COP, CRC, CUC, CUP, CVE, CZK, DJF, DKK, DOP, DZD, EEK, EGP, ERN, ETB, EUR, FJD, FKP, GBP, GEL, GHS, GIP, GMD, GNF, GTQ, GYD, HKD, HNL, HRK, HTG, HUF, IDR, ILS, INR, IQD, IRR, ISK, JMD, JOD, JPY, KES, KGS, KHR, KMF, KPW, KRW, KWD, KYD, KZT, LAK, LBP, LKR, LRD, LSL, LTL, LVL, LYD, MAD, MDL, MGA, MKD, MMK, MNT, MOP, MRO, MRU, MUR, MVR, MWK, MXN, MXV, MYR, MZN, NAD, NGN, NIO, NOK, NPR, NZD, OMR, PAB, PEN, PGK, PHP, PKR, PLN, PYG, QAR, RON, RSD, RUB, RWF, SAR, SBD, SCR, SDG, SEK, SGD, SHP, SKK, SLE, SLL, SOS, SRD, STD, STN, SVC, SYP, SZL, THB, TJS, TMT, TND, TOP, TRY, TTD, TWD, TZS, UAH, UGX, USD, UYU, UZS, VEF, VES, VND, VUV, WST, XAF, XCD, XOF, XPF, YER, ZAR, ZMW, ZMK, ZWD
create Contact Attachment By File Name — response body — Attachments item
FieldTypePresenceDescription and constraints
$objectRoot
AttachmentIDstringOptionalUnique ID for the file
Format: uuid
ContentLengthJSONOptional
ContentLength (anyOf 1)integerAlternativeLength of the file content
ContentLength (anyOf 2)stringAlternativePattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$
FileNamestringOptionalName of the file
IncludeOnlinebooleanOptionalInclude the file with the online invoice
MimeTypestringOptionalType of file
UrlstringOptionalURL to the file on xero.com
Creates contacts to a specific contact group — response body — Contacts item Contact Persons item
FieldTypePresenceDescription and constraints
$objectRoot
EmailAddressstringOptionalEmail address of person
FirstNamestringOptionalFirst name of person
IncludeInEmailsbooleanOptionalboolean to indicate whether contact should be included on emails with invoices etc.
LastNamestringOptionalLast name of person

SDK function policy ID: xero.getpurchaseorder. Catalog operation: getPurchaseOrder. 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.