---
title: "Create Order"
method: POST
path: "/api/v1/orders"
tags: ["Orders"]
---

# Create Order

`POST /api/v1/orders`

## Request

- Base URL: `https://api.g3m.co` (the document declares no server; this is the origin it was published from)
- URL: `https://api.g3m.co/api/v1/orders`
- Auth: none declared

## Request body

- OrderCreate
  - `recipient` RecipientCreateInput, required
    - `first_name` string, required
    - `last_name` string, required
    - `company` string, nullable
    - `address_line_1` string, required
    - `address_line_2` string, nullable
    - `city` string, required
    - `state_region` string, required
    - `postal_code` string, required
    - `country` string, required
    - `profile_url` string, uri, nullable
  - `gift_request` GiftRequestInput, required
    - `request_type` 'specific' | 'discovery', required
    - `product_url` string, uri, nullable
    - `description` string, nullable
    - `sourcing_prompt` string, nullable
    - `target_budget_cents` integer, nullable
  - `letter_content` string, required
  - `mailing_type` 'letter'

## Response `201`

Successful Response

- OrderDetailOut
  - `id` string, uuid, required
  - `order_number` string, required
  - `status` 'draft' | 'submitted' | 'sourcing' | 'awaiting_customer' | 'proposals_ready' | 'proposal_approved' | 'payment_method_required' | 'payment_processing' | 'payment_action_required' | 'payment_failed' | 'paid' | 'ready_for_fulfillment' | 'fulfilling' | 'shipped' | 'delivered' | 'completed' | 'rejected' | 'cancelled', required
  - `mailing_type` 'letter', required
  - `recipient_name` string, required
  - `company` string, nullable, required
  - `created_at` string, date-time, required
  - `submitted_at` string, date-time, nullable, required
  - `account_id` string, uuid, required
  - `created_by_user_id` string, uuid, required
  - `account` AccountOut, required
    - `id` string, uuid, required
    - `name` string, required
    - `slug` string, required
    - `is_active` boolean, required
    - `created_at` string, date-time, required
  - `created_by` UserOut, required
    - `id` string, uuid, required
    - `account_id` string, uuid, nullable, required
    - `email` string, email, required
    - `name` string, required
    - `avatar_url` string, nullable, required
    - `role` 'customer_user' | 'customer_admin' | 'platform_admin', required
    - `status` 'active' | 'disabled', required
    - `is_active` boolean, required
    - `last_login_at` string, date-time, nullable, required
    - `created_at` string, date-time, required
  - `has_saved_payment_method` boolean, required
  - `recipient` RecipientOut, required
    - `id` string, uuid, required
    - `first_name` string, required
    - `last_name` string, required
    - `company` string, nullable, required
    - `address_line_1` string, nullable, required
    - `address_line_2` string, nullable, required
    - `city` string, nullable, required
    - `state_region` string, nullable, required
    - `postal_code` string, nullable, required
    - `country` string, nullable, required
    - `address_status` 'needs_sourcing' | 'provided' | 'verified', required
    - `profile_url` string, nullable, required
  - `gift_request` GiftRequestOut, required
    - `id` string, uuid, required
    - `request_type` 'specific' | 'discovery', required
    - `product_url` string, nullable, required
    - `description` string, nullable, required
    - `sourcing_prompt` string, nullable, required
    - `target_budget_cents` integer, nullable, required
  - `letter` LetterOut, required
    - `id` string, uuid, required
    - `content` string, required
    - `version` integer, required
    - `locked_at` string, date-time, nullable, required
    - `created_at` string, date-time, required
    - `updated_at` string, date-time, required
    - `preview_url` string, required
  - `request_url` string, required
  - `proposals` ProposalOut[]
    - `id` string, uuid, required
    - `order_id` string, uuid, required
    - `proposal_round` integer, required
    - `title` string, required
    - `description` string, required
    - `status` 'draft' | 'proposed' | 'approved' | 'rejected' | 'withdrawn', required
    - `currency` string, required
    - `items_subtotal_cents` integer, required
    - `fees_total_cents` integer, required
    - `total_amount_cents` integer, required
    - `approved_by_user_id` string, uuid, nullable, required
    - `approved_at` string, date-time, nullable, required
    - `created_at` string, date-time, required
    - `items` ProposalItemOut[]
      - `id` string, uuid, required
      - `title` string, required
      - `description` string, nullable, required
      - `vendor_name` string, nullable, required
      - `product_url` string, nullable, required
      - `image_url` string, nullable, required
      - `availability_notes` string, nullable, required
      - `quantity` integer, required
      - `unit_price_cents` integer, required
      - `subtotal_cents` integer, required
      - `sort_order` integer, required
    - `costs` ProposalCostOut[]
      - `id` string, uuid, required
      - `type` 'product' | 'sourcing_fee' | 'fulfillment_fee' | 'shipping' | 'courier' | 'tax' | 'packaging' | 'other', required
      - `description` string, required
      - `amount_cents` integer, required
      - `sort_order` integer, required
  - `messages` OrderMessageOut[]
    - `id` string, uuid, required
    - `order_id` string, uuid, required
    - `author_user_id` string, uuid, required
    - `message` string, required
    - `created_at` string, date-time, required
  - `payment` PaymentOut
    - `id` string, uuid, required
    - `order_id` string, uuid, required
    - `proposal_id` string, uuid, required
    - `stripe_invoice_id` string, nullable, required
    - `stripe_invoice_number` string, nullable, required
    - `hosted_invoice_url` string, nullable, required
    - `invoice_pdf_url` string, nullable, required
    - `stripe_payment_intent_id` string, nullable, required
    - `amount_cents` integer, required
    - `currency` string, required
    - `status` 'not_charged' | 'processing' | 'action_required' | 'paid' | 'partially_refunded' | 'failed' | 'refunded' | 'cancelled', required
    - `failure_code` string, nullable, required
    - `failure_message` string, nullable, required
    - `paid_at` string, date-time, nullable, required
    - `refunded_at` string, date-time, nullable, required
    - `refunded_amount_cents` integer
    - `refund_pending_amount_cents` integer
    - `refundable_amount_cents` integer
  - `payment_setup_required` boolean
  - `payment_setup_url` string, nullable
  - `payment_action_url` string, nullable
  - `payment_retry_available` boolean
  - `fulfillment` FulfillmentOut
    - `id` string, uuid, required
    - `order_id` string, uuid, required
    - `status` 'ready' | 'fulfilling' | 'shipped' | 'delivered' | 'completed', required
    - `carrier` 'fedex' | 'ups' | 'usps' | 'dhl' | 'local_courier' | 'other', required
    - `tracking_number` string, nullable, required
    - `tracking_url` string, nullable, required
    - `notes` string, nullable, required
    - `dispatched_at` string, date-time, nullable, required
    - `delivered_at` string, date-time, nullable, required
    - `created_at` string, date-time, required
    - `updated_at` string, date-time, required
  - `events` CustomerActivityEventOut[]
    - `event_type` string, required
    - `created_at` string, date-time, required
    - `amount_cents` integer, nullable
    - `refund_amount_cents` integer, nullable
    - `retained_amount_cents` integer, nullable
    - `processing_fee_cents` integer, nullable
    - `currency` string, nullable
    - `invoice_number` string, nullable
    - `status` string, nullable
    - `reason` string, nullable
    - `message` string, nullable
    - `carrier` string, nullable
    - `tracking_number` string, nullable
    - `tracking_url` string, nullable

## Other responses

- `422`: Validation Error

---

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