> ## Documentation Index
> Fetch the complete documentation index at: https://docs.vaultgraph.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Hold an order

> Pauses fulfillment until the store follows up.



## OpenAPI

````yaml /api-reference/openapi.yaml post /api/commerce/orders/{id}/hold
openapi: 3.1.0
info:
  title: VaultGraph Portal API
  version: 0.1.1
  description: Server-to-server endpoints exposed by the VaultGraph portal (beta).
servers:
  - url: https://app.vaultgraph.com
    description: Production
security: []
tags:
  - name: Shops
    description: Shop management endpoints.
  - name: Commerce
    description: >-
      Deployment-scoped commerce endpoints (catalog, checkout, order).
      Authenticated with a deployment (`dk_`) API key. Internal plumbing between
      the hosted MCP server and the merchant adapter — merchants integrate via
      the MCP, not these REST routes.
paths:
  /api/commerce/orders/{id}/hold:
    post:
      tags:
        - Commerce
      summary: Hold an order
      description: Pauses fulfillment until the store follows up.
      operationId: holdOrder
      parameters:
        - in: path
          name: id
          required: true
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - reason
              properties:
                reason:
                  type: string
                  description: Why the customer wants the order held.
      responses:
        '200':
          description: The held order
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/Order'
        '404':
          description: Order not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '409':
          description: The order can no longer be held
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      security:
        - ApiKeyAuth: []
components:
  schemas:
    Order:
      type: object
      required:
        - id
        - created_at
        - checkout_id
        - currency
        - permalink_url
        - line_items
        - totals
        - fulfillment
        - ucp
      properties:
        id:
          type: string
        display_id:
          type: string
          description: >-
            Short, customer-facing order reference shown on receipts and emails.
            Distinct from the opaque `id`; for display only. Absent when the
            store has no separate reference.
          example: ORD_1042
        created_at:
          type: string
          format: date-time
          description: ISO 8601 timestamp of when the order was placed.
          example: '2026-06-23T10:15:00.000Z'
        checkout_id:
          type: string
        currency:
          type: string
          description: ISO 4217 currency code of the order's monetary amounts.
          example: GBP
        permalink_url:
          type: string
        status:
          type: string
          enum:
            - processing
            - on_hold
            - completed
            - cancelled
          description: Lifecycle state of the order.
          example: processing
        payment_status:
          type: string
          enum:
            - pending
            - authorized
            - paid
            - partially_refunded
            - refunded
            - failed
          description: Payment state of the order.
          example: paid
        line_items:
          type: array
          items:
            $ref: '#/components/schemas/OrderLineItem'
        totals:
          type: array
          items:
            $ref: '#/components/schemas/Total'
        fulfillment:
          $ref: '#/components/schemas/OrderFulfillment'
        messages:
          type: array
          description: Store-to-customer notes about the order.
          items:
            $ref: '#/components/schemas/OrderMessage'
        permitted_actions:
          type: array
          description: >-
            Actions that would succeed on this order right now. Empty once the
            order is past the point of change.
          items:
            type: string
            enum:
              - hold
              - release
          example:
            - hold
        ucp:
          $ref: '#/components/schemas/UcpEnvelope'
    ErrorResponse:
      type: object
      required:
        - error
      properties:
        error:
          type: string
        detail:
          type: string
    OrderLineItem:
      type: object
      properties:
        id:
          type: string
        item:
          type: object
          properties:
            id:
              type: string
            title:
              type: string
            price:
              type: integer
            image_url:
              type: string
          required:
            - id
            - title
            - price
          additionalProperties: false
        quantity:
          type: object
          properties:
            total:
              type: integer
              minimum: 0
            fulfilled:
              type: integer
              minimum: 0
          required:
            - total
            - fulfilled
          additionalProperties: false
        status:
          type: string
          enum:
            - processing
            - partial
            - fulfilled
        totals:
          type: array
          items:
            type: object
            properties:
              type:
                type: string
                enum:
                  - subtotal
                  - discount
                  - items_discount
                  - fee
                  - fulfillment
                  - tax
                  - total
              amount:
                type: integer
              display_text:
                type: string
            required:
              - type
              - amount
            additionalProperties: false
        parent_id:
          type: string
        properties:
          type: array
          items:
            type: object
            properties:
              name:
                type: string
                minLength: 1
              value:
                type: string
            required:
              - name
              - value
            additionalProperties: false
      required:
        - id
        - item
        - quantity
        - status
        - totals
      additionalProperties: false
    Total:
      type: object
      required:
        - type
        - amount
      description: >-
        One row of a money breakdown; at most one row per type. `total` is the
        authoritative amount the shopper is charged and the other rows are the
        breakdown that explains it. `items_discount` is the share of `discount`
        coming from per-line promotions.
      properties:
        type:
          type: string
          enum:
            - subtotal
            - discount
            - items_discount
            - fulfillment
            - tax
            - fee
            - total
        amount:
          type: integer
        display_text:
          type: string
    OrderFulfillment:
      type: object
      properties:
        events:
          type: array
          items:
            type: object
            properties:
              carrier:
                type: string
              description:
                type: string
              id:
                type: string
              line_items:
                type: array
                items:
                  type: object
                  properties:
                    id:
                      type: string
                    quantity:
                      type: number
                  required:
                    - id
                    - quantity
                  additionalProperties: false
              occurred_at:
                type: string
                format: date-time
              tracking_number:
                type: string
              tracking_url:
                type: string
              type:
                type: string
            required:
              - id
              - line_items
              - occurred_at
              - type
            additionalProperties: false
        expectations:
          type: array
          items:
            type: object
            properties:
              description:
                type: string
              destination:
                type: object
                properties:
                  address_country:
                    type: string
                  address_locality:
                    type: string
                  address_region:
                    type: string
                  extended_address:
                    type: string
                  first_name:
                    type: string
                  last_name:
                    type: string
                  phone_number:
                    type: string
                  postal_code:
                    type: string
                  street_address:
                    type: string
                additionalProperties: false
              fulfillable_on:
                type: string
              id:
                type: string
              line_items:
                type: array
                items:
                  type: object
                  properties:
                    id:
                      type: string
                    quantity:
                      type: number
                  required:
                    - id
                    - quantity
                  additionalProperties: false
              method_type:
                type: string
                enum:
                  - digital
                  - pickup
                  - shipping
            required:
              - destination
              - id
              - line_items
              - method_type
            additionalProperties: false
      additionalProperties: false
    OrderMessage:
      type: object
      required:
        - type
        - content
      properties:
        type:
          type: string
          enum:
            - info
          description: >-
            Order notes are always informational. Conditions the shopper must
            act on belong on the checkout, as a `CheckoutMessage`.
        content:
          type: string
          description: The note text, as the store wrote it.
    UcpEnvelope:
      type: object
      properties:
        capabilities:
          type: object
          additionalProperties:
            type: array
            items:
              type: object
              properties:
                config:
                  type: object
                  additionalProperties: {}
                extends:
                  type: string
                name:
                  type: string
                schema:
                  type: string
                spec:
                  type: string
                version:
                  type: string
              required:
                - name
                - version
              additionalProperties: false
        version:
          type: string
      required:
        - capabilities
        - version
      additionalProperties: false
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.