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

# Create or Update Job

> POST request to create or update a job. The job details are in a JSON object included in the HTTP body. The minimum details required to create a job are:
jobTitle
clientName
scheduledStartDateTime
Delivery address : either address or values for lng and lat



## OpenAPI

````yaml /api-reference/job-management.json post /job/create
openapi: 3.0.1
info:
  title: Job Management API
  description: Jobs - API Documentation
  contact:
    url: http://www.masternaut.com
  version: 1.0.0
servers:
  - url: https://ontime-api.masternautconnect.com/jobs
security: []
paths:
  /job/create:
    post:
      tags:
        - /job
      summary: Create or Update Job
      description: >-
        POST request to create or update a job. The job details are in a JSON
        object included in the HTTP body. The minimum details required to create
        a job are:

        jobTitle

        clientName

        scheduledStartDateTime

        Delivery address : either address or values for lng and lat
      operationId: createJob
      parameters:
        - name: x-connect-token
          description: >-
            Specifies the MyConnectedFleet platform type as token. Set the value
            for the token to be the response from calling the Request OAuth
            Token endpoint.
          in: header
          required: true
          schema:
            type: string
        - name: override
          in: query
          description: >-
            Specifies that the HTTP body type to be JSON and that the character
            set is in UTF-8.
          schema:
            type: boolean
            nullable: true
            default: true
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/JobDto'
        required: true
      responses:
        '200':
          description: createJob 200 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JobResponseDto'
components:
  schemas:
    JobDto:
      type: object
      properties:
        jobId:
          type: string
        jobNumber:
          type: string
        jobTitle:
          type: string
        clientName:
          type: string
        accountNumber:
          type: string
        contactName:
          type: string
        contactEmail:
          type: string
        contactPhone:
          type: string
        notes:
          type: string
        lat:
          type: number
          format: double
        lng:
          type: number
          format: double
        address:
          type: string
        statusChangeTimestamp:
          type: string
        statusChangeId:
          type: string
        scheduledStartDateTime:
          type: string
          description: Date format yyyy-MM-dd'T'HH:mm'Z' or yyyy-MM-dd
        jobDuration:
          type: string
        arrivalWindowStart:
          type: string
          description: Date format yyyy-MM-dd'T'HH:mm'Z'
        arrivalWindowEnd:
          type: string
          description: Date format yyyy-MM-dd'T'HH:mm'Z'
        personId:
          type: string
        vehicleId:
          type: string
        groupName:
          type: string
        personName:
          type: string
        vehicleName:
          type: string
        orderNumbers:
          type: array
          items:
            type: string
        status:
          $ref: '#/components/schemas/JobStatus'
        driverNotes:
          type: string
        statusHistory:
          type: array
          items:
            $ref: '#/components/schemas/JobStatusHistoryDto'
        actualStart:
          type: string
        actualEnd:
          type: string
        overrideLat:
          type: number
          format: double
        overrideLng:
          type: number
          format: double
        jobHistory:
          type: array
          items:
            $ref: '#/components/schemas/JobHistoryDto'
        jobRadius:
          type: integer
          format: int32
        eta:
          type: string
        etaDistanceKms:
          type: number
          format: double
        lastEtaCalcTime:
          type: string
        primaryResource:
          $ref: '#/components/schemas/PrimaryResource'
        jobTypeId:
          type: string
        jobType:
          $ref: '#/components/schemas/JobType'
        jobPhotos:
          type: array
          items:
            $ref: '#/components/schemas/JobPhotoDto'
        jobSignature:
          $ref: '#/components/schemas/JobSignatureDto'
        linkingId:
          type: string
        linkedJobDescription:
          type: string
        linkedJobIndex:
          type: string
        resources:
          type: array
          items:
            $ref: '#/components/schemas/ResourceDto'
        subStatus:
          $ref: '#/components/schemas/JobSubStatusDTO'
        lastServerTime:
          type: string
        visitResults:
          type: array
          items:
            $ref: '#/components/schemas/VisitResultDto'
        subStatusLabel:
          type: string
        statusLabel:
          type: string
    JobResponseDto:
      type: object
      properties:
        job:
          $ref: '#/components/schemas/JobDto'
        errors:
          type: array
          items:
            $ref: '#/components/schemas/ValidationErrorDto'
        csvUploadLink:
          type: string
    JobStatus:
      type: string
      enum:
        - NEW
        - ASSIGNED
        - RECEIVED
        - IN_PROGRESS
        - VISITED
        - CANCELLED
        - MISSED
        - ACCEPTED
        - INCOMPLETE
        - $UNKNOWN
    JobStatusHistoryDto:
      type: object
      properties:
        date:
          type: string
        personId:
          type: string
        name:
          type: string
        status:
          $ref: '#/components/schemas/JobStatus'
        statusChangeId:
          type: string
    JobHistoryDto:
      type: object
      properties:
        date:
          type: string
        personId:
          type: string
        name:
          type: string
        assignedPersonName:
          type: string
        assignedAssetName:
          type: string
    PrimaryResource:
      type: string
      enum:
        - DRIVER
        - VEHICLE
        - $UNKNOWN
    JobType:
      type: object
      properties:
        id:
          type: string
        label:
          type: string
        description:
          type: string
        global:
          type: boolean
        used:
          type: boolean
        disabled:
          type: boolean
        key:
          type: string
        earliestStartTime:
          type: integer
          format: int32
        latestStartTime:
          type: integer
          format: int32
        duration:
          type: string
        notes:
          type: string
        resources:
          type: array
          items:
            $ref: '#/components/schemas/ResourceDto'
        sendJobReportOnCompletion:
          type: boolean
        workflowId:
          type: string
    JobPhotoDto:
      type: object
      properties:
        date:
          type: string
          description: Date format yyyy-MM-dd'T'HH:mm:ss.SSS'Z'
        downloadUrl:
          type: string
    JobSignatureDto:
      type: object
      properties:
        date:
          type: string
          description: Date format yyyy-MM-dd'T'HH:mm:ss.SSS'Z'
        downloadUrl:
          type: string
        signeeName:
          type: string
    ResourceDto:
      type: object
      properties:
        name:
          type: string
        status:
          $ref: '#/components/schemas/ResourceStatus'
        fileType:
          type: string
        storageUrl:
          type: string
        uploadUrl:
          type: string
        presignedGetUrl:
          type: string
    JobSubStatusDTO:
      type: object
      properties:
        key:
          type: string
        value:
          type: string
    VisitResultDto:
      type: object
      properties:
        jobScheduledStart:
          type: string
        taskAnswers:
          type: array
          items:
            $ref: '#/components/schemas/TaskAnswerDto'
    ValidationErrorDto:
      type: object
      properties:
        field:
          type: string
        message:
          type: string
    ResourceStatus:
      type: string
      enum:
        - NONE
        - AVAILABLE
        - UPLOADING
        - $UNKNOWN
    TaskAnswerDto:
      type: object
      properties:
        title:
          type: string
        description:
          type: string
        key:
          type: string
        statusChangeId:
          type: string
        timestamp:
          type: string
        nextTaskKey:
          type: string
        taskHandler:
          $ref: '#/components/schemas/TaskHandler'
        onTransitionTo:
          type: string
        mandatory:
          type: boolean
        includeInReport:
          type: boolean
        value:
          $ref: '#/components/schemas/TaskAnswerValueDto'
        onTransitionToLabel:
          type: string
        personId:
          type: string
        personName:
          type: string
    TaskHandler:
      type: string
      enum:
        - TEXT_INFO_DISPLAY
        - IMAGE_INFO_DISPLAY
        - PDF_INFO_DISPLAY
        - FREE_TEXT_INFO_INPUT
        - TEXT_INFO_INPUT
        - INTEGER_INFO_INPUT
        - DOUBLE_INFO_INPUT
        - IMAGE_INFO_INPUT
        - SIGNATURE_INFO_INPUT
        - SINGLE_CHOICE_INPUT
        - MULTIPLE_CHOICE_INPUT
        - PROCESS_ITEMS
        - $UNKNOWN
    TaskAnswerValueDto:
      type: object
      properties:
        stringValues:
          type: array
          items:
            type: string
        integerValue:
          type: integer
          format: int32
        doubleValue:
          type: number
          format: double
        blobValues:
          type: array
          items:
            type: string

````