API Documentation

Client Methods

GET list Return a list of all clients
GET search Return a list of all clients matching search query
GET get/[id] Detailed information for a specific client
POST add Add a client and contacts
PUT update Update a clients details
PUT archive Archive a client
POST delete Delete a client
GET contact/[id] Detailed information for a specific contact
PUT contact/[id] Update a contacts details
POST contact add a contact to a client
DELETE contact/[id] delete a contact
GET documents/[id] Return a list of documents for a client
POST document Add a document to a client
POST addrelationship Add a relationship between clients (Practice Manager only)
POST updaterelationship Update the relationship details between clients (Practice Manager only)
POST deleterelationship Delete the relationship between clients (Practice Manager only)

Note: Xero Practice Manager and WorklfowMax Premium accounts: change to the API

From the 17th January 2018 third party applications will not have access to view the client tax number via the API (ie TFN number in Australia, IRD number in NZ, VAT number in UK and SSN number in the US). If your integration with XPM or WorkflowMax Premium relies on this data, you’ll no longer be able to use this number as it will be returned “masked” so only the last 3 digits will be visible. You will, however, still be able to post and update the number if you have it from another source.

From 5th December 2017 you'll be able to test this change in production. To test the tax number masking, please include a special HTTP header in your API requests. The full header should be `X-EnableTFNMasking: true`

PARAMETERS
detailed=true Optional Return detailed information of client. See GET get/[id] method for example of detailed client response.
modifiedsince=yyyy-MM-ddTHH:mm:ss Optional Return clients modified since a particular date (UTC), e.g. 2012-06-05T06:00:00
EXAMPLE URL
https://api.workflowmax.com/client.api/list?apiKey=[your API key]&accountKey=[WorkflowMax account key]
Example Response
<Response>
  <Status>OK</Status> 
  <Clients>
    <!-- Refer get/[id] method for full list of client fields  -->
    <Client>
      <ID>255</ID> 
      <Name>XYZ Australia, NZ Business Unit</Name>
      <Email>someone@example.com</Email> 
      <DateOfBirth>1970-11-26</DateOfBirth> 
      <Address /> 
      <City /> 
      <Region /> 
      <PostCode /> 
      <Country /> 
      <PostalAddress>
         Level 32, PWC Building 
         188 Quay Street
         Auckland Central
      </PostalAddress> 
      <PostalCity>Auckland</PostalCity> 
      <PostalRegion /> 
      <PostalPostCode>1001</PostalPostCode>  
      <PostalCountry /> 
      <Phone>(02) 1723 5265</Phone>
      <Fax /> 
      <Website /> 
      <ReferralSource />
      <ExportCode />
      <IsProspect>No</IsProspect> 
      <AccountManager>
        <ID>2</ID> 
        <Name>Jo Blogs</Name> 
      </AccountManager>
      <Type>
        <Name>20th of Month</Name> 
        <CostMarkup>30.00</CostMarkup> 
        <PaymentTerm>DayOfMonth</PaymentTerm>  <!-- DayOfMonth or WithinDays  -->
        <PaymentDay>20</PaymentDay> 
      </Type>
      <Contacts>
        <Contact>
          <ID>220</ID>
          <IsPrimary>yes</IsPrimary>
          <Name>Samantha Benecke</Name> 
          <Salutation>Sam</Salutation> 
          <Addressee>Mrs S Benecke</Addressee> 
          <Mobile /> 
          <Email /> 
          <Phone /> 
          <Position /> 
        </Contact>
      </Contacts>
    </Client>
    <Client>
      <ID>697</ID> 
      <Name>A. Dutchess</Name> 
      <Address /> 
      <City /> 
      <Region /> 
      <PostCode /> 
      <Country /> 
      <PostalAddress>P O Box 123</PostalAddress> 
      <PostalCity>Wellington</PostalCity> 
      <PostalRegion /> 
      <PostalPostCode>6011</PostalPostCode>  
      <PostalCountry />
      <Phone /> 
      <Fax /> 
      <Website /> 
      <Contacts /> 
      <BillingClient>
         <ID>12345</ID>
         <Name>Billing Client</Name>
      </BillingClient>
    </Client>
  </Clients>
</Response>
PARAMETERS
query Required Search query
detailed=true Optional Return detailed information of client. See GET get/[id] method for example of detailed client response.
EXAMPLE URL
https://api.workflowmax.com/client.api/search?apiKey=[your API key]&accountKey=[WorkflowMax account key]&query=XYZ
Example Response
<Response>
  <Status>OK</Status> 
  <Clients>
    <Client>
      <ID>255</ID> 
      <Name>XYZ Australia, NZ Business Unit</Name> 
      <Email>someone@example.com</Email> 
      <DateOfBirth>1970-11-26</DateOfBirth>
      <Address /> 
      <City /> 
      <Region /> 
      <PostCode /> 
      <Country /> 
      <PostalAddress>
         Level 32, PWC Building 
         188 Quay Street
         Auckland Central
      </PostalAddress> 
      <PostalCity>Auckland</PostalCity> 
      <PostalRegion /> 
      <PostalPostCode>1001</PostalPostCode>  
      <PostalCountry /> 
      <Phone>(02) 1723 5265</Phone>
      <Fax /> 
      <Website /> 
      <ReferralSource />
      <ExportCode />
      <IsProspect>No</IsProspect> 
      <AccountManager>
        <ID>2</ID> 
        <Name>Jo Blogs</Name> 
      </AccountManager>
      <Type>
        <Name>20th of Month</Name> 
        <CostMarkup>30.00</CostMarkup> 
        <PaymentTerm>DayOfMonth</PaymentTerm>  <!-- DayOfMonth or WithinDays  -->
        <PaymentDay>20</PaymentDay> 
      </Type>
      <Contacts>
        <Contact>
          <ID>220</ID> 
          <IsPrimary>yes</IsPrimary>
          <Name>Samantha Benecke</Name> 
          <Salutation>Sam</Salutation> 
          <Addressee>Mrs S Benecke</Addressee> 
          <Mobile /> 
          <Email /> 
          <Phone /> 
          <Position /> 
        </Contact>
      </Contacts>
    </Client>
    <Client>
      <ID>697</ID> 
      <Name>A. Dutchess</Name> 
      <Address /> 
      <City /> 
      <Region /> 
      <PostCode /> 
      <Country /> 
      <PostalAddress>P O Box 123</PostalAddress> 
      <PostalCity>Wellington</PostalCity> 
      <PostalRegion /> 
      <PostalPostCode>6011</PostalPostCode>  
      <PostalCountry /> 
      <Phone /> 
      <Fax /> 
      <Website /> 
      <Contacts /> 
      <BillingClient /> 
    </Client>
  </Clients>
</Response>

 

EXAMPLE URL
https://api.workflowmax.com/client.api/get/123?apiKey=[your API key]&accountKey=[WorkflowMax account key]
Example Response
<Response>
  <Status>OK</Status> 
  <Client>
    <ID>218</ID> 
    <Name>Acmer Pty Ltd</Name> 
    <Email>someone@example.com</Email> 
    <DateOfBirth>1970-11-26</DateOfBirth> 
    <Address /> 
    <City /> 
    <Region /> 
    <PostCode /> 
    <Country /> 
    <PostalAddress>
       Level 32, PWC Building 
       188 Quay Street
       Auckland Central
    </PostalAddress> 
    <PostalCity>Auckland</PostalCity> 
    <PostalRegion /> 
    <PostalPostCode>1001</PostalPostCode>  
    <PostalCountry /> 
    <Phone>(02) 1723 5265</Phone> 
    <Fax /> 
    <Website /> 
    <ReferralSource />
    <ExportCode />
    <IsProspect>No</IsProspect> 
    <AccountManager>
      <ID>2</ID> 
      <Name>Jo Blogs</Name> 
    </AccountManager>
    <Type>
      <Name>20th of Month</Name> 
      <CostMarkup>30.00</CostMarkup> 
      <PaymentTerm>DayOfMonth</PaymentTerm>  <!-- DayOfMonth or WithinDays  -->
      <PaymentDay>20</PaymentDay> 
    </Type>
    <Contacts>
      <Contact>
        <ID>193</ID> 
        <IsPrimary>yes</IsPrimary>
        <Name>Wyett E Coyote</Name> 
        <Salutation /> 
        <Addressee /> 
        <Mobile /> 
        <Email /> 
        <Phone /> 
        <Position /> 
      </Contact>
    </Contacts>
     <Notes>
      <Note>
        <Title>note title</Title> 
        <Text>subject of the note</Text> 
        <Folder /> 
        <Date>2008-09-12T13:00:00</Date> 
        <CreatedBy>Jo Bloggs</CreatedBy>
      </Note>
    </Notes>
    </BillingClient>



    <!-- The following fields are returned if the Practice Management module is enabled -->

    <JobManager>
      <ID>3</ID> 
      <Name>John Smith</Name> 
    </JobManager>
    <FirstName />  <!-- Individual Only -->    
    <LastName />   <!-- Individual Only -->
    <OtherName />  <!-- Individual Only -->
    <DateOfBirth />  <!-- Individual Only -->


    <TaxNumber /> 
    <CompanyNumber /> 
    <BusinessNumber /> 
    <BusinessStructure />   <!-- e.g. Individual, Company, Trust, etc  -->
    <BalanceMonth /> 
    <PrepareGST />   <!-- Yes or No -->
    <GSTRegistered />   <!-- Yes or No -->
    <GSTPeriod />  <!-- Monthly, 2 Monthly, 6 Monthly  -->
    <GSTBasis />  <!-- Invoice, Payment, Hybrid  -->
    <ProvisionalTaxBasis />  <!-- Standard Option, Estimate Option, Ratio Option  -->
    <ProvisionalTaxRatio /> 
    <!-- The following fields apply to NZ clients only -->
    <SignedTaxAuthority />  <!-- Yes or No -->
    <TaxAgent /> 
    <AgencyStatus />  <!-- With EOT, Without EOT, Unlinked -->
    <ReturnType />  <!-- IR3, IR3NR, IR4, IR6, IR7, IR9, PTS  -->

    <!-- The following fields apply to AU clients only -->
    <PrepareActivityStatement />  <!-- Yes or No -->
    <PrepareTaxReturn />  <!-- Yes or No -->


    <Groups>
      <Group>
        <ID>987</ID>   
        <Name>Bloggs Family</Name>   
      </Group>
    </Groups>

    <Relationships>
      <Relationship>
        <ID>987</ID>   
        <Type>Shareholder</Type>   
        <RelatedClient>
          <ID>10234</ID>   
          <Name>Bloggs Ltd</Name>   
        </RelatedClient>
        <NumberOfShares>1000</NumberOfShares>  <!-- Only set for Shareholder and Owner relationships -->   
        <Percentage>0</Percentage>  <!-- Only set for Partnership relationships-->
        <StartDate>2011-01-01</StartDate>
        <EndDate>2013-03-31</EndDate>
      </Relationship>
    </Relationships>

  </Client>
</Response>

 

EXAMPLE URL
POST https://api.workflowmax.com/client.api/add?apiKey=[your API key]&accountKey=[WorkflowMax account key]
Example Message
<Client>
  <Name>Bloggs Electrical Ltd</Name>
  <Email></Email>  <!-- optional -->   
  <Address></Address>  <!-- optional -->   
  <City></City>  <!-- optional -->   
  <Region></Region>  <!-- optional -->   
  <PostCode></PostCode>  <!-- optional -->   
  <Country></Country>  <!-- optional -->   
  <PostalAddress></PostalAddress>  <!-- optional -->   
  <PostalCity></PostalCity>  <!-- optional -->   
  <PostalRegion></PostalRegion>  <!-- optional -->   
  <PostalPostCode></PostalPostCode>  <!-- optional -->   
  <PostalCountry></PostalCountry>  <!-- optional -->   
  <Phone></Phone>  <!-- optional -->   
  <Fax></Fax>  <!-- optional -->   
  <WebSite></WebSite>  <!-- optional -->   
  <ReferralSource></ReferralSource>  <!-- optional -->   
  <ExportCode></ExportCode>  <!-- optional --> 
  <IsProspect>No</IsProspect>    <!-- Yes | No --> 
  <AccountManagerID />  <!-- optional - ID of staff member -->
  <Contacts>
    <Contact>
      <Name>Jo Bloggs</Name>
      <IsPrimary>yes</IsPrimary> <!-- If multiple contacts defined, method will interpret last primary client as Primary -->   
      <Salutation></Salutation>  <!-- optional -->   
      <Addressee></Addressee>  <!-- optional -->   
      <Phone></Phone>  <!-- optional -->   
      <Mobile></Mobile>  <!-- optional -->   
      <Email></Email>  <!-- optional -->   
      <Position></Position>  <!-- optional -->   
    </Contact>
  </Contacts>
  <BillingClientID /> <!-- optional ID of billing client -->

  <!-- The following fields are only applicable if the Practice Management module is enabled -->

  <FirstName />   <!-- optional, for individuals only -->   
  <LastName />   <!-- optional, for individuals only -->   
  <OtherName />   <!-- optional, for individuals only -->   
  <DateOfBirth />   <!-- optional, for individuals only -->   


  <JobManagerID />  <!-- optional - ID of staff member -->
  <TaxNumber /> 
  <CompanyNumber /> 
  <BusinessNumber /> 
  <BusinessStructure />   <!-- Name of Business Structure (as per Admin) -->
  <BalanceMonth />  <!-- e.g. Jan, 1, Feb, 2, Mar, 3 etc  -->
  <PrepareGST />   <!-- Yes or No -->
  <GSTRegistered />   <!-- Yes or No -->
  <GSTPeriod />  <!-- 1, 2, 6 -->
  <GSTBasis />  <!-- Invoice, Payment, Hybrid  -->
  <ProvisionalTaxBasis />  <!-- Standard Option, Estimate Option, Ratio Option  -->
  <ProvisionalTaxRatio /> 

  <!-- The following fields apply to NZ clients only -->
  <SignedTaxAuthority />  <!-- Yes or No -->
  <TaxAgent />  <!-- Name of Tax Agent (as per Admin) -->
  <AgencyStatus />  <!-- With EOT, Without EOT, Unlinked -->
  <ReturnType />  <!-- IR3, IR3NR, IR4, IR6, IR7, IR9, PTS  -->

  <!-- The following fields apply to AU clients only -->
  <PrepareActivityStatement />  <!-- Yes or No -->
  <PrepareTaxReturn />  <!-- Yes or No -->

</Client>

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

 

EXAMPLE URL
PUT https://api.workflowmax.com/client.api/update?apiKey=[your API key]&accountKey=[WorkflowMax account key]
Example Message
<Client>
  <ID>1234</ID>
  <Name>Bloggs Electrical Ltd</Name>
  <Email></Email>  <!-- optional -->   
  <Address></Address>  <!-- optional -->   
  <City></City>  <!-- optional -->   
  <Region></Region>  <!-- optional -->   
  <PostCode></PostCode>  <!-- optional -->   
  <Country></Country>  <!-- optional -->   
  <PostalAddress></PostalAddress>  <!-- optional -->   
  <PostalCity></PostalCity>  <!-- optional -->   
  <PostalRegion></PostalRegion>  <!-- optional -->   
  <PostalPostCode></PostalPostCode>  <!-- optional -->   
  <PostalCountry></PostalCountry>  <!-- optional -->   
  <Phone></Phone>  <!-- optional -->   
  <Fax></Fax>  <!-- optional -->   
  <WebSite></WebSite>  <!-- optional -->   
  <ReferralSource></ReferralSource>  <!-- optional -->   
  <AccountManagerID />  <!-- optional - ID of staff member -->
  <BillingClientID /> <!-- optional ID of billing client -->

  <!-- The following fields are only applicable if the Practice Management module is enabled -->

  <FirstName />   <!-- optional, for individuals only -->   
  <LastName />   <!-- optional, for individuals only -->   
  <OtherName />   <!-- optional, for individuals only -->   
  <DateOfBirth />   <!-- optional, for individuals only -->

  <JobManagerID />  <!-- optional - ID of staff member -->
  <TaxNumber /> 
  <CompanyNumber /> 
  <BusinessNumber /> 
  <BusinessStructure />   <!-- Name of Business Structure (as per Admin) -->
  <BalanceMonth />  <!-- e.g. Jan, 1, Feb, 2, Mar, 3 etc  -->
  <PrepareGST />   <!-- Yes or No -->
  <GSTRegistered />   <!-- Yes or No -->
  <GSTPeriod />  <!-- 1, 2, 6 -->
  <GSTBasis />  <!-- Invoice, Payment, Hybrid  -->
  <ProvisionalTaxBasis />  <!-- Standard Option, Estimate Option, Ratio Option  -->
  <ProvisionalTaxRatio /> 

  <!-- The following fields apply to NZ clients only -->
  <SignedTaxAuthority />  <!-- Yes or No -->
  <TaxAgent />  <!-- Name of Tax Agent (as per Admin) -->
  <AgencyStatus />  <!-- With EOT, Without EOT, Unlinked -->
  <ReturnType />  <!-- IR3, IR3NR, IR4, IR6, IR7, IR9, PTS  -->

  <!-- The following fields apply to AU clients only -->
  <PrepareActivityStatement />  <!-- Yes or No -->
  <PrepareTaxReturn />  <!-- Yes or No -->
</Client>

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

 

EXAMPLE URL
PUT https://api.workflowmax.com/client.api/archive?apiKey=[your API key]&accountKey=[WorkflowMax account key]
Example Message
 
<Client>
  <ID>1234</ID>
</Client>

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

 

EXAMPLE URL
POST https://api.workflowmax.com/client.api/delete?apiKey=[your API key]&accountKey=[WorkflowMax account key]
Example Message
 
<Client>
  <ID>1234</ID>
</Client>

 

EXAMPLE URL
https://api.workflowmax.com/client.api/contact/123?apiKey=[your API key]&accountKey=[WorkflowMax account key]
Example Response
<Response>
  <Status>OK</Status> 
  <Contact>
    <ID>123</ID>
    <IsPrimary>yes</IsPrimary>
    <Name>Wyett E Coyote</Name> 
    <Salutation /> 
    <Addressee /> 
    <Mobile /> 
    <Email /> 
    <Phone /> 
    <Position /> 
  </Contact>
</Response>

 

EXAMPLE URL
PUT https://api.workflowmax.com/client.api/contact/123?apiKey=[your API key]&accountKey=[WorkflowMax account key]
Example Message
<Contact>
  <Name>Wyett E Coyote</Name>
  <IsPrimary>yes</IsPrimary> <!-- If multiple contacts defined, method will interpret last primary client as Primary -->
  <Salutation /> 
  <Addressee /> 
  <Mobile /> 
  <Email /> 
  <Phone /> 
  <Position /> 
</Contact>

 

 

EXAMPLE URL
POST https://api.workflowmax.com/client.api/contact?apiKey=[your API key]&accountKey=[WorkflowMax account key]
Example Message
<Contact>
  <Client>
    <ID>142</ID> 
  </Client>
  <Name>Wyett E Coyote</Name>
  <IsPrimary>yes</IsPrimary> <!-- If multiple contacts defined, method will interpret last primary client as Primary -->
  <Salutation /> 
  <Addressee /> 
  <Mobile /> 
  <Email /> 
  <Phone /> 
  <Position /> 
</Contact>

The response will include the detailed information of the contact as per the GET contact/[id] method

 

EXAMPLE URL
DELETE https://api.workflowmax.com/client.api/contact/[id]?apiKey=[your API key]&accountKey=[WorkflowMax account key]

 

EXAMPLE URL
GET https://api.workflowmax.com/client.api/documents/1223?apiKey=[your API key]&accountKey=[WorkflowMax account key]
Example Message
<Documents>
  <Document>
    <Title>Document Title</Title>
    <Text />    <!-- optional -->
    <Folder>Correspondence</Folder>    <!-- optional -->
    <Date>20091023</Date>
    <CreatedBy>Jo Bloggs</CreatedBy>
    <URL>https://my.workflowmax.com/....... </URL>
  </Document>
</Documents>

 

EXAMPLE URL
POST https://api.workflowmax.com/client.api/document?apiKey=[your API key]&accountKey=[WorkflowMax account key]
Example Message
<Document>
  <ClientID>123</ClientID>
  <Title>Document Title</Title>
  <Text>The note relating to the document</Text>
  <Folder>Images</Folder>    <!-- optional -->
  <FileName>example.jpg</FileName>
  <Content>File content base 64 encoded</Content>
</Document>

 

EXAMPLE URL
POST https://api.workflowmax.com/client.api/addrelationship?apiKey=[your API key]&accountKey=[WorkflowMax account key]
Example Message
<Relationship>
  <ClientID>123</ClientID>
  <RelatedClientID>456</RelatedClientID>
  <Type>Shareholder</Type>
  <!-- The following relationship types are supported: Director, Shareholder, Trustee, Beneficiary, Partner, Settlor, Associate, Secretary, Public Officer, Husband, Wife, Spouse, Parent Of, Child Of, Appointer, Member, Auditor, Owner. -->
  <NumberOfShares>1000</NumberOfShares>  <!-- only applicable when adding Shareholder or Owner relationship -->
  <Percentage>123</Percentange>  <!-- only applicable when adding Partnership relationship --> 
  <StartDate />  <!-- optional yyyy-MM-dd -->
  <EndDate />  <!-- optional yyyy-MM-dd -->
</Relationship>

 

EXAMPLE URL
POST https://api.workflowmax.com/client.api/updaterelationship?apiKey=[your API key]&accountKey=[WorkflowMax account key]
Example Message
<Relationship>
  <ID>123</ID>
  <NumberOfShares>1000</NumberOfShares>  <!-- only applicable when Shareholder or Owner relationship -->
  <Percentage>123</Percentange>  <!-- only applicable when adding Partnership relationship --> 
  <StartDate />  <!-- optional yyyy-MM-dd -->
  <EndDate />  <!-- optional yyyy-MM-dd -->
</Relationship>

 

EXAMPLE URL
POST https://api.workflowmax.com/client.api/deleterelationship?apiKey=[your API key]&accountKey=[WorkflowMax account key]
Example Message
<Relationship>
  <ID>123</ID>
</Relationship>

 

No credit card required.