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

# Create a shipment

> Create a new shipment for your company.

Provide sender and recipient addresses, parcel dimensions, content list, and billing profile.

<span className="badge-write">Key: Write</span><span className="badge-company">Scope: Company</span>


## OpenAPI

````yaml https://api.getprimo.com/openapi.json post /shipments
openapi: 3.1.1
info:
  title: Public API - BETA
  description: Read docs on https://docs.getprimo.com/
  version: '1.0'
  contact: {}
servers:
  - url: https://api.getprimo.com
security:
  - apikey: []
tags: []
paths:
  /shipments:
    post:
      tags:
        - Shipments
      summary: Create a shipment
      description: >-
        Create a new shipment for your company.


        Provide sender and recipient addresses, parcel dimensions, content list,
        and billing profile.
      operationId: createShipment
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateShipmentBody'
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ShipmentWriteResult_Output'
components:
  schemas:
    CreateShipmentBody:
      type: object
      properties:
        fromAddress:
          type: object
          properties:
            name:
              anyOf:
                - type: string
                - type: 'null'
            contactName:
              anyOf:
                - type: string
                - type: 'null'
            phone:
              anyOf:
                - type: string
                - type: 'null'
            street:
              type: string
              minLength: 1
            complement:
              anyOf:
                - type: string
                - type: 'null'
            postalCode:
              type: string
              minLength: 1
            city:
              type: string
              minLength: 1
            country:
              anyOf:
                - type: string
                - type: 'null'
            countryCode:
              anyOf:
                - type: string
                - type: 'null'
            type:
              anyOf:
                - type: string
                  enum:
                    - HOME
                    - WORK
                - type: 'null'
          required:
            - street
            - postalCode
            - city
        toAddress:
          type: object
          properties:
            name:
              anyOf:
                - type: string
                - type: 'null'
            contactName:
              anyOf:
                - type: string
                - type: 'null'
            phone:
              anyOf:
                - type: string
                - type: 'null'
            street:
              type: string
              minLength: 1
            complement:
              anyOf:
                - type: string
                - type: 'null'
            postalCode:
              type: string
              minLength: 1
            city:
              type: string
              minLength: 1
            country:
              anyOf:
                - type: string
                - type: 'null'
            countryCode:
              anyOf:
                - type: string
                - type: 'null'
            type:
              anyOf:
                - type: string
                  enum:
                    - HOME
                    - WORK
                - type: 'null'
          required:
            - street
            - postalCode
            - city
        parcel:
          type: object
          properties:
            weight:
              type: integer
              minimum: 100
              maximum: 20000
            length:
              type: integer
              minimum: 10
              maximum: 1000
            width:
              type: integer
              minimum: 10
              maximum: 1000
            height:
              type: integer
              minimum: 10
              maximum: 1000
          required:
            - weight
            - length
            - width
            - height
        hasInsurance:
          type: boolean
        value:
          type: integer
          exclusiveMinimum: 0
          maximum: 9007199254740991
        content:
          type: array
          items:
            type: object
            properties:
              id:
                anyOf:
                  - type: string
                  - type: 'null'
              name:
                type: string
              type:
                anyOf:
                  - type: string
                  - type: 'null'
            required:
              - name
        billingProfileId:
          type: string
          minLength: 1
        reason:
          anyOf:
            - type: string
              enum:
                - ONBOARDING
                - OFFBOARDING
                - RENEWAL
                - SEND_TO_EMPLOYEE
                - SEND_TO_OFFICE
                - RECYCLE
                - REPAIR
                - RESELL
                - OTHER
                - BOX
            - type: 'null'
        comment:
          anyOf:
            - type: string
            - type: 'null'
        notificationEmails:
          default: []
          type: array
          items:
            type: string
        createBoxShipment:
          type: boolean
      required:
        - fromAddress
        - toAddress
        - parcel
        - hasInsurance
        - value
        - content
        - billingProfileId
    ShipmentWriteResult_Output:
      type: object
      properties:
        success:
          type: boolean
          const: true
      required:
        - success
      additionalProperties: false
  securitySchemes:
    apikey:
      scheme: bearer
      bearerFormat: API key
      type: http
      description: >-
        Use your Primo API key in the Authorization header as `Bearer
        <API_KEY>`.

````