post_production_status

Post a purchase order's production status

act entity controlled-share since 2026-10-01

For the supplier of an org's purchase order: says where its units are in production (scheduled, in production, produced, ready for pickup, delayed), optionally with the date they will be ready and a note. While the purchase order's confirmation is still waiting in the buyer's PO ingest, the date is written onto it, so the buyer's apply carries it. Each post is kept; sending the same post again with the same Idempotency-Key changes nothing.

Contract

shape
entity
authority
act
evidence
none
subscription
false
permission
any one of: org.guest (carried by the caller's role template in the org `org_id`, which owns the document `document_kind`/`document_id`); counterparty (org.member carried by the caller's role template in an org that holds a seat on the document; it reads its own seat); a deactivated caller is refused first
idempotency
keyed
emits
po.status_posted
MCP tool
post_production_status
decision_set
approve, reject, edit, request_info
REST
POST https://api.containertradehq.com/v1/cap/post_production_status

Through MCP this call returns an approval request first; see Approvals.

Idempotency: keyed by the caller's Idempotency-Key, which is required: the same key and inputs replay the first result, the same key with other inputs is 409 idempotency_key_reused

Inputs

nametyperequiredvalidation
org_idorg_idrequiredtradehq-org-id; 1 to 20 characters
The org that owns the purchase order: the buyer.
document_kindone_ofrequiredone of asset_intake, order
asset_intake: a purchase order. An order is refused.
document_idtextrequired1 to 64 characters
The purchase order's id.
statusone_ofrequiredone of scheduled, in_production, produced, ready_for_pickup, delayed
Where the units are: scheduled, in_production, produced, ready_for_pickup or delayed.
vendor_etadateoptionaldate, YYYY-MM-DD
When the units will be ready for the in-gate, YYYY-MM-DD.
notetextoptional1 to 500 characters
Anything the buyer should read with it.

Response

  • post_id · string · The post.
  • org_id · string · The buyer.
  • document_id · string · The purchase order.
  • party_id · string · The supplier party.
  • status · string · The status posted.
  • vendor_eta · stringnull · The ready date, if given.
  • note · stringnull · The note, if given.
  • staged_rows · integer · How many of the confirmation's staged rows took the date: zero with no date, no confirmation, or one the buyer has applied.
  • posted_at · string · When.
Full JSON Schema
{
  "type": "object",
  "properties": {
    "post_id": {
      "type": "string",
      "description": "The post.",
      "x-data-class": "operational"
    },
    "org_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 20,
      "pattern": "^[A-Za-z0-9_-]{1,20}$",
      "format": "tradehq-org-id",
      "description": "The buyer.",
      "x-data-class": "operational"
    },
    "document_id": {
      "type": "string",
      "description": "The purchase order.",
      "x-data-class": "operational"
    },
    "party_id": {
      "type": "string",
      "pattern": "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12}$",
      "format": "uuid",
      "description": "The supplier party.",
      "x-data-class": "operational"
    },
    "status": {
      "type": "string",
      "enum": [
        "scheduled",
        "in_production",
        "produced",
        "ready_for_pickup",
        "delayed"
      ],
      "description": "The status posted.",
      "x-data-class": "operational"
    },
    "vendor_eta": {
      "type": [
        "string",
        "null"
      ],
      "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
      "format": "date",
      "description": "The ready date, if given.",
      "x-data-class": "operational"
    },
    "note": {
      "type": [
        "string",
        "null"
      ],
      "description": "The note, if given.",
      "x-data-class": "operational"
    },
    "staged_rows": {
      "type": "integer",
      "minimum": 0,
      "description": "How many of the confirmation's staged rows took the date: zero with no date, no confirmation, or one the buyer has applied.",
      "x-data-class": "operational"
    },
    "posted_at": {
      "type": "string",
      "format": "date-time",
      "description": "When.",
      "x-data-class": "operational"
    }
  },
  "required": [
    "post_id",
    "org_id",
    "document_id",
    "party_id",
    "status",
    "vendor_eta",
    "note",
    "staged_rows",
    "posted_at"
  ],
  "additionalProperties": false
}

Refusals

not yet declared

The platform refusals apply to every call: version, authentication, authority, validation and rate limits, each in the same envelope.

Surfaces

DesktopF
MobileF
APIF
MCPF*
VoiceD5
PushF
OneBoxN
OutboundN
  • MCP: approval required
  • Voice: degraded: composition
  • OneBox: a production status is posted by the supplier, never read from an inbound document
  • Outbound: nothing is sent; the buyer is told by push

Events

Related

confirm_purchase_order, get_supplier_purchase_order, list_supplier_posts, submit_serial_batch