---
title: "Add a note to the timeline"
method: POST
path: "/v3/fulfillment/orders/{id}/notes"
tags: ["Fulfillment"]
---

# Add a note to the timeline

`POST /v3/fulfillment/orders/{id}/notes`

## Request

- Base URL: `https://api.rhinoartisan.com`
- URL: `https://api.rhinoartisan.com/v3/fulfillment/orders/{id}/notes`
- Auth: API key in header `apikey`
- TypeScript: <https://skmtc.dev/rhinoartisan/apis/rhinoartisan-api/docs/v3/fulfillment/orders/:id/notes/post.ts> (a function with typed inputs; its response is checked against the schema)

## Path parameters

- `id` integer, required

## Request body

- object
  - `note` string, required

## Response `200`

The order

- Order
  - `id` integer
  - `number` string
  - `status` 'draft' | 'quote' | 'ordered' | 'in_production' | 'ready' | 'shipped' | 'delivered' | 'cancelled'
  - `client` object, nullable
    - `id` integer
    - `name` string
    - `email` string, nullable
    - `phone` string, nullable
  - `store` object, nullable
    - `id` integer
    - `name` string
  - `seller` object, nullable
    - `id` integer
    - `name` string
  - `currency` string
  - `subtotal` number
  - `tax_name` string, nullable
  - `tax_rate` number: Percentage
  - `tax_included` boolean: Line prices already include the tax
  - `tax_amount` number
  - `total` number
  - `paid_amount` number
  - `balance` number
  - `notes` string, nullable
  - `preview` string, nullable: First piece photo (list only)
  - `lines_count` integer
  - `lines` OrderLine[]
    - `id` integer
    - `position` integer
    - `kind` 'design' | 'diamond'
    - `design_id` integer, nullable
    - `diamond_id` integer, nullable
    - `name` string
    - `preview` string, nullable
    - `quantity` integer
    - `unit_price` number
    - `line_total` number
    - `currency` string
    - `snapshot` object: The frozen piece: capsule, record, values_resolved, tech, breakdown, metal, size, engraving, stones, pricing, manufacturer
    - `cost` number, nullable: Only for Owner, Fulfillment, Merchandising and Settings
    - `markup_percentage` number, nullable: Only for Owner, Fulfillment, Merchandising and Settings
    - `manufacturer` object, nullable: Only for Owner, Fulfillment, Merchandising and Settings
      - `id` integer, nullable
      - `name` string
  - `events` OrderEvent[]
    - `id` integer
    - `kind` 'created' | 'status' | 'payment' | 'note' | 'email' | 'job' | 'shipment' | 'incident' | 'cost'
    - `status_from` string, nullable
    - `status_to` string, nullable
    - `amount` number, nullable: Payment amount, in the order currency
    - `method` 'cash' | 'card' | 'transfer' | 'other', nullable
    - `reference` string, nullable
    - `note` string, nullable
    - `author` object, nullable
      - `id` integer, nullable
      - `name` string
    - `created_at` string, date-time
  - `allowed_transitions` string[]
  - `can_produce` boolean: Every design line has a manufacturer frozen
  - `created_at` string, date-time
  - `confirmed_at` string, date-time, nullable
  - `expected_delivery_at` string, date, nullable
  - `valid_until` string, date, nullable: Quote validity
  - `expired` boolean: A quote past its validity
  - `sent_at` string, date-time, nullable: Last time it was emailed to the client
  - `shipping_carrier` string, nullable
  - `shipping_tracking` string, nullable
  - `shipping_address` string, nullable
  - `shipped_at` string, date-time, nullable
  - `jobs` ProductionJob[]: Workshop jobs (detail only)
    - `id` integer
    - `order` object: List only
      - `id` integer
      - `number` string
      - `status` string
      - `client` string, nullable
      - `expected_delivery_at` string, date, nullable
    - `line` object
      - `id` integer
      - `name` string
      - `preview` string, nullable
      - `design_id` integer, nullable
    - `manufacturer_id` integer, nullable
    - `manufacturer_name` string, nullable
    - `kind` 'production' | 'rework'
    - `status` 'pending' | 'sent' | 'in_progress' | 'done' | 'cancelled'
    - `allowed_transitions` string[]
    - `quantity` integer
    - `stl_url` string, nullable
    - `stl_status` 'ready' | 'pending' | 'failed'
    - `stl_error` string, nullable
    - `tech_sheet` object: Piece, metal, size, engraving, stones, record, tech; no prices
    - `notes` string, nullable
    - `sent_at` string, date-time, nullable
    - `started_at` string, date-time, nullable
    - `done_at` string, date-time, nullable
    - `created_at` string, date-time
    - `updated_at` string, date-time
  - `margin` object, nullable: Only for those who see costs
    - `revenue` number
    - `lines_cost` number
    - `extra_costs` number
    - `margin` number
    - `margin_pct` number, nullable
    - `lines_without_cost` integer
  - `delivered_at` string, date-time, nullable
  - `cancelled_at` string, date-time, nullable
  - `updated_at` string, date-time

## Other responses

- `400`: INVALID_NOTE
- `404`: ORDER_NOT_FOUND

## Changes

- **2026-10-19** `3448a5b6797c`: 5 warning, 6 info
  - added the new `cost` enum value to the `events/items/kind` response property for the response status `200`
  - added the new `incident` enum value to the `events/items/kind` response property for the response status `200`
  - added the new `job` enum value to the `events/items/kind` response property for the response status `200`
  - added the new `shipment` enum value to the `events/items/kind` response property for the response status `200`
  - …7 more
- **2026-10-18** `6cc8e3d2d85c`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/rhinoartisan/apis/rhinoartisan-api/changes/v3/fulfillment/orders/:id/notes/post.md)

---

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