---
title: "Commit every saved row of a purchase-order receipt, posting its inventory as the receiving screen's Receive does"
method: POST
path: "/api/receiving/receipts/{receiptId}/commit"
tags: ["Receiving Receipt"]
---

# Commit every saved row of a purchase-order receipt, posting its inventory as the receiving screen's Receive does

`POST /api/receiving/receipts/{receiptId}/commit`

## Request

- Base URL: `https://api.fulcrumpro.com`
- URL: `https://api.fulcrumpro.com/api/receiving/receipts/{receiptId}/commit`
- Auth: none declared
- TypeScript: <https://skmtc.dev/fulcrumpro/apis/fulcrum-publicapi/docs/api/receiving/receipts/:receiptId/commit/post.ts> (a function with typed inputs; its response is checked against the schema)

## Path parameters

- `receiptId` string, required

## Request body

- ReceivingCommitReceiptDto: Optional details for committing a purchase-order receipt whose rows were saved on the receiving screen.
  - `invoiceNumber` string, nullable: The vendor invoice number to record on the receipt. Omitted, null or blank keeps the number already saved on the receipt.

## Response `200`

The committed receipt

- ReceivingReceiptDto: Represents a receiving object
  - `id` string, required: Unique id associated to this entity.
  - `receivedBy` string, nullable: Id of the user who received the item(s)
  - `number` number, double, nullable: Number
  - `state` 'staged' | 'committed': Whether a receipt has been committed to inventory or is still staged on the receiving screen. Returned only when staged receipts are enabled for the account.
  - `date` string, date-time, nullable: Received date
  - `dateOriginal` string, date-time, nullable: Original received date
  - `dateOverride` string, date-time, nullable: Override received date
  - `accountingHeldUtc` string, date-time, nullable: Set while the receipt's accounting events are withheld because it contains material held for incoming inspection (tenant invoice timing = after-inspection). Held receipts are excluded from the receipt list until their inspections resolve; cleared when the deferred events fire.
  - `orderType` 'purchaseOrder' | 'salesOrder': Order type enum
  - `orderId` string, nullable: Id of parent order to which this receipt belongs
  - `externalReferences` object, nullable: Arbitrary key-value-pair like data that can be used to later on search for this receipt object.
  - `lines` ReceivingLineItemReceiptLineItemDto[]: Receipt Line item data.
    - `id` string, required: Unique id associated to this entity.
    - `lineItemId` string, required: Id of the purchase order line item corresponding to this update
    - `fullyReceived` boolean, required: Indicates whether the entire quantity of this line item have been received
    - `rolledBack` boolean, required: Indicates whether this update is active.
    - `quantityReceived` number, double, nullable: Quantity of the associated item that has been received on this update in the specified unit of measure (non-cumulative)
    - `unitOfMeasureMultiplier` number, double: If the receipt has a different unit of measure than the item is stored in fulcrum, you would use this multiplier with the QuantityReceived to get the amount you received into Fulcrum.
    - `convertedQuantityReceived` number, double: Quantity of the associated item that has been received in Fulcrum's unit of measure
    - `externalReferences` object, nullable: Arbitrary key-value-pair like data that can be used to later on search for this line item.
    - `unitPrice` number, double, nullable: Price of the purchase order line received against, per Fulcrum's unit of measure, so it multiplies directly with `convertedQuantityReceived`. Null means there is no price, not a price of zero. Supplied only by the receipts list endpoint.
    - `lineItemType` 'part' | 'outsideProcessing' | 'tax' | 'discount' | 'fee' | 'vendorCredit': Purchase order line item type
    - `itemId` string, nullable: Id of the item on the purchase order line received against: the part for a part line, the item being processed for an outside processing line. Null on a fee line, on an outside processing line with no item, on a sales order receipt and on a line that no longer resolves. Supplied only by the receipts list endpoint.
    - `unitCost` number, double, nullable: Cost per unit in Fulcrum's unit of measure, in the primary currency, excluding tax and landed cost: the billed unit price when a billed subtotal is entered, otherwise the line's price after its own discount, at the PO's exchange rate. Together with `unitTax` and `landedCost`, the tax and landed cost Fulcrum applies when it revalues a receipt, the line is valued at `convertedQuantityReceived × (unitCost + unitTax) + landedCost`, or `convertedQuantityReceived × unitCost + landedCost` excluding tax. On an outside processing line this is the value job cost uses. On a part line the inventory transaction can differ: a receipt entered after the bill is valued at the purchase order price, a bill changed after the inventory adjustment cutoff does not revalue older receipts, on a discounted line with no billed subtotal inventory holds the price before the discount, and on a line that is not taxable but has an overridden tax rate receiving adds that tax until the receipt is revalued. Rolled-back lines are populated as well; skip them. Null on a fee line, on a sales order receipt and on a line that no longer resolves. Supplied only by the receipts list endpoint.
    - `unitTax` number, double, nullable: Tax per unit in Fulcrum's unit of measure, in the primary currency, that Fulcrum applies to this line when it revalues a receipt; zero when the line is not taxed. See `unitCost` for how the three values combine. Null where `unitCost` is null. Supplied only by the receipts list endpoint.
    - `landedCost` number, double, nullable: Total landed cost allocated to this receipt line (not per unit), in the primary currency; zero when none is allocated. Null where `unitCost` is null. Supplied only by the receipts list endpoint.
  - `customFields` object, nullable: Custom fields that have been defined on this entity.
  - `invoiceNumber` string, nullable: The vendor invoice invoice number associated to the receipt.

## Other responses

- `400`: The receipt belongs to a sales order, has no saved rows, or fails the receiving screen's validation
- `403`: The receipt marks a line fully received before its full quantity is received, and the caller lacks the permission to do so
- `404`: Receipt did not exist
- `409`: The receipt is already committed, or is no longer the purchase order's open receipt

## Changes

- **2026-11-08** `5cecea8f436d`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/fulcrumpro/apis/fulcrum-publicapi/changes/api/receiving/receipts/:receiptId/commit/post.md)

---

[API](https://skmtc.dev/fulcrumpro/apis/fulcrum-publicapi.md) - [All operations](https://skmtc.dev/fulcrumpro/apis/fulcrum-publicapi/llms.txt) - [OpenAPI document](https://skmtc.dev/fulcrumpro/apis/fulcrum-publicapi/revisions/5cecea8f436d?raw)
