Shell HTTP JavaScript Node.JS Ruby Python Java Go

Workflow v0.14.0

Scroll down for code samples, example requests and responses. Select a language for code samples from the tabs above or the mobile navigation menu.

The workflow API allows definition and execution of workflows. A workflow is a set of tasks in a dependency graph, with state and business rules which connect and constrain the execution of the workflow tasks. Each workflow maintains some state. Each task in the workflow has entry criteria, input variables, and output variables. Workflow tasks are connected in a graph. A task may be a composite task, built from another workflow. (This allowing for reuse of such subflows.)

Each task and workflow has the following data:

Tasks in a workflow which have no predecessor tasks and whose entry criteria rule evaluate to true may be run immediately.

A workflow is done when the state of all its tasks are done, or if the workflow has one or more terminal tasks that are done. If a terminal task causes the workflow to complete, any remaining tasks are canceled. This allows business rules and flow to define the completion criteria, for example, three of four tasks completed instead all four.

Workflow definitions may have cycles. That is, some tasks may be entered again, effectively restarting those tasks.

Workflows are static: once a workflow has been created, tasks cannot be added or removed from the workflow and the task dependency graph may not be changed.

Workflow definitions are workflows with a state of definition; the tasks in a workflow definition are also tasks with state equal to definition. Definitions act as workflow templates: one creates new workflow instances by specifying an existing workflow definition. This also creates new task instances from each task definition. The workflow and all tasks' state is set to blocked with the exception of tasks that do not have dependent tasks (initial is true).

Workflow definitions and task definitions also retain a revision history, available in the definition's revisions collection. New revisions are created via a POST operation to a definition's revisions collection. Revisions are immutable copies of the resource which preserve or record the definition's data at the point in time that the revision was created. This allows preserving specific behavior of a workflow when after changing the definition. For example, a specific revision of a workflow definition (using the revision URI, /workflowDefinitions/{workflowDefinitionId}/revisions/{revisionId}) may be attached to other resources (such as banking products) so that the specific revision can be instantiated as a new workflow, rather than instantiating the currently active, revisionless definition found at /workflowDefinitions/{workflowDefinitionId}. Revisions also support auditing: the immutable revision is a record of which workflow was used and its initial state. A workflow definition may reference either a specific revision of the embedded task definitions, or revisionless task definitions; this determines which task definition (a specific revision or the most recent revision) is used for all the tasks in that workflow when that definition is used to create a new workflow instance. A reference to a revisionless task definition URL matches the URL pattern /workflow/taskDefinitions/{taskDefinitionId}; a task definition revision instance has a URL pattern /workflow/taskDefinitions/{taskDefinitionId}/revisions/{revisionId} where revisionId is an RFC 3339 format timestamp: YYYY-MM-DDThh:mm:ss.sssZ.

Download OpenAPI Definition (YAML)

Base URLs:

Terms of service

Email: Apiture Web: Apiture

Authentication

Scope Scope Description
data/read Read access to non-account, non-profile data.
data/write Write (update) access to non-account, non-profile data.
data/delete Delete access to non-account, non-profile data.
data/full Full access to non-account, non-profile data.

API

Endpoints which describe this API.

getApi

Code samples

# You can also use wget
curl -X GET https://api.devbank.apiture.com/workflow/ \
  -H 'Accept: application/hal+json' \
  -H 'API-Key: API_KEY'

GET https://api.devbank.apiture.com/workflow/ HTTP/1.1
Host: api.devbank.apiture.com
Accept: application/hal+json

var headers = {
  'Accept':'application/hal+json',
  'API-Key':'API_KEY'

};

$.ajax({
  url: 'https://api.devbank.apiture.com/workflow/',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/hal+json',
  'API-Key':'API_KEY'

};

fetch('https://api.devbank.apiture.com/workflow/',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/hal+json',
  'API-Key' => 'API_KEY'
}

result = RestClient.get 'https://api.devbank.apiture.com/workflow/',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/hal+json',
  'API-Key': 'API_KEY'
}

r = requests.get('https://api.devbank.apiture.com/workflow/', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.devbank.apiture.com/workflow/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/hal+json"},
        "API-Key": []string{"API_KEY"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.devbank.apiture.com/workflow/", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

Top-level resources and operations in this API

GET /

Return links to the top-level resources and operations in this API. Links included in this response include:

Try it

Fields marked with * are mandatory.

ParameterValue
MethodGET
* URL
* API Key
* Access Token
* Accept

Response

Response Code:

Response Headers:

Response Body:

    
      Click on 'Try It' to get a response.
    
  

Example responses

OK

{}

200 Response

{
  "id": "apiName",
  "name": "API name",
  "apiVersion": "1.0.0",
  "_profile": "https://api.apiture.com/schemas/common/root/v1.0.0/profile.json",
  "_links": {}
}

OK

Responses

StatusDescription
200 OK
OK
Schema: root

getApiDoc

Code samples

# You can also use wget
curl -X GET https://api.devbank.apiture.com/workflow/apiDoc \
  -H 'Accept: application/json' \
  -H 'API-Key: API_KEY'

GET https://api.devbank.apiture.com/workflow/apiDoc HTTP/1.1
Host: api.devbank.apiture.com
Accept: application/json

var headers = {
  'Accept':'application/json',
  'API-Key':'API_KEY'

};

$.ajax({
  url: 'https://api.devbank.apiture.com/workflow/apiDoc',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'API-Key':'API_KEY'

};

fetch('https://api.devbank.apiture.com/workflow/apiDoc',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'API-Key' => 'API_KEY'
}

result = RestClient.get 'https://api.devbank.apiture.com/workflow/apiDoc',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'API-Key': 'API_KEY'
}

r = requests.get('https://api.devbank.apiture.com/workflow/apiDoc', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.devbank.apiture.com/workflow/apiDoc");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "API-Key": []string{"API_KEY"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.devbank.apiture.com/workflow/apiDoc", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

Return API definition document

GET /apiDoc

Return the OpenAPI document that describes this API.

Try it

Fields marked with * are mandatory.

ParameterValue
MethodGET
* URL
* API Key
* Access Token
* Accept

Response

Response Code:

Response Headers:

Response Body:

    
      Click on 'Try It' to get a response.
    
  

Example responses

200 Response

{}

Responses

StatusDescription
200 OK
OK
Schema: Inline

Response Schema

Workflow Definition

Workflow Definitions

getWorkflowDefinitions

Code samples

# You can also use wget
curl -X GET https://api.devbank.apiture.com/workflow/workflowDefinitions \
  -H 'Accept: application/hal+json' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

GET https://api.devbank.apiture.com/workflow/workflowDefinitions HTTP/1.1
Host: api.devbank.apiture.com
Accept: application/hal+json

var headers = {
  'Accept':'application/hal+json',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.devbank.apiture.com/workflow/workflowDefinitions',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/hal+json',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.devbank.apiture.com/workflow/workflowDefinitions',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/hal+json',
  'API-Key' => 'API_KEY',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://api.devbank.apiture.com/workflow/workflowDefinitions',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/hal+json',
  'API-Key': 'API_KEY',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.devbank.apiture.com/workflow/workflowDefinitions', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.devbank.apiture.com/workflow/workflowDefinitions");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/hal+json"},
        "API-Key": []string{"API_KEY"},
        "Authorization": []string{"Bearer {access-token}"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.devbank.apiture.com/workflow/workflowDefinitions", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

Return a collection of workflow definitions

GET /workflowDefinitions

Return a paginated sortable filterable searchable collection of workflow definitions. The links in the response include pagination links.

Parameters

Parameter Description
start
(query)
integer(int64)
The zero-based index of the first workflow definition item to include in this page. The default 0 denotes the beginning of the collection.
limit
(query)
integer(int32)
The maximum number of workflow definition representations to return in this page.
sortBy
(query)
string
Optional sort criteria. See sort criteria format, such as ?sortBy=field1,-field2.
filter
(query)
string
Optional filter criteria. See filtering.
q
(query)
string
Optional search string. See searching.
state
(query)
string
Subset the accounts or external accounts collection to those whose state matches this value. Use | to separate multiple values. For example, ?state=pending will match only items whose state is pending; ?state=removed|inactive will match items whose state is removed or inactive. This is combined with an implicit and with other filters if they are used. See filtering.
Enumerated values:
pending
definition
blocked
removed
running
paused
completed
failed
canceled
name
(query)
string
Subset the accounts or external accounts collection to those with this name value. Use
domain
(query)
string
Subset the accounts or external accounts collection to those with this domain value. Use
type
(query)
string
Subset the accounts or external accounts collection to those with this exact type value. Use
label
(query)
string
Subset the accounts or external accounts collection to those with this label value. Use

Try it

Fields marked with * are mandatory.

ParameterValue
MethodGET
* URL
* API Key
* Access Token
* Accept

start

limit

sortBy

filter

q

state

name

domain

type

label

Response

Response Code:

Response Headers:

Response Body:

    
      Click on 'Try It' to get a response.
    
  

Example responses

OK

{
  "_profile": "https://api.apiture.com/schemas/workflow/workflows/v1.0.0/profile.json",
  "start": 10,
  "limit": 10,
  "count": 67,
  "name": "workflows",
  "_links": {
    "self": {
      "href": "/workflow/workflows?start=10&limit=10"
    },
    "first": {
      "href": "/workflow/workflows?start=0&limit=10"
    },
    "next": {
      "href": "/workflow/workflows?start=20&limit=10"
    },
    "collection": {
      "href": "/workflow/workflows"
    }
  },
  "_embedded": {
    "items": [
      {
        "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
        "_profile": "https://api.apiture.com/schemas/workflow/v1.0.0/profile.json",
        "_links": {
          "self": {
            "href": "/workflow/workflowDefinitions/0399abed-fd3d-4830-a88b-30f38b8a365c"
          }
        },
        "name": "newAccountSelector",
        "domain": "https://api.apiture.com/acctApps",
        "label": "New Account Selector",
        "type": "somethingElse",
        "visibility": "hidden",
        "state": "definition",
        "values": {
          "category": "personal",
          "ownership": "joint",
          "minimumBalanceGoal": 1000
        },
        "description": "A flow for selecting a Banking Product. Once a product is selected, the application will run the workflow associated with that specific product.",
        "_embedded": {}
      }
    ]
  }
}

200 Response

{
  "_profile": "https://api.apiture.com/schemas/workflow/workflows/v1.0.0/profile.json",
  "start": 10,
  "limit": 10,
  "count": 67,
  "name": "workflows",
  "_links": {
    "self": {
      "href": "/workflow/workflows?start=10&limit=10"
    },
    "first": {
      "href": "/workflow/workflows?start=0&limit=10"
    },
    "next": {
      "href": "/workflow/workflows?start=20&limit=10"
    },
    "collection": {
      "href": "/workflow/workflows"
    }
  },
  "_embedded": {
    "items": [
      {
        "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
        "_profile": "https://api.apiture.com/schemas/workflow/v1.0.0/profile.json",
        "_links": {
          "self": {
            "href": "/workflow/workflows/0399abed-fd3d-4830-a88b-30f38b8a365c"
          }
        },
        "name": "newAccountSelector",
        "domain": "https://api.apiture.com/acctApps",
        "label": "New Account Selector",
        "type": "somethingElse",
        "visibility": "hidden",
        "state": "pending",
        "values": {
          "category": "personal",
          "ownership": "joint",
          "minimumBalanceGoal": 1000
        },
        "description": "A flow for selecting a Banking Product. Once a product is selected, the application will run the workflow associated with that specific product.",
        "_embedded": {}
      }
    ]
  }
}

Responses

StatusDescription
200 OK
OK
Schema: workflows
StatusDescription
400 Bad Request
Bad Request. The request body or one or more of the query parameters was not well formed. The _error field in the response will contain details about the request error.
Schema: errorResponse
StatusDescription
422 Unprocessable Entity
Unprocessable Entity. One or more of the query parameters was well formed but otherwise invalid. The _error field in the response will contain details about the request error.
Schema: errorResponse

createWorkflowDefinition

Code samples

# You can also use wget
curl -X POST https://api.devbank.apiture.com/workflow/workflowDefinitions \
  -H 'Content-Type: application/hal+json' \
  -H 'Accept: application/hal+json' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

POST https://api.devbank.apiture.com/workflow/workflowDefinitions HTTP/1.1
Host: api.devbank.apiture.com
Content-Type: application/hal+json
Accept: application/hal+json

var headers = {
  'Content-Type':'application/hal+json',
  'Accept':'application/hal+json',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.devbank.apiture.com/workflow/workflowDefinitions',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');
const inputBody = '{
  "_profile": "https://api.apiture.com/schemas/workflow/v1.0.0/profile.json",
  "_links": {
    "apiture:application": {
      "href": "/accountApplications/applications/2f23b9fe-532f-4e82-943e-b079ea55aebc"
    }
  },
  "name": "newAccountSelector",
  "label": "New Account Selector",
  "description": "A flow for selecting a Banking Product. Once a product is selected, the application will run the workflow associated with that specific product.",
  "_embedded": {
    "tasks": {
      "personalInfoForm1": {
        "domain": "http:/api.apiture.com/domains/tasks/forms",
        "name": "userForm",
        "label": "Personal Information",
        "type": "form",
        "_links": {
          "self": {
            "href": "/workflow/tasks/46913e8b-fb7f-4f31-92bf-7b263907ed95"
          }
        }
      },
      "accountOwnershipChoice": {
        "domain": "http:/api.apiture.com/domains/tasks/prompts",
        "name": "accountOwnershipChoice",
        "type": "binaryChoice",
        "label": "Select Account Ownership Type",
        "_links": {
          "self": {
            "href": "/workflow/tasks/3768afc0-1070-4372-b965-44f01cba70cb"
          }
        }
      },
      "jointOwnerInfoForm1": {
        "domain": "http:/api.apiture.com/domains/tasks/forms",
        "name": "userForm",
        "type": "form",
        "label": "Joint Owner Personal Information",
        "_links": {
          "self": {
            "href": "/workflow/tasks/cb898688-05d1-4ecd-8684-d67da617eafa"
          }
        }
      }
    }
  },
  "dependencies": {
    "jointOwnerInfoForm1": [
      {
        "dependents": [
          "accountOwnershipChoice"
        ],
        "rule": "accountOwnershipChoice.choice == 'joint'"
      }
    ],
    "accountOwnershipChoice": [
      {
        "dependents": [
          "personalInfoForm1"
        ]
      }
    ]
  },
  "bindings": [
    {
      "source": "_.userProfile",
      "targets": [
        "userForm1.user",
        "jointUserForm1.spouse"
      ]
    }
  ]
}';
const headers = {
  'Content-Type':'application/hal+json',
  'Accept':'application/hal+json',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.devbank.apiture.com/workflow/workflowDefinitions',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/hal+json',
  'Accept' => 'application/hal+json',
  'API-Key' => 'API_KEY',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://api.devbank.apiture.com/workflow/workflowDefinitions',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/hal+json',
  'Accept': 'application/hal+json',
  'API-Key': 'API_KEY',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://api.devbank.apiture.com/workflow/workflowDefinitions', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.devbank.apiture.com/workflow/workflowDefinitions");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/hal+json"},
        "Accept": []string{"application/hal+json"},
        "API-Key": []string{"API_KEY"},
        "Authorization": []string{"Bearer {access-token}"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://api.devbank.apiture.com/workflow/workflowDefinitions", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

Create a new workflow definition

POST /workflowDefinitions

Create a new workflow definition in the workflow definitions collection.

Body parameter

{
  "_profile": "https://api.apiture.com/schemas/workflow/v1.0.0/profile.json",
  "_links": {
    "apiture:application": {
      "href": "/accountApplications/applications/2f23b9fe-532f-4e82-943e-b079ea55aebc"
    }
  },
  "name": "newAccountSelector",
  "label": "New Account Selector",
  "description": "A flow for selecting a Banking Product. Once a product is selected, the application will run the workflow associated with that specific product.",
  "_embedded": {
    "tasks": {
      "personalInfoForm1": {
        "domain": "http:/api.apiture.com/domains/tasks/forms",
        "name": "userForm",
        "label": "Personal Information",
        "type": "form",
        "_links": {
          "self": {
            "href": "/workflow/tasks/46913e8b-fb7f-4f31-92bf-7b263907ed95"
          }
        }
      },
      "accountOwnershipChoice": {
        "domain": "http:/api.apiture.com/domains/tasks/prompts",
        "name": "accountOwnershipChoice",
        "type": "binaryChoice",
        "label": "Select Account Ownership Type",
        "_links": {
          "self": {
            "href": "/workflow/tasks/3768afc0-1070-4372-b965-44f01cba70cb"
          }
        }
      },
      "jointOwnerInfoForm1": {
        "domain": "http:/api.apiture.com/domains/tasks/forms",
        "name": "userForm",
        "type": "form",
        "label": "Joint Owner Personal Information",
        "_links": {
          "self": {
            "href": "/workflow/tasks/cb898688-05d1-4ecd-8684-d67da617eafa"
          }
        }
      }
    }
  },
  "dependencies": {
    "jointOwnerInfoForm1": [
      {
        "dependents": [
          "accountOwnershipChoice"
        ],
        "rule": "accountOwnershipChoice.choice == 'joint'"
      }
    ],
    "accountOwnershipChoice": [
      {
        "dependents": [
          "personalInfoForm1"
        ]
      }
    ]
  },
  "bindings": [
    {
      "source": "_.userProfile",
      "targets": [
        "userForm1.user",
        "jointUserForm1.spouse"
      ]
    }
  ]
}

Parameters

Parameter Description
body
(body)
createWorkflow (required)
A workflow definition. The state must be definition.

Try it

Fields marked with * are mandatory.

ParameterValue
MethodPOST
* URL
* API Key
* Access Token
* Accept

* body

* Content-Type

Response

Response Code:

Response Headers:

Response Body:

    
      Click on 'Try It' to get a response.
    
  

Example responses

201 Response

{
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "_profile": "https://api.apiture.com/schemas/workflow/v1.0.0/profile.json",
  "_links": {
    "self": {
      "href": "/workflow/workflows/0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:cancel": {
      "href": "/canceledWorkflows?workflow=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:fail": {
      "href": "/failedWorkflows?workflow=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:pause": {
      "href": "/pausedWorkflows?workflow=0399abed-fd3d-4830-a88b-30f38b8a365c"
    }
  },
  "name": "newAccountSelector",
  "domain": "https://api.apiture.com/acctApps",
  "label": "New Account Selector",
  "type": "somethingElse",
  "visibility": "hidden",
  "state": "blocked",
  "schema": {
    "category": {
      "type": "string",
      "description": "An account category",
      "enum": [
        "personal",
        "business"
      ]
    },
    "ownership": {
      "type": "string",
      "description": "How account ownership is shared",
      "enum": [
        "joint",
        "individual"
      ]
    },
    "minimumBalanceGoal": {
      "description": "The applicant's target minimum balance.",
      "type": "number",
      "example": 1000
    }
  },
  "interface": {
    "category": {
      "input": true,
      "output": false,
      "required": true
    },
    "ownership": {
      "input": true,
      "output": false,
      "required": true
    },
    "minimumBalanceGoal": {
      "input": true,
      "output": false,
      "value": 10000
    }
  },
  "values": {
    "category": "personal",
    "ownership": "joint",
    "minimumBalanceGoal": 1000
  },
  "description": "A flow for selecting a Banking Product. Once a product is selected, the application will run the workflow associated with that specific product.",
  "_embedded": {
    "tasks": {
      "personalInfoForm1": {
        "domain": "http:/api.apiture.com/domains/tasks/forms",
        "name": "userForm",
        "label": "Personal Information",
        "type": "form",
        "_links": {
          "self": {
            "href": "/workflow/tasks/46913e8b-fb7f-4f31-92bf-7b263907ed95"
          }
        }
      },
      "accountOwnershipChoice": {
        "domain": "http:/api.apiture.com/domains/tasks/prompts",
        "name": "accountOwnershipChoice",
        "type": "binaryChoice",
        "label": "Select Account Ownership Type",
        "_links": {
          "self": {
            "href": "/workflow/tasks/3768afc0-1070-4372-b965-44f01cba70cb"
          }
        }
      },
      "jointOwnerInfoForm1": {
        "domain": "http:/api.apiture.com/domains/tasks/forms",
        "name": "userForm",
        "type": "form",
        "label": "Joint Owner Personal Information",
        "_links": {
          "self": {
            "href": "/workflow/tasks/cb898688-05d1-4ecd-8684-d67da617eafa"
          }
        }
      }
    }
  },
  "dependencies": {
    "jointOwnerInfoForm1": [
      {
        "dependents": [
          "accountOwnershipChoice"
        ],
        "rule": "accountOwnershipChoice.choice == 'joint'"
      }
    ],
    "accountOwnershipChoice": [
      {
        "dependents": [
          "personalInfoForm1"
        ]
      }
    ]
  },
  "bindings": [
    {
      "source": "_.userProfile",
      "targets": [
        "userForm1.user",
        "jointUserForm1.spouse"
      ]
    }
  ]
}

Responses

StatusDescription
201 Created
Created
Schema: workflow
StatusDescription
400 Bad Request
Bad Request. The request body or one or more of the query parameters was not well formed. The _error field in the response will contain details about the request error.
Schema: errorResponse

Response Headers

StatusDescription
201 Location string uri
The URI of the new resource. If the URI begins with / it is relative to the API root context. Else, it is a full URI starting with scheme://host
201 ETag string
The ETag response header specifies an entity tag which must be provided in an If-Match request header for PUT or PATCH operations which update the resource.

getWorkflowDefinition

Code samples

# You can also use wget
curl -X GET https://api.devbank.apiture.com/workflow/workflowDefinitions/{workflowDefinitionId} \
  -H 'Accept: application/hal+json' \
  -H 'If-None-Match: string' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

GET https://api.devbank.apiture.com/workflow/workflowDefinitions/{workflowDefinitionId} HTTP/1.1
Host: api.devbank.apiture.com
Accept: application/hal+json
If-None-Match: string

var headers = {
  'Accept':'application/hal+json',
  'If-None-Match':'string',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.devbank.apiture.com/workflow/workflowDefinitions/{workflowDefinitionId}',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/hal+json',
  'If-None-Match':'string',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.devbank.apiture.com/workflow/workflowDefinitions/{workflowDefinitionId}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/hal+json',
  'If-None-Match' => 'string',
  'API-Key' => 'API_KEY',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://api.devbank.apiture.com/workflow/workflowDefinitions/{workflowDefinitionId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/hal+json',
  'If-None-Match': 'string',
  'API-Key': 'API_KEY',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.devbank.apiture.com/workflow/workflowDefinitions/{workflowDefinitionId}', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.devbank.apiture.com/workflow/workflowDefinitions/{workflowDefinitionId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/hal+json"},
        "If-None-Match": []string{"string"},
        "API-Key": []string{"API_KEY"},
        "Authorization": []string{"Bearer {access-token}"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.devbank.apiture.com/workflow/workflowDefinitions/{workflowDefinitionId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

Fetch a representation of this workflow definition

GET /workflowDefinitions/{workflowDefinitionId}

Return a HAL representation of this workflow definition resource. This resource is referred to as the revisionless workflow definition, in contrast to the explicit revision at /workflowDefinitions/{workflowDefinitionId}/revisions/{revisionId}.

Parameters

Parameter Description
workflowDefinitionId
(path)
string (required)
The unique identifier of this workflow definition. This is an opaque string.
If-None-Match
(header)
string
The entity tag that was returned in the ETag response. If the resource's current entity tag matches, the GET will return 304 (Not Modified) and no response body, else the resource representation will be returned.

Try it

Fields marked with * are mandatory.

ParameterValue
MethodGET
* URL
* API Key
* Access Token
* Accept

* workflowDefinitionId

If-None-Match

Response

Response Code:

Response Headers:

Response Body:

    
      Click on 'Try It' to get a response.
    
  

Example responses

200 Response

{
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "_profile": "https://api.apiture.com/schemas/workflow/v1.0.0/profile.json",
  "_links": {
    "self": {
      "href": "/workflow/workflows/0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:cancel": {
      "href": "/canceledWorkflows?workflow=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:fail": {
      "href": "/failedWorkflows?workflow=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:pause": {
      "href": "/pausedWorkflows?workflow=0399abed-fd3d-4830-a88b-30f38b8a365c"
    }
  },
  "name": "newAccountSelector",
  "domain": "https://api.apiture.com/acctApps",
  "label": "New Account Selector",
  "type": "somethingElse",
  "visibility": "hidden",
  "state": "blocked",
  "schema": {
    "category": {
      "type": "string",
      "description": "An account category",
      "enum": [
        "personal",
        "business"
      ]
    },
    "ownership": {
      "type": "string",
      "description": "How account ownership is shared",
      "enum": [
        "joint",
        "individual"
      ]
    },
    "minimumBalanceGoal": {
      "description": "The applicant's target minimum balance.",
      "type": "number",
      "example": 1000
    }
  },
  "interface": {
    "category": {
      "input": true,
      "output": false,
      "required": true
    },
    "ownership": {
      "input": true,
      "output": false,
      "required": true
    },
    "minimumBalanceGoal": {
      "input": true,
      "output": false,
      "value": 10000
    }
  },
  "values": {
    "category": "personal",
    "ownership": "joint",
    "minimumBalanceGoal": 1000
  },
  "description": "A flow for selecting a Banking Product. Once a product is selected, the application will run the workflow associated with that specific product.",
  "_embedded": {
    "tasks": {
      "personalInfoForm1": {
        "domain": "http:/api.apiture.com/domains/tasks/forms",
        "name": "userForm",
        "label": "Personal Information",
        "type": "form",
        "_links": {
          "self": {
            "href": "/workflow/tasks/46913e8b-fb7f-4f31-92bf-7b263907ed95"
          }
        }
      },
      "accountOwnershipChoice": {
        "domain": "http:/api.apiture.com/domains/tasks/prompts",
        "name": "accountOwnershipChoice",
        "type": "binaryChoice",
        "label": "Select Account Ownership Type",
        "_links": {
          "self": {
            "href": "/workflow/tasks/3768afc0-1070-4372-b965-44f01cba70cb"
          }
        }
      },
      "jointOwnerInfoForm1": {
        "domain": "http:/api.apiture.com/domains/tasks/forms",
        "name": "userForm",
        "type": "form",
        "label": "Joint Owner Personal Information",
        "_links": {
          "self": {
            "href": "/workflow/tasks/cb898688-05d1-4ecd-8684-d67da617eafa"
          }
        }
      }
    }
  },
  "dependencies": {
    "jointOwnerInfoForm1": [
      {
        "dependents": [
          "accountOwnershipChoice"
        ],
        "rule": "accountOwnershipChoice.choice == 'joint'"
      }
    ],
    "accountOwnershipChoice": [
      {
        "dependents": [
          "personalInfoForm1"
        ]
      }
    ]
  },
  "bindings": [
    {
      "source": "_.userProfile",
      "targets": [
        "userForm1.user",
        "jointUserForm1.spouse"
      ]
    }
  ]
}

Responses

StatusDescription
200 OK
OK
Schema: workflow
StatusDescription
304 Not Modified
Not Modified. The resource has not been modified since it was last fetched.
StatusDescription
404 Not Found
Not Found. There is no such workflow definition resource at the specified {workflowDefinitionId}. The _error field in the response will contain details about the request error.
Schema: errorResponse

Response Headers

StatusDescription
200 ETag string
The ETag response header specifies an entity tag which must be provided in an If-Match request header for PUT or PATCH operations which update this workflow definition resource.

updateWorkflowDefinition

Code samples

# You can also use wget
curl -X PUT https://api.devbank.apiture.com/workflow/workflowDefinitions/{workflowDefinitionId} \
  -H 'Content-Type: application/hal+json' \
  -H 'Accept: application/hal+json' \
  -H 'If-Match: string' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

PUT https://api.devbank.apiture.com/workflow/workflowDefinitions/{workflowDefinitionId} HTTP/1.1
Host: api.devbank.apiture.com
Content-Type: application/hal+json
Accept: application/hal+json
If-Match: string

var headers = {
  'Content-Type':'application/hal+json',
  'Accept':'application/hal+json',
  'If-Match':'string',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.devbank.apiture.com/workflow/workflowDefinitions/{workflowDefinitionId}',
  method: 'put',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');
const inputBody = '{
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "_profile": "https://api.apiture.com/schemas/workflow/v1.0.0/profile.json",
  "_links": {
    "self": {
      "href": "/workflow/workflows/0399abed-fd3d-4830-a88b-30f38b8a365c"
    }
  },
  "name": "newAccountSelector",
  "domain": "https://api.apiture.com/acctApps",
  "label": "New Account Selector",
  "type": "somethingElse",
  "visibility": "hidden",
  "state": "running",
  "schema": {
    "category": {
      "type": "string",
      "description": "An account category",
      "enum": [
        "personal",
        "business"
      ]
    },
    "ownership": {
      "type": "string",
      "description": "How account ownership is shared",
      "enum": [
        "joint",
        "individual"
      ]
    },
    "minimumBalanceGoal": {
      "description": "The applicant's target minimum balance.",
      "type": "number",
      "example": 1000
    }
  },
  "interface": {
    "category": {
      "input": true,
      "output": false,
      "required": true
    },
    "ownership": {
      "input": true,
      "output": false,
      "required": true
    },
    "minimumBalanceGoal": {
      "input": true,
      "output": false,
      "value": 10000
    }
  },
  "values": {
    "category": "personal",
    "ownership": "joint",
    "minimumBalanceGoal": 1000
  },
  "description": "A flow for selecting a Banking Product. Once a product is selected, the application will run the workflow associated with that specific product.",
  "_embedded": {
    "tasks": {
      "personalInfoForm1": {
        "domain": "http:/api.apiture.com/domains/tasks/forms",
        "name": "userForm",
        "label": "Personal Information",
        "type": "form",
        "_links": {
          "self": {
            "href": "/workflow/tasks/46913e8b-fb7f-4f31-92bf-7b263907ed95"
          }
        }
      },
      "accountOwnershipChoice": {
        "domain": "http:/api.apiture.com/domains/tasks/prompts",
        "name": "accountOwnershipChoice",
        "type": "binaryChoice",
        "label": "Select Account Ownership Type",
        "_links": {
          "self": {
            "href": "/workflow/tasks/3768afc0-1070-4372-b965-44f01cba70cb"
          }
        }
      },
      "jointOwnerInfoForm1": {
        "domain": "http:/api.apiture.com/domains/tasks/forms",
        "name": "userForm",
        "type": "form",
        "label": "Joint Owner Personal Information",
        "_links": {
          "self": {
            "href": "/workflow/tasks/cb898688-05d1-4ecd-8684-d67da617eafa"
          }
        }
      }
    }
  },
  "dependencies": {
    "jointOwnerInfoForm1": [
      {
        "dependents": [
          "accountOwnershipChoice"
        ],
        "rule": "accountOwnershipChoice.choice == 'joint'"
      }
    ],
    "accountOwnershipChoice": [
      {
        "dependents": [
          "personalInfoForm1"
        ]
      }
    ]
  },
  "bindings": [
    {
      "source": "_.userProfile",
      "targets": [
        "userForm1.user",
        "jointUserForm1.spouse"
      ]
    }
  ]
}';
const headers = {
  'Content-Type':'application/hal+json',
  'Accept':'application/hal+json',
  'If-Match':'string',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.devbank.apiture.com/workflow/workflowDefinitions/{workflowDefinitionId}',
{
  method: 'PUT',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/hal+json',
  'Accept' => 'application/hal+json',
  'If-Match' => 'string',
  'API-Key' => 'API_KEY',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.put 'https://api.devbank.apiture.com/workflow/workflowDefinitions/{workflowDefinitionId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/hal+json',
  'Accept': 'application/hal+json',
  'If-Match': 'string',
  'API-Key': 'API_KEY',
  'Authorization': 'Bearer {access-token}'
}

r = requests.put('https://api.devbank.apiture.com/workflow/workflowDefinitions/{workflowDefinitionId}', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.devbank.apiture.com/workflow/workflowDefinitions/{workflowDefinitionId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PUT");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/hal+json"},
        "Accept": []string{"application/hal+json"},
        "If-Match": []string{"string"},
        "API-Key": []string{"API_KEY"},
        "Authorization": []string{"Bearer {access-token}"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PUT", "https://api.devbank.apiture.com/workflow/workflowDefinitions/{workflowDefinitionId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

Update this workflow definition

PUT /workflowDefinitions/{workflowDefinitionId}

Perform a complete replacement of this workflow definition.

Body parameter

{
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "_profile": "https://api.apiture.com/schemas/workflow/v1.0.0/profile.json",
  "_links": {
    "self": {
      "href": "/workflow/workflows/0399abed-fd3d-4830-a88b-30f38b8a365c"
    }
  },
  "name": "newAccountSelector",
  "domain": "https://api.apiture.com/acctApps",
  "label": "New Account Selector",
  "type": "somethingElse",
  "visibility": "hidden",
  "state": "running",
  "schema": {
    "category": {
      "type": "string",
      "description": "An account category",
      "enum": [
        "personal",
        "business"
      ]
    },
    "ownership": {
      "type": "string",
      "description": "How account ownership is shared",
      "enum": [
        "joint",
        "individual"
      ]
    },
    "minimumBalanceGoal": {
      "description": "The applicant's target minimum balance.",
      "type": "number",
      "example": 1000
    }
  },
  "interface": {
    "category": {
      "input": true,
      "output": false,
      "required": true
    },
    "ownership": {
      "input": true,
      "output": false,
      "required": true
    },
    "minimumBalanceGoal": {
      "input": true,
      "output": false,
      "value": 10000
    }
  },
  "values": {
    "category": "personal",
    "ownership": "joint",
    "minimumBalanceGoal": 1000
  },
  "description": "A flow for selecting a Banking Product. Once a product is selected, the application will run the workflow associated with that specific product.",
  "_embedded": {
    "tasks": {
      "personalInfoForm1": {
        "domain": "http:/api.apiture.com/domains/tasks/forms",
        "name": "userForm",
        "label": "Personal Information",
        "type": "form",
        "_links": {
          "self": {
            "href": "/workflow/tasks/46913e8b-fb7f-4f31-92bf-7b263907ed95"
          }
        }
      },
      "accountOwnershipChoice": {
        "domain": "http:/api.apiture.com/domains/tasks/prompts",
        "name": "accountOwnershipChoice",
        "type": "binaryChoice",
        "label": "Select Account Ownership Type",
        "_links": {
          "self": {
            "href": "/workflow/tasks/3768afc0-1070-4372-b965-44f01cba70cb"
          }
        }
      },
      "jointOwnerInfoForm1": {
        "domain": "http:/api.apiture.com/domains/tasks/forms",
        "name": "userForm",
        "type": "form",
        "label": "Joint Owner Personal Information",
        "_links": {
          "self": {
            "href": "/workflow/tasks/cb898688-05d1-4ecd-8684-d67da617eafa"
          }
        }
      }
    }
  },
  "dependencies": {
    "jointOwnerInfoForm1": [
      {
        "dependents": [
          "accountOwnershipChoice"
        ],
        "rule": "accountOwnershipChoice.choice == 'joint'"
      }
    ],
    "accountOwnershipChoice": [
      {
        "dependents": [
          "personalInfoForm1"
        ]
      }
    ]
  },
  "bindings": [
    {
      "source": "_.userProfile",
      "targets": [
        "userForm1.user",
        "jointUserForm1.spouse"
      ]
    }
  ]
}

Parameters

Parameter Description
workflowDefinitionId
(path)
string (required)
The unique identifier of this workflow definition. This is an opaque string.
If-Match
(header)
string
The entity tag that was returned in the ETag response. This must match the current entity tag of the resource.
body
(body)
updateWorkflow (required)

Try it

Fields marked with * are mandatory.

ParameterValue
MethodPUT
* URL
* API Key
* Access Token
* Accept

* workflowDefinitionId

If-Match

* body

* Content-Type

Response

Response Code:

Response Headers:

Response Body:

    
      Click on 'Try It' to get a response.
    
  

Example responses

OK

{
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "_profile": "https://api.apiture.com/schemas/workflow/v1.0.0/profile.json",
  "name": "personalCheckingApplicationWorkflow",
  "label": "Personal Checking Application Workflow",
  "description": "Personal Checking Application Workflow",
  "state": "definition",
  "schema": {
    "applicatant": {
      "type": "object",
      "required": [
        "firstName",
        "lastName"
      ],
      "properties": {
        "firstName": {
          "type": "string"
        },
        "middleName": {
          "type": "string"
        },
        "lastName": {
          "type": "string"
        }
      }
    }
  },
  "tasks": {
    "personalInfoForm1": {
      "domain": "http:/api.apiture.com/domains/tasks/forms",
      "name": "userForm",
      "label": "Personal Information",
      "type": "form",
      "_links": {
        "self": {
          "href": "/workflow/tasks/46913e8b-fb7f-4f31-92bf-7b263907ed95"
        }
      }
    },
    "accountOwnershipChoice": {
      "domain": "http:/api.apiture.com/domains/tasks/prompts",
      "name": "accountOwnershipChoice",
      "type": "binaryChoice",
      "label": "Select Account Ownership Type",
      "_links": {
        "self": {
          "href": "/workflow/tasks/3768afc0-1070-4372-b965-44f01cba70cb"
        }
      }
    },
    "jointOwnerInfoForm1": {
      "domain": "http:/api.apiture.com/domains/tasks/forms",
      "name": "userForm",
      "type": "form",
      "label": "Joint Owner Personal Information",
      "_links": {
        "self": {
          "href": "/workflow/tasks/cb898688-05d1-4ecd-8684-d67da617eafa"
        }
      }
    }
  },
  "dependencies": {
    "jointOwnerInfoForm1": [
      {
        "dependents": [
          "accountOwnershipChoice"
        ],
        "rule": "accountOwnershipChoice.choice == 'joint'"
      }
    ],
    "accountOwnershipChoice": [
      {
        "dependents": [
          "personalInfoForm1"
        ]
      }
    ]
  },
  "bindings": [
    {
      "source": "_.userProfile",
      "targets": [
        "userForm1.user",
        "jointUserForm1.spouse"
      ]
    }
  ],
  "_links": {
    "self": {
      "href": "/workflow/workflowDefinitions/0399abed-fd3d-4830-a88b-30f38b8a365c"
    }
  },
  "_embedded": {}
}

200 Response

{
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "_profile": "https://api.apiture.com/schemas/workflow/v1.0.0/profile.json",
  "_links": {
    "self": {
      "href": "/workflow/workflows/0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:cancel": {
      "href": "/canceledWorkflows?workflow=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:fail": {
      "href": "/failedWorkflows?workflow=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:pause": {
      "href": "/pausedWorkflows?workflow=0399abed-fd3d-4830-a88b-30f38b8a365c"
    }
  },
  "name": "newAccountSelector",
  "domain": "https://api.apiture.com/acctApps",
  "label": "New Account Selector",
  "type": "somethingElse",
  "visibility": "hidden",
  "state": "blocked",
  "schema": {
    "category": {
      "type": "string",
      "description": "An account category",
      "enum": [
        "personal",
        "business"
      ]
    },
    "ownership": {
      "type": "string",
      "description": "How account ownership is shared",
      "enum": [
        "joint",
        "individual"
      ]
    },
    "minimumBalanceGoal": {
      "description": "The applicant's target minimum balance.",
      "type": "number",
      "example": 1000
    }
  },
  "interface": {
    "category": {
      "input": true,
      "output": false,
      "required": true
    },
    "ownership": {
      "input": true,
      "output": false,
      "required": true
    },
    "minimumBalanceGoal": {
      "input": true,
      "output": false,
      "value": 10000
    }
  },
  "values": {
    "category": "personal",
    "ownership": "joint",
    "minimumBalanceGoal": 1000
  },
  "description": "A flow for selecting a Banking Product. Once a product is selected, the application will run the workflow associated with that specific product.",
  "_embedded": {
    "tasks": {
      "personalInfoForm1": {
        "domain": "http:/api.apiture.com/domains/tasks/forms",
        "name": "userForm",
        "label": "Personal Information",
        "type": "form",
        "_links": {
          "self": {
            "href": "/workflow/tasks/46913e8b-fb7f-4f31-92bf-7b263907ed95"
          }
        }
      },
      "accountOwnershipChoice": {
        "domain": "http:/api.apiture.com/domains/tasks/prompts",
        "name": "accountOwnershipChoice",
        "type": "binaryChoice",
        "label": "Select Account Ownership Type",
        "_links": {
          "self": {
            "href": "/workflow/tasks/3768afc0-1070-4372-b965-44f01cba70cb"
          }
        }
      },
      "jointOwnerInfoForm1": {
        "domain": "http:/api.apiture.com/domains/tasks/forms",
        "name": "userForm",
        "type": "form",
        "label": "Joint Owner Personal Information",
        "_links": {
          "self": {
            "href": "/workflow/tasks/cb898688-05d1-4ecd-8684-d67da617eafa"
          }
        }
      }
    }
  },
  "dependencies": {
    "jointOwnerInfoForm1": [
      {
        "dependents": [
          "accountOwnershipChoice"
        ],
        "rule": "accountOwnershipChoice.choice == 'joint'"
      }
    ],
    "accountOwnershipChoice": [
      {
        "dependents": [
          "personalInfoForm1"
        ]
      }
    ]
  },
  "bindings": [
    {
      "source": "_.userProfile",
      "targets": [
        "userForm1.user",
        "jointUserForm1.spouse"
      ]
    }
  ]
}

Responses

StatusDescription
200 OK
OK
Schema: workflow
StatusDescription
400 Bad Request
Bad Request. The request body or one or more of the query parameters was not well formed. The _error field in the response will contain details about the request error.
Schema: errorResponse
StatusDescription
404 Not Found
Not Found. There is no such workflow definition resource at the specified {workflowDefinitionId}. The _error field in the response will contain details about the request error.
Schema: errorResponse
StatusDescription
412 Precondition Failed
Precondition Failed. The supplied if-Match header value does not match the most recent ETag response header value. The resource has changed in the interim.
Schema: errorResponse
StatusDescription
422 Unprocessable Entity
Unprocessable Entity. One or more of the query parameters was well formed but otherwise invalid. The _error field in the response will contain details about the request error.
Schema: errorResponse

Response Headers

StatusDescription
200 ETag string
The ETag response header specifies an entity tag which must be provided in an If-Match request header for PUT or PATCH operations which update this workflow definition resource.

patchWorkflowDefinition

Code samples

# You can also use wget
curl -X PATCH https://api.devbank.apiture.com/workflow/workflowDefinitions/{workflowDefinitionId} \
  -H 'Content-Type: application/hal+json' \
  -H 'Accept: application/hal+json' \
  -H 'If-Match: string' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

PATCH https://api.devbank.apiture.com/workflow/workflowDefinitions/{workflowDefinitionId} HTTP/1.1
Host: api.devbank.apiture.com
Content-Type: application/hal+json
Accept: application/hal+json
If-Match: string

var headers = {
  'Content-Type':'application/hal+json',
  'Accept':'application/hal+json',
  'If-Match':'string',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.devbank.apiture.com/workflow/workflowDefinitions/{workflowDefinitionId}',
  method: 'patch',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');
const inputBody = '{
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "_profile": "https://api.apiture.com/schemas/workflow/v1.0.0/profile.json",
  "_links": {
    "self": {
      "href": "/workflow/workflows/0399abed-fd3d-4830-a88b-30f38b8a365c"
    }
  },
  "name": "newAccountSelector",
  "domain": "https://api.apiture.com/acctApps",
  "label": "New Account Selector",
  "type": "somethingElse",
  "visibility": "hidden",
  "state": "running",
  "schema": {
    "category": {
      "type": "string",
      "description": "An account category",
      "enum": [
        "personal",
        "business"
      ]
    },
    "ownership": {
      "type": "string",
      "description": "How account ownership is shared",
      "enum": [
        "joint",
        "individual"
      ]
    },
    "minimumBalanceGoal": {
      "description": "The applicant's target minimum balance.",
      "type": "number",
      "example": 1000
    }
  },
  "interface": {
    "category": {
      "input": true,
      "output": false,
      "required": true
    },
    "ownership": {
      "input": true,
      "output": false,
      "required": true
    },
    "minimumBalanceGoal": {
      "input": true,
      "output": false,
      "value": 10000
    }
  },
  "values": {
    "category": "personal",
    "ownership": "joint",
    "minimumBalanceGoal": 1000
  },
  "description": "A flow for selecting a Banking Product. Once a product is selected, the application will run the workflow associated with that specific product.",
  "_embedded": {
    "tasks": {
      "personalInfoForm1": {
        "domain": "http:/api.apiture.com/domains/tasks/forms",
        "name": "userForm",
        "label": "Personal Information",
        "type": "form",
        "_links": {
          "self": {
            "href": "/workflow/tasks/46913e8b-fb7f-4f31-92bf-7b263907ed95"
          }
        }
      },
      "accountOwnershipChoice": {
        "domain": "http:/api.apiture.com/domains/tasks/prompts",
        "name": "accountOwnershipChoice",
        "type": "binaryChoice",
        "label": "Select Account Ownership Type",
        "_links": {
          "self": {
            "href": "/workflow/tasks/3768afc0-1070-4372-b965-44f01cba70cb"
          }
        }
      },
      "jointOwnerInfoForm1": {
        "domain": "http:/api.apiture.com/domains/tasks/forms",
        "name": "userForm",
        "type": "form",
        "label": "Joint Owner Personal Information",
        "_links": {
          "self": {
            "href": "/workflow/tasks/cb898688-05d1-4ecd-8684-d67da617eafa"
          }
        }
      }
    }
  },
  "dependencies": {
    "jointOwnerInfoForm1": [
      {
        "dependents": [
          "accountOwnershipChoice"
        ],
        "rule": "accountOwnershipChoice.choice == 'joint'"
      }
    ],
    "accountOwnershipChoice": [
      {
        "dependents": [
          "personalInfoForm1"
        ]
      }
    ]
  },
  "bindings": [
    {
      "source": "_.userProfile",
      "targets": [
        "userForm1.user",
        "jointUserForm1.spouse"
      ]
    }
  ]
}';
const headers = {
  'Content-Type':'application/hal+json',
  'Accept':'application/hal+json',
  'If-Match':'string',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.devbank.apiture.com/workflow/workflowDefinitions/{workflowDefinitionId}',
{
  method: 'PATCH',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/hal+json',
  'Accept' => 'application/hal+json',
  'If-Match' => 'string',
  'API-Key' => 'API_KEY',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.patch 'https://api.devbank.apiture.com/workflow/workflowDefinitions/{workflowDefinitionId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/hal+json',
  'Accept': 'application/hal+json',
  'If-Match': 'string',
  'API-Key': 'API_KEY',
  'Authorization': 'Bearer {access-token}'
}

r = requests.patch('https://api.devbank.apiture.com/workflow/workflowDefinitions/{workflowDefinitionId}', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.devbank.apiture.com/workflow/workflowDefinitions/{workflowDefinitionId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PATCH");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/hal+json"},
        "Accept": []string{"application/hal+json"},
        "If-Match": []string{"string"},
        "API-Key": []string{"API_KEY"},
        "Authorization": []string{"Bearer {access-token}"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PATCH", "https://api.devbank.apiture.com/workflow/workflowDefinitions/{workflowDefinitionId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

Update this workflow definition

PATCH /workflowDefinitions/{workflowDefinitionId}

Perform a partial update of this workflow definition. Fields which are omitted are not updated. Nested _embedded and _links are ignored if included.

Body parameter

{
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "_profile": "https://api.apiture.com/schemas/workflow/v1.0.0/profile.json",
  "_links": {
    "self": {
      "href": "/workflow/workflows/0399abed-fd3d-4830-a88b-30f38b8a365c"
    }
  },
  "name": "newAccountSelector",
  "domain": "https://api.apiture.com/acctApps",
  "label": "New Account Selector",
  "type": "somethingElse",
  "visibility": "hidden",
  "state": "running",
  "schema": {
    "category": {
      "type": "string",
      "description": "An account category",
      "enum": [
        "personal",
        "business"
      ]
    },
    "ownership": {
      "type": "string",
      "description": "How account ownership is shared",
      "enum": [
        "joint",
        "individual"
      ]
    },
    "minimumBalanceGoal": {
      "description": "The applicant's target minimum balance.",
      "type": "number",
      "example": 1000
    }
  },
  "interface": {
    "category": {
      "input": true,
      "output": false,
      "required": true
    },
    "ownership": {
      "input": true,
      "output": false,
      "required": true
    },
    "minimumBalanceGoal": {
      "input": true,
      "output": false,
      "value": 10000
    }
  },
  "values": {
    "category": "personal",
    "ownership": "joint",
    "minimumBalanceGoal": 1000
  },
  "description": "A flow for selecting a Banking Product. Once a product is selected, the application will run the workflow associated with that specific product.",
  "_embedded": {
    "tasks": {
      "personalInfoForm1": {
        "domain": "http:/api.apiture.com/domains/tasks/forms",
        "name": "userForm",
        "label": "Personal Information",
        "type": "form",
        "_links": {
          "self": {
            "href": "/workflow/tasks/46913e8b-fb7f-4f31-92bf-7b263907ed95"
          }
        }
      },
      "accountOwnershipChoice": {
        "domain": "http:/api.apiture.com/domains/tasks/prompts",
        "name": "accountOwnershipChoice",
        "type": "binaryChoice",
        "label": "Select Account Ownership Type",
        "_links": {
          "self": {
            "href": "/workflow/tasks/3768afc0-1070-4372-b965-44f01cba70cb"
          }
        }
      },
      "jointOwnerInfoForm1": {
        "domain": "http:/api.apiture.com/domains/tasks/forms",
        "name": "userForm",
        "type": "form",
        "label": "Joint Owner Personal Information",
        "_links": {
          "self": {
            "href": "/workflow/tasks/cb898688-05d1-4ecd-8684-d67da617eafa"
          }
        }
      }
    }
  },
  "dependencies": {
    "jointOwnerInfoForm1": [
      {
        "dependents": [
          "accountOwnershipChoice"
        ],
        "rule": "accountOwnershipChoice.choice == 'joint'"
      }
    ],
    "accountOwnershipChoice": [
      {
        "dependents": [
          "personalInfoForm1"
        ]
      }
    ]
  },
  "bindings": [
    {
      "source": "_.userProfile",
      "targets": [
        "userForm1.user",
        "jointUserForm1.spouse"
      ]
    }
  ]
}

Parameters

Parameter Description
workflowDefinitionId
(path)
string (required)
The unique identifier of this workflow definition. This is an opaque string.
If-Match
(header)
string
The entity tag that was returned in the ETag response. This must match the current entity tag of the resource.
body
(body)
updateWorkflow (required)

Try it

Fields marked with * are mandatory.

ParameterValue
MethodPATCH
* URL
* API Key
* Access Token
* Accept

* workflowDefinitionId

If-Match

* body

* Content-Type

Response

Response Code:

Response Headers:

Response Body:

    
      Click on 'Try It' to get a response.
    
  

Example responses

200 Response

{
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "_profile": "https://api.apiture.com/schemas/workflow/v1.0.0/profile.json",
  "_links": {
    "self": {
      "href": "/workflow/workflows/0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:cancel": {
      "href": "/canceledWorkflows?workflow=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:fail": {
      "href": "/failedWorkflows?workflow=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:pause": {
      "href": "/pausedWorkflows?workflow=0399abed-fd3d-4830-a88b-30f38b8a365c"
    }
  },
  "name": "newAccountSelector",
  "domain": "https://api.apiture.com/acctApps",
  "label": "New Account Selector",
  "type": "somethingElse",
  "visibility": "hidden",
  "state": "blocked",
  "schema": {
    "category": {
      "type": "string",
      "description": "An account category",
      "enum": [
        "personal",
        "business"
      ]
    },
    "ownership": {
      "type": "string",
      "description": "How account ownership is shared",
      "enum": [
        "joint",
        "individual"
      ]
    },
    "minimumBalanceGoal": {
      "description": "The applicant's target minimum balance.",
      "type": "number",
      "example": 1000
    }
  },
  "interface": {
    "category": {
      "input": true,
      "output": false,
      "required": true
    },
    "ownership": {
      "input": true,
      "output": false,
      "required": true
    },
    "minimumBalanceGoal": {
      "input": true,
      "output": false,
      "value": 10000
    }
  },
  "values": {
    "category": "personal",
    "ownership": "joint",
    "minimumBalanceGoal": 1000
  },
  "description": "A flow for selecting a Banking Product. Once a product is selected, the application will run the workflow associated with that specific product.",
  "_embedded": {
    "tasks": {
      "personalInfoForm1": {
        "domain": "http:/api.apiture.com/domains/tasks/forms",
        "name": "userForm",
        "label": "Personal Information",
        "type": "form",
        "_links": {
          "self": {
            "href": "/workflow/tasks/46913e8b-fb7f-4f31-92bf-7b263907ed95"
          }
        }
      },
      "accountOwnershipChoice": {
        "domain": "http:/api.apiture.com/domains/tasks/prompts",
        "name": "accountOwnershipChoice",
        "type": "binaryChoice",
        "label": "Select Account Ownership Type",
        "_links": {
          "self": {
            "href": "/workflow/tasks/3768afc0-1070-4372-b965-44f01cba70cb"
          }
        }
      },
      "jointOwnerInfoForm1": {
        "domain": "http:/api.apiture.com/domains/tasks/forms",
        "name": "userForm",
        "type": "form",
        "label": "Joint Owner Personal Information",
        "_links": {
          "self": {
            "href": "/workflow/tasks/cb898688-05d1-4ecd-8684-d67da617eafa"
          }
        }
      }
    }
  },
  "dependencies": {
    "jointOwnerInfoForm1": [
      {
        "dependents": [
          "accountOwnershipChoice"
        ],
        "rule": "accountOwnershipChoice.choice == 'joint'"
      }
    ],
    "accountOwnershipChoice": [
      {
        "dependents": [
          "personalInfoForm1"
        ]
      }
    ]
  },
  "bindings": [
    {
      "source": "_.userProfile",
      "targets": [
        "userForm1.user",
        "jointUserForm1.spouse"
      ]
    }
  ]
}

Responses

StatusDescription
200 OK
OK
Schema: workflow
StatusDescription
400 Bad Request
Bad Request. The request body or one or more of the query parameters was not well formed. The _error field in the response will contain details about the request error.
Schema: errorResponse
StatusDescription
404 Not Found
Not Found. There is no such workflow definition resource at the specified {workflowDefinitionId}. The _error field in the response will contain details about the request error.
Schema: errorResponse
StatusDescription
412 Precondition Failed
Precondition Failed. The supplied if-Match header value does not match the most recent ETag response header value. The resource has changed in the interim.
Schema: errorResponse
StatusDescription
422 Unprocessable Entity
Unprocessable Entity. One or more of the query parameters was well formed but otherwise invalid. The _error field in the response will contain details about the request error.
Schema: errorResponse

Response Headers

StatusDescription
200 ETag string
The ETag response header specifies an entity tag which must be provided in an If-Match request header for PUT or PATCH operations which update this workflow definition resource.

deleteWorkflowDefinition

Code samples

# You can also use wget
curl -X DELETE https://api.devbank.apiture.com/workflow/workflowDefinitions/{workflowDefinitionId} \
  -H 'Accept: application/hal+json' \
  -H 'If-Match: string' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

DELETE https://api.devbank.apiture.com/workflow/workflowDefinitions/{workflowDefinitionId} HTTP/1.1
Host: api.devbank.apiture.com
Accept: application/hal+json
If-Match: string

var headers = {
  'Accept':'application/hal+json',
  'If-Match':'string',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.devbank.apiture.com/workflow/workflowDefinitions/{workflowDefinitionId}',
  method: 'delete',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/hal+json',
  'If-Match':'string',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.devbank.apiture.com/workflow/workflowDefinitions/{workflowDefinitionId}',
{
  method: 'DELETE',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/hal+json',
  'If-Match' => 'string',
  'API-Key' => 'API_KEY',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.delete 'https://api.devbank.apiture.com/workflow/workflowDefinitions/{workflowDefinitionId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/hal+json',
  'If-Match': 'string',
  'API-Key': 'API_KEY',
  'Authorization': 'Bearer {access-token}'
}

r = requests.delete('https://api.devbank.apiture.com/workflow/workflowDefinitions/{workflowDefinitionId}', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.devbank.apiture.com/workflow/workflowDefinitions/{workflowDefinitionId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/hal+json"},
        "If-Match": []string{"string"},
        "API-Key": []string{"API_KEY"},
        "Authorization": []string{"Bearer {access-token}"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("DELETE", "https://api.devbank.apiture.com/workflow/workflowDefinitions/{workflowDefinitionId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

Delete this workflow definition resource

DELETE /workflowDefinitions/{workflowDefinitionId}

Delete this workflow definition resource. The workflow definition may not be deleted if it or any of its revisions are in use by any tasks. Deleting a workflow defintion also deletes all of its revisions.

Parameters

Parameter Description
If-Match
(header)
string
The entity tag that was returned in the ETag response. This must match the current entity tag of the resource.
workflowDefinitionId
(path)
string (required)
The unique identifier of this workflow definition. This is an opaque string.

Try it

Fields marked with * are mandatory.

ParameterValue
MethodDELETE
* URL
* API Key
* Access Token
* Accept

If-Match

* workflowDefinitionId

Response

Response Code:

Response Headers:

Response Body:

    
      Click on 'Try It' to get a response.
    
  

Example responses

400 Response

{
  "_profile": "https://api.apiture.com/schemas/common/errorResponse/v1.0.0/profile.json",
  "_error": {
    "_id": "2eae46e1-575c-4d69-8a8f-0a7b0115a4b3",
    "message": "The value for deposit must be greater than 0.",
    "statusCode": 422,
    "type": "positiveNumberRequired",
    "attributes": {
      "value": -125.5
    },
    "remediation": "Provide a value which is greater than 0",
    "occurredAt": "2018-01-25T05:50:52.375Z",
    "_links": {
      "describedby": {
        "href": "https://api.apiture.com/errors/positiveNumberRequired"
      }
    },
    "_embedded": {
      "errors": []
    }
  }
}

Responses

StatusDescription
204 No Content
No Content. The resource was deleted successfully.
StatusDescription
400 Bad Request
Bad Request. The request body or one or more of the query parameters was not well formed. The _error field in the response will contain details about the request error.
Schema: errorResponse
StatusDescription
412 Precondition Failed
Precondition Failed. The supplied if-Match header value does not match the most recent ETag response header value. The resource has changed in the interim.
Schema: errorResponse

getWorkflowDefinitionRevisions

Code samples

# You can also use wget
curl -X GET https://api.devbank.apiture.com/workflow/workflowDefinitions/{workflowDefinitionId}/revisions \
  -H 'Accept: application/hal+json' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

GET https://api.devbank.apiture.com/workflow/workflowDefinitions/{workflowDefinitionId}/revisions HTTP/1.1
Host: api.devbank.apiture.com
Accept: application/hal+json

var headers = {
  'Accept':'application/hal+json',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.devbank.apiture.com/workflow/workflowDefinitions/{workflowDefinitionId}/revisions',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/hal+json',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.devbank.apiture.com/workflow/workflowDefinitions/{workflowDefinitionId}/revisions',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/hal+json',
  'API-Key' => 'API_KEY',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://api.devbank.apiture.com/workflow/workflowDefinitions/{workflowDefinitionId}/revisions',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/hal+json',
  'API-Key': 'API_KEY',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.devbank.apiture.com/workflow/workflowDefinitions/{workflowDefinitionId}/revisions', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.devbank.apiture.com/workflow/workflowDefinitions/{workflowDefinitionId}/revisions");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/hal+json"},
        "API-Key": []string{"API_KEY"},
        "Authorization": []string{"Bearer {access-token}"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.devbank.apiture.com/workflow/workflowDefinitions/{workflowDefinitionId}/revisions", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

Return a collection of workflow definition revisions

GET /workflowDefinitions/{workflowDefinitionId}/revisions

Return a paginated sortable filterable searchable collection of workflow definition revisions. The links in the response include pagination links.

Parameters

Parameter Description
workflowDefinitionId
(path)
string (required)
The unique identifier of this workflow definition. This is an opaque string.
start
(query)
integer(int64)
The zero-based index of the first workflow definition revision item to include in this page. The default 0 denotes the beginning of the collection.
limit
(query)
integer(int32)
The maximum number of workflow definition representations to return in this page.
sortBy
(query)
string
Optional sort criteria. Revision collections are sorted by default in reverse chronological order (most recent revision first). See sort criteria format, such as ?sortBy=field1,-field2.
filter
(query)
string
Optional filter criteria. See filtering.
q
(query)
string
Optional search string. See searching.

Try it

Fields marked with * are mandatory.

ParameterValue
MethodGET
* URL
* API Key
* Access Token
* Accept

* workflowDefinitionId

start

limit

sortBy

filter

q

Response

Response Code:

Response Headers:

Response Body:

    
      Click on 'Try It' to get a response.
    
  

Example responses

200 Response

{
  "_profile": "https://api.apiture.com/schemas/workflow/workflows/v1.0.0/profile.json",
  "start": 10,
  "limit": 10,
  "count": 67,
  "name": "workflows",
  "_links": {
    "self": {
      "href": "/workflow/workflows?start=10&limit=10"
    },
    "first": {
      "href": "/workflow/workflows?start=0&limit=10"
    },
    "next": {
      "href": "/workflow/workflows?start=20&limit=10"
    },
    "collection": {
      "href": "/workflow/workflows"
    }
  },
  "_embedded": {
    "items": [
      {
        "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
        "_profile": "https://api.apiture.com/schemas/workflow/v1.0.0/profile.json",
        "_links": {
          "self": {
            "href": "/workflow/workflows/0399abed-fd3d-4830-a88b-30f38b8a365c"
          }
        },
        "name": "newAccountSelector",
        "domain": "https://api.apiture.com/acctApps",
        "label": "New Account Selector",
        "type": "somethingElse",
        "visibility": "hidden",
        "state": "pending",
        "values": {
          "category": "personal",
          "ownership": "joint",
          "minimumBalanceGoal": 1000
        },
        "description": "A flow for selecting a Banking Product. Once a product is selected, the application will run the workflow associated with that specific product.",
        "_embedded": {}
      }
    ]
  }
}

Responses

StatusDescription
200 OK
OK
Schema: workflows
StatusDescription
400 Bad Request
Bad Request. The request body or one or more of the query parameters was not well formed. The _error field in the response will contain details about the request error.
Schema: errorResponse
StatusDescription
422 Unprocessable Entity
Unprocessable Entity. One or more of the query parameters was well formed but otherwise invalid. The _error field in the response will contain details about the request error.
Schema: errorResponse

createWorkflowDefinitionRevision

Code samples

# You can also use wget
curl -X POST https://api.devbank.apiture.com/workflow/workflowDefinitions/{workflowDefinitionId}/revisions \
  -H 'Accept: application/hal+json' \
  -H 'If-Match: string' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

POST https://api.devbank.apiture.com/workflow/workflowDefinitions/{workflowDefinitionId}/revisions HTTP/1.1
Host: api.devbank.apiture.com
Accept: application/hal+json
If-Match: string

var headers = {
  'Accept':'application/hal+json',
  'If-Match':'string',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.devbank.apiture.com/workflow/workflowDefinitions/{workflowDefinitionId}/revisions',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/hal+json',
  'If-Match':'string',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.devbank.apiture.com/workflow/workflowDefinitions/{workflowDefinitionId}/revisions',
{
  method: 'POST',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/hal+json',
  'If-Match' => 'string',
  'API-Key' => 'API_KEY',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://api.devbank.apiture.com/workflow/workflowDefinitions/{workflowDefinitionId}/revisions',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/hal+json',
  'If-Match': 'string',
  'API-Key': 'API_KEY',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://api.devbank.apiture.com/workflow/workflowDefinitions/{workflowDefinitionId}/revisions', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.devbank.apiture.com/workflow/workflowDefinitions/{workflowDefinitionId}/revisions");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/hal+json"},
        "If-Match": []string{"string"},
        "API-Key": []string{"API_KEY"},
        "Authorization": []string{"Bearer {access-token}"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://api.devbank.apiture.com/workflow/workflowDefinitions/{workflowDefinitionId}/revisions", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

Create a new workflow definition revision

POST /workflowDefinitions/{workflowDefinitionId}/revisions

Create a new immutable revision of this workflow definition. The revision is a snapshot of the content of the definition. This operation has no request body. The response body is the representation of the new revision. It is recommended to update the workflow definition's revisionLabel before calling this operation. This operation is ignored (it returns 204 No Content) if the workflow definition has not changed since the last time the revision was created. Creating a revision does not alter the entity tag of the workflow definition.

Parameters

Parameter Description
workflowDefinitionId
(path)
string (required)
The unique identifier of this workflow definition. This is an opaque string.
If-Match
(header)
string
The entity tag that was returned in the ETag response. This must match the current entity tag of the resource.
revisionPolicy
(query)
string
The revisionPolicy property determines how task definitions reference by this workflow definition are processed when creating a workflow definition revision.

If revisionPolicy is none, then the task definitions referenced by this workflow definition are copied directly to the new workflow definition revision. With this policy, when instantiating a new workflow W from the new workflow definitions revision, W will use the revisionless task definitions, unless the workflow definition already specifies an explict task definition revisionless.

If revisionPolicy is taskRevisions (the default), then the new revision will explicitly link to (and optionally create) the latest revisions of any task definitions embedded within this workflow definition, even if the workflow definition refers to revisionless task definitions. This effectively "snapshots" both the workflow definition and the task definitions in one operation. For example, if the workflow embeds task definitions A and B and C such that:

then creating new workflow definition revision with ?taskRevisions=true will first create a task definition revision for C (2018-10-30T13:30:30.300Z) and the new workflow definition revision will embed the existing revision 2018-10-10T10:10:10.10Z of A, the existing revision 2018-10-20T20:20:20.000Z of B, and the new revision 2018-10-30T13:30:30.300Z of C.
Enumerated values:
none
taskRevisions|

Try it

Fields marked with * are mandatory.

ParameterValue
MethodPOST
* URL
* API Key
* Access Token
* Accept

* workflowDefinitionId

If-Match

Response

Response Code:

Response Headers:

Response Body:

    
      Click on 'Try It' to get a response.
    
  

Example responses

201 Response

{
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "_profile": "https://api.apiture.com/schemas/workflow/v1.0.0/profile.json",
  "_links": {
    "self": {
      "href": "/workflow/workflows/0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:cancel": {
      "href": "/canceledWorkflows?workflow=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:fail": {
      "href": "/failedWorkflows?workflow=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:pause": {
      "href": "/pausedWorkflows?workflow=0399abed-fd3d-4830-a88b-30f38b8a365c"
    }
  },
  "name": "newAccountSelector",
  "domain": "https://api.apiture.com/acctApps",
  "label": "New Account Selector",
  "type": "somethingElse",
  "visibility": "hidden",
  "state": "blocked",
  "schema": {
    "category": {
      "type": "string",
      "description": "An account category",
      "enum": [
        "personal",
        "business"
      ]
    },
    "ownership": {
      "type": "string",
      "description": "How account ownership is shared",
      "enum": [
        "joint",
        "individual"
      ]
    },
    "minimumBalanceGoal": {
      "description": "The applicant's target minimum balance.",
      "type": "number",
      "example": 1000
    }
  },
  "interface": {
    "category": {
      "input": true,
      "output": false,
      "required": true
    },
    "ownership": {
      "input": true,
      "output": false,
      "required": true
    },
    "minimumBalanceGoal": {
      "input": true,
      "output": false,
      "value": 10000
    }
  },
  "values": {
    "category": "personal",
    "ownership": "joint",
    "minimumBalanceGoal": 1000
  },
  "description": "A flow for selecting a Banking Product. Once a product is selected, the application will run the workflow associated with that specific product.",
  "_embedded": {
    "tasks": {
      "personalInfoForm1": {
        "domain": "http:/api.apiture.com/domains/tasks/forms",
        "name": "userForm",
        "label": "Personal Information",
        "type": "form",
        "_links": {
          "self": {
            "href": "/workflow/tasks/46913e8b-fb7f-4f31-92bf-7b263907ed95"
          }
        }
      },
      "accountOwnershipChoice": {
        "domain": "http:/api.apiture.com/domains/tasks/prompts",
        "name": "accountOwnershipChoice",
        "type": "binaryChoice",
        "label": "Select Account Ownership Type",
        "_links": {
          "self": {
            "href": "/workflow/tasks/3768afc0-1070-4372-b965-44f01cba70cb"
          }
        }
      },
      "jointOwnerInfoForm1": {
        "domain": "http:/api.apiture.com/domains/tasks/forms",
        "name": "userForm",
        "type": "form",
        "label": "Joint Owner Personal Information",
        "_links": {
          "self": {
            "href": "/workflow/tasks/cb898688-05d1-4ecd-8684-d67da617eafa"
          }
        }
      }
    }
  },
  "dependencies": {
    "jointOwnerInfoForm1": [
      {
        "dependents": [
          "accountOwnershipChoice"
        ],
        "rule": "accountOwnershipChoice.choice == 'joint'"
      }
    ],
    "accountOwnershipChoice": [
      {
        "dependents": [
          "personalInfoForm1"
        ]
      }
    ]
  },
  "bindings": [
    {
      "source": "_.userProfile",
      "targets": [
        "userForm1.user",
        "jointUserForm1.spouse"
      ]
    }
  ]
}

Responses

StatusDescription
201 Created
OK. A new revision was created.
Schema: workflow
204 No Content
No Content. The resource has not changed since the last revision was created, and a new revision has not been created.

Response Headers

StatusDescription
201 Location string uri
The URI of the new revision. If the URI begins with / it is relative to the API root context. Else, it is a full URI starting with scheme://host
201 ETag string
The ETag response header specifies an entity tag for the revision. This entity tag may be passed as the If-Not-Match on a GET request for the revision location. (This is not the entity tag of the mutable definition resource.)

getWorkflowDefinitionRevision

Code samples

# You can also use wget
curl -X GET https://api.devbank.apiture.com/workflow/workflowDefinitions/{workflowDefinitionId}/revisions/{revisionId} \
  -H 'Accept: application/hal+json' \
  -H 'If-None-Match: string' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

GET https://api.devbank.apiture.com/workflow/workflowDefinitions/{workflowDefinitionId}/revisions/{revisionId} HTTP/1.1
Host: api.devbank.apiture.com
Accept: application/hal+json
If-None-Match: string

var headers = {
  'Accept':'application/hal+json',
  'If-None-Match':'string',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.devbank.apiture.com/workflow/workflowDefinitions/{workflowDefinitionId}/revisions/{revisionId}',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/hal+json',
  'If-None-Match':'string',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.devbank.apiture.com/workflow/workflowDefinitions/{workflowDefinitionId}/revisions/{revisionId}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/hal+json',
  'If-None-Match' => 'string',
  'API-Key' => 'API_KEY',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://api.devbank.apiture.com/workflow/workflowDefinitions/{workflowDefinitionId}/revisions/{revisionId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/hal+json',
  'If-None-Match': 'string',
  'API-Key': 'API_KEY',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.devbank.apiture.com/workflow/workflowDefinitions/{workflowDefinitionId}/revisions/{revisionId}', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.devbank.apiture.com/workflow/workflowDefinitions/{workflowDefinitionId}/revisions/{revisionId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/hal+json"},
        "If-None-Match": []string{"string"},
        "API-Key": []string{"API_KEY"},
        "Authorization": []string{"Bearer {access-token}"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.devbank.apiture.com/workflow/workflowDefinitions/{workflowDefinitionId}/revisions/{revisionId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

Fetch a representation of an immutable revision of this workflow definition

GET /workflowDefinitions/{workflowDefinitionId}/revisions/{revisionId}

Return an immutable HAL representation of this revision of this workflow definition resource. The revision may also have prev and next links to previous and/or next revisions, if they exist.

Parameters

Parameter Description
workflowDefinitionId
(path)
string (required)
The unique identifier of this workflow definition. This is an opaque string.
revisionId
(path)
string (required)
The identifier for a revision of this resource. Revision identifiers use RFC 3339 format: YYYY-MM-DDThh:mm:ss.sssZ.
If-None-Match
(header)
string
The entity tag that was returned in the ETag response. If the resource's current entity tag matches, the GET will return 304 (Not Modified) and no response body, else the resource representation will be returned.

Try it

Fields marked with * are mandatory.

ParameterValue
MethodGET
* URL
* API Key
* Access Token
* Accept

* workflowDefinitionId

* revisionId

If-None-Match

Response

Response Code:

Response Headers:

Response Body:

    
      Click on 'Try It' to get a response.
    
  

Example responses

200 Response

{
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "_profile": "https://api.apiture.com/schemas/workflow/v1.0.0/profile.json",
  "_links": {
    "self": {
      "href": "/workflow/workflows/0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:cancel": {
      "href": "/canceledWorkflows?workflow=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:fail": {
      "href": "/failedWorkflows?workflow=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:pause": {
      "href": "/pausedWorkflows?workflow=0399abed-fd3d-4830-a88b-30f38b8a365c"
    }
  },
  "name": "newAccountSelector",
  "domain": "https://api.apiture.com/acctApps",
  "label": "New Account Selector",
  "type": "somethingElse",
  "visibility": "hidden",
  "state": "blocked",
  "schema": {
    "category": {
      "type": "string",
      "description": "An account category",
      "enum": [
        "personal",
        "business"
      ]
    },
    "ownership": {
      "type": "string",
      "description": "How account ownership is shared",
      "enum": [
        "joint",
        "individual"
      ]
    },
    "minimumBalanceGoal": {
      "description": "The applicant's target minimum balance.",
      "type": "number",
      "example": 1000
    }
  },
  "interface": {
    "category": {
      "input": true,
      "output": false,
      "required": true
    },
    "ownership": {
      "input": true,
      "output": false,
      "required": true
    },
    "minimumBalanceGoal": {
      "input": true,
      "output": false,
      "value": 10000
    }
  },
  "values": {
    "category": "personal",
    "ownership": "joint",
    "minimumBalanceGoal": 1000
  },
  "description": "A flow for selecting a Banking Product. Once a product is selected, the application will run the workflow associated with that specific product.",
  "_embedded": {
    "tasks": {
      "personalInfoForm1": {
        "domain": "http:/api.apiture.com/domains/tasks/forms",
        "name": "userForm",
        "label": "Personal Information",
        "type": "form",
        "_links": {
          "self": {
            "href": "/workflow/tasks/46913e8b-fb7f-4f31-92bf-7b263907ed95"
          }
        }
      },
      "accountOwnershipChoice": {
        "domain": "http:/api.apiture.com/domains/tasks/prompts",
        "name": "accountOwnershipChoice",
        "type": "binaryChoice",
        "label": "Select Account Ownership Type",
        "_links": {
          "self": {
            "href": "/workflow/tasks/3768afc0-1070-4372-b965-44f01cba70cb"
          }
        }
      },
      "jointOwnerInfoForm1": {
        "domain": "http:/api.apiture.com/domains/tasks/forms",
        "name": "userForm",
        "type": "form",
        "label": "Joint Owner Personal Information",
        "_links": {
          "self": {
            "href": "/workflow/tasks/cb898688-05d1-4ecd-8684-d67da617eafa"
          }
        }
      }
    }
  },
  "dependencies": {
    "jointOwnerInfoForm1": [
      {
        "dependents": [
          "accountOwnershipChoice"
        ],
        "rule": "accountOwnershipChoice.choice == 'joint'"
      }
    ],
    "accountOwnershipChoice": [
      {
        "dependents": [
          "personalInfoForm1"
        ]
      }
    ]
  },
  "bindings": [
    {
      "source": "_.userProfile",
      "targets": [
        "userForm1.user",
        "jointUserForm1.spouse"
      ]
    }
  ]
}

Responses

StatusDescription
200 OK
OK
Schema: workflow
StatusDescription
304 Not Modified
Not Modified. The resource has not been modified since it was last fetched.
StatusDescription
404 Not Found
Not Found. There is no such workflow resource at the specified {workflowId} The _error field in the response will contain details about the request error.
Schema: errorResponse
StatusDescription
412 Precondition Failed
Precondition Failed. The supplied if-Match header value does not match the most recent ETag response header value. The resource has changed in the interim.
Schema: errorResponse

Response Headers

StatusDescription
200 ETag string
The ETag response header specifies an entity tag which must be provided in an If-Match request header for PUT or PATCH operations which update this workflow definition resource.

Workflow

Workflows

getWorkflows

Code samples

# You can also use wget
curl -X GET https://api.devbank.apiture.com/workflow/workflows \
  -H 'Accept: application/hal+json' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

GET https://api.devbank.apiture.com/workflow/workflows HTTP/1.1
Host: api.devbank.apiture.com
Accept: application/hal+json

var headers = {
  'Accept':'application/hal+json',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.devbank.apiture.com/workflow/workflows',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/hal+json',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.devbank.apiture.com/workflow/workflows',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/hal+json',
  'API-Key' => 'API_KEY',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://api.devbank.apiture.com/workflow/workflows',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/hal+json',
  'API-Key': 'API_KEY',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.devbank.apiture.com/workflow/workflows', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.devbank.apiture.com/workflow/workflows");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/hal+json"},
        "API-Key": []string{"API_KEY"},
        "Authorization": []string{"Bearer {access-token}"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.devbank.apiture.com/workflow/workflows", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

Return a collection of workflows

GET /workflows

Return a paginated sortable filterable searchable collection of workflows. The links in the response include pagination links.

Parameters

Parameter Description
start
(query)
integer(int64)
The zero-based index of the first workflow item to include in this page. The default 0 denotes the beginning of the collection.
limit
(query)
integer(int32)
The maximum number of workflow representations to return in this page.
sortBy
(query)
string
Optional sort criteria. See sort criteria format, such as ?sortBy=field1,-field2.
filter
(query)
string
Optional filter criteria. See filtering.
q
(query)
string
Optional search string. See searching.
state
(query)
string
Subset the accounts or external accounts collection to those whose state matches this value. Use | to separate multiple values. For example, ?state=pending will match only items whose state is pending; ?state=removed|inactive will match items whose state is removed or inactive. This is combined with an implicit and with other filters if they are used. See filtering.
Enumerated values:
pending
definition
blocked
removed
running
paused
completed
failed
canceled
name
(query)
string
Subset the accounts or external accounts collection to those with this name value. Use
domain
(query)
string
Subset the accounts or external accounts collection to those with this domain value. Use
type
(query)
string
Subset the accounts or external accounts collection to those with this exact type value. Use
label
(query)
string
Subset the accounts or external accounts collection to those with this label value. Use

Try it

Fields marked with * are mandatory.

ParameterValue
MethodGET
* URL
* API Key
* Access Token
* Accept

start

limit

sortBy

filter

q

state

name

domain

type

label

Response

Response Code:

Response Headers:

Response Body:

    
      Click on 'Try It' to get a response.
    
  

Example responses

200 Response

{
  "_profile": "https://api.apiture.com/schemas/workflow/workflows/v1.0.0/profile.json",
  "start": 10,
  "limit": 10,
  "count": 67,
  "name": "workflows",
  "_links": {
    "self": {
      "href": "/workflow/workflows?start=10&limit=10"
    },
    "first": {
      "href": "/workflow/workflows?start=0&limit=10"
    },
    "next": {
      "href": "/workflow/workflows?start=20&limit=10"
    },
    "collection": {
      "href": "/workflow/workflows"
    }
  },
  "_embedded": {
    "items": [
      {
        "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
        "_profile": "https://api.apiture.com/schemas/workflow/v1.0.0/profile.json",
        "_links": {
          "self": {
            "href": "/workflow/workflows/0399abed-fd3d-4830-a88b-30f38b8a365c"
          }
        },
        "name": "newAccountSelector",
        "domain": "https://api.apiture.com/acctApps",
        "label": "New Account Selector",
        "type": "somethingElse",
        "visibility": "hidden",
        "state": "pending",
        "values": {
          "category": "personal",
          "ownership": "joint",
          "minimumBalanceGoal": 1000
        },
        "description": "A flow for selecting a Banking Product. Once a product is selected, the application will run the workflow associated with that specific product.",
        "_embedded": {}
      }
    ]
  }
}

Responses

StatusDescription
200 OK
OK
Schema: workflows
StatusDescription
400 Bad Request
Bad Request. The request body or one or more of the query parameters was not well formed. The _error field in the response will contain details about the request error.
Schema: errorResponse
StatusDescription
422 Unprocessable Entity
Unprocessable Entity. One or more of the query parameters was well formed but otherwise invalid. The _error field in the response will contain details about the request error.
Schema: errorResponse

createWorkflow

Code samples

# You can also use wget
curl -X POST https://api.devbank.apiture.com/workflow/workflows \
  -H 'Content-Type: application/hal+json' \
  -H 'Accept: application/hal+json' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

POST https://api.devbank.apiture.com/workflow/workflows HTTP/1.1
Host: api.devbank.apiture.com
Content-Type: application/hal+json
Accept: application/hal+json

var headers = {
  'Content-Type':'application/hal+json',
  'Accept':'application/hal+json',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.devbank.apiture.com/workflow/workflows',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');
const inputBody = '{
  "_profile": "https://api.apiture.com/schemas/workflow/v1.0.0/profile.json",
  "_links": {
    "apiture:application": {
      "href": "/accountApplications/applications/2f23b9fe-532f-4e82-943e-b079ea55aebc"
    }
  },
  "name": "newAccountSelector",
  "label": "New Account Selector",
  "description": "A flow for selecting a Banking Product. Once a product is selected, the application will run the workflow associated with that specific product.",
  "_embedded": {
    "tasks": {
      "personalInfoForm1": {
        "domain": "http:/api.apiture.com/domains/tasks/forms",
        "name": "userForm",
        "label": "Personal Information",
        "type": "form",
        "_links": {
          "self": {
            "href": "/workflow/tasks/46913e8b-fb7f-4f31-92bf-7b263907ed95"
          }
        }
      },
      "accountOwnershipChoice": {
        "domain": "http:/api.apiture.com/domains/tasks/prompts",
        "name": "accountOwnershipChoice",
        "type": "binaryChoice",
        "label": "Select Account Ownership Type",
        "_links": {
          "self": {
            "href": "/workflow/tasks/3768afc0-1070-4372-b965-44f01cba70cb"
          }
        }
      },
      "jointOwnerInfoForm1": {
        "domain": "http:/api.apiture.com/domains/tasks/forms",
        "name": "userForm",
        "type": "form",
        "label": "Joint Owner Personal Information",
        "_links": {
          "self": {
            "href": "/workflow/tasks/cb898688-05d1-4ecd-8684-d67da617eafa"
          }
        }
      }
    }
  },
  "dependencies": {
    "jointOwnerInfoForm1": [
      {
        "dependents": [
          "accountOwnershipChoice"
        ],
        "rule": "accountOwnershipChoice.choice == 'joint'"
      }
    ],
    "accountOwnershipChoice": [
      {
        "dependents": [
          "personalInfoForm1"
        ]
      }
    ]
  },
  "bindings": [
    {
      "source": "_.userProfile",
      "targets": [
        "userForm1.user",
        "jointUserForm1.spouse"
      ]
    }
  ]
}';
const headers = {
  'Content-Type':'application/hal+json',
  'Accept':'application/hal+json',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.devbank.apiture.com/workflow/workflows',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/hal+json',
  'Accept' => 'application/hal+json',
  'API-Key' => 'API_KEY',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://api.devbank.apiture.com/workflow/workflows',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/hal+json',
  'Accept': 'application/hal+json',
  'API-Key': 'API_KEY',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://api.devbank.apiture.com/workflow/workflows', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.devbank.apiture.com/workflow/workflows");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/hal+json"},
        "Accept": []string{"application/hal+json"},
        "API-Key": []string{"API_KEY"},
        "Authorization": []string{"Bearer {access-token}"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://api.devbank.apiture.com/workflow/workflows", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

Create a new workflow

POST /workflows

Create a new workflow instance from a workflow definition.

The workflow is started automatically upon creation; and initial tasks (those with no input dependencies) will be started. Thus, the state of the new workflow may be running or blocked depending on the initial tasks.

Body parameter

{
  "_profile": "https://api.apiture.com/schemas/workflow/v1.0.0/profile.json",
  "_links": {
    "apiture:application": {
      "href": "/accountApplications/applications/2f23b9fe-532f-4e82-943e-b079ea55aebc"
    }
  },
  "name": "newAccountSelector",
  "label": "New Account Selector",
  "description": "A flow for selecting a Banking Product. Once a product is selected, the application will run the workflow associated with that specific product.",
  "_embedded": {
    "tasks": {
      "personalInfoForm1": {
        "domain": "http:/api.apiture.com/domains/tasks/forms",
        "name": "userForm",
        "label": "Personal Information",
        "type": "form",
        "_links": {
          "self": {
            "href": "/workflow/tasks/46913e8b-fb7f-4f31-92bf-7b263907ed95"
          }
        }
      },
      "accountOwnershipChoice": {
        "domain": "http:/api.apiture.com/domains/tasks/prompts",
        "name": "accountOwnershipChoice",
        "type": "binaryChoice",
        "label": "Select Account Ownership Type",
        "_links": {
          "self": {
            "href": "/workflow/tasks/3768afc0-1070-4372-b965-44f01cba70cb"
          }
        }
      },
      "jointOwnerInfoForm1": {
        "domain": "http:/api.apiture.com/domains/tasks/forms",
        "name": "userForm",
        "type": "form",
        "label": "Joint Owner Personal Information",
        "_links": {
          "self": {
            "href": "/workflow/tasks/cb898688-05d1-4ecd-8684-d67da617eafa"
          }
        }
      }
    }
  },
  "dependencies": {
    "jointOwnerInfoForm1": [
      {
        "dependents": [
          "accountOwnershipChoice"
        ],
        "rule": "accountOwnershipChoice.choice == 'joint'"
      }
    ],
    "accountOwnershipChoice": [
      {
        "dependents": [
          "personalInfoForm1"
        ]
      }
    ]
  },
  "bindings": [
    {
      "source": "_.userProfile",
      "targets": [
        "userForm1.user",
        "jointUserForm1.spouse"
      ]
    }
  ]
}

Parameters

Parameter Description
definition
(query)
string
A server-supplied value which identifies the workflow definition instance from which this new workflow will be created. The request body is ignored when this parameter is used.
body
(body)
createWorkflow (required)
The data necessary to create a new workflow.

Try it

Fields marked with * are mandatory.

ParameterValue
MethodPOST
* URL
* API Key
* Access Token
* Accept

definition

* body

* Content-Type

Response

Response Code:

Response Headers:

Response Body:

    
      Click on 'Try It' to get a response.
    
  

Example responses

201 Response

{
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "_profile": "https://api.apiture.com/schemas/workflow/v1.0.0/profile.json",
  "_links": {
    "self": {
      "href": "/workflow/workflows/0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:cancel": {
      "href": "/canceledWorkflows?workflow=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:fail": {
      "href": "/failedWorkflows?workflow=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:pause": {
      "href": "/pausedWorkflows?workflow=0399abed-fd3d-4830-a88b-30f38b8a365c"
    }
  },
  "name": "newAccountSelector",
  "domain": "https://api.apiture.com/acctApps",
  "label": "New Account Selector",
  "type": "somethingElse",
  "visibility": "hidden",
  "state": "blocked",
  "schema": {
    "category": {
      "type": "string",
      "description": "An account category",
      "enum": [
        "personal",
        "business"
      ]
    },
    "ownership": {
      "type": "string",
      "description": "How account ownership is shared",
      "enum": [
        "joint",
        "individual"
      ]
    },
    "minimumBalanceGoal": {
      "description": "The applicant's target minimum balance.",
      "type": "number",
      "example": 1000
    }
  },
  "interface": {
    "category": {
      "input": true,
      "output": false,
      "required": true
    },
    "ownership": {
      "input": true,
      "output": false,
      "required": true
    },
    "minimumBalanceGoal": {
      "input": true,
      "output": false,
      "value": 10000
    }
  },
  "values": {
    "category": "personal",
    "ownership": "joint",
    "minimumBalanceGoal": 1000
  },
  "description": "A flow for selecting a Banking Product. Once a product is selected, the application will run the workflow associated with that specific product.",
  "_embedded": {
    "tasks": {
      "personalInfoForm1": {
        "domain": "http:/api.apiture.com/domains/tasks/forms",
        "name": "userForm",
        "label": "Personal Information",
        "type": "form",
        "_links": {
          "self": {
            "href": "/workflow/tasks/46913e8b-fb7f-4f31-92bf-7b263907ed95"
          }
        }
      },
      "accountOwnershipChoice": {
        "domain": "http:/api.apiture.com/domains/tasks/prompts",
        "name": "accountOwnershipChoice",
        "type": "binaryChoice",
        "label": "Select Account Ownership Type",
        "_links": {
          "self": {
            "href": "/workflow/tasks/3768afc0-1070-4372-b965-44f01cba70cb"
          }
        }
      },
      "jointOwnerInfoForm1": {
        "domain": "http:/api.apiture.com/domains/tasks/forms",
        "name": "userForm",
        "type": "form",
        "label": "Joint Owner Personal Information",
        "_links": {
          "self": {
            "href": "/workflow/tasks/cb898688-05d1-4ecd-8684-d67da617eafa"
          }
        }
      }
    }
  },
  "dependencies": {
    "jointOwnerInfoForm1": [
      {
        "dependents": [
          "accountOwnershipChoice"
        ],
        "rule": "accountOwnershipChoice.choice == 'joint'"
      }
    ],
    "accountOwnershipChoice": [
      {
        "dependents": [
          "personalInfoForm1"
        ]
      }
    ]
  },
  "bindings": [
    {
      "source": "_.userProfile",
      "targets": [
        "userForm1.user",
        "jointUserForm1.spouse"
      ]
    }
  ]
}

Responses

StatusDescription
201 Created
Created
Schema: workflow
StatusDescription
400 Bad Request
Bad Request. The request body or one or more of the query parameters was not well formed. The _error field in the response will contain details about the request error.
Schema: errorResponse
StatusDescription
404 Not Found
Not Found. There is no such workflow definition resource at the specified URL. The _error field in the response will contain details about the request error.
Schema: errorResponse

Response Headers

StatusDescription
201 Location string uri
The URI of the new resource. If the URI begins with / it is relative to the API root context. Else, it is a full URI starting with scheme://host
201 ETag string
The ETag response header specifies an entity tag which must be provided in an If-Match request header for PUT or PATCH operations which update the resource.

getWorkflow

Code samples

# You can also use wget
curl -X GET https://api.devbank.apiture.com/workflow/workflows/{workflowId} \
  -H 'Accept: application/hal+json' \
  -H 'If-None-Match: string' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

GET https://api.devbank.apiture.com/workflow/workflows/{workflowId} HTTP/1.1
Host: api.devbank.apiture.com
Accept: application/hal+json
If-None-Match: string

var headers = {
  'Accept':'application/hal+json',
  'If-None-Match':'string',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.devbank.apiture.com/workflow/workflows/{workflowId}',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/hal+json',
  'If-None-Match':'string',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.devbank.apiture.com/workflow/workflows/{workflowId}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/hal+json',
  'If-None-Match' => 'string',
  'API-Key' => 'API_KEY',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://api.devbank.apiture.com/workflow/workflows/{workflowId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/hal+json',
  'If-None-Match': 'string',
  'API-Key': 'API_KEY',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.devbank.apiture.com/workflow/workflows/{workflowId}', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.devbank.apiture.com/workflow/workflows/{workflowId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/hal+json"},
        "If-None-Match": []string{"string"},
        "API-Key": []string{"API_KEY"},
        "Authorization": []string{"Bearer {access-token}"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.devbank.apiture.com/workflow/workflows/{workflowId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

Fetch a representation of this workflow

GET /workflows/{workflowId}

Return a HAL representation of this workflow resource.

Parameters

Parameter Description
workflowId
(path)
string (required)
The unique identifier of this workflow. This is an opaque string.
If-None-Match
(header)
string
The entity tag that was returned in the ETag response. If the resource's current entity tag matches, the GET will return 304 (Not Modified) and no response body, else the resource representation will be returned.
embed
(query)
string
The resources to embed within the _embedded object. This is a comma separated list which can include any of the following options:

tasks will be embedded by default even if no embed query parameters are specified. |

Try it

Fields marked with * are mandatory.

ParameterValue
MethodGET
* URL
* API Key
* Access Token
* Accept

* workflowId

If-None-Match

Response

Response Code:

Response Headers:

Response Body:

    
      Click on 'Try It' to get a response.
    
  

Example responses

200 Response

{
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "_profile": "https://api.apiture.com/schemas/workflow/v1.0.0/profile.json",
  "_links": {
    "self": {
      "href": "/workflow/workflows/0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:cancel": {
      "href": "/canceledWorkflows?workflow=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:fail": {
      "href": "/failedWorkflows?workflow=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:pause": {
      "href": "/pausedWorkflows?workflow=0399abed-fd3d-4830-a88b-30f38b8a365c"
    }
  },
  "name": "newAccountSelector",
  "domain": "https://api.apiture.com/acctApps",
  "label": "New Account Selector",
  "type": "somethingElse",
  "visibility": "hidden",
  "state": "blocked",
  "schema": {
    "category": {
      "type": "string",
      "description": "An account category",
      "enum": [
        "personal",
        "business"
      ]
    },
    "ownership": {
      "type": "string",
      "description": "How account ownership is shared",
      "enum": [
        "joint",
        "individual"
      ]
    },
    "minimumBalanceGoal": {
      "description": "The applicant's target minimum balance.",
      "type": "number",
      "example": 1000
    }
  },
  "interface": {
    "category": {
      "input": true,
      "output": false,
      "required": true
    },
    "ownership": {
      "input": true,
      "output": false,
      "required": true
    },
    "minimumBalanceGoal": {
      "input": true,
      "output": false,
      "value": 10000
    }
  },
  "values": {
    "category": "personal",
    "ownership": "joint",
    "minimumBalanceGoal": 1000
  },
  "description": "A flow for selecting a Banking Product. Once a product is selected, the application will run the workflow associated with that specific product.",
  "_embedded": {
    "tasks": {
      "personalInfoForm1": {
        "domain": "http:/api.apiture.com/domains/tasks/forms",
        "name": "userForm",
        "label": "Personal Information",
        "type": "form",
        "_links": {
          "self": {
            "href": "/workflow/tasks/46913e8b-fb7f-4f31-92bf-7b263907ed95"
          }
        }
      },
      "accountOwnershipChoice": {
        "domain": "http:/api.apiture.com/domains/tasks/prompts",
        "name": "accountOwnershipChoice",
        "type": "binaryChoice",
        "label": "Select Account Ownership Type",
        "_links": {
          "self": {
            "href": "/workflow/tasks/3768afc0-1070-4372-b965-44f01cba70cb"
          }
        }
      },
      "jointOwnerInfoForm1": {
        "domain": "http:/api.apiture.com/domains/tasks/forms",
        "name": "userForm",
        "type": "form",
        "label": "Joint Owner Personal Information",
        "_links": {
          "self": {
            "href": "/workflow/tasks/cb898688-05d1-4ecd-8684-d67da617eafa"
          }
        }
      }
    }
  },
  "dependencies": {
    "jointOwnerInfoForm1": [
      {
        "dependents": [
          "accountOwnershipChoice"
        ],
        "rule": "accountOwnershipChoice.choice == 'joint'"
      }
    ],
    "accountOwnershipChoice": [
      {
        "dependents": [
          "personalInfoForm1"
        ]
      }
    ]
  },
  "bindings": [
    {
      "source": "_.userProfile",
      "targets": [
        "userForm1.user",
        "jointUserForm1.spouse"
      ]
    }
  ]
}

Responses

StatusDescription
200 OK
OK
Schema: workflow
StatusDescription
304 Not Modified
Not Modified. The resource has not been modified since it was last fetched.
StatusDescription
404 Not Found
Not Found. There is no such workflow resource at the specified {workflowId} The _error field in the response will contain details about the request error.
Schema: errorResponse

Response Headers

StatusDescription
200 ETag string
The ETag response header specifies an entity tag which must be provided in an If-Match request header for PUT or PATCH operations which update this workflow resource.

patchWorkflow

Code samples

# You can also use wget
curl -X PATCH https://api.devbank.apiture.com/workflow/workflows/{workflowId} \
  -H 'Content-Type: application/hal+json' \
  -H 'Accept: application/hal+json' \
  -H 'If-Match: string' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

PATCH https://api.devbank.apiture.com/workflow/workflows/{workflowId} HTTP/1.1
Host: api.devbank.apiture.com
Content-Type: application/hal+json
Accept: application/hal+json
If-Match: string

var headers = {
  'Content-Type':'application/hal+json',
  'Accept':'application/hal+json',
  'If-Match':'string',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.devbank.apiture.com/workflow/workflows/{workflowId}',
  method: 'patch',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');
const inputBody = '{
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "_profile": "https://api.apiture.com/schemas/workflow/v1.0.0/profile.json",
  "_links": {
    "self": {
      "href": "/workflow/workflows/0399abed-fd3d-4830-a88b-30f38b8a365c"
    }
  },
  "name": "newAccountSelector",
  "domain": "https://api.apiture.com/acctApps",
  "label": "New Account Selector",
  "type": "somethingElse",
  "visibility": "hidden",
  "state": "running",
  "schema": {
    "category": {
      "type": "string",
      "description": "An account category",
      "enum": [
        "personal",
        "business"
      ]
    },
    "ownership": {
      "type": "string",
      "description": "How account ownership is shared",
      "enum": [
        "joint",
        "individual"
      ]
    },
    "minimumBalanceGoal": {
      "description": "The applicant's target minimum balance.",
      "type": "number",
      "example": 1000
    }
  },
  "interface": {
    "category": {
      "input": true,
      "output": false,
      "required": true
    },
    "ownership": {
      "input": true,
      "output": false,
      "required": true
    },
    "minimumBalanceGoal": {
      "input": true,
      "output": false,
      "value": 10000
    }
  },
  "values": {
    "category": "personal",
    "ownership": "joint",
    "minimumBalanceGoal": 1000
  },
  "description": "A flow for selecting a Banking Product. Once a product is selected, the application will run the workflow associated with that specific product.",
  "_embedded": {
    "tasks": {
      "personalInfoForm1": {
        "domain": "http:/api.apiture.com/domains/tasks/forms",
        "name": "userForm",
        "label": "Personal Information",
        "type": "form",
        "_links": {
          "self": {
            "href": "/workflow/tasks/46913e8b-fb7f-4f31-92bf-7b263907ed95"
          }
        }
      },
      "accountOwnershipChoice": {
        "domain": "http:/api.apiture.com/domains/tasks/prompts",
        "name": "accountOwnershipChoice",
        "type": "binaryChoice",
        "label": "Select Account Ownership Type",
        "_links": {
          "self": {
            "href": "/workflow/tasks/3768afc0-1070-4372-b965-44f01cba70cb"
          }
        }
      },
      "jointOwnerInfoForm1": {
        "domain": "http:/api.apiture.com/domains/tasks/forms",
        "name": "userForm",
        "type": "form",
        "label": "Joint Owner Personal Information",
        "_links": {
          "self": {
            "href": "/workflow/tasks/cb898688-05d1-4ecd-8684-d67da617eafa"
          }
        }
      }
    }
  },
  "dependencies": {
    "jointOwnerInfoForm1": [
      {
        "dependents": [
          "accountOwnershipChoice"
        ],
        "rule": "accountOwnershipChoice.choice == 'joint'"
      }
    ],
    "accountOwnershipChoice": [
      {
        "dependents": [
          "personalInfoForm1"
        ]
      }
    ]
  },
  "bindings": [
    {
      "source": "_.userProfile",
      "targets": [
        "userForm1.user",
        "jointUserForm1.spouse"
      ]
    }
  ]
}';
const headers = {
  'Content-Type':'application/hal+json',
  'Accept':'application/hal+json',
  'If-Match':'string',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.devbank.apiture.com/workflow/workflows/{workflowId}',
{
  method: 'PATCH',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/hal+json',
  'Accept' => 'application/hal+json',
  'If-Match' => 'string',
  'API-Key' => 'API_KEY',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.patch 'https://api.devbank.apiture.com/workflow/workflows/{workflowId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/hal+json',
  'Accept': 'application/hal+json',
  'If-Match': 'string',
  'API-Key': 'API_KEY',
  'Authorization': 'Bearer {access-token}'
}

r = requests.patch('https://api.devbank.apiture.com/workflow/workflows/{workflowId}', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.devbank.apiture.com/workflow/workflows/{workflowId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PATCH");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/hal+json"},
        "Accept": []string{"application/hal+json"},
        "If-Match": []string{"string"},
        "API-Key": []string{"API_KEY"},
        "Authorization": []string{"Bearer {access-token}"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PATCH", "https://api.devbank.apiture.com/workflow/workflows/{workflowId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

Update this workflow

PATCH /workflows/{workflowId}

Perform a partial update of this workflow. Fields which are omitted are not updated. Nested _embedded and _links are ignored if included. This operation may not change the workflow's set of tasks or the task dependencies.

NOTE This operation is deprecated. Most fields of a workflow instance are immutable or derived. Use the updateWorkflowValues (PUT /workflows/{workflowId}/values) operation to update the values in a workflow.

Body parameter

{
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "_profile": "https://api.apiture.com/schemas/workflow/v1.0.0/profile.json",
  "_links": {
    "self": {
      "href": "/workflow/workflows/0399abed-fd3d-4830-a88b-30f38b8a365c"
    }
  },
  "name": "newAccountSelector",
  "domain": "https://api.apiture.com/acctApps",
  "label": "New Account Selector",
  "type": "somethingElse",
  "visibility": "hidden",
  "state": "running",
  "schema": {
    "category": {
      "type": "string",
      "description": "An account category",
      "enum": [
        "personal",
        "business"
      ]
    },
    "ownership": {
      "type": "string",
      "description": "How account ownership is shared",
      "enum": [
        "joint",
        "individual"
      ]
    },
    "minimumBalanceGoal": {
      "description": "The applicant's target minimum balance.",
      "type": "number",
      "example": 1000
    }
  },
  "interface": {
    "category": {
      "input": true,
      "output": false,
      "required": true
    },
    "ownership": {
      "input": true,
      "output": false,
      "required": true
    },
    "minimumBalanceGoal": {
      "input": true,
      "output": false,
      "value": 10000
    }
  },
  "values": {
    "category": "personal",
    "ownership": "joint",
    "minimumBalanceGoal": 1000
  },
  "description": "A flow for selecting a Banking Product. Once a product is selected, the application will run the workflow associated with that specific product.",
  "_embedded": {
    "tasks": {
      "personalInfoForm1": {
        "domain": "http:/api.apiture.com/domains/tasks/forms",
        "name": "userForm",
        "label": "Personal Information",
        "type": "form",
        "_links": {
          "self": {
            "href": "/workflow/tasks/46913e8b-fb7f-4f31-92bf-7b263907ed95"
          }
        }
      },
      "accountOwnershipChoice": {
        "domain": "http:/api.apiture.com/domains/tasks/prompts",
        "name": "accountOwnershipChoice",
        "type": "binaryChoice",
        "label": "Select Account Ownership Type",
        "_links": {
          "self": {
            "href": "/workflow/tasks/3768afc0-1070-4372-b965-44f01cba70cb"
          }
        }
      },
      "jointOwnerInfoForm1": {
        "domain": "http:/api.apiture.com/domains/tasks/forms",
        "name": "userForm",
        "type": "form",
        "label": "Joint Owner Personal Information",
        "_links": {
          "self": {
            "href": "/workflow/tasks/cb898688-05d1-4ecd-8684-d67da617eafa"
          }
        }
      }
    }
  },
  "dependencies": {
    "jointOwnerInfoForm1": [
      {
        "dependents": [
          "accountOwnershipChoice"
        ],
        "rule": "accountOwnershipChoice.choice == 'joint'"
      }
    ],
    "accountOwnershipChoice": [
      {
        "dependents": [
          "personalInfoForm1"
        ]
      }
    ]
  },
  "bindings": [
    {
      "source": "_.userProfile",
      "targets": [
        "userForm1.user",
        "jointUserForm1.spouse"
      ]
    }
  ]
}

Parameters

Parameter Description
workflowId
(path)
string (required)
The unique identifier of this workflow. This is an opaque string.
If-Match
(header)
string
The entity tag that was returned in the ETag response. This must match the current entity tag of the resource.
body
(body)
updateWorkflow (required)

Try it

Fields marked with * are mandatory.

ParameterValue
MethodPATCH
* URL
* API Key
* Access Token
* Accept

* workflowId

If-Match

* body

* Content-Type

Response

Response Code:

Response Headers:

Response Body:

    
      Click on 'Try It' to get a response.
    
  

Example responses

200 Response

{
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "_profile": "https://api.apiture.com/schemas/workflow/v1.0.0/profile.json",
  "_links": {
    "self": {
      "href": "/workflow/workflows/0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:cancel": {
      "href": "/canceledWorkflows?workflow=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:fail": {
      "href": "/failedWorkflows?workflow=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:pause": {
      "href": "/pausedWorkflows?workflow=0399abed-fd3d-4830-a88b-30f38b8a365c"
    }
  },
  "name": "newAccountSelector",
  "domain": "https://api.apiture.com/acctApps",
  "label": "New Account Selector",
  "type": "somethingElse",
  "visibility": "hidden",
  "state": "blocked",
  "schema": {
    "category": {
      "type": "string",
      "description": "An account category",
      "enum": [
        "personal",
        "business"
      ]
    },
    "ownership": {
      "type": "string",
      "description": "How account ownership is shared",
      "enum": [
        "joint",
        "individual"
      ]
    },
    "minimumBalanceGoal": {
      "description": "The applicant's target minimum balance.",
      "type": "number",
      "example": 1000
    }
  },
  "interface": {
    "category": {
      "input": true,
      "output": false,
      "required": true
    },
    "ownership": {
      "input": true,
      "output": false,
      "required": true
    },
    "minimumBalanceGoal": {
      "input": true,
      "output": false,
      "value": 10000
    }
  },
  "values": {
    "category": "personal",
    "ownership": "joint",
    "minimumBalanceGoal": 1000
  },
  "description": "A flow for selecting a Banking Product. Once a product is selected, the application will run the workflow associated with that specific product.",
  "_embedded": {
    "tasks": {
      "personalInfoForm1": {
        "domain": "http:/api.apiture.com/domains/tasks/forms",
        "name": "userForm",
        "label": "Personal Information",
        "type": "form",
        "_links": {
          "self": {
            "href": "/workflow/tasks/46913e8b-fb7f-4f31-92bf-7b263907ed95"
          }
        }
      },
      "accountOwnershipChoice": {
        "domain": "http:/api.apiture.com/domains/tasks/prompts",
        "name": "accountOwnershipChoice",
        "type": "binaryChoice",
        "label": "Select Account Ownership Type",
        "_links": {
          "self": {
            "href": "/workflow/tasks/3768afc0-1070-4372-b965-44f01cba70cb"
          }
        }
      },
      "jointOwnerInfoForm1": {
        "domain": "http:/api.apiture.com/domains/tasks/forms",
        "name": "userForm",
        "type": "form",
        "label": "Joint Owner Personal Information",
        "_links": {
          "self": {
            "href": "/workflow/tasks/cb898688-05d1-4ecd-8684-d67da617eafa"
          }
        }
      }
    }
  },
  "dependencies": {
    "jointOwnerInfoForm1": [
      {
        "dependents": [
          "accountOwnershipChoice"
        ],
        "rule": "accountOwnershipChoice.choice == 'joint'"
      }
    ],
    "accountOwnershipChoice": [
      {
        "dependents": [
          "personalInfoForm1"
        ]
      }
    ]
  },
  "bindings": [
    {
      "source": "_.userProfile",
      "targets": [
        "userForm1.user",
        "jointUserForm1.spouse"
      ]
    }
  ]
}

Responses

StatusDescription
200 OK
OK
Schema: workflow
StatusDescription
400 Bad Request
Bad Request. The request body or one or more of the query parameters was not well formed. The _error field in the response will contain details about the request error.
Schema: errorResponse
StatusDescription
404 Not Found
Not Found. There is no such workflow resource at the specified {workflowId} The _error field in the response will contain details about the request error.
Schema: errorResponse
StatusDescription
412 Precondition Failed
Precondition Failed. The supplied if-Match header value does not match the most recent ETag response header value. The resource has changed in the interim.
Schema: errorResponse
StatusDescription
422 Unprocessable Entity
Unprocessable Entity. One or more of the query parameters was well formed but otherwise invalid. The _error field in the response will contain details about the request error.
Schema: errorResponse

Response Headers

StatusDescription
200 ETag string
The ETag response header specifies an entity tag which must be provided in an If-Match request header for PUT or PATCH operations which update this workflow resource.

deleteWorkflow

Code samples

# You can also use wget
curl -X DELETE https://api.devbank.apiture.com/workflow/workflows/{workflowId} \
  -H 'Accept: application/hal+json' \
  -H 'If-Match: string' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

DELETE https://api.devbank.apiture.com/workflow/workflows/{workflowId} HTTP/1.1
Host: api.devbank.apiture.com
Accept: application/hal+json
If-Match: string

var headers = {
  'Accept':'application/hal+json',
  'If-Match':'string',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.devbank.apiture.com/workflow/workflows/{workflowId}',
  method: 'delete',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/hal+json',
  'If-Match':'string',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.devbank.apiture.com/workflow/workflows/{workflowId}',
{
  method: 'DELETE',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/hal+json',
  'If-Match' => 'string',
  'API-Key' => 'API_KEY',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.delete 'https://api.devbank.apiture.com/workflow/workflows/{workflowId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/hal+json',
  'If-Match': 'string',
  'API-Key': 'API_KEY',
  'Authorization': 'Bearer {access-token}'
}

r = requests.delete('https://api.devbank.apiture.com/workflow/workflows/{workflowId}', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.devbank.apiture.com/workflow/workflows/{workflowId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/hal+json"},
        "If-Match": []string{"string"},
        "API-Key": []string{"API_KEY"},
        "Authorization": []string{"Bearer {access-token}"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("DELETE", "https://api.devbank.apiture.com/workflow/workflows/{workflowId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

Delete this workflow resource

DELETE /workflows/{workflowId}

Delete this workflow resource and any resources that are owned by it.

Parameters

Parameter Description
If-Match
(header)
string
The entity tag that was returned in the ETag response. This must match the current entity tag of the resource.
workflowId
(path)
string (required)
The unique identifier of this workflow. This is an opaque string.

Try it

Fields marked with * are mandatory.

ParameterValue
MethodDELETE
* URL
* API Key
* Access Token
* Accept

If-Match

* workflowId

Response

Response Code:

Response Headers:

Response Body:

    
      Click on 'Try It' to get a response.
    
  

Example responses

412 Response

{
  "_profile": "https://api.apiture.com/schemas/common/errorResponse/v1.0.0/profile.json",
  "_error": {
    "_id": "2eae46e1-575c-4d69-8a8f-0a7b0115a4b3",
    "message": "The value for deposit must be greater than 0.",
    "statusCode": 422,
    "type": "positiveNumberRequired",
    "attributes": {
      "value": -125.5
    },
    "remediation": "Provide a value which is greater than 0",
    "occurredAt": "2018-01-25T05:50:52.375Z",
    "_links": {
      "describedby": {
        "href": "https://api.apiture.com/errors/positiveNumberRequired"
      }
    },
    "_embedded": {
      "errors": []
    }
  }
}

Responses

StatusDescription
204 No Content
No Content. The resource was deleted successfully.
StatusDescription
412 Precondition Failed
Precondition Failed. The supplied if-Match header value does not match the most recent ETag response header value. The resource has changed in the interim.
Schema: errorResponse

getVisibleTasks

Code samples

# You can also use wget
curl -X GET https://api.devbank.apiture.com/workflow/workflows/{workflowId}/visibleTasks \
  -H 'Accept: application/hal+json' \
  -H 'If-None-Match: string' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

GET https://api.devbank.apiture.com/workflow/workflows/{workflowId}/visibleTasks HTTP/1.1
Host: api.devbank.apiture.com
Accept: application/hal+json
If-None-Match: string

var headers = {
  'Accept':'application/hal+json',
  'If-None-Match':'string',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.devbank.apiture.com/workflow/workflows/{workflowId}/visibleTasks',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/hal+json',
  'If-None-Match':'string',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.devbank.apiture.com/workflow/workflows/{workflowId}/visibleTasks',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/hal+json',
  'If-None-Match' => 'string',
  'API-Key' => 'API_KEY',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://api.devbank.apiture.com/workflow/workflows/{workflowId}/visibleTasks',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/hal+json',
  'If-None-Match': 'string',
  'API-Key': 'API_KEY',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.devbank.apiture.com/workflow/workflows/{workflowId}/visibleTasks', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.devbank.apiture.com/workflow/workflows/{workflowId}/visibleTasks");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/hal+json"},
        "If-None-Match": []string{"string"},
        "API-Key": []string{"API_KEY"},
        "Authorization": []string{"Bearer {access-token}"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.devbank.apiture.com/workflow/workflows/{workflowId}/visibleTasks", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

Fetch an ordered representation of the visible tasks within this workflow

GET /workflows/{workflowId}/visibleTasks

Return a collection of visible tasks for the given workflow. The result reflects the nested structure of the workflow and any tasks that are embedded inside nested workflows.

Parameters

Parameter Description
workflowId
(path)
string (required)
The unique identifier of this workflow. This is an opaque string.
If-None-Match
(header)
string
The entity tag that was returned in the ETag response. If the resource's current entity tag matches, the GET will return 304 (Not Modified) and no response body, else the resource representation will be returned.

Try it

Fields marked with * are mandatory.

ParameterValue
MethodGET
* URL
* API Key
* Access Token
* Accept

* workflowId

If-None-Match

Response

Response Code:

Response Headers:

Response Body:

    
      Click on 'Try It' to get a response.
    
  

Example responses

200 Response

{
  "_profile": "https://api.apiture.com/schemas/workflow/tasks/v1.0.0/profile.json",
  "name": "visibleTasks",
  "_embedded": {
    "items": [
      {
        "_id": "4c44d065-1f4c-4bf8-b76d-d0514cd2acff",
        "domain": "http:/api.apiture.com/domains/accountApplication",
        "name": "userInfoForm",
        "description": "User Info Form",
        "label": "User Profile Information",
        "state": "completed",
        "done": true,
        "type": "form",
        "initial": false,
        "terminal": false,
        "visibility": "visible",
        "mode": "interactive",
        "restartable": true,
        "_links": {
          "self": {
            "href": "/workflow/tasks/4c44d065-1f4c-4bf8-b76d-d0514cd2acff"
          }
        }
      },
      {
        "_id": "32e4a075-bd33-43ee-a50a-ca499bbf3c6e",
        "domain": "http:/api.apiture.com/domains/identityVerification",
        "name": "idVerification",
        "description": "Identity Verification",
        "label": "Identity Verification",
        "state": "running",
        "done": false,
        "type": "workflow",
        "initial": false,
        "terminal": false,
        "visibility": "visible",
        "mode": "interactive",
        "restartable": false,
        "_links": {
          "self": {
            "href": "/workflow/tasks/32e4a075-bd33-43ee-a50a-ca499bbf3c6e"
          }
        },
        "subTasks": [
          {
            "_id": "5ce72b5c-361f-4ba2-b0a5-92f7e18764bd",
            "domain": "http:/api.apiture.com/domains/identityVerification",
            "name": "idQuiz",
            "label": "Identity Quiz",
            "description": "Identity Quiz",
            "state": "pending",
            "done": false,
            "type": "rest",
            "initial": false,
            "terminal": false,
            "visibility": "visible",
            "mode": "interactive",
            "restartable": false,
            "_links": {
              "self": {
                "href": "/workflow/tasks/5ce72b5c-361f-4ba2-b0a5-92f7e18764bd"
              }
            }
          }
        ]
      },
      {
        "_id": "4386bdee-ffe4-47ac-b313-87fd735be9ea",
        "domain": "http:/api.apiture.com/domains/accountApplication",
        "name": "selectFundingAccount",
        "label": "Select Funding Account",
        "description": "Select Funding Account",
        "state": "blocked",
        "done": false,
        "type": "form",
        "initial": false,
        "terminal": false,
        "visibility": "visible",
        "mode": "interactive",
        "restartable": true,
        "_links": {
          "self": {
            "href": "/workflow/tasks/4386bdee-ffe4-47ac-b313-87fd735be9ea"
          }
        }
      }
    ]
  }
}

Responses

StatusDescription
200 OK
OK
Schema: visibleTasks
StatusDescription
304 Not Modified
Not Modified. The resource has not been modified since it was last fetched.
StatusDescription
404 Not Found
Not Found. There is no such workflow resource at the specified {workflowId} The _error field in the response will contain details about the request error.
Schema: errorResponse
StatusDescription
412 Precondition Failed
Precondition Failed. The supplied if-Match header value does not match the most recent ETag response header value. The resource has changed in the interim.
Schema: errorResponse

Response Headers

StatusDescription
200 ETag string
The ETag response header specifies an entity tag which must be provided in an If-Match request header for PUT or PATCH operations which update this workflow resource.

getWorkflowValues

Code samples

# You can also use wget
curl -X GET https://api.devbank.apiture.com/workflow/workflows/{workflowId}/values \
  -H 'Accept: application/hal+json' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

GET https://api.devbank.apiture.com/workflow/workflows/{workflowId}/values HTTP/1.1
Host: api.devbank.apiture.com
Accept: application/hal+json

var headers = {
  'Accept':'application/hal+json',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.devbank.apiture.com/workflow/workflows/{workflowId}/values',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/hal+json',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.devbank.apiture.com/workflow/workflows/{workflowId}/values',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/hal+json',
  'API-Key' => 'API_KEY',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://api.devbank.apiture.com/workflow/workflows/{workflowId}/values',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/hal+json',
  'API-Key': 'API_KEY',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.devbank.apiture.com/workflow/workflows/{workflowId}/values', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.devbank.apiture.com/workflow/workflows/{workflowId}/values");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/hal+json"},
        "API-Key": []string{"API_KEY"},
        "Authorization": []string{"Bearer {access-token}"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.devbank.apiture.com/workflow/workflows/{workflowId}/values", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

Fetch the runtime values associated with this workflow

GET /workflows/{workflowId}/values

Fetch the runtime values associated with this workflow. This provides convenient access to the map of values of the workflow, including the inputs and outputs. This map does not include the tasks and their values, or values from nested workflows; it only contains values defined in the workflow's schema.

Use the PUT /workflows/{workflowId}/values operation to update the values, or to update a specific value, use PUT /workflows/{workflowId}/values/{valueName}.

Parameters

Parameter Description
workflowId
(path)
string (required)
The unique identifier of this workflow. This is an opaque string.

Try it

Fields marked with * are mandatory.

ParameterValue
MethodGET
* URL
* API Key
* Access Token
* Accept

* workflowId

Response

Response Code:

Response Headers:

Response Body:

    
      Click on 'Try It' to get a response.
    
  

Example responses

200 Response

{}

Responses

StatusDescription
200 OK
OK
Schema: Inline
StatusDescription
404 Not Found
Not Found. There is no such workflow resource at the specified {workflowId} The _error field in the response will contain details about the request error.
Schema: errorResponse

Response Schema

Response Headers

StatusDescription
200 ETag string
The ETag response header specifies an entity tag which must be provided in an If-Match request header for PUT or PATCH operations which update this workflow resource.

updateWorkflowValues

Code samples

# You can also use wget
curl -X PUT https://api.devbank.apiture.com/workflow/workflows/{workflowId}/values \
  -H 'Content-Type: application/hal+json' \
  -H 'Accept: application/hal+json' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

PUT https://api.devbank.apiture.com/workflow/workflows/{workflowId}/values HTTP/1.1
Host: api.devbank.apiture.com
Content-Type: application/hal+json
Accept: application/hal+json

var headers = {
  'Content-Type':'application/hal+json',
  'Accept':'application/hal+json',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.devbank.apiture.com/workflow/workflows/{workflowId}/values',
  method: 'put',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');
const inputBody = '{}';
const headers = {
  'Content-Type':'application/hal+json',
  'Accept':'application/hal+json',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.devbank.apiture.com/workflow/workflows/{workflowId}/values',
{
  method: 'PUT',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/hal+json',
  'Accept' => 'application/hal+json',
  'API-Key' => 'API_KEY',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.put 'https://api.devbank.apiture.com/workflow/workflows/{workflowId}/values',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/hal+json',
  'Accept': 'application/hal+json',
  'API-Key': 'API_KEY',
  'Authorization': 'Bearer {access-token}'
}

r = requests.put('https://api.devbank.apiture.com/workflow/workflows/{workflowId}/values', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.devbank.apiture.com/workflow/workflows/{workflowId}/values");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PUT");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/hal+json"},
        "Accept": []string{"application/hal+json"},
        "API-Key": []string{"API_KEY"},
        "Authorization": []string{"Bearer {access-token}"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PUT", "https://api.devbank.apiture.com/workflow/workflows/{workflowId}/values", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

Update the runtime values associated with this workflow

PUT /workflows/{workflowId}/values

Update the runtime values associated with this workflow. This provides convenient access to the map of values of the workflow, inlcuding the inputs and outputs. This map does not include the tasks and their values, or values from nested workflows; it only contains values defined in the workflow's schema. This operation is idempotent. The request body must include all values obtained from the GET operation, and the values must conform to the workflow's schema.

To update a specific value, use PUT /workflows/{workflowId}/values/{valueName}.

Body parameter

{}

Parameters

Parameter Description
workflowId
(path)
string (required)
The unique identifier of this workflow. This is an opaque string.
body
(body)
attributes (required)

Try it

Fields marked with * are mandatory.

ParameterValue
MethodPUT
* URL
* API Key
* Access Token
* Accept

* workflowId

* body

* Content-Type

Response

Response Code:

Response Headers:

Response Body:

    
      Click on 'Try It' to get a response.
    
  

Example responses

200 Response

{}

Responses

StatusDescription
200 OK
OK
Schema: Inline
StatusDescription
400 Bad Request
Bad Request. The request body or one or more of the query parameters was not well formed. The _error field in the response will contain details about the request error.
Schema: errorResponse
StatusDescription
404 Not Found
Not Found. There is no such workflow resource at the specified {workflowId} The _error field in the response will contain details about the request error.
Schema: errorResponse
StatusDescription
412 Precondition Failed
Precondition Failed. The supplied if-Match header value does not match the most recent ETag response header value. The resource has changed in the interim.
Schema: errorResponse
StatusDescription
422 Unprocessable Entity
Unprocessable Entity. One or more of the query parameters was well formed but otherwise invalid. The _error field in the response will contain details about the request error.
Schema: errorResponse

Response Schema

Response Headers

StatusDescription
200 ETag string
The ETag response header specifies an entity tag which must be provided in an If-Match request header for PUT or PATCH operations which update this workflow resource.

getWorkflowValue

Code samples

# You can also use wget
curl -X GET https://api.devbank.apiture.com/workflow/workflows/{workflowId}/values/{valueName} \
  -H 'Accept: application/hal+json' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

GET https://api.devbank.apiture.com/workflow/workflows/{workflowId}/values/{valueName} HTTP/1.1
Host: api.devbank.apiture.com
Accept: application/hal+json

var headers = {
  'Accept':'application/hal+json',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.devbank.apiture.com/workflow/workflows/{workflowId}/values/{valueName}',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/hal+json',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.devbank.apiture.com/workflow/workflows/{workflowId}/values/{valueName}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/hal+json',
  'API-Key' => 'API_KEY',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://api.devbank.apiture.com/workflow/workflows/{workflowId}/values/{valueName}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/hal+json',
  'API-Key': 'API_KEY',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.devbank.apiture.com/workflow/workflows/{workflowId}/values/{valueName}', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.devbank.apiture.com/workflow/workflows/{workflowId}/values/{valueName}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/hal+json"},
        "API-Key": []string{"API_KEY"},
        "Authorization": []string{"Bearer {access-token}"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.devbank.apiture.com/workflow/workflows/{workflowId}/values/{valueName}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

Fetch a single runtime value associated with this workflow

GET /workflows/{workflowId}/values/{valueName}

Fetch a single runtime value associated with this workflow. This provides convenient access to the map of values of the workflow, including the inputs and outputs. This map does not include the tasks and their values, or values from nested workflows; it only contains values defined in the workflow's schema.

To update a specific value, use PUT /workflows/{workflowId}/values/{valueName} (operation updateWorkflowValue).

Parameters

Parameter Description
workflowId
(path)
string (required)
The unique identifier of this workflow. This is an opaque string.
valueName
(path)
string (required)
The unique identifier of a value in a workflow item. This is the name of the value in the schema. A {valueName} must be a simple identifier following the pattern letter [letter | digit | '-' | '_']*

Try it

Fields marked with * are mandatory.

ParameterValue
MethodGET
* URL
* API Key
* Access Token
* Accept

* workflowId

* valueName

Response

Response Code:

Response Headers:

Response Body:

    
      Click on 'Try It' to get a response.
    
  

Example responses

200 Response

{}

Responses

StatusDescription
200 OK
OK
Schema: Inline
StatusDescription
404 Not Found
Not Found. There is no such workflow resource at the specified {workflowId} The _error field in the response will contain details about the request error.
Schema: errorResponse

Response Schema

Response Headers

StatusDescription
200 ETag string
The ETag response header specifies an entity tag which must be provided in an If-Match request header for PUT or PATCH operations which update this workflow resource.

updateWorkflowValue

Code samples

# You can also use wget
curl -X PUT https://api.devbank.apiture.com/workflow/workflows/{workflowId}/values/{valueName} \
  -H 'Content-Type: application/hal+json' \
  -H 'Accept: application/hal+json' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

PUT https://api.devbank.apiture.com/workflow/workflows/{workflowId}/values/{valueName} HTTP/1.1
Host: api.devbank.apiture.com
Content-Type: application/hal+json
Accept: application/hal+json

var headers = {
  'Content-Type':'application/hal+json',
  'Accept':'application/hal+json',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.devbank.apiture.com/workflow/workflows/{workflowId}/values/{valueName}',
  method: 'put',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');
const inputBody = '{}';
const headers = {
  'Content-Type':'application/hal+json',
  'Accept':'application/hal+json',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.devbank.apiture.com/workflow/workflows/{workflowId}/values/{valueName}',
{
  method: 'PUT',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/hal+json',
  'Accept' => 'application/hal+json',
  'API-Key' => 'API_KEY',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.put 'https://api.devbank.apiture.com/workflow/workflows/{workflowId}/values/{valueName}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/hal+json',
  'Accept': 'application/hal+json',
  'API-Key': 'API_KEY',
  'Authorization': 'Bearer {access-token}'
}

r = requests.put('https://api.devbank.apiture.com/workflow/workflows/{workflowId}/values/{valueName}', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.devbank.apiture.com/workflow/workflows/{workflowId}/values/{valueName}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PUT");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/hal+json"},
        "Accept": []string{"application/hal+json"},
        "API-Key": []string{"API_KEY"},
        "Authorization": []string{"Bearer {access-token}"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PUT", "https://api.devbank.apiture.com/workflow/workflows/{workflowId}/values/{valueName}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

Update a single runtime value associated with this workflow

PUT /workflows/{workflowId}/values/{valueName}

Update a single runtime value associated with this workflow. This provides convenient access to individual values of the workflow as defined in the workflow's schema. The request body must conform to the workflow's schema for the named {valueName}. This operation is idempotent.

Body parameter

{}

Parameters

Parameter Description
workflowId
(path)
string (required)
The unique identifier of this workflow. This is an opaque string.
valueName
(path)
string (required)
The unique identifier of a value in a workflow item. This is the name of the value in the schema. A {valueName} must be a simple identifier following the pattern letter [letter | digit | '-' | '_']*
body
(body)
attributes (required)

Try it

Fields marked with * are mandatory.

ParameterValue
MethodPUT
* URL
* API Key
* Access Token
* Accept

* workflowId

* valueName

* body

* Content-Type

Response

Response Code:

Response Headers:

Response Body:

    
      Click on 'Try It' to get a response.
    
  

Example responses

200 Response

{}

Responses

StatusDescription
200 OK
OK
Schema: Inline

Response Schema

Response Headers

StatusDescription
200 ETag string
The ETag response header specifies an entity tag which must be provided in an If-Match request header for PUT or PATCH operations which update this workflow resource.

startWorkflow

Code samples

# You can also use wget
curl -X POST https://api.devbank.apiture.com/workflow/runningWorkflows?workflow=string \
  -H 'Accept: application/hal+json' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

POST https://api.devbank.apiture.com/workflow/runningWorkflows?workflow=string HTTP/1.1
Host: api.devbank.apiture.com
Accept: application/hal+json

var headers = {
  'Accept':'application/hal+json',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.devbank.apiture.com/workflow/runningWorkflows',
  method: 'post',
  data: '?workflow=string',
  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/hal+json',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.devbank.apiture.com/workflow/runningWorkflows?workflow=string',
{
  method: 'POST',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/hal+json',
  'API-Key' => 'API_KEY',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://api.devbank.apiture.com/workflow/runningWorkflows',
  params: {
  'workflow' => 'string'
}, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/hal+json',
  'API-Key': 'API_KEY',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://api.devbank.apiture.com/workflow/runningWorkflows', params={
  'workflow': 'string'
}, headers = headers)

print r.json()

URL obj = new URL("https://api.devbank.apiture.com/workflow/runningWorkflows?workflow=string");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/hal+json"},
        "API-Key": []string{"API_KEY"},
        "Authorization": []string{"Bearer {access-token}"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://api.devbank.apiture.com/workflow/runningWorkflows", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

Start, restart, or resume a workflow

POST /runningWorkflows

Change the state of a workflow to running. This is allowed if the state is paused. If the workflow is restartable, this is also allowed if the state is failed, completed, or canceled. There is no request body on this operation; the task is passed as a query parameter, ?workflow=. This operation is invoked from the apiture:start link on a workflow; the link is present if the operation is allowed. This operation is not allowed on a workflow definition.

Parameters

Parameter Description
workflow
(query)
string (required)
A server-supplied value which identifies the workflow instance.

Try it

Fields marked with * are mandatory.

ParameterValue
MethodPOST
* URL
* API Key
* Access Token
* Accept

* workflow

Response

Response Code:

Response Headers:

Response Body:

    
      Click on 'Try It' to get a response.
    
  

Example responses

200 Response

{
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "_profile": "https://api.apiture.com/schemas/workflow/v1.0.0/profile.json",
  "_links": {
    "self": {
      "href": "/workflow/workflows/0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:cancel": {
      "href": "/canceledWorkflows?workflow=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:fail": {
      "href": "/failedWorkflows?workflow=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:pause": {
      "href": "/pausedWorkflows?workflow=0399abed-fd3d-4830-a88b-30f38b8a365c"
    }
  },
  "name": "newAccountSelector",
  "domain": "https://api.apiture.com/acctApps",
  "label": "New Account Selector",
  "type": "somethingElse",
  "visibility": "hidden",
  "state": "blocked",
  "schema": {
    "category": {
      "type": "string",
      "description": "An account category",
      "enum": [
        "personal",
        "business"
      ]
    },
    "ownership": {
      "type": "string",
      "description": "How account ownership is shared",
      "enum": [
        "joint",
        "individual"
      ]
    },
    "minimumBalanceGoal": {
      "description": "The applicant's target minimum balance.",
      "type": "number",
      "example": 1000
    }
  },
  "interface": {
    "category": {
      "input": true,
      "output": false,
      "required": true
    },
    "ownership": {
      "input": true,
      "output": false,
      "required": true
    },
    "minimumBalanceGoal": {
      "input": true,
      "output": false,
      "value": 10000
    }
  },
  "values": {
    "category": "personal",
    "ownership": "joint",
    "minimumBalanceGoal": 1000
  },
  "description": "A flow for selecting a Banking Product. Once a product is selected, the application will run the workflow associated with that specific product.",
  "_embedded": {
    "tasks": {
      "personalInfoForm1": {
        "domain": "http:/api.apiture.com/domains/tasks/forms",
        "name": "userForm",
        "label": "Personal Information",
        "type": "form",
        "_links": {
          "self": {
            "href": "/workflow/tasks/46913e8b-fb7f-4f31-92bf-7b263907ed95"
          }
        }
      },
      "accountOwnershipChoice": {
        "domain": "http:/api.apiture.com/domains/tasks/prompts",
        "name": "accountOwnershipChoice",
        "type": "binaryChoice",
        "label": "Select Account Ownership Type",
        "_links": {
          "self": {
            "href": "/workflow/tasks/3768afc0-1070-4372-b965-44f01cba70cb"
          }
        }
      },
      "jointOwnerInfoForm1": {
        "domain": "http:/api.apiture.com/domains/tasks/forms",
        "name": "userForm",
        "type": "form",
        "label": "Joint Owner Personal Information",
        "_links": {
          "self": {
            "href": "/workflow/tasks/cb898688-05d1-4ecd-8684-d67da617eafa"
          }
        }
      }
    }
  },
  "dependencies": {
    "jointOwnerInfoForm1": [
      {
        "dependents": [
          "accountOwnershipChoice"
        ],
        "rule": "accountOwnershipChoice.choice == 'joint'"
      }
    ],
    "accountOwnershipChoice": [
      {
        "dependents": [
          "personalInfoForm1"
        ]
      }
    ]
  },
  "bindings": [
    {
      "source": "_.userProfile",
      "targets": [
        "userForm1.user",
        "jointUserForm1.spouse"
      ]
    }
  ]
}

Responses

StatusDescription
200 OK
OK
Schema: workflow

pauseWorkflow

Code samples

# You can also use wget
curl -X POST https://api.devbank.apiture.com/workflow/pausedWorkflows?workflow=string \
  -H 'Accept: application/hal+json' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

POST https://api.devbank.apiture.com/workflow/pausedWorkflows?workflow=string HTTP/1.1
Host: api.devbank.apiture.com
Accept: application/hal+json

var headers = {
  'Accept':'application/hal+json',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.devbank.apiture.com/workflow/pausedWorkflows',
  method: 'post',
  data: '?workflow=string',
  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/hal+json',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.devbank.apiture.com/workflow/pausedWorkflows?workflow=string',
{
  method: 'POST',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/hal+json',
  'API-Key' => 'API_KEY',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://api.devbank.apiture.com/workflow/pausedWorkflows',
  params: {
  'workflow' => 'string'
}, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/hal+json',
  'API-Key': 'API_KEY',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://api.devbank.apiture.com/workflow/pausedWorkflows', params={
  'workflow': 'string'
}, headers = headers)

print r.json()

URL obj = new URL("https://api.devbank.apiture.com/workflow/pausedWorkflows?workflow=string");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/hal+json"},
        "API-Key": []string{"API_KEY"},
        "Authorization": []string{"Bearer {access-token}"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://api.devbank.apiture.com/workflow/pausedWorkflows", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

Pause a workflow

POST /pausedWorkflows

Change the state of a workflow to paused. This is allowed if the state is running. There is no request body on this operation; the task is passed as a query parameter, ?workflow=. This operation is invoked from the apiture:pause link on a workflow; the link is present if the operation is allowed. This operation will also pause all running tasks in the workflow. This operation is not allowed on a workflow definition.

Parameters

Parameter Description
workflow
(query)
string (required)
A server-supplied value which identifies the workflow instance.

Try it

Fields marked with * are mandatory.

ParameterValue
MethodPOST
* URL
* API Key
* Access Token
* Accept

* workflow

Response

Response Code:

Response Headers:

Response Body:

    
      Click on 'Try It' to get a response.
    
  

Example responses

200 Response

{
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "_profile": "https://api.apiture.com/schemas/workflow/v1.0.0/profile.json",
  "_links": {
    "self": {
      "href": "/workflow/workflows/0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:cancel": {
      "href": "/canceledWorkflows?workflow=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:fail": {
      "href": "/failedWorkflows?workflow=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:pause": {
      "href": "/pausedWorkflows?workflow=0399abed-fd3d-4830-a88b-30f38b8a365c"
    }
  },
  "name": "newAccountSelector",
  "domain": "https://api.apiture.com/acctApps",
  "label": "New Account Selector",
  "type": "somethingElse",
  "visibility": "hidden",
  "state": "blocked",
  "schema": {
    "category": {
      "type": "string",
      "description": "An account category",
      "enum": [
        "personal",
        "business"
      ]
    },
    "ownership": {
      "type": "string",
      "description": "How account ownership is shared",
      "enum": [
        "joint",
        "individual"
      ]
    },
    "minimumBalanceGoal": {
      "description": "The applicant's target minimum balance.",
      "type": "number",
      "example": 1000
    }
  },
  "interface": {
    "category": {
      "input": true,
      "output": false,
      "required": true
    },
    "ownership": {
      "input": true,
      "output": false,
      "required": true
    },
    "minimumBalanceGoal": {
      "input": true,
      "output": false,
      "value": 10000
    }
  },
  "values": {
    "category": "personal",
    "ownership": "joint",
    "minimumBalanceGoal": 1000
  },
  "description": "A flow for selecting a Banking Product. Once a product is selected, the application will run the workflow associated with that specific product.",
  "_embedded": {
    "tasks": {
      "personalInfoForm1": {
        "domain": "http:/api.apiture.com/domains/tasks/forms",
        "name": "userForm",
        "label": "Personal Information",
        "type": "form",
        "_links": {
          "self": {
            "href": "/workflow/tasks/46913e8b-fb7f-4f31-92bf-7b263907ed95"
          }
        }
      },
      "accountOwnershipChoice": {
        "domain": "http:/api.apiture.com/domains/tasks/prompts",
        "name": "accountOwnershipChoice",
        "type": "binaryChoice",
        "label": "Select Account Ownership Type",
        "_links": {
          "self": {
            "href": "/workflow/tasks/3768afc0-1070-4372-b965-44f01cba70cb"
          }
        }
      },
      "jointOwnerInfoForm1": {
        "domain": "http:/api.apiture.com/domains/tasks/forms",
        "name": "userForm",
        "type": "form",
        "label": "Joint Owner Personal Information",
        "_links": {
          "self": {
            "href": "/workflow/tasks/cb898688-05d1-4ecd-8684-d67da617eafa"
          }
        }
      }
    }
  },
  "dependencies": {
    "jointOwnerInfoForm1": [
      {
        "dependents": [
          "accountOwnershipChoice"
        ],
        "rule": "accountOwnershipChoice.choice == 'joint'"
      }
    ],
    "accountOwnershipChoice": [
      {
        "dependents": [
          "personalInfoForm1"
        ]
      }
    ]
  },
  "bindings": [
    {
      "source": "_.userProfile",
      "targets": [
        "userForm1.user",
        "jointUserForm1.spouse"
      ]
    }
  ]
}

Responses

StatusDescription
200 OK
OK
Schema: workflow

cancelWorkflow

Code samples

# You can also use wget
curl -X POST https://api.devbank.apiture.com/workflow/canceledWorkflows?workflow=string \
  -H 'Accept: application/hal+json' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

POST https://api.devbank.apiture.com/workflow/canceledWorkflows?workflow=string HTTP/1.1
Host: api.devbank.apiture.com
Accept: application/hal+json

var headers = {
  'Accept':'application/hal+json',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.devbank.apiture.com/workflow/canceledWorkflows',
  method: 'post',
  data: '?workflow=string',
  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/hal+json',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.devbank.apiture.com/workflow/canceledWorkflows?workflow=string',
{
  method: 'POST',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/hal+json',
  'API-Key' => 'API_KEY',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://api.devbank.apiture.com/workflow/canceledWorkflows',
  params: {
  'workflow' => 'string'
}, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/hal+json',
  'API-Key': 'API_KEY',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://api.devbank.apiture.com/workflow/canceledWorkflows', params={
  'workflow': 'string'
}, headers = headers)

print r.json()

URL obj = new URL("https://api.devbank.apiture.com/workflow/canceledWorkflows?workflow=string");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/hal+json"},
        "API-Key": []string{"API_KEY"},
        "Authorization": []string{"Bearer {access-token}"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://api.devbank.apiture.com/workflow/canceledWorkflows", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

Cancel a workflow

POST /canceledWorkflows

Change the state of a workflow to canceled. This is allowed if the state is running or paused. There is no request body on this operation; the task is passed as a query parameter, ?workflow=. This operation is invoked from the apiture:cancel link on a workflow; the link is present if the operation is allowed. This operation will also cancel all running or paused tasks in the workflow. This operation is not allowed on a workflow definition.

Parameters

Parameter Description
workflow
(query)
string (required)
A server-supplied value which identifies the workflow instance.

Try it

Fields marked with * are mandatory.

ParameterValue
MethodPOST
* URL
* API Key
* Access Token
* Accept

* workflow

Response

Response Code:

Response Headers:

Response Body:

    
      Click on 'Try It' to get a response.
    
  

Example responses

200 Response

{
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "_profile": "https://api.apiture.com/schemas/workflow/v1.0.0/profile.json",
  "_links": {
    "self": {
      "href": "/workflow/workflows/0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:cancel": {
      "href": "/canceledWorkflows?workflow=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:fail": {
      "href": "/failedWorkflows?workflow=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:pause": {
      "href": "/pausedWorkflows?workflow=0399abed-fd3d-4830-a88b-30f38b8a365c"
    }
  },
  "name": "newAccountSelector",
  "domain": "https://api.apiture.com/acctApps",
  "label": "New Account Selector",
  "type": "somethingElse",
  "visibility": "hidden",
  "state": "blocked",
  "schema": {
    "category": {
      "type": "string",
      "description": "An account category",
      "enum": [
        "personal",
        "business"
      ]
    },
    "ownership": {
      "type": "string",
      "description": "How account ownership is shared",
      "enum": [
        "joint",
        "individual"
      ]
    },
    "minimumBalanceGoal": {
      "description": "The applicant's target minimum balance.",
      "type": "number",
      "example": 1000
    }
  },
  "interface": {
    "category": {
      "input": true,
      "output": false,
      "required": true
    },
    "ownership": {
      "input": true,
      "output": false,
      "required": true
    },
    "minimumBalanceGoal": {
      "input": true,
      "output": false,
      "value": 10000
    }
  },
  "values": {
    "category": "personal",
    "ownership": "joint",
    "minimumBalanceGoal": 1000
  },
  "description": "A flow for selecting a Banking Product. Once a product is selected, the application will run the workflow associated with that specific product.",
  "_embedded": {
    "tasks": {
      "personalInfoForm1": {
        "domain": "http:/api.apiture.com/domains/tasks/forms",
        "name": "userForm",
        "label": "Personal Information",
        "type": "form",
        "_links": {
          "self": {
            "href": "/workflow/tasks/46913e8b-fb7f-4f31-92bf-7b263907ed95"
          }
        }
      },
      "accountOwnershipChoice": {
        "domain": "http:/api.apiture.com/domains/tasks/prompts",
        "name": "accountOwnershipChoice",
        "type": "binaryChoice",
        "label": "Select Account Ownership Type",
        "_links": {
          "self": {
            "href": "/workflow/tasks/3768afc0-1070-4372-b965-44f01cba70cb"
          }
        }
      },
      "jointOwnerInfoForm1": {
        "domain": "http:/api.apiture.com/domains/tasks/forms",
        "name": "userForm",
        "type": "form",
        "label": "Joint Owner Personal Information",
        "_links": {
          "self": {
            "href": "/workflow/tasks/cb898688-05d1-4ecd-8684-d67da617eafa"
          }
        }
      }
    }
  },
  "dependencies": {
    "jointOwnerInfoForm1": [
      {
        "dependents": [
          "accountOwnershipChoice"
        ],
        "rule": "accountOwnershipChoice.choice == 'joint'"
      }
    ],
    "accountOwnershipChoice": [
      {
        "dependents": [
          "personalInfoForm1"
        ]
      }
    ]
  },
  "bindings": [
    {
      "source": "_.userProfile",
      "targets": [
        "userForm1.user",
        "jointUserForm1.spouse"
      ]
    }
  ]
}

Responses

StatusDescription
200 OK
OK
Schema: workflow

failWorkflow

Code samples

# You can also use wget
curl -X POST https://api.devbank.apiture.com/workflow/failedWorkflows?workflow=string \
  -H 'Accept: application/hal+json' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

POST https://api.devbank.apiture.com/workflow/failedWorkflows?workflow=string HTTP/1.1
Host: api.devbank.apiture.com
Accept: application/hal+json

var headers = {
  'Accept':'application/hal+json',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.devbank.apiture.com/workflow/failedWorkflows',
  method: 'post',
  data: '?workflow=string',
  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/hal+json',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.devbank.apiture.com/workflow/failedWorkflows?workflow=string',
{
  method: 'POST',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/hal+json',
  'API-Key' => 'API_KEY',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://api.devbank.apiture.com/workflow/failedWorkflows',
  params: {
  'workflow' => 'string'
}, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/hal+json',
  'API-Key': 'API_KEY',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://api.devbank.apiture.com/workflow/failedWorkflows', params={
  'workflow': 'string'
}, headers = headers)

print r.json()

URL obj = new URL("https://api.devbank.apiture.com/workflow/failedWorkflows?workflow=string");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/hal+json"},
        "API-Key": []string{"API_KEY"},
        "Authorization": []string{"Bearer {access-token}"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://api.devbank.apiture.com/workflow/failedWorkflows", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

Stop a workflow and mark it as failed

POST /failedWorkflows

Change the state of a workflow to failed. This is allowed if the state is running or paused. There is no request body on this operation; the task is passed as a query parameter, ?workflow=. This operation is invoked from the apiture:fail link on a workflow; the link is present if the operation is allowed. This operation may also affect the state of the workflow in which the task instance resides.

This operation is not allowed on a workflow definition.

Parameters

Parameter Description
workflow
(query)
string (required)
A server-supplied value which identifies the workflow instance.

Try it

Fields marked with * are mandatory.

ParameterValue
MethodPOST
* URL
* API Key
* Access Token
* Accept

* workflow

Response

Response Code:

Response Headers:

Response Body:

    
      Click on 'Try It' to get a response.
    
  

Example responses

200 Response

{
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "_profile": "https://api.apiture.com/schemas/workflow/v1.0.0/profile.json",
  "_links": {
    "self": {
      "href": "/workflow/workflows/0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:cancel": {
      "href": "/canceledWorkflows?workflow=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:fail": {
      "href": "/failedWorkflows?workflow=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:pause": {
      "href": "/pausedWorkflows?workflow=0399abed-fd3d-4830-a88b-30f38b8a365c"
    }
  },
  "name": "newAccountSelector",
  "domain": "https://api.apiture.com/acctApps",
  "label": "New Account Selector",
  "type": "somethingElse",
  "visibility": "hidden",
  "state": "blocked",
  "schema": {
    "category": {
      "type": "string",
      "description": "An account category",
      "enum": [
        "personal",
        "business"
      ]
    },
    "ownership": {
      "type": "string",
      "description": "How account ownership is shared",
      "enum": [
        "joint",
        "individual"
      ]
    },
    "minimumBalanceGoal": {
      "description": "The applicant's target minimum balance.",
      "type": "number",
      "example": 1000
    }
  },
  "interface": {
    "category": {
      "input": true,
      "output": false,
      "required": true
    },
    "ownership": {
      "input": true,
      "output": false,
      "required": true
    },
    "minimumBalanceGoal": {
      "input": true,
      "output": false,
      "value": 10000
    }
  },
  "values": {
    "category": "personal",
    "ownership": "joint",
    "minimumBalanceGoal": 1000
  },
  "description": "A flow for selecting a Banking Product. Once a product is selected, the application will run the workflow associated with that specific product.",
  "_embedded": {
    "tasks": {
      "personalInfoForm1": {
        "domain": "http:/api.apiture.com/domains/tasks/forms",
        "name": "userForm",
        "label": "Personal Information",
        "type": "form",
        "_links": {
          "self": {
            "href": "/workflow/tasks/46913e8b-fb7f-4f31-92bf-7b263907ed95"
          }
        }
      },
      "accountOwnershipChoice": {
        "domain": "http:/api.apiture.com/domains/tasks/prompts",
        "name": "accountOwnershipChoice",
        "type": "binaryChoice",
        "label": "Select Account Ownership Type",
        "_links": {
          "self": {
            "href": "/workflow/tasks/3768afc0-1070-4372-b965-44f01cba70cb"
          }
        }
      },
      "jointOwnerInfoForm1": {
        "domain": "http:/api.apiture.com/domains/tasks/forms",
        "name": "userForm",
        "type": "form",
        "label": "Joint Owner Personal Information",
        "_links": {
          "self": {
            "href": "/workflow/tasks/cb898688-05d1-4ecd-8684-d67da617eafa"
          }
        }
      }
    }
  },
  "dependencies": {
    "jointOwnerInfoForm1": [
      {
        "dependents": [
          "accountOwnershipChoice"
        ],
        "rule": "accountOwnershipChoice.choice == 'joint'"
      }
    ],
    "accountOwnershipChoice": [
      {
        "dependents": [
          "personalInfoForm1"
        ]
      }
    ]
  },
  "bindings": [
    {
      "source": "_.userProfile",
      "targets": [
        "userForm1.user",
        "jointUserForm1.spouse"
      ]
    }
  ]
}

Responses

StatusDescription
200 OK
OK
Schema: workflow

Task Definition

Workflow Task Definitions

getTaskDefinitions

Code samples

# You can also use wget
curl -X GET https://api.devbank.apiture.com/workflow/taskDefinitions \
  -H 'Accept: application/hal+json' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

GET https://api.devbank.apiture.com/workflow/taskDefinitions HTTP/1.1
Host: api.devbank.apiture.com
Accept: application/hal+json

var headers = {
  'Accept':'application/hal+json',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.devbank.apiture.com/workflow/taskDefinitions',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/hal+json',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.devbank.apiture.com/workflow/taskDefinitions',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/hal+json',
  'API-Key' => 'API_KEY',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://api.devbank.apiture.com/workflow/taskDefinitions',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/hal+json',
  'API-Key': 'API_KEY',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.devbank.apiture.com/workflow/taskDefinitions', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.devbank.apiture.com/workflow/taskDefinitions");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/hal+json"},
        "API-Key": []string{"API_KEY"},
        "Authorization": []string{"Bearer {access-token}"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.devbank.apiture.com/workflow/taskDefinitions", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

Return a collection of task definitions

GET /taskDefinitions

Return a paginated sortable filterable searchable collection of task definitions. The links in the response include pagination links.

Parameters

Parameter Description
start
(query)
integer(int64)
The zero-based index of the first task definition item to include in this page. The default 0 denotes the beginning of the collection.
limit
(query)
integer(int32)
The maximum number of task definition representations to return in this page.
sortBy
(query)
string
Optional sort criteria. See sort criteria format, such as ?sortBy=field1,-field2.
filter
(query)
string
Optional filter criteria. See filtering.
q
(query)
string
Optional search string. See searching.
state
(query)
string
Subset the accounts or external accounts collection to those whose state matches this value. Use | to separate multiple values. For example, ?state=pending will match only items whose state is pending; ?state=removed|inactive will match items whose state is removed or inactive. This is combined with an implicit and with other filters if they are used. See filtering.
Enumerated values:
pending
definition
blocked
removed
running
paused
completed
failed
canceled
name
(query)
string
Subset the accounts or external accounts collection to those with this name value. Use
domain
(query)
string
Subset the accounts or external accounts collection to those with this domain value. Use
type
(query)
string
Subset the accounts or external accounts collection to those with this exact type value. Use
label
(query)
string
Subset the accounts or external accounts collection to those with this label value. Use

Try it

Fields marked with * are mandatory.

ParameterValue
MethodGET
* URL
* API Key
* Access Token
* Accept

start

limit

sortBy

filter

q

state

name

domain

type

label

Response

Response Code:

Response Headers:

Response Body:

    
      Click on 'Try It' to get a response.
    
  

Example responses

200 Response

{
  "_profile": "https://api.apiture.com/schemas/workflow/tasks/v1.0.0/profile.json",
  "start": 10,
  "limit": 10,
  "count": 67,
  "name": "tasks",
  "_links": {
    "self": {
      "href": "/workflow/tasks?start=10&limit=10"
    },
    "first": {
      "href": "/workflow/tasks?start=0&limit=10"
    },
    "next": {
      "href": "/workflow/tasks?start=20&limit=10"
    },
    "collection": {
      "href": "/workflow/tasks"
    }
  },
  "_embedded": {
    "items": [
      {
        "_profile": "https://api.apiture.com/schemas/workflow/task/v1.0.0/profile.json",
        "domain": "http:/api.apiture.com/domains/tasks/prompts",
        "name": "accountCategoryChoice",
        "label": "Account Category Choice",
        "type": "staticChoice",
        "state": "blocked",
        "done": false,
        "mode": "interactive",
        "restartable": true,
        "description": "This workflow task presents a user choices representing a set of account types. The user selects one. (For this example, we assume that `staticChoice` is a defined task type for making a choice from a static list of values.)"
      }
    ]
  }
}

Responses

StatusDescription
200 OK
OK
Schema: tasks
StatusDescription
400 Bad Request
Bad Request. The request body or one or more of the query parameters was not well formed. The _error field in the response will contain details about the request error.
Schema: errorResponse
StatusDescription
422 Unprocessable Entity
Unprocessable Entity. One or more of the query parameters was well formed but otherwise invalid. The _error field in the response will contain details about the request error.
Schema: errorResponse

createTaskDefinition

Code samples

# You can also use wget
curl -X POST https://api.devbank.apiture.com/workflow/taskDefinitions \
  -H 'Content-Type: application/hal+json' \
  -H 'Accept: application/hal+json' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

POST https://api.devbank.apiture.com/workflow/taskDefinitions HTTP/1.1
Host: api.devbank.apiture.com
Content-Type: application/hal+json
Accept: application/hal+json

var headers = {
  'Content-Type':'application/hal+json',
  'Accept':'application/hal+json',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.devbank.apiture.com/workflow/taskDefinitions',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');
const inputBody = '{
  "_profile": "https://api.apiture.com/schemas/workflow/task/v1.0.0/profile.json",
  "name": "accountCategoryChoice",
  "label": "Account Category Choice",
  "type": "staticChoice",
  "state": "blocked",
  "mode": "interactive",
  "restartable": true,
  "description": "This workflow task presents a user choices representing a set of account types. The user selects one. (For this example, we assume that `staticChoice` is a defined task type for making a choice from a static list of values.)",
  "schema": {
    "type": "object",
    "properties": {
      "choice": {
        "description": "The `id` of the selected choice.",
        "type": "string"
      },
      "choiceLabel": {
        "description": "The `label` of the selected choice.",
        "type": "string"
      },
      "choices": {
        "description": "An array of choices which are presented to the user for selection.",
        "type": "array",
        "items": {
          "type": "object",
          "properties": {
            "id": {
              "type": "string",
              "description": "This selection's unique ID."
            },
            "label": {
              "type": "string",
              "description": "This selection's text label."
            },
            "imageUri": {
              "type": "string",
              "description": "A URI of an image to present for this choice."
            }
          }
        }
      }
    }
  },
  "interface": {
    "choice": {
      "input": true,
      "output": true
    },
    "choices": {
      "value": [
        {
          "id": "savings",
          "label": "Savings",
          "imageUri": "https://api.apiture.com/static/images/accountTypes/savings.png"
        },
        {
          "id": "checking",
          "label": "Checking",
          "imageUri": "https://api.apiture.com/static/images/accountTypes/checking.png"
        }
      ]
    },
    "label": "Choose an account type",
    "presentation": "iconAndLabel",
    "selection": "single",
    "defaultSelection": "savings"
  }
}';
const headers = {
  'Content-Type':'application/hal+json',
  'Accept':'application/hal+json',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.devbank.apiture.com/workflow/taskDefinitions',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/hal+json',
  'Accept' => 'application/hal+json',
  'API-Key' => 'API_KEY',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://api.devbank.apiture.com/workflow/taskDefinitions',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/hal+json',
  'Accept': 'application/hal+json',
  'API-Key': 'API_KEY',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://api.devbank.apiture.com/workflow/taskDefinitions', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.devbank.apiture.com/workflow/taskDefinitions");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/hal+json"},
        "Accept": []string{"application/hal+json"},
        "API-Key": []string{"API_KEY"},
        "Authorization": []string{"Bearer {access-token}"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://api.devbank.apiture.com/workflow/taskDefinitions", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

Create a new task definition

POST /taskDefinitions

Create a new task definition in the task definitions collection. The state of the new task will be set to definition.

Body parameter

{
  "_profile": "https://api.apiture.com/schemas/workflow/task/v1.0.0/profile.json",
  "name": "accountCategoryChoice",
  "label": "Account Category Choice",
  "type": "staticChoice",
  "state": "blocked",
  "mode": "interactive",
  "restartable": true,
  "description": "This workflow task presents a user choices representing a set of account types. The user selects one. (For this example, we assume that `staticChoice` is a defined task type for making a choice from a static list of values.)",
  "schema": {
    "type": "object",
    "properties": {
      "choice": {
        "description": "The `id` of the selected choice.",
        "type": "string"
      },
      "choiceLabel": {
        "description": "The `label` of the selected choice.",
        "type": "string"
      },
      "choices": {
        "description": "An array of choices which are presented to the user for selection.",
        "type": "array",
        "items": {
          "type": "object",
          "properties": {
            "id": {
              "type": "string",
              "description": "This selection's unique ID."
            },
            "label": {
              "type": "string",
              "description": "This selection's text label."
            },
            "imageUri": {
              "type": "string",
              "description": "A URI of an image to present for this choice."
            }
          }
        }
      }
    }
  },
  "interface": {
    "choice": {
      "input": true,
      "output": true
    },
    "choices": {
      "value": [
        {
          "id": "savings",
          "label": "Savings",
          "imageUri": "https://api.apiture.com/static/images/accountTypes/savings.png"
        },
        {
          "id": "checking",
          "label": "Checking",
          "imageUri": "https://api.apiture.com/static/images/accountTypes/checking.png"
        }
      ]
    },
    "label": "Choose an account type",
    "presentation": "iconAndLabel",
    "selection": "single",
    "defaultSelection": "savings"
  }
}

Parameters

Parameter Description
body
(body)
createTask (required)
The data necessary to create a new task definition.

Try it

Fields marked with * are mandatory.

ParameterValue
MethodPOST
* URL
* API Key
* Access Token
* Accept

* body

* Content-Type

Response

Response Code:

Response Headers:

Response Body:

    
      Click on 'Try It' to get a response.
    
  

Example responses

201 Response

{
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "_links": {
    "self": {
      "href": "/workflow/tasks/0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:defintion": {
      "href": "/workflow/taskDefiniitions/99ced512-9c19-4c5d-8859-9c42cd4bcc7b"
    },
    "up": {
      "href": "/workflow/workflows/64802afe-d0a4-4680-b6fb-a0de98f3d871"
    },
    "apiture:cancel": {
      "href": "/canceledTasks?task=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:fail": {
      "href": "/failedTasks?task=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:pause": {
      "href": "/pausedTasks?task=0399abed-fd3d-4830-a88b-30f38b8a365c"
    }
  }
}

Responses

StatusDescription
201 Created
Created
Schema: task
StatusDescription
400 Bad Request
Bad Request. The request body or one or more of the query parameters was not well formed. The _error field in the response will contain details about the request error.
Schema: errorResponse

Response Headers

StatusDescription
201 Location string uri
The URI of the new resource. If the URI begins with / it is relative to the API root context. Else, it is a full URI starting with scheme://host
201 ETag string
The ETag response header specifies an entity tag which must be provided in an If-Match request header for PUT or PATCH operations which update the resource.

getTaskDefinition

Code samples

# You can also use wget
curl -X GET https://api.devbank.apiture.com/workflow/taskDefinitions/{taskDefinitionId} \
  -H 'Accept: application/hal+json' \
  -H 'If-None-Match: string' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

GET https://api.devbank.apiture.com/workflow/taskDefinitions/{taskDefinitionId} HTTP/1.1
Host: api.devbank.apiture.com
Accept: application/hal+json
If-None-Match: string

var headers = {
  'Accept':'application/hal+json',
  'If-None-Match':'string',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.devbank.apiture.com/workflow/taskDefinitions/{taskDefinitionId}',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/hal+json',
  'If-None-Match':'string',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.devbank.apiture.com/workflow/taskDefinitions/{taskDefinitionId}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/hal+json',
  'If-None-Match' => 'string',
  'API-Key' => 'API_KEY',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://api.devbank.apiture.com/workflow/taskDefinitions/{taskDefinitionId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/hal+json',
  'If-None-Match': 'string',
  'API-Key': 'API_KEY',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.devbank.apiture.com/workflow/taskDefinitions/{taskDefinitionId}', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.devbank.apiture.com/workflow/taskDefinitions/{taskDefinitionId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/hal+json"},
        "If-None-Match": []string{"string"},
        "API-Key": []string{"API_KEY"},
        "Authorization": []string{"Bearer {access-token}"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.devbank.apiture.com/workflow/taskDefinitions/{taskDefinitionId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

Fetch a representation of this task definition

GET /taskDefinitions/{taskDefinitionId}

Return a HAL representation of this task definition resource. This resource is referred to as the revisionless task definition, in contrast to the explicit revision at /taskDefinitions/{taskDefinitionId}/revisions/{revisionId}.

Parameters

Parameter Description
taskDefinitionId
(path)
string (required)
The unique identifier of this task definition. This is an opaque string.
If-None-Match
(header)
string
The entity tag that was returned in the ETag response. If the resource's current entity tag matches, the GET will return 304 (Not Modified) and no response body, else the resource representation will be returned.

Try it

Fields marked with * are mandatory.

ParameterValue
MethodGET
* URL
* API Key
* Access Token
* Accept

* taskDefinitionId

If-None-Match

Response

Response Code:

Response Headers:

Response Body:

    
      Click on 'Try It' to get a response.
    
  

Example responses

200 Response

{
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "_links": {
    "self": {
      "href": "/workflow/tasks/0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:defintion": {
      "href": "/workflow/taskDefiniitions/99ced512-9c19-4c5d-8859-9c42cd4bcc7b"
    },
    "up": {
      "href": "/workflow/workflows/64802afe-d0a4-4680-b6fb-a0de98f3d871"
    },
    "apiture:cancel": {
      "href": "/canceledTasks?task=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:fail": {
      "href": "/failedTasks?task=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:pause": {
      "href": "/pausedTasks?task=0399abed-fd3d-4830-a88b-30f38b8a365c"
    }
  }
}

Responses

StatusDescription
200 OK
OK
Schema: task
StatusDescription
304 Not Modified
Not Modified. The resource has not been modified since it was last fetched.
StatusDescription
404 Not Found
Not Found. There is no such task definition resource at the specified {taskDefinitionId} The _error field in the response will contain details about the request error.
Schema: errorResponse

Response Headers

StatusDescription
200 ETag string
The ETag response header specifies an entity tag which must be provided in an If-Match request header for PUT or PATCH operations which update this task definition resource.

updateTaskDefinition

Code samples

# You can also use wget
curl -X PUT https://api.devbank.apiture.com/workflow/taskDefinitions/{taskDefinitionId} \
  -H 'Content-Type: application/hal+json' \
  -H 'Accept: application/hal+json' \
  -H 'If-Match: string' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

PUT https://api.devbank.apiture.com/workflow/taskDefinitions/{taskDefinitionId} HTTP/1.1
Host: api.devbank.apiture.com
Content-Type: application/hal+json
Accept: application/hal+json
If-Match: string

var headers = {
  'Content-Type':'application/hal+json',
  'Accept':'application/hal+json',
  'If-Match':'string',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.devbank.apiture.com/workflow/taskDefinitions/{taskDefinitionId}',
  method: 'put',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');
const inputBody = '{
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "_links": {
    "self": {
      "href": "/workflow/tasks/0399abed-fd3d-4830-a88b-30f38b8a365c"
    }
  }
}';
const headers = {
  'Content-Type':'application/hal+json',
  'Accept':'application/hal+json',
  'If-Match':'string',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.devbank.apiture.com/workflow/taskDefinitions/{taskDefinitionId}',
{
  method: 'PUT',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/hal+json',
  'Accept' => 'application/hal+json',
  'If-Match' => 'string',
  'API-Key' => 'API_KEY',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.put 'https://api.devbank.apiture.com/workflow/taskDefinitions/{taskDefinitionId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/hal+json',
  'Accept': 'application/hal+json',
  'If-Match': 'string',
  'API-Key': 'API_KEY',
  'Authorization': 'Bearer {access-token}'
}

r = requests.put('https://api.devbank.apiture.com/workflow/taskDefinitions/{taskDefinitionId}', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.devbank.apiture.com/workflow/taskDefinitions/{taskDefinitionId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PUT");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/hal+json"},
        "Accept": []string{"application/hal+json"},
        "If-Match": []string{"string"},
        "API-Key": []string{"API_KEY"},
        "Authorization": []string{"Bearer {access-token}"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PUT", "https://api.devbank.apiture.com/workflow/taskDefinitions/{taskDefinitionId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

Update this task definition

PUT /taskDefinitions/{taskDefinitionId}

Perform a complete replacement of this task definition.

Body parameter

{
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "_links": {
    "self": {
      "href": "/workflow/tasks/0399abed-fd3d-4830-a88b-30f38b8a365c"
    }
  }
}

Parameters

Parameter Description
taskDefinitionId
(path)
string (required)
The unique identifier of this task definition. This is an opaque string.
If-Match
(header)
string
The entity tag that was returned in the ETag response. This must match the current entity tag of the resource.
body
(body)
updateTask (required)

Try it

Fields marked with * are mandatory.

ParameterValue
MethodPUT
* URL
* API Key
* Access Token
* Accept

* taskDefinitionId

If-Match

* body

* Content-Type

Response

Response Code:

Response Headers:

Response Body:

    
      Click on 'Try It' to get a response.
    
  

Example responses

200 Response

{
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "_links": {
    "self": {
      "href": "/workflow/tasks/0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:defintion": {
      "href": "/workflow/taskDefiniitions/99ced512-9c19-4c5d-8859-9c42cd4bcc7b"
    },
    "up": {
      "href": "/workflow/workflows/64802afe-d0a4-4680-b6fb-a0de98f3d871"
    },
    "apiture:cancel": {
      "href": "/canceledTasks?task=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:fail": {
      "href": "/failedTasks?task=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:pause": {
      "href": "/pausedTasks?task=0399abed-fd3d-4830-a88b-30f38b8a365c"
    }
  }
}

Responses

StatusDescription
200 OK
OK
Schema: task
StatusDescription
400 Bad Request
Bad Request. The request body or one or more of the query parameters was not well formed. The _error field in the response will contain details about the request error.
Schema: errorResponse
StatusDescription
404 Not Found
Not Found. There is no such task definition resource at the specified {taskDefinitionId} The _error field in the response will contain details about the request error.
Schema: errorResponse
StatusDescription
412 Precondition Failed
Precondition Failed. The supplied if-Match header value does not match the most recent ETag response header value. The resource has changed in the interim.
Schema: errorResponse
StatusDescription
422 Unprocessable Entity
Unprocessable Entity. One or more of the query parameters was well formed but otherwise invalid. The _error field in the response will contain details about the request error.
Schema: errorResponse

Response Headers

StatusDescription
200 ETag string
The ETag response header specifies an entity tag which must be provided in an If-Match request header for PUT or PATCH operations which update this task definition resource.

patchTaskDefinition

Code samples

# You can also use wget
curl -X PATCH https://api.devbank.apiture.com/workflow/taskDefinitions/{taskDefinitionId} \
  -H 'Content-Type: application/hal+json' \
  -H 'Accept: application/hal+json' \
  -H 'If-Match: string' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

PATCH https://api.devbank.apiture.com/workflow/taskDefinitions/{taskDefinitionId} HTTP/1.1
Host: api.devbank.apiture.com
Content-Type: application/hal+json
Accept: application/hal+json
If-Match: string

var headers = {
  'Content-Type':'application/hal+json',
  'Accept':'application/hal+json',
  'If-Match':'string',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.devbank.apiture.com/workflow/taskDefinitions/{taskDefinitionId}',
  method: 'patch',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');
const inputBody = '{
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "_links": {
    "self": {
      "href": "/workflow/tasks/0399abed-fd3d-4830-a88b-30f38b8a365c"
    }
  }
}';
const headers = {
  'Content-Type':'application/hal+json',
  'Accept':'application/hal+json',
  'If-Match':'string',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.devbank.apiture.com/workflow/taskDefinitions/{taskDefinitionId}',
{
  method: 'PATCH',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/hal+json',
  'Accept' => 'application/hal+json',
  'If-Match' => 'string',
  'API-Key' => 'API_KEY',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.patch 'https://api.devbank.apiture.com/workflow/taskDefinitions/{taskDefinitionId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/hal+json',
  'Accept': 'application/hal+json',
  'If-Match': 'string',
  'API-Key': 'API_KEY',
  'Authorization': 'Bearer {access-token}'
}

r = requests.patch('https://api.devbank.apiture.com/workflow/taskDefinitions/{taskDefinitionId}', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.devbank.apiture.com/workflow/taskDefinitions/{taskDefinitionId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PATCH");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/hal+json"},
        "Accept": []string{"application/hal+json"},
        "If-Match": []string{"string"},
        "API-Key": []string{"API_KEY"},
        "Authorization": []string{"Bearer {access-token}"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PATCH", "https://api.devbank.apiture.com/workflow/taskDefinitions/{taskDefinitionId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

Update this task definition

PATCH /taskDefinitions/{taskDefinitionId}

Perform a partial update of this task definition. Fields which are omitted are not updated. Nested _embedded and _links are ignored if included.

Body parameter

{
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "_links": {
    "self": {
      "href": "/workflow/tasks/0399abed-fd3d-4830-a88b-30f38b8a365c"
    }
  }
}

Parameters

Parameter Description
taskDefinitionId
(path)
string (required)
The unique identifier of this task definition. This is an opaque string.
If-Match
(header)
string
The entity tag that was returned in the ETag response. This must match the current entity tag of the resource.
body
(body)
updateTask (required)

Try it

Fields marked with * are mandatory.

ParameterValue
MethodPATCH
* URL
* API Key
* Access Token
* Accept

* taskDefinitionId

If-Match

* body

* Content-Type

Response

Response Code:

Response Headers:

Response Body:

    
      Click on 'Try It' to get a response.
    
  

Example responses

200 Response

{
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "_links": {
    "self": {
      "href": "/workflow/tasks/0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:defintion": {
      "href": "/workflow/taskDefiniitions/99ced512-9c19-4c5d-8859-9c42cd4bcc7b"
    },
    "up": {
      "href": "/workflow/workflows/64802afe-d0a4-4680-b6fb-a0de98f3d871"
    },
    "apiture:cancel": {
      "href": "/canceledTasks?task=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:fail": {
      "href": "/failedTasks?task=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:pause": {
      "href": "/pausedTasks?task=0399abed-fd3d-4830-a88b-30f38b8a365c"
    }
  }
}

Responses

StatusDescription
200 OK
OK
Schema: task
StatusDescription
400 Bad Request
Bad Request. The request body or one or more of the query parameters was not well formed. The _error field in the response will contain details about the request error.
Schema: errorResponse
StatusDescription
404 Not Found
Not Found. There is no such task definition resource at the specified {taskDefinitionId} The _error field in the response will contain details about the request error.
Schema: errorResponse
StatusDescription
412 Precondition Failed
Precondition Failed. The supplied if-Match header value does not match the most recent ETag response header value. The resource has changed in the interim.
Schema: errorResponse
StatusDescription
422 Unprocessable Entity
Unprocessable Entity. One or more of the query parameters was well formed but otherwise invalid. The _error field in the response will contain details about the request error.
Schema: errorResponse

Response Headers

StatusDescription
200 ETag string
The ETag response header specifies an entity tag which must be provided in an If-Match request header for PUT or PATCH operations which update this task definition resource.

deleteTaskDefinition

Code samples

# You can also use wget
curl -X DELETE https://api.devbank.apiture.com/workflow/taskDefinitions/{taskDefinitionId} \
  -H 'Accept: application/hal+json' \
  -H 'If-Match: string' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

DELETE https://api.devbank.apiture.com/workflow/taskDefinitions/{taskDefinitionId} HTTP/1.1
Host: api.devbank.apiture.com
Accept: application/hal+json
If-Match: string

var headers = {
  'Accept':'application/hal+json',
  'If-Match':'string',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.devbank.apiture.com/workflow/taskDefinitions/{taskDefinitionId}',
  method: 'delete',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/hal+json',
  'If-Match':'string',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.devbank.apiture.com/workflow/taskDefinitions/{taskDefinitionId}',
{
  method: 'DELETE',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/hal+json',
  'If-Match' => 'string',
  'API-Key' => 'API_KEY',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.delete 'https://api.devbank.apiture.com/workflow/taskDefinitions/{taskDefinitionId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/hal+json',
  'If-Match': 'string',
  'API-Key': 'API_KEY',
  'Authorization': 'Bearer {access-token}'
}

r = requests.delete('https://api.devbank.apiture.com/workflow/taskDefinitions/{taskDefinitionId}', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.devbank.apiture.com/workflow/taskDefinitions/{taskDefinitionId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/hal+json"},
        "If-Match": []string{"string"},
        "API-Key": []string{"API_KEY"},
        "Authorization": []string{"Bearer {access-token}"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("DELETE", "https://api.devbank.apiture.com/workflow/taskDefinitions/{taskDefinitionId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

Delete this task definition resource

DELETE /taskDefinitions/{taskDefinitionId}

Delete this task definition resource and any resources that are owned by it. The task definition may not be deleted if it or any of its revisions are in use by any tasks or workflows. Deleting a task definition also deletes all revisions.

Parameters

Parameter Description
If-Match
(header)
string
The entity tag that was returned in the ETag response. This must match the current entity tag of the resource.
taskDefinitionId
(path)
string (required)
The unique identifier of this task definition. This is an opaque string.

Try it

Fields marked with * are mandatory.

ParameterValue
MethodDELETE
* URL
* API Key
* Access Token
* Accept

If-Match

* taskDefinitionId

Response

Response Code:

Response Headers:

Response Body:

    
      Click on 'Try It' to get a response.
    
  

Example responses

400 Response

{
  "_profile": "https://api.apiture.com/schemas/common/errorResponse/v1.0.0/profile.json",
  "_error": {
    "_id": "2eae46e1-575c-4d69-8a8f-0a7b0115a4b3",
    "message": "The value for deposit must be greater than 0.",
    "statusCode": 422,
    "type": "positiveNumberRequired",
    "attributes": {
      "value": -125.5
    },
    "remediation": "Provide a value which is greater than 0",
    "occurredAt": "2018-01-25T05:50:52.375Z",
    "_links": {
      "describedby": {
        "href": "https://api.apiture.com/errors/positiveNumberRequired"
      }
    },
    "_embedded": {
      "errors": []
    }
  }
}

Responses

StatusDescription
204 No Content
No Content. The resource was deleted successfully.
StatusDescription
400 Bad Request
Bad Request. The request body or one or more of the query parameters was not well formed. The _error field in the response will contain details about the request error.
Schema: errorResponse
StatusDescription
412 Precondition Failed
Precondition Failed. The supplied if-Match header value does not match the most recent ETag response header value. The resource has changed in the interim.
Schema: errorResponse

getTaskDefinitionRevisions

Code samples

# You can also use wget
curl -X GET https://api.devbank.apiture.com/workflow/taskDefinitions/{taskDefinitionId}/revisions \
  -H 'Accept: application/hal+json' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

GET https://api.devbank.apiture.com/workflow/taskDefinitions/{taskDefinitionId}/revisions HTTP/1.1
Host: api.devbank.apiture.com
Accept: application/hal+json

var headers = {
  'Accept':'application/hal+json',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.devbank.apiture.com/workflow/taskDefinitions/{taskDefinitionId}/revisions',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/hal+json',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.devbank.apiture.com/workflow/taskDefinitions/{taskDefinitionId}/revisions',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/hal+json',
  'API-Key' => 'API_KEY',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://api.devbank.apiture.com/workflow/taskDefinitions/{taskDefinitionId}/revisions',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/hal+json',
  'API-Key': 'API_KEY',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.devbank.apiture.com/workflow/taskDefinitions/{taskDefinitionId}/revisions', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.devbank.apiture.com/workflow/taskDefinitions/{taskDefinitionId}/revisions");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/hal+json"},
        "API-Key": []string{"API_KEY"},
        "Authorization": []string{"Bearer {access-token}"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.devbank.apiture.com/workflow/taskDefinitions/{taskDefinitionId}/revisions", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

Return a collection of workflow task definition revisions

GET /taskDefinitions/{taskDefinitionId}/revisions

Return a paginated sortable filterable searchable collection of workflow task revisions. The links in the response include pagination links. The revisions collection shows the modification history of the workflow task defintion. Revisions are immutable.

Parameters

Parameter Description
taskDefinitionId
(path)
string (required)
The unique identifier of this task definition. This is an opaque string.
start
(query)
integer(int64)
The zero-based index of the first workflow task revision item to include in this page. The default 0 denotes the beginning of the collection.
limit
(query)
integer(int32)
The maximum number of workflow task representations to return in this page.
sortBy
(query)
string
Optional sort criteria. Revision collections are sorted by default in reverse chronological order (most recent revision first). See sort criteria format, such as ?sortBy=field1,-field2.
filter
(query)
string
Optional filter criteria. See filtering.
q
(query)
string
Optional search string. See searching.

Try it

Fields marked with * are mandatory.

ParameterValue
MethodGET
* URL
* API Key
* Access Token
* Accept

* taskDefinitionId

start

limit

sortBy

filter

q

Response

Response Code:

Response Headers:

Response Body:

    
      Click on 'Try It' to get a response.
    
  

Example responses

200 Response

{
  "_profile": "https://api.apiture.com/schemas/workflow/tasks/v1.0.0/profile.json",
  "start": 10,
  "limit": 10,
  "count": 67,
  "name": "tasks",
  "_links": {
    "self": {
      "href": "/workflow/tasks?start=10&limit=10"
    },
    "first": {
      "href": "/workflow/tasks?start=0&limit=10"
    },
    "next": {
      "href": "/workflow/tasks?start=20&limit=10"
    },
    "collection": {
      "href": "/workflow/tasks"
    }
  },
  "_embedded": {
    "items": [
      {
        "_profile": "https://api.apiture.com/schemas/workflow/task/v1.0.0/profile.json",
        "domain": "http:/api.apiture.com/domains/tasks/prompts",
        "name": "accountCategoryChoice",
        "label": "Account Category Choice",
        "type": "staticChoice",
        "state": "blocked",
        "done": false,
        "mode": "interactive",
        "restartable": true,
        "description": "This workflow task presents a user choices representing a set of account types. The user selects one. (For this example, we assume that `staticChoice` is a defined task type for making a choice from a static list of values.)"
      }
    ]
  }
}

Responses

StatusDescription
200 OK
OK
Schema: tasks
StatusDescription
400 Bad Request
Bad Request. The request body or one or more of the query parameters was not well formed. The _error field in the response will contain details about the request error.
Schema: errorResponse
StatusDescription
422 Unprocessable Entity
Unprocessable Entity. One or more of the query parameters was well formed but otherwise invalid. The _error field in the response will contain details about the request error.
Schema: errorResponse

createTaskDefinitionRevision

Code samples

# You can also use wget
curl -X POST https://api.devbank.apiture.com/workflow/taskDefinitions/{taskDefinitionId}/revisions \
  -H 'Accept: application/hal+json' \
  -H 'If-Match: string' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

POST https://api.devbank.apiture.com/workflow/taskDefinitions/{taskDefinitionId}/revisions HTTP/1.1
Host: api.devbank.apiture.com
Accept: application/hal+json
If-Match: string

var headers = {
  'Accept':'application/hal+json',
  'If-Match':'string',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.devbank.apiture.com/workflow/taskDefinitions/{taskDefinitionId}/revisions',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/hal+json',
  'If-Match':'string',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.devbank.apiture.com/workflow/taskDefinitions/{taskDefinitionId}/revisions',
{
  method: 'POST',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/hal+json',
  'If-Match' => 'string',
  'API-Key' => 'API_KEY',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://api.devbank.apiture.com/workflow/taskDefinitions/{taskDefinitionId}/revisions',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/hal+json',
  'If-Match': 'string',
  'API-Key': 'API_KEY',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://api.devbank.apiture.com/workflow/taskDefinitions/{taskDefinitionId}/revisions', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.devbank.apiture.com/workflow/taskDefinitions/{taskDefinitionId}/revisions");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/hal+json"},
        "If-Match": []string{"string"},
        "API-Key": []string{"API_KEY"},
        "Authorization": []string{"Bearer {access-token}"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://api.devbank.apiture.com/workflow/taskDefinitions/{taskDefinitionId}/revisions", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

Create a new task definition revision

POST /taskDefinitions/{taskDefinitionId}/revisions

Create a new immutable revision of this workflow task definition. The revision is a snapshot of the content of the definition. This operation has no request body. The response body is the representation of the new revision. This operation is ignored if the task definition has not changed since the last time the revision was created. Creating a revision does not alter the entity tag of the task definition.

Parameters

Parameter Description
taskDefinitionId
(path)
string (required)
The unique identifier of this task definition. This is an opaque string.
If-Match
(header)
string
The entity tag that was returned in the ETag response. This must match the current entity tag of the resource.

Try it

Fields marked with * are mandatory.

ParameterValue
MethodPOST
* URL
* API Key
* Access Token
* Accept

* taskDefinitionId

If-Match

Response

Response Code:

Response Headers:

Response Body:

    
      Click on 'Try It' to get a response.
    
  

Example responses

201 Response

{
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "_links": {
    "self": {
      "href": "/workflow/tasks/0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:defintion": {
      "href": "/workflow/taskDefiniitions/99ced512-9c19-4c5d-8859-9c42cd4bcc7b"
    },
    "up": {
      "href": "/workflow/workflows/64802afe-d0a4-4680-b6fb-a0de98f3d871"
    },
    "apiture:cancel": {
      "href": "/canceledTasks?task=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:fail": {
      "href": "/failedTasks?task=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:pause": {
      "href": "/pausedTasks?task=0399abed-fd3d-4830-a88b-30f38b8a365c"
    }
  }
}

Responses

StatusDescription
201 Created
OK. A new revision was created.
Schema: task
204 No Content
No Content. The resource has not changed since the last revision was created, and a new revision has not been created.

Response Headers

StatusDescription
201 Location string uri
The URI of the new revision. If the URI begins with / it is relative to the API root context. Else, it is a full URI starting with scheme://host
201 ETag string
The ETag response header specifies an entity tag for the revision. This entity tag may be passed as the If-Not-Match on a GET request for the revision location. (This is not the entity tag of the mutable definition resource.)

getTaskDefinitionRevision

Code samples

# You can also use wget
curl -X GET https://api.devbank.apiture.com/workflow/taskDefinitions/{taskDefinitionId}/revisions/{revisionId} \
  -H 'Accept: application/hal+json' \
  -H 'If-None-Match: string' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

GET https://api.devbank.apiture.com/workflow/taskDefinitions/{taskDefinitionId}/revisions/{revisionId} HTTP/1.1
Host: api.devbank.apiture.com
Accept: application/hal+json
If-None-Match: string

var headers = {
  'Accept':'application/hal+json',
  'If-None-Match':'string',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.devbank.apiture.com/workflow/taskDefinitions/{taskDefinitionId}/revisions/{revisionId}',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/hal+json',
  'If-None-Match':'string',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.devbank.apiture.com/workflow/taskDefinitions/{taskDefinitionId}/revisions/{revisionId}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/hal+json',
  'If-None-Match' => 'string',
  'API-Key' => 'API_KEY',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://api.devbank.apiture.com/workflow/taskDefinitions/{taskDefinitionId}/revisions/{revisionId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/hal+json',
  'If-None-Match': 'string',
  'API-Key': 'API_KEY',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.devbank.apiture.com/workflow/taskDefinitions/{taskDefinitionId}/revisions/{revisionId}', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.devbank.apiture.com/workflow/taskDefinitions/{taskDefinitionId}/revisions/{revisionId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/hal+json"},
        "If-None-Match": []string{"string"},
        "API-Key": []string{"API_KEY"},
        "Authorization": []string{"Bearer {access-token}"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.devbank.apiture.com/workflow/taskDefinitions/{taskDefinitionId}/revisions/{revisionId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

Fetch a representation of an immutable revision of this workflow task

GET /taskDefinitions/{taskDefinitionId}/revisions/{revisionId}

Return an immutable HAL representation of this revision of this workflow task resource. The revision may also have prev and next links to previous and/or next revisions, if they exist.

Parameters

Parameter Description
taskDefinitionId
(path)
string (required)
The unique identifier of this task definition. This is an opaque string.
revisionId
(path)
string (required)
The identifier for a revision of this resource. Revision identifiers use RFC 3339 format: YYYY-MM-DDThh:mm:ss.sssZ.
If-None-Match
(header)
string
The entity tag that was returned in the ETag response. If the resource's current entity tag matches, the GET will return 304 (Not Modified) and no response body, else the resource representation will be returned.

Try it

Fields marked with * are mandatory.

ParameterValue
MethodGET
* URL
* API Key
* Access Token
* Accept

* taskDefinitionId

* revisionId

If-None-Match

Response

Response Code:

Response Headers:

Response Body:

    
      Click on 'Try It' to get a response.
    
  

Example responses

200 Response

{
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "_links": {
    "self": {
      "href": "/workflow/tasks/0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:defintion": {
      "href": "/workflow/taskDefiniitions/99ced512-9c19-4c5d-8859-9c42cd4bcc7b"
    },
    "up": {
      "href": "/workflow/workflows/64802afe-d0a4-4680-b6fb-a0de98f3d871"
    },
    "apiture:cancel": {
      "href": "/canceledTasks?task=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:fail": {
      "href": "/failedTasks?task=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:pause": {
      "href": "/pausedTasks?task=0399abed-fd3d-4830-a88b-30f38b8a365c"
    }
  }
}

Responses

StatusDescription
200 OK
OK
Schema: task
StatusDescription
304 Not Modified
Not Modified. The resource has not been modified since it was last fetched.
StatusDescription
404 Not Found
Not Found. There is no such task resource at the specified {taskId} The _error field in the response will contain details about the request error.
Schema: errorResponse
StatusDescription
412 Precondition Failed
Precondition Failed. The supplied if-Match header value does not match the most recent ETag response header value. The resource has changed in the interim.
Schema: errorResponse

Response Headers

StatusDescription
200 ETag string
The ETag response header specifies an entity tag which must be provided in an If-Match request header for PUT or PATCH operations which update this workflow task resource.

Task

Workflow Tasks

getTasks

Code samples

# You can also use wget
curl -X GET https://api.devbank.apiture.com/workflow/tasks \
  -H 'Accept: application/hal+json' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

GET https://api.devbank.apiture.com/workflow/tasks HTTP/1.1
Host: api.devbank.apiture.com
Accept: application/hal+json

var headers = {
  'Accept':'application/hal+json',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.devbank.apiture.com/workflow/tasks',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/hal+json',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.devbank.apiture.com/workflow/tasks',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/hal+json',
  'API-Key' => 'API_KEY',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://api.devbank.apiture.com/workflow/tasks',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/hal+json',
  'API-Key': 'API_KEY',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.devbank.apiture.com/workflow/tasks', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.devbank.apiture.com/workflow/tasks");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/hal+json"},
        "API-Key": []string{"API_KEY"},
        "Authorization": []string{"Bearer {access-token}"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.devbank.apiture.com/workflow/tasks", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

Return a collection of tasks

GET /tasks

Return a paginated sortable filterable searchable collection of tasks. The links in the response include pagination links.

Parameters

Parameter Description
start
(query)
integer(int64)
The zero-based index of the first task item to include in this page. The default 0 denotes the beginning of the collection.
limit
(query)
integer(int32)
The maximum number of task representations to return in this page.
sortBy
(query)
string
Optional sort criteria. See sort criteria format, such as ?sortBy=field1,-field2.
filter
(query)
string
Optional filter criteria. See filtering.
q
(query)
string
Optional search string. See searching.
state
(query)
string
Subset the accounts or external accounts collection to those whose state matches this value. Use | to separate multiple values. For example, ?state=pending will match only items whose state is pending; ?state=removed|inactive will match items whose state is removed or inactive. This is combined with an implicit and with other filters if they are used. See filtering.
Enumerated values:
pending
definition
blocked
removed
running
paused
completed
failed
canceled
name
(query)
string
Subset the accounts or external accounts collection to those with this name value. Use
domain
(query)
string
Subset the accounts or external accounts collection to those with this domain value. Use
type
(query)
string
Subset the accounts or external accounts collection to those with this exact type value. Use
label
(query)
string
Subset the accounts or external accounts collection to those with this label value. Use

Try it

Fields marked with * are mandatory.

ParameterValue
MethodGET
* URL
* API Key
* Access Token
* Accept

start

limit

sortBy

filter

q

state

name

domain

type

label

Response

Response Code:

Response Headers:

Response Body:

    
      Click on 'Try It' to get a response.
    
  

Example responses

200 Response

{
  "_profile": "https://api.apiture.com/schemas/workflow/tasks/v1.0.0/profile.json",
  "start": 10,
  "limit": 10,
  "count": 67,
  "name": "tasks",
  "_links": {
    "self": {
      "href": "/workflow/tasks?start=10&limit=10"
    },
    "first": {
      "href": "/workflow/tasks?start=0&limit=10"
    },
    "next": {
      "href": "/workflow/tasks?start=20&limit=10"
    },
    "collection": {
      "href": "/workflow/tasks"
    }
  },
  "_embedded": {
    "items": [
      {
        "_profile": "https://api.apiture.com/schemas/workflow/task/v1.0.0/profile.json",
        "domain": "http:/api.apiture.com/domains/tasks/prompts",
        "name": "accountCategoryChoice",
        "label": "Account Category Choice",
        "type": "staticChoice",
        "state": "blocked",
        "done": false,
        "mode": "interactive",
        "restartable": true,
        "description": "This workflow task presents a user choices representing a set of account types. The user selects one. (For this example, we assume that `staticChoice` is a defined task type for making a choice from a static list of values.)"
      }
    ]
  }
}

Responses

StatusDescription
200 OK
OK
Schema: tasks
StatusDescription
400 Bad Request
Bad Request. The request body or one or more of the query parameters was not well formed. The _error field in the response will contain details about the request error.
Schema: errorResponse
StatusDescription
422 Unprocessable Entity
Unprocessable Entity. One or more of the query parameters was well formed but otherwise invalid. The _error field in the response will contain details about the request error.
Schema: errorResponse

createTask

Code samples

# You can also use wget
curl -X POST https://api.devbank.apiture.com/workflow/tasks \
  -H 'Content-Type: application/hal+json' \
  -H 'Accept: application/hal+json' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

POST https://api.devbank.apiture.com/workflow/tasks HTTP/1.1
Host: api.devbank.apiture.com
Content-Type: application/hal+json
Accept: application/hal+json

var headers = {
  'Content-Type':'application/hal+json',
  'Accept':'application/hal+json',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.devbank.apiture.com/workflow/tasks',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');
const inputBody = '{
  "_profile": "https://api.apiture.com/schemas/workflow/task/v1.0.0/profile.json",
  "name": "accountCategoryChoice",
  "label": "Account Category Choice",
  "type": "staticChoice",
  "state": "blocked",
  "mode": "interactive",
  "restartable": true,
  "description": "This workflow task presents a user choices representing a set of account types. The user selects one. (For this example, we assume that `staticChoice` is a defined task type for making a choice from a static list of values.)",
  "schema": {
    "type": "object",
    "properties": {
      "choice": {
        "description": "The `id` of the selected choice.",
        "type": "string"
      },
      "choiceLabel": {
        "description": "The `label` of the selected choice.",
        "type": "string"
      },
      "choices": {
        "description": "An array of choices which are presented to the user for selection.",
        "type": "array",
        "items": {
          "type": "object",
          "properties": {
            "id": {
              "type": "string",
              "description": "This selection's unique ID."
            },
            "label": {
              "type": "string",
              "description": "This selection's text label."
            },
            "imageUri": {
              "type": "string",
              "description": "A URI of an image to present for this choice."
            }
          }
        }
      }
    }
  },
  "interface": {
    "choice": {
      "input": true,
      "output": true
    },
    "choices": {
      "value": [
        {
          "id": "savings",
          "label": "Savings",
          "imageUri": "https://api.apiture.com/static/images/accountTypes/savings.png"
        },
        {
          "id": "checking",
          "label": "Checking",
          "imageUri": "https://api.apiture.com/static/images/accountTypes/checking.png"
        }
      ]
    },
    "label": "Choose an account type",
    "presentation": "iconAndLabel",
    "selection": "single",
    "defaultSelection": "savings"
  }
}';
const headers = {
  'Content-Type':'application/hal+json',
  'Accept':'application/hal+json',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.devbank.apiture.com/workflow/tasks',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/hal+json',
  'Accept' => 'application/hal+json',
  'API-Key' => 'API_KEY',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://api.devbank.apiture.com/workflow/tasks',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/hal+json',
  'Accept': 'application/hal+json',
  'API-Key': 'API_KEY',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://api.devbank.apiture.com/workflow/tasks', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.devbank.apiture.com/workflow/tasks");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/hal+json"},
        "Accept": []string{"application/hal+json"},
        "API-Key": []string{"API_KEY"},
        "Authorization": []string{"Bearer {access-token}"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://api.devbank.apiture.com/workflow/tasks", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

Create a new task

POST /tasks

Create a new task in the tasks collection.

Body parameter

{
  "_profile": "https://api.apiture.com/schemas/workflow/task/v1.0.0/profile.json",
  "name": "accountCategoryChoice",
  "label": "Account Category Choice",
  "type": "staticChoice",
  "state": "blocked",
  "mode": "interactive",
  "restartable": true,
  "description": "This workflow task presents a user choices representing a set of account types. The user selects one. (For this example, we assume that `staticChoice` is a defined task type for making a choice from a static list of values.)",
  "schema": {
    "type": "object",
    "properties": {
      "choice": {
        "description": "The `id` of the selected choice.",
        "type": "string"
      },
      "choiceLabel": {
        "description": "The `label` of the selected choice.",
        "type": "string"
      },
      "choices": {
        "description": "An array of choices which are presented to the user for selection.",
        "type": "array",
        "items": {
          "type": "object",
          "properties": {
            "id": {
              "type": "string",
              "description": "This selection's unique ID."
            },
            "label": {
              "type": "string",
              "description": "This selection's text label."
            },
            "imageUri": {
              "type": "string",
              "description": "A URI of an image to present for this choice."
            }
          }
        }
      }
    }
  },
  "interface": {
    "choice": {
      "input": true,
      "output": true
    },
    "choices": {
      "value": [
        {
          "id": "savings",
          "label": "Savings",
          "imageUri": "https://api.apiture.com/static/images/accountTypes/savings.png"
        },
        {
          "id": "checking",
          "label": "Checking",
          "imageUri": "https://api.apiture.com/static/images/accountTypes/checking.png"
        }
      ]
    },
    "label": "Choose an account type",
    "presentation": "iconAndLabel",
    "selection": "single",
    "defaultSelection": "savings"
  }
}

Parameters

Parameter Description
definition
(query)
string
A server-supplied value which identifies the task definition instance from which this new task will be created. The request body is ignored when this parameter is used.
body
(body)
createTask (required)
The data necessary to create a new task.

Try it

Fields marked with * are mandatory.

ParameterValue
MethodPOST
* URL
* API Key
* Access Token
* Accept

definition

* body

* Content-Type

Response

Response Code:

Response Headers:

Response Body:

    
      Click on 'Try It' to get a response.
    
  

Example responses

201 Response

{
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "_links": {
    "self": {
      "href": "/workflow/tasks/0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:defintion": {
      "href": "/workflow/taskDefiniitions/99ced512-9c19-4c5d-8859-9c42cd4bcc7b"
    },
    "up": {
      "href": "/workflow/workflows/64802afe-d0a4-4680-b6fb-a0de98f3d871"
    },
    "apiture:cancel": {
      "href": "/canceledTasks?task=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:fail": {
      "href": "/failedTasks?task=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:pause": {
      "href": "/pausedTasks?task=0399abed-fd3d-4830-a88b-30f38b8a365c"
    }
  }
}

Responses

StatusDescription
201 Created
Created
Schema: task
StatusDescription
400 Bad Request
Bad Request. The request body or one or more of the query parameters was not well formed. The _error field in the response will contain details about the request error.
Schema: errorResponse

Response Headers

StatusDescription
201 Location string uri
The URI of the new resource. If the URI begins with / it is relative to the API root context. Else, it is a full URI starting with scheme://host
201 ETag string
The ETag response header specifies an entity tag which must be provided in an If-Match request header for PUT or PATCH operations which update the resource.

getTask

Code samples

# You can also use wget
curl -X GET https://api.devbank.apiture.com/workflow/tasks/{taskId} \
  -H 'Accept: application/hal+json' \
  -H 'If-None-Match: string' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

GET https://api.devbank.apiture.com/workflow/tasks/{taskId} HTTP/1.1
Host: api.devbank.apiture.com
Accept: application/hal+json
If-None-Match: string

var headers = {
  'Accept':'application/hal+json',
  'If-None-Match':'string',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.devbank.apiture.com/workflow/tasks/{taskId}',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/hal+json',
  'If-None-Match':'string',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.devbank.apiture.com/workflow/tasks/{taskId}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/hal+json',
  'If-None-Match' => 'string',
  'API-Key' => 'API_KEY',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://api.devbank.apiture.com/workflow/tasks/{taskId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/hal+json',
  'If-None-Match': 'string',
  'API-Key': 'API_KEY',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.devbank.apiture.com/workflow/tasks/{taskId}', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.devbank.apiture.com/workflow/tasks/{taskId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/hal+json"},
        "If-None-Match": []string{"string"},
        "API-Key": []string{"API_KEY"},
        "Authorization": []string{"Bearer {access-token}"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.devbank.apiture.com/workflow/tasks/{taskId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

Fetch a representation of this task

GET /tasks/{taskId}

Return a HAL representation of this task resource.

Parameters

Parameter Description
taskId
(path)
string (required)
The unique identifier of this task. This is an opaque string.
If-None-Match
(header)
string
The entity tag that was returned in the ETag response. If the resource's current entity tag matches, the GET will return 304 (Not Modified) and no response body, else the resource representation will be returned.

Try it

Fields marked with * are mandatory.

ParameterValue
MethodGET
* URL
* API Key
* Access Token
* Accept

* taskId

If-None-Match

Response

Response Code:

Response Headers:

Response Body:

    
      Click on 'Try It' to get a response.
    
  

Example responses

200 Response

{
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "_links": {
    "self": {
      "href": "/workflow/tasks/0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:defintion": {
      "href": "/workflow/taskDefiniitions/99ced512-9c19-4c5d-8859-9c42cd4bcc7b"
    },
    "up": {
      "href": "/workflow/workflows/64802afe-d0a4-4680-b6fb-a0de98f3d871"
    },
    "apiture:cancel": {
      "href": "/canceledTasks?task=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:fail": {
      "href": "/failedTasks?task=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:pause": {
      "href": "/pausedTasks?task=0399abed-fd3d-4830-a88b-30f38b8a365c"
    }
  }
}

Responses

StatusDescription
200 OK
OK
Schema: task
StatusDescription
304 Not Modified
Not Modified. The resource has not been modified since it was last fetched.
StatusDescription
404 Not Found
Not Found. There is no such task resource at the specified {taskId} The _error field in the response will contain details about the request error.
Schema: errorResponse

Response Headers

StatusDescription
200 ETag string
The ETag response header specifies an entity tag which must be provided in an If-Match request header for PUT or PATCH operations which update this task resource.

updateTask

Code samples

# You can also use wget
curl -X PUT https://api.devbank.apiture.com/workflow/tasks/{taskId} \
  -H 'Content-Type: application/hal+json' \
  -H 'Accept: application/hal+json' \
  -H 'If-Match: string' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

PUT https://api.devbank.apiture.com/workflow/tasks/{taskId} HTTP/1.1
Host: api.devbank.apiture.com
Content-Type: application/hal+json
Accept: application/hal+json
If-Match: string

var headers = {
  'Content-Type':'application/hal+json',
  'Accept':'application/hal+json',
  'If-Match':'string',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.devbank.apiture.com/workflow/tasks/{taskId}',
  method: 'put',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');
const inputBody = '{
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "_links": {
    "self": {
      "href": "/workflow/tasks/0399abed-fd3d-4830-a88b-30f38b8a365c"
    }
  }
}';
const headers = {
  'Content-Type':'application/hal+json',
  'Accept':'application/hal+json',
  'If-Match':'string',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.devbank.apiture.com/workflow/tasks/{taskId}',
{
  method: 'PUT',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/hal+json',
  'Accept' => 'application/hal+json',
  'If-Match' => 'string',
  'API-Key' => 'API_KEY',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.put 'https://api.devbank.apiture.com/workflow/tasks/{taskId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/hal+json',
  'Accept': 'application/hal+json',
  'If-Match': 'string',
  'API-Key': 'API_KEY',
  'Authorization': 'Bearer {access-token}'
}

r = requests.put('https://api.devbank.apiture.com/workflow/tasks/{taskId}', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.devbank.apiture.com/workflow/tasks/{taskId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PUT");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/hal+json"},
        "Accept": []string{"application/hal+json"},
        "If-Match": []string{"string"},
        "API-Key": []string{"API_KEY"},
        "Authorization": []string{"Bearer {access-token}"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PUT", "https://api.devbank.apiture.com/workflow/tasks/{taskId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

Update this task

PUT /tasks/{taskId}

Perform a complete replacement of this task.

Body parameter

{
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "_links": {
    "self": {
      "href": "/workflow/tasks/0399abed-fd3d-4830-a88b-30f38b8a365c"
    }
  }
}

Parameters

Parameter Description
taskId
(path)
string (required)
The unique identifier of this task. This is an opaque string.
If-Match
(header)
string
The entity tag that was returned in the ETag response. This must match the current entity tag of the resource.
body
(body)
updateTask (required)

Try it

Fields marked with * are mandatory.

ParameterValue
MethodPUT
* URL
* API Key
* Access Token
* Accept

* taskId

If-Match

* body

* Content-Type

Response

Response Code:

Response Headers:

Response Body:

    
      Click on 'Try It' to get a response.
    
  

Example responses

200 Response

{
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "_links": {
    "self": {
      "href": "/workflow/tasks/0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:defintion": {
      "href": "/workflow/taskDefiniitions/99ced512-9c19-4c5d-8859-9c42cd4bcc7b"
    },
    "up": {
      "href": "/workflow/workflows/64802afe-d0a4-4680-b6fb-a0de98f3d871"
    },
    "apiture:cancel": {
      "href": "/canceledTasks?task=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:fail": {
      "href": "/failedTasks?task=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:pause": {
      "href": "/pausedTasks?task=0399abed-fd3d-4830-a88b-30f38b8a365c"
    }
  }
}

Responses

StatusDescription
200 OK
OK
Schema: task
StatusDescription
400 Bad Request
Bad Request. The request body or one or more of the query parameters was not well formed. The _error field in the response will contain details about the request error.
Schema: errorResponse
StatusDescription
404 Not Found
Not Found. There is no such task resource at the specified {taskId} The _error field in the response will contain details about the request error.
Schema: errorResponse
StatusDescription
412 Precondition Failed
Precondition Failed. The supplied if-Match header value does not match the most recent ETag response header value. The resource has changed in the interim.
Schema: errorResponse
StatusDescription
422 Unprocessable Entity
Unprocessable Entity. One or more of the query parameters was well formed but otherwise invalid. The _error field in the response will contain details about the request error.
Schema: errorResponse

Response Headers

StatusDescription
200 ETag string
The ETag response header specifies an entity tag which must be provided in an If-Match request header for PUT or PATCH operations which update this task resource.

patchTask

Code samples

# You can also use wget
curl -X PATCH https://api.devbank.apiture.com/workflow/tasks/{taskId} \
  -H 'Content-Type: application/hal+json' \
  -H 'Accept: application/hal+json' \
  -H 'If-Match: string' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

PATCH https://api.devbank.apiture.com/workflow/tasks/{taskId} HTTP/1.1
Host: api.devbank.apiture.com
Content-Type: application/hal+json
Accept: application/hal+json
If-Match: string

var headers = {
  'Content-Type':'application/hal+json',
  'Accept':'application/hal+json',
  'If-Match':'string',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.devbank.apiture.com/workflow/tasks/{taskId}',
  method: 'patch',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');
const inputBody = '{
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "_links": {
    "self": {
      "href": "/workflow/tasks/0399abed-fd3d-4830-a88b-30f38b8a365c"
    }
  }
}';
const headers = {
  'Content-Type':'application/hal+json',
  'Accept':'application/hal+json',
  'If-Match':'string',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.devbank.apiture.com/workflow/tasks/{taskId}',
{
  method: 'PATCH',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/hal+json',
  'Accept' => 'application/hal+json',
  'If-Match' => 'string',
  'API-Key' => 'API_KEY',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.patch 'https://api.devbank.apiture.com/workflow/tasks/{taskId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/hal+json',
  'Accept': 'application/hal+json',
  'If-Match': 'string',
  'API-Key': 'API_KEY',
  'Authorization': 'Bearer {access-token}'
}

r = requests.patch('https://api.devbank.apiture.com/workflow/tasks/{taskId}', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.devbank.apiture.com/workflow/tasks/{taskId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PATCH");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/hal+json"},
        "Accept": []string{"application/hal+json"},
        "If-Match": []string{"string"},
        "API-Key": []string{"API_KEY"},
        "Authorization": []string{"Bearer {access-token}"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PATCH", "https://api.devbank.apiture.com/workflow/tasks/{taskId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

Update this task

PATCH /tasks/{taskId}

Perform a partial update of this task. Fields which are omitted are not updated. Nested _embedded and _links are ignored if included.

NOTE This operation is deprecated. Most fields of a task instance are immutable or derived. Use the updateTaskValues (PUT /tasks/{taskId}/values) operation to update the values in a task.

Body parameter

{
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "_links": {
    "self": {
      "href": "/workflow/tasks/0399abed-fd3d-4830-a88b-30f38b8a365c"
    }
  }
}

Parameters

Parameter Description
taskId
(path)
string (required)
The unique identifier of this task. This is an opaque string.
If-Match
(header)
string
The entity tag that was returned in the ETag response. This must match the current entity tag of the resource.
body
(body)
updateTask (required)

Try it

Fields marked with * are mandatory.

ParameterValue
MethodPATCH
* URL
* API Key
* Access Token
* Accept

* taskId

If-Match

* body

* Content-Type

Response

Response Code:

Response Headers:

Response Body:

    
      Click on 'Try It' to get a response.
    
  

Example responses

200 Response

{
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "_links": {
    "self": {
      "href": "/workflow/tasks/0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:defintion": {
      "href": "/workflow/taskDefiniitions/99ced512-9c19-4c5d-8859-9c42cd4bcc7b"
    },
    "up": {
      "href": "/workflow/workflows/64802afe-d0a4-4680-b6fb-a0de98f3d871"
    },
    "apiture:cancel": {
      "href": "/canceledTasks?task=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:fail": {
      "href": "/failedTasks?task=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:pause": {
      "href": "/pausedTasks?task=0399abed-fd3d-4830-a88b-30f38b8a365c"
    }
  }
}

Responses

StatusDescription
200 OK
OK
Schema: task
StatusDescription
400 Bad Request
Bad Request. The request body or one or more of the query parameters was not well formed. The _error field in the response will contain details about the request error.
Schema: errorResponse
StatusDescription
404 Not Found
Not Found. There is no such task resource at the specified {taskId} The _error field in the response will contain details about the request error.
Schema: errorResponse
StatusDescription
412 Precondition Failed
Precondition Failed. The supplied if-Match header value does not match the most recent ETag response header value. The resource has changed in the interim.
Schema: errorResponse
StatusDescription
422 Unprocessable Entity
Unprocessable Entity. One or more of the query parameters was well formed but otherwise invalid. The _error field in the response will contain details about the request error.
Schema: errorResponse

Response Headers

StatusDescription
200 ETag string
The ETag response header specifies an entity tag which must be provided in an If-Match request header for PUT or PATCH operations which update this task resource.

deleteTask

Code samples

# You can also use wget
curl -X DELETE https://api.devbank.apiture.com/workflow/tasks/{taskId} \
  -H 'Accept: application/hal+json' \
  -H 'If-Match: string' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

DELETE https://api.devbank.apiture.com/workflow/tasks/{taskId} HTTP/1.1
Host: api.devbank.apiture.com
Accept: application/hal+json
If-Match: string

var headers = {
  'Accept':'application/hal+json',
  'If-Match':'string',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.devbank.apiture.com/workflow/tasks/{taskId}',
  method: 'delete',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/hal+json',
  'If-Match':'string',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.devbank.apiture.com/workflow/tasks/{taskId}',
{
  method: 'DELETE',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/hal+json',
  'If-Match' => 'string',
  'API-Key' => 'API_KEY',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.delete 'https://api.devbank.apiture.com/workflow/tasks/{taskId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/hal+json',
  'If-Match': 'string',
  'API-Key': 'API_KEY',
  'Authorization': 'Bearer {access-token}'
}

r = requests.delete('https://api.devbank.apiture.com/workflow/tasks/{taskId}', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.devbank.apiture.com/workflow/tasks/{taskId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/hal+json"},
        "If-Match": []string{"string"},
        "API-Key": []string{"API_KEY"},
        "Authorization": []string{"Bearer {access-token}"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("DELETE", "https://api.devbank.apiture.com/workflow/tasks/{taskId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

Delete this task resource

DELETE /tasks/{taskId}

Delete this task resource and any resources that are owned by it.

Parameters

Parameter Description
If-Match
(header)
string
The entity tag that was returned in the ETag response. This must match the current entity tag of the resource.
taskId
(path)
string (required)
The unique identifier of this task. This is an opaque string.

Try it

Fields marked with * are mandatory.

ParameterValue
MethodDELETE
* URL
* API Key
* Access Token
* Accept

If-Match

* taskId

Response

Response Code:

Response Headers:

Response Body:

    
      Click on 'Try It' to get a response.
    
  

Example responses

412 Response

{
  "_profile": "https://api.apiture.com/schemas/common/errorResponse/v1.0.0/profile.json",
  "_error": {
    "_id": "2eae46e1-575c-4d69-8a8f-0a7b0115a4b3",
    "message": "The value for deposit must be greater than 0.",
    "statusCode": 422,
    "type": "positiveNumberRequired",
    "attributes": {
      "value": -125.5
    },
    "remediation": "Provide a value which is greater than 0",
    "occurredAt": "2018-01-25T05:50:52.375Z",
    "_links": {
      "describedby": {
        "href": "https://api.apiture.com/errors/positiveNumberRequired"
      }
    },
    "_embedded": {
      "errors": []
    }
  }
}

Responses

StatusDescription
204 No Content
No Content. The resource was deleted successfully.
StatusDescription
412 Precondition Failed
Precondition Failed. The supplied if-Match header value does not match the most recent ETag response header value. The resource has changed in the interim.
Schema: errorResponse

getTaskValues

Code samples

# You can also use wget
curl -X GET https://api.devbank.apiture.com/workflow/tasks/{taskId}/values \
  -H 'Accept: application/hal+json' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

GET https://api.devbank.apiture.com/workflow/tasks/{taskId}/values HTTP/1.1
Host: api.devbank.apiture.com
Accept: application/hal+json

var headers = {
  'Accept':'application/hal+json',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.devbank.apiture.com/workflow/tasks/{taskId}/values',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/hal+json',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.devbank.apiture.com/workflow/tasks/{taskId}/values',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/hal+json',
  'API-Key' => 'API_KEY',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://api.devbank.apiture.com/workflow/tasks/{taskId}/values',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/hal+json',
  'API-Key': 'API_KEY',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.devbank.apiture.com/workflow/tasks/{taskId}/values', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.devbank.apiture.com/workflow/tasks/{taskId}/values");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/hal+json"},
        "API-Key": []string{"API_KEY"},
        "Authorization": []string{"Bearer {access-token}"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.devbank.apiture.com/workflow/tasks/{taskId}/values", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

Fetch the runtime values associated with this task

GET /tasks/{taskId}/values

Fetch the runtime values associated with this task. This provides convenient access to the map of values of the task, including the inputs and outputs.

Use the PUT /tasks/{taskId}/values operation to update the values, or to update a specific value, use PUT /tasks/{taskId}/values/{valueName}.

Parameters

Parameter Description
taskId
(path)
string (required)
The unique identifier of this task. This is an opaque string.

Try it

Fields marked with * are mandatory.

ParameterValue
MethodGET
* URL
* API Key
* Access Token
* Accept

* taskId

Response

Response Code:

Response Headers:

Response Body:

    
      Click on 'Try It' to get a response.
    
  

Example responses

200 Response

{}

Responses

StatusDescription
200 OK
OK
Schema: Inline
StatusDescription
404 Not Found
Not Found. There is no such task resource at the specified {taskId} The _error field in the response will contain details about the request error.
Schema: errorResponse
StatusDescription
412 Precondition Failed
Precondition Failed. The supplied if-Match header value does not match the most recent ETag response header value. The resource has changed in the interim.
Schema: errorResponse

Response Schema

Response Headers

StatusDescription
200 ETag string
The ETag response header specifies an entity tag which must be provided in an If-Match request header for PUT or PATCH operations which update this task resource.

updateTaskValues

Code samples

# You can also use wget
curl -X PUT https://api.devbank.apiture.com/workflow/tasks/{taskId}/values \
  -H 'Content-Type: application/hal+json' \
  -H 'Accept: application/hal+json' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

PUT https://api.devbank.apiture.com/workflow/tasks/{taskId}/values HTTP/1.1
Host: api.devbank.apiture.com
Content-Type: application/hal+json
Accept: application/hal+json

var headers = {
  'Content-Type':'application/hal+json',
  'Accept':'application/hal+json',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.devbank.apiture.com/workflow/tasks/{taskId}/values',
  method: 'put',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');
const inputBody = '{}';
const headers = {
  'Content-Type':'application/hal+json',
  'Accept':'application/hal+json',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.devbank.apiture.com/workflow/tasks/{taskId}/values',
{
  method: 'PUT',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/hal+json',
  'Accept' => 'application/hal+json',
  'API-Key' => 'API_KEY',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.put 'https://api.devbank.apiture.com/workflow/tasks/{taskId}/values',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/hal+json',
  'Accept': 'application/hal+json',
  'API-Key': 'API_KEY',
  'Authorization': 'Bearer {access-token}'
}

r = requests.put('https://api.devbank.apiture.com/workflow/tasks/{taskId}/values', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.devbank.apiture.com/workflow/tasks/{taskId}/values");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PUT");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/hal+json"},
        "Accept": []string{"application/hal+json"},
        "API-Key": []string{"API_KEY"},
        "Authorization": []string{"Bearer {access-token}"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PUT", "https://api.devbank.apiture.com/workflow/tasks/{taskId}/values", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

Update the runtime values associated with this task

PUT /tasks/{taskId}/values

Update the runtime values associated with this task. This provides convenient access to the map of values of the task, inlcuding the inputs and outputs. This map only contains values defined in the tasks's schema. The request body must include all values obtained from the GET operation, and the values must conform to the tasks's schema. This operation is idempotent.

To update a specific value, use PUT /tasks/{taskId}/values/{valueName} (operation updateTaskValue).

Body parameter

{}

Parameters

Parameter Description
taskId
(path)
string (required)
The unique identifier of this task. This is an opaque string.
body
(body)
attributes (required)

Try it

Fields marked with * are mandatory.

ParameterValue
MethodPUT
* URL
* API Key
* Access Token
* Accept

* taskId

* body

* Content-Type

Response

Response Code:

Response Headers:

Response Body:

    
      Click on 'Try It' to get a response.
    
  

Example responses

200 Response

{}

Responses

StatusDescription
200 OK
OK
Schema: Inline
StatusDescription
400 Bad Request
Bad Request. The request body or one or more of the query parameters was not well formed. The _error field in the response will contain details about the request error.
Schema: errorResponse
StatusDescription
404 Not Found
Not Found. There is no such task resource at the specified {taskId} The _error field in the response will contain details about the request error.
Schema: errorResponse
StatusDescription
412 Precondition Failed
Precondition Failed. The supplied if-Match header value does not match the most recent ETag response header value. The resource has changed in the interim.
Schema: errorResponse
StatusDescription
422 Unprocessable Entity
Unprocessable Entity. One or more of the query parameters was well formed but otherwise invalid. The _error field in the response will contain details about the request error.
Schema: errorResponse

Response Schema

Response Headers

StatusDescription
200 ETag string
The ETag response header specifies an entity tag which must be provided in an If-Match request header for PUT or PATCH operations which update this task resource.

getTaskValue

Code samples

# You can also use wget
curl -X GET https://api.devbank.apiture.com/workflow/tasks/{taskId}/values/{valueName} \
  -H 'Accept: application/hal+json' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

GET https://api.devbank.apiture.com/workflow/tasks/{taskId}/values/{valueName} HTTP/1.1
Host: api.devbank.apiture.com
Accept: application/hal+json

var headers = {
  'Accept':'application/hal+json',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.devbank.apiture.com/workflow/tasks/{taskId}/values/{valueName}',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/hal+json',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.devbank.apiture.com/workflow/tasks/{taskId}/values/{valueName}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/hal+json',
  'API-Key' => 'API_KEY',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get 'https://api.devbank.apiture.com/workflow/tasks/{taskId}/values/{valueName}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/hal+json',
  'API-Key': 'API_KEY',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.devbank.apiture.com/workflow/tasks/{taskId}/values/{valueName}', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.devbank.apiture.com/workflow/tasks/{taskId}/values/{valueName}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/hal+json"},
        "API-Key": []string{"API_KEY"},
        "Authorization": []string{"Bearer {access-token}"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "https://api.devbank.apiture.com/workflow/tasks/{taskId}/values/{valueName}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

Fetch a single runtime value associated with this task

GET /tasks/{taskId}/values/{valueName}

Fetch a single runtime value associated with this task. This provides convenient access to the map of values of the task, including the inputs and outputs. This map does not include the tasks and their values, or values from nested workflows; it only contains values defined in the tasks's schema.

To update a specific value, use PUT /tasks/{taskId}/values/{valueName} (operation updateTaskValue).

Parameters

Parameter Description
taskId
(path)
string (required)
The unique identifier of this task. This is an opaque string.
valueName
(path)
string (required)
The unique identifier of a value in a workflow item. This is the name of the value in the schema. A {valueName} must be a simple identifier following the pattern letter [letter | digit | '-' | '_']*

Try it

Fields marked with * are mandatory.

ParameterValue
MethodGET
* URL
* API Key
* Access Token
* Accept

* taskId

* valueName

Response

Response Code:

Response Headers:

Response Body:

    
      Click on 'Try It' to get a response.
    
  

Example responses

200 Response

{}

Responses

StatusDescription
200 OK
OK
Schema: Inline
StatusDescription
404 Not Found
Not Found. There is no such task resource at the specified {taskId} The _error field in the response will contain details about the request error.
Schema: errorResponse

Response Schema

Response Headers

StatusDescription
200 ETag string
The ETag response header specifies an entity tag which must be provided in an If-Match request header for PUT or PATCH operations which update this task resource.

updateTaskValue

Code samples

# You can also use wget
curl -X PUT https://api.devbank.apiture.com/workflow/tasks/{taskId}/values/{valueName} \
  -H 'Content-Type: application/hal+json' \
  -H 'Accept: application/hal+json' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

PUT https://api.devbank.apiture.com/workflow/tasks/{taskId}/values/{valueName} HTTP/1.1
Host: api.devbank.apiture.com
Content-Type: application/hal+json
Accept: application/hal+json

var headers = {
  'Content-Type':'application/hal+json',
  'Accept':'application/hal+json',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.devbank.apiture.com/workflow/tasks/{taskId}/values/{valueName}',
  method: 'put',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');
const inputBody = '{}';
const headers = {
  'Content-Type':'application/hal+json',
  'Accept':'application/hal+json',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.devbank.apiture.com/workflow/tasks/{taskId}/values/{valueName}',
{
  method: 'PUT',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/hal+json',
  'Accept' => 'application/hal+json',
  'API-Key' => 'API_KEY',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.put 'https://api.devbank.apiture.com/workflow/tasks/{taskId}/values/{valueName}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/hal+json',
  'Accept': 'application/hal+json',
  'API-Key': 'API_KEY',
  'Authorization': 'Bearer {access-token}'
}

r = requests.put('https://api.devbank.apiture.com/workflow/tasks/{taskId}/values/{valueName}', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.devbank.apiture.com/workflow/tasks/{taskId}/values/{valueName}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PUT");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/hal+json"},
        "Accept": []string{"application/hal+json"},
        "API-Key": []string{"API_KEY"},
        "Authorization": []string{"Bearer {access-token}"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PUT", "https://api.devbank.apiture.com/workflow/tasks/{taskId}/values/{valueName}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

Update the runtime values associated with this task

PUT /tasks/{taskId}/values/{valueName}

Update a single runtime value associated with this task. This provides convenient access to individual values of the task as defined in the tasks's schema. The request body must conform to the tasks's schema for the named {valueName}. This operation is idempotent.

To update a specific value, use PUT /workflows/{workflowId}/values/{valueName}.

Body parameter

{}

Parameters

Parameter Description
taskId
(path)
string (required)
The unique identifier of this task. This is an opaque string.
valueName
(path)
string (required)
The unique identifier of a value in a workflow item. This is the name of the value in the schema. A {valueName} must be a simple identifier following the pattern letter [letter | digit | '-' | '_']*
body
(body)
attributes (required)

Try it

Fields marked with * are mandatory.

ParameterValue
MethodPUT
* URL
* API Key
* Access Token
* Accept

* taskId

* valueName

* body

* Content-Type

Response

Response Code:

Response Headers:

Response Body:

    
      Click on 'Try It' to get a response.
    
  

Example responses

200 Response

{}

Responses

StatusDescription
200 OK
OK
Schema: Inline

Response Schema

Response Headers

StatusDescription
200 ETag string
The ETag response header specifies an entity tag which must be provided in an If-Match request header for PUT or PATCH operations which update this task resource.

startTask

Code samples

# You can also use wget
curl -X POST https://api.devbank.apiture.com/workflow/runningTasks?task=string \
  -H 'Accept: application/hal+json' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

POST https://api.devbank.apiture.com/workflow/runningTasks?task=string HTTP/1.1
Host: api.devbank.apiture.com
Accept: application/hal+json

var headers = {
  'Accept':'application/hal+json',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.devbank.apiture.com/workflow/runningTasks',
  method: 'post',
  data: '?task=string',
  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/hal+json',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

fetch('https://api.devbank.apiture.com/workflow/runningTasks?task=string',
{
  method: 'POST',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/hal+json',
  'API-Key' => 'API_KEY',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post 'https://api.devbank.apiture.com/workflow/runningTasks',
  params: {
  'task' => 'string'
}, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/hal+json',
  'API-Key': 'API_KEY',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('https://api.devbank.apiture.com/workflow/runningTasks', params={
  'task': 'string'
}, headers = headers)

print r.json()

URL obj = new URL("https://api.devbank.apiture.com/workflow/runningTasks?task=string");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/hal+json"},
        "API-Key": []string{"API_KEY"},
        "Authorization": []string{"Bearer {access-token}"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "https://api.devbank.apiture.com/workflow/runningTasks", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

Start, restart, or resume a workflow task

POST /runningTasks

Change the state of a workflow to running. This is allowed if the state is paused. If the task is restartable, this is also allowed if the state is failed, completed, or canceled. There is no request body on this operation; the task is passed as a query parameter, ?task=. This operation is invoked from the apiture:start link on a task; the link is present if the operation is allowed. This operation may also affect the state of the workflow in which the task instance resides. This operation is not allowed on a task definition.

Parameters

Parameter Description
task
(query)
string (required)
A server-supplied value which identifies the task instance.

Try it

Fields marked with * are mandatory.

ParameterValue
MethodPOST
* URL
* API Key
* Access Token
* Accept

* task

Response

Response Code:

Response Headers:

Response Body: