With our community of partners, you can get expert advice and training so you can be up and running in no time! SETUP PARTNERS

API Documentation

Job Methods

Method Description
GET current Returns a list of current jobs
GET get/[job number] Detailed information for a specific job
PUT state Update the state of a specific job
GET list Return a list of all jobs
GET staff/[uuid] Return a list of all current jobs assigned to a staff member
GET client/[uuid] Return a list of all jobs assigned for a specific client
GET tasks Return a list of jobs and their tasks matching the specified criteria
POST add Add a job
PUT update Update a job
POST task Add a task to a job
PUT task Update a task on a job
PUT task/[uuid]/complete Complete a task on a job
PUT task/[uuid]/reopen Re-open a task on a job
PUT reordertasks Reorder the tasks on a job
POST note Add a note to a job
GET documents/[job number] Return a list of documents for a job
POST document Add a document to a job
GET costs/[job number] Return a list of costs for a job
POST cost Add a cost to a job
PUT cost Update a cost on a job
PUT assign Assign staff to a job
POST delete Delete a job
POST applytemplate Apply an additional template to a job
POST createquote/[job number] Create a quote based on the job
POST createestimate/[job number] Create an estimate based on the job

GET current

Returns a list of current jobs

Parameters

Parameter Required? Description
detailed=true Optional Return detailed information on invoice. See GET get/[job number] method for example of detailed job response.

EXAMPLE URL

https://api.xero.com/workflowmax/3.0/job.api/current

Example Response

<Response>
<Status>OK</Status>
 <Jobs>
   <Job>
     <ID>J000159</ID>
     <UUID>0d3458b8-6fde-4389-8dbb-0a85804466ad</UUID>
     <Name>Brochure Design</Name>
     <Description />
     <State>Planned</State>
     <ClientOrderNumber />
     <StartDate>2007-09-15T00:00:00</StartDate>
     <DueDate>2007-09-22T00:00:00</DueDate>
     <CompletedDate>2007-09-22T00:00:00</CompletedDate>
     <Client>
       <UUID>23a720b6-a58e-4c4f-a938-bddbea7b4c66</UUID>
       <Name>A C Smith Limited</Name>
     </Client>
     <Contact>
       <UUID>23a720b6-a58e-4c4f-a938-bddbea7b4c66</UUID>
       <Name>John Smith</Name>
     </Contact>
     <Manager>
       <UUID>273817c6-18c3-407a-9d00-5e8aba80fbd3</UUID>
       <Name>John Smith</Name>
     </Manager>
     <Partner>
       <UUID>bcbf14e9-b150-4e5d-933f-f99b0d5528d2</UUID>
       <Name>Jack Brown</Name>
     </Partner>
     <Assigned>
       <Staff>
         <UUID>44ce9043-8a05-45e6-9a6b-93a7458d5734</UUID>
         <Name>Jo Bloggs</Name>
       </Staff>
     </Assigned>
   </Job>
   <Job>
     <ID>J000232</ID>
     <UUID>4859c6e5-eccf-4bd6-ad8b-f2f97aabcbab</UUID>
     <Name>Custom Development</Name>
     <Description />
     <State>Planned</State>
     <ClientOrderNumber />
     <StartDate>2008-08-06T00:00:00</StartDate>
     <DueDate>2008-08-29T00:00:00</DueDate>
     <Client>
       <UUID>6b46c74a-5892-4631-95b4-62961e111c7f</UUID>
       <Name>Robert Holdings</Name>
     </Client>
     <Contact>
       <UUID>58d673f3-5fc8-4c1e-b7ba-16c98912bca2</UUID>
       <Name>John Roberts</Name>
     </Contact>
     <Assigned>
       <Staff>
        <UUID>44ce9043-8a05-45e6-9a6b-93a7458d5734</UUID>
        <Name>Jo Bloggs</Name>
       </Staff>
     </Assigned>
   </Job>
 </Jobs>
</Response>

GET get/[job number]

Detailed information for a specific job

EXAMPLE URL

https://api.xero.com/workflowmax/3.0/job.api/get/J00309

Example Response

<Response>
  <Status>OK</Status> 
  <Job>
    <ID>J000309</ID>
    <UUID>0d3458b8-6fde-4389-8dbb-0a85804466ad</UUID>
    <Name>job name</Name> 
    <Description>description of job</Description> 
    <State>Planned</State> 
    <ClientOrderNumber />
    <Budget>55.00</Budget>
    <Type>Website Development</Type> 
    <StartDate>2008-08-29T00:00:00</StartDate> 
    <DueDate>2008-09-29T00:00:00</DueDate>
    <CompletedDate>2008-09-29T00:00:00</CompletedDate> 
    <Client>
      <UUID>691e1ea7-dca2-4d1e-a6a8-9f2dac448f8a</UUID>
      <Name>The Health Company</Name> 
    </Client>
    <Contact>
      <UUID>699b0eb6-c54d-4afc-ae3d-1da6d91ba47d</UUID>
      <Name>Shelley Brio</Name> 
    </Contact>
     <Manager>
       <UUID>273817c6-18c3-407a-9d00-5e8aba80fbd3</UUID>
       <Name>John Smith</Name>
     </Manager>
     <Partner>
       <UUID>bcbf14e9-b150-4e5d-933f-f99b0d5528d2</UUID>
       <Name>Jack Brown</Name>
     </Partner>
     <Assigned>
       <Staff>
         <UUID>44ce9043-8a05-45e6-9a6b-93a7458d5734</UUID>
         <Name>Jo Bloggs</Name>
       </Staff>
     </Assigned>
    <Tasks>
      <Task>
        <UUID>e805ed72-29d7-4897-8765-875f3461bfae</UUID>
        <TaskUUID>3c1fc167-ab62-4db7-be73-01646abc461d</TaskUUID>
        <Name>Creative Direction</Name> 
        <Description /> 
        <EstimatedMinutes>180</EstimatedMinutes> 
        <ActualMinutes>100</ActualMinutes> 
        <Completed>false</Completed> 
        <Billable>true</Billable>
        <Folder />
        <!-- if the task has been scheduled the following will be present --> 
        <StartDate>2008-08-29T00:00:00</StartDate> 
        <DueDate>2008-09-29T00:00:00</DueDate>
        <Assigned>
          <Staff>
            <UUID>44ce9043-8a05-45e6-9a6b-93a7458d5734</UUID>
            <Name>Jo Blogs</Name>
            <AllocatedMinutes>180</AllocatedMinutes>
          </Staff>
        </Assigned>
      </Task>
      <Task>
        <UUID>0126a33d6-543c-4b6a-8b87-8d25c9a1b30c</UUID>
        <TaskUUID>1674f180-41b1-4e7f-b932-a9a95c7cb217</TaskUUID>
        <Name>Design &amp; Layout</Name> 
        <Description /> 
        <EstimatedMinutes>120</EstimatedMinutes> 
        <ActualMinutes>180</ActualMinutes> 
        <Completed>false</Completed>
        <Billable>true</Billable> 
        <Folder />
      </Task>
    </Tasks>
    <Milestones>
      <Milestone>
        <UUID>666ce060-5782-4dd0-b6f6-e0557d036bfa</UUID>
        <Date>2008-09-24T00:00:00</Date> 
        <Description>do something by then</Description> 
        <Completed>false</Completed> 
        <Folder />
      </Milestone>
    </Milestones>
    <Notes>
      <Note>
        <UUID>56831906-5c3e-4b89-ab4b-c3acc4690ab4</UUID>
        <Title>note title</Title> 
        <Text>subject of the note</Text> 
        <Folder /> 
        <Date>2008-09-12T13:00:00</Date> 
        <CreatedBy>Jo Bloggs</CreatedBy>
        <Comments>
          <Comment>
            <UUID>7f29618e-e191-4bfd-966a-d418d489f623</UUID>
            <Text>example comment</Text>
            <Date>2008-09-12T14:00:00</Date>
            <CreatedBy>John Smith</CreatedBy>
          </Comment>
        </Comments>
      </Note>
    </Notes>
  </Job>
</Response>

PUT state

Update the state of a specific job

EXAMPLE URL

https://api.xero.com/workflowmax/3.0/job.api/state

Example Message

<Job>
  <ID>J000309</ID>
  <!-- The value of the state element is that in the Interface Code field for each Job State as defined in Admin -->
  <State>CONFIRMED</State>
</Job>

GET list

Return a list of all jobs

Parameters

Parameter Required? Description
from=YYYYMMDD Required Return invoices created on or after this date.
to=YYYYMMDD Required Return invoices created on or before this date.
detailed=true Optional Return detailed information on job. See GET get/[job number] method for example of detailed job response.

EXAMPLE URL

https://api.xero.com/workflowmax/3.0/job.api/list?from=20090801&to=20090901

GET staff/[uuid]

Return a list of all current jobs assigned to a staff member

EXAMPLE URL

https://api.xero.com/workflowmax/3.0/job.api/staff/ffea99f9-fa70-4d49-9898-2159f4a34e40

GET client/[uuid]

Return a list of all jobs assigned for a specific client

EXAMPLE URL

https://api.xero.com/workflowmax/3.0/job.api/client/dbee9acd-1afd-4409-8433-c337513c486e

GET tasks

Return a list of jobs and their tasks matching the specified criteria

Parameters

Parameter Required? Description
complete=true | false Optional Return jobs containing completed or uncompleted tasks only
due=YYYYMMDD Optional Return jobs with tasks due on or before this date.
start=YYYYMMDD Optional Return jobs with tasks starting on of after this date.

EXAMPLE URL

https://api.xero.com/workflowmax/3.0/job.api/tasks?due=20090801&complete=false

POST add

Add a job

EXAMPLE URL

https://api.xero.com/workflowmax/3.0/job.api/add

Example Message

<Job>
  <Name>Brochure Design</Name>
  <Description>Detailed description of the job</Description>

  <ClientUUID>5f3b0d25-5469-4d76-92f4-be76144899b7</ClientUUID>
  <ContactUUID>c034f048-8d30-4197-9557-7a601c99def0</ContactUUID>    <!-- optional -->

  <StartDate>20091023</StartDate>    
  <DueDate>20091028</DueDate>    
  <ClientNumber>client order number</ClientNumber>  <!-- optional -->   

  <!-- Optional - Use to assign a custom ID to the job.  If not specified, the next value from the job number sequence will be used.  -->
  <ID>ABC123</ID>

  <!-- ID of Job Template to apply to job.  Applying a template allows you to default the job milestones, tasks and costs -->
  <TemplateUUID>7b1d935c-5cd6-4186-ab69-3a25fd3f94ad</TemplateUUID>  <!-- optional -->

  <!-- ID of Job Category to assign to job -->
  <CategoryUUID />  <!-- optional -->

  <Budget>55.00</Budget> <!-- optional -->
</Job>

The response will include the detailed information of the job as per the GET get/[job number] method

PUT update

Update a job

EXAMPLE URL

https://api.xero.com/workflowmax/3.0/job.api/update

Example Message

<Job>
  <ID>J000123</ID>
  <Name>Brochure Design</Name>
  <Description>Detailed description of the job</Description>
  <StartDate>20091023</StartDate>
  <DueDate>20091028</DueDate>
  <ClientNumber>client order number</ClientNumber>  <!-- optional -->   

  <!-- ID of Job Category to assign to job -->
  <CategoryUUID />  <!-- optional -->

  <Budget>55.00</Budget> <!-- optional -->
</Job>

The response will include the detailed information of the job as per the GET get/[job number] method

POST task

Add a task to a job

EXAMPLE URL

https://api.xero.com/workflowmax/3.0/job.api/task

Example Message

<Task>
  <Job>J000309</Job>
  <TaskUUID>75f95129-bcd1-4cb4-8f24-6067bf9d365a</TaskUUID>    <!-- refer Task Methods for obtaining list of tasks and their UUIDs -->
  <Label></Label>    <!-- optional -->
  <Description></Description>    <!-- optional -->
  <EstimatedMinutes>60</EstimatedMinutes>
  <StartDate>20091023</StartDate>    <!-- optional -->
  <DueDate>20091028</DueDate>    <!-- optional -->
</Task>

PUT task

Update a task on a job

EXAMPLE URL

https://api.xero.com/workflowmax/3.0/job.api/task

Example Message

<Task>
  <UUID>807818ac-da1c-4f4b-ab12-8d090ad0e64d</UUID>
  <Label></Label>    <!-- optional -->
  <Description></Description>    <!-- optional -->
  <EstimatedMinutes>60</EstimatedMinutes>
  <StartDate>20091023</StartDate>    <!-- optional -->
  <DueDate>20091028</DueDate>    <!-- optional -->
</Task>

PUT task/[uuid]/complete

Complete a task on a job

EXAMPLE URL

https://api.xero.com/workflowmax/3.0/job.api/task/807818ac-da1c-4f4b-ab12-8d090ad0e64d/complete

PUT task/[uuid]/reopen

Re-open a task on a job

EXAMPLE URL

https://api.xero.com/workflowmax/3.0/job.api/task/807818ac-da1c-4f4b-ab12-8d090ad0e64d/reopen

PUT reordertasks

Reorder the tasks on a job

EXAMPLE URL

https://api.xero.com/workflowmax/3.0/job.api/reordertasks

Example Message

<Job>
  <ID>J000123</ID>
  <Tasks>
    <Task>
      <UUID>f26b8e7e-0c3e-4b08-a0d0-1ecca7eaf4f7</UUID>
    </Task>
    <Task>
      <UUID>de365a6b-6ab1-44d9-9ca7-bd529959da2b</UUID>
    </Task>
    <Task>
      <UUID>bcb5fcd4-a580-4f37-b5bc-a527ec0c5fdc</UUID>
    </Task>
  </Tasks>
</Job>

POST note

Add a note to a job

EXAMPLE URL

https://api.xero.com/workflowmax/3.0/job.api/note

Example Message

<Note>
  <Job>J000309</Job>
  <Title>Note Title</Title>
  <Text>The text relating to the note</Text>
  <Folder>Correspondence</Folder>    <!-- optional -->
  <Public>false</Public>    <!-- optional true | false -->
</Note>

GET documents/[job number]

Return a list of documents for a job

EXAMPLE URL

https://api.xero.com/workflowmax/3.0/job.api/documents/J00309

Example Message

<Documents>
  <Document>
    <Title>Document Title</Title>
    <Text />    <!-- optional -->
    <Folder>Correspondence</Folder>    <!-- optional -->
    <Date>20091023</Date>
    <CreatedBy>Jo Bloggs</CreatedBy>
    <FileName>file.txt</FileName>
    <URL>https://my.workflowmax.com/....... </URL>
  </Document>
</Documents>

POST document

Add a document to a job

EXAMPLE URL

https://api.xero.com/workflowmax/3.0/job.api/document

Example Message

<Document>
  <Job>J000309</Job>
  <Title>Document Title</Title>
  <Text>The note relating to the document</Text>
  <Folder>Images</Folder>    <!-- optional -->
  <Public>false</Public>    <!-- optional true | false -->
  <FileName>example.jpg</FileName>
  <Content>File content base 64 encoded</Content>
</Document>

GET costs/[job number]

Return a list of costs for a job

EXAMPLE URL

https://api.xero.com/workflowmax/3.0/job.api/costs/J00309

Example Response

<Costs>
  <Cost>
    <UUID>0e9d45c4-37c5-4489-b966-765b115966e4</UUID>
    <Date>2009-10-23T00:00:00</Date>
    <Description>Widget</Description>
    <Code>WIDGET</Code>
    <Note>a note about the widget</Note>
    <Quantity>1</Quantity>
    <UnitCost>50.00</UnitCost>
    <UnitPrice>100.00</UnitPrice>
    <Supplier>
      <UUID>48db0a77-d871-4e1a-9475-aa40de10dd79</UUID>
      <Name>Widget Incorporated</Name>
    </SupplierID>
    <Billable>true</Billable> <!-- true | false -->
  </Cost>
</Costs>

POST cost

Add a cost to a job

EXAMPLE URL

https://api.xero.com/workflowmax/3.0/job.api/cost

Example Message

<Cost>
  <Job>J000309</Job>
  <Date>20091023</Date>
  <Description>Widget</Description>
  <Code>WIDGET</Code>    <!-- optional -->
  <Note>a note about the widget</Note>    <!-- optional -->
  <Quantity>1</Quantity>
  <UnitCost>50.00</UnitCost>
  <UnitPrice>100.00</UnitPrice>
  <SupplierUUID>48db0a77-d871-4e1a-9475-aa40de10dd79</SupplierUUID>    <!-- optional -->
  <Billable>true</Billable>    <!-- optional true (default) | false -->
</Cost>

PUT cost

Update a cost on a job

EXAMPLE URL

https://api.xero.com/workflowmax/3.0/job.api/cost

Example Message

<Cost>
  <UUID>0e9d45c4-37c5-4489-b966-765b115966e4</UUID>
  <Date>20091023</Date>
  <Description>Widget</Description>
  <Code>WIDGET</Code>    <!-- optional -->
  <Note>a note about the widget</Note>    <!-- optional -->
  <Quantity>1</Quantity>
  <UnitCost>50.00</UnitCost>
  <UnitPrice>100.00</UnitPrice>
  <SupplierUUID>48db0a77-d871-4e1a-9475-aa40de10dd79</SupplierUUID>    <!-- optional -->
  <Billable>true</Billabler>    <!-- optional true (default) | false -->
</Cost>

PUT assign

Assign staff to a job

EXAMPLE URL

https://api.xero.com/workflowmax/3.0/job.api/assign

Example Message

<Job>
  <ID>J000309</ID>
  <add uuid="9965d37f-0922-4754-86f0-abe31e938e35"/>     <!-- uuid = UUID of staff member -->
  <remove uuid="4ac6fab1-b1c5-459e-9652-91ba4a72eec4"/>

  <add uuid="9965d37f-0922-4754-86f0-abe31e938e35" task-uuid="c3fe8e7a-0e2f-4c0b-aa1b-58506b9d4460" />     <!-- assign staff to a specific task -->
  <remove uuid="4ac6fab1-b1c5-459e-9652-91ba4a72eec4" task-uuid="70c1c9be-8b2e-4cb2-be69-e1dc69844d19"/>   <!-- remove staff from a specific task -->

  <!-- the following elements allow you to assign a manager to the job -->
  <add-manager uuid="9965d37f-0922-4754-86f0-abe31e938e35"/>     <!-- uuid = UUID of staff member -->
  <remove-manager />

  <!-- the following elements allow you to assign a partner/account manager to the job -->
  <add-partner uuid="4ac6fab1-b1c5-459e-9652-91ba4a72eec4"/>     <!-- uuid = UUID of staff member -->
  <remove-partner />

</Job>

POST delete

Delete a job

EXAMPLE URL

https://api.xero.com/workflowmax/3.0/job.api/delete

Example Message

<Job>
  <ID>J000309</ID>
</Job>

POST applytemplate

Apply an additional template to a job

EXAMPLE URL

https://api.xero.com/workflowmax/3.0/job.api/applytemplate

Example Message

<Job>
  <ID>J000309</ID>
  <TemplateUUID>1318c880-7cba-4f6a-9e9a-0e864f8f36b2</TemplateUUID>  <!-- UUID of Job Template to apply to job -->

  <!-- TaskMode describes how tasks are added to the job
       AddNew: tasks are always added to the job (default)
       AppendExisting: where the same task already exists on the job, the template task will be appended to the details of the existing task, otherwise the task will be added to the job
  -->
  <TaskMode>AddNew</TaskMode>
</Job>

POST createquote/[job number]

Create a quote based on the job

EXAMPLE URL

https://api.xero.com/workflowmax/3.0/job.api/createquote/J00309

Example Response

<Response>
  <Status>OK</Status>
  <ID>Q000123</ID>   <!-- ID of the newly created quote -->
</Response>

POST createestimate/[job number]

Create an estimate based on the job

EXAMPLE URL

https://api.xero.com/workflowmax/3.0/job.api/createestimate/J00309

Example Response

<Response>
  <Status>OK</Status>
  <ID>Q000123</ID>   <!-- ID of the newly created estimate -->
</Response>