Purchase Receipts
Sync receipts from your ERP into Ottimate for three-way invoice matching
A purchase receipt is a document that confirms goods or services were delivered against a purchase order. Receipts record what was actually received — including quantities and item details — and serve as the second verification step in three-way matching.
Source of truth: Purchase receipts originate in your source system (ERP). Ottimate syncs receipts from your ERP and stores them for document matching — your ERP remains the authoritative source for receipt data.
How receipts work in Ottimate
In a three-way matching workflow, receipts are synced to Ottimate after a purchase order has been created. Each receipt is linked to a specific PO, and a single PO can have one or more receipts (for example, when goods are delivered in multiple shipments).
Receipt line items reference the original PO line items through ottimate_po_item_id, connecting what was received back to what was ordered.
When an invoice arrives, Ottimate matches it against both the PO and its associated receipts to confirm that:
- The billed items match what was ordered (PO)
- The billed quantities match what was received (receipt)
- The billed prices match the agreed amounts (PO)
Receipt status values
Key fields
Linking receipts to purchase orders
Each receipt must reference an existing PO. You can identify the PO in two ways:
- By Ottimate ID — Provide
ottimate_po_iddirectly - By lookup fields — Provide
erp_vendor_id+ottimate_location_id+ eitherpo_numberorpo_external_id. Ottimate will resolve the PO for you.
Receipt line items
Each receipt line item links back to a PO line item. You can reference the PO item in two ways:
- By Ottimate ID — Provide
ottimate_po_item_id - By external ID — Provide
po_external_item_id(the external ID of the PO item) for lookup
API endpoints
Bulk operations
The bulk upsert endpoint allows you to create or update multiple receipts in a single request. This operation is processed asynchronously.
Rate limits:
- Maximum 100 receipts per request
- Maximum 1,000 total line items across all receipts in a single request
The response returns a batch_id that you can use with the Batch progress and Batch results endpoints to track the status of your bulk operation.
Updating receipts
When updating a receipt via PATCH, note the following restrictions:
- You cannot change
status,receipt_number,external_id, orottimate_po_id - To update existing line items, include the item
idin the items array - To add new line items, omit the
idfield

