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

# Place a new order

> Create a new order for one or more service offers. Each offer will be sent to its respective provider for fulfillment. You can only order offers that are available to your reseller team.



## OpenAPI

````yaml https://api.offergrid.io/openapi-reseller post /reseller/orders
openapi: 3.0.0
info:
  title: OfferGrid API
  description: >-
    **Reseller API** - Browse service catalog and place orders on behalf of
    customers.


    As a reseller, you can:

    - Browse available service offerings from providers

    - Filter offers by category, price, location, and search terms

    - View detailed offer information including pricing and features

    - Place orders for customers (single or multi-provider orders)

    - Track order status and fulfillment progress

    - Cancel pending orders
  version: '1.0'
  contact: {}
servers:
  - url: https://api.offergrid.io
    description: Production
  - url: http://localhost:3000
    description: Local development
security: []
tags:
  - name: reseller-catalog
    description: 'Reseller: Browse available service offerings'
  - name: reseller-availability
    description: 'Reseller: Find offers available at a service address'
  - name: reseller-orders
    description: 'Reseller: Place and manage orders'
  - name: reseller-customers
    description: 'Reseller: Manage customers and leads'
  - name: reseller-links
    description: 'Reseller: Manage shareable customer links'
paths:
  /reseller/orders:
    post:
      tags:
        - reseller-orders
      summary: Place a new order
      description: >-
        Create a new order for one or more service offers. Each offer will be
        sent to its respective provider for fulfillment. You can only order
        offers that are available to your reseller team.
      operationId: ResellerOrdersController_create
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateOrderDto'
      responses:
        '201':
          description: Order successfully created
        '404':
          description: One or more offers are not available to your team
      security:
        - api-key: []
components:
  schemas:
    CreateOrderDto:
      type: object
      properties:
        items:
          description: Array of items to order (offers)
          example:
            - offerId: 123e4567-e89b-12d3-a456-426614174000
          type: array
          items:
            $ref: '#/components/schemas/OrderItemDto'
        serviceAddress:
          description: Service address for installation
          allOf:
            - $ref: '#/components/schemas/ServiceAddressDto'
        customerInfo:
          description: Customer information
          allOf:
            - $ref: '#/components/schemas/CustomerInfoDto'
        notes:
          type: string
          description: Additional notes for the order
          example: Customer prefers morning installations
        metadata:
          type: object
          description: Additional metadata for the order
          example:
            referralSource: property-listing
            unitNumber: 4B
      required:
        - items
        - serviceAddress
        - customerInfo
      title: Create Order Request
    OrderItemDto:
      type: object
      properties:
        offerId:
          type: string
          description: ID of the offer to order
          example: 123e4567-e89b-12d3-a456-426614174000
      required:
        - offerId
      title: Order Item
    ServiceAddressDto:
      type: object
      properties:
        street:
          type: string
          example: 123 Main St
        city:
          type: string
          example: San Francisco
        state:
          type: string
          example: CA
        zipCode:
          type: string
          example: '94102'
        country:
          type: string
          example: US
      required:
        - street
        - city
        - state
        - zipCode
        - country
      title: Service Address
    CustomerInfoDto:
      type: object
      properties:
        fullName:
          type: string
          example: John Doe
        email:
          type: string
          example: john@example.com
        phone:
          type: string
          example: +1-555-123-4567
      required:
        - fullName
        - email
        - phone
      title: Customer Information
  securitySchemes:
    api-key:
      type: apiKey
      in: header
      name: x-api-key
      description: >-
        Team API key for authentication. Your team role
        (provider/reseller/hybrid) determines which endpoints you can access.

````