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

# Create a purchase order

> Create a purchase order with the information provided



## OpenAPI

````yaml openapi.json post /v1/purchaseOrders
openapi: 3.1.0
info:
  title: OneChain API
  version: 1.3.2
  x-logo:
    href: https://www.onechain-tms.com
    url: static/logo.png
servers:
  - url: localhost:8080
security: []
tags:
  - description: |-
      This API lets you fetch your data from ONECHAIN's servers.

      URL: https://api.onechain-tms.com
    name: Introduction
    x-displayName: Introduction
  - description: >-
      To safely access the resources exposed by our API, you will need to
      provide an authenticated token in your requests headers. Please reach out
      to your ONECHAIN’s Account Manager to get your token. 

        | Name of the header | Type of authentication |
        |--------------------|------------------------|
        | Authorization      | API AUTHORIZATION KEY  |

        Please note that the API authorization key must be prefixed with "Bearer "

        For example:

        `Authorization: Bearer 1234567890`
        
        
    name: Authentication
    x-displayName: Authentication
  - description: |-
      All endpoints fetching multiple items are paginated.

        Use `skip` to skip to the items you want to retrieve.

        Use `take` to define how many items you want to retrieve.

        `skip` and `take` are optional parameters.

        If you do not input them, `skip` equals to 0 and `take` equals to 10.

        Example:

        `/v1/shipments?skip=20&take=10`
        
    name: Pagination
    x-displayName: Pagination
  - name: Shipments
  - name: Purchase Orders
  - name: Documents
  - name: Locations
  - name: Invoices
  - name: Users
  - name: Reporting
  - description: <SchemaDefinition schemaRef="#/components/schemas/Shipment" />
    name: ShipmentObject
    x-displayName: ShipmentObject
  - description: <SchemaDefinition schemaRef="#/components/schemas/Tracking" />
    name: TrackingObject
    x-displayName: TrackingObject
  - description: <SchemaDefinition schemaRef="#/components/schemas/OrderPreparation" />
    name: OrderPreparationObject
    x-displayName: OrderPreparationObject
  - description: <SchemaDefinition schemaRef="#/components/schemas/PurchaseOrder" />
    name: PurchaseOrderObject
    x-displayName: PurchaseOrderObject
  - description: <SchemaDefinition schemaRef="#/components/schemas/TrackingEvent" />
    name: TrackingEventObject
    x-displayName: TrackingEventObject
  - description: <SchemaDefinition schemaRef="#/components/schemas/TrackingDate" />
    name: TrackingDateObject
    x-displayName: TrackingDateObject
  - description: <SchemaDefinition schemaRef="#/components/schemas/TrackingStep" />
    name: TrackingStepObject
    x-displayName: TrackingStepObject
  - description: <SchemaDefinition schemaRef="#/components/schemas/Product" />
    name: ProductObject
    x-displayName: ProductObject
  - description: <SchemaDefinition schemaRef="#/components/schemas/Port" />
    name: PortObject
    x-displayName: PortObject
  - description: <SchemaDefinition schemaRef="#/components/schemas/Coordinates" />
    name: CoordinatesObject
    x-displayName: CoordinatesObject
  - description: <SchemaDefinition schemaRef="#/components/schemas/Container" />
    name: ContainerObject
    x-displayName: ContainerObject
  - description: <SchemaDefinition schemaRef="#/components/schemas/User" />
    name: UserObject
    x-displayName: UserObject
  - description: <SchemaDefinition schemaRef="#/components/schemas/Load" />
    name: LoadObject
    x-displayName: LoadObject
  - description: <SchemaDefinition schemaRef="#/components/schemas/Document" />
    name: DocumentObject
    x-displayName: DocumentObject
  - description: <SchemaDefinition schemaRef="#/components/schemas/Invoice" />
    name: InvoiceObject
    x-displayName: InvoiceObject
  - description: <SchemaDefinition schemaRef="#/components/schemas/Location" />
    name: LocationObject
    x-displayName: LocationObject
  - description: <SchemaDefinition schemaRef="#/components/schemas/Price" />
    name: PriceObject
    x-displayName: PriceObject
  - description: <SchemaDefinition schemaRef="#/components/schemas/Quantity" />
    name: QuantityObject
    x-displayName: QuantityObject
  - description: <SchemaDefinition schemaRef="#/components/schemas/Size" />
    name: SizeObject
    x-displayName: SizeObject
  - description: <SchemaDefinition schemaRef="#/components/schemas/Volume" />
    name: VolumeObject
    x-displayName: VolumeObject
  - description: <SchemaDefinition schemaRef="#/components/schemas/Weight" />
    name: WeightObject
    x-displayName: WeightObject
  - description: <SchemaDefinition schemaRef="#/components/schemas/SimpleDate" />
    name: SimpleDateObject
    x-displayName: SimpleDateObject
  - description: <SchemaDefinition schemaRef="#/components/schemas/DateWithTime" />
    name: DateWithTimeObject
    x-displayName: DateWithTimeObject
paths:
  /v1/purchaseOrders:
    post:
      tags:
        - Purchase Orders
      summary: Create a purchase order
      description: Create a purchase order with the information provided
      requestBody:
        content:
          application/json:
            schema:
              properties:
                custom_parameters:
                  items:
                    type: object
                    properties:
                      name:
                        type: string
                        example: parameter1
                      value:
                        type: string
                        example: value1
                  type: array
                desired_delivery_date:
                  $ref: '#/components/schemas/SimpleDate'
                desired_ex_factory_date:
                  $ref: '#/components/schemas/SimpleDate'
                product_lines:
                  items:
                    properties:
                      ordered_quantity:
                        example: 24
                        type: number
                      product:
                        $ref: '#/components/schemas/Product'
                      reference:
                        example: 'Delivery #1'
                        type: string
                      unit_price:
                        $ref: '#/components/schemas/Price'
                      volume:
                        example: 15
                        type: number
                      volume_unit:
                        type: string
                        example: m3
                    required:
                      - product
                      - ordered_quantity
                    type: object
                  type: array
                reference:
                  type: string
                  example: PO5792303
                supplier_id:
                  example: Detroit Factory
                  type: string
              required:
                - reference
                - supplier_id
                - product_lines
              type: object
        required: true
      responses:
        '201':
          description: Purchase order created
          content:
            application/json:
              schema:
                description: Purchase order created
                properties:
                  reference:
                    type: string
                type: object
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                description: Bad request
                type: object
components:
  schemas:
    SimpleDate:
      modelName: SimpleDate
      type: string
      example: '2021-10-11'
    Product:
      type: object
      required:
        - sku
      modelName: Product
      properties:
        sku:
          type: string
          example: REF0123458
        hs_code:
          type: string
          example: '96032930'
        description:
          type: string
          example: blue shirt with a T shape
        is_hazardous:
          type: boolean
          default: 'false'
        hazardous_description:
          type: string
          example: UN1993
        custom_parameters:
          type: array
          description: Array of up to 3 custom parameters
          items:
            type: object
            properties:
              name:
                type: string
                example: parameter1
              value:
                type: string
                example: value1
    Price:
      modelName: Price
      type: object
      properties:
        amount:
          type: number
          format: float
          example: 150357.99
        currency:
          type: string
          enum:
            - AED
            - AUD
            - BHD
            - BRL
            - CAD
            - CHF
            - CNY
            - EUR
            - GBP
            - HKD
            - IDR
            - INR
            - JPY
            - MXN
            - KRW
            - KWD
            - MYR
            - NZD
            - PLN
            - SEK
            - SGD
            - THB
            - TWD
            - USD
            - XOF
            - XPF
            - ZAR
          example: USD

````