---
title: "Create Inventory Journal Entry"
method: POST
path: "/inventory_journal_entries"
tags: ["Inventory Journal Entries"]
---

# Create Inventory Journal Entry

`POST /inventory_journal_entries`

## Request

- Base URL: `https://secure.fleetio.com/api`
- URL: `https://secure.fleetio.com/api/inventory_journal_entries`
- Auth: API key in header `Authorization` and API key in header `Account-Token`
- TypeScript: <https://skmtc.dev/fleetio/apis/fleetio-developer-api/docs/inventory_journal_entries/post.ts> (a function with typed inputs; its response is checked against the schema)

This endpoint provides the ability to adjust parts inventory.

## Request body

- union
  - object
    - `adjustment_quantity` number, float, required: The quantity adjustment to be made to the `Part`'s count.
    - `inventory_adjustment_reason_id` integer, required: The ID of the [Inventory Adjustment Reason](/docs/api/inventory-adjustment-reasons) associated with the entry.
    - `current_quantity` number, float: The current quantity of the `Part` after adjustments.
    - `part_id` integer, required: The ID of the `Part` associated with the entry.
    - `part_location_detail_id` integer, required: This ID refers to the details of the `Part` at a specific `Part Location`. You can send a GET request to `https://secure.fleetio.com/api/v1/parts/:id` to get any `part_location_detail_id`(s) for a `Part`. The `id` attribute under the `part_locations` object is the value that corresponds to this parameter.
    - `comments_attributes` CommentsAttributes[]
      - `title` string: The title of the comment.
      - `comment` string: The comment text.
  - object
    - `adjustment_quantity` number, float: The quantity adjustment to be made to the `Part`'s count.
    - `inventory_adjustment_reason_id` integer, required: The ID of the [Inventory Adjustment Reason](/docs/api/inventory-adjustment-reasons) associated with the entry.
    - `current_quantity` number, float, required: The current quantity of the `Part` after adjustments.
    - `part_id` integer, required: The ID of the `Part` associated with the entry.
    - `part_location_detail_id` integer, required: This ID refers to the details of the `Part` at a specific `Part Location`. You can send a GET request to `https://secure.fleetio.com/api/v1/parts/:id` to get any `part_location_detail_id`(s) for a `Part`. The `id` attribute under the `part_locations` object is the value that corresponds to this parameter.
    - `comments_attributes` CommentsAttributes[]
      - `title` string: The title of the comment.
      - `comment` string: The comment text.

## Response `201`

OK

- InventoryJournalEntryCreated, nullable: An InventoryAdjustmentReason
  - `id` integer, required
  - `created_at` string, date-time: The date and time at which this record was created.
  - `updated_at` string, date-time: The date and time at which this record was most recently updated.
  - `account_id` integer, required
  - `user_id` integer, required: The ID of the `User` associated with the entry.
  - `part_id` integer, required: The ID of the `Part` associated with the entry.
  - `part_location_detail_id` integer, required: The ID of the details of this `Part` at a specific `Part Location`. Not the same as `part_location_id`.
  - `previous_quantity` string, required: The previous quantity of the `Part` before any adjustments.
  - `current_quantity` string, required: The current quantity of the `Part` after adjustments.
  - `adjustment_quantity` string, required: The quantity adjustment made to the `Part`'s count.
  - `work_order_part_line_item_id` integer, nullable, required: The ID of the `Work Order Part Line Item` associated with the entry. Only applicable if the entry is associated with a `Work Order`.
  - `inventory_adjustment_reason_id` integer, nullable, required: The ID of the [Inventory Adjustment Reason](/docs/api/inventory-adjustment-reasons) associated with the entry.
  - `comments_count` integer, required: How many `Comments` this entry has.
  - `adjustment_type` 'initial' | 'manual' | 'work_order' | 'purchase_order' | 'bulk_update' | 'transfer', required: The type of adjustment that triggered the entry.
  - `transfer_part_location_id` integer, nullable, required: The ID of the `Part Location` that the `Part` was transferred to. Only applicable if the entry is associated with a transfer.
  - `purchase_order_line_item_id` integer, nullable, required: The ID of the `Purchase Order Line Item` associated with the entry. Only applicable if the entry is associated with a `Purchase Order`.
  - `work_order_id` integer, nullable, required: The ID of the `Work Order` associated with the entry. Only applicable if the entry is associated with a `Work Order`.
  - `unit_cost_cents` string, nullable: The unit cost in cents of the `Part` associated with the entry.
  - `total_inventory_value_cents` string, nullable: The total inventory value in cents of the `Part` associated with the entry.
  - `vendor_id` integer, nullable, required: The ID of the `Vendor` associated with the entry. Only applicable if the entry is associated with a `Purchase Order`.
  - `metadata` object, nullable: Additional metadata about the entry.
    - `id` integer: The ID of the associated record.
    - `number` string: The number of the associated record.
    - `type` 'PurchaseOrder' | 'WorkOrder'

## Other responses

- `401`: Request could not be authenticated
- `403`: Insufficient permission to perform this operation
- `422`: Unprocessable Entity
- `500`: Something unexpected happened

## Changes

- **2026-11-06** `49558d744bd7`: 1 breaking, 1 info
  - removed `subschema #1, subschema #2` from the request body `anyOf` list
  - added `subschema #1, subschema #2` to the request body `anyOf` list

[Operation history](https://skmtc.dev/fleetio/apis/fleetio-developer-api/changes/inventory_journal_entries/post.md)

---

[API](https://skmtc.dev/fleetio/apis/fleetio-developer-api.md) - [All operations](https://skmtc.dev/fleetio/apis/fleetio-developer-api/llms.txt) - [OpenAPI document](https://skmtc.dev/fleetio/apis/fleetio-developer-api/revisions/49558d744bd7?raw)
