# Retrieve a purchase order by its number

Endpoint: GET /v1/{countryCode}/purchase-orders/{purchaseOrderNumber}
Version: 0.0.1
Security: jwt-authorizer

## Path parameters:

  - `countryCode` (string, required)
    Enum: "au", "nz"

  - `purchaseOrderNumber` (string, required)

## Response 200 fields (application/json):

  - `purchaseOrderNumber` (string, required)
    The unique identifier for the purchase order.
    Example: "120525080"

  - `referenceNumber` (string)
    External reference number associated with the order.
    Example: "CO120520184"

  - `purchaseOrderState` (string)
    Single-character code representing the current state of the order.
    Example: "C"

  - `orderDate` (string)
    Date the purchase order was placed.
    Example: "2017-03-15"

  - `arrivalDate` (string)
    Date the order is expected to arrive.
    Example: "2017-03-15"

  - `comments` (string)
    Free-text comments on the purchase order.
    Example: "COMMENTS GO IN HERE"

  - `deliveryTypeCode` (string)
    Code identifying the delivery type.
    Example: "C"

  - `isOpenPurchaseOrder` (boolean)
    Whether the purchase order is still open.
    Example: true

  - `supplier` (object)
    The supplier the purchase order was placed with.

  - `supplier.number` (integer)
    Unique identifier of the supplier.
    Example: 24408

  - `supplier.name` (string)
    Name of the supplier.
    Example: "PIPE KING PTY LTD"

  - `supplier.type` (string)
    Single-character code representing the supplier type.
    Example: "B"

  - `supplier.agentNumber` (integer)
    Identifier of the supplier agent, where applicable.

  - `supplier.phoneNumber` (string)
    Supplier's contact phone number.
    Example: "(03) 8773 8222"

  - `supplier.faxNumber` (string)
    Supplier's fax number.
    Example: "(03) 8773 8299"

  - `supplier.address` (object)
    Postal address of the supplier.

  - `supplier.address.line1` (string)
    First line of the supplier's address.
    Example: "110"

  - `supplier.address.line2` (string)
    Second line of the supplier's address.
    Example: "CARRUM DOWNS"

  - `supplier.address.line3` (string)
    Third line of the supplier's address.
    Example: "VIC"

  - `supplier.address.state` (string)
    Supplier's state code.
    Example: "3"

  - `supplier.address.postcode` (string)
    Supplier's postcode.
    Example: "3201"

  - `salesperson` (object)
    The salesperson associated with the purchase order.

  - `salesperson.code` (string)
    Code identifying the salesperson.
    Example: "99"

  - `salesperson.name` (string)
    Name of the salesperson.
    Example: "SALESPERSON 99"

  - `branches` (object)
    The branches involved in the purchase order.

  - `branches.destination` (string)
    Branch the order is destined for.
    Example: "3143"

  - `branches.createdBy` (string)
    Branch that created the order.
    Example: "3143"

  - `branches.action` (string)
    Branch responsible for actioning the order.
    Example: "3143"

  - `charges` (object)
    Supplier charges associated with the purchase order.

  - `charges.quoted` (number)
    Supplier charges quoted on the order.

  - `charges.charged` (number)
    Supplier charges actually charged on the order.

  - `quote` (object)
    Quote detail associated with the purchase order.

  - `quote.number` (string)
    Associated quote number.
    Example: "ABCD1234"

  - `quote.quotedByName` (string)
    Name of the person who provided the quote.
    Example: "A SALESMAN"

  - `entry` (object)
    Detail about who entered the purchase order and when.

  - `entry.userId` (string)
    Identifier of the user who entered the order.
    Example: "patersoa"

  - `entry.enteredDate` (string)
    Date the purchase order was entered.
    Example: "2017-03-15"

  - `entry.enteredTime` (string)
    Time the purchase order was entered (HH:mm:ss).
    Example: "13:35:00"

  - `centralManagement` (object)
    Central management status of the purchase order.

  - `centralManagement.isCentrallyManaged` (boolean)
    Whether the purchase order is centrally managed.
    Example: true

  - `centralManagement.approvedDateTime` (string)
    Timestamp the order was approved under central management.
    Example: "2019-02-01 00:10:00.0"

  - `purchaseOrderWarehouseStage` (object)
    Warehouse processing stage of the purchase order.

  - `purchaseOrderWarehouseStage.code` (string)
    Code identifying the warehouse stage.
    Example: "AWAITING_PICK"

  - `defaultTransmissionMethod` (object)
    Default method used to transmit the order to the supplier.

  - `defaultTransmissionMethod.id` (integer)
    Unique identifier of the transmission method.
    Example: 1

  - `defaultTransmissionMethod.code` (string)
    Code identifying the transmission method.
    Example: "EMAIL"

  - `defaultTransmissionMethod.description` (string)
    Human-readable description of the transmission method.
    Example: "Email to supplier"

  - `transmissionMethod` (object)
    Method actually used to transmit the order to the supplier.

  - `transmissionMethod.id` (integer)
    Unique identifier of the transmission method.
    Example: 1

  - `transmissionMethod.code` (string)
    Code identifying the transmission method.
    Example: "EMAIL"

  - `transmissionMethod.description` (string)
    Human-readable description of the transmission method.
    Example: "Email to supplier"

  - `deliveryPriority` (object)
    Delivery priority applied to the purchase order.

  - `deliveryPriority.code` (string)
    Code identifying the delivery priority.
    Example: "STD"

  - `deliveryPriority.description` (string)
    Human-readable description of the delivery priority.
    Example: "Standard"

  - `deliveryPriority.notes` (string)
    Additional notes about the delivery priority.
    Example: "No special handling"

  - `lines` (array)
    The lines that make up the purchase order.

  - `lines.lineId` (integer, required)
    Surrogate identifier for the line.
    Example: 1

  - `lines.purchaseOrderNumber` (string, required)
    The purchase order this line belongs to.
    Example: "120525080"

  - `lines.lineNumber` (integer, required)
    The line number within the purchase order.
    Example: 1

  - `lines.deleted` (boolean)
    Whether the line has been deleted.

  - `lines.etaDate` (string)
    Estimated time of arrival for the line.
    Example: "2017-03-17"

  - `lines.arrivalIntoPortDate` (string)
    Date the goods arrive into port (for imported goods).
    Example: "2017-03-17"

  - `lines.branchCode` (string)
    Branch associated with the line.
    Example: "3143"

  - `lines.comments` (string)
    Free-text comments on the line.
    Example: "THESE ARE LINE COMMENTS"

  - `lines.buyinNumber` (string)
    Reference to the buy head/buy line.
    Example: "A reference to the buyhead/buyline"

  - `lines.purchaseOrderType` (string)
    The type of purchase order this line relates to.
    Enum: "CUSTOMER_BUYIN", "STOCK", "DIRECT"

  - `lines.overstockStatus` (string)
    Single-character overstock status indicator.
    Example: "N"

  - `lines.purchaseOrderReceiptStatus` (string)
    The receipting status of the line.
    Enum: "NOT_RECEIPTED", "PARTIALLY_RECEIPTED", "FULLY_RECEIPTED"

  - `lines.product` (object)
    The product ordered on the line.

  - `lines.product.number` (integer)
    Unique product number for the line.
    Example: 1400200

  - `lines.product.description` (string)
    Description of the product.
    Example: "DWV PVC PIPE 100MM X 6MTR SN6  SWJ"

  - `lines.product.partNumber` (string)
    Supplier or catalogue part number.
    Example: "DWV100SN6SC"

  - `lines.customerOrder` (object)
    Reference to the customer order the line originates from, where applicable.

  - `lines.customerOrder.number` (integer)
    Associated customer order number.

  - `lines.customerOrder.lineNumber` (integer)
    Associated customer order line number.

  - `lines.quantities` (object)
    Ordered and received quantities for the line.

  - `lines.quantities.ordered` (number)
    Quantity ordered.
    Example: 1

  - `lines.quantities.received` (number)
    Quantity received against the line.

  - `lines.kit` (object)
    Kit information for the line.

  - `lines.kit.isKitHeader` (boolean)
    Whether this line is the header of a kit.

  - `lines.kit.headerLineNumber` (integer)
    Line number of the kit header, where this line is a kit component.

  - `lines.pricing` (object)
    Pricing detail for a purchase order line.

  - `lines.pricing.sysLec` (number)
    System landed-and-effective cost.
    Example: 3.65

  - `lines.pricing.rebateCode` (string)
    Code identifying the applicable rebate.
    Example: "J66"

  - `lines.pricing.unitCost` (number)
    Unit cost of the product.
    Example: 3.08

  - `lines.pricing.rebatedCost` (number)
    Unit cost after rebate is applied.
    Example: 3.34

  - `lines.pricing.invoiceCost` (number)
    Cost as invoiced by the supplier.
    Example: 3.93

  - `lines.pricing.priceBasis` (integer)
    Identifier of the pricing basis applied.
    Example: 1

  - `lines.pricing.exchangeRate` (number)
    Exchange rate applied for imported goods.

  - `lines.pricing.overseasCost` (number)
    Overseas cost component for imported goods.

  - `lines.pricing.overriddenCost` (number)
    Manually overridden cost, where applicable.

  - `lines.pricing.overrideCostFlag` (string)
    Flag indicating whether the cost has been overridden.
    Example: "N"

  - `lines.pricing.chargeType` (string)
    Type of charge applied to the line.
    Example: "STANDARD"

  - `lines.pricing.preferredSupplier` (string)
    Identifier of the preferred supplier for the product.
    Example: "24408"

  - `deliveryDetails` (object)
    Delivery information for the purchase order.

  - `deliveryDetails.branchCode` (string)
    Branch responsible for delivery.
    Example: "3143"

  - `deliveryDetails.addressLineOne` (string)
    First line of the delivery address.
    Example: "1 Construction Way"

  - `deliveryDetails.addressLineTwo` (string)
    Second line of the delivery address.
    Example: "Building B"

  - `deliveryDetails.suburb` (object)
    A suburb associated with a delivery address.

  - `deliveryDetails.suburb.id` (integer)
    Unique identifier of the suburb.
    Example: 100

  - `deliveryDetails.suburb.name` (string)
    Name of the suburb.
    Example: "CARRUM DOWNS"

  - `deliveryDetails.suburb.state` (string)
    Full state name.
    Example: "Victoria"

  - `deliveryDetails.suburb.postcode` (string)
    Postcode of the suburb.
    Example: "3201"

  - `deliveryDetails.suburb.stateCode` (string)
    Abbreviated state code.
    Example: "VIC"

  - `deliveryDetails.pickupInformation` (object)
    Pickup details for the delivery.

  - `deliveryDetails.pickupInformation.pickupTime` (string)
    Time the goods are to be picked up (HH:mm).
    Example: "09:00"

  - `deliveryDetails.pickupInformation.pickupDate` (string)
    Date the goods are to be picked up.
    Example: "2026-06-04"

  - `deliveryDetails.pickupInformation.siteContactName` (string)
    Name of the on-site contact.
    Example: "John Doe"

  - `deliveryDetails.pickupInformation.siteContactNumber` (string)
    Phone number of the on-site contact.
    Example: "0400 000 000"

  - `deliveryDetails.pickupInformation.distanceFromBranch` (number)
    Distance value, expressed in metres.

  - `deliveryDetails.pickupInformation.accuracy` (string)
    Accuracy classification of the geolocation.
    Example: "HIGH"

  - `deliveryDetails.pickupInformation.latitude` (number)
    Latitude of the pickup location.
    Example: -38.0996

  - `deliveryDetails.pickupInformation.longitude` (number)
    Longitude of the pickup location.
    Example: 145.1761

  - `deliveryDetails.courierInformation` (object)
    Courier details for the delivery.

  - `deliveryDetails.courierInformation.id` (integer)
    Unique identifier of the courier.
    Example: 5

  - `deliveryDetails.courierInformation.name` (string)
    Name of the courier.
    Example: "Fast Couriers"

  - `deliveryDetails.courierInformation.accountNumber` (string)
    Courier account number.
    Example: "ACC-123"

  - `deliveryDetails.courierInformation.courierCost` (number)
    Cost charged by the courier.
    Example: 25.5

  - `deliveryDetails.courierInformation.charge` (string)
    Charge arrangement for the courier (e.g., prepaid, on account).
    Example: "PREPAID"

  - `deliveryDetails.courierInformation.jobNumber` (string)
    Courier job number.
    Example: "JOB-001"

  - `deliveryDetails.courierInformation.addressLineOne` (string)
    First line of the courier address.
    Example: "1 Construction Way"

  - `deliveryDetails.courierInformation.addressLineTwo` (string)
    Second line of the courier address.
    Example: "Building B"

  - `deliveryDetails.courierInformation.addressLineThree` (string)
    Third line of the courier address.

  - `deliveryDetails.courierInformation.postCode` (string)
    Postcode of the courier address.
    Example: "3201"

  - `deliveryDetails.courierInformation.telephone` (string)
    Courier contact phone number.
    Example: "(03) 8773 8222"

  - `deliveryDetails.courierInformation.fax` (string)
    Courier fax number.
    Example: "(03) 8773 8299"

  - `deliveryDetails.isInsideDeliveryArea` (boolean)
    Whether the delivery address is inside the serviceable delivery area.
    Example: true

  - `deliveryDetails.transactionType` (string)
    Single-character code representing the delivery transaction type.
    Example: "H"

  - `deliveryDetails.originalTransaction` (object)
    The original transaction the purchase order was derived from.

  - `deliveryDetails.originalTransaction.transactionNumber` (integer)
    Identifier of the original transaction.
    Example: 98765

  - `deliveryDetails.originalTransaction.transactionType` (string)
    Type of the original transaction.
    Enum: "SALES_ORDER", "PURCHASE_ORDER", "QUOTE"

## Response 400 fields (application/json):

  - `errorCode` (string, required)
    Stable, machine-readable application error identifier.
    Example: "RESOURCE_NOT_FOUND"

  - `message` (string, required)
    Human-readable description of the error.
    Example: "The requested resource was not found."

  - `status` (integer)
    HTTP status code.
    Example: 404

  - `timestamp` (string)
    Time the error occurred, in ISO 8601 format.
    Example: "2026-06-03T10:15:30Z"

  - `details` (array, required)
    Structured additional information, such as per-field validation errors.

  - `details.field` (string)
    The request field the issue relates to.
    Example: "stateCode"

  - `details.issue` (string)
    Description of the problem with the field.
    Example: "Must be a two-digit state code."

## Response 401 fields (application/json):

  - `errorCode` (string, required)
    Stable, machine-readable application error identifier.
    Example: "RESOURCE_NOT_FOUND"

  - `message` (string, required)
    Human-readable description of the error.
    Example: "The requested resource was not found."

  - `status` (integer)
    HTTP status code.
    Example: 404

  - `timestamp` (string)
    Time the error occurred, in ISO 8601 format.
    Example: "2026-06-03T10:15:30Z"

  - `details` (array)
    Structured additional information, such as per-field validation errors.


