Skip to main content



Coupa Success Portal

Purchase Orders API

The Coupa API allows you to do the use the Purchase Order API, for Purchase Order revisions information PO Revision API.

The URL to access purchase orders is: https://<instance>/api/purchase_orders


Order Pad

Purchase Orders API allows you to:

Verb Path Action Description
POST /api/purchase_orders create Enables import of purchase orders from an external system. When you create a PO using the POST method it is not associated with a Coupa requisition, it may not be modified, and it is not closed automatically by script.
GET /api/purchase_orders index Query purchase orders
GET /api/purchase_orders/:id show Show purchase order
PATCH /api/purchase_orders/:id update Update purchase order
PUT /api/purchase_orders/:id update Update purchase order


 Purchase Orders API:

Element Description Type API In API Out Required Length Allowable Values
acknowledged-at acknowledged_at datetime   Yes No -  
acknowledged-flag Has PO been acknowledged by Supplier? integer Yes Yes No -  
attachments attachments Attachment Yes Yes No -  
created-at Date record was created in Coupa. datetime   Yes No -  
created-by Coupa ID of User who created Invoice integer   Yes No -  
current-integration-history-records current_integration_history_records integer   Yes No -  
exported? Indicates if transaction has been exported integer   Yes No -  
first-order-line-requisition-header first_order_line_requisition_header integer   Yes No -  
id Coupa's internal ID integer   Yes No -  
internal-revision Internal Revision Number - Increases each time a change is made to a PO whether that change is internal or causes the PO to be resent to the supplier. integer   Yes No -  
last-exported-at Date and time transaction was last exported in the format YYYY-MM-DDTHH:MM:SS+HH:MMZ datetime   Yes No -  
order-lines order_lines OrderLine Yes Yes Yes -  
payment-method payment_method string   Yes No -  
payment-term Payment Terms PaymentTerm Yes Yes No -  
pcard pcard Pcard Yes Yes No -  
po-number PO Number string   Yes Yes 20  
price-hidden Hide price from supplier. True or False boolean   Yes      
requester Requesting Account's login User Yes Yes No -  
ship-to-address ship_to_address Address Yes Yes No -  
ship-to-user ship_to_user User Yes Yes Yes -  
shipping-term Payment Terms ShippingTerm Yes Yes No -  
status PO Status string   Yes No -  
supplier Supplier Coupa internal ID number Supplier Yes Yes No -  
transmission-status Transmission Status integer   Yes No -  
updated-at Last Updated at Date datetime   Yes No -  
updated-by Coupa ID of User who created Invoice integer   Yes No -  
version PO Supplier Version Number - Increase each time a PO is changed and triggers a resend to the supplier. integer   Yes No -  


  • There are dependent fields that become queryable based the value from the source field.  For example, if you query against po-method=email, then po-email can be added as an additional query criteria.  Please see fields with Yes*.
  • For large data set and for performance optimization, you should always limit your result with some GET criteria.
  • PO changes do not always increment the version number. See Fields that Cause a Purchase Order Revision for more info..  The updated-at field can always be used to determine whether any changes have been made.
  • Was this article helpful?