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

# Place Order

> Place a new order

<Tip>See [List of countries](/api-reference/orders/list-shipping-regions)</Tip>
<Tip>Pass in the user's details for personalized items. See [personalization guide](/guides/personalization) for more details</Tip>
<Tip>Partners must pass in the companyId field in the body</Tip>

## International pricing

NOTE! Some products have a `priceDeltaByCountry` field that will affect the price of the product when shipped internationally.
If you pass `countryCode` when getting the product you will get the price after applying the delta. If you don't pass `countryCode` you should apply the delta yourself based on the recipient's address

## Tax number

For Brazil, Mexico, China, Italy, and South Korea you must pass in an additional taxNumber field.
For Brazil the tax number field must pass regex validation as follows

```javascript theme={null}
new RegExp(`^\\d{3}\\.\\d{3}\\.\\d{3}-\\d{2}$`).test(taxNumber)
```

For Mexico the pattern is 13 characters (4 letters followed by 6 digits and 3 alphanumeric characters).

```javascript theme={null}
new RegExp(`^[A-Za-z]{4}\\d{6}[A-Za-z0-9]{3}$`).test(taxNumber)
```

For China, Italy, and South Korea there is no validation run on the taxNumber field.

## Personalization

To order a product with personalization the personalized product must first be created via the getProduct or listProducts endpoints

## CustomAttributes

Custom attribute field is deprecated. Please use the taxNumber field instead


## OpenAPI

````yaml post /api/ext/v1/collection/{collectionId}/orders
openapi: 3.0.1
info:
  title: Covver External API docs
  description: Covver External API docs
  version: 0.1.0
servers:
  - url: https://staging-api.covver.io
    description: Covver Staging Server
  - url: https://api.covver.io
    description: Covver Production Server
  - url: http://localhost:8080
    description: Covver Local Server
security:
  - BearerAuth: []
tags:
  - name: Auth
    description: Authentication endpoints
  - name: Products
    description: Product endpoints
  - name: People
    description: People endpoints
  - name: Orders
    description: Orders endpoints
  - name: Reports
    description: Report endpoints
externalDocs:
  url: https://swagger.io
  description: Find more info here
paths:
  /api/ext/v1/collection/{collectionId}/orders:
    post:
      tags:
        - Orders
      summary: Place Order
      description: Place a new order
      parameters:
        - schema:
            format: uuid
            type: string
          in: path
          name: collectionId
          required: true
      requestBody:
        content:
          application/json:
            schema:
              additionalProperties: false
              type: object
              properties:
                companyId:
                  description: Required for partners
                  type: string
                isVip:
                  type: boolean
                user:
                  type: object
                  properties:
                    firstName:
                      minLength: 1
                      type: string
                    lastName:
                      minLength: 1
                      type: string
                    email:
                      minLength: 1
                      type: string
                  required:
                    - firstName
                    - lastName
                    - email
                orderItems:
                  type: array
                  items:
                    type: object
                    properties:
                      variantId:
                        type: string
                      quantity:
                        type: number
                    required:
                      - variantId
                      - quantity
                taxNumber:
                  type: string
                customAttributes:
                  type: array
                  items:
                    type: object
                    properties:
                      key:
                        type: string
                      value:
                        type: string
                    required:
                      - key
                      - value
                address:
                  additionalProperties: false
                  type: object
                  properties:
                    address1:
                      maxLength: 35
                      description: 'Max length: 35'
                      type: string
                    city:
                      description: 'Max length: 35'
                      type: string
                    countryCode:
                      type: string
                    phone:
                      type: string
                    province:
                      type: string
                    provinceCode:
                      type: string
                    customAttributes:
                      type: array
                      items:
                        type: object
                        properties:
                          key:
                            type: string
                          value:
                            type: string
                        required:
                          - key
                          - value
                    address2:
                      maxLength: 35
                      description: 'Max length: 35'
                      default: ''
                      type: string
                    zip:
                      maxLength: 16
                      description: 'Max length: 16'
                      default: ''
                      type: string
                    country:
                      description: Deprecated, only countryCode is necessary
                      type: string
                  required:
                    - address1
                    - city
                    - countryCode
                    - phone
                    - address2
                note:
                  type: string
                personalizations:
                  type: object
                  properties:
                    firstName:
                      description: First name
                      type: string
                      nullable: true
                    lastName:
                      description: Last name
                      type: string
                      nullable: true
                    department:
                      description: Work department (e.g. sales)
                      type: string
                      nullable: true
                    location:
                      description: Work location (site/city/country)
                      type: string
                      nullable: true
                    startDate:
                      format: date-time
                      description: Start date in ISO format
                      type: string
                      nullable: true
                    birthDate:
                      format: date-time
                      description: Birth date in ISO format
                      type: string
                      nullable: true
                externalId:
                  type: string
                shouldSendEmail:
                  default: true
                  type: boolean
                shouldValidateProvinceCode:
                  type: boolean
              required:
                - user
                - orderItems
                - address
        required: true
      responses:
        '200':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  order:
                    type: object
                    properties:
                      id:
                        type: string
                      orderNumber:
                        type: string
                    required:
                      - id
                      - orderNumber
                required:
                  - order
        4XX:
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                  errorCode:
                    type: string
                  error: {}
                  statusCode:
                    type: number
                required:
                  - message
                  - errorCode
                  - statusCode
        5XX:
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                  errorCode:
                    type: string
                  error: {}
                  statusCode:
                    type: number
                required:
                  - message
                  - errorCode
                  - statusCode
components:
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT

````