Skip to main content



Coupa Success Portal

External Purchase Order Loader

External Purchase Order Loader


What is the business use case for external PO loader?  

This feature is geared towards customers that have specialized systems or modules within their ERP that generate orders and they have a need to bring these orders into Coupa for either PO transmission to Suppliers and/or Invoice processing in Coupa.


How is it different than the requisition loader?  

  • The fundamental difference is that with the external PO loader we are the eliminating the need for creating requisitions and the corresponding approvals in order to generate purchase orders.

  • In case of external POs, the external system is the source of truth for the Purchase Order. All approvals and PO updates will only be done in the external source system.

  • The external PO loader allows for external PO changes via flat file.


Do we have both API and CSV Flat file via SFTP options for this loader?



Do external POs behave the same way as internal POs (i.e. POs created in Coupa via the Req-> PO process)?

  • No.

  • External POs cannot be updated via the Coupa UI.

  • You cannot do desktop receiving in Coupa against an external PO line.


Can I prevent external POs from being transmitted to the supplier i.e. if I am using Coupa for Invoicing only?

  • Yes

  • PO transmission method  is configured on the supplier record.  For external POs there is an option to control transmission at a transaction by transaction level.

    • CSV loader using  action = IssueWithSend will result in PO being transmitted to Supplier (based on the configured PO transmission method). If left blank, then PO will NOT be transmitted to Supplier.

    • API: /api/purchase_orders/:id/issue_with_send will result in PO being transmitted to Supplier (based on the configured PO transmission method). If left blank, then PO will NOT be transmitted to Supplier.


Can I make changes to the external POs using the external PO loader?

Yes. In fact the only way to change to an external PO is through the external PO loader. You cannot make changes to an external PO in Coupa Enterprise via the UI.


Can I make changes to internal PO’s (generated in Coupa via req->PO process) using the external PO SFTP flat file loader ?



For making changes to the PO using the external PO flat file loader, do I have to send the entire latest greatest version of the PO or do I need to send only deltas?  

You only need to send deltas.


What is the uniqueness criteria for the external PO number? Is it similar to Invoices where it needs to be unique per supplier?

PO number needs to be unique across the Coupa instance. The external prefix/Number set needs to ensure that no conflicts with Coupas own numbering may occur (i.e. new internal PO finds its number taken).


Does the external “PO number” support only numbers or does it support alphanumeric characters?

You can use letters, numbers.


What about “PO line number”?

Letters and numbers work.


Do the COA settings for PO number impact the PO number for POs loaded through external PO loaders?

No. PO prefix and PO length settings do not impact the external PO number.


Is there any indication on the PO to indicate if it is an external PO or internal PO?

Yes in history & externally edited POs are not editable for consistency reasons. There is also a field type* on the PO header that indicates if this is a external PO or internal PO.

*order_headers.type = ExternalOrderHeader (internal POs have no value)

This field is however not shown on the API content for that PO.


Is there a UI bulk loader for the external PO loader similar to other loaders?





Release Notes:



  • Was this article helpful?