Beta
Not authenticated — log in first
VendorPurchase Orders

Get Purchase Order

Get Purchase Order — vendor REST API endpoint.

GET/vendor/purchase-orders/:idVendor bearer token required

Get Purchase Order

Retrieve a single purchase order by ID.

What this means in plain English

Returns one purchase order at vendor cost: your supplier details, the platform bill-to, the end-customer ship-to, and line items priced at your cost. Adds paymentMethodName and shippingMethodName, which the list endpoint omits.

When to use this

  • Displaying a purchase order in your own fulfillment UI.
  • Checking the agreed vendor cost before confirming an order.

Path parameters

NameTypeRequiredDescription
idstring (UUID)YesPurchase order ID — the same suborder ID used by /vendor/orders/:id.

Request example

curl -X GET 'https://api.next.gcommerce.glass/api/v1/vendor/purchase-orders/550e8400-e29b-41d4-a716-446655440030'

Response examples

200Success
{
  "id": "550e8400-e29b-41d4-a716-446655440030",
  "orderNumber": "ORD-2026-0042-V1",
  "status": "CONFIRMED",
  "placedAt": "2026-06-10T16:45:00.000Z",
  "poNumber": "PO-7788",
  "paymentMethodName": "Government Purchase Card",
  "shippingMethodName": "Standard Shipment",
  "vendor": {
    "name": "Jane's Store",
    "company": null,
    "addressLine1": "123 Commerce Blvd",
    "addressLine2": "Suite 400",
    "city": "Austin",
    "state": "TX",
    "zipCode": "78701",
    "country": "US",
    "phone": "+1-512-555-0100"
  },
  "billTo": {
    "name": null,
    "company": "SOCIAL GLASS INC",
    "addressLine1": "415 Mission Street",
    "addressLine2": "Floor 37",
    "city": "San Francisco",
    "state": "CA",
    "zipCode": "94105",
    "country": "United States",
    "phone": null
  },
  "shipTo": {
    "name": "John Buyer",
    "company": null,
    "addressLine1": "456 Oak Ave",
    "addressLine2": null,
    "city": "Dallas",
    "state": "TX",
    "zipCode": "75201",
    "country": "US",
    "phone": null
  },
  "items": [
    {
      "id": "550e8400-e29b-41d4-a716-446655440032",
      "productName": "Widget Pro",
      "sku": "WIDGET-001",
      "quantity": 2,
      "price": 19.99,
      "subtotal": 39.98
    }
  ],
  "subtotal": 39.98,
  "shipping": 0,
  "tax": 0,
  "discount": 0,
  "total": 39.98,
  "currency": "USD"
}

Status codes

200

OK

Request succeeded.

401

Unauthorized

Missing or invalid bearer token.

403

Forbidden

Insufficient permissions for this action.

400

Bad Request

Validation failed or invalid parameters.

404

Not Found

Resource not found.

429

Too Many Requests

Global rate limit exceeded (10,000 requests per 10 minutes per IP).

500

Internal Server Error

Unexpected server error.

403

Forbidden

No vendor membership, or insufficient vendor role (requires OWNER, ADMIN, or EDITOR for write operations).

Prices are **vendor cost** (`vendor_price`), not the customer retail price shown on `/vendor/orders`. This is the JSON counterpart of the Purchase Order PDF.
Totals cover line vendor costs only: `shipping`, `tax` and `discount` are always `0` and `total` equals `subtotal`.
Lines with no vendor cost recorded are excluded from `subtotal`/`total`, so a partially priced order still lists.
`poNumber` is the buyer's agency PO number when one was supplied at checkout; otherwise it falls back to `orderNumber`, so it is never `null`.
`items[].price` and `items[].subtotal` are `null` when a line has no vendor cost recorded.
`billTo` is always the platform purchasing from you — never the customer's billing address. The three panels mirror the PDF: `vendor` (you), `billTo` (Glass), `shipTo` (end customer).
Line items carry no image. Use [Get Order](/docs/v1/vendor/orders/get) or [Get Product](/docs/v1/vendor/products/get) when you need product imagery.

Try it

Uses your saved session from login. Edit values and send a live request, or copy the cURL command.