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

# Initialize a draft for review and completion in Shor



## OpenAPI

````yaml /api-reference/openapi.json post /contracts
openapi: 3.1.0
info:
  title: Shor Public API
  version: 1.0.0
servers:
  - url: /v1
security: []
paths:
  /contracts:
    post:
      summary: Initialize a draft for review and completion in Shor
      operationId: createContractDraft
      parameters:
        - name: Idempotency-Key
          in: header
          required: true
          schema:
            $schema: https://json-schema.org/draft/2020-12/schema
            type: string
            minLength: 16
            maxLength: 128
            pattern: ^[A-Za-z0-9_-]+$
          description: >-
            Unique intent ID. Preserve across retries; use a new value for an
            intentional new operation.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $schema: https://json-schema.org/draft/2020-12/schema
              type: object
              properties:
                title:
                  type: string
                  minLength: 1
                  maxLength: 200
                professionalEmail:
                  type: string
                  maxLength: 254
                  format: email
                  pattern: >-
                    ^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$
                description:
                  type: string
                  maxLength: 10000
                employmentType:
                  type: string
                  enum:
                    - employee
                    - contractor
                contractType:
                  type: string
                  enum:
                    - employment_at_will
                    - contractor_fixed
                    - contractor_milestone
                    - contractor_payg
                countryOfEmployment:
                  type: string
                  minLength: 2
                  maxLength: 2
                startDate:
                  type: string
                  format: date
                  pattern: >-
                    ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
                endDate:
                  type: string
                  format: date
                  pattern: >-
                    ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
                noticePeriodDays:
                  type: integer
                  minimum: 0
                  maximum: 9007199254740991
                department:
                  type: string
                  enum:
                    - business_development
                    - customer_support
                    - data
                    - design
                    - engineering
                    - finance
                    - hr
                    - it
                    - legal
                    - marketing
                    - operations
                    - product
                    - sales
                    - other
                seniority:
                  type: string
                  enum:
                    - intern
                    - lv1
                    - lv2
                    - lv3
                    - lv4
                    - lv5
                    - lead
                    - manager
                    - director
                    - vp
                    - c_level
                employmentSubtype:
                  type: string
                  enum:
                    - full_time
                    - part_time
                terminationDate:
                  type: string
                  format: date
                  pattern: >-
                    ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
                specialClauses:
                  type: string
                  maxLength: 20000
                serviceTypes:
                  type: array
                  items:
                    type: string
                skills:
                  type: array
                  items:
                    type: string
                tools:
                  type: array
                  items:
                    type: string
                disputeResolutionMethod:
                  type: string
                  enum:
                    - arbitration
                    - court
                governingCountry:
                  type: string
                  minLength: 2
                  maxLength: 2
                governingStateProvince:
                  type: string
                  maxLength: 100
                compensation:
                  type: object
                  properties:
                    type:
                      type: string
                      enum:
                        - hourly
                        - salary
                        - milestone
                        - retainer
                        - per_task
                    currency:
                      default: USD
                      type: string
                      minLength: 3
                      maxLength: 3
                    rate:
                      type: number
                      exclusiveMinimum: 0
                    annualSalary:
                      type: number
                      exclusiveMinimum: 0
                    paymentFrequency:
                      type: string
                      enum:
                        - daily
                        - weekly
                        - biweekly
                        - monthly
                    retainerAmount:
                      type: number
                      exclusiveMinimum: 0
                    salaryUnit:
                      type: string
                      enum:
                        - per_hour
                        - per_week
                        - per_month
                        - per_year
                    signingBonus:
                      type: number
                      minimum: 0
                    probationPeriodDays:
                      type: integer
                      minimum: 0
                      maximum: 9007199254740991
                    effectiveDate:
                      type: string
                      format: date
                      pattern: >-
                        ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
                  required:
                    - type
                invoicingSettings:
                  type: object
                  properties:
                    paymentMethod:
                      type: string
                      enum:
                        - bank_transfer
                        - wise
                        - payoneer
                        - usdc_wallet
                        - other
                    invoiceFrequency:
                      type: string
                      enum:
                        - daily
                        - weekly
                        - biweekly
                        - monthly
                    cycleClosesOn:
                      type: string
                    paymentDueDays:
                      default: 0
                      type: integer
                      minimum: 0
                      maximum: 9007199254740991
                    firstPaymentMethod:
                      type: string
                      enum:
                        - full_amount
                        - pro_rata
                    firstPaymentAmount:
                      type: number
                      exclusiveMinimum: 0
                    firstPaymentDate:
                      type: string
                      format: date
                      pattern: >-
                        ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
                    timesheetSubmitter:
                      type: string
                      enum:
                        - client
                        - contractor
                    timesheetApprovalRequired:
                      default: true
                      type: boolean
                    autoApproveAfterDays:
                      type: integer
                      exclusiveMinimum: 0
                      maximum: 9007199254740991
                    autoPayEnabled:
                      default: true
                      type: boolean
                benefits:
                  type: object
                  properties:
                    bonusAmount:
                      type: number
                      exclusiveMinimum: 0
                    bonusFrequency:
                      type: string
                      enum:
                        - monthly
                        - quarterly
                        - annual
                    allowanceAmount:
                      type: number
                      exclusiveMinimum: 0
                    allowanceFrequency:
                      type: string
                      enum:
                        - monthly
                        - quarterly
                        - annual
                    commissionPercentage:
                      type: number
                      minimum: 0
                      maximum: 100
                    commissionFrequency:
                      type: string
                      enum:
                        - monthly
                        - quarterly
                        - annual
                    timeOffDays:
                      type: integer
                      minimum: 0
                      maximum: 9007199254740991
                milestones:
                  type: array
                  items:
                    type: object
                    properties:
                      title:
                        type: string
                        minLength: 1
                        maxLength: 200
                      description:
                        type: string
                        maxLength: 10000
                      amount:
                        type: number
                        exclusiveMinimum: 0
                      dueDate:
                        type: string
                        format: date
                        pattern: >-
                          ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
                      sortOrder:
                        type: integer
                        minimum: 0
                        maximum: 9007199254740991
                      documentIds:
                        type: array
                        items:
                          type: string
                          format: uuid
                          pattern: >-
                            ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                    required:
                      - title
                      - amount
                workSchedule:
                  type: string
                externalReference:
                  type: string
                  minLength: 1
                  maxLength: 128
              required:
                - title
              additionalProperties: false
      responses:
        '201':
          description: Success
          content:
            application/json:
              schema:
                $schema: https://json-schema.org/draft/2020-12/schema
                type: object
                properties:
                  id:
                    type: string
                    format: uuid
                    pattern: >-
                      ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                  title:
                    type: string
                  employmentType:
                    type: string
                    enum:
                      - employee
                      - contractor
                  contractType:
                    type: string
                    enum:
                      - employment_at_will
                      - contractor_fixed
                      - contractor_milestone
                      - contractor_payg
                  status:
                    type: string
                    enum:
                      - draft
                      - pending_verification
                      - ready_for_signature
                      - pending_signature
                      - signed
                      - active
                      - offboarding
                      - completed
                      - cancelled
                  worker:
                    type: object
                    properties:
                      id:
                        anyOf:
                          - type: string
                            format: uuid
                            pattern: >-
                              ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                          - type: 'null'
                      name:
                        anyOf:
                          - type: string
                          - type: 'null'
                    required:
                      - id
                      - name
                    additionalProperties: false
                  startDate:
                    anyOf:
                      - type: string
                        format: date
                        pattern: >-
                          ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
                      - type: 'null'
                  endDate:
                    anyOf:
                      - type: string
                        format: date
                        pattern: >-
                          ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
                      - type: 'null'
                  createdAt:
                    type: string
                    format: date-time
                    pattern: >-
                      ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                  updatedAt:
                    type: string
                    format: date-time
                    pattern: >-
                      ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                  deletedAt:
                    anyOf:
                      - type: string
                        format: date-time
                        pattern: >-
                          ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                      - type: 'null'
                required:
                  - id
                  - title
                  - employmentType
                  - contractType
                  - status
                  - worker
                  - startDate
                  - endDate
                  - createdAt
                  - updatedAt
                  - deletedAt
                additionalProperties: false
        '400':
          description: Error
          content:
            application/json:
              schema:
                $schema: https://json-schema.org/draft/2020-12/schema
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      type:
                        type: string
                        enum:
                          - authentication_error
                          - permission_error
                          - validation_error
                          - not_found
                          - conflict
                          - rate_limit_error
                          - api_error
                      code:
                        type: string
                      message:
                        type: string
                      status:
                        type: integer
                        minimum: -9007199254740991
                        maximum: 9007199254740991
                      requestId:
                        type: string
                      details:
                        type: array
                        items:
                          type: object
                          properties:
                            path:
                              type: string
                            code:
                              type: string
                          required:
                            - path
                            - code
                          additionalProperties: false
                    required:
                      - type
                      - code
                      - message
                      - status
                      - requestId
                    additionalProperties: false
                required:
                  - error
                additionalProperties: false
        '401':
          description: Error
          content:
            application/json:
              schema:
                $schema: https://json-schema.org/draft/2020-12/schema
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      type:
                        type: string
                        enum:
                          - authentication_error
                          - permission_error
                          - validation_error
                          - not_found
                          - conflict
                          - rate_limit_error
                          - api_error
                      code:
                        type: string
                      message:
                        type: string
                      status:
                        type: integer
                        minimum: -9007199254740991
                        maximum: 9007199254740991
                      requestId:
                        type: string
                      details:
                        type: array
                        items:
                          type: object
                          properties:
                            path:
                              type: string
                            code:
                              type: string
                          required:
                            - path
                            - code
                          additionalProperties: false
                    required:
                      - type
                      - code
                      - message
                      - status
                      - requestId
                    additionalProperties: false
                required:
                  - error
                additionalProperties: false
        '403':
          description: Error
          content:
            application/json:
              schema:
                $schema: https://json-schema.org/draft/2020-12/schema
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      type:
                        type: string
                        enum:
                          - authentication_error
                          - permission_error
                          - validation_error
                          - not_found
                          - conflict
                          - rate_limit_error
                          - api_error
                      code:
                        type: string
                      message:
                        type: string
                      status:
                        type: integer
                        minimum: -9007199254740991
                        maximum: 9007199254740991
                      requestId:
                        type: string
                      details:
                        type: array
                        items:
                          type: object
                          properties:
                            path:
                              type: string
                            code:
                              type: string
                          required:
                            - path
                            - code
                          additionalProperties: false
                    required:
                      - type
                      - code
                      - message
                      - status
                      - requestId
                    additionalProperties: false
                required:
                  - error
                additionalProperties: false
        '404':
          description: Error
          content:
            application/json:
              schema:
                $schema: https://json-schema.org/draft/2020-12/schema
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      type:
                        type: string
                        enum:
                          - authentication_error
                          - permission_error
                          - validation_error
                          - not_found
                          - conflict
                          - rate_limit_error
                          - api_error
                      code:
                        type: string
                      message:
                        type: string
                      status:
                        type: integer
                        minimum: -9007199254740991
                        maximum: 9007199254740991
                      requestId:
                        type: string
                      details:
                        type: array
                        items:
                          type: object
                          properties:
                            path:
                              type: string
                            code:
                              type: string
                          required:
                            - path
                            - code
                          additionalProperties: false
                    required:
                      - type
                      - code
                      - message
                      - status
                      - requestId
                    additionalProperties: false
                required:
                  - error
                additionalProperties: false
        '409':
          description: Error
          content:
            application/json:
              schema:
                $schema: https://json-schema.org/draft/2020-12/schema
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      type:
                        type: string
                        enum:
                          - authentication_error
                          - permission_error
                          - validation_error
                          - not_found
                          - conflict
                          - rate_limit_error
                          - api_error
                      code:
                        type: string
                      message:
                        type: string
                      status:
                        type: integer
                        minimum: -9007199254740991
                        maximum: 9007199254740991
                      requestId:
                        type: string
                      details:
                        type: array
                        items:
                          type: object
                          properties:
                            path:
                              type: string
                            code:
                              type: string
                          required:
                            - path
                            - code
                          additionalProperties: false
                    required:
                      - type
                      - code
                      - message
                      - status
                      - requestId
                    additionalProperties: false
                required:
                  - error
                additionalProperties: false
        '413':
          description: Error
          content:
            application/json:
              schema:
                $schema: https://json-schema.org/draft/2020-12/schema
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      type:
                        type: string
                        enum:
                          - authentication_error
                          - permission_error
                          - validation_error
                          - not_found
                          - conflict
                          - rate_limit_error
                          - api_error
                      code:
                        type: string
                      message:
                        type: string
                      status:
                        type: integer
                        minimum: -9007199254740991
                        maximum: 9007199254740991
                      requestId:
                        type: string
                      details:
                        type: array
                        items:
                          type: object
                          properties:
                            path:
                              type: string
                            code:
                              type: string
                          required:
                            - path
                            - code
                          additionalProperties: false
                    required:
                      - type
                      - code
                      - message
                      - status
                      - requestId
                    additionalProperties: false
                required:
                  - error
                additionalProperties: false
        '422':
          description: Error
          content:
            application/json:
              schema:
                $schema: https://json-schema.org/draft/2020-12/schema
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      type:
                        type: string
                        enum:
                          - authentication_error
                          - permission_error
                          - validation_error
                          - not_found
                          - conflict
                          - rate_limit_error
                          - api_error
                      code:
                        type: string
                      message:
                        type: string
                      status:
                        type: integer
                        minimum: -9007199254740991
                        maximum: 9007199254740991
                      requestId:
                        type: string
                      details:
                        type: array
                        items:
                          type: object
                          properties:
                            path:
                              type: string
                            code:
                              type: string
                          required:
                            - path
                            - code
                          additionalProperties: false
                    required:
                      - type
                      - code
                      - message
                      - status
                      - requestId
                    additionalProperties: false
                required:
                  - error
                additionalProperties: false
        '429':
          description: Error
          content:
            application/json:
              schema:
                $schema: https://json-schema.org/draft/2020-12/schema
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      type:
                        type: string
                        enum:
                          - authentication_error
                          - permission_error
                          - validation_error
                          - not_found
                          - conflict
                          - rate_limit_error
                          - api_error
                      code:
                        type: string
                      message:
                        type: string
                      status:
                        type: integer
                        minimum: -9007199254740991
                        maximum: 9007199254740991
                      requestId:
                        type: string
                      details:
                        type: array
                        items:
                          type: object
                          properties:
                            path:
                              type: string
                            code:
                              type: string
                          required:
                            - path
                            - code
                          additionalProperties: false
                    required:
                      - type
                      - code
                      - message
                      - status
                      - requestId
                    additionalProperties: false
                required:
                  - error
                additionalProperties: false
        '500':
          description: Error
          content:
            application/json:
              schema:
                $schema: https://json-schema.org/draft/2020-12/schema
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      type:
                        type: string
                        enum:
                          - authentication_error
                          - permission_error
                          - validation_error
                          - not_found
                          - conflict
                          - rate_limit_error
                          - api_error
                      code:
                        type: string
                      message:
                        type: string
                      status:
                        type: integer
                        minimum: -9007199254740991
                        maximum: 9007199254740991
                      requestId:
                        type: string
                      details:
                        type: array
                        items:
                          type: object
                          properties:
                            path:
                              type: string
                            code:
                              type: string
                          required:
                            - path
                            - code
                          additionalProperties: false
                    required:
                      - type
                      - code
                      - message
                      - status
                      - requestId
                    additionalProperties: false
                required:
                  - error
                additionalProperties: false
        '503':
          description: Error
          content:
            application/json:
              schema:
                $schema: https://json-schema.org/draft/2020-12/schema
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      type:
                        type: string
                        enum:
                          - authentication_error
                          - permission_error
                          - validation_error
                          - not_found
                          - conflict
                          - rate_limit_error
                          - api_error
                      code:
                        type: string
                      message:
                        type: string
                      status:
                        type: integer
                        minimum: -9007199254740991
                        maximum: 9007199254740991
                      requestId:
                        type: string
                      details:
                        type: array
                        items:
                          type: object
                          properties:
                            path:
                              type: string
                            code:
                              type: string
                          required:
                            - path
                            - code
                          additionalProperties: false
                    required:
                      - type
                      - code
                      - message
                      - status
                      - requestId
                    additionalProperties: false
                required:
                  - error
                additionalProperties: false
      security:
        - bearerAuth: []
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer

````