Ordoro Purchase Order API
The Purchase Order API from Ordoro — 12 operation(s) for purchase order.
The Purchase Order API from Ordoro — 12 operation(s) for purchase order.
openapi: 3.0.0
info:
title: Ordoro API Documentation Address Purchase Order API
description: "# Introduction\n\nThe Ordoro API can be used to access data or integrate to add functionality to Ordoro. The Ordoro API uses the application/json Content-Type. The Ordoro API documentation is in beta. [See our forum](https://forums.ordoro.com) for questions or comments to help us improve the docs or request features.\n#### Note: Any routes with a /v3 designation will not allow for trailing slashes while all other routes and endpoints will require a trailing slash.\n\n# Authentication\n\nThe Ordoro API uses [Basic HTTP Authentication](http://en.wikipedia.org/wiki/Basic_access_authentication). Please create API keys via Settings->Account Settings->API Keys in app and use those for basic auth in your API requests.\n\n# Additional Resources\n\nFor a look at some code examples on how to use the API check out our github repo https://github.com/ordoro/api-examples.\n\n# API Responses\n\nMost of our endpoints return either a list of objects or a single object instance. They share similar response shapes.\n\n## List endpoints\n\nList endpoints respond with the following parameters:\n\n| Name | Type | Description |\n|----------------|--------------------------|-------------|\n| `count` | int | The total number of objects returned by a query ( **not** necessarily the number of objects included in a response). |\n| `limit` | int | The maximum number of objects returned per request. Defaults to 10. Maximum is 100. You can set this as a URL parameter. |\n| `offset` | int | The number of objects being offset in the response. May be altered as a URL Parameter. |\n| `<model name>` | array | An array of objects. The name of the model should be singular. For example, the /v3/order endpoint will have an `order` parameter, as opposed to `orders`.|\n\nHere is an example response for the `/v3/order` list endpoint.\n\n```\n{\n \"count\": 2,\n \"limit\": 10,\n \"offset\" 0,\n \"order\": [\n {\n // an order object\n },\n {\n // another order object\n }\n ]\n}\n```\n\n## Instance endpoints\n\nInstance endpoints return a single instance of a serialized model. `/v3/order/{order_number}` is an example of an instance endpoint.\n\n# Error Handling\n\nError responses contain the following parameters:\n\n| Name | Type | Description |\n|-----------------|------------------|----------------------------------------------------------------------|\n| `error_message` | string | Some human-readable error message. |\n| `param` | string or `null` | The name of the corresponding parameter, or null for general errors. |\n\n# Rate Limiting\n\nAPI requests will be limited to 500 requests per minute. Any requests over this threshold will respond with a 429 status code."
contact: {}
version: '1.0'
servers:
- url: https://api.ordoro.com/
variables: {}
tags:
- name: Purchase Order
description: ''
paths:
/product/{sku}/buy/{supplier_id}/:
post:
tags:
- Purchase Order
summary: Create a Purchase Order by SKU and Supplier ID
description: Order More of a product. This will create or update an existing Purchase Order
operationId: ProductBuyBySkuAndSupplierId_POST
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/post_buy_more'
parameters:
- $ref: '#/components/parameters/skuPath'
- $ref: '#/components/parameters/supplierPath'
responses:
'200':
description: ''
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/purchase_order'
'201':
description: ''
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/purchase_order'
deprecated: false
/purchase_order/:
get:
tags:
- Purchase Order
summary: List Purchase Orders
description: ''
operationId: PurchaseOrder_GET
parameters:
- $ref: '#/components/parameters/offsetParam'
- $ref: '#/components/parameters/limitParam'
- $ref: '#/components/parameters/searchParam'
- name: sort
in: query
description: ''
style: form
explode: true
schema:
$ref: '#/components/schemas/PurchaseOrderSort'
- name: status
in: query
description: ''
style: form
explode: true
schema:
$ref: '#/components/schemas/PurchaseOrderStatus'
- name: sku
in: query
description: ''
style: form
explode: true
schema:
type: array
items:
type: string
- name: start_date
in: query
description: ''
style: form
explode: true
schema:
type: string
- name: end_date
in: query
description: ''
style: form
explode: true
schema:
type: string
- name: tag
in: query
description: 'Filter by tag name. Can be repeated for multiple tags.
Note: Cannot be included if `untagged` is also passed.
'
style: form
schema:
type: array
items:
type: string
- name: tag_filter_by
in: query
description: 'Tag filtering logic:
* `or` [default] return purchase orders that contain any of the supplied tags
* `and` returns purchase orders containing ALL of the supplied tags
* `only` returns purchase orders containing ONLY the supplied tags
'
style: form
explode: true
schema:
type: string
- name: exclude_tags
description: 'Note: Cannot be included if `untagged` is also passed.
'
type: array
schema:
type: array
items:
type: string
in: query
required: false
- name: untagged
in: query
description: 'Filter untagged purchase orders
Note: Cannot be included if `tags` or `exclude_tags` are also passed.
'
style: form
explode: true
schema:
type: boolean
- name: updated_after
in: query
description: ''
style: form
explode: true
schema:
type: string
- name: updated_before
in: query
description: ''
style: form
explode: true
schema:
type: string
responses:
'200':
description: ''
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/purchase_order_list'
deprecated: false
post:
tags:
- Purchase Order
summary: Create a Purchase Order
description: ''
operationId: PurchaseOrder_POST
parameters: []
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/post_purchase_order'
responses:
'201':
description: ''
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/purchase_order'
deprecated: false
/purchase_order/counts/:
get:
tags:
- Purchase Order
summary: Get Purchase Order Counts
description: ''
operationId: PurchaseOrderCounts_GET
parameters: []
responses:
'200':
description: ''
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/purchase_order_counts'
deprecated: false
/purchase_order/{po_id}/:
delete:
tags:
- Purchase Order
summary: Delete a Purchase Order by ID
description: Cancel a purchase order.
operationId: PurchaseOrderByPoId_DELETE
parameters:
- $ref: '#/components/parameters/poidPath'
responses:
'200':
description: ''
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/purchase_order'
deprecated: false
get:
tags:
- Purchase Order
summary: Get a Purchase Order by ID
description: ''
operationId: PurchaseOrderByPoId_GET
parameters:
- $ref: '#/components/parameters/poidPath'
- $ref: '#/components/parameters/offsetParam'
- $ref: '#/components/parameters/limitParam'
- $ref: '#/components/parameters/searchParam'
- name: sort
in: query
description: ''
style: form
explode: true
schema:
$ref: '#/components/schemas/PurchaseOrderSort'
- name: status
in: query
description: ''
style: form
explode: true
schema:
$ref: '#/components/schemas/PurchaseOrderStatus'
- name: sku
in: query
description: ''
style: form
explode: true
schema:
type: array
items:
type: string
- name: start_date
in: query
description: ''
style: form
explode: true
schema:
type: string
- name: end_date
in: query
description: ''
style: form
explode: true
schema:
type: string
responses:
'200':
description: ''
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/purchase_order'
deprecated: false
put:
tags:
- Purchase Order
summary: Update a Purchase Order by ID
description: ''
operationId: PurchaseOrderByPoId_PUT
parameters:
- $ref: '#/components/parameters/poidPath'
responses:
'200':
description: ''
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/purchase_order'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/put_purchase_order'
deprecated: false
/purchase_order/{po_id}/comment/:
post:
tags:
- Purchase Order
summary: Create a Purchase Order Comment by PO ID
description: ''
operationId: PurchaseOrderCommentByPoId_POST
parameters:
- $ref: '#/components/parameters/poidPath'
responses:
'200':
description: ''
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/comment'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/post_comment'
deprecated: false
get:
summary: Retrieve Comments
operationId: PurchaseOrderCommentByPoId_GET
description: ''
tags:
- Purchase Order
parameters:
- $ref: '#/components/parameters/poidPath'
responses:
'200':
description: OK
content:
application/json:
example:
limit: 10
offset: 0
count: 1
comment:
- user: user@ordoro.com
date: '2026-03-05T21:10:26.911724+00:00'
text: This is a very important comment
schema:
$ref: '#/components/schemas/comment'
/purchase_order/{po_id}/create_goods_receipt/:
post:
tags:
- Purchase Order
summary: Create a Purchase Order Goods Receipt by PO ID
description: ''
operationId: PurchaseOrderCreateGoodsReceiptByPoId_POST
parameters:
- $ref: '#/components/parameters/poidPath'
responses:
'201':
description: ''
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/purchase_order'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/post_purchase_order_goods_receipt'
deprecated: false
/purchase_order/{po_id}/line/:
post:
tags:
- Purchase Order
summary: Create a Purchase Order Line by PO ID
description: ''
operationId: PurchaseOrderLineByPoId_POST
parameters:
- $ref: '#/components/parameters/poidPath'
responses:
'200':
description: ''
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/purchase_order'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/post_purchase_order_item'
deprecated: false
/purchase_order/{po_id}/line/{po_item_id}/:
delete:
tags:
- Purchase Order
summary: Delete a Purchase Order Line by PO ID and PO Line ID
description: ''
operationId: PurchaseOrderLineByPoIdAndPoItemId_DELETE
parameters:
- $ref: '#/components/parameters/poidPath'
- name: po_item_id
in: path
description: ''
required: true
style: simple
schema:
type: string
responses:
'200':
description: ''
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/purchase_order'
deprecated: false
put:
tags:
- Purchase Order
summary: Update a Purchase Order Line by PO ID and PO Line ID
description: ''
operationId: PurchaseOrderLineByPoIdAndPoItemId_PUT
parameters:
- $ref: '#/components/parameters/poidPath'
- name: po_item_id
in: path
description: ''
required: true
style: simple
schema:
type: string
responses:
'200':
description: ''
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/purchase_order'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/put_purchase_order_item'
deprecated: false
/purchase_order/{po_id}/send/:
get:
tags:
- Purchase Order
summary: Preview a Purchase Order
description: ''
operationId: PurchaseOrderSendByPoId_GET
parameters:
- $ref: '#/components/parameters/poidPath'
responses:
'200':
description: ''
headers: {}
deprecated: false
post:
tags:
- Purchase Order
summary: Send a Purchase Order to the Supplier
description: ''
operationId: PurchaseOrderSendByPoId_POST
parameters:
- $ref: '#/components/parameters/poidPath'
responses:
'200':
description: ''
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/purchase_order'
deprecated: false
/purchase_order/tag/:
post:
tags:
- Purchase Order
summary: Create a Purchase Order Tag
description: ''
operationId: PurchaseOrderTags_POST
parameters: []
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/post_v3_tag'
responses:
'201':
description: ''
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/v3_tag'
get:
tags:
- Purchase Order
summary: Get Purchase Order Tags
description: ''
operationId: PurchaseOrderTags_GET
parameters: []
responses:
'200':
description: ''
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/v3_tag_list'
deprecated: false
/purchase_order/tag/{name}/:
get:
tags:
- Purchase Order
summary: Get Purchase Order Tag by Name
description: ''
operationId: PurchaseOrderTag_GET
parameters: []
responses:
'200':
description: ''
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/v3_tag'
deprecated: false
put:
tags:
- Purchase Order
summary: Update a Purchase Order Tag by Name
description: ''
operationId: PurchaseOrderTags_PUT
parameters: []
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/put_v3_tag'
responses:
'200':
description: ''
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/v3_tag'
delete:
tags:
- Purchase Order
summary: Delete a Purchase Order Tag by Name
description: ''
operationId: PurchaseOrderTags_DELETE
parameters: []
responses:
'200':
description: response OK
/purchase_order/{po_id}/tag/{tag_name}/:
post:
tags:
- Purchase Order
summary: Apply a Purchase Order Tag to Purchase Order
description: ''
operationId: PurchaseOrderTagPO_POST
parameters: []
responses:
'200':
description: ''
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/purchase_order'
delete:
tags:
- Purchase Order
summary: Remove a Purchase Order Tag from a Purchase Order
description: ''
operationId: PurchaseOrderTagPO_DELETE
parameters: []
responses:
'200':
description: ''
headers: {}
content:
application/json:
schema:
$ref: '#/components/schemas/purchase_order'
components:
schemas:
put_purchase_order_item:
title: Update a Purchase Order Item
type: object
additionalProperties: false
properties:
quantity:
type: integer
unit_price:
type: number
discount_amount:
type: number
supplier_shipping_method_map:
title: Supplier shipping method map
type: object
additionalProperties: false
properties:
active:
description: Toggle to enable use of this shipping method map
type: boolean
created:
description: The date this was created
type: string
id:
description: internal reference identifier for the supplier shipping method map
type: integer
requested_shipping_method:
default: ''
description: User defined requested shipping method on an Order to be mapped to a determinate shipping method
anyOf:
- type: string
- type: 'null'
mapped_shipping_method:
description: 'FBA defined shipping methods will only be one of the following: [''Expedited'', ''Priority'', ''Standard'']. All others can be freeform to suit the supplier'
type: string
mapped_shipping_account:
anyOf:
- type: string
- type: 'null'
mapped_shipping_carrier:
anyOf:
- type: string
- type: 'null'
supplier_id:
description: Integer indicating the supplier for which this mapping is tied.
type: integer
updated:
description: The latest updated date
type: string
required:
- active
- created
- id
- requested_shipping_method
- mapped_shipping_method
- mapped_shipping_account
- mapped_shipping_carrier
- supplier_id
- updated
v3_tag:
title: V3 Tag Schema
type: object
properties:
id:
type: integer
name:
type: string
color:
type: string
required:
- id
- name
- color
goods_receipt:
title: Goods Receipt Schema
type: object
additionalProperties: false
properties:
status:
type: string
po_id:
type: string
po_status:
type: string
goods_receipt_id:
type: string
created:
type: string
format: date-time
updated:
type: string
format: date-time
received:
type: string
format: date-time
_link:
type: string
items:
type: array
items:
type: object
properties:
id:
type: integer
po_item_id:
type: string
quantity:
type: integer
_link:
type: string
product:
$ref: '#/components/schemas/product_base'
comments:
type: array
items:
$ref: '#/components/schemas/comment'
purchase_order_list:
title: Purchase Order List Response schema
type: object
properties:
limit:
type: integer
example: 1
offset:
type: integer
example: 0
count:
type: integer
example: 46
purchase_order:
type: array
items:
$ref: '#/components/schemas/purchase_order'
post_purchase_order:
title: Buy More Products Request Schema
type: object
additionalProperties: false
properties:
supplier_id:
type: integer
warehouse_id:
type: integer
po_id:
type: string
shipping_method:
type: string
payment_method:
type: string
instructions:
type: string
estimated_delivery_date:
type: string
shipping_amount:
type: number
tax_amount:
type: number
discount_amount:
type: number
items:
type: array
items:
type: object
$ref: '#/components/schemas/purchase_order_item'
required:
- supplier_id
address:
title: Address Schema
type: object
additionalProperties: false
properties:
id:
type: integer
name:
example: Jimmy McGill
anyOf:
- type: string
- type: 'null'
company:
example: Hamlin, Hamlin & McGill
anyOf:
- type: string
- type: 'null'
street1:
example: 100 Constitution Ave
anyOf:
- type: string
- type: 'null'
street2:
anyOf:
- type: string
- type: 'null'
city:
example: Albuquerque
anyOf:
- type: string
- type: 'null'
state:
example: NM
anyOf:
- type: string
- type: 'null'
zip:
example: '87109'
anyOf:
- type: string
- type: 'null'
country:
example: US
anyOf:
- type: string
- type: 'null'
email:
example: slippin-jimmy@saul-good.man
anyOf:
- type: string
- type: 'null'
phone:
example: 555-867-5309
anyOf:
- type: string
- type: 'null'
fax:
anyOf:
- type: string
- type: 'null'
cart_address_id:
anyOf:
- type: string
- type: 'null'
revision_locked_fields:
type: array
validation:
title: Validation status of an Address
properties:
status:
type: string
enum:
- unvalidated
- validated
- warning
- error
suggested:
type: array
items:
title: Suggested Address
type: object
additionalProperties: false
properties:
is_commercial:
default: false
anyOf:
- type: boolean
- type: 'null'
street1:
type: string
street2:
anyOf:
- type: string
- type: 'null'
city:
type: string
state:
type: string
zip:
type: string
country_code:
anyOf:
- type: string
- type: 'null'
required:
- city
- state
- zip
- street1
additional_text:
anyOf:
- type: string
- type: 'null'
required:
- status
- additional_text
- suggested
additionalProperties: false
anyOf:
- type: object
- type: 'null'
required:
- name
- company
- street1
- street2
- city
- state
- zip
- country
- email
- phone
post_purchase_order_item:
title: Create a Purchase Order Item
type: object
additionalProperties: false
properties:
sku:
type: string
quantity:
type: integer
unit_price:
type: number
discount_amount:
type: number
required:
- sku
v3_tag_list:
title: Tag List Schema
type: object
properties:
count:
type: integer
tag:
type: array
items:
$ref: '#/components/schemas/v3_tag'
limit:
type: integer
default: 10
offset:
type: integer
default: 0
required:
- count
- tag
- limit
- offset
post_purchase_order_goods_receipt:
title: Create Purchase Order Goods Receipt
additionalProperties: false
type: object
properties:
goods_receipt_id:
type: string
PurchaseOrderStatus:
title: purchase_order_status
enum:
- unsent
- sent
- partial
- received
- cancelled
- all
type: string
warehouse:
title: Warehouse Schema
additionalProperties: false
type: object
properties:
_link:
type: string
id:
type: integer
address:
$ref: '#/components/schemas/address'
cart:
anyOf:
- type: string
- type: 'null'
is_configured_for_shipping:
type: boolean
is_default_location:
type: boolean
required:
- id
- address
- cart
- is_configured_for_shipping
- is_default_location
purchase_order_item:
title: Purchase Order Item Schema
type: object
additionalProperties: false
properties:
sku:
type: string
quantity:
type: integer
unit_price:
type: number
discount_amount:
type: number
required:
- sku
- quantity
post_v3_tag:
title: Create a Tag
type: object
additionalProperties: false
properties:
name:
type: string
color:
type: string
required:
- name
- color
post_buy_more:
title: Buy More Products Request Schema
type: object
additionalProperties: false
properties:
warehouse:
type: integer
quantity:
type: integer
unit_price:
type: number
discount_amount:
type: number
po_id:
type: string
required:
- warehouse
- quantity
put_v3_tag:
title: Update a Tag
type: object
additionalProperties: false
properties:
name:
type: string
color:
type: string
purchase_order_counts:
title: Purchase Order Counts Response Schema
additionalProperties: false
type: object
properties:
all:
type: integer
unsent:
type: integer
sent:
type: integer
partial:
type: integer
received:
type: integer
cancelled:
type: integer
required:
- all
- unsent
- sent
- partial
- received
- cancelled
comment:
title: Comment Schema
type: object
additionalProperties: false
properties:
user:
type: string
date:
type: string
format: date-time
text:
type: string
product_base:
title: Product Schema
type: object
additionalProperties: false
properties:
type:
type: string
example: Tangible
cost:
type: number
example: 4.95
id:
type: integer
example: 19551105
company_id:
type: integer
example: 1985
name:
type: string
example: Flux Capacitor
sku:
type: string
example: outa-time
taxable:
type: string
weight:
type: number
example: 1.21
length:
type: integer
example: 12
width:
type: integer
example: 4
height:
type: integer
example: 8
price:
type: number
example: 19.55
customer_text:
anyOf:
- type: string
- type: 'null'
internal_notes:
example: Be sure to include the complimentary almanac
anyOf:
- type: string
- type: 'null'
total_on_hand:
type: number
category:
type: string
example: misc-timetravel
is_kit_parent:
type: boolean
example: false
archive_date:
format: date-time
anyOf:
- type: string
- type: 'null'
hs_code:
anyOf:
- type: string
- type: 'null'
country_of_origin:
example: US
anyOf:
- type: string
- type: 'null'
customs_description:
anyOf:
- type: string
- type: 'null'
created:
type: string
format: date-time
example: '2015-10-26T15:44:17.993588-06:00'
updated:
type: string
format: date-time
example: '2020-01-01T17:54:05.158248-06:00'
upc:
example: '847509005811'
anyOf:
- type: string
- type: 'null'
asin:
example: B07WXJHZ1L
anyOf:
- type: string
- type: 'null'
image_url:
anyOf:
- type: string
- type: 'null'
default_image_id:
anyOf:
- type: string
- type: 'null'
_link:
anyOf:
- type: string
- type: 'null'
tags:
type: array
items:
$ref: '#/components/schemas/v3_tag'
total_committed:
type: number
total_available:
type: number
total_allocated:
type: number
total_unallocated:
type: number
po_total_committed:
type: number
fulfillment_type:
enum:
- in_house
- dropshippable
# --- truncated at 32 KB (38 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/ordoro/refs/heads/main/openapi/ordoro-purchase-order-api-openapi.yml