Workflow v0.25.3

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. A task may be a composite task, built from another workflow. (This allows for reuse of such subflows.)

Each task and workflow has the following data:

  • domain, name, label, description (descriptive information)
  • A set of values (a map of name/value pairs) based on a schema
  • A state field, one of definition, pending, blocked, running, paused, failed, completed, canceled. The default state is running (or blocked if no tasks are runnable)
  • A done field is true if the state is one of those last three states.
  • A list of bindings which connect workflow state values or the outputs of previous tasks to the inputs of dependent tasks.

Some changes to the state of a workflow item is managed by the service. Clients can change some states via links in a task instance or workflow instance, via a PUT (operations updateWorkflowValues, updateWorkflowValue, updateTaskValues and updateTaskValue).

A workflow orchestrates a set of tasks and contains additional data:

  • dependencies, which maps each task to a set of 0 or more dependent tasks that trigger the task when they are completed.
  • Entry criteria for each dependent task may also include a business rule which must evaluate to true. The rules can access the input values on the task as well as the workflow's values. The default business rule tests that any dependent task is completed.

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

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 execution

Several operations change the execution state of workflow or task instances. Use the startWorkflow, pauseWorkflow, cancelWorkflow, failWorkflow operations to start a workflow, pause it, cancel it, or set it to a failed state. (Use startWorkflow to resume a paused workflow.) The startTask, pauseTask, cancelTask, failTask operations do the same for task instances. These operations are provided via links named apiture:start, apiture:pause, apiture:cancel, and apiture:fail in the workflow and task schemas, if the operations are available.

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, or if the workflow is in a failed state. If a terminal task completes, causing 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 and Task Definitions

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 may have cycles. That is, some tasks may be entered again, effectively restarting those tasks.

Workflow revisions

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 (see the createWorkflowDefinitionRevision and createTaskDefinitionRevision operations). 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 associated with 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.

Error handling

If a workflow task fails, the service sets its state to failed. If the task has an errorTask defined, the workflow starts that task; it is included in the /runningTasks. The error task may be an interactive or hidden task. This allows the workflow to restart a sequence of tasks, for example, to let the user retry an operation that may fail. (The error task should be restartable.) The workflow may also define an errorTask which the workflow starts if the failed task does not define its own errorTask. If the error task is a terminal state, the workflow sets it's state to failed. The errorTask for a workflow or a workflow task is initialized from the same property of the workflow definition or a workflow task definition.

Error Types

Error responses in this API may have one of the type values described below. See Errors for more information on error responses and error types.

cannotModifyRevision

Description: Modifying revisioned resources is not allowed.
Remediation: Revisioned resources are immutable, check to ensure that the supplied id does not belong to a revision.

invalidTaskDefinitionId

Description: No task definitions were found for the specified taskDefinitionId.
Remediation: Check to make sure that the supplied taskDefinitionId corresponds to an apiture task definition resource.

invalidTaskDefinitionRevisionId

Description: No task definition revisions were found for the specified task definition revisionId.
Remediation: Check to make sure that the supplied revisionId corresponds to an apiture task definition revision resource.

invalidTaskId

Description: No tasks were found for the specified taskId.
Remediation: Check to make sure that the supplied taskId corresponds to an Apiture task resource.

invalidValueName

Description: No value was found for the specified valueName.
Remediation: Check to make sure that the supplied value name corresponds to a defined value.

invalidWorkflowDefinitionId

Description: No workflow definitions were found for the specified workflowDefinitionId.
Remediation: Check to make sure that the supplied workflowDefinitionId corresponds to an apiture workflow definition resource.

invalidWorkflowDefinitionRevisionId

Description: No workflow definition revisions were found for the specified workflow definition revisionId.
Remediation: Check to make sure that the supplied revisionId corresponds to an apiture workflow definition revision resource.

invalidWorkflowId

Description: No workflows were found for the specified workflowId.
Remediation: Check to make sure that the supplied workflowId corresponds to an apiture workflow resource.

malformedRequestBody

Description: The body of the request is invalid.
Remediation: Check to make sure that the body of the patch request is valid JSON.

nameDomainInUse

Description: The combination of name and domain must be unique across workflow definitions and task definitions.
Remediation: Check for existing workflow definitions or task definitions using the requested name, domain combination.

taskDefinitionInUse

Description: Task definitions cannot be deleted if they are in use in a workflow definition.
Remediation: Check the existing workflow definitions to see if the requested task definition is being used.

updateFailed

Description: The update to the database object failed.
Remediation: Check to make sure that the object being updated has valid properties.

workflowDefinitionInUse

Description: Workflow definitions cannot be deleted if they are in use by other workflow or task definitions.
Remediation: Check the existing workflow definitions to see if the requested workflow definition is a revision.

Download OpenAPI Definition (YAML)

Base URLs:

Terms of service

Email: Apiture Web: Apiture

Authentication

  • API Key (apiKey)
    • header parameter: API-Key
    • API Key based authentication. Each client application must pass its private, unique API key, allocated in the developer portal, via the API-Key: {api-key} request header.

  • OAuth2 authentication (accessToken)
    • OAuth2 client access token authentication. The client authenticates against the server at authorizationUrl, passing the client's private clientId (and optional clientSecret) as part of this flow. The client obtains an access token from the server at tokenUrl. It then passes the received access token via the Authorization: Bearer {access-token} header in subsequent API calls. The authorization process also returns a refresh token which the client should use to renew the access token before it expires.
    • Flow: authorizationCode
    • Authorization URL = https://auth.devbank.apiture.com/auth/oauth2/authorize
    • Token URL = https://api.devbank.apiture.com/auth/oauth2/token
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.

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

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);
});

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));
  }
})

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 https://api.devbank.apiture.com/workflow/workflowDefinitions

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

Parameters

ParameterDescription
start
in: 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.
format: int64
default: 0
limit
in: query
integer(int32)
The maximum number of workflow definition representations to return in this page.
format: int32
default: 100
sortBy
in: query
string
Optional sort criteria. See sort criteria format, such as ?sortBy=field1,-field2.
This collection may be sorted by the following properties:
state
name
domain
type
label.
filter
in: query
string
Optional filter criteria. See filtering.
This collection may be filtered by the following properties and functions:
• Property state using functions eq, ne, in
• Property name using functions eq, ne, lt, le, gt, ge, startsWith, endsWith, contains, search
• Property domain using functions eq, ne, lt, le, gt, ge, startsWith, endsWith, contains, search
• Property type using functions eq, ne, in
• Property label using functions eq, ne, lt, le, gt, ge, startsWith, endsWith, contains, search
• Property _id using functions eq, in.
q
in: query
string
Optional search string. See searching.
state
in: query
string
Subset the collection to those whose state matches this value. Use | to separate multiple values. For example, ?state=pending matches only items whose state is pending; ?state=removed|inactive matches items whose state is removed or inactive. This is combined with an implicit and with other filters if they are used. See filtering.
enum values: pending, definition, blocked, removed, running, paused, completed, failed, canceled
name
in: query
string
Subset the collection to those with this name value. Use | to separate multiple values. For example, ?name=Bartell will match only items whose name is Bartell; ?name=Bartell|kirsten will match items whose name is Bartell or kirsten. This is combined with an implicit and with other filters if they are used. See filtering.
domain
in: query
string
Subset the collection to those with this domain value. Use | to separate multiple values. For example, ?domain=https://production.api.apiture.com/domains/acctApps matches only items whose domain is https://production.api.apiture.com/domains/acctApps; ?domain=https://production.api.apiture.com/domains/acctApps|https://production.api.apiture.com/domains/tasks/forms will match items whose domain is https://production.api.apiture.com/domains/acctApps or https://production.api.apiture.com/domains/tasks/forms. This is combined with an implicit and with other filters if they are used. See filtering.
type
in: query
string
Subset the collection to those with this exact type value. Use | to separate multiple values. For example, ?type=Personal%20Savings matches only items whose type is Personal Savings; ?type=Personal%20Savings|Investment%20Account matches items whose type is Personal Savings or Investment Account. This is combined with an implicit and with other filters if they are used. See filtering.
label
in: query
string
Subset the collection to those with this label value. Use | to separate multiple values. For example, ?label=Email%20Verification matches only items whose label is Email Verification; ?label=Email%20Verification|Account%20Verification will match items whose label is Email Verification or Account Verification. This is combined with an implicit and with other filters if they are used. See filtering.

Example responses

OK.

{
  "_profile": "https://production.api.apiture.com/schemas/workflow/workflows/v1.3.2/profile.json",
  "start": 10,
  "limit": 10,
  "count": 67,
  "name": "workflows",
  "_links": {
    "self": {
      "href": "https://api.devbank.apiture.com/workflow/workflows?start=10&limit=10"
    },
    "first": {
      "href": "https://api.devbank.apiture.com/workflow/workflows?start=0&limit=10"
    },
    "next": {
      "href": "https://api.devbank.apiture.com/workflow/workflows?start=20&limit=10"
    },
    "collection": {
      "href": "https://api.devbank.apiture.com/workflow/workflows"
    }
  },
  "_embedded": {
    "items": [
      {
        "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
        "_profile": "https://production.api.apiture.com/schemas/workflow/summaryWorkflow/v1.3.2/profile.json",
        "_links": {
          "self": {
            "href": "https://api.devbank.apiture.com/workflow/workflowDefinitions/0399abed-fd3d-4830-a88b-30f38b8a365c"
          }
        },
        "name": "newAccountSelector",
        "domain": "https://production.api.apiture.com/domains/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://production.api.apiture.com/schemas/workflow/workflows/v1.3.2/profile.json",
  "_links": {
    "self": {
      "href": "https://api.devbank.apiture.com/workflow/workflows?start=10&limit=10"
    },
    "first": {
      "href": "https://api.devbank.apiture.com/workflow/workflows?start=0&limit=10"
    },
    "next": {
      "href": "https://api.devbank.apiture.com/workflow/workflows?start=20&limit=10"
    },
    "collection": {
      "href": "https://api.devbank.apiture.com/workflow/workflows"
    }
  },
  "start": 10,
  "limit": 10,
  "count": 67,
  "name": "workflows",
  "_embedded": {
    "items": [
      {
        "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
        "_profile": "https://production.api.apiture.com/schemas/workflow/summaryWorkflow/v1.3.2/profile.json",
        "_links": {
          "self": {
            "href": "https://api.devbank.apiture.com/workflow/workflows/0399abed-fd3d-4830-a88b-30f38b8a365c"
          }
        },
        "name": "newAccountSelector",
        "domain": "https://production.api.apiture.com/domains/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.

This error response may have one of the following type values:

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.

This error response may have one of the following type values:

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

const fetch = require('node-fetch');
const inputBody = '{
  "_profile": "https://production.api.apiture.com/schemas/workflow/createWorkflow/v1.1.2/profile.json",
  "_links": {
    "self": {
      "href": "https://api.devbank.apiture.com/workflow/tasks/f782aa4e-1926-4538-8289-6f401772d1d3"
    },
    "apiture:application": {
      "href": "https://api.devbank.apiture.com/accountApplications/applications/2f23b9fe-532f-4e82-943e-b079ea55aebc"
    }
  },
  "name": "newAccountSelector",
  "domain": "https://production.api.apiture.com/domains/acctApps",
  "label": "New Account Selector",
  "revisionLabel": "Use Terms and Conditions 1.0.4 as of 2018-09-25",
  "type": "somethingElse",
  "visibility": "hidden",
  "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": "https://production.api.apiture.com/domains/tasks/forms",
        "name": "userForm",
        "label": "Personal Information",
        "type": "form",
        "_links": {
          "self": {
            "href": "https://api.devbank.apiture.com/workflow/tasks/46913e8b-fb7f-4f31-92bf-7b263907ed95"
          }
        }
      },
      "accountOwnershipChoice": {
        "domain": "https://production.api.apiture.com/domains/tasks/prompts",
        "name": "accountOwnershipChoice",
        "type": "binaryChoice",
        "label": "Select Account Ownership Type",
        "_links": {
          "self": {
            "href": "https://api.devbank.apiture.com/workflow/tasks/3768afc0-1070-4372-b965-44f01cba70cb"
          }
        }
      },
      "jointOwnerInfoForm1": {
        "domain": "https://production.api.apiture.com/domains/tasks/forms",
        "name": "userForm",
        "type": "form",
        "label": "Joint Owner Personal Information",
        "_links": {
          "self": {
            "href": "https://api.devbank.apiture.com/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);
});

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));
  }
})

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 https://api.devbank.apiture.com/workflow/workflowDefinitions

Create a new workflow definition in the workflow definitions collection.

Body parameter

{
  "_profile": "https://production.api.apiture.com/schemas/workflow/createWorkflow/v1.1.2/profile.json",
  "_links": {
    "self": {
      "href": "https://api.devbank.apiture.com/workflow/tasks/f782aa4e-1926-4538-8289-6f401772d1d3"
    },
    "apiture:application": {
      "href": "https://api.devbank.apiture.com/accountApplications/applications/2f23b9fe-532f-4e82-943e-b079ea55aebc"
    }
  },
  "name": "newAccountSelector",
  "domain": "https://production.api.apiture.com/domains/acctApps",
  "label": "New Account Selector",
  "revisionLabel": "Use Terms and Conditions 1.0.4 as of 2018-09-25",
  "type": "somethingElse",
  "visibility": "hidden",
  "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": "https://production.api.apiture.com/domains/tasks/forms",
        "name": "userForm",
        "label": "Personal Information",
        "type": "form",
        "_links": {
          "self": {
            "href": "https://api.devbank.apiture.com/workflow/tasks/46913e8b-fb7f-4f31-92bf-7b263907ed95"
          }
        }
      },
      "accountOwnershipChoice": {
        "domain": "https://production.api.apiture.com/domains/tasks/prompts",
        "name": "accountOwnershipChoice",
        "type": "binaryChoice",
        "label": "Select Account Ownership Type",
        "_links": {
          "self": {
            "href": "https://api.devbank.apiture.com/workflow/tasks/3768afc0-1070-4372-b965-44f01cba70cb"
          }
        }
      },
      "jointOwnerInfoForm1": {
        "domain": "https://production.api.apiture.com/domains/tasks/forms",
        "name": "userForm",
        "type": "form",
        "label": "Joint Owner Personal Information",
        "_links": {
          "self": {
            "href": "https://api.devbank.apiture.com/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

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

Example responses

201 Response

{
  "_profile": "https://production.api.apiture.com/schemas/workflow/workflow/v1.2.2/profile.json",
  "_links": {
    "self": {
      "href": "https://api.devbank.apiture.com/workflow/workflows/0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:cancel": {
      "href": "https://api.devbank.apiture.com/canceledWorkflows?workflow=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:fail": {
      "href": "https://api.devbank.apiture.com/failedWorkflows?workflow=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:pause": {
      "href": "https://api.devbank.apiture.com/pausedWorkflows?workflow=0399abed-fd3d-4830-a88b-30f38b8a365c"
    }
  },
  "name": "newAccountSelector",
  "domain": "https://production.api.apiture.com/domains/acctApps",
  "label": "New Account Selector",
  "revisionLabel": "Use Terms and Conditions 1.0.4 as of 2018-09-25",
  "type": "somethingElse",
  "visibility": "hidden",
  "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
  },
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "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": "https://production.api.apiture.com/domains/tasks/forms",
        "name": "userForm",
        "label": "Personal Information",
        "type": "form",
        "_links": {
          "self": {
            "href": "https://api.devbank.apiture.com/workflow/tasks/46913e8b-fb7f-4f31-92bf-7b263907ed95"
          }
        }
      },
      "accountOwnershipChoice": {
        "domain": "https://production.api.apiture.com/domains/tasks/prompts",
        "name": "accountOwnershipChoice",
        "type": "binaryChoice",
        "label": "Select Account Ownership Type",
        "_links": {
          "self": {
            "href": "https://api.devbank.apiture.com/workflow/tasks/3768afc0-1070-4372-b965-44f01cba70cb"
          }
        }
      },
      "jointOwnerInfoForm1": {
        "domain": "https://production.api.apiture.com/domains/tasks/forms",
        "name": "userForm",
        "type": "form",
        "label": "Joint Owner Personal Information",
        "_links": {
          "self": {
            "href": "https://api.devbank.apiture.com/workflow/tasks/cb898688-05d1-4ecd-8684-d67da617eafa"
          }
        }
      }
    }
  },
  "state": "blocked",
  "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
HeaderLocation
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
HeaderETag
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.
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
409 Conflict

Conflict. There is already a definition with the given name/context.

This error response may have one of the following type values:

Schema: errorResponse

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

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);
});

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));
  }
})

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 https://api.devbank.apiture.com/workflow/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

ParameterDescription
workflowDefinitionId
in: path
string (required)
The unique identifier of this workflow definition. This is an opaque string.
If-None-Match
in: 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.

Example responses

200 Response

{
  "_profile": "https://production.api.apiture.com/schemas/workflow/workflow/v1.2.2/profile.json",
  "_links": {
    "self": {
      "href": "https://api.devbank.apiture.com/workflow/workflows/0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:cancel": {
      "href": "https://api.devbank.apiture.com/canceledWorkflows?workflow=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:fail": {
      "href": "https://api.devbank.apiture.com/failedWorkflows?workflow=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:pause": {
      "href": "https://api.devbank.apiture.com/pausedWorkflows?workflow=0399abed-fd3d-4830-a88b-30f38b8a365c"
    }
  },
  "name": "newAccountSelector",
  "domain": "https://production.api.apiture.com/domains/acctApps",
  "label": "New Account Selector",
  "revisionLabel": "Use Terms and Conditions 1.0.4 as of 2018-09-25",
  "type": "somethingElse",
  "visibility": "hidden",
  "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
  },
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "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": "https://production.api.apiture.com/domains/tasks/forms",
        "name": "userForm",
        "label": "Personal Information",
        "type": "form",
        "_links": {
          "self": {
            "href": "https://api.devbank.apiture.com/workflow/tasks/46913e8b-fb7f-4f31-92bf-7b263907ed95"
          }
        }
      },
      "accountOwnershipChoice": {
        "domain": "https://production.api.apiture.com/domains/tasks/prompts",
        "name": "accountOwnershipChoice",
        "type": "binaryChoice",
        "label": "Select Account Ownership Type",
        "_links": {
          "self": {
            "href": "https://api.devbank.apiture.com/workflow/tasks/3768afc0-1070-4372-b965-44f01cba70cb"
          }
        }
      },
      "jointOwnerInfoForm1": {
        "domain": "https://production.api.apiture.com/domains/tasks/forms",
        "name": "userForm",
        "type": "form",
        "label": "Joint Owner Personal Information",
        "_links": {
          "self": {
            "href": "https://api.devbank.apiture.com/workflow/tasks/cb898688-05d1-4ecd-8684-d67da617eafa"
          }
        }
      }
    }
  },
  "state": "blocked",
  "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
HeaderETag
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.
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.

This error response may have one of the following type values:

Schema: errorResponse

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

const fetch = require('node-fetch');
const inputBody = '{
  "_profile": "https://production.api.apiture.com/schemas/workflow/workflow/v1.2.2/profile.json",
  "_links": {
    "self": {
      "href": "https://api.devbank.apiture.com/workflow/workflows/0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:cancel": {
      "href": "https://api.devbank.apiture.com/canceledWorkflows?workflow=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:fail": {
      "href": "https://api.devbank.apiture.com/failedWorkflows?workflow=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:pause": {
      "href": "https://api.devbank.apiture.com/pausedWorkflows?workflow=0399abed-fd3d-4830-a88b-30f38b8a365c"
    }
  },
  "name": "newAccountSelector",
  "domain": "https://production.api.apiture.com/domains/acctApps",
  "label": "New Account Selector",
  "revisionLabel": "Use Terms and Conditions 1.0.4 as of 2018-09-25",
  "type": "somethingElse",
  "visibility": "hidden",
  "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
  },
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "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": "https://production.api.apiture.com/domains/tasks/forms",
        "name": "userForm",
        "label": "Personal Information",
        "type": "form",
        "_links": {
          "self": {
            "href": "https://api.devbank.apiture.com/workflow/tasks/46913e8b-fb7f-4f31-92bf-7b263907ed95"
          }
        }
      },
      "accountOwnershipChoice": {
        "domain": "https://production.api.apiture.com/domains/tasks/prompts",
        "name": "accountOwnershipChoice",
        "type": "binaryChoice",
        "label": "Select Account Ownership Type",
        "_links": {
          "self": {
            "href": "https://api.devbank.apiture.com/workflow/tasks/3768afc0-1070-4372-b965-44f01cba70cb"
          }
        }
      },
      "jointOwnerInfoForm1": {
        "domain": "https://production.api.apiture.com/domains/tasks/forms",
        "name": "userForm",
        "type": "form",
        "label": "Joint Owner Personal Information",
        "_links": {
          "self": {
            "href": "https://api.devbank.apiture.com/workflow/tasks/cb898688-05d1-4ecd-8684-d67da617eafa"
          }
        }
      }
    }
  },
  "state": "blocked",
  "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);
});

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));
  }
})

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 https://api.devbank.apiture.com/workflow/workflowDefinitions/{workflowDefinitionId}

Perform a complete replacement of this workflow definition.

Body parameter

{
  "_profile": "https://production.api.apiture.com/schemas/workflow/workflow/v1.2.2/profile.json",
  "_links": {
    "self": {
      "href": "https://api.devbank.apiture.com/workflow/workflows/0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:cancel": {
      "href": "https://api.devbank.apiture.com/canceledWorkflows?workflow=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:fail": {
      "href": "https://api.devbank.apiture.com/failedWorkflows?workflow=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:pause": {
      "href": "https://api.devbank.apiture.com/pausedWorkflows?workflow=0399abed-fd3d-4830-a88b-30f38b8a365c"
    }
  },
  "name": "newAccountSelector",
  "domain": "https://production.api.apiture.com/domains/acctApps",
  "label": "New Account Selector",
  "revisionLabel": "Use Terms and Conditions 1.0.4 as of 2018-09-25",
  "type": "somethingElse",
  "visibility": "hidden",
  "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
  },
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "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": "https://production.api.apiture.com/domains/tasks/forms",
        "name": "userForm",
        "label": "Personal Information",
        "type": "form",
        "_links": {
          "self": {
            "href": "https://api.devbank.apiture.com/workflow/tasks/46913e8b-fb7f-4f31-92bf-7b263907ed95"
          }
        }
      },
      "accountOwnershipChoice": {
        "domain": "https://production.api.apiture.com/domains/tasks/prompts",
        "name": "accountOwnershipChoice",
        "type": "binaryChoice",
        "label": "Select Account Ownership Type",
        "_links": {
          "self": {
            "href": "https://api.devbank.apiture.com/workflow/tasks/3768afc0-1070-4372-b965-44f01cba70cb"
          }
        }
      },
      "jointOwnerInfoForm1": {
        "domain": "https://production.api.apiture.com/domains/tasks/forms",
        "name": "userForm",
        "type": "form",
        "label": "Joint Owner Personal Information",
        "_links": {
          "self": {
            "href": "https://api.devbank.apiture.com/workflow/tasks/cb898688-05d1-4ecd-8684-d67da617eafa"
          }
        }
      }
    }
  },
  "state": "blocked",
  "dependencies": {
    "jointOwnerInfoForm1": [
      {
        "dependents": [
          "accountOwnershipChoice"
        ],
        "rule": "accountOwnershipChoice.choice == 'joint'"
      }
    ],
    "accountOwnershipChoice": [
      {
        "dependents": [
          "personalInfoForm1"
        ]
      }
    ]
  },
  "bindings": [
    {
      "source": "_.userProfile",
      "targets": [
        "userForm1.user",
        "jointUserForm1.spouse"
      ]
    }
  ]
}

Parameters

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

Example responses

OK.

{
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "_profile": "https://.api.apiture.com/schemas/workflow/v1.1.0/profile.json",
  "name": "personalCheckingApplicationWorkflow",
  "label": "Personal Checking Application Workflow",
  "description": "Personal Checking Application Workflow",
  "state": "definition",
  "schema": {
    "applicant": {
      "type": "object",
      "required": [
        "firstName",
        "lastName"
      ],
      "properties": {
        "firstName": {
          "type": "string"
        },
        "middleName": {
          "type": "string"
        },
        "lastName": {
          "type": "string"
        }
      }
    }
  },
  "tasks": {
    "personalInfoForm1": {
      "domain": "https://production.api.apiture.com/domains/tasks/forms",
      "name": "userForm",
      "label": "Personal Information",
      "type": "form",
      "_links": {
        "self": {
          "href": "https://api.devbank.apiture.com/workflow/tasks/46913e8b-fb7f-4f31-92bf-7b263907ed95"
        }
      }
    },
    "accountOwnershipChoice": {
      "domain": "https://production.api.apiture.com/domains/tasks/prompts",
      "name": "accountOwnershipChoice",
      "type": "binaryChoice",
      "label": "Select Account Ownership Type",
      "_links": {
        "self": {
          "href": "https://api.devbank.apiture.com/workflow/tasks/3768afc0-1070-4372-b965-44f01cba70cb"
        }
      }
    },
    "jointOwnerInfoForm1": {
      "domain": "https://production.api.apiture.com/domains/tasks/forms",
      "name": "userForm",
      "type": "form",
      "label": "Joint Owner Personal Information",
      "_links": {
        "self": {
          "href": "https://api.devbank.apiture.com/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": "https://api.devbank.apiture.com/workflow/workflowDefinitions/0399abed-fd3d-4830-a88b-30f38b8a365c"
    }
  },
  "_embedded": {}
}

200 Response

{
  "_profile": "https://production.api.apiture.com/schemas/workflow/workflow/v1.2.2/profile.json",
  "_links": {
    "self": {
      "href": "https://api.devbank.apiture.com/workflow/workflows/0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:cancel": {
      "href": "https://api.devbank.apiture.com/canceledWorkflows?workflow=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:fail": {
      "href": "https://api.devbank.apiture.com/failedWorkflows?workflow=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:pause": {
      "href": "https://api.devbank.apiture.com/pausedWorkflows?workflow=0399abed-fd3d-4830-a88b-30f38b8a365c"
    }
  },
  "name": "newAccountSelector",
  "domain": "https://production.api.apiture.com/domains/acctApps",
  "label": "New Account Selector",
  "revisionLabel": "Use Terms and Conditions 1.0.4 as of 2018-09-25",
  "type": "somethingElse",
  "visibility": "hidden",
  "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
  },
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "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": "https://production.api.apiture.com/domains/tasks/forms",
        "name": "userForm",
        "label": "Personal Information",
        "type": "form",
        "_links": {
          "self": {
            "href": "https://api.devbank.apiture.com/workflow/tasks/46913e8b-fb7f-4f31-92bf-7b263907ed95"
          }
        }
      },
      "accountOwnershipChoice": {
        "domain": "https://production.api.apiture.com/domains/tasks/prompts",
        "name": "accountOwnershipChoice",
        "type": "binaryChoice",
        "label": "Select Account Ownership Type",
        "_links": {
          "self": {
            "href": "https://api.devbank.apiture.com/workflow/tasks/3768afc0-1070-4372-b965-44f01cba70cb"
          }
        }
      },
      "jointOwnerInfoForm1": {
        "domain": "https://production.api.apiture.com/domains/tasks/forms",
        "name": "userForm",
        "type": "form",
        "label": "Joint Owner Personal Information",
        "_links": {
          "self": {
            "href": "https://api.devbank.apiture.com/workflow/tasks/cb898688-05d1-4ecd-8684-d67da617eafa"
          }
        }
      }
    }
  },
  "state": "blocked",
  "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
HeaderETag
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.
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.

This error response may have one of the following type values:

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.

This error response may have one of the following type values:

Schema: errorResponse
StatusDescription
409 Conflict

Conflict. There is already a definition with the given name/context.

This error response may have one of the following type values:

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.

This error response may have one of the following type values:

Schema: errorResponse

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

const fetch = require('node-fetch');
const inputBody = '{
  "_profile": "https://production.api.apiture.com/schemas/workflow/workflow/v1.2.2/profile.json",
  "_links": {
    "self": {
      "href": "https://api.devbank.apiture.com/workflow/workflows/0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:cancel": {
      "href": "https://api.devbank.apiture.com/canceledWorkflows?workflow=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:fail": {
      "href": "https://api.devbank.apiture.com/failedWorkflows?workflow=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:pause": {
      "href": "https://api.devbank.apiture.com/pausedWorkflows?workflow=0399abed-fd3d-4830-a88b-30f38b8a365c"
    }
  },
  "name": "newAccountSelector",
  "domain": "https://production.api.apiture.com/domains/acctApps",
  "label": "New Account Selector",
  "revisionLabel": "Use Terms and Conditions 1.0.4 as of 2018-09-25",
  "type": "somethingElse",
  "visibility": "hidden",
  "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
  },
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "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": "https://production.api.apiture.com/domains/tasks/forms",
        "name": "userForm",
        "label": "Personal Information",
        "type": "form",
        "_links": {
          "self": {
            "href": "https://api.devbank.apiture.com/workflow/tasks/46913e8b-fb7f-4f31-92bf-7b263907ed95"
          }
        }
      },
      "accountOwnershipChoice": {
        "domain": "https://production.api.apiture.com/domains/tasks/prompts",
        "name": "accountOwnershipChoice",
        "type": "binaryChoice",
        "label": "Select Account Ownership Type",
        "_links": {
          "self": {
            "href": "https://api.devbank.apiture.com/workflow/tasks/3768afc0-1070-4372-b965-44f01cba70cb"
          }
        }
      },
      "jointOwnerInfoForm1": {
        "domain": "https://production.api.apiture.com/domains/tasks/forms",
        "name": "userForm",
        "type": "form",
        "label": "Joint Owner Personal Information",
        "_links": {
          "self": {
            "href": "https://api.devbank.apiture.com/workflow/tasks/cb898688-05d1-4ecd-8684-d67da617eafa"
          }
        }
      }
    }
  },
  "state": "blocked",
  "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);
});

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));
  }
})

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 https://api.devbank.apiture.com/workflow/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

{
  "_profile": "https://production.api.apiture.com/schemas/workflow/workflow/v1.2.2/profile.json",
  "_links": {
    "self": {
      "href": "https://api.devbank.apiture.com/workflow/workflows/0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:cancel": {
      "href": "https://api.devbank.apiture.com/canceledWorkflows?workflow=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:fail": {
      "href": "https://api.devbank.apiture.com/failedWorkflows?workflow=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:pause": {
      "href": "https://api.devbank.apiture.com/pausedWorkflows?workflow=0399abed-fd3d-4830-a88b-30f38b8a365c"
    }
  },
  "name": "newAccountSelector",
  "domain": "https://production.api.apiture.com/domains/acctApps",
  "label": "New Account Selector",
  "revisionLabel": "Use Terms and Conditions 1.0.4 as of 2018-09-25",
  "type": "somethingElse",
  "visibility": "hidden",
  "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
  },
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "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": "https://production.api.apiture.com/domains/tasks/forms",
        "name": "userForm",
        "label": "Personal Information",
        "type": "form",
        "_links": {
          "self": {
            "href": "https://api.devbank.apiture.com/workflow/tasks/46913e8b-fb7f-4f31-92bf-7b263907ed95"
          }
        }
      },
      "accountOwnershipChoice": {
        "domain": "https://production.api.apiture.com/domains/tasks/prompts",
        "name": "accountOwnershipChoice",
        "type": "binaryChoice",
        "label": "Select Account Ownership Type",
        "_links": {
          "self": {
            "href": "https://api.devbank.apiture.com/workflow/tasks/3768afc0-1070-4372-b965-44f01cba70cb"
          }
        }
      },
      "jointOwnerInfoForm1": {
        "domain": "https://production.api.apiture.com/domains/tasks/forms",
        "name": "userForm",
        "type": "form",
        "label": "Joint Owner Personal Information",
        "_links": {
          "self": {
            "href": "https://api.devbank.apiture.com/workflow/tasks/cb898688-05d1-4ecd-8684-d67da617eafa"
          }
        }
      }
    }
  },
  "state": "blocked",
  "dependencies": {
    "jointOwnerInfoForm1": [
      {
        "dependents": [
          "accountOwnershipChoice"
        ],
        "rule": "accountOwnershipChoice.choice == 'joint'"
      }
    ],
    "accountOwnershipChoice": [
      {
        "dependents": [
          "personalInfoForm1"
        ]
      }
    ]
  },
  "bindings": [
    {
      "source": "_.userProfile",
      "targets": [
        "userForm1.user",
        "jointUserForm1.spouse"
      ]
    }
  ]
}

Parameters

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

Example responses

200 Response

{
  "_profile": "https://production.api.apiture.com/schemas/workflow/workflow/v1.2.2/profile.json",
  "_links": {
    "self": {
      "href": "https://api.devbank.apiture.com/workflow/workflows/0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:cancel": {
      "href": "https://api.devbank.apiture.com/canceledWorkflows?workflow=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:fail": {
      "href": "https://api.devbank.apiture.com/failedWorkflows?workflow=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:pause": {
      "href": "https://api.devbank.apiture.com/pausedWorkflows?workflow=0399abed-fd3d-4830-a88b-30f38b8a365c"
    }
  },
  "name": "newAccountSelector",
  "domain": "https://production.api.apiture.com/domains/acctApps",
  "label": "New Account Selector",
  "revisionLabel": "Use Terms and Conditions 1.0.4 as of 2018-09-25",
  "type": "somethingElse",
  "visibility": "hidden",
  "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
  },
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "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": "https://production.api.apiture.com/domains/tasks/forms",
        "name": "userForm",
        "label": "Personal Information",
        "type": "form",
        "_links": {
          "self": {
            "href": "https://api.devbank.apiture.com/workflow/tasks/46913e8b-fb7f-4f31-92bf-7b263907ed95"
          }
        }
      },
      "accountOwnershipChoice": {
        "domain": "https://production.api.apiture.com/domains/tasks/prompts",
        "name": "accountOwnershipChoice",
        "type": "binaryChoice",
        "label": "Select Account Ownership Type",
        "_links": {
          "self": {
            "href": "https://api.devbank.apiture.com/workflow/tasks/3768afc0-1070-4372-b965-44f01cba70cb"
          }
        }
      },
      "jointOwnerInfoForm1": {
        "domain": "https://production.api.apiture.com/domains/tasks/forms",
        "name": "userForm",
        "type": "form",
        "label": "Joint Owner Personal Information",
        "_links": {
          "self": {
            "href": "https://api.devbank.apiture.com/workflow/tasks/cb898688-05d1-4ecd-8684-d67da617eafa"
          }
        }
      }
    }
  },
  "state": "blocked",
  "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
HeaderETag
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.
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.

This error response may have one of the following type values:

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.

This error response may have one of the following type values:

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.

This error response may have one of the following type values:

Schema: errorResponse

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

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);
});

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));
  }
})

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 https://api.devbank.apiture.com/workflow/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 workflow instances. Deleting a workflow definition also deletes all of its revisions.

Parameters

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

Example responses

404 Response

{
  "_profile": "https://production.api.apiture.com/schemas/common/errorResponse/v2.1.1/profile.json",
  "_links": {
    "self": {
      "href": "https://api.devbank.apiture.com/apiName/resourceName/resourceId"
    }
  },
  "_error": {
    "_id": "2eae46e1-575c-4d69-8a8f-0a7b0115a4b3",
    "message": "Description of the error will appear here.",
    "statusCode": 422,
    "type": "specificErrorType",
    "attributes": {
      "value": "Optional attribute describing the error"
    },
    "remediation": "Optional instructions to remediate the error may appear here.",
    "occurredAt": "2018-01-25T05:50:52.375Z",
    "_links": {
      "describedby": {
        "href": "https://production.api.apiture.com/errors/specificErrorType"
      }
    },
    "_embedded": {
      "errors": []
    }
  }
}

Responses

StatusDescription
204 No Content
No Content. The resource was deleted successfully.
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.

This error response may have one of the following type values:

Schema: errorResponse
StatusDescription
409 Conflict

Conflict. The resource cannot be deleted, as this would introduce a data integrity issue.

This error response may have one of the following type values:

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

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);
});

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));
  }
})

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 https://api.devbank.apiture.com/workflow/workflowDefinitions/{workflowDefinitionId}/revisions

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

Parameters

ParameterDescription
workflowDefinitionId
in: path
string (required)
The unique identifier of this workflow definition. This is an opaque string.
start
in: 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.
format: int64
default: 0
limit
in: query
integer(int32)
The maximum number of workflow definition representations to return in this page.
format: int32
default: 100
sortBy
in: 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
in: query
string
Optional filter criteria. See filtering.
q
in: query
string
Optional search string. See searching.

Example responses

200 Response

{
  "_profile": "https://production.api.apiture.com/schemas/workflow/workflows/v1.3.2/profile.json",
  "_links": {
    "self": {
      "href": "https://api.devbank.apiture.com/workflow/workflows?start=10&limit=10"
    },
    "first": {
      "href": "https://api.devbank.apiture.com/workflow/workflows?start=0&limit=10"
    },
    "next": {
      "href": "https://api.devbank.apiture.com/workflow/workflows?start=20&limit=10"
    },
    "collection": {
      "href": "https://api.devbank.apiture.com/workflow/workflows"
    }
  },
  "start": 10,
  "limit": 10,
  "count": 67,
  "name": "workflows",
  "_embedded": {
    "items": [
      {
        "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
        "_profile": "https://production.api.apiture.com/schemas/workflow/summaryWorkflow/v1.3.2/profile.json",
        "_links": {
          "self": {
            "href": "https://api.devbank.apiture.com/workflow/workflows/0399abed-fd3d-4830-a88b-30f38b8a365c"
          }
        },
        "name": "newAccountSelector",
        "domain": "https://production.api.apiture.com/domains/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.

This error response may have one of the following type values:

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.

This error response may have one of the following type values:

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.

This error response may have one of the following type values:

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

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);
});

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));
  }
})

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 https://api.devbank.apiture.com/workflow/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

ParameterDescription
workflowDefinitionId
in: path
string (required)
The unique identifier of this workflow definition. This is an opaque string.
If-Match
in: header
string
The entity tag that was returned in the ETag response. This must match the current entity tag of the resource.
revisionPolicy
in: 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 explicit 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:

  • A is already a reference to a specific revision 2018-10-10T10:10:10.10Z
  • B refers to a revisionless task definition and B has not been modified since the last revision 2018-10-20T20:20:20.000Z was created;
  • C refers to a revisionless task definition but C has been modified since its last revision was created;

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.
enum values: none, taskRevisions

Example responses

201 Response

{
  "_profile": "https://production.api.apiture.com/schemas/workflow/workflow/v1.2.2/profile.json",
  "_links": {
    "self": {
      "href": "https://api.devbank.apiture.com/workflow/workflows/0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:cancel": {
      "href": "https://api.devbank.apiture.com/canceledWorkflows?workflow=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:fail": {
      "href": "https://api.devbank.apiture.com/failedWorkflows?workflow=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:pause": {
      "href": "https://api.devbank.apiture.com/pausedWorkflows?workflow=0399abed-fd3d-4830-a88b-30f38b8a365c"
    }
  },
  "name": "newAccountSelector",
  "domain": "https://production.api.apiture.com/domains/acctApps",
  "label": "New Account Selector",
  "revisionLabel": "Use Terms and Conditions 1.0.4 as of 2018-09-25",
  "type": "somethingElse",
  "visibility": "hidden",
  "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
  },
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "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": "https://production.api.apiture.com/domains/tasks/forms",
        "name": "userForm",
        "label": "Personal Information",
        "type": "form",
        "_links": {
          "self": {
            "href": "https://api.devbank.apiture.com/workflow/tasks/46913e8b-fb7f-4f31-92bf-7b263907ed95"
          }
        }
      },
      "accountOwnershipChoice": {
        "domain": "https://production.api.apiture.com/domains/tasks/prompts",
        "name": "accountOwnershipChoice",
        "type": "binaryChoice",
        "label": "Select Account Ownership Type",
        "_links": {
          "self": {
            "href": "https://api.devbank.apiture.com/workflow/tasks/3768afc0-1070-4372-b965-44f01cba70cb"
          }
        }
      },
      "jointOwnerInfoForm1": {
        "domain": "https://production.api.apiture.com/domains/tasks/forms",
        "name": "userForm",
        "type": "form",
        "label": "Joint Owner Personal Information",
        "_links": {
          "self": {
            "href": "https://api.devbank.apiture.com/workflow/tasks/cb898688-05d1-4ecd-8684-d67da617eafa"
          }
        }
      }
    }
  },
  "state": "blocked",
  "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.
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.

This error response may have one of the following type values:

Schema: errorResponse

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

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);
});

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));
  }
})

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 https://api.devbank.apiture.com/workflow/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

ParameterDescription
workflowDefinitionId
in: path
string (required)
The unique identifier of this workflow definition. This is an opaque string.
revisionId
in: 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
in: 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.

Example responses

200 Response

{
  "_profile": "https://production.api.apiture.com/schemas/workflow/workflow/v1.2.2/profile.json",
  "_links": {
    "self": {
      "href": "https://api.devbank.apiture.com/workflow/workflows/0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:cancel": {
      "href": "https://api.devbank.apiture.com/canceledWorkflows?workflow=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:fail": {
      "href": "https://api.devbank.apiture.com/failedWorkflows?workflow=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:pause": {
      "href": "https://api.devbank.apiture.com/pausedWorkflows?workflow=0399abed-fd3d-4830-a88b-30f38b8a365c"
    }
  },
  "name": "newAccountSelector",
  "domain": "https://production.api.apiture.com/domains/acctApps",
  "label": "New Account Selector",
  "revisionLabel": "Use Terms and Conditions 1.0.4 as of 2018-09-25",
  "type": "somethingElse",
  "visibility": "hidden",
  "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
  },
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "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": "https://production.api.apiture.com/domains/tasks/forms",
        "name": "userForm",
        "label": "Personal Information",
        "type": "form",
        "_links": {
          "self": {
            "href": "https://api.devbank.apiture.com/workflow/tasks/46913e8b-fb7f-4f31-92bf-7b263907ed95"
          }
        }
      },
      "accountOwnershipChoice": {
        "domain": "https://production.api.apiture.com/domains/tasks/prompts",
        "name": "accountOwnershipChoice",
        "type": "binaryChoice",
        "label": "Select Account Ownership Type",
        "_links": {
          "self": {
            "href": "https://api.devbank.apiture.com/workflow/tasks/3768afc0-1070-4372-b965-44f01cba70cb"
          }
        }
      },
      "jointOwnerInfoForm1": {
        "domain": "https://production.api.apiture.com/domains/tasks/forms",
        "name": "userForm",
        "type": "form",
        "label": "Joint Owner Personal Information",
        "_links": {
          "self": {
            "href": "https://api.devbank.apiture.com/workflow/tasks/cb898688-05d1-4ecd-8684-d67da617eafa"
          }
        }
      }
    }
  },
  "state": "blocked",
  "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
HeaderETag
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.
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.

This error response may have one of the following type values:

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

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

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);
});

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));
  }
})

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 https://api.devbank.apiture.com/workflow/workflows

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

Parameters

ParameterDescription
start
in: 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.
format: int64
default: 0
limit
in: query
integer(int32)
The maximum number of workflow representations to return in this page.
format: int32
default: 100
sortBy
in: query
string
Optional sort criteria. See sort criteria format, such as ?sortBy=field1,-field2.
This collection may be sorted by the following properties:
state
name
domain
type
label.
filter
in: query
string
Optional filter criteria. See filtering.
This collection may be filtered by the following properties and functions:
• Property state using functions eq, ne, in
• Property name using functions eq, ne, lt, le, gt, ge, startsWith, endsWith, contains, search
• Property domain using functions eq, ne, lt, le, gt, ge, startsWith, endsWith, contains, search
• Property type using functions eq, ne, in
• Property label using functions eq, ne, lt, le, gt, ge, startsWith, endsWith, contains, search
• Property _id using functions eq, in.
q
in: query
string
Optional search string. See searching.
state
in: query
string
Subset the collection to those whose state matches this value. Use | to separate multiple values. For example, ?state=pending matches only items whose state is pending; ?state=removed|inactive matches items whose state is removed or inactive. This is combined with an implicit and with other filters if they are used. See filtering.
enum values: pending, definition, blocked, removed, running, paused, completed, failed, canceled
name
in: query
string
Subset the collection to those with this name value. Use | to separate multiple values. For example, ?name=Bartell will match only items whose name is Bartell; ?name=Bartell|kirsten will match items whose name is Bartell or kirsten. This is combined with an implicit and with other filters if they are used. See filtering.
domain
in: query
string
Subset the collection to those with this domain value. Use | to separate multiple values. For example, ?domain=https://production.api.apiture.com/domains/acctApps matches only items whose domain is https://production.api.apiture.com/domains/acctApps; ?domain=https://production.api.apiture.com/domains/acctApps|https://production.api.apiture.com/domains/tasks/forms will match items whose domain is https://production.api.apiture.com/domains/acctApps or https://production.api.apiture.com/domains/tasks/forms. This is combined with an implicit and with other filters if they are used. See filtering.
type
in: query
string
Subset the collection to those with this exact type value. Use | to separate multiple values. For example, ?type=Personal%20Savings matches only items whose type is Personal Savings; ?type=Personal%20Savings|Investment%20Account matches items whose type is Personal Savings or Investment Account. This is combined with an implicit and with other filters if they are used. See filtering.
label
in: query
string
Subset the collection to those with this label value. Use | to separate multiple values. For example, ?label=Email%20Verification matches only items whose label is Email Verification; ?label=Email%20Verification|Account%20Verification will match items whose label is Email Verification or Account Verification. This is combined with an implicit and with other filters if they are used. See filtering.

Example responses

200 Response

{
  "_profile": "https://production.api.apiture.com/schemas/workflow/workflows/v1.3.2/profile.json",
  "_links": {
    "self": {
      "href": "https://api.devbank.apiture.com/workflow/workflows?start=10&limit=10"
    },
    "first": {
      "href": "https://api.devbank.apiture.com/workflow/workflows?start=0&limit=10"
    },
    "next": {
      "href": "https://api.devbank.apiture.com/workflow/workflows?start=20&limit=10"
    },
    "collection": {
      "href": "https://api.devbank.apiture.com/workflow/workflows"
    }
  },
  "start": 10,
  "limit": 10,
  "count": 67,
  "name": "workflows",
  "_embedded": {
    "items": [
      {
        "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
        "_profile": "https://production.api.apiture.com/schemas/workflow/summaryWorkflow/v1.3.2/profile.json",
        "_links": {
          "self": {
            "href": "https://api.devbank.apiture.com/workflow/workflows/0399abed-fd3d-4830-a88b-30f38b8a365c"
          }
        },
        "name": "newAccountSelector",
        "domain": "https://production.api.apiture.com/domains/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.

This error response may have one of the following type values:

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.

This error response may have one of the following type values:

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

const fetch = require('node-fetch');
const inputBody = '{
  "_profile": "https://production.api.apiture.com/schemas/workflow/createWorkflow/v1.1.2/profile.json",
  "_links": {
    "self": {
      "href": "https://api.devbank.apiture.com/workflow/tasks/f782aa4e-1926-4538-8289-6f401772d1d3"
    },
    "apiture:application": {
      "href": "https://api.devbank.apiture.com/accountApplications/applications/2f23b9fe-532f-4e82-943e-b079ea55aebc"
    }
  },
  "name": "newAccountSelector",
  "domain": "https://production.api.apiture.com/domains/acctApps",
  "label": "New Account Selector",
  "revisionLabel": "Use Terms and Conditions 1.0.4 as of 2018-09-25",
  "type": "somethingElse",
  "visibility": "hidden",
  "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": "https://production.api.apiture.com/domains/tasks/forms",
        "name": "userForm",
        "label": "Personal Information",
        "type": "form",
        "_links": {
          "self": {
            "href": "https://api.devbank.apiture.com/workflow/tasks/46913e8b-fb7f-4f31-92bf-7b263907ed95"
          }
        }
      },
      "accountOwnershipChoice": {
        "domain": "https://production.api.apiture.com/domains/tasks/prompts",
        "name": "accountOwnershipChoice",
        "type": "binaryChoice",
        "label": "Select Account Ownership Type",
        "_links": {
          "self": {
            "href": "https://api.devbank.apiture.com/workflow/tasks/3768afc0-1070-4372-b965-44f01cba70cb"
          }
        }
      },
      "jointOwnerInfoForm1": {
        "domain": "https://production.api.apiture.com/domains/tasks/forms",
        "name": "userForm",
        "type": "form",
        "label": "Joint Owner Personal Information",
        "_links": {
          "self": {
            "href": "https://api.devbank.apiture.com/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);
});

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));
  }
})

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 https://api.devbank.apiture.com/workflow/workflows

Create a new workflow instance from a workflow definition.

The default behavior is to start the workflow automatically upon creation; initial tasks (those with no input dependencies) will be started. If called with ?deferStart=true, the workflow is not started automatically but left in the pending state; start the workflow later with startWorkflow. Once started, the state of the new workflow may be running or blocked depending on the initial tasks.

Body parameter

{
  "_profile": "https://production.api.apiture.com/schemas/workflow/createWorkflow/v1.1.2/profile.json",
  "_links": {
    "self": {
      "href": "https://api.devbank.apiture.com/workflow/tasks/f782aa4e-1926-4538-8289-6f401772d1d3"
    },
    "apiture:application": {
      "href": "https://api.devbank.apiture.com/accountApplications/applications/2f23b9fe-532f-4e82-943e-b079ea55aebc"
    }
  },
  "name": "newAccountSelector",
  "domain": "https://production.api.apiture.com/domains/acctApps",
  "label": "New Account Selector",
  "revisionLabel": "Use Terms and Conditions 1.0.4 as of 2018-09-25",
  "type": "somethingElse",
  "visibility": "hidden",
  "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": "https://production.api.apiture.com/domains/tasks/forms",
        "name": "userForm",
        "label": "Personal Information",
        "type": "form",
        "_links": {
          "self": {
            "href": "https://api.devbank.apiture.com/workflow/tasks/46913e8b-fb7f-4f31-92bf-7b263907ed95"
          }
        }
      },
      "accountOwnershipChoice": {
        "domain": "https://production.api.apiture.com/domains/tasks/prompts",
        "name": "accountOwnershipChoice",
        "type": "binaryChoice",
        "label": "Select Account Ownership Type",
        "_links": {
          "self": {
            "href": "https://api.devbank.apiture.com/workflow/tasks/3768afc0-1070-4372-b965-44f01cba70cb"
          }
        }
      },
      "jointOwnerInfoForm1": {
        "domain": "https://production.api.apiture.com/domains/tasks/forms",
        "name": "userForm",
        "type": "form",
        "label": "Joint Owner Personal Information",
        "_links": {
          "self": {
            "href": "https://api.devbank.apiture.com/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

ParameterDescription
definition
in: 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.
deferStart
in: query
boolean
Optionally defer starting a workflow upon creation, the default behavior is to start the workflow upon creation. ?deferStart=true will leave the workflow with a state of pending, it can be started via startWorkflow.
default: false
body createWorkflow (required)
The data necessary to create a new workflow.

Example responses

201 Response

{
  "_profile": "https://production.api.apiture.com/schemas/workflow/workflow/v1.2.2/profile.json",
  "_links": {
    "self": {
      "href": "https://api.devbank.apiture.com/workflow/workflows/0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:cancel": {
      "href": "https://api.devbank.apiture.com/canceledWorkflows?workflow=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:fail": {
      "href": "https://api.devbank.apiture.com/failedWorkflows?workflow=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:pause": {
      "href": "https://api.devbank.apiture.com/pausedWorkflows?workflow=0399abed-fd3d-4830-a88b-30f38b8a365c"
    }
  },
  "name": "newAccountSelector",
  "domain": "https://production.api.apiture.com/domains/acctApps",
  "label": "New Account Selector",
  "revisionLabel": "Use Terms and Conditions 1.0.4 as of 2018-09-25",
  "type": "somethingElse",
  "visibility": "hidden",
  "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
  },
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "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": "https://production.api.apiture.com/domains/tasks/forms",
        "name": "userForm",
        "label": "Personal Information",
        "type": "form",
        "_links": {
          "self": {
            "href": "https://api.devbank.apiture.com/workflow/tasks/46913e8b-fb7f-4f31-92bf-7b263907ed95"
          }
        }
      },
      "accountOwnershipChoice": {
        "domain": "https://production.api.apiture.com/domains/tasks/prompts",
        "name": "accountOwnershipChoice",
        "type": "binaryChoice",
        "label": "Select Account Ownership Type",
        "_links": {
          "self": {
            "href": "https://api.devbank.apiture.com/workflow/tasks/3768afc0-1070-4372-b965-44f01cba70cb"
          }
        }
      },
      "jointOwnerInfoForm1": {
        "domain": "https://production.api.apiture.com/domains/tasks/forms",
        "name": "userForm",
        "type": "form",
        "label": "Joint Owner Personal Information",
        "_links": {
          "self": {
            "href": "https://api.devbank.apiture.com/workflow/tasks/cb898688-05d1-4ecd-8684-d67da617eafa"
          }
        }
      }
    }
  },
  "state": "blocked",
  "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
HeaderLocation
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
HeaderETag
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.
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.

This error response may have one of the following type values:

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.

This error response may have one of the following type values:

Schema: errorResponse

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

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);
});

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));
  }
})

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 https://api.devbank.apiture.com/workflow/workflows/{workflowId}

Return a HAL representation of this workflow resource.

Parameters

ParameterDescription
workflowId
in: path
string (required)
The unique identifier of this workflow. This is an opaque string.
If-None-Match
in: 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
in: 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 - A list of summary tasks specific to this workflow instance.
  • nextInteractiveTask - The next visible and running task within this workflow instance.

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

Example responses

200 Response

{
  "_profile": "https://production.api.apiture.com/schemas/workflow/workflow/v1.2.2/profile.json",
  "_links": {
    "self": {
      "href": "https://api.devbank.apiture.com/workflow/workflows/0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:cancel": {
      "href": "https://api.devbank.apiture.com/canceledWorkflows?workflow=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:fail": {
      "href": "https://api.devbank.apiture.com/failedWorkflows?workflow=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:pause": {
      "href": "https://api.devbank.apiture.com/pausedWorkflows?workflow=0399abed-fd3d-4830-a88b-30f38b8a365c"
    }
  },
  "name": "newAccountSelector",
  "domain": "https://production.api.apiture.com/domains/acctApps",
  "label": "New Account Selector",
  "revisionLabel": "Use Terms and Conditions 1.0.4 as of 2018-09-25",
  "type": "somethingElse",
  "visibility": "hidden",
  "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
  },
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "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": "https://production.api.apiture.com/domains/tasks/forms",
        "name": "userForm",
        "label": "Personal Information",
        "type": "form",
        "_links": {
          "self": {
            "href": "https://api.devbank.apiture.com/workflow/tasks/46913e8b-fb7f-4f31-92bf-7b263907ed95"
          }
        }
      },
      "accountOwnershipChoice": {
        "domain": "https://production.api.apiture.com/domains/tasks/prompts",
        "name": "accountOwnershipChoice",
        "type": "binaryChoice",
        "label": "Select Account Ownership Type",
        "_links": {
          "self": {
            "href": "https://api.devbank.apiture.com/workflow/tasks/3768afc0-1070-4372-b965-44f01cba70cb"
          }
        }
      },
      "jointOwnerInfoForm1": {
        "domain": "https://production.api.apiture.com/domains/tasks/forms",
        "name": "userForm",
        "type": "form",
        "label": "Joint Owner Personal Information",
        "_links": {
          "self": {
            "href": "https://api.devbank.apiture.com/workflow/tasks/cb898688-05d1-4ecd-8684-d67da617eafa"
          }
        }
      }
    }
  },
  "state": "blocked",
  "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
HeaderETag
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.
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.

This error response may have one of the following type values:

Schema: errorResponse

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

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);
});

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));
  }
})

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 https://api.devbank.apiture.com/workflow/workflows/{workflowId}

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

Parameters

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

Example responses

404 Response

{
  "_profile": "https://production.api.apiture.com/schemas/common/errorResponse/v2.1.1/profile.json",
  "_links": {
    "self": {
      "href": "https://api.devbank.apiture.com/apiName/resourceName/resourceId"
    }
  },
  "_error": {
    "_id": "2eae46e1-575c-4d69-8a8f-0a7b0115a4b3",
    "message": "Description of the error will appear here.",
    "statusCode": 422,
    "type": "specificErrorType",
    "attributes": {
      "value": "Optional attribute describing the error"
    },
    "remediation": "Optional instructions to remediate the error may appear here.",
    "occurredAt": "2018-01-25T05:50:52.375Z",
    "_links": {
      "describedby": {
        "href": "https://production.api.apiture.com/errors/specificErrorType"
      }
    },
    "_embedded": {
      "errors": []
    }
  }
}

Responses

StatusDescription
204 No Content
No Content. The resource was deleted successfully.
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.

This error response may have one of the following type values:

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

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

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);
});

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));
  }
})

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 https://api.devbank.apiture.com/workflow/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

ParameterDescription
workflowId
in: path
string (required)
The unique identifier of this workflow. This is an opaque string.
If-None-Match
in: 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.

Example responses

200 Response

{
  "_profile": "https://production.api.apiture.com/schemas/workflow/visibleTasks/v1.3.2/profile.json",
  "_links": {
    "self": {
      "href": "https://api.devbank.apiture.com/apiName/resourceName/resourceId"
    }
  },
  "name": "visibleTasks",
  "_embedded": {
    "items": [
      {
        "_id": "4c44d065-1f4c-4bf8-b76d-d0514cd2acff",
        "domain": "https://production.api.apiture.com/domains/acctApps",
        "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": "https://api.devbank.apiture.com/workflow/tasks/4c44d065-1f4c-4bf8-b76d-d0514cd2acff"
          }
        }
      },
      {
        "_id": "32e4a075-bd33-43ee-a50a-ca499bbf3c6e",
        "domain": "https://production.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": "https://api.devbank.apiture.com/workflow/tasks/32e4a075-bd33-43ee-a50a-ca499bbf3c6e"
          }
        },
        "subTasks": [
          {
            "_id": "5ce72b5c-361f-4ba2-b0a5-92f7e18764bd",
            "domain": "https://production.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": "https://api.devbank.apiture.com/workflow/tasks/5ce72b5c-361f-4ba2-b0a5-92f7e18764bd"
              }
            }
          }
        ]
      },
      {
        "_id": "4386bdee-ffe4-47ac-b313-87fd735be9ea",
        "domain": "https://production.api.apiture.com/domains/acctApps",
        "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": "https://api.devbank.apiture.com/workflow/tasks/4386bdee-ffe4-47ac-b313-87fd735be9ea"
          }
        }
      }
    ]
  }
}

Responses

StatusDescription
200 OK
OK.
Schema: visibleTasks
HeaderETag
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.
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.

This error response may have one of the following type values:

Schema: errorResponse

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

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);
});

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));
  }
})

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 https://api.devbank.apiture.com/workflow/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

ParameterDescription
workflowId
in: path
string (required)
The unique identifier of this workflow. This is an opaque string.

Example responses

200 Response

{}

Responses

StatusDescription
200 OK
OK.
Schema: Inline
HeaderETag
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.
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.

This error response may have one of the following type values:

Schema: errorResponse

Response Schema

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

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);
});

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));
  }
})

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 https://api.devbank.apiture.com/workflow/workflows/{workflowId}/values

Update 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. 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

ParameterDescription
workflowId
in: path
string (required)
The unique identifier of this workflow. This is an opaque string.
body attributes (required)
A set of named values.

Example responses

200 Response

{}

Responses

StatusDescription
200 OK
OK.
Schema: Inline
HeaderETag
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.
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.

This error response may have one of the following type values:

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.

This error response may have one of the following type values:

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.

This error response may have one of the following type values:

Schema: errorResponse

Response Schema

Status Code 200

Property Name Description
Attributes (v2.1.0) object
An optional map of name/value pairs which contains additional dynamic data about the resource.

This schema was resolved from common/attributes.

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

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);
});

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));
  }
})

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 https://api.devbank.apiture.com/workflow/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

ParameterDescription
workflowId
in: path
string (required)
The unique identifier of this workflow. This is an opaque string.
valueName
in: 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 | '-' | '_']*.

Example responses

200 Response

{}

Responses

StatusDescription
200 OK
OK.
Schema: Inline
HeaderETag
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.
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.

This error response may have one of the following type values:

Schema: errorResponse

Response Schema

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

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);
});

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));
  }
})

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 https://api.devbank.apiture.com/workflow/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

ParameterDescription
workflowId
in: path
string (required)
The unique identifier of this workflow. This is an opaque string.
valueName
in: 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 attributes (required)
A set of named values.

Example responses

200 Response

{}

Responses

StatusDescription
200 OK
OK.
Schema: Inline
HeaderETag
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.
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.

This error response may have one of the following type values:

Schema: errorResponse

Response Schema

Status Code 200

Property Name Description
Attributes (v2.1.0) object
An optional map of name/value pairs which contains additional dynamic data about the resource.

This schema was resolved from common/attributes.

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

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);
});

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));
  }
})

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 https://api.devbank.apiture.com/workflow/runningWorkflows

Change the state of a workflow to running. This is allowed if the state is pending or 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

ParameterDescription
workflow
in: query
string (required)
A server-supplied value which identifies the workflow instance.

Example responses

200 Response

{
  "_profile": "https://production.api.apiture.com/schemas/workflow/workflow/v1.2.2/profile.json",
  "_links": {
    "self": {
      "href": "https://api.devbank.apiture.com/workflow/workflows/0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:cancel": {
      "href": "https://api.devbank.apiture.com/canceledWorkflows?workflow=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:fail": {
      "href": "https://api.devbank.apiture.com/failedWorkflows?workflow=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:pause": {
      "href": "https://api.devbank.apiture.com/pausedWorkflows?workflow=0399abed-fd3d-4830-a88b-30f38b8a365c"
    }
  },
  "name": "newAccountSelector",
  "domain": "https://production.api.apiture.com/domains/acctApps",
  "label": "New Account Selector",
  "revisionLabel": "Use Terms and Conditions 1.0.4 as of 2018-09-25",
  "type": "somethingElse",
  "visibility": "hidden",
  "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
  },
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "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": "https://production.api.apiture.com/domains/tasks/forms",
        "name": "userForm",
        "label": "Personal Information",
        "type": "form",
        "_links": {
          "self": {
            "href": "https://api.devbank.apiture.com/workflow/tasks/46913e8b-fb7f-4f31-92bf-7b263907ed95"
          }
        }
      },
      "accountOwnershipChoice": {
        "domain": "https://production.api.apiture.com/domains/tasks/prompts",
        "name": "accountOwnershipChoice",
        "type": "binaryChoice",
        "label": "Select Account Ownership Type",
        "_links": {
          "self": {
            "href": "https://api.devbank.apiture.com/workflow/tasks/3768afc0-1070-4372-b965-44f01cba70cb"
          }
        }
      },
      "jointOwnerInfoForm1": {
        "domain": "https://production.api.apiture.com/domains/tasks/forms",
        "name": "userForm",
        "type": "form",
        "label": "Joint Owner Personal Information",
        "_links": {
          "self": {
            "href": "https://api.devbank.apiture.com/workflow/tasks/cb898688-05d1-4ecd-8684-d67da617eafa"
          }
        }
      }
    }
  },
  "state": "blocked",
  "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
422 Unprocessable Entity

Unprocessable Entity. The workflow parameter does not name a valid workflow.

This error response may have one of the following type values:

Schema: errorResponse

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

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);
});

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));
  }
})

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 https://api.devbank.apiture.com/workflow/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

ParameterDescription
workflow
in: query
string (required)
A server-supplied value which identifies the workflow instance.

Example responses

200 Response

{
  "_profile": "https://production.api.apiture.com/schemas/workflow/workflow/v1.2.2/profile.json",
  "_links": {
    "self": {
      "href": "https://api.devbank.apiture.com/workflow/workflows/0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:cancel": {
      "href": "https://api.devbank.apiture.com/canceledWorkflows?workflow=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:fail": {
      "href": "https://api.devbank.apiture.com/failedWorkflows?workflow=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:pause": {
      "href": "https://api.devbank.apiture.com/pausedWorkflows?workflow=0399abed-fd3d-4830-a88b-30f38b8a365c"
    }
  },
  "name": "newAccountSelector",
  "domain": "https://production.api.apiture.com/domains/acctApps",
  "label": "New Account Selector",
  "revisionLabel": "Use Terms and Conditions 1.0.4 as of 2018-09-25",
  "type": "somethingElse",
  "visibility": "hidden",
  "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
  },
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "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": "https://production.api.apiture.com/domains/tasks/forms",
        "name": "userForm",
        "label": "Personal Information",
        "type": "form",
        "_links": {
          "self": {
            "href": "https://api.devbank.apiture.com/workflow/tasks/46913e8b-fb7f-4f31-92bf-7b263907ed95"
          }
        }
      },
      "accountOwnershipChoice": {
        "domain": "https://production.api.apiture.com/domains/tasks/prompts",
        "name": "accountOwnershipChoice",
        "type": "binaryChoice",
        "label": "Select Account Ownership Type",
        "_links": {
          "self": {
            "href": "https://api.devbank.apiture.com/workflow/tasks/3768afc0-1070-4372-b965-44f01cba70cb"
          }
        }
      },
      "jointOwnerInfoForm1": {
        "domain": "https://production.api.apiture.com/domains/tasks/forms",
        "name": "userForm",
        "type": "form",
        "label": "Joint Owner Personal Information",
        "_links": {
          "self": {
            "href": "https://api.devbank.apiture.com/workflow/tasks/cb898688-05d1-4ecd-8684-d67da617eafa"
          }
        }
      }
    }
  },
  "state": "blocked",
  "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
422 Unprocessable Entity

Unprocessable Entity. The workflow parameter does not name a valid workflow.

This error response may have one of the following type values:

Schema: errorResponse

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

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);
});

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));
  }
})

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 https://api.devbank.apiture.com/workflow/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

ParameterDescription
workflow
in: query
string (required)
A server-supplied value which identifies the workflow instance.

Example responses

200 Response

{
  "_profile": "https://production.api.apiture.com/schemas/workflow/workflow/v1.2.2/profile.json",
  "_links": {
    "self": {
      "href": "https://api.devbank.apiture.com/workflow/workflows/0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:cancel": {
      "href": "https://api.devbank.apiture.com/canceledWorkflows?workflow=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:fail": {
      "href": "https://api.devbank.apiture.com/failedWorkflows?workflow=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:pause": {
      "href": "https://api.devbank.apiture.com/pausedWorkflows?workflow=0399abed-fd3d-4830-a88b-30f38b8a365c"
    }
  },
  "name": "newAccountSelector",
  "domain": "https://production.api.apiture.com/domains/acctApps",
  "label": "New Account Selector",
  "revisionLabel": "Use Terms and Conditions 1.0.4 as of 2018-09-25",
  "type": "somethingElse",
  "visibility": "hidden",
  "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
  },
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "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": "https://production.api.apiture.com/domains/tasks/forms",
        "name": "userForm",
        "label": "Personal Information",
        "type": "form",
        "_links": {
          "self": {
            "href": "https://api.devbank.apiture.com/workflow/tasks/46913e8b-fb7f-4f31-92bf-7b263907ed95"
          }
        }
      },
      "accountOwnershipChoice": {
        "domain": "https://production.api.apiture.com/domains/tasks/prompts",
        "name": "accountOwnershipChoice",
        "type": "binaryChoice",
        "label": "Select Account Ownership Type",
        "_links": {
          "self": {
            "href": "https://api.devbank.apiture.com/workflow/tasks/3768afc0-1070-4372-b965-44f01cba70cb"
          }
        }
      },
      "jointOwnerInfoForm1": {
        "domain": "https://production.api.apiture.com/domains/tasks/forms",
        "name": "userForm",
        "type": "form",
        "label": "Joint Owner Personal Information",
        "_links": {
          "self": {
            "href": "https://api.devbank.apiture.com/workflow/tasks/cb898688-05d1-4ecd-8684-d67da617eafa"
          }
        }
      }
    }
  },
  "state": "blocked",
  "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
422 Unprocessable Entity

Unprocessable Entity. The workflow parameter does not name a valid workflow.

This error response may have one of the following type values:

Schema: errorResponse

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

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);
});

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));
  }
})

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 https://api.devbank.apiture.com/workflow/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

ParameterDescription
workflow
in: query
string (required)
A server-supplied value which identifies the workflow instance.

Example responses

200 Response

{
  "_profile": "https://production.api.apiture.com/schemas/workflow/workflow/v1.2.2/profile.json",
  "_links": {
    "self": {
      "href": "https://api.devbank.apiture.com/workflow/workflows/0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:cancel": {
      "href": "https://api.devbank.apiture.com/canceledWorkflows?workflow=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:fail": {
      "href": "https://api.devbank.apiture.com/failedWorkflows?workflow=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:pause": {
      "href": "https://api.devbank.apiture.com/pausedWorkflows?workflow=0399abed-fd3d-4830-a88b-30f38b8a365c"
    }
  },
  "name": "newAccountSelector",
  "domain": "https://production.api.apiture.com/domains/acctApps",
  "label": "New Account Selector",
  "revisionLabel": "Use Terms and Conditions 1.0.4 as of 2018-09-25",
  "type": "somethingElse",
  "visibility": "hidden",
  "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
  },
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "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": "https://production.api.apiture.com/domains/tasks/forms",
        "name": "userForm",
        "label": "Personal Information",
        "type": "form",
        "_links": {
          "self": {
            "href": "https://api.devbank.apiture.com/workflow/tasks/46913e8b-fb7f-4f31-92bf-7b263907ed95"
          }
        }
      },
      "accountOwnershipChoice": {
        "domain": "https://production.api.apiture.com/domains/tasks/prompts",
        "name": "accountOwnershipChoice",
        "type": "binaryChoice",
        "label": "Select Account Ownership Type",
        "_links": {
          "self": {
            "href": "https://api.devbank.apiture.com/workflow/tasks/3768afc0-1070-4372-b965-44f01cba70cb"
          }
        }
      },
      "jointOwnerInfoForm1": {
        "domain": "https://production.api.apiture.com/domains/tasks/forms",
        "name": "userForm",
        "type": "form",
        "label": "Joint Owner Personal Information",
        "_links": {
          "self": {
            "href": "https://api.devbank.apiture.com/workflow/tasks/cb898688-05d1-4ecd-8684-d67da617eafa"
          }
        }
      }
    }
  },
  "state": "blocked",
  "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
422 Unprocessable Entity

Unprocessable Entity. The workflow parameter does not name a valid workflow.

This error response may have one of the following type values:

Schema: errorResponse

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

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);
});

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));
  }
})

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 https://api.devbank.apiture.com/workflow/taskDefinitions

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

Parameters

ParameterDescription
start
in: 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.
format: int64
default: 0
limit
in: query
integer(int32)
The maximum number of task definition representations to return in this page.
format: int32
default: 100
sortBy
in: query
string
Optional sort criteria. See sort criteria format, such as ?sortBy=field1,-field2.
This collection may be sorted by the following properties:
state
name
domain
type
label.
filter
in: query
string
Optional filter criteria. See filtering.
This collection may be filtered by the following properties and functions:
• Property state using functions eq, ne, in
• Property name using functions eq, ne, lt, le, gt, ge, startsWith, endsWith, contains, search
• Property domain using functions eq, ne, lt, le, gt, ge, startsWith, endsWith, contains, search
• Property type using functions eq, ne, in
• Property label using functions eq, ne, lt, le, gt, ge, startsWith, endsWith, contains, search
• Property _id using functions eq, in.
q
in: query
string
Optional search string. See searching.
state
in: query
string
Subset the collection to those whose state matches this value. Use | to separate multiple values. For example, ?state=pending matches only items whose state is pending; ?state=removed|inactive matches items whose state is removed or inactive. This is combined with an implicit and with other filters if they are used. See filtering.
enum values: pending, definition, blocked, removed, running, paused, completed, failed, canceled
name
in: query
string
Subset the collection to those with this name value. Use | to separate multiple values. For example, ?name=Bartell will match only items whose name is Bartell; ?name=Bartell|kirsten will match items whose name is Bartell or kirsten. This is combined with an implicit and with other filters if they are used. See filtering.
domain
in: query
string
Subset the collection to those with this domain value. Use | to separate multiple values. For example, ?domain=https://production.api.apiture.com/domains/acctApps matches only items whose domain is https://production.api.apiture.com/domains/acctApps; ?domain=https://production.api.apiture.com/domains/acctApps|https://production.api.apiture.com/domains/tasks/forms will match items whose domain is https://production.api.apiture.com/domains/acctApps or https://production.api.apiture.com/domains/tasks/forms. This is combined with an implicit and with other filters if they are used. See filtering.
type
in: query
string
Subset the collection to those with this exact type value. Use | to separate multiple values. For example, ?type=Personal%20Savings matches only items whose type is Personal Savings; ?type=Personal%20Savings|Investment%20Account matches items whose type is Personal Savings or Investment Account. This is combined with an implicit and with other filters if they are used. See filtering.
label
in: query
string
Subset the collection to those with this label value. Use | to separate multiple values. For example, ?label=Email%20Verification matches only items whose label is Email Verification; ?label=Email%20Verification|Account%20Verification will match items whose label is Email Verification or Account Verification. This is combined with an implicit and with other filters if they are used. See filtering.

Example responses

200 Response

{
  "_profile": "https://production.api.apiture.com/schemas/workflow/tasks/v1.3.2/profile.json",
  "_links": {
    "self": {
      "href": "https://api.devbank.apiture.com/workflow/tasks?start=10&limit=10"
    },
    "first": {
      "href": "https://api.devbank.apiture.com/workflow/tasks?start=0&limit=10"
    },
    "next": {
      "href": "https://api.devbank.apiture.com/workflow/tasks?start=20&limit=10"
    },
    "collection": {
      "href": "https://api.devbank.apiture.com/workflow/tasks"
    }
  },
  "start": 10,
  "limit": 10,
  "count": 67,
  "name": "tasks",
  "_embedded": {
    "items": [
      {
        "_profile": "https://production.api.apiture.com/schemas/workflow/task/v1.2.2/profile.json",
        "domain": "https://production.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.

This error response may have one of the following type values:

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.

This error response may have one of the following type values:

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.

This error response may have one of the following type values:

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

const fetch = require('node-fetch');
const inputBody = '{
  "_profile": "https://production.api.apiture.com/schemas/workflow/createTask/v1.3.2/profile.json",
  "_links": {
    "self": {
      "href": "https://api.devbank.apiture.com/workflow/tasks/f782aa4e-1926-4538-8289-6f401772d1d3"
    }
  },
  "name": "accountCategoryChoice",
  "domain": "https://production.api.apiture.com/domains/tasks/prompts",
  "label": "Account Category Choice",
  "revisionLabel": "Use Terms and Conditions 1.0.4 as of 2018-09-25",
  "type": "staticChoice",
  "visibility": "hidden",
  "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
    },
    "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."
            },
            "image": {
              "type": "string",
              "description": "A URI of an image to present for this choice."
            },
            "imageUri": {
              "type": "string",
              "description": "A URI of an image to present for this choice."
            }
          }
        }
      }
    }
  },
  "interface": {
    "category": {
      "input": true,
      "output": false,
      "required": true
    },
    "ownership": {
      "input": true,
      "output": false,
      "required": true
    },
    "minimumBalanceGoal": {
      "input": true,
      "output": false,
      "value": 10000
    },
    "choice": {
      "input": true,
      "output": true
    },
    "choiceLabel": {
      "input": false,
      "output": true
    },
    "choices": {
      "input": true,
      "value": [
        {
          "id": "savings",
          "label": "Savings",
          "imageUri": "https://cdn.api.apiture.com/static/images/accountTypes/savings.png"
        },
        {
          "id": "checking",
          "label": "Checking",
          "imageUri": "https://cdn.api.apiture.com/static/images/accountTypes/checking.png"
        }
      ]
    },
    "label": "Choose an account type",
    "presentation": "iconAndLabel",
    "selection": "single",
    "defaultSelection": "savings"
  },
  "values": {
    "category": "personal",
    "ownership": "joint",
    "minimumBalanceGoal": 1000,
    "choice": "checking",
    "choiceLabel": "Checking",
    "choices": [
      {
        "id": "savings",
        "label": "Savings",
        "image": "https://cdn.api.apiture.com/static/images/accountTypes/savings.png"
      },
      {
        "id": "checking",
        "label": "Checking",
        "image": "https://cdn.api.apiture.com/static/images/accountTypes/checking.png"
      }
    ]
  },
  "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.)"
}';
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);
});

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));
  }
})

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 https://api.devbank.apiture.com/workflow/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://production.api.apiture.com/schemas/workflow/createTask/v1.3.2/profile.json",
  "_links": {
    "self": {
      "href": "https://api.devbank.apiture.com/workflow/tasks/f782aa4e-1926-4538-8289-6f401772d1d3"
    }
  },
  "name": "accountCategoryChoice",
  "domain": "https://production.api.apiture.com/domains/tasks/prompts",
  "label": "Account Category Choice",
  "revisionLabel": "Use Terms and Conditions 1.0.4 as of 2018-09-25",
  "type": "staticChoice",
  "visibility": "hidden",
  "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
    },
    "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."
            },
            "image": {
              "type": "string",
              "description": "A URI of an image to present for this choice."
            },
            "imageUri": {
              "type": "string",
              "description": "A URI of an image to present for this choice."
            }
          }
        }
      }
    }
  },
  "interface": {
    "category": {
      "input": true,
      "output": false,
      "required": true
    },
    "ownership": {
      "input": true,
      "output": false,
      "required": true
    },
    "minimumBalanceGoal": {
      "input": true,
      "output": false,
      "value": 10000
    },
    "choice": {
      "input": true,
      "output": true
    },
    "choiceLabel": {
      "input": false,
      "output": true
    },
    "choices": {
      "input": true,
      "value": [
        {
          "id": "savings",
          "label": "Savings",
          "imageUri": "https://cdn.api.apiture.com/static/images/accountTypes/savings.png"
        },
        {
          "id": "checking",
          "label": "Checking",
          "imageUri": "https://cdn.api.apiture.com/static/images/accountTypes/checking.png"
        }
      ]
    },
    "label": "Choose an account type",
    "presentation": "iconAndLabel",
    "selection": "single",
    "defaultSelection": "savings"
  },
  "values": {
    "category": "personal",
    "ownership": "joint",
    "minimumBalanceGoal": 1000,
    "choice": "checking",
    "choiceLabel": "Checking",
    "choices": [
      {
        "id": "savings",
        "label": "Savings",
        "image": "https://cdn.api.apiture.com/static/images/accountTypes/savings.png"
      },
      {
        "id": "checking",
        "label": "Checking",
        "image": "https://cdn.api.apiture.com/static/images/accountTypes/checking.png"
      }
    ]
  },
  "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.)"
}

Parameters

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

Example responses

201 Response

{
  "_profile": "https://production.api.apiture.com/schemas/workflow/task/v1.2.2/profile.json",
  "_links": {
    "self": {
      "href": "https://api.devbank.apiture.com/workflow/tasks/0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:definition": {
      "href": "https://api.devbank.apiture.com/workflow/taskDefinitions/99ced512-9c19-4c5d-8859-9c42cd4bcc7b"
    },
    "up": {
      "href": "https://api.devbank.apiture.com/workflow/workflows/64802afe-d0a4-4680-b6fb-a0de98f3d871"
    },
    "apiture:cancel": {
      "href": "https://api.devbank.apiture.com/canceledTasks?task=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:fail": {
      "href": "https://api.devbank.apiture.com/failedTasks?task=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:pause": {
      "href": "https://api.devbank.apiture.com/pausedTasks?task=0399abed-fd3d-4830-a88b-30f38b8a365c"
    }
  },
  "name": "updateBusinessInfo",
  "domain": "https://production.api.apiture.com/domains/acctApps",
  "label": "Save Business Information",
  "revisionLabel": "Use Terms and Conditions 1.0.4 as of 2018-09-25",
  "type": "updateOrg",
  "visibility": "hidden",
  "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
    },
    "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."
            },
            "image": {
              "type": "string",
              "description": "A URI of an image to present for this choice."
            }
          }
        }
      }
    }
  },
  "interface": {
    "category": {
      "input": true,
      "output": false,
      "required": true
    },
    "ownership": {
      "input": true,
      "output": false,
      "required": true
    },
    "minimumBalanceGoal": {
      "input": true,
      "output": false,
      "value": 10000
    },
    "choice": {
      "input": true,
      "output": true
    },
    "choiceLabel": {
      "input": false,
      "output": true
    },
    "choices": {
      "input": true
    },
    "label": "Choose an account type",
    "presentation": "iconAndLabel",
    "selection": "single",
    "defaultSelection": "savings"
  },
  "values": {
    "category": "personal",
    "ownership": "joint",
    "minimumBalanceGoal": 1000,
    "choice": "checking",
    "choiceLabel": "Checking",
    "choices": [
      {
        "id": "savings",
        "label": "Savings",
        "image": "https://cdn.api.apiture.com/static/images/accountTypes/savings.png"
      },
      {
        "id": "checking",
        "label": "Checking",
        "image": "https://cdn.api.apiture.com/static/images/accountTypes/checking.png"
      }
    ]
  },
  "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.)",
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "initial": false,
  "terminal": false,
  "errorTask": "businessInfoForm",
  "includeInTaskSequence": true
}

Responses

StatusDescription
201 Created
Created.
Schema: task
HeaderLocation
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
HeaderETag
string
If supplied, the ETag (entity tag) response header should be in an If-Match request header of PUT or PATCH operations that update the resource.
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.

This error response may have one of the following type values:

Schema: errorResponse
StatusDescription
409 Conflict

Conflict. There is already a definition with the given name/context.

This error response may have one of the following type values:

Schema: errorResponse

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

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);
});

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));
  }
})

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 https://api.devbank.apiture.com/workflow/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

ParameterDescription
taskDefinitionId
in: path
string (required)
The unique identifier of this task definition. This is an opaque string.
If-None-Match
in: 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.

Example responses

200 Response

{
  "_profile": "https://production.api.apiture.com/schemas/workflow/task/v1.2.2/profile.json",
  "_links": {
    "self": {
      "href": "https://api.devbank.apiture.com/workflow/tasks/0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:definition": {
      "href": "https://api.devbank.apiture.com/workflow/taskDefinitions/99ced512-9c19-4c5d-8859-9c42cd4bcc7b"
    },
    "up": {
      "href": "https://api.devbank.apiture.com/workflow/workflows/64802afe-d0a4-4680-b6fb-a0de98f3d871"
    },
    "apiture:cancel": {
      "href": "https://api.devbank.apiture.com/canceledTasks?task=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:fail": {
      "href": "https://api.devbank.apiture.com/failedTasks?task=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:pause": {
      "href": "https://api.devbank.apiture.com/pausedTasks?task=0399abed-fd3d-4830-a88b-30f38b8a365c"
    }
  },
  "name": "updateBusinessInfo",
  "domain": "https://production.api.apiture.com/domains/acctApps",
  "label": "Save Business Information",
  "revisionLabel": "Use Terms and Conditions 1.0.4 as of 2018-09-25",
  "type": "updateOrg",
  "visibility": "hidden",
  "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
    },
    "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."
            },
            "image": {
              "type": "string",
              "description": "A URI of an image to present for this choice."
            }
          }
        }
      }
    }
  },
  "interface": {
    "category": {
      "input": true,
      "output": false,
      "required": true
    },
    "ownership": {
      "input": true,
      "output": false,
      "required": true
    },
    "minimumBalanceGoal": {
      "input": true,
      "output": false,
      "value": 10000
    },
    "choice": {
      "input": true,
      "output": true
    },
    "choiceLabel": {
      "input": false,
      "output": true
    },
    "choices": {
      "input": true
    },
    "label": "Choose an account type",
    "presentation": "iconAndLabel",
    "selection": "single",
    "defaultSelection": "savings"
  },
  "values": {
    "category": "personal",
    "ownership": "joint",
    "minimumBalanceGoal": 1000,
    "choice": "checking",
    "choiceLabel": "Checking",
    "choices": [
      {
        "id": "savings",
        "label": "Savings",
        "image": "https://cdn.api.apiture.com/static/images/accountTypes/savings.png"
      },
      {
        "id": "checking",
        "label": "Checking",
        "image": "https://cdn.api.apiture.com/static/images/accountTypes/checking.png"
      }
    ]
  },
  "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.)",
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "initial": false,
  "terminal": false,
  "errorTask": "businessInfoForm",
  "includeInTaskSequence": true
}

Responses

StatusDescription
200 OK
OK.
Schema: task
HeaderETag
string
If supplied, the ETag (entity tag) response header should be in an If-Match request header of PUT or PATCH operations that update the resource.
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.

This error response may have one of the following type values:

Schema: errorResponse

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

const fetch = require('node-fetch');
const inputBody = '{
  "_profile": "https://production.api.apiture.com/schemas/workflow/task/v1.2.2/profile.json",
  "_links": {
    "self": {
      "href": "https://api.devbank.apiture.com/workflow/tasks/0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:definition": {
      "href": "https://api.devbank.apiture.com/workflow/taskDefinitions/99ced512-9c19-4c5d-8859-9c42cd4bcc7b"
    },
    "up": {
      "href": "https://api.devbank.apiture.com/workflow/workflows/64802afe-d0a4-4680-b6fb-a0de98f3d871"
    },
    "apiture:cancel": {
      "href": "https://api.devbank.apiture.com/canceledTasks?task=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:fail": {
      "href": "https://api.devbank.apiture.com/failedTasks?task=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:pause": {
      "href": "https://api.devbank.apiture.com/pausedTasks?task=0399abed-fd3d-4830-a88b-30f38b8a365c"
    }
  },
  "name": "updateBusinessInfo",
  "domain": "https://production.api.apiture.com/domains/acctApps",
  "label": "Save Business Information",
  "revisionLabel": "Use Terms and Conditions 1.0.4 as of 2018-09-25",
  "type": "updateOrg",
  "visibility": "hidden",
  "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
    },
    "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."
            },
            "image": {
              "type": "string",
              "description": "A URI of an image to present for this choice."
            }
          }
        }
      }
    }
  },
  "interface": {
    "category": {
      "input": true,
      "output": false,
      "required": true
    },
    "ownership": {
      "input": true,
      "output": false,
      "required": true
    },
    "minimumBalanceGoal": {
      "input": true,
      "output": false,
      "value": 10000
    },
    "choice": {
      "input": true,
      "output": true
    },
    "choiceLabel": {
      "input": false,
      "output": true
    },
    "choices": {
      "input": true
    },
    "label": "Choose an account type",
    "presentation": "iconAndLabel",
    "selection": "single",
    "defaultSelection": "savings"
  },
  "values": {
    "category": "personal",
    "ownership": "joint",
    "minimumBalanceGoal": 1000,
    "choice": "checking",
    "choiceLabel": "Checking",
    "choices": [
      {
        "id": "savings",
        "label": "Savings",
        "image": "https://cdn.api.apiture.com/static/images/accountTypes/savings.png"
      },
      {
        "id": "checking",
        "label": "Checking",
        "image": "https://cdn.api.apiture.com/static/images/accountTypes/checking.png"
      }
    ]
  },
  "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.)",
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "initial": false,
  "terminal": false,
  "errorTask": "businessInfoForm",
  "includeInTaskSequence": true
}';
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);
});

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));
  }
})

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 https://api.devbank.apiture.com/workflow/taskDefinitions/{taskDefinitionId}

Perform a complete replacement of this task definition.

Body parameter

{
  "_profile": "https://production.api.apiture.com/schemas/workflow/task/v1.2.2/profile.json",
  "_links": {
    "self": {
      "href": "https://api.devbank.apiture.com/workflow/tasks/0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:definition": {
      "href": "https://api.devbank.apiture.com/workflow/taskDefinitions/99ced512-9c19-4c5d-8859-9c42cd4bcc7b"
    },
    "up": {
      "href": "https://api.devbank.apiture.com/workflow/workflows/64802afe-d0a4-4680-b6fb-a0de98f3d871"
    },
    "apiture:cancel": {
      "href": "https://api.devbank.apiture.com/canceledTasks?task=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:fail": {
      "href": "https://api.devbank.apiture.com/failedTasks?task=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:pause": {
      "href": "https://api.devbank.apiture.com/pausedTasks?task=0399abed-fd3d-4830-a88b-30f38b8a365c"
    }
  },
  "name": "updateBusinessInfo",
  "domain": "https://production.api.apiture.com/domains/acctApps",
  "label": "Save Business Information",
  "revisionLabel": "Use Terms and Conditions 1.0.4 as of 2018-09-25",
  "type": "updateOrg",
  "visibility": "hidden",
  "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
    },
    "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."
            },
            "image": {
              "type": "string",
              "description": "A URI of an image to present for this choice."
            }
          }
        }
      }
    }
  },
  "interface": {
    "category": {
      "input": true,
      "output": false,
      "required": true
    },
    "ownership": {
      "input": true,
      "output": false,
      "required": true
    },
    "minimumBalanceGoal": {
      "input": true,
      "output": false,
      "value": 10000
    },
    "choice": {
      "input": true,
      "output": true
    },
    "choiceLabel": {
      "input": false,
      "output": true
    },
    "choices": {
      "input": true
    },
    "label": "Choose an account type",
    "presentation": "iconAndLabel",
    "selection": "single",
    "defaultSelection": "savings"
  },
  "values": {
    "category": "personal",
    "ownership": "joint",
    "minimumBalanceGoal": 1000,
    "choice": "checking",
    "choiceLabel": "Checking",
    "choices": [
      {
        "id": "savings",
        "label": "Savings",
        "image": "https://cdn.api.apiture.com/static/images/accountTypes/savings.png"
      },
      {
        "id": "checking",
        "label": "Checking",
        "image": "https://cdn.api.apiture.com/static/images/accountTypes/checking.png"
      }
    ]
  },
  "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.)",
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "initial": false,
  "terminal": false,
  "errorTask": "businessInfoForm",
  "includeInTaskSequence": true
}

Parameters

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

Example responses

200 Response

{
  "_profile": "https://production.api.apiture.com/schemas/workflow/task/v1.2.2/profile.json",
  "_links": {
    "self": {
      "href": "https://api.devbank.apiture.com/workflow/tasks/0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:definition": {
      "href": "https://api.devbank.apiture.com/workflow/taskDefinitions/99ced512-9c19-4c5d-8859-9c42cd4bcc7b"
    },
    "up": {
      "href": "https://api.devbank.apiture.com/workflow/workflows/64802afe-d0a4-4680-b6fb-a0de98f3d871"
    },
    "apiture:cancel": {
      "href": "https://api.devbank.apiture.com/canceledTasks?task=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:fail": {
      "href": "https://api.devbank.apiture.com/failedTasks?task=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:pause": {
      "href": "https://api.devbank.apiture.com/pausedTasks?task=0399abed-fd3d-4830-a88b-30f38b8a365c"
    }
  },
  "name": "updateBusinessInfo",
  "domain": "https://production.api.apiture.com/domains/acctApps",
  "label": "Save Business Information",
  "revisionLabel": "Use Terms and Conditions 1.0.4 as of 2018-09-25",
  "type": "updateOrg",
  "visibility": "hidden",
  "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
    },
    "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."
            },
            "image": {
              "type": "string",
              "description": "A URI of an image to present for this choice."
            }
          }
        }
      }
    }
  },
  "interface": {
    "category": {
      "input": true,
      "output": false,
      "required": true
    },
    "ownership": {
      "input": true,
      "output": false,
      "required": true
    },
    "minimumBalanceGoal": {
      "input": true,
      "output": false,
      "value": 10000
    },
    "choice": {
      "input": true,
      "output": true
    },
    "choiceLabel": {
      "input": false,
      "output": true
    },
    "choices": {
      "input": true
    },
    "label": "Choose an account type",
    "presentation": "iconAndLabel",
    "selection": "single",
    "defaultSelection": "savings"
  },
  "values": {
    "category": "personal",
    "ownership": "joint",
    "minimumBalanceGoal": 1000,
    "choice": "checking",
    "choiceLabel": "Checking",
    "choices": [
      {
        "id": "savings",
        "label": "Savings",
        "image": "https://cdn.api.apiture.com/static/images/accountTypes/savings.png"
      },
      {
        "id": "checking",
        "label": "Checking",
        "image": "https://cdn.api.apiture.com/static/images/accountTypes/checking.png"
      }
    ]
  },
  "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.)",
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "initial": false,
  "terminal": false,
  "errorTask": "businessInfoForm",
  "includeInTaskSequence": true
}

Responses

StatusDescription
200 OK
OK.
Schema: task
HeaderETag
string
If supplied, the ETag (entity tag) response header should be in an If-Match request header of PUT or PATCH operations that update the resource.
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.

This error response may have one of the following type values:

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.

This error response may have one of the following type values:

Schema: errorResponse
StatusDescription
409 Conflict

Conflict. There is already a definition with the given name/context.

This error response may have one of the following type values:

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.

This error response may have one of the following type values:

Schema: errorResponse

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

const fetch = require('node-fetch');
const inputBody = '{
  "_profile": "https://production.api.apiture.com/schemas/workflow/task/v1.2.2/profile.json",
  "_links": {
    "self": {
      "href": "https://api.devbank.apiture.com/workflow/tasks/0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:definition": {
      "href": "https://api.devbank.apiture.com/workflow/taskDefinitions/99ced512-9c19-4c5d-8859-9c42cd4bcc7b"
    },
    "up": {
      "href": "https://api.devbank.apiture.com/workflow/workflows/64802afe-d0a4-4680-b6fb-a0de98f3d871"
    },
    "apiture:cancel": {
      "href": "https://api.devbank.apiture.com/canceledTasks?task=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:fail": {
      "href": "https://api.devbank.apiture.com/failedTasks?task=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:pause": {
      "href": "https://api.devbank.apiture.com/pausedTasks?task=0399abed-fd3d-4830-a88b-30f38b8a365c"
    }
  },
  "name": "updateBusinessInfo",
  "domain": "https://production.api.apiture.com/domains/acctApps",
  "label": "Save Business Information",
  "revisionLabel": "Use Terms and Conditions 1.0.4 as of 2018-09-25",
  "type": "updateOrg",
  "visibility": "hidden",
  "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
    },
    "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."
            },
            "image": {
              "type": "string",
              "description": "A URI of an image to present for this choice."
            }
          }
        }
      }
    }
  },
  "interface": {
    "category": {
      "input": true,
      "output": false,
      "required": true
    },
    "ownership": {
      "input": true,
      "output": false,
      "required": true
    },
    "minimumBalanceGoal": {
      "input": true,
      "output": false,
      "value": 10000
    },
    "choice": {
      "input": true,
      "output": true
    },
    "choiceLabel": {
      "input": false,
      "output": true
    },
    "choices": {
      "input": true
    },
    "label": "Choose an account type",
    "presentation": "iconAndLabel",
    "selection": "single",
    "defaultSelection": "savings"
  },
  "values": {
    "category": "personal",
    "ownership": "joint",
    "minimumBalanceGoal": 1000,
    "choice": "checking",
    "choiceLabel": "Checking",
    "choices": [
      {
        "id": "savings",
        "label": "Savings",
        "image": "https://cdn.api.apiture.com/static/images/accountTypes/savings.png"
      },
      {
        "id": "checking",
        "label": "Checking",
        "image": "https://cdn.api.apiture.com/static/images/accountTypes/checking.png"
      }
    ]
  },
  "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.)",
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "initial": false,
  "terminal": false,
  "errorTask": "businessInfoForm",
  "includeInTaskSequence": true
}';
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);
});

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));
  }
})

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 https://api.devbank.apiture.com/workflow/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

{
  "_profile": "https://production.api.apiture.com/schemas/workflow/task/v1.2.2/profile.json",
  "_links": {
    "self": {
      "href": "https://api.devbank.apiture.com/workflow/tasks/0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:definition": {
      "href": "https://api.devbank.apiture.com/workflow/taskDefinitions/99ced512-9c19-4c5d-8859-9c42cd4bcc7b"
    },
    "up": {
      "href": "https://api.devbank.apiture.com/workflow/workflows/64802afe-d0a4-4680-b6fb-a0de98f3d871"
    },
    "apiture:cancel": {
      "href": "https://api.devbank.apiture.com/canceledTasks?task=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:fail": {
      "href": "https://api.devbank.apiture.com/failedTasks?task=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:pause": {
      "href": "https://api.devbank.apiture.com/pausedTasks?task=0399abed-fd3d-4830-a88b-30f38b8a365c"
    }
  },
  "name": "updateBusinessInfo",
  "domain": "https://production.api.apiture.com/domains/acctApps",
  "label": "Save Business Information",
  "revisionLabel": "Use Terms and Conditions 1.0.4 as of 2018-09-25",
  "type": "updateOrg",
  "visibility": "hidden",
  "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
    },
    "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."
            },
            "image": {
              "type": "string",
              "description": "A URI of an image to present for this choice."
            }
          }
        }
      }
    }
  },
  "interface": {
    "category": {
      "input": true,
      "output": false,
      "required": true
    },
    "ownership": {
      "input": true,
      "output": false,
      "required": true
    },
    "minimumBalanceGoal": {
      "input": true,
      "output": false,
      "value": 10000
    },
    "choice": {
      "input": true,
      "output": true
    },
    "choiceLabel": {
      "input": false,
      "output": true
    },
    "choices": {
      "input": true
    },
    "label": "Choose an account type",
    "presentation": "iconAndLabel",
    "selection": "single",
    "defaultSelection": "savings"
  },
  "values": {
    "category": "personal",
    "ownership": "joint",
    "minimumBalanceGoal": 1000,
    "choice": "checking",
    "choiceLabel": "Checking",
    "choices": [
      {
        "id": "savings",
        "label": "Savings",
        "image": "https://cdn.api.apiture.com/static/images/accountTypes/savings.png"
      },
      {
        "id": "checking",
        "label": "Checking",
        "image": "https://cdn.api.apiture.com/static/images/accountTypes/checking.png"
      }
    ]
  },
  "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.)",
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "initial": false,
  "terminal": false,
  "errorTask": "businessInfoForm",
  "includeInTaskSequence": true
}

Parameters

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

Example responses

200 Response

{
  "_profile": "https://production.api.apiture.com/schemas/workflow/task/v1.2.2/profile.json",
  "_links": {
    "self": {
      "href": "https://api.devbank.apiture.com/workflow/tasks/0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:definition": {
      "href": "https://api.devbank.apiture.com/workflow/taskDefinitions/99ced512-9c19-4c5d-8859-9c42cd4bcc7b"
    },
    "up": {
      "href": "https://api.devbank.apiture.com/workflow/workflows/64802afe-d0a4-4680-b6fb-a0de98f3d871"
    },
    "apiture:cancel": {
      "href": "https://api.devbank.apiture.com/canceledTasks?task=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:fail": {
      "href": "https://api.devbank.apiture.com/failedTasks?task=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:pause": {
      "href": "https://api.devbank.apiture.com/pausedTasks?task=0399abed-fd3d-4830-a88b-30f38b8a365c"
    }
  },
  "name": "updateBusinessInfo",
  "domain": "https://production.api.apiture.com/domains/acctApps",
  "label": "Save Business Information",
  "revisionLabel": "Use Terms and Conditions 1.0.4 as of 2018-09-25",
  "type": "updateOrg",
  "visibility": "hidden",
  "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
    },
    "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."
            },
            "image": {
              "type": "string",
              "description": "A URI of an image to present for this choice."
            }
          }
        }
      }
    }
  },
  "interface": {
    "category": {
      "input": true,
      "output": false,
      "required": true
    },
    "ownership": {
      "input": true,
      "output": false,
      "required": true
    },
    "minimumBalanceGoal": {
      "input": true,
      "output": false,
      "value": 10000
    },
    "choice": {
      "input": true,
      "output": true
    },
    "choiceLabel": {
      "input": false,
      "output": true
    },
    "choices": {
      "input": true
    },
    "label": "Choose an account type",
    "presentation": "iconAndLabel",
    "selection": "single",
    "defaultSelection": "savings"
  },
  "values": {
    "category": "personal",
    "ownership": "joint",
    "minimumBalanceGoal": 1000,
    "choice": "checking",
    "choiceLabel": "Checking",
    "choices": [
      {
        "id": "savings",
        "label": "Savings",
        "image": "https://cdn.api.apiture.com/static/images/accountTypes/savings.png"
      },
      {
        "id": "checking",
        "label": "Checking",
        "image": "https://cdn.api.apiture.com/static/images/accountTypes/checking.png"
      }
    ]
  },
  "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.)",
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "initial": false,
  "terminal": false,
  "errorTask": "businessInfoForm",
  "includeInTaskSequence": true
}

Responses

StatusDescription
200 OK
OK.
Schema: task
HeaderETag
string
If supplied, the ETag (entity tag) response header should be in an If-Match request header of PUT or PATCH operations that update the resource.
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.

This error response may have one of the following type values:

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.

This error response may have one of the following type values:

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.

This error response may have one of the following type values:

Schema: errorResponse

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

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);
});

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));
  }
})

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 https://api.devbank.apiture.com/workflow/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

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

Example responses

404 Response

{
  "_profile": "https://production.api.apiture.com/schemas/common/errorResponse/v2.1.1/profile.json",
  "_links": {
    "self": {
      "href": "https://api.devbank.apiture.com/apiName/resourceName/resourceId"
    }
  },
  "_error": {
    "_id": "2eae46e1-575c-4d69-8a8f-0a7b0115a4b3",
    "message": "Description of the error will appear here.",
    "statusCode": 422,
    "type": "specificErrorType",
    "attributes": {
      "value": "Optional attribute describing the error"
    },
    "remediation": "Optional instructions to remediate the error may appear here.",
    "occurredAt": "2018-01-25T05:50:52.375Z",
    "_links": {
      "describedby": {
        "href": "https://production.api.apiture.com/errors/specificErrorType"
      }
    },
    "_embedded": {
      "errors": []
    }
  }
}

Responses

StatusDescription
204 No Content
No Content. The resource was deleted successfully.
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.

This error response may have one of the following type values:

Schema: errorResponse
StatusDescription
409 Conflict

Conflict. The resource cannot be deleted, as this would introduce a data integrity issue.

This error response may have one of the following type values:

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

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);
});

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));
  }
})

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 https://api.devbank.apiture.com/workflow/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 definition. Revisions are immutable.

Parameters

ParameterDescription
taskDefinitionId
in: path
string (required)
The unique identifier of this task definition. This is an opaque string.
start
in: 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.
format: int64
default: 0
limit
in: query
integer(int32)
The maximum number of workflow task representations to return in this page.
format: int32
default: 100
sortBy
in: 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
in: query
string
Optional filter criteria. See filtering.
q
in: query
string
Optional search string. See searching.

Example responses

200 Response

{
  "_profile": "https://production.api.apiture.com/schemas/workflow/tasks/v1.3.2/profile.json",
  "_links": {
    "self": {
      "href": "https://api.devbank.apiture.com/workflow/tasks?start=10&limit=10"
    },
    "first": {
      "href": "https://api.devbank.apiture.com/workflow/tasks?start=0&limit=10"
    },
    "next": {
      "href": "https://api.devbank.apiture.com/workflow/tasks?start=20&limit=10"
    },
    "collection": {
      "href": "https://api.devbank.apiture.com/workflow/tasks"
    }
  },
  "start": 10,
  "limit": 10,
  "count": 67,
  "name": "tasks",
  "_embedded": {
    "items": [
      {
        "_profile": "https://production.api.apiture.com/schemas/workflow/task/v1.2.2/profile.json",
        "domain": "https://production.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.

This error response may have one of the following type values:

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.

This error response may have one of the following type values:

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.

This error response may have one of the following type values:

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

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);
});

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));
  }
})

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 https://api.devbank.apiture.com/workflow/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

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

Example responses

201 Response

{
  "_profile": "https://production.api.apiture.com/schemas/workflow/task/v1.2.2/profile.json",
  "_links": {
    "self": {
      "href": "https://api.devbank.apiture.com/workflow/tasks/0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:definition": {
      "href": "https://api.devbank.apiture.com/workflow/taskDefinitions/99ced512-9c19-4c5d-8859-9c42cd4bcc7b"
    },
    "up": {
      "href": "https://api.devbank.apiture.com/workflow/workflows/64802afe-d0a4-4680-b6fb-a0de98f3d871"
    },
    "apiture:cancel": {
      "href": "https://api.devbank.apiture.com/canceledTasks?task=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:fail": {
      "href": "https://api.devbank.apiture.com/failedTasks?task=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:pause": {
      "href": "https://api.devbank.apiture.com/pausedTasks?task=0399abed-fd3d-4830-a88b-30f38b8a365c"
    }
  },
  "name": "updateBusinessInfo",
  "domain": "https://production.api.apiture.com/domains/acctApps",
  "label": "Save Business Information",
  "revisionLabel": "Use Terms and Conditions 1.0.4 as of 2018-09-25",
  "type": "updateOrg",
  "visibility": "hidden",
  "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
    },
    "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."
            },
            "image": {
              "type": "string",
              "description": "A URI of an image to present for this choice."
            }
          }
        }
      }
    }
  },
  "interface": {
    "category": {
      "input": true,
      "output": false,
      "required": true
    },
    "ownership": {
      "input": true,
      "output": false,
      "required": true
    },
    "minimumBalanceGoal": {
      "input": true,
      "output": false,
      "value": 10000
    },
    "choice": {
      "input": true,
      "output": true
    },
    "choiceLabel": {
      "input": false,
      "output": true
    },
    "choices": {
      "input": true
    },
    "label": "Choose an account type",
    "presentation": "iconAndLabel",
    "selection": "single",
    "defaultSelection": "savings"
  },
  "values": {
    "category": "personal",
    "ownership": "joint",
    "minimumBalanceGoal": 1000,
    "choice": "checking",
    "choiceLabel": "Checking",
    "choices": [
      {
        "id": "savings",
        "label": "Savings",
        "image": "https://cdn.api.apiture.com/static/images/accountTypes/savings.png"
      },
      {
        "id": "checking",
        "label": "Checking",
        "image": "https://cdn.api.apiture.com/static/images/accountTypes/checking.png"
      }
    ]
  },
  "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.)",
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "initial": false,
  "terminal": false,
  "errorTask": "businessInfoForm",
  "includeInTaskSequence": true
}

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.
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.

This error response may have one of the following type values:

Schema: errorResponse

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

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);
});

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));
  }
})

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 https://api.devbank.apiture.com/workflow/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

ParameterDescription
taskDefinitionId
in: path
string (required)
The unique identifier of this task definition. This is an opaque string.
revisionId
in: 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
in: 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.

Example responses

200 Response

{
  "_profile": "https://production.api.apiture.com/schemas/workflow/task/v1.2.2/profile.json",
  "_links": {
    "self": {
      "href": "https://api.devbank.apiture.com/workflow/tasks/0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:definition": {
      "href": "https://api.devbank.apiture.com/workflow/taskDefinitions/99ced512-9c19-4c5d-8859-9c42cd4bcc7b"
    },
    "up": {
      "href": "https://api.devbank.apiture.com/workflow/workflows/64802afe-d0a4-4680-b6fb-a0de98f3d871"
    },
    "apiture:cancel": {
      "href": "https://api.devbank.apiture.com/canceledTasks?task=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:fail": {
      "href": "https://api.devbank.apiture.com/failedTasks?task=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:pause": {
      "href": "https://api.devbank.apiture.com/pausedTasks?task=0399abed-fd3d-4830-a88b-30f38b8a365c"
    }
  },
  "name": "updateBusinessInfo",
  "domain": "https://production.api.apiture.com/domains/acctApps",
  "label": "Save Business Information",
  "revisionLabel": "Use Terms and Conditions 1.0.4 as of 2018-09-25",
  "type": "updateOrg",
  "visibility": "hidden",
  "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
    },
    "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."
            },
            "image": {
              "type": "string",
              "description": "A URI of an image to present for this choice."
            }
          }
        }
      }
    }
  },
  "interface": {
    "category": {
      "input": true,
      "output": false,
      "required": true
    },
    "ownership": {
      "input": true,
      "output": false,
      "required": true
    },
    "minimumBalanceGoal": {
      "input": true,
      "output": false,
      "value": 10000
    },
    "choice": {
      "input": true,
      "output": true
    },
    "choiceLabel": {
      "input": false,
      "output": true
    },
    "choices": {
      "input": true
    },
    "label": "Choose an account type",
    "presentation": "iconAndLabel",
    "selection": "single",
    "defaultSelection": "savings"
  },
  "values": {
    "category": "personal",
    "ownership": "joint",
    "minimumBalanceGoal": 1000,
    "choice": "checking",
    "choiceLabel": "Checking",
    "choices": [
      {
        "id": "savings",
        "label": "Savings",
        "image": "https://cdn.api.apiture.com/static/images/accountTypes/savings.png"
      },
      {
        "id": "checking",
        "label": "Checking",
        "image": "https://cdn.api.apiture.com/static/images/accountTypes/checking.png"
      }
    ]
  },
  "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.)",
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "initial": false,
  "terminal": false,
  "errorTask": "businessInfoForm",
  "includeInTaskSequence": true
}

Responses

StatusDescription
200 OK
OK.
Schema: task
HeaderETag
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.
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.

This error response may have one of the following type values:

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

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

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);
});

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));
  }
})

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 https://api.devbank.apiture.com/workflow/tasks

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

Parameters

ParameterDescription
start
in: 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.
format: int64
default: 0
limit
in: query
integer(int32)
The maximum number of task representations to return in this page.
format: int32
default: 100
sortBy
in: query
string
Optional sort criteria. See sort criteria format, such as ?sortBy=field1,-field2.
This collection may be sorted by the following properties:
state
name
domain
type
label.
filter
in: query
string
Optional filter criteria. See filtering.
This collection may be filtered by the following properties and functions:
• Property state using functions eq, ne, in
• Property name using functions eq, ne, lt, le, gt, ge, startsWith, endsWith, contains, search
• Property domain using functions eq, ne, lt, le, gt, ge, startsWith, endsWith, contains, search
• Property type using functions eq, ne, in
• Property label using functions eq, ne, lt, le, gt, ge, startsWith, endsWith, contains, search
• Property _id using functions eq, in.
q
in: query
string
Optional search string. See searching.
state
in: query
string
Subset the collection to those whose state matches this value. Use | to separate multiple values. For example, ?state=pending matches only items whose state is pending; ?state=removed|inactive matches items whose state is removed or inactive. This is combined with an implicit and with other filters if they are used. See filtering.
enum values: pending, definition, blocked, removed, running, paused, completed, failed, canceled
name
in: query
string
Subset the collection to those with this name value. Use | to separate multiple values. For example, ?name=Bartell will match only items whose name is Bartell; ?name=Bartell|kirsten will match items whose name is Bartell or kirsten. This is combined with an implicit and with other filters if they are used. See filtering.
domain
in: query
string
Subset the collection to those with this domain value. Use | to separate multiple values. For example, ?domain=https://production.api.apiture.com/domains/acctApps matches only items whose domain is https://production.api.apiture.com/domains/acctApps; ?domain=https://production.api.apiture.com/domains/acctApps|https://production.api.apiture.com/domains/tasks/forms will match items whose domain is https://production.api.apiture.com/domains/acctApps or https://production.api.apiture.com/domains/tasks/forms. This is combined with an implicit and with other filters if they are used. See filtering.
type
in: query
string
Subset the collection to those with this exact type value. Use | to separate multiple values. For example, ?type=Personal%20Savings matches only items whose type is Personal Savings; ?type=Personal%20Savings|Investment%20Account matches items whose type is Personal Savings or Investment Account. This is combined with an implicit and with other filters if they are used. See filtering.
label
in: query
string
Subset the collection to those with this label value. Use | to separate multiple values. For example, ?label=Email%20Verification matches only items whose label is Email Verification; ?label=Email%20Verification|Account%20Verification will match items whose label is Email Verification or Account Verification. This is combined with an implicit and with other filters if they are used. See filtering.

Example responses

200 Response

{
  "_profile": "https://production.api.apiture.com/schemas/workflow/tasks/v1.3.2/profile.json",
  "_links": {
    "self": {
      "href": "https://api.devbank.apiture.com/workflow/tasks?start=10&limit=10"
    },
    "first": {
      "href": "https://api.devbank.apiture.com/workflow/tasks?start=0&limit=10"
    },
    "next": {
      "href": "https://api.devbank.apiture.com/workflow/tasks?start=20&limit=10"
    },
    "collection": {
      "href": "https://api.devbank.apiture.com/workflow/tasks"
    }
  },
  "start": 10,
  "limit": 10,
  "count": 67,
  "name": "tasks",
  "_embedded": {
    "items": [
      {
        "_profile": "https://production.api.apiture.com/schemas/workflow/task/v1.2.2/profile.json",
        "domain": "https://production.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.

This error response may have one of the following type values:

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.

This error response may have one of the following type values:

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

const fetch = require('node-fetch');
const inputBody = '{
  "_profile": "https://production.api.apiture.com/schemas/workflow/createTask/v1.3.2/profile.json",
  "_links": {
    "self": {
      "href": "https://api.devbank.apiture.com/workflow/tasks/f782aa4e-1926-4538-8289-6f401772d1d3"
    }
  },
  "name": "accountCategoryChoice",
  "domain": "https://production.api.apiture.com/domains/tasks/prompts",
  "label": "Account Category Choice",
  "revisionLabel": "Use Terms and Conditions 1.0.4 as of 2018-09-25",
  "type": "staticChoice",
  "visibility": "hidden",
  "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
    },
    "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."
            },
            "image": {
              "type": "string",
              "description": "A URI of an image to present for this choice."
            },
            "imageUri": {
              "type": "string",
              "description": "A URI of an image to present for this choice."
            }
          }
        }
      }
    }
  },
  "interface": {
    "category": {
      "input": true,
      "output": false,
      "required": true
    },
    "ownership": {
      "input": true,
      "output": false,
      "required": true
    },
    "minimumBalanceGoal": {
      "input": true,
      "output": false,
      "value": 10000
    },
    "choice": {
      "input": true,
      "output": true
    },
    "choiceLabel": {
      "input": false,
      "output": true
    },
    "choices": {
      "input": true,
      "value": [
        {
          "id": "savings",
          "label": "Savings",
          "imageUri": "https://cdn.api.apiture.com/static/images/accountTypes/savings.png"
        },
        {
          "id": "checking",
          "label": "Checking",
          "imageUri": "https://cdn.api.apiture.com/static/images/accountTypes/checking.png"
        }
      ]
    },
    "label": "Choose an account type",
    "presentation": "iconAndLabel",
    "selection": "single",
    "defaultSelection": "savings"
  },
  "values": {
    "category": "personal",
    "ownership": "joint",
    "minimumBalanceGoal": 1000,
    "choice": "checking",
    "choiceLabel": "Checking",
    "choices": [
      {
        "id": "savings",
        "label": "Savings",
        "image": "https://cdn.api.apiture.com/static/images/accountTypes/savings.png"
      },
      {
        "id": "checking",
        "label": "Checking",
        "image": "https://cdn.api.apiture.com/static/images/accountTypes/checking.png"
      }
    ]
  },
  "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.)"
}';
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);
});

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));
  }
})

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 https://api.devbank.apiture.com/workflow/tasks

Create a new task in the tasks collection.

Body parameter

{
  "_profile": "https://production.api.apiture.com/schemas/workflow/createTask/v1.3.2/profile.json",
  "_links": {
    "self": {
      "href": "https://api.devbank.apiture.com/workflow/tasks/f782aa4e-1926-4538-8289-6f401772d1d3"
    }
  },
  "name": "accountCategoryChoice",
  "domain": "https://production.api.apiture.com/domains/tasks/prompts",
  "label": "Account Category Choice",
  "revisionLabel": "Use Terms and Conditions 1.0.4 as of 2018-09-25",
  "type": "staticChoice",
  "visibility": "hidden",
  "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
    },
    "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."
            },
            "image": {
              "type": "string",
              "description": "A URI of an image to present for this choice."
            },
            "imageUri": {
              "type": "string",
              "description": "A URI of an image to present for this choice."
            }
          }
        }
      }
    }
  },
  "interface": {
    "category": {
      "input": true,
      "output": false,
      "required": true
    },
    "ownership": {
      "input": true,
      "output": false,
      "required": true
    },
    "minimumBalanceGoal": {
      "input": true,
      "output": false,
      "value": 10000
    },
    "choice": {
      "input": true,
      "output": true
    },
    "choiceLabel": {
      "input": false,
      "output": true
    },
    "choices": {
      "input": true,
      "value": [
        {
          "id": "savings",
          "label": "Savings",
          "imageUri": "https://cdn.api.apiture.com/static/images/accountTypes/savings.png"
        },
        {
          "id": "checking",
          "label": "Checking",
          "imageUri": "https://cdn.api.apiture.com/static/images/accountTypes/checking.png"
        }
      ]
    },
    "label": "Choose an account type",
    "presentation": "iconAndLabel",
    "selection": "single",
    "defaultSelection": "savings"
  },
  "values": {
    "category": "personal",
    "ownership": "joint",
    "minimumBalanceGoal": 1000,
    "choice": "checking",
    "choiceLabel": "Checking",
    "choices": [
      {
        "id": "savings",
        "label": "Savings",
        "image": "https://cdn.api.apiture.com/static/images/accountTypes/savings.png"
      },
      {
        "id": "checking",
        "label": "Checking",
        "image": "https://cdn.api.apiture.com/static/images/accountTypes/checking.png"
      }
    ]
  },
  "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.)"
}

Parameters

ParameterDescription
definition
in: 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 createTask (required)
The data necessary to create a new task.

Example responses

201 Response

{
  "_profile": "https://production.api.apiture.com/schemas/workflow/task/v1.2.2/profile.json",
  "_links": {
    "self": {
      "href": "https://api.devbank.apiture.com/workflow/tasks/0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:definition": {
      "href": "https://api.devbank.apiture.com/workflow/taskDefinitions/99ced512-9c19-4c5d-8859-9c42cd4bcc7b"
    },
    "up": {
      "href": "https://api.devbank.apiture.com/workflow/workflows/64802afe-d0a4-4680-b6fb-a0de98f3d871"
    },
    "apiture:cancel": {
      "href": "https://api.devbank.apiture.com/canceledTasks?task=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:fail": {
      "href": "https://api.devbank.apiture.com/failedTasks?task=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:pause": {
      "href": "https://api.devbank.apiture.com/pausedTasks?task=0399abed-fd3d-4830-a88b-30f38b8a365c"
    }
  },
  "name": "updateBusinessInfo",
  "domain": "https://production.api.apiture.com/domains/acctApps",
  "label": "Save Business Information",
  "revisionLabel": "Use Terms and Conditions 1.0.4 as of 2018-09-25",
  "type": "updateOrg",
  "visibility": "hidden",
  "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
    },
    "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."
            },
            "image": {
              "type": "string",
              "description": "A URI of an image to present for this choice."
            }
          }
        }
      }
    }
  },
  "interface": {
    "category": {
      "input": true,
      "output": false,
      "required": true
    },
    "ownership": {
      "input": true,
      "output": false,
      "required": true
    },
    "minimumBalanceGoal": {
      "input": true,
      "output": false,
      "value": 10000
    },
    "choice": {
      "input": true,
      "output": true
    },
    "choiceLabel": {
      "input": false,
      "output": true
    },
    "choices": {
      "input": true
    },
    "label": "Choose an account type",
    "presentation": "iconAndLabel",
    "selection": "single",
    "defaultSelection": "savings"
  },
  "values": {
    "category": "personal",
    "ownership": "joint",
    "minimumBalanceGoal": 1000,
    "choice": "checking",
    "choiceLabel": "Checking",
    "choices": [
      {
        "id": "savings",
        "label": "Savings",
        "image": "https://cdn.api.apiture.com/static/images/accountTypes/savings.png"
      },
      {
        "id": "checking",
        "label": "Checking",
        "image": "https://cdn.api.apiture.com/static/images/accountTypes/checking.png"
      }
    ]
  },
  "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.)",
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "initial": false,
  "terminal": false,
  "errorTask": "businessInfoForm",
  "includeInTaskSequence": true
}

Responses

StatusDescription
201 Created
Created.
Schema: task
HeaderLocation
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
HeaderETag
string
If supplied, the ETag (entity tag) response header should be in an If-Match request header of PUT or PATCH operations that update the resource.
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.

This error response may have one of the following type values:

Schema: errorResponse

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

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);
});

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));
  }
})

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 https://api.devbank.apiture.com/workflow/tasks/{taskId}

Return a HAL representation of this task resource.

Parameters

ParameterDescription
taskId
in: path
string (required)
The unique identifier of this task. This is an opaque string.
If-None-Match
in: 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.

Example responses

200 Response

{
  "_profile": "https://production.api.apiture.com/schemas/workflow/task/v1.2.2/profile.json",
  "_links": {
    "self": {
      "href": "https://api.devbank.apiture.com/workflow/tasks/0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:definition": {
      "href": "https://api.devbank.apiture.com/workflow/taskDefinitions/99ced512-9c19-4c5d-8859-9c42cd4bcc7b"
    },
    "up": {
      "href": "https://api.devbank.apiture.com/workflow/workflows/64802afe-d0a4-4680-b6fb-a0de98f3d871"
    },
    "apiture:cancel": {
      "href": "https://api.devbank.apiture.com/canceledTasks?task=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:fail": {
      "href": "https://api.devbank.apiture.com/failedTasks?task=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:pause": {
      "href": "https://api.devbank.apiture.com/pausedTasks?task=0399abed-fd3d-4830-a88b-30f38b8a365c"
    }
  },
  "name": "updateBusinessInfo",
  "domain": "https://production.api.apiture.com/domains/acctApps",
  "label": "Save Business Information",
  "revisionLabel": "Use Terms and Conditions 1.0.4 as of 2018-09-25",
  "type": "updateOrg",
  "visibility": "hidden",
  "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
    },
    "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."
            },
            "image": {
              "type": "string",
              "description": "A URI of an image to present for this choice."
            }
          }
        }
      }
    }
  },
  "interface": {
    "category": {
      "input": true,
      "output": false,
      "required": true
    },
    "ownership": {
      "input": true,
      "output": false,
      "required": true
    },
    "minimumBalanceGoal": {
      "input": true,
      "output": false,
      "value": 10000
    },
    "choice": {
      "input": true,
      "output": true
    },
    "choiceLabel": {
      "input": false,
      "output": true
    },
    "choices": {
      "input": true
    },
    "label": "Choose an account type",
    "presentation": "iconAndLabel",
    "selection": "single",
    "defaultSelection": "savings"
  },
  "values": {
    "category": "personal",
    "ownership": "joint",
    "minimumBalanceGoal": 1000,
    "choice": "checking",
    "choiceLabel": "Checking",
    "choices": [
      {
        "id": "savings",
        "label": "Savings",
        "image": "https://cdn.api.apiture.com/static/images/accountTypes/savings.png"
      },
      {
        "id": "checking",
        "label": "Checking",
        "image": "https://cdn.api.apiture.com/static/images/accountTypes/checking.png"
      }
    ]
  },
  "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.)",
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "initial": false,
  "terminal": false,
  "errorTask": "businessInfoForm",
  "includeInTaskSequence": true
}

Responses

StatusDescription
200 OK
OK.
Schema: task
HeaderETag
string
If supplied, the ETag (entity tag) response header should be in an If-Match request header of PUT or PATCH operations that update the resource.
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.

This error response may have one of the following type values:

Schema: errorResponse

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

const fetch = require('node-fetch');
const inputBody = '{
  "_profile": "https://production.api.apiture.com/schemas/workflow/task/v1.2.2/profile.json",
  "_links": {
    "self": {
      "href": "https://api.devbank.apiture.com/workflow/tasks/0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:definition": {
      "href": "https://api.devbank.apiture.com/workflow/taskDefinitions/99ced512-9c19-4c5d-8859-9c42cd4bcc7b"
    },
    "up": {
      "href": "https://api.devbank.apiture.com/workflow/workflows/64802afe-d0a4-4680-b6fb-a0de98f3d871"
    },
    "apiture:cancel": {
      "href": "https://api.devbank.apiture.com/canceledTasks?task=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:fail": {
      "href": "https://api.devbank.apiture.com/failedTasks?task=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:pause": {
      "href": "https://api.devbank.apiture.com/pausedTasks?task=0399abed-fd3d-4830-a88b-30f38b8a365c"
    }
  },
  "name": "updateBusinessInfo",
  "domain": "https://production.api.apiture.com/domains/acctApps",
  "label": "Save Business Information",
  "revisionLabel": "Use Terms and Conditions 1.0.4 as of 2018-09-25",
  "type": "updateOrg",
  "visibility": "hidden",
  "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
    },
    "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."
            },
            "image": {
              "type": "string",
              "description": "A URI of an image to present for this choice."
            }
          }
        }
      }
    }
  },
  "interface": {
    "category": {
      "input": true,
      "output": false,
      "required": true
    },
    "ownership": {
      "input": true,
      "output": false,
      "required": true
    },
    "minimumBalanceGoal": {
      "input": true,
      "output": false,
      "value": 10000
    },
    "choice": {
      "input": true,
      "output": true
    },
    "choiceLabel": {
      "input": false,
      "output": true
    },
    "choices": {
      "input": true
    },
    "label": "Choose an account type",
    "presentation": "iconAndLabel",
    "selection": "single",
    "defaultSelection": "savings"
  },
  "values": {
    "category": "personal",
    "ownership": "joint",
    "minimumBalanceGoal": 1000,
    "choice": "checking",
    "choiceLabel": "Checking",
    "choices": [
      {
        "id": "savings",
        "label": "Savings",
        "image": "https://cdn.api.apiture.com/static/images/accountTypes/savings.png"
      },
      {
        "id": "checking",
        "label": "Checking",
        "image": "https://cdn.api.apiture.com/static/images/accountTypes/checking.png"
      }
    ]
  },
  "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.)",
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "initial": false,
  "terminal": false,
  "errorTask": "businessInfoForm",
  "includeInTaskSequence": true
}';
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);
});

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));
  }
})

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 https://api.devbank.apiture.com/workflow/tasks/{taskId}

Perform a complete replacement of this task.

Body parameter

{
  "_profile": "https://production.api.apiture.com/schemas/workflow/task/v1.2.2/profile.json",
  "_links": {
    "self": {
      "href": "https://api.devbank.apiture.com/workflow/tasks/0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:definition": {
      "href": "https://api.devbank.apiture.com/workflow/taskDefinitions/99ced512-9c19-4c5d-8859-9c42cd4bcc7b"
    },
    "up": {
      "href": "https://api.devbank.apiture.com/workflow/workflows/64802afe-d0a4-4680-b6fb-a0de98f3d871"
    },
    "apiture:cancel": {
      "href": "https://api.devbank.apiture.com/canceledTasks?task=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:fail": {
      "href": "https://api.devbank.apiture.com/failedTasks?task=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:pause": {
      "href": "https://api.devbank.apiture.com/pausedTasks?task=0399abed-fd3d-4830-a88b-30f38b8a365c"
    }
  },
  "name": "updateBusinessInfo",
  "domain": "https://production.api.apiture.com/domains/acctApps",
  "label": "Save Business Information",
  "revisionLabel": "Use Terms and Conditions 1.0.4 as of 2018-09-25",
  "type": "updateOrg",
  "visibility": "hidden",
  "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
    },
    "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."
            },
            "image": {
              "type": "string",
              "description": "A URI of an image to present for this choice."
            }
          }
        }
      }
    }
  },
  "interface": {
    "category": {
      "input": true,
      "output": false,
      "required": true
    },
    "ownership": {
      "input": true,
      "output": false,
      "required": true
    },
    "minimumBalanceGoal": {
      "input": true,
      "output": false,
      "value": 10000
    },
    "choice": {
      "input": true,
      "output": true
    },
    "choiceLabel": {
      "input": false,
      "output": true
    },
    "choices": {
      "input": true
    },
    "label": "Choose an account type",
    "presentation": "iconAndLabel",
    "selection": "single",
    "defaultSelection": "savings"
  },
  "values": {
    "category": "personal",
    "ownership": "joint",
    "minimumBalanceGoal": 1000,
    "choice": "checking",
    "choiceLabel": "Checking",
    "choices": [
      {
        "id": "savings",
        "label": "Savings",
        "image": "https://cdn.api.apiture.com/static/images/accountTypes/savings.png"
      },
      {
        "id": "checking",
        "label": "Checking",
        "image": "https://cdn.api.apiture.com/static/images/accountTypes/checking.png"
      }
    ]
  },
  "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.)",
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "initial": false,
  "terminal": false,
  "errorTask": "businessInfoForm",
  "includeInTaskSequence": true
}

Parameters

ParameterDescription
taskId
in: path
string (required)
The unique identifier of this task. This is an opaque string.
If-Match
in: header
string
The entity tag that was returned in the ETag response. This must match the current entity tag of the resource.
body task (required)
A workflow task instance.

Example responses

200 Response

{
  "_profile": "https://production.api.apiture.com/schemas/workflow/task/v1.2.2/profile.json",
  "_links": {
    "self": {
      "href": "https://api.devbank.apiture.com/workflow/tasks/0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:definition": {
      "href": "https://api.devbank.apiture.com/workflow/taskDefinitions/99ced512-9c19-4c5d-8859-9c42cd4bcc7b"
    },
    "up": {
      "href": "https://api.devbank.apiture.com/workflow/workflows/64802afe-d0a4-4680-b6fb-a0de98f3d871"
    },
    "apiture:cancel": {
      "href": "https://api.devbank.apiture.com/canceledTasks?task=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:fail": {
      "href": "https://api.devbank.apiture.com/failedTasks?task=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:pause": {
      "href": "https://api.devbank.apiture.com/pausedTasks?task=0399abed-fd3d-4830-a88b-30f38b8a365c"
    }
  },
  "name": "updateBusinessInfo",
  "domain": "https://production.api.apiture.com/domains/acctApps",
  "label": "Save Business Information",
  "revisionLabel": "Use Terms and Conditions 1.0.4 as of 2018-09-25",
  "type": "updateOrg",
  "visibility": "hidden",
  "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
    },
    "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."
            },
            "image": {
              "type": "string",
              "description": "A URI of an image to present for this choice."
            }
          }
        }
      }
    }
  },
  "interface": {
    "category": {
      "input": true,
      "output": false,
      "required": true
    },
    "ownership": {
      "input": true,
      "output": false,
      "required": true
    },
    "minimumBalanceGoal": {
      "input": true,
      "output": false,
      "value": 10000
    },
    "choice": {
      "input": true,
      "output": true
    },
    "choiceLabel": {
      "input": false,
      "output": true
    },
    "choices": {
      "input": true
    },
    "label": "Choose an account type",
    "presentation": "iconAndLabel",
    "selection": "single",
    "defaultSelection": "savings"
  },
  "values": {
    "category": "personal",
    "ownership": "joint",
    "minimumBalanceGoal": 1000,
    "choice": "checking",
    "choiceLabel": "Checking",
    "choices": [
      {
        "id": "savings",
        "label": "Savings",
        "image": "https://cdn.api.apiture.com/static/images/accountTypes/savings.png"
      },
      {
        "id": "checking",
        "label": "Checking",
        "image": "https://cdn.api.apiture.com/static/images/accountTypes/checking.png"
      }
    ]
  },
  "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.)",
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "initial": false,
  "terminal": false,
  "errorTask": "businessInfoForm",
  "includeInTaskSequence": true
}

Responses

StatusDescription
200 OK
OK.
Schema: task
HeaderETag
string
If supplied, the ETag (entity tag) response header should be in an If-Match request header of PUT or PATCH operations that update the resource.
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.

This error response may have one of the following type values:

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.

This error response may have one of the following type values:

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.

This error response may have one of the following type values:

Schema: errorResponse

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

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);
});

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));
  }
})

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 https://api.devbank.apiture.com/workflow/tasks/{taskId}

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

Parameters

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

Example responses

404 Response

{
  "_profile": "https://production.api.apiture.com/schemas/common/errorResponse/v2.1.1/profile.json",
  "_links": {
    "self": {
      "href": "https://api.devbank.apiture.com/apiName/resourceName/resourceId"
    }
  },
  "_error": {
    "_id": "2eae46e1-575c-4d69-8a8f-0a7b0115a4b3",
    "message": "Description of the error will appear here.",
    "statusCode": 422,
    "type": "specificErrorType",
    "attributes": {
      "value": "Optional attribute describing the error"
    },
    "remediation": "Optional instructions to remediate the error may appear here.",
    "occurredAt": "2018-01-25T05:50:52.375Z",
    "_links": {
      "describedby": {
        "href": "https://production.api.apiture.com/errors/specificErrorType"
      }
    },
    "_embedded": {
      "errors": []
    }
  }
}

Responses

StatusDescription
204 No Content
No Content. The resource was deleted successfully.
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.

This error response may have one of the following type values:

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

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

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);
});

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));
  }
})

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 https://api.devbank.apiture.com/workflow/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

ParameterDescription
taskId
in: path
string (required)
The unique identifier of this task. This is an opaque string.

Example responses

200 Response

{}

Responses

StatusDescription
200 OK
OK.
Schema: Inline
HeaderETag
string
If supplied, the ETag (entity tag) response header should be in an If-Match request header of PUT or PATCH operations that update the resource.
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.

This error response may have one of the following type values:

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

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

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);
});

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));
  }
})

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 https://api.devbank.apiture.com/workflow/tasks/{taskId}/values

Update the runtime values associated with this task. This provides convenient access to the map of values of the task, including the inputs and outputs. This map only contains values defined in the task's schema. The request body must include all values obtained from the GET operation, and the values must conform to the task's schema. This operation is idempotent.

To update a specific value, use PUT /tasks/{taskId}/values/{valueName} (operation updateTaskValue).

Body parameter

{}

Parameters

ParameterDescription
taskId
in: path
string (required)
The unique identifier of this task. This is an opaque string.
body attributes (required)
A set of named values.

Example responses

200 Response

{}

Responses

StatusDescription
200 OK
OK.
Schema: Inline
HeaderETag
string
If supplied, the ETag (entity tag) response header should be in an If-Match request header of PUT or PATCH operations that update the resource.
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.

This error response may have one of the following type values:

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.

This error response may have one of the following type values:

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.

This error response may have one of the following type values:

Schema: errorResponse

Response Schema

Status Code 200

Property Name Description
Attributes (v2.1.0) object
An optional map of name/value pairs which contains additional dynamic data about the resource.

This schema was resolved from common/attributes.

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

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);
});

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));
  }
})

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 https://api.devbank.apiture.com/workflow/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 task's schema.

To update a specific value, use PUT /tasks/{taskId}/values/{valueName} (operation updateTaskValue).

Parameters

ParameterDescription
taskId
in: path
string (required)
The unique identifier of this task. This is an opaque string.
valueName
in: 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 | '-' | '_']*.

Example responses

200 Response

{}

Responses

StatusDescription
200 OK
OK.
Schema: Inline
HeaderETag
string
If supplied, the ETag (entity tag) response header should be in an If-Match request header of PUT or PATCH operations that update the resource.
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.

This error response may have one of the following type values:

Schema: errorResponse

Response Schema

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

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);
});

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));
  }
})

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 https://api.devbank.apiture.com/workflow/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 task's schema. The request body must conform to the task's schema for the named {valueName}. This operation is idempotent.

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

Body parameter

{}

Parameters

ParameterDescription
taskId
in: path
string (required)
The unique identifier of this task. This is an opaque string.
valueName
in: 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 attributes (required)
A set of named values.

Example responses

200 Response

{}

Responses

StatusDescription
200 OK
OK.
Schema: Inline
HeaderETag
string
If supplied, the ETag (entity tag) response header should be in an If-Match request header of PUT or PATCH operations that update the resource.
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.

This error response may have one of the following type values:

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.

This error response may have one of the following type values:

Schema: errorResponse

Response Schema

Status Code 200

Property Name Description
Attributes (v2.1.0) object
An optional map of name/value pairs which contains additional dynamic data about the resource.

This schema was resolved from common/attributes.

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

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);
});

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));
  }
})

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 https://api.devbank.apiture.com/workflow/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

ParameterDescription
task
in: query
string (required)
A server-supplied value which identifies the task instance.

Example responses

200 Response

{
  "_profile": "https://production.api.apiture.com/schemas/workflow/task/v1.2.2/profile.json",
  "_links": {
    "self": {
      "href": "https://api.devbank.apiture.com/workflow/tasks/0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:definition": {
      "href": "https://api.devbank.apiture.com/workflow/taskDefinitions/99ced512-9c19-4c5d-8859-9c42cd4bcc7b"
    },
    "up": {
      "href": "https://api.devbank.apiture.com/workflow/workflows/64802afe-d0a4-4680-b6fb-a0de98f3d871"
    },
    "apiture:cancel": {
      "href": "https://api.devbank.apiture.com/canceledTasks?task=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:fail": {
      "href": "https://api.devbank.apiture.com/failedTasks?task=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:pause": {
      "href": "https://api.devbank.apiture.com/pausedTasks?task=0399abed-fd3d-4830-a88b-30f38b8a365c"
    }
  },
  "name": "updateBusinessInfo",
  "domain": "https://production.api.apiture.com/domains/acctApps",
  "label": "Save Business Information",
  "revisionLabel": "Use Terms and Conditions 1.0.4 as of 2018-09-25",
  "type": "updateOrg",
  "visibility": "hidden",
  "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
    },
    "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."
            },
            "image": {
              "type": "string",
              "description": "A URI of an image to present for this choice."
            }
          }
        }
      }
    }
  },
  "interface": {
    "category": {
      "input": true,
      "output": false,
      "required": true
    },
    "ownership": {
      "input": true,
      "output": false,
      "required": true
    },
    "minimumBalanceGoal": {
      "input": true,
      "output": false,
      "value": 10000
    },
    "choice": {
      "input": true,
      "output": true
    },
    "choiceLabel": {
      "input": false,
      "output": true
    },
    "choices": {
      "input": true
    },
    "label": "Choose an account type",
    "presentation": "iconAndLabel",
    "selection": "single",
    "defaultSelection": "savings"
  },
  "values": {
    "category": "personal",
    "ownership": "joint",
    "minimumBalanceGoal": 1000,
    "choice": "checking",
    "choiceLabel": "Checking",
    "choices": [
      {
        "id": "savings",
        "label": "Savings",
        "image": "https://cdn.api.apiture.com/static/images/accountTypes/savings.png"
      },
      {
        "id": "checking",
        "label": "Checking",
        "image": "https://cdn.api.apiture.com/static/images/accountTypes/checking.png"
      }
    ]
  },
  "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.)",
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "initial": false,
  "terminal": false,
  "errorTask": "businessInfoForm",
  "includeInTaskSequence": true
}

Responses

StatusDescription
200 OK
OK.
Schema: task
StatusDescription
422 Unprocessable Entity

Unprocessable Entity. The task parameter does not name a valid workflow task.

This error response may have one of the following type values:

Schema: errorResponse

pauseTask

Code samples

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

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

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/pausedTasks?task=string',
{
  method: 'POST',

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

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

};

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

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/pausedTasks',
  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/pausedTasks', params={
  'task': 'string'
}, headers = headers)

print r.json()

URL obj = new URL("https://api.devbank.apiture.com/workflow/pausedTasks?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/pausedTasks", data)
    req.Header = headers

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

Pause a workflow task

POST https://api.devbank.apiture.com/workflow/pausedTasks

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, ?task=. This operation is invoked from the apiture:pause 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

ParameterDescription
task
in: query
string (required)
A server-supplied value which identifies the task instance.

Example responses

200 Response

{
  "_profile": "https://production.api.apiture.com/schemas/workflow/task/v1.2.2/profile.json",
  "_links": {
    "self": {
      "href": "https://api.devbank.apiture.com/workflow/tasks/0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:definition": {
      "href": "https://api.devbank.apiture.com/workflow/taskDefinitions/99ced512-9c19-4c5d-8859-9c42cd4bcc7b"
    },
    "up": {
      "href": "https://api.devbank.apiture.com/workflow/workflows/64802afe-d0a4-4680-b6fb-a0de98f3d871"
    },
    "apiture:cancel": {
      "href": "https://api.devbank.apiture.com/canceledTasks?task=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:fail": {
      "href": "https://api.devbank.apiture.com/failedTasks?task=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:pause": {
      "href": "https://api.devbank.apiture.com/pausedTasks?task=0399abed-fd3d-4830-a88b-30f38b8a365c"
    }
  },
  "name": "updateBusinessInfo",
  "domain": "https://production.api.apiture.com/domains/acctApps",
  "label": "Save Business Information",
  "revisionLabel": "Use Terms and Conditions 1.0.4 as of 2018-09-25",
  "type": "updateOrg",
  "visibility": "hidden",
  "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
    },
    "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."
            },
            "image": {
              "type": "string",
              "description": "A URI of an image to present for this choice."
            }
          }
        }
      }
    }
  },
  "interface": {
    "category": {
      "input": true,
      "output": false,
      "required": true
    },
    "ownership": {
      "input": true,
      "output": false,
      "required": true
    },
    "minimumBalanceGoal": {
      "input": true,
      "output": false,
      "value": 10000
    },
    "choice": {
      "input": true,
      "output": true
    },
    "choiceLabel": {
      "input": false,
      "output": true
    },
    "choices": {
      "input": true
    },
    "label": "Choose an account type",
    "presentation": "iconAndLabel",
    "selection": "single",
    "defaultSelection": "savings"
  },
  "values": {
    "category": "personal",
    "ownership": "joint",
    "minimumBalanceGoal": 1000,
    "choice": "checking",
    "choiceLabel": "Checking",
    "choices": [
      {
        "id": "savings",
        "label": "Savings",
        "image": "https://cdn.api.apiture.com/static/images/accountTypes/savings.png"
      },
      {
        "id": "checking",
        "label": "Checking",
        "image": "https://cdn.api.apiture.com/static/images/accountTypes/checking.png"
      }
    ]
  },
  "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.)",
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "initial": false,
  "terminal": false,
  "errorTask": "businessInfoForm",
  "includeInTaskSequence": true
}

Responses

StatusDescription
200 OK
OK.
Schema: task
StatusDescription
422 Unprocessable Entity

Unprocessable Entity. The task parameter does not name a valid workflow task.

This error response may have one of the following type values:

Schema: errorResponse

cancelTask

Code samples

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

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

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/canceledTasks?task=string',
{
  method: 'POST',

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

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

};

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

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/canceledTasks',
  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/canceledTasks', params={
  'task': 'string'
}, headers = headers)

print r.json()

URL obj = new URL("https://api.devbank.apiture.com/workflow/canceledTasks?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/canceledTasks", data)
    req.Header = headers

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

Cancel a workflow task

POST https://api.devbank.apiture.com/workflow/canceledTasks

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, ?task=. This operation is invoked from the apiture:cancel 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

ParameterDescription
task
in: query
string (required)
A server-supplied value which identifies the task instance.

Example responses

200 Response

{
  "_profile": "https://production.api.apiture.com/schemas/workflow/task/v1.2.2/profile.json",
  "_links": {
    "self": {
      "href": "https://api.devbank.apiture.com/workflow/tasks/0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:definition": {
      "href": "https://api.devbank.apiture.com/workflow/taskDefinitions/99ced512-9c19-4c5d-8859-9c42cd4bcc7b"
    },
    "up": {
      "href": "https://api.devbank.apiture.com/workflow/workflows/64802afe-d0a4-4680-b6fb-a0de98f3d871"
    },
    "apiture:cancel": {
      "href": "https://api.devbank.apiture.com/canceledTasks?task=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:fail": {
      "href": "https://api.devbank.apiture.com/failedTasks?task=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:pause": {
      "href": "https://api.devbank.apiture.com/pausedTasks?task=0399abed-fd3d-4830-a88b-30f38b8a365c"
    }
  },
  "name": "updateBusinessInfo",
  "domain": "https://production.api.apiture.com/domains/acctApps",
  "label": "Save Business Information",
  "revisionLabel": "Use Terms and Conditions 1.0.4 as of 2018-09-25",
  "type": "updateOrg",
  "visibility": "hidden",
  "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
    },
    "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."
            },
            "image": {
              "type": "string",
              "description": "A URI of an image to present for this choice."
            }
          }
        }
      }
    }
  },
  "interface": {
    "category": {
      "input": true,
      "output": false,
      "required": true
    },
    "ownership": {
      "input": true,
      "output": false,
      "required": true
    },
    "minimumBalanceGoal": {
      "input": true,
      "output": false,
      "value": 10000
    },
    "choice": {
      "input": true,
      "output": true
    },
    "choiceLabel": {
      "input": false,
      "output": true
    },
    "choices": {
      "input": true
    },
    "label": "Choose an account type",
    "presentation": "iconAndLabel",
    "selection": "single",
    "defaultSelection": "savings"
  },
  "values": {
    "category": "personal",
    "ownership": "joint",
    "minimumBalanceGoal": 1000,
    "choice": "checking",
    "choiceLabel": "Checking",
    "choices": [
      {
        "id": "savings",
        "label": "Savings",
        "image": "https://cdn.api.apiture.com/static/images/accountTypes/savings.png"
      },
      {
        "id": "checking",
        "label": "Checking",
        "image": "https://cdn.api.apiture.com/static/images/accountTypes/checking.png"
      }
    ]
  },
  "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.)",
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "initial": false,
  "terminal": false,
  "errorTask": "businessInfoForm",
  "includeInTaskSequence": true
}

Responses

StatusDescription
200 OK
OK.
Schema: task
StatusDescription
422 Unprocessable Entity

Unprocessable Entity. The task parameter does not name a valid workflow task.

This error response may have one of the following type values:

Schema: errorResponse

failTask

Code samples

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

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

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/failedTasks?task=string',
{
  method: 'POST',

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

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

};

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

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/failedTasks',
  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/failedTasks', params={
  'task': 'string'
}, headers = headers)

print r.json()

URL obj = new URL("https://api.devbank.apiture.com/workflow/failedTasks?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/failedTasks", data)
    req.Header = headers

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

Stop a workflow task and mark it as failed

POST https://api.devbank.apiture.com/workflow/failedTasks

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, ?task=. This operation is invoked from the apiture:fail 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

ParameterDescription
task
in: query
string (required)
A server-supplied value which identifies the task instance.

Example responses

200 Response

{
  "_profile": "https://production.api.apiture.com/schemas/workflow/task/v1.2.2/profile.json",
  "_links": {
    "self": {
      "href": "https://api.devbank.apiture.com/workflow/tasks/0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:definition": {
      "href": "https://api.devbank.apiture.com/workflow/taskDefinitions/99ced512-9c19-4c5d-8859-9c42cd4bcc7b"
    },
    "up": {
      "href": "https://api.devbank.apiture.com/workflow/workflows/64802afe-d0a4-4680-b6fb-a0de98f3d871"
    },
    "apiture:cancel": {
      "href": "https://api.devbank.apiture.com/canceledTasks?task=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:fail": {
      "href": "https://api.devbank.apiture.com/failedTasks?task=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:pause": {
      "href": "https://api.devbank.apiture.com/pausedTasks?task=0399abed-fd3d-4830-a88b-30f38b8a365c"
    }
  },
  "name": "updateBusinessInfo",
  "domain": "https://production.api.apiture.com/domains/acctApps",
  "label": "Save Business Information",
  "revisionLabel": "Use Terms and Conditions 1.0.4 as of 2018-09-25",
  "type": "updateOrg",
  "visibility": "hidden",
  "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
    },
    "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."
            },
            "image": {
              "type": "string",
              "description": "A URI of an image to present for this choice."
            }
          }
        }
      }
    }
  },
  "interface": {
    "category": {
      "input": true,
      "output": false,
      "required": true
    },
    "ownership": {
      "input": true,
      "output": false,
      "required": true
    },
    "minimumBalanceGoal": {
      "input": true,
      "output": false,
      "value": 10000
    },
    "choice": {
      "input": true,
      "output": true
    },
    "choiceLabel": {
      "input": false,
      "output": true
    },
    "choices": {
      "input": true
    },
    "label": "Choose an account type",
    "presentation": "iconAndLabel",
    "selection": "single",
    "defaultSelection": "savings"
  },
  "values": {
    "category": "personal",
    "ownership": "joint",
    "minimumBalanceGoal": 1000,
    "choice": "checking",
    "choiceLabel": "Checking",
    "choices": [
      {
        "id": "savings",
        "label": "Savings",
        "image": "https://cdn.api.apiture.com/static/images/accountTypes/savings.png"
      },
      {
        "id": "checking",
        "label": "Checking",
        "image": "https://cdn.api.apiture.com/static/images/accountTypes/checking.png"
      }
    ]
  },
  "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.)",
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "initial": false,
  "terminal": false,
  "errorTask": "businessInfoForm",
  "includeInTaskSequence": true
}

Responses

StatusDescription
200 OK
OK.
Schema: task
StatusDescription
422 Unprocessable Entity

Unprocessable Entity. The task parameter does not name a valid workflow task.

This error response may have one of the following type values:

Schema: errorResponse

API

Endpoints which describe this API

getLabels

Code samples

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

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

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

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

};

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

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

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

};

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

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

require 'rest-client'
require 'json'

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

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

p JSON.parse(result)

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

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

}, headers = headers)

print r.json()

URL obj = new URL("https://api.devbank.apiture.com/workflow/labels");
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"},
        "Accept-Language": []string{"string"},
        "API-Key": []string{"API_KEY"},
        
    }

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

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

Localized Labels

GET https://api.devbank.apiture.com/workflow/labels

Return a JSON object which defines labels for enumeration types defined by the schemas defined in this API.

The labels in the response may not all match the requested language; some may be in the default language (en-us).

Parameters

ParameterDescription
Accept-Language
in: header
string
The weighted language tags which indicate the user's preferred natural language for the localized labels in the response, as per RFC 7231.

Example responses

200 Response

{
  "_profile": "https://production.api.apiture.com/schemas/common/labelGroups/v1.1.3/profile.json",
  "_links": {
    "self": {
      "href": "https://api.devbank.apiture.com/apiName/resourceName/resourceId"
    }
  },
  "groups": {
    "firstGroup": {
      "unknown": {
        "label": "Unknown",
        "code": "0",
        "hidden": true
      },
      "key1": {
        "label": "Label for Key 1",
        "code": "1",
        "variants": {
          "es": {
            "label": "(Spanish label for Key 1)"
          },
          "fr": {
            "label": "(French label for Key 1)"
          }
        }
      },
      "key2": {
        "label": "Label for Key 2",
        "code": "2",
        "variants": {
          "es": {
            "label": "(Spanish label for Key 2)"
          },
          "fr": {
            "label": "(French label for Key 2)"
          }
        }
      },
      "key3": {
        "label": "Label for Key 3",
        "code": "3",
        "variants": {
          "es": {
            "label": "(Spanish label for Key 3)"
          },
          "fr": {
            "label": "(French label for Key 3)"
          }
        }
      },
      "other": {
        "label": "Other",
        "variants": {
          "es": {
            "label": "(Spanish label for Other)"
          },
          "fr": {
            "label": "(French label for Other)"
          }
        },
        "code": "254"
      }
    },
    "secondGroup": {
      "unknown": {
        "label": "Unknown",
        "code": "?",
        "hidden": true
      },
      "optionA": {
        "label": "Option A",
        "code": "A"
      },
      "optionB": {
        "label": "Option B",
        "code": "B"
      },
      "optionC": {
        "label": "Option C",
        "code": "C"
      },
      "other": {
        "label": "Other",
        "code": "_"
      }
    }
  }
}

Responses

StatusDescription
200 OK
OK.
Schema: labelGroups

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

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);
});

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));
  }
})

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 https://api.devbank.apiture.com/workflow/

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

  • apiture:workflowDefinitions - links to the collection of workflow definitions
  • apiture:workflows - links to the collection of workflows
  • apiture:taskDefinitions - links to the collection of workflow task definitions
  • apiture:tasks - links to the collection of workflow tasks

Example responses

200 Response

{
  "_profile": "https://production.api.apiture.com/schemas/common/root/v2.1.1/profile.json",
  "_links": {
    "self": {
      "href": "https://api.devbank.apiture.com/apiName/resourceName/resourceId"
    }
  },
  "id": "apiName",
  "name": "API name",
  "apiVersion": "1.0.0"
}

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

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);
});

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));
  }
})

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 https://api.devbank.apiture.com/workflow/apiDoc

Return the OpenAPI document that describes this API.

Example responses

200 Response

{}

Responses

StatusDescription
200 OK
OK.
Schema: Inline

Response Schema

Schemas

abstractRequest

{
  "_profile": "https://production.api.apiture.com/schemas/common/abstractRequest/v2.0.0/profile.json",
  "_links": {}
}

Abstract Request (v2.0.0)

An abstract schema used to define other request-only schemas. This is a HAL resource representation, minus the _error defined in abstractResource.

This schema was resolved from common/abstractRequest.

Properties

NameDescription
Abstract Request (v2.0.0) object
An abstract schema used to define other request-only schemas. This is a HAL resource representation, minus the _error defined in abstractResource.

This schema was resolved from common/abstractRequest.

_links links
An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.

This schema was resolved from common/links.

_embedded object
An optional map of nested resources, mapping each nested resource name to a nested resource representation.
_profile string(uri)
The URI of a resource profile which describes the representation.
read-only
format: uri

abstractResource

{
  "_profile": "https://production.api.apiture.com/schemas/common/abstractResource/v2.1.0/profile.json",
  "_links": {
    "self": {
      "href": "https://api.devbank.apiture.com/apiName/resourceName/resourceId"
    }
  }
}

Abstract Resource (v2.1.0)

An abstract schema used to define other schemas for request and response bodies. This is a HAL resource representation. This model contains hypermedia _links, and either optional domain object data with _profile and optional _embedded objects, or an _error object. In responses, if the operation was successful, this object will not include the _error, but if the operation was a 4xx or 5xx error, this object will not include _embedded or any data fields, only _error and optionally _links.

This schema was resolved from common/abstractResource.

Properties

NameDescription
Abstract Resource (v2.1.0) object
An abstract schema used to define other schemas for request and response bodies. This is a HAL resource representation. This model contains hypermedia _links, and either optional domain object data with _profile and optional _embedded objects, or an _error object. In responses, if the operation was successful, this object will not include the _error, but if the operation was a 4xx or 5xx error, this object will not include _embedded or any data fields, only _error and optionally _links.

This schema was resolved from common/abstractResource.

_links links
An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.

This schema was resolved from common/links.

_embedded object
An optional map of nested resources, mapping each nested resource name to a nested resource representation.
_profile string(uri)
The URI of a resource profile which describes the representation.
read-only
format: uri
_error error
An object which describes an error. This value is omitted if the operation succeeded without error.
read-only

attributes

{}

Attributes (v2.1.0)

An optional map of name/value pairs which contains additional dynamic data about the resource.

This schema was resolved from common/attributes.

Properties

NameDescription
Attributes (v2.1.0) object
An optional map of name/value pairs which contains additional dynamic data about the resource.

This schema was resolved from common/attributes.

binding

{
  "source": "_.userProfile",
  "targets": [
    "userForm1.user",
    "jointUserForm1.spouse"
  ]
}

Variable Binding (v1.1.0)

Binds (assigns) a source variable to one or more target destinations.

Each source or target is a compound name, either _.fieldName to refer to an variable in the workflow's or task's values, or taskName.fieldName to refer to a variable in a task's values. The fieldName may in turn be a compound name if the value is an object type, or may include an array index if the referenced data value is an array.

For example, the binding

  { 'source' : '_.user',
    'targets' : [ 'userForm1.user', 'jointUserForm1.spouse' ]
  }

will initialize the value user in the userForm1 task with the workflow item's user value, and initialize the value spouse field in the jointUserForm1 task with the same value.

Properties

NameDescription
Variable Binding (v1.1.0) object
Binds (assigns) a source variable to one or more target destinations.

Each source or target is a compound name, either _.fieldName to refer to an variable in the workflow's or task's values, or taskName.fieldName to refer to a variable in a task's values. The fieldName may in turn be a compound name if the value is an object type, or may include an array index if the referenced data value is an array.

For example, the binding

  { 'source' : '_.user',
    'targets' : [ 'userForm1.user', 'jointUserForm1.spouse' ]
  }

will initialize the value user in the userForm1 task with the workflow item's user value, and initialize the value spouse field in the jointUserForm1 task with the same value.

source string
The name of a value within the workflow's values (such as _.fieldName) or within a task's values (such as taskName.fieldName).
minLength: 3
maxLength: 256
conversion string
An optional expression to apply to the named source value to convert it before binding the value to each of the targets or externalTargets. The identifier source in the expression holds the value of the named source value.
targets array: [string]
The names of one or more values within the workflow (named _.fieldName) or within a task (named taskName.fieldName) which will be bound to or assigned the value of the source.
items: string
» minLength: 3
» maxLength: 256
externalTargets array: [object]

External targets bind source variables to an external resource.

For example, the external target

  { 'source' : 'userInformation.firstName',
    'externalTargets' : [ { 'uri': '_.applicationUri', 'target': 'applicants[0].firstName'} ]
  }

will update the resource located at the uri at applicationUri in the workflow's values and map the source value from the userInformation task values to the external resource's body

{
  'applicants': [{
    'firstName': 'mySourceValue'
  }]
}

items: object
» uri string
The names of one or more values within the workflow (named _.fieldName) or within a task (named taskName.fieldName) which contains the uri of the external resource to bind to.
minLength: 3
maxLength: 256
» target string
The name of one or more properties on the external resource which will be assigned the value of the source. This is used to map the source value to the proper object structure of the external resource.
minLength: 3
maxLength: 256

collection

{
  "_profile": "https://production.api.apiture.com/schemas/common/abstractResource/v2.1.0/profile.json",
  "_links": {
    "self": {
      "href": "https://api.devbank.apiture.com/apiName/resourceName/resourceId"
    }
  }
}

Collection (v2.1.1)

A collection of resources. This is an abstract model schema which is extended to define specific resource collections.

This schema was resolved from common/collection.

Properties

NameDescription
Collection (v2.1.1) object
A collection of resources. This is an abstract model schema which is extended to define specific resource collections.

This schema was resolved from common/collection.

_links links
An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.

This schema was resolved from common/links.

_embedded object
An optional map of nested resources, mapping each nested resource name to a nested resource representation.
_profile string(uri)
The URI of a resource profile which describes the representation.
read-only
format: uri
_error error
An object which describes an error. This value is omitted if the operation succeeded without error.
read-only
count integer
The number of items in the collection. This value is optional and may be omitted if the count is not computable efficiently. If a filter is applied to the collection (either implicitly or explicitly), the count, if present, indicates the number of items that satisfy the filter.
start integer
The start index of this page of items.
limit integer
The maximum number of items per page.
name string
The name of the collection.

createTask

{
  "_profile": "https://production.api.apiture.com/schemas/workflow/createTask/v1.3.2/profile.json",
  "_links": {
    "self": {
      "href": "https://api.devbank.apiture.com/workflow/tasks/f782aa4e-1926-4538-8289-6f401772d1d3"
    }
  },
  "name": "accountCategoryChoice",
  "domain": "https://production.api.apiture.com/domains/tasks/prompts",
  "label": "Account Category Choice",
  "revisionLabel": "Use Terms and Conditions 1.0.4 as of 2018-09-25",
  "type": "staticChoice",
  "visibility": "hidden",
  "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
    },
    "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."
            },
            "image": {
              "type": "string",
              "description": "A URI of an image to present for this choice."
            },
            "imageUri": {
              "type": "string",
              "description": "A URI of an image to present for this choice."
            }
          }
        }
      }
    }
  },
  "interface": {
    "category": {
      "input": true,
      "output": false,
      "required": true
    },
    "ownership": {
      "input": true,
      "output": false,
      "required": true
    },
    "minimumBalanceGoal": {
      "input": true,
      "output": false,
      "value": 10000
    },
    "choice": {
      "input": true,
      "output": true
    },
    "choiceLabel": {
      "input": false,
      "output": true
    },
    "choices": {
      "input": true,
      "value": [
        {
          "id": "savings",
          "label": "Savings",
          "imageUri": "https://cdn.api.apiture.com/static/images/accountTypes/savings.png"
        },
        {
          "id": "checking",
          "label": "Checking",
          "imageUri": "https://cdn.api.apiture.com/static/images/accountTypes/checking.png"
        }
      ]
    },
    "label": "Choose an account type",
    "presentation": "iconAndLabel",
    "selection": "single",
    "defaultSelection": "savings"
  },
  "values": {
    "category": "personal",
    "ownership": "joint",
    "minimumBalanceGoal": 1000,
    "choice": "checking",
    "choiceLabel": "Checking",
    "choices": [
      {
        "id": "savings",
        "label": "Savings",
        "image": "https://cdn.api.apiture.com/static/images/accountTypes/savings.png"
      },
      {
        "id": "checking",
        "label": "Checking",
        "image": "https://cdn.api.apiture.com/static/images/accountTypes/checking.png"
      }
    ]
  },
  "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.)"
}

Create Task Definition (v1.3.2)

Representation used to create a new task definition.

Properties

NameDescription
Create Task Definition (v1.3.2) object
Representation used to create a new task definition.
_links links
An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.

This schema was resolved from common/links.

_embedded object
An optional map of nested resources, mapping each nested resource name to a nested resource representation.
_profile string(uri)
The URI of a resource profile which describes the representation.
read-only
format: uri
name string
The name of this resource. The combination of domain and name must be unique within the set of all resources of this type.
minLength: 1
maxLength: 48
pattern: [a-zA-Z][-\w_]*
domain string
A namespace for grouping related resources, to keep them separate from other resources. For example, a department or bank branch may define a domain, and all tasks or workflow instances they define will use that domain, so that they can avoid conflicting with task or workflow names in other domains. An API or service may define a domain for workflows and tasks that it defines. The combination of domain and name must be unique within the set of all resources of this type. It is a best practice to define domains with URIs.
minLength: 1
maxLength: 512
label string
The text label for this resource, suitable for presentation to the client.
minLength: 1
maxLength: 128
description string(markdown)
The full description for this resource, suitable for presentation in the tools for building/navigating the workflow. The content is processed as Github Flavored Markdown and thus supports rich text.
format: markdown
minLength: 1
maxLength: 4096
instructions string(markdown)
End-user instructions for this workflow item. The content is processed as Github Flavored Markdown and thus supports rich text.
format: markdown
minLength: 1
maxLength: 4096
restartable boolean
Indicates if the workflow or task is restartable.
default: true
restartableRule string
An optional expression used in determining if the given task is restartable.
minLength: 1
maxLength: 128
maxRestartCount integer
An optional limit on the amount of times that the given task can be restarted.
restartCount integer
A running count of the amount of times that a given task has been restarted.
schema object
The schema which defines the name and types of the variables that are part of this task definition. Property names must be simple identifiers consisting of alphanumeric characters, -, _ following the pattern letter [letter | digit | '-' | '_']* This is implicitly a schema for type: object and contains the properties.

The values in a task conform to the schema. The names and types are described with a subset of JSON Schema Core and JSON Schema Validation similar to that used to define schemas in OpenAPI Specification 2.0.

interface object
interface defines the input and output interface of the workflow or task. The interface maps a variable from the schema to an object which indicates if the variable is part of the inputs to the task or workflow or part of the outputs of the instance, or both. The value provides a default value which is used when creating the instance. The value must confirm to the schema for that variable.
» Interface (v1.0.0) interface
Defines the input and output interface (subset of values) for a task or workflow.
bindings array: [binding]
bindings connects input and output interface variables of the workflow and the workflow tasks.

When the workflow starts, all workflow and task variables are first assigned to any default values as per their respective interface and schema defaults. Next, workflow and task interface inputs are assigned to the inputs of any tasks as per these bindings. When a task starts, any bindings for its inputs are assigned as per these bindings. Each binding defines a source and one or more targets that are assigned to the value named by the source.
items: object

values object
The data associated with this flow item: the item's variable names and values. These values must conform to this item's schema. When a workflow or task runs, it may read and/or update these values as part of its processing.

When used in a workflow definition or task definition, the values define the default values for the variable that the workflow or task will take if the corresponding value is not bound via a workflow's bindings. That is, a definition's values are copied into the new workflow item's values when the item is instantiated from the definition.

Note: the schema may also contain default values which, if present, are used if a value is not set in the definition's values. (For example, multiple task definitions may use the same schema which defines values a, b, and c, but each task definition may have their own unique values for a, b, and c which is separate from the schema.)

type string
Describes the type of this task. This determines the behavior when the task is activated. Example task types are form (fill out a form), choice (select a value from a fixed set of choices), select (select one or more values from a dynamic set of choices), rest (perform a REST call), compute (compute output values based on the input values), workflow (a reusable set of subtasks). Task types are defined in the Workflow configuration.
minLength: 3
maxLength: 64
pattern: [a-zA-Z][-\w_]*
visibility taskVisibility
Whether the client should show or hide this task.
default: "visible"
enum values: hidden, visible
mode taskMode
Indicates whether the client interacts with the task or not.
enum values: interactive, automatic
includeInTaskSequence boolean
If true, include this task in an optional task sequence object on the workflow's _embedded data. That value contains an ordered list of tasks that have been completed during the workflow. The UI may use this object to traverse the completed tasks.

createWorkflow

{
  "_profile": "https://production.api.apiture.com/schemas/workflow/createWorkflow/v1.1.2/profile.json",
  "_links": {
    "self": {
      "href": "https://api.devbank.apiture.com/workflow/tasks/f782aa4e-1926-4538-8289-6f401772d1d3"
    },
    "apiture:application": {
      "href": "https://api.devbank.apiture.com/accountApplications/applications/2f23b9fe-532f-4e82-943e-b079ea55aebc"
    }
  },
  "name": "newAccountSelector",
  "domain": "https://production.api.apiture.com/domains/acctApps",
  "label": "New Account Selector",
  "revisionLabel": "Use Terms and Conditions 1.0.4 as of 2018-09-25",
  "type": "somethingElse",
  "visibility": "hidden",
  "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": "https://production.api.apiture.com/domains/tasks/forms",
        "name": "userForm",
        "label": "Personal Information",
        "type": "form",
        "_links": {
          "self": {
            "href": "https://api.devbank.apiture.com/workflow/tasks/46913e8b-fb7f-4f31-92bf-7b263907ed95"
          }
        }
      },
      "accountOwnershipChoice": {
        "domain": "https://production.api.apiture.com/domains/tasks/prompts",
        "name": "accountOwnershipChoice",
        "type": "binaryChoice",
        "label": "Select Account Ownership Type",
        "_links": {
          "self": {
            "href": "https://api.devbank.apiture.com/workflow/tasks/3768afc0-1070-4372-b965-44f01cba70cb"
          }
        }
      },
      "jointOwnerInfoForm1": {
        "domain": "https://production.api.apiture.com/domains/tasks/forms",
        "name": "userForm",
        "type": "form",
        "label": "Joint Owner Personal Information",
        "_links": {
          "self": {
            "href": "https://api.devbank.apiture.com/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"
      ]
    }
  ]
}

Create Workflow (v1.1.2)

Representation used to create a new workflow definition. A workflow consists of one or more tasks, with dependencies and constraints. Each task can depend on one or more other tasks, with an optional constraint predicate which must evaluate to true when the dependent tasks have completed (their completed field is true). The default constraint is that each dependent task has completed (its completed field is true, indicating it completed normally, it failed, or it was canceled). The account application should be passed as the apiture:application link in _links in the request.

The values of each task in the workflows _embedded.tasks will also be available within the values of the workflow via the names in the tasks object. For example, if a workflow has tasks

    { 'a' : { ... task type c ... },
      'b' : { ... task type c ... },
      ... }

where tasks a and b both have values named x, y an z, these tasks will be available within the workflow's values as a and b and each of the tasks' values available via a.x, a.y, a.z, b.x, b.y and b.z, respectively. Thus, the schema and values from the workflow definition should not define any values whose name conflicts with the names in tasks.

Note: When creating workflow definition, the _embedded objects should be task definitions.

Properties

NameDescription
Create Workflow (v1.1.2) object
Representation used to create a new workflow definition. A workflow consists of one or more tasks, with dependencies and constraints. Each task can depend on one or more other tasks, with an optional constraint predicate which must evaluate to true when the dependent tasks have completed (their completed field is true). The default constraint is that each dependent task has completed (its completed field is true, indicating it completed normally, it failed, or it was canceled). The account application should be passed as the apiture:application link in _links in the request.

The values of each task in the workflows _embedded.tasks will also be available within the values of the workflow via the names in the tasks object. For example, if a workflow has tasks

    { 'a' : { ... task type c ... },
      'b' : { ... task type c ... },
      ... }

where tasks a and b both have values named x, y an z, these tasks will be available within the workflow's values as a and b and each of the tasks' values available via a.x, a.y, a.z, b.x, b.y and b.z, respectively. Thus, the schema and values from the workflow definition should not define any values whose name conflicts with the names in tasks.

Note: When creating workflow definition, the _embedded objects should be task definitions.

_links links
An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.

This schema was resolved from common/links.

_embedded object
Nested objects within a workflow definition. When creating a workflow definition, the nested tasks should be task or task summary representations from /taskDefinitions (i.e. the task state must be definition). These may be either revisionless task definitions or specific revisions of task definitions.
_profile string(uri)
The URI of a resource profile which describes the representation.
read-only
format: uri
name string
The name of this resource. The combination of domain and name must be unique within the set of all resources of this type.
minLength: 1
maxLength: 48
pattern: [a-zA-Z][-\w_]*
domain string
A namespace for grouping related resources, to keep them separate from other resources. For example, a department or bank branch may define a domain, and all tasks or workflow instances they define will use that domain, so that they can avoid conflicting with task or workflow names in other domains. An API or service may define a domain for workflows and tasks that it defines. The combination of domain and name must be unique within the set of all resources of this type. It is a best practice to define domains with URIs.
minLength: 1
maxLength: 512
label string
The text label for this resource, suitable for presentation to the client.
minLength: 1
maxLength: 128
description string(markdown)
The full description for this resource, suitable for presentation in the tools for building/navigating the workflow. The content is processed as Github Flavored Markdown and thus supports rich text.
format: markdown
minLength: 1
maxLength: 4096
instructions string(markdown)
End-user instructions for this workflow item. The content is processed as Github Flavored Markdown and thus supports rich text.
format: markdown
minLength: 1
maxLength: 4096
restartable boolean
Indicates if the workflow or task is restartable.
default: true
restartableRule string
An optional expression used in determining if the given task is restartable.
minLength: 1
maxLength: 128
maxRestartCount integer
An optional limit on the amount of times that the given task can be restarted.
restartCount integer
A running count of the amount of times that a given task has been restarted.
schema object
The schema which defines the name and types of the variables that are part of this task definition. Property names must be simple identifiers consisting of alphanumeric characters, -, _ following the pattern letter [letter | digit | '-' | '_']* This is implicitly a schema for type: object and contains the properties.

The values in a task conform to the schema. The names and types are described with a subset of JSON Schema Core and JSON Schema Validation similar to that used to define schemas in OpenAPI Specification 2.0.

interface object
interface defines the input and output interface of the workflow or task. The interface maps a variable from the schema to an object which indicates if the variable is part of the inputs to the task or workflow or part of the outputs of the instance, or both. The value provides a default value which is used when creating the instance. The value must confirm to the schema for that variable.
» Interface (v1.0.0) interface
Defines the input and output interface (subset of values) for a task or workflow.
bindings array: [binding]
bindings connects input and output interface variables of the workflow and the workflow tasks.

When the workflow starts, all workflow and task variables are first assigned to any default values as per their respective interface and schema defaults. Next, workflow and task interface inputs are assigned to the inputs of any tasks as per these bindings. When a task starts, any bindings for its inputs are assigned as per these bindings. Each binding defines a source and one or more targets that are assigned to the value named by the source.
items: object

values object
The data associated with this flow item: the item's variable names and values. These values must conform to this item's schema. When a workflow or task runs, it may read and/or update these values as part of its processing.

When used in a workflow definition or task definition, the values define the default values for the variable that the workflow or task will take if the corresponding value is not bound via a workflow's bindings. That is, a definition's values are copied into the new workflow item's values when the item is instantiated from the definition.

Note: the schema may also contain default values which, if present, are used if a value is not set in the definition's values. (For example, multiple task definitions may use the same schema which defines values a, b, and c, but each task definition may have their own unique values for a, b, and c which is separate from the schema.)

dependencies object
The task dependency graph. This defines which tasks are prerequisite tasks for other task in the workflow. dependencies is a map structure. The key is the name of the task which depends on the others; the value is an array of dependency objects which define what named task depends on and what conditions must be met.
» additionalProperties array: [dependency]
[A dependency captures a workflow task dependency: each task within a workflow can depend on 0 or more other dependent tasks, creating a (possibly cyclic) dependency graph. Associated with each dependency is a rule: an optional constraint predicate expression which must evaluate to true in order for the task to start. The default constraint is that the dependent tasks all be completed (normal completion). A dependency object is the value associated with a task's name within a workflow's dependencies object.]
items: object

dependency

{
  "dependents": [
    "string"
  ],
  "rule": "task1.state == 'completed' && task2.values.targetBalance < 1000"
}

task Dependency (v1.0.0)

A dependency captures a workflow task dependency: each task within a workflow can depend on 0 or more other dependent tasks, creating a (possibly cyclic) dependency graph. Associated with each dependency is a rule: an optional constraint predicate expression which must evaluate to true in order for the task to start. The default constraint is that the dependent tasks all be completed (normal completion). A dependency object is the value associated with a task's name within a workflow's dependencies object.

Properties

NameDescription
task Dependency (v1.0.0) object
A dependency captures a workflow task dependency: each task within a workflow can depend on 0 or more other dependent tasks, creating a (possibly cyclic) dependency graph. Associated with each dependency is a rule: an optional constraint predicate expression which must evaluate to true in order for the task to start. The default constraint is that the dependent tasks all be completed (normal completion). A dependency object is the value associated with a task's name within a workflow's dependencies object.
dependents array: [string]
The names of the tasks which must be done before this task can be run.
items: string
rule string
A business rule expression which must evaluate to true for this dependency to succeed. If any dependency constraint evaluates to false, the node's state becomes failed, and the workflow state may also become failed.

error

{
  "_id": "2eae46e1575c0a7b0115a4b3",
  "message": "Descriptive error message...",
  "statusCode": 422,
  "type": "errorType1",
  "remediation": "Remediation string...",
  "occurredAt": "2018-01-25T05:50:52.375Z",
  "errors": [
    {
      "_id": "ccdbe2c5c938a230667b3827",
      "message": "An optional embedded error"
    },
    {
      "_id": "dbe9088dcfe2460f229338a3",
      "message": "Another optional embedded error"
    }
  ],
  "_links": {
    "describedby": {
      "href": "https://developer.apiture.com/errors/errorType1"
    }
  }
}

Error (v2.1.0)

Describes an error in an API request or in a service called via the API.

This schema was resolved from common/error.

Properties

NameDescription
Error (v2.1.0) object
Describes an error in an API request or in a service called via the API.

This schema was resolved from common/error.

message string (required)
A localized message string describing the error condition.
_id string
A unique identifier for this error instance. This may be used as a correlation ID with the root cause error (i.e. this ID may be logged at the source of the error). This is is an opaque string.
read-only
statusCode integer
The HTTP status code associate with this error.
minimum: 100
maximum: 599
type string
An error identifier which indicates the category of error and associate it with API support documentation or which the UI tier can use to render an appropriate message or hint. This provides a finer level of granularity than the statusCode. For example, instead of just 400 Bad Request, the type may be much more specific. such as integerValueNotInAllowedRange or numericValueExceedsMaximum or stringValueNotInAllowedSet.
occurredAt string(date-time)
An RFC 3339 UTC time stamp indicating when the error occurred.
format: date-time
attributes attributes
Informative values or constraints which describe the error. For example, for a value out of range error, the attributes may specify the minimum and maximum values. This allows clients to present error messages as they see fit (the API does not assume the client/presentation tier). The set of attributes varies by error type.
remediation string
An optional localized string which provides hints for how the user or client can resolve the error.
errors array: [error]
An optional array of nested error objects. This property is not always present.
items: object

errorResponse

{
  "_profile": "https://production.api.apiture.com/schemas/common/errorResponse/v2.1.1/profile.json",
  "_links": {
    "self": {
      "href": "https://api.devbank.apiture.com/apiName/resourceName/resourceId"
    }
  },
  "_error": {
    "_id": "2eae46e1-575c-4d69-8a8f-0a7b0115a4b3",
    "message": "Description of the error will appear here.",
    "statusCode": 422,
    "type": "specificErrorType",
    "attributes": {
      "value": "Optional attribute describing the error"
    },
    "remediation": "Optional instructions to remediate the error may appear here.",
    "occurredAt": "2018-01-25T05:50:52.375Z",
    "_links": {
      "describedby": {
        "href": "https://production.api.apiture.com/errors/specificErrorType"
      }
    },
    "_embedded": {
      "errors": []
    }
  }
}

Error Response (v2.1.1)

Describes an error response, typically returned on 4xx or 5xx errors from API operations. The _error object contains the error details.

This schema was resolved from common/errorResponse.

Properties

NameDescription
Error Response (v2.1.1) object
Describes an error response, typically returned on 4xx or 5xx errors from API operations. The _error object contains the error details.

This schema was resolved from common/errorResponse.

_links links
An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.

This schema was resolved from common/links.

_embedded object
An optional map of nested resources, mapping each nested resource name to a nested resource representation.
_profile string(uri)
The URI of a resource profile which describes the representation.
read-only
format: uri
_error error
An object which describes an error. This value is omitted if the operation succeeded without error.
read-only

flowItemState

"definition"

Flow Item State (v1.0.0)

The state of a workflow task or of a workflow.

flowItemState strings may have one of the following enumerated values:

ValueDescription
definitionThis workflow or task is a definition.: The service uses workfow definitions and task definitions to instatiate runnable workflows or tasks. Definitions may not be run. Tasks with this value may only be added to /taskDefinitions; workflows with this value may only be added to /workflowDefinitions.
pendingThe workflow or task is available to be started: The workflow or task is available to be started (it is not blocked) but has not been started. Note: This state is currently not used, but in a future release, an option to the createWorkflow operation will allow creating workflows in the pending state instead of automatically starting them.
blockedThe workflow or task is waiting for the entry criteria to be satisfied.: This could be one or more predecessor tasks are not completed, or the global criteria expression is not satisfied.
runningThe workflow or task has started but not completed.
pausedThe workflow or task has been paused.: Resume a paused item by resumed by setting the state back to running via a POST to /runningTasks or /runningWorkflows.
completedThe workflow or task has completed successfully.
canceledThe workflow or task was canceled before completing.
failedThe workflow or task has failed with an error or other non-success criteria.: The state is a derived value, maintained by the Workflow service. It is updated by the service or by operations on workflow instances or task instances such as the apiture:cancelWorkflow link found on a workflow.

These enumeration values are further described by the label group named flowItemState in the response from the getLabels operation.

type: string


enum values: definition, pending, blocked, running, paused, completed, failed, canceled

interface

{
  "input": null,
  "output": null,
  "required": null
}

Interface (v1.0.0)

Defines the input and output interface (subset of values) for a task or workflow.

Properties

NameDescription
Interface (v1.0.0) object
Defines the input and output interface (subset of values) for a task or workflow.
input any
true if the variable is an input to the task or workflow.
output any
true if the variable is an output of the task or workflow.
required any
true if the input variable is required. For a task, the workflow must bind the task's required inputs to a value, such as one of the variables in the workflow, or to an output variable of another task. (The schema types must match for such assignments.)

labelGroup

{
  "unknown": {
    "label": "Unknown",
    "code": "0",
    "hidden": true
  },
  "under1Million": {
    "label": "Under $1M",
    "code": "1",
    "range": "[0,1000000.00)",
    "variants": {
      "fr": {
        "label": "Moins de $1M"
      }
    }
  },
  "from1to10Million": {
    "label": "$1M to $10M",
    "code": "2",
    "range": "[1000000.00,10000000.00)",
    "variants": {
      "fr": {
        "label": "$1M \\u00e0 $10M"
      }
    }
  },
  "from10to100Million": {
    "label": "$10M to $100M",
    "code": "3",
    "range": "[10000000.00,100000000.00)",
    "variants": {
      "fr": {
        "label": "$10M \\u00e0 $100M"
      }
    }
  },
  "over100Million": {
    "label": "Over $100,000,000.00",
    "code": "4",
    "range": "[100000000.00,]",
    "variants": {
      "fr": {
        "label": "Plus de $10M"
      }
    }
  },
  "other": {
    "label": "Other",
    "code": "254"
  }
}

Label Group (v1.0.3)

A map that defines labels for the items in a group. This is a map from each item namea labelItem object. For example, consider a JSON response that includes a property named revenueEstimate; the values for revenueEstimate must be one of the items in the group named estimatedAnnualRevenue, with options ranging under1Million, to over100Million. The item name is used as the selected value in an Apiture representation, such as { ..., "revenueEstimate" : "from10to100Million" , ...}, and the item with the name from10to100Million defines the presentation labels for that item, as well as other metadata about that choice: this is the range [10000000.00,100000000.00).

This allows the client to let the user select a value from a list, such as the following derived from the labels in the example:

  • Unknown
  • Under $1M
  • $1M to $10M
  • $10M to $100M
  • $100M or more

Note that the other item is hidden from the selection list, as that item is marked as hidden. For items which define numeric ranges, a client may instead let the customer directly enter their estimated annual revenue as a number, such as 4,500,000.00. The client can then match that number to one of ranges in the items and set the revenueEstimate to the corresponding item's name: { ..., "revenueEstimate" : "from1to10Million", ... }.

This schema was resolved from common/labelGroup.

Properties

NameDescription
Label Group (v1.0.3) object
A map that defines labels for the items in a group. This is a map from each item namea labelItem object. For example, consider a JSON response that includes a property named revenueEstimate; the values for revenueEstimate must be one of the items in the group named estimatedAnnualRevenue, with options ranging under1Million, to over100Million. The item name is used as the selected value in an Apiture representation, such as { ..., "revenueEstimate" : "from10to100Million" , ...}, and the item with the name from10to100Million defines the presentation labels for that item, as well as other metadata about that choice: this is the range [10000000.00,100000000.00).

This allows the client to let the user select a value from a list, such as the following derived from the labels in the example:

  • Unknown
  • Under $1M
  • $1M to $10M
  • $10M to $100M
  • $100M or more

Note that the other item is hidden from the selection list, as that item is marked as hidden. For items which define numeric ranges, a client may instead let the customer directly enter their estimated annual revenue as a number, such as 4,500,000.00. The client can then match that number to one of ranges in the items and set the revenueEstimate to the corresponding item's name: { ..., "revenueEstimate" : "from1to10Million", ... }.

This schema was resolved from common/labelGroup.

Label Item (v1.0.2) labelItem
An item in a labelGroup, with a set of variants which contains different localized labels for the item. Each simpleLabel variant defines the presentation text label and optional description for a language. Items may also have a lookup code to map to external systems, a numeric range, and a hidden boolean to indicate the item is normally hidden in the UI.

This schema was resolved from common/labelItem.

labelGroups

{
  "_profile": "https://production.api.apiture.com/schemas/common/labelGroups/v1.1.3/profile.json",
  "_links": {
    "self": {
      "href": "https://api.devbank.apiture.com/apiName/resourceName/resourceId"
    }
  },
  "groups": {
    "firstGroup": {
      "unknown": {
        "label": "Unknown",
        "code": "0",
        "hidden": true
      },
      "key1": {
        "label": "Label for Key 1",
        "code": "1",
        "variants": {
          "es": {
            "label": "(Spanish label for Key 1)"
          },
          "fr": {
            "label": "(French label for Key 1)"
          }
        }
      },
      "key2": {
        "label": "Label for Key 2",
        "code": "2",
        "variants": {
          "es": {
            "label": "(Spanish label for Key 2)"
          },
          "fr": {
            "label": "(French label for Key 2)"
          }
        }
      },
      "key3": {
        "label": "Label for Key 3",
        "code": "3",
        "variants": {
          "es": {
            "label": "(Spanish label for Key 3)"
          },
          "fr": {
            "label": "(French label for Key 3)"
          }
        }
      },
      "other": {
        "label": "Other",
        "variants": {
          "es": {
            "label": "(Spanish label for Other)"
          },
          "fr": {
            "label": "(French label for Other)"
          }
        },
        "code": "254"
      }
    },
    "secondGroup": {
      "unknown": {
        "label": "Unknown",
        "code": "?",
        "hidden": true
      },
      "optionA": {
        "label": "Option A",
        "code": "A"
      },
      "optionB": {
        "label": "Option B",
        "code": "B"
      },
      "optionC": {
        "label": "Option C",
        "code": "C"
      },
      "other": {
        "label": "Other",
        "code": "_"
      }
    }
  }
}

Label Groups (v1.1.3)

A set of named groups of labels, each of which contains multiple item labels.

The abbreviated example shows two groups, one named structure and one named estimatedAnnualRevenue. The first has items with names such as corporation, llc and soleProprietorship, with text labels for each in the default and in French. The second has items for estimated revenue ranges but no localized labels. For example, the item named from1to10Million has the label "$1M to $10M" and the range [1000000.00,10000000.00).

This schema was resolved from common/labelGroups.

Properties

NameDescription
Label Groups (v1.1.3) object
A set of named groups of labels, each of which contains multiple item labels.

The abbreviated example shows two groups, one named structure and one named estimatedAnnualRevenue. The first has items with names such as corporation, llc and soleProprietorship, with text labels for each in the default and in French. The second has items for estimated revenue ranges but no localized labels. For example, the item named from1to10Million has the label "$1M to $10M" and the range [1000000.00,10000000.00).

This schema was resolved from common/labelGroups.

_links links
An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.

This schema was resolved from common/links.

_embedded object
An optional map of nested resources, mapping each nested resource name to a nested resource representation.
_profile string(uri)
The URI of a resource profile which describes the representation.
read-only
format: uri
_error error
An object which describes an error. This value is omitted if the operation succeeded without error.
read-only
groups object
Groups of localized labels. This maps group namesa group of labels within that group.
» Label Group (v1.0.3) labelGroup
A map that defines labels for the items in a group. This is a map from each item namea labelItem object. For example, consider a JSON response that includes a property named revenueEstimate; the values for revenueEstimate must be one of the items in the group named estimatedAnnualRevenue, with options ranging under1Million, to over100Million. The item name is used as the selected value in an Apiture representation, such as { ..., "revenueEstimate" : "from10to100Million" , ...}, and the item with the name from10to100Million defines the presentation labels for that item, as well as other metadata about that choice: this is the range [10000000.00,100000000.00).

This allows the client to let the user select a value from a list, such as the following derived from the labels in the example:

  • Unknown
  • Under $1M
  • $1M to $10M
  • $10M to $100M
  • $100M or more

Note that the other item is hidden from the selection list, as that item is marked as hidden. For items which define numeric ranges, a client may instead let the customer directly enter their estimated annual revenue as a number, such as 4,500,000.00. The client can then match that number to one of ranges in the items and set the revenueEstimate to the corresponding item's name: { ..., "revenueEstimate" : "from1to10Million", ... }.

This schema was resolved from common/labelGroup.

labelItem

{
  "label": "Over $100,000,000.00",
  "code": "4",
  "range": "[100000000.00,]",
  "variants": {
    "fr": {
      "label": "Plus de $10M"
    }
  }
}

Label Item (v1.0.2)

An item in a labelGroup, with a set of variants which contains different localized labels for the item. Each simpleLabel variant defines the presentation text label and optional description for a language. Items may also have a lookup code to map to external systems, a numeric range, and a hidden boolean to indicate the item is normally hidden in the UI.

This schema was resolved from common/labelItem.

Properties

NameDescription
Label Item (v1.0.2) object
An item in a labelGroup, with a set of variants which contains different localized labels for the item. Each simpleLabel variant defines the presentation text label and optional description for a language. Items may also have a lookup code to map to external systems, a numeric range, and a hidden boolean to indicate the item is normally hidden in the UI.

This schema was resolved from common/labelItem.

label string (required)
A label or title which may be used as labels or other UI controls which present a value.
description string
A more detailed localized description of a localizable label.
variants object
The language-specific variants of this label. The keys in this object are RFC 7231 language codes.
» Simple Label (v1.0.0) simpleLabel
A text label and optional description.

This schema was resolved from common/simpleLabel.

code string
If the localized value is associated with an external standard or definition, this is a lookup code or key or URI for that value.
minLength: 1
hidden boolean
If true, this item is normally hidden from the User Interface.
range string
The range of values, if the item describes a bounded numeric value. This is range notation such as [min,max], (exclusiveMin,max], [min,exclusiveMax), or (exclusiveMin,exclusiveMax). For example, [0,100) is the range greater than or equal to 0 and less than 100. If the min or max value are omitted, that end of the range is unbounded. For example, (,1000.00) means less than 1000.00 and [20000.00,] means 20000.00 or more. The ranges do not overlap or have gaps.
pattern: ^[\[\(](-?(0|[1-9][0-9]*)(\.[0-9]+)?)?,(-?(0|[1-9][0-9]*)(\.[0-9]+)?)?[\]\)]$

{
  "href": "https://api.devbank.apiture.com/applications/application/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
  "title": "Application"
}

Link (v1.0.0)

Describes a hypermedia link within a _links object in HAL representations. In Apiture APIs, links are HAL links, but Apiture APIs do not use the name or hreflang properties of HAL. Apiture links may include a method property.

This schema was resolved from common/link.

NameDescription
Link (v1.0.0) object
Describes a hypermedia link within a _links object in HAL representations. In Apiture APIs, links are HAL links, but Apiture APIs do not use the name or hreflang properties of HAL. Apiture links may include a method property.

This schema was resolved from common/link.

href string(uri) (required)
The URI or URI template for the resource/operation this link refers to.
format: uri
type string
The media type for the resource.
templated boolean
If true, the link's href is a URI template.
title string
An optional human-readable localized title for the link.
deprecation string(uri)
If present, the containing link is deprecated and the value is a URI which provides human-readable text information about the deprecation.
format: uri
profile string(uri)
The URI of a profile document, a JSON document which describes the target resource/operation.
format: uri

{
  "property1": {
    "href": "https://api.devbank.apiture.com/applications/application/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
    "title": "Application"
  },
  "property2": {
    "href": "https://api.devbank.apiture.com/applications/application/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
    "title": "Application"
  }
}

Links (v1.0.0)

An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.

This schema was resolved from common/links.

NameDescription
Links (v1.0.0) object
An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.

This schema was resolved from common/links.

Link (v1.0.0) link
Describes a hypermedia link within a _links object in HAL representations. In Apiture APIs, links are HAL links, but Apiture APIs do not use the name or hreflang properties of HAL. Apiture links may include a method property.

This schema was resolved from common/link.

nestableTask

{
  "_profile": "https://production.api.apiture.com/schemas/workflow/taskFields/v1.2.1/profile.json",
  "_links": {
    "self": {
      "href": "https://api.devbank.apiture.com/workflow/tasks/0399abed-fd3d-4830-a88b-30f38b8a365c"
    }
  },
  "name": "updateBusinessInfo",
  "domain": "https://production.api.apiture.com/domains/acctApps",
  "label": "Save Business Information",
  "revisionLabel": "Use Terms and Conditions 1.0.4 as of 2018-09-25",
  "type": "updateOrg",
  "visibility": "hidden",
  "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
    },
    "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."
            },
            "image": {
              "type": "string",
              "description": "A URI of an image to present for this choice."
            }
          }
        }
      }
    }
  },
  "interface": {
    "category": {
      "input": true,
      "output": false,
      "required": true
    },
    "ownership": {
      "input": true,
      "output": false,
      "required": true
    },
    "minimumBalanceGoal": {
      "input": true,
      "output": false,
      "value": 10000
    },
    "choice": {
      "input": true,
      "output": true
    },
    "choiceLabel": {
      "input": false,
      "output": true
    },
    "choices": {
      "input": true
    },
    "label": "Choose an account type",
    "presentation": "iconAndLabel",
    "selection": "single",
    "defaultSelection": "savings"
  },
  "values": {
    "category": "personal",
    "ownership": "joint",
    "minimumBalanceGoal": 1000,
    "choice": "checking",
    "choiceLabel": "Checking",
    "choices": [
      {
        "id": "savings",
        "label": "Savings",
        "image": "https://cdn.api.apiture.com/static/images/accountTypes/savings.png"
      },
      {
        "id": "checking",
        "label": "Checking",
        "image": "https://cdn.api.apiture.com/static/images/accountTypes/checking.png"
      }
    ]
  },
  "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.)",
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "initial": false,
  "terminal": false,
  "errorTask": "businessInfoForm",
  "includeInTaskSequence": true
}

Nestable Task Definition Summary (v1.1.2)

Summary representation of a task definition resource that contains an optional array of subtasks. This representation normally does not contain any _embedded objects. If needed, call the GET operation on the item's self link to get _embedded objects.

Response and request bodies using this nestableTask schema may contain the following links:

RelSummaryMethod
selfFetch a representation of this taskGET

Properties

NameDescription
Nestable Task Definition Summary (v1.1.2) object

Summary representation of a task definition resource that contains an optional array of subtasks. This representation normally does not contain any _embedded objects. If needed, call the GET operation on the item's self link to get _embedded objects.

Response and request bodies using this nestableTask schema may contain the following links:

RelSummaryMethod
selfFetch a representation of this taskGET
_links links
An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.

This schema was resolved from common/links.

_embedded object
An optional map of nested resources, mapping each nested resource name to a nested resource representation.
_profile string(uri)
The URI of a resource profile which describes the representation.
read-only
format: uri
_error error
An object which describes an error. This value is omitted if the operation succeeded without error.
read-only
name string
The name of this resource. The combination of domain and name must be unique within the set of all resources of this type.
minLength: 1
maxLength: 48
pattern: [a-zA-Z][-\w_]*
domain string
A namespace for grouping related resources, to keep them separate from other resources. For example, a department or bank branch may define a domain, and all tasks or workflow instances they define will use that domain, so that they can avoid conflicting with task or workflow names in other domains. An API or service may define a domain for workflows and tasks that it defines. The combination of domain and name must be unique within the set of all resources of this type. It is a best practice to define domains with URIs.
minLength: 1
maxLength: 512
label string
The text label for this resource, suitable for presentation to the client.
minLength: 1
maxLength: 128
description string(markdown)
The full description for this resource, suitable for presentation in the tools for building/navigating the workflow. The content is processed as Github Flavored Markdown and thus supports rich text.
format: markdown
minLength: 1
maxLength: 4096
instructions string(markdown)
End-user instructions for this workflow item. The content is processed as Github Flavored Markdown and thus supports rich text.
format: markdown
minLength: 1
maxLength: 4096
restartable boolean
Indicates if the workflow or task is restartable.
default: true
restartableRule string
An optional expression used in determining if the given task is restartable.
minLength: 1
maxLength: 128
maxRestartCount integer
An optional limit on the amount of times that the given task can be restarted.
restartCount integer
A running count of the amount of times that a given task has been restarted.
schema object
The schema which defines the name and types of the variables that are part of this task definition. Property names must be simple identifiers consisting of alphanumeric characters, -, _ following the pattern letter [letter | digit | '-' | '_']* This is implicitly a schema for type: object and contains the properties.

The values in a task conform to the schema. The names and types are described with a subset of JSON Schema Core and JSON Schema Validation similar to that used to define schemas in OpenAPI Specification 2.0.

interface object
interface defines the input and output interface of the workflow or task. The interface maps a variable from the schema to an object which indicates if the variable is part of the inputs to the task or workflow or part of the outputs of the instance, or both. The value provides a default value which is used when creating the instance. The value must confirm to the schema for that variable.
» Interface (v1.0.0) interface
Defines the input and output interface (subset of values) for a task or workflow.
bindings array: [binding]
bindings connects input and output interface variables of the workflow and the workflow tasks.

When the workflow starts, all workflow and task variables are first assigned to any default values as per their respective interface and schema defaults. Next, workflow and task interface inputs are assigned to the inputs of any tasks as per these bindings. When a task starts, any bindings for its inputs are assigned as per these bindings. Each binding defines a source and one or more targets that are assigned to the value named by the source.
items: object

values object
The data associated with this flow item: the item's variable names and values. These values must conform to this item's schema. When a workflow or task runs, it may read and/or update these values as part of its processing.

When used in a workflow definition or task definition, the values define the default values for the variable that the workflow or task will take if the corresponding value is not bound via a workflow's bindings. That is, a definition's values are copied into the new workflow item's values when the item is instantiated from the definition.

Note: the schema may also contain default values which, if present, are used if a value is not set in the definition's values. (For example, multiple task definitions may use the same schema which defines values a, b, and c, but each task definition may have their own unique values for a, b, and c which is separate from the schema.)

type string
Describes the type of this task. This determines the behavior when the task is activated. Example task types are form (fill out a form), choice (select a value from a fixed set of choices), select (select one or more values from a dynamic set of choices), rest (perform a REST call), compute (compute output values based on the input values), workflow (a reusable set of subtasks). Task types are defined in the Workflow configuration.
minLength: 3
maxLength: 64
pattern: [a-zA-Z][-\w_]*
visibility taskVisibility
Whether the client should show or hide this task.
default: "visible"
enum values: hidden, visible
mode taskMode
Indicates whether the client interacts with the task or not.
enum values: interactive, automatic
includeInTaskSequence boolean
If true, include this task in an optional task sequence object on the workflow's _embedded data. That value contains an ordered list of tasks that have been completed during the workflow. The UI may use this object to traverse the completed tasks.
_id string
The unique identifier for this task definition resource. This is an immutable opaque string.
read-only
state flowItemState
The state of a task.
read-only
enum values: definition, pending, blocked, running, paused, completed, failed, canceled
done boolean
Indicates if a task or workflow has completed. (With the current set of state values, this is true when the state is one of completed or failed or canceled, although the set of states may change when new states are added.)
read-only
initial boolean
Indicates if a task is an initial task A initial task is one which has no task dependencies and thus can never be blocked. Initial tasks are started automatically when the workflow is started.
This is a derived property.
read-only
terminal boolean
Indicates if a task is a terminal task A terminal task is one which no other task depends on. If a terminal state is reached (its entry criteria are satisfied), the workflow containing the task is also marked as completed or failed.
This is a derived property.
read-only
subtasks array: [nestableTask]
An optional array of summary task definitions. Subtasks appear on nested workflows (tasks of type: workflow).
items: object

revisionEffectiveInterval

{
  "effectiveStartAt": "2019-08-24T14:15:22Z",
  "effectiveEndAt": "2019-08-24T14:15:22Z"
}

Revision Effective Time Interval (v1.0.0)

Time interval when a resource revision was effective and in use. This schema is used when composing other schemas.

This schema was resolved from common/revisionEffectiveInterval.

Properties

NameDescription
Revision Effective Time Interval (v1.0.0) object
Time interval when a resource revision was effective and in use. This schema is used when composing other schemas.

This schema was resolved from common/revisionEffectiveInterval.

effectiveStartAt string(date-time)
The date-time when this revision was created and became effective. This is an RFC 3339 formatted date-time string YYYY-MM-DDThh:mm:ss.sssZ. This field is derived and immutable.
format: date-time
effectiveEndAt string(date-time)
The date-time when the another revision became effective and this revision ceased being effective. This is an RFC 3339 formatted date-time string YYYY-MM-DDThh:mm:ss.sssZ. This field is derived and immutable and is not present until the revision is no longer active.
format: date-time

root

{
  "_profile": "https://production.api.apiture.com/schemas/common/root/v2.1.1/profile.json",
  "_links": {
    "self": {
      "href": "https://api.devbank.apiture.com/apiName/resourceName/resourceId"
    }
  },
  "id": "apiName",
  "name": "API name",
  "apiVersion": "1.0.0"
}

API Root (v2.1.1)

A HAL response, with hypermedia _links for the top-level resources and operations in API.

This schema was resolved from common/root.

Properties

NameDescription
API Root (v2.1.1) object
A HAL response, with hypermedia _links for the top-level resources and operations in API.

This schema was resolved from common/root.

_links links
An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.

This schema was resolved from common/links.

_embedded object
An optional map of nested resources, mapping each nested resource name to a nested resource representation.
_profile string(uri)
The URI of a resource profile which describes the representation.
read-only
format: uri
_error error
An object which describes an error. This value is omitted if the operation succeeded without error.
read-only
_id string
This API's unique ID.
read-only
name string
This API's name.
apiVersion string
This API's version.

simpleLabel

{
  "label": "Board of Directors",
  "description": "string"
}

Simple Label (v1.0.0)

A text label and optional description.

This schema was resolved from common/simpleLabel.

Properties

NameDescription
Simple Label (v1.0.0) object
A text label and optional description.

This schema was resolved from common/simpleLabel.

label string (required)
A label or title which may be used as labels or other UI controls which present a value.
description string
A more detailed localized description of a localizable label.

summaryTask

{
  "_profile": "https://production.api.apiture.com/schemas/workflow/taskFields/v1.2.1/profile.json",
  "_links": {
    "self": {
      "href": "https://api.devbank.apiture.com/workflow/tasks/0399abed-fd3d-4830-a88b-30f38b8a365c"
    }
  },
  "name": "updateBusinessInfo",
  "domain": "https://production.api.apiture.com/domains/acctApps",
  "label": "Save Business Information",
  "revisionLabel": "Use Terms and Conditions 1.0.4 as of 2018-09-25",
  "type": "updateOrg",
  "visibility": "hidden",
  "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
    },
    "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."
            },
            "image": {
              "type": "string",
              "description": "A URI of an image to present for this choice."
            }
          }
        }
      }
    }
  },
  "interface": {
    "category": {
      "input": true,
      "output": false,
      "required": true
    },
    "ownership": {
      "input": true,
      "output": false,
      "required": true
    },
    "minimumBalanceGoal": {
      "input": true,
      "output": false,
      "value": 10000
    },
    "choice": {
      "input": true,
      "output": true
    },
    "choiceLabel": {
      "input": false,
      "output": true
    },
    "choices": {
      "input": true
    },
    "label": "Choose an account type",
    "presentation": "iconAndLabel",
    "selection": "single",
    "defaultSelection": "savings"
  },
  "values": {
    "category": "personal",
    "ownership": "joint",
    "minimumBalanceGoal": 1000,
    "choice": "checking",
    "choiceLabel": "Checking",
    "choices": [
      {
        "id": "savings",
        "label": "Savings",
        "image": "https://cdn.api.apiture.com/static/images/accountTypes/savings.png"
      },
      {
        "id": "checking",
        "label": "Checking",
        "image": "https://cdn.api.apiture.com/static/images/accountTypes/checking.png"
      }
    ]
  },
  "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.)",
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "initial": false,
  "terminal": false,
  "errorTask": "businessInfoForm",
  "includeInTaskSequence": true
}

Task Definition Summary (v1.3.2)

Summary representation of a task definition resource in task definitions collections. This representation normally does not contain any _embedded objects. If needed, call the GET operation on the item's self link to get _embedded objects.

Response and request bodies using this summaryTask schema may contain the following links:

RelSummaryMethod
selfFetch a representation of this taskGET

Properties

NameDescription
Task Definition Summary (v1.3.2) object

Summary representation of a task definition resource in task definitions collections. This representation normally does not contain any _embedded objects. If needed, call the GET operation on the item's self link to get _embedded objects.

Response and request bodies using this summaryTask schema may contain the following links:

RelSummaryMethod
selfFetch a representation of this taskGET
_links links
An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.

This schema was resolved from common/links.

_embedded object
An optional map of nested resources, mapping each nested resource name to a nested resource representation.
_profile string(uri)
The URI of a resource profile which describes the representation.
read-only
format: uri
_error error
An object which describes an error. This value is omitted if the operation succeeded without error.
read-only
name string
The name of this resource. The combination of domain and name must be unique within the set of all resources of this type.
minLength: 1
maxLength: 48
pattern: [a-zA-Z][-\w_]*
domain string
A namespace for grouping related resources, to keep them separate from other resources. For example, a department or bank branch may define a domain, and all tasks or workflow instances they define will use that domain, so that they can avoid conflicting with task or workflow names in other domains. An API or service may define a domain for workflows and tasks that it defines. The combination of domain and name must be unique within the set of all resources of this type. It is a best practice to define domains with URIs.
minLength: 1
maxLength: 512
label string
The text label for this resource, suitable for presentation to the client.
minLength: 1
maxLength: 128
description string(markdown)
The full description for this resource, suitable for presentation in the tools for building/navigating the workflow. The content is processed as Github Flavored Markdown and thus supports rich text.
format: markdown
minLength: 1
maxLength: 4096
instructions string(markdown)
End-user instructions for this workflow item. The content is processed as Github Flavored Markdown and thus supports rich text.
format: markdown
minLength: 1
maxLength: 4096
restartable boolean
Indicates if the workflow or task is restartable.
default: true
restartableRule string
An optional expression used in determining if the given task is restartable.
minLength: 1
maxLength: 128
maxRestartCount integer
An optional limit on the amount of times that the given task can be restarted.
restartCount integer
A running count of the amount of times that a given task has been restarted.
schema object
The schema which defines the name and types of the variables that are part of this task definition. Property names must be simple identifiers consisting of alphanumeric characters, -, _ following the pattern letter [letter | digit | '-' | '_']* This is implicitly a schema for type: object and contains the properties.

The values in a task conform to the schema. The names and types are described with a subset of JSON Schema Core and JSON Schema Validation similar to that used to define schemas in OpenAPI Specification 2.0.

interface object
interface defines the input and output interface of the workflow or task. The interface maps a variable from the schema to an object which indicates if the variable is part of the inputs to the task or workflow or part of the outputs of the instance, or both. The value provides a default value which is used when creating the instance. The value must confirm to the schema for that variable.
» Interface (v1.0.0) interface
Defines the input and output interface (subset of values) for a task or workflow.
bindings array: [binding]
bindings connects input and output interface variables of the workflow and the workflow tasks.

When the workflow starts, all workflow and task variables are first assigned to any default values as per their respective interface and schema defaults. Next, workflow and task interface inputs are assigned to the inputs of any tasks as per these bindings. When a task starts, any bindings for its inputs are assigned as per these bindings. Each binding defines a source and one or more targets that are assigned to the value named by the source.
items: object

values object
The data associated with this flow item: the item's variable names and values. These values must conform to this item's schema. When a workflow or task runs, it may read and/or update these values as part of its processing.

When used in a workflow definition or task definition, the values define the default values for the variable that the workflow or task will take if the corresponding value is not bound via a workflow's bindings. That is, a definition's values are copied into the new workflow item's values when the item is instantiated from the definition.

Note: the schema may also contain default values which, if present, are used if a value is not set in the definition's values. (For example, multiple task definitions may use the same schema which defines values a, b, and c, but each task definition may have their own unique values for a, b, and c which is separate from the schema.)

type string
Describes the type of this task. This determines the behavior when the task is activated. Example task types are form (fill out a form), choice (select a value from a fixed set of choices), select (select one or more values from a dynamic set of choices), rest (perform a REST call), compute (compute output values based on the input values), workflow (a reusable set of subtasks). Task types are defined in the Workflow configuration.
minLength: 3
maxLength: 64
pattern: [a-zA-Z][-\w_]*
visibility taskVisibility
Whether the client should show or hide this task.
default: "visible"
enum values: hidden, visible
mode taskMode
Indicates whether the client interacts with the task or not.
enum values: interactive, automatic
includeInTaskSequence boolean
If true, include this task in an optional task sequence object on the workflow's _embedded data. That value contains an ordered list of tasks that have been completed during the workflow. The UI may use this object to traverse the completed tasks.
_id string
The unique identifier for this task definition resource. This is an immutable opaque string.
read-only
state flowItemState
The state of a task.
read-only
enum values: definition, pending, blocked, running, paused, completed, failed, canceled
done boolean
Indicates if a task or workflow has completed. (With the current set of state values, this is true when the state is one of completed or failed or canceled, although the set of states may change when new states are added.)
read-only
initial boolean
Indicates if a task is an initial task A initial task is one which has no task dependencies and thus can never be blocked. Initial tasks are started automatically when the workflow is started.
This is a derived property.
read-only
terminal boolean
Indicates if a task is a terminal task A terminal task is one which no other task depends on. If a terminal state is reached (its entry criteria are satisfied), the workflow containing the task is also marked as completed or failed.
This is a derived property.
read-only

summaryWorkflow

{
  "_profile": "https://production.api.apiture.com/schemas/workflow/summaryWorkflow/v1.3.2/profile.json",
  "_links": {
    "self": {
      "href": "https://api.devbank.apiture.com/workflow/workflows/0399abed-fd3d-4830-a88b-30f38b8a365c"
    }
  },
  "name": "newAccountSelector",
  "domain": "https://production.api.apiture.com/domains/acctApps",
  "label": "New Account Selector",
  "revisionLabel": "Use Terms and Conditions 1.0.4 as of 2018-09-25",
  "type": "somethingElse",
  "visibility": "hidden",
  "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
  },
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "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": {}
}

Workflow Summary (v1.3.2)

Summary representation of a workflow resource in workflows collections. This representation normally does not contain any _embedded objects. If needed, call the GET operation on the item's self link to get _embedded objects.

Response and request bodies using this summaryWorkflow schema may contain the following links:

RelSummaryMethod
selfFetch a representation of this workflowGET

Properties

NameDescription
Workflow Summary (v1.3.2) object

Summary representation of a workflow resource in workflows collections. This representation normally does not contain any _embedded objects. If needed, call the GET operation on the item's self link to get _embedded objects.

Response and request bodies using this summaryWorkflow schema may contain the following links:

RelSummaryMethod
selfFetch a representation of this workflowGET
_links links
An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.

This schema was resolved from common/links.

_embedded object
Nested objects within a workflow definition. When creating a workflow definition, the nested tasks should be task or task summary representations from /taskDefinitions (i.e. the task state must be definition). These may be either revisionless task definitions or specific revisions of task definitions.
_profile string(uri)
The URI of a resource profile which describes the representation.
read-only
format: uri
_error error
An object which describes an error. This value is omitted if the operation succeeded without error.
read-only
name string
The name of this resource. The combination of domain and name must be unique within the set of all resources of this type.
minLength: 1
maxLength: 48
pattern: [a-zA-Z][-\w_]*
domain string
A namespace for grouping related resources, to keep them separate from other resources. For example, a department or bank branch may define a domain, and all tasks or workflow instances they define will use that domain, so that they can avoid conflicting with task or workflow names in other domains. An API or service may define a domain for workflows and tasks that it defines. The combination of domain and name must be unique within the set of all resources of this type. It is a best practice to define domains with URIs.
minLength: 1
maxLength: 512
label string
The text label for this resource, suitable for presentation to the client.
minLength: 1
maxLength: 128
description string(markdown)
The full description for this resource, suitable for presentation in the tools for building/navigating the workflow. The content is processed as Github Flavored Markdown and thus supports rich text.
format: markdown
minLength: 1
maxLength: 4096
instructions string(markdown)
End-user instructions for this workflow item. The content is processed as Github Flavored Markdown and thus supports rich text.
format: markdown
minLength: 1
maxLength: 4096
restartable boolean
Indicates if the workflow or task is restartable.
default: true
restartableRule string
An optional expression used in determining if the given task is restartable.
minLength: 1
maxLength: 128
maxRestartCount integer
An optional limit on the amount of times that the given task can be restarted.
restartCount integer
A running count of the amount of times that a given task has been restarted.
schema object
The schema which defines the name and types of the variables that are part of this task definition. Property names must be simple identifiers consisting of alphanumeric characters, -, _ following the pattern letter [letter | digit | '-' | '_']* This is implicitly a schema for type: object and contains the properties.

The values in a task conform to the schema. The names and types are described with a subset of JSON Schema Core and JSON Schema Validation similar to that used to define schemas in OpenAPI Specification 2.0.

interface object
interface defines the input and output interface of the workflow or task. The interface maps a variable from the schema to an object which indicates if the variable is part of the inputs to the task or workflow or part of the outputs of the instance, or both. The value provides a default value which is used when creating the instance. The value must confirm to the schema for that variable.
» Interface (v1.0.0) interface
Defines the input and output interface (subset of values) for a task or workflow.
bindings array: [binding]
bindings connects input and output interface variables of the workflow and the workflow tasks.

When the workflow starts, all workflow and task variables are first assigned to any default values as per their respective interface and schema defaults. Next, workflow and task interface inputs are assigned to the inputs of any tasks as per these bindings. When a task starts, any bindings for its inputs are assigned as per these bindings. Each binding defines a source and one or more targets that are assigned to the value named by the source.
items: object

values object
The data associated with this flow item: the item's variable names and values. These values must conform to this item's schema. When a workflow or task runs, it may read and/or update these values as part of its processing.

When used in a workflow definition or task definition, the values define the default values for the variable that the workflow or task will take if the corresponding value is not bound via a workflow's bindings. That is, a definition's values are copied into the new workflow item's values when the item is instantiated from the definition.

Note: the schema may also contain default values which, if present, are used if a value is not set in the definition's values. (For example, multiple task definitions may use the same schema which defines values a, b, and c, but each task definition may have their own unique values for a, b, and c which is separate from the schema.)

dependencies object
The task dependency graph. This defines which tasks are prerequisite tasks for other task in the workflow. dependencies is a map structure. The key is the name of the task which depends on the others; the value is an array of dependency objects which define what named task depends on and what conditions must be met.
» additionalProperties array: [dependency]
[A dependency captures a workflow task dependency: each task within a workflow can depend on 0 or more other dependent tasks, creating a (possibly cyclic) dependency graph. Associated with each dependency is a rule: an optional constraint predicate expression which must evaluate to true in order for the task to start. The default constraint is that the dependent tasks all be completed (normal completion). A dependency object is the value associated with a task's name within a workflow's dependencies object.]
items: object
_id string
The unique identifier for this workflow resource. This is an immutable opaque string.
read-only
state flowItemState
The state of a workflow.
read-only
enum values: definition, pending, blocked, running, paused, completed, failed, canceled
done boolean
Indicates if a task or workflow has completed. (With the current set of state values, this is true when the state is one of completed or failed or canceled, although the set of states may change when new states are added.)
read-only

task

{
  "_profile": "https://production.api.apiture.com/schemas/workflow/task/v1.2.2/profile.json",
  "_links": {
    "self": {
      "href": "https://api.devbank.apiture.com/workflow/tasks/0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:definition": {
      "href": "https://api.devbank.apiture.com/workflow/taskDefinitions/99ced512-9c19-4c5d-8859-9c42cd4bcc7b"
    },
    "up": {
      "href": "https://api.devbank.apiture.com/workflow/workflows/64802afe-d0a4-4680-b6fb-a0de98f3d871"
    },
    "apiture:cancel": {
      "href": "https://api.devbank.apiture.com/canceledTasks?task=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:fail": {
      "href": "https://api.devbank.apiture.com/failedTasks?task=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:pause": {
      "href": "https://api.devbank.apiture.com/pausedTasks?task=0399abed-fd3d-4830-a88b-30f38b8a365c"
    }
  },
  "name": "updateBusinessInfo",
  "domain": "https://production.api.apiture.com/domains/acctApps",
  "label": "Save Business Information",
  "revisionLabel": "Use Terms and Conditions 1.0.4 as of 2018-09-25",
  "type": "updateOrg",
  "visibility": "hidden",
  "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
    },
    "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."
            },
            "image": {
              "type": "string",
              "description": "A URI of an image to present for this choice."
            }
          }
        }
      }
    }
  },
  "interface": {
    "category": {
      "input": true,
      "output": false,
      "required": true
    },
    "ownership": {
      "input": true,
      "output": false,
      "required": true
    },
    "minimumBalanceGoal": {
      "input": true,
      "output": false,
      "value": 10000
    },
    "choice": {
      "input": true,
      "output": true
    },
    "choiceLabel": {
      "input": false,
      "output": true
    },
    "choices": {
      "input": true
    },
    "label": "Choose an account type",
    "presentation": "iconAndLabel",
    "selection": "single",
    "defaultSelection": "savings"
  },
  "values": {
    "category": "personal",
    "ownership": "joint",
    "minimumBalanceGoal": 1000,
    "choice": "checking",
    "choiceLabel": "Checking",
    "choices": [
      {
        "id": "savings",
        "label": "Savings",
        "image": "https://cdn.api.apiture.com/static/images/accountTypes/savings.png"
      },
      {
        "id": "checking",
        "label": "Checking",
        "image": "https://cdn.api.apiture.com/static/images/accountTypes/checking.png"
      }
    ]
  },
  "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.)",
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "initial": false,
  "terminal": false,
  "errorTask": "businessInfoForm",
  "includeInTaskSequence": true
}

Workflow Task (v1.2.2)

Representation of a task definition resource. A definition (template) for creating new tasks in workflows.

Response and request bodies using this task schema may contain the following links:

RelSummaryMethod
selfFetch a representation of this taskGET
upFetch a representation of this workflowGET
apiture:definitionThe task definitionGET
apiture:startStart or resume the taskPOST
apiture:pausePause the taskPOST
apiture:cancelCancel the taskPOST
apiture:failStop the task and set its state to failedPOST

Properties

NameDescription
Workflow Task (v1.2.2) object

Representation of a task definition resource. A definition (template) for creating new tasks in workflows.

Response and request bodies using this task schema may contain the following links:

RelSummaryMethod
selfFetch a representation of this taskGET
upFetch a representation of this workflowGET
apiture:definitionThe task definitionGET
apiture:startStart or resume the taskPOST
apiture:pausePause the taskPOST
apiture:cancelCancel the taskPOST
apiture:failStop the task and set its state to failedPOST
_links links
An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.

This schema was resolved from common/links.

_embedded object
An optional map of nested resources, mapping each nested resource name to a nested resource representation.
_profile string(uri)
The URI of a resource profile which describes the representation.
read-only
format: uri
_error error
An object which describes an error. This value is omitted if the operation succeeded without error.
read-only
name string
The name of this resource. The combination of domain and name must be unique within the set of all resources of this type.
minLength: 1
maxLength: 48
pattern: [a-zA-Z][-\w_]*
domain string
A namespace for grouping related resources, to keep them separate from other resources. For example, a department or bank branch may define a domain, and all tasks or workflow instances they define will use that domain, so that they can avoid conflicting with task or workflow names in other domains. An API or service may define a domain for workflows and tasks that it defines. The combination of domain and name must be unique within the set of all resources of this type. It is a best practice to define domains with URIs.
minLength: 1
maxLength: 512
label string
The text label for this resource, suitable for presentation to the client.
minLength: 1
maxLength: 128
description string(markdown)
The full description for this resource, suitable for presentation in the tools for building/navigating the workflow. The content is processed as Github Flavored Markdown and thus supports rich text.
format: markdown
minLength: 1
maxLength: 4096
instructions string(markdown)
End-user instructions for this workflow item. The content is processed as Github Flavored Markdown and thus supports rich text.
format: markdown
minLength: 1
maxLength: 4096
restartable boolean
Indicates if the workflow or task is restartable.
default: true
restartableRule string
An optional expression used in determining if the given task is restartable.
minLength: 1
maxLength: 128
maxRestartCount integer
An optional limit on the amount of times that the given task can be restarted.
restartCount integer
A running count of the amount of times that a given task has been restarted.
schema object
The schema which defines the name and types of the variables that are part of this task definition. Property names must be simple identifiers consisting of alphanumeric characters, -, _ following the pattern letter [letter | digit | '-' | '_']* This is implicitly a schema for type: object and contains the properties.

The values in a task conform to the schema. The names and types are described with a subset of JSON Schema Core and JSON Schema Validation similar to that used to define schemas in OpenAPI Specification 2.0.

interface object
interface defines the input and output interface of the workflow or task. The interface maps a variable from the schema to an object which indicates if the variable is part of the inputs to the task or workflow or part of the outputs of the instance, or both. The value provides a default value which is used when creating the instance. The value must confirm to the schema for that variable.
» Interface (v1.0.0) interface
Defines the input and output interface (subset of values) for a task or workflow.
bindings array: [binding]
bindings connects input and output interface variables of the workflow and the workflow tasks.

When the workflow starts, all workflow and task variables are first assigned to any default values as per their respective interface and schema defaults. Next, workflow and task interface inputs are assigned to the inputs of any tasks as per these bindings. When a task starts, any bindings for its inputs are assigned as per these bindings. Each binding defines a source and one or more targets that are assigned to the value named by the source.
items: object

values object
The data associated with this flow item: the item's variable names and values. These values must conform to this item's schema. When a workflow or task runs, it may read and/or update these values as part of its processing.

When used in a workflow definition or task definition, the values define the default values for the variable that the workflow or task will take if the corresponding value is not bound via a workflow's bindings. That is, a definition's values are copied into the new workflow item's values when the item is instantiated from the definition.

Note: the schema may also contain default values which, if present, are used if a value is not set in the definition's values. (For example, multiple task definitions may use the same schema which defines values a, b, and c, but each task definition may have their own unique values for a, b, and c which is separate from the schema.)

type string
Describes the type of this task. This determines the behavior when the task is activated. Example task types are form (fill out a form), choice (select a value from a fixed set of choices), select (select one or more values from a dynamic set of choices), rest (perform a REST call), compute (compute output values based on the input values), workflow (a reusable set of subtasks). Task types are defined in the Workflow configuration.
minLength: 3
maxLength: 64
pattern: [a-zA-Z][-\w_]*
visibility taskVisibility
Whether the client should show or hide this task.
default: "visible"
enum values: hidden, visible
mode taskMode
Indicates whether the client interacts with the task or not.
enum values: interactive, automatic
includeInTaskSequence boolean
If true, include this task in an optional task sequence object on the workflow's _embedded data. That value contains an ordered list of tasks that have been completed during the workflow. The UI may use this object to traverse the completed tasks.
_id string
The unique identifier for this task definition resource. This is an immutable opaque string.
read-only
state flowItemState
The state of a task.
read-only
enum values: definition, pending, blocked, running, paused, completed, failed, canceled
done boolean
Indicates if a task or workflow has completed. (With the current set of state values, this is true when the state is one of completed or failed or canceled, although the set of states may change when new states are added.)
read-only
initial boolean
Indicates if a task is an initial task A initial task is one which has no task dependencies and thus can never be blocked. Initial tasks are started automatically when the workflow is started.
This is a derived property.
read-only
terminal boolean
Indicates if a task is a terminal task A terminal task is one which no other task depends on. If a terminal state is reached (its entry criteria are satisfied), the workflow containing the task is also marked as completed or failed.
This is a derived property.
read-only
effectiveStartAt string(date-time)
The date-time when this revision was created and became effective. This is an RFC 3339 formatted date-time string YYYY-MM-DDThh:mm:ss.sssZ. This field is derived and immutable.
format: date-time
effectiveEndAt string(date-time)
The date-time when the another revision became effective and this revision ceased being effective. This is an RFC 3339 formatted date-time string YYYY-MM-DDThh:mm:ss.sssZ. This field is derived and immutable and is not present until the revision is no longer active.
format: date-time
errorTask string
The name of task to start if this task fails. When the task fails, it sets its state to failed. If the value is "", then the workflow does nothing if the task fails. If this is not set, the workflow will start the task named by the workflow's errorTask, if any, otherwise the workflow sets its state to failed.
maxLength: 48
pattern: [a-zA-Z][-\w_]*
revisionLabel string
The text label for the revision of this resource, suitable for presentation to the client. This is used to differentiate between different revisions of the item. Clients should change this via the PATCH or PUT before creating the revision, since revisions are immutable and there is no way to change this label after the revision is created.
minLength: 1
maxLength: 128

taskMode

"interactive"

Task Mode (v1.0.0)

Indicates whether the client interacts with the task or not.

taskMode strings may have one of the following enumerated values:

ValueDescription
interactiveInteractive: The task requires interaction with the user, such as selecting a choice or filling out a form.
automaticAutomatic: The task runs without interaction once its prerequisites are satisfied.

These enumeration values are further described by the label group named taskMode in the response from the getLabels operation.

type: string


enum values: interactive, automatic

taskVisibility

"hidden"

Task Visibility (v1.0.0)

Determines the visibility of the task in interactive (UI) clients.

taskVisibility strings may have one of the following enumerated values:

ValueDescription
hiddenHidden: Presentation clients (UI) should not show this task to the end user.
visibleVisible: Presentation clients (UI) may show this task to the end user.

These enumeration values are further described by the label group named taskVisibility in the response from the getLabels operation.

type: string


default: "visible"
enum values: hidden, visible

tasks

{
  "_profile": "https://production.api.apiture.com/schemas/workflow/tasks/v1.3.2/profile.json",
  "_links": {
    "self": {
      "href": "https://api.devbank.apiture.com/workflow/tasks?start=10&limit=10"
    },
    "first": {
      "href": "https://api.devbank.apiture.com/workflow/tasks?start=0&limit=10"
    },
    "next": {
      "href": "https://api.devbank.apiture.com/workflow/tasks?start=20&limit=10"
    },
    "collection": {
      "href": "https://api.devbank.apiture.com/workflow/tasks"
    }
  },
  "start": 10,
  "limit": 10,
  "count": 67,
  "name": "tasks",
  "_embedded": {
    "items": [
      {
        "_profile": "https://production.api.apiture.com/schemas/workflow/task/v1.2.2/profile.json",
        "domain": "https://production.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.)"
      }
    ]
  }
}

Task Collection (v1.3.2)

Collection of tasks. The items in the collection are ordered in the _embedded object with name items. The top-level _links object may contain pagination links (self, next, prev, first, last, collection) as well as the following:

* *`apiture:createTaskDefinition`* a POST operation to create a task definition using the `createTask` schema for the request. 

Properties

NameDescription
Task Collection (v1.3.2) object

Collection of tasks. The items in the collection are ordered in the _embedded object with name items. The top-level _links object may contain pagination links (self, next, prev, first, last, collection) as well as the following:

* *`apiture:createTaskDefinition`* a POST operation to create a task definition using the `createTask` schema for the request. 
_links links
An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.

This schema was resolved from common/links.

_embedded object
Embedded task summary objects.
» items array: [summaryTask]
An array containing a page of task items.
items: object
_profile string(uri)
The URI of a resource profile which describes the representation.
read-only
format: uri
_error error
An object which describes an error. This value is omitted if the operation succeeded without error.
read-only
count integer
The number of items in the collection. This value is optional and may be omitted if the count is not computable efficiently. If a filter is applied to the collection (either implicitly or explicitly), the count, if present, indicates the number of items that satisfy the filter.
start integer
The start index of this page of items.
limit integer
The maximum number of items per page.
name string
The name of the collection.

visibleTasks

{
  "_profile": "https://production.api.apiture.com/schemas/workflow/visibleTasks/v1.3.2/profile.json",
  "_links": {
    "self": {
      "href": "https://api.devbank.apiture.com/apiName/resourceName/resourceId"
    }
  },
  "name": "visibleTasks",
  "_embedded": {
    "items": [
      {
        "_id": "4c44d065-1f4c-4bf8-b76d-d0514cd2acff",
        "domain": "https://production.api.apiture.com/domains/acctApps",
        "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": "https://api.devbank.apiture.com/workflow/tasks/4c44d065-1f4c-4bf8-b76d-d0514cd2acff"
          }
        }
      },
      {
        "_id": "32e4a075-bd33-43ee-a50a-ca499bbf3c6e",
        "domain": "https://production.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": "https://api.devbank.apiture.com/workflow/tasks/32e4a075-bd33-43ee-a50a-ca499bbf3c6e"
          }
        },
        "subTasks": [
          {
            "_id": "5ce72b5c-361f-4ba2-b0a5-92f7e18764bd",
            "domain": "https://production.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": "https://api.devbank.apiture.com/workflow/tasks/5ce72b5c-361f-4ba2-b0a5-92f7e18764bd"
              }
            }
          }
        ]
      },
      {
        "_id": "4386bdee-ffe4-47ac-b313-87fd735be9ea",
        "domain": "https://production.api.apiture.com/domains/acctApps",
        "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": "https://api.devbank.apiture.com/workflow/tasks/4386bdee-ffe4-47ac-b313-87fd735be9ea"
          }
        }
      }
    ]
  }
}

Visible Task Collection (v1.3.2)

Collection of visible tasks. The visibility of each task under _embedded.items will be visible. If any of the tasks are of type workflow, their visible tasks will be included as well, nested inside that workflow task's subTasks.

Properties

NameDescription
Visible Task Collection (v1.3.2) object
Collection of visible tasks. The visibility of each task under _embedded.items will be visible. If any of the tasks are of type workflow, their visible tasks will be included as well, nested inside that workflow task's subTasks.
_links links
An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.

This schema was resolved from common/links.

_embedded object
Embedded task objects.
» items array: [nestableTask]
An array containing all visible task items.
items: object
_profile string(uri)
The URI of a resource profile which describes the representation.
read-only
format: uri
_error error
An object which describes an error. This value is omitted if the operation succeeded without error.
read-only
count integer
The number of items in the collection. This value is optional and may be omitted if the count is not computable efficiently. If a filter is applied to the collection (either implicitly or explicitly), the count, if present, indicates the number of items that satisfy the filter.
start integer
The start index of this page of items.
limit integer
The maximum number of items per page.
name string
The name of the collection.

workflow

{
  "_profile": "https://production.api.apiture.com/schemas/workflow/workflow/v1.2.2/profile.json",
  "_links": {
    "self": {
      "href": "https://api.devbank.apiture.com/workflow/workflows/0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:cancel": {
      "href": "https://api.devbank.apiture.com/canceledWorkflows?workflow=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:fail": {
      "href": "https://api.devbank.apiture.com/failedWorkflows?workflow=0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:pause": {
      "href": "https://api.devbank.apiture.com/pausedWorkflows?workflow=0399abed-fd3d-4830-a88b-30f38b8a365c"
    }
  },
  "name": "newAccountSelector",
  "domain": "https://production.api.apiture.com/domains/acctApps",
  "label": "New Account Selector",
  "revisionLabel": "Use Terms and Conditions 1.0.4 as of 2018-09-25",
  "type": "somethingElse",
  "visibility": "hidden",
  "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
  },
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "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": "https://production.api.apiture.com/domains/tasks/forms",
        "name": "userForm",
        "label": "Personal Information",
        "type": "form",
        "_links": {
          "self": {
            "href": "https://api.devbank.apiture.com/workflow/tasks/46913e8b-fb7f-4f31-92bf-7b263907ed95"
          }
        }
      },
      "accountOwnershipChoice": {
        "domain": "https://production.api.apiture.com/domains/tasks/prompts",
        "name": "accountOwnershipChoice",
        "type": "binaryChoice",
        "label": "Select Account Ownership Type",
        "_links": {
          "self": {
            "href": "https://api.devbank.apiture.com/workflow/tasks/3768afc0-1070-4372-b965-44f01cba70cb"
          }
        }
      },
      "jointOwnerInfoForm1": {
        "domain": "https://production.api.apiture.com/domains/tasks/forms",
        "name": "userForm",
        "type": "form",
        "label": "Joint Owner Personal Information",
        "_links": {
          "self": {
            "href": "https://api.devbank.apiture.com/workflow/tasks/cb898688-05d1-4ecd-8684-d67da617eafa"
          }
        }
      }
    }
  },
  "state": "blocked",
  "dependencies": {
    "jointOwnerInfoForm1": [
      {
        "dependents": [
          "accountOwnershipChoice"
        ],
        "rule": "accountOwnershipChoice.choice == 'joint'"
      }
    ],
    "accountOwnershipChoice": [
      {
        "dependents": [
          "personalInfoForm1"
        ]
      }
    ]
  },
  "bindings": [
    {
      "source": "_.userProfile",
      "targets": [
        "userForm1.user",
        "jointUserForm1.spouse"
      ]
    }
  ]
}

Workflow (v1.2.2)

Representation of a workflow resource. A workflow instance is based on a workflow definition.

Response and request bodies using this workflow schema may contain the following links:

RelSummaryMethod
selfFetch a representation of this workflowGET
apiture:definitionThe workflow definitionGET
apiture:pausePause the workflow and its tasksPOST
apiture:cancelCancel the workflow and its tasksPOST
apiture:startStart or restart the workflowPOST
apiture:failStop the workflow and set its state to failedPOST

Properties

NameDescription
Workflow (v1.2.2) object

Representation of a workflow resource. A workflow instance is based on a workflow definition.

Response and request bodies using this workflow schema may contain the following links:

RelSummaryMethod
selfFetch a representation of this workflowGET
apiture:definitionThe workflow definitionGET
apiture:pausePause the workflow and its tasksPOST
apiture:cancelCancel the workflow and its tasksPOST
apiture:startStart or restart the workflowPOST
apiture:failStop the workflow and set its state to failedPOST
_links links
An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.

This schema was resolved from common/links.

_embedded object
Nested objects within a workflow definition. When creating a workflow definition, the nested tasks should be task or task summary representations from /taskDefinitions (i.e. the task state must be definition). These may be either revisionless task definitions or specific revisions of task definitions.
_profile string(uri)
The URI of a resource profile which describes the representation.
read-only
format: uri
_error error
An object which describes an error. This value is omitted if the operation succeeded without error.
read-only
name string
The name of this resource. The combination of domain and name must be unique within the set of all resources of this type.
minLength: 1
maxLength: 48
pattern: [a-zA-Z][-\w_]*
domain string
A namespace for grouping related resources, to keep them separate from other resources. For example, a department or bank branch may define a domain, and all tasks or workflow instances they define will use that domain, so that they can avoid conflicting with task or workflow names in other domains. An API or service may define a domain for workflows and tasks that it defines. The combination of domain and name must be unique within the set of all resources of this type. It is a best practice to define domains with URIs.
minLength: 1
maxLength: 512
label string
The text label for this resource, suitable for presentation to the client.
minLength: 1
maxLength: 128
description string(markdown)
The full description for this resource, suitable for presentation in the tools for building/navigating the workflow. The content is processed as Github Flavored Markdown and thus supports rich text.
format: markdown
minLength: 1
maxLength: 4096
instructions string(markdown)
End-user instructions for this workflow item. The content is processed as Github Flavored Markdown and thus supports rich text.
format: markdown
minLength: 1
maxLength: 4096
restartable boolean
Indicates if the workflow or task is restartable.
default: true
restartableRule string
An optional expression used in determining if the given task is restartable.
minLength: 1
maxLength: 128
maxRestartCount integer
An optional limit on the amount of times that the given task can be restarted.
restartCount integer
A running count of the amount of times that a given task has been restarted.
schema object
The schema which defines the name and types of the variables that are part of this task definition. Property names must be simple identifiers consisting of alphanumeric characters, -, _ following the pattern letter [letter | digit | '-' | '_']* This is implicitly a schema for type: object and contains the properties.

The values in a task conform to the schema. The names and types are described with a subset of JSON Schema Core and JSON Schema Validation similar to that used to define schemas in OpenAPI Specification 2.0.

interface object
interface defines the input and output interface of the workflow or task. The interface maps a variable from the schema to an object which indicates if the variable is part of the inputs to the task or workflow or part of the outputs of the instance, or both. The value provides a default value which is used when creating the instance. The value must confirm to the schema for that variable.
» Interface (v1.0.0) interface
Defines the input and output interface (subset of values) for a task or workflow.
bindings array: [binding]
bindings connects input and output interface variables of the workflow and the workflow tasks.

When the workflow starts, all workflow and task variables are first assigned to any default values as per their respective interface and schema defaults. Next, workflow and task interface inputs are assigned to the inputs of any tasks as per these bindings. When a task starts, any bindings for its inputs are assigned as per these bindings. Each binding defines a source and one or more targets that are assigned to the value named by the source.
items: object

values object
The data associated with this flow item: the item's variable names and values. These values must conform to this item's schema. When a workflow or task runs, it may read and/or update these values as part of its processing.

When used in a workflow definition or task definition, the values define the default values for the variable that the workflow or task will take if the corresponding value is not bound via a workflow's bindings. That is, a definition's values are copied into the new workflow item's values when the item is instantiated from the definition.

Note: the schema may also contain default values which, if present, are used if a value is not set in the definition's values. (For example, multiple task definitions may use the same schema which defines values a, b, and c, but each task definition may have their own unique values for a, b, and c which is separate from the schema.)

dependencies object
The task dependency graph. This defines which tasks are prerequisite tasks for other task in the workflow. dependencies is a map structure. The key is the name of the task which depends on the others; the value is an array of dependency objects which define what named task depends on and what conditions must be met.
» additionalProperties array: [dependency]
[A dependency captures a workflow task dependency: each task within a workflow can depend on 0 or more other dependent tasks, creating a (possibly cyclic) dependency graph. Associated with each dependency is a rule: an optional constraint predicate expression which must evaluate to true in order for the task to start. The default constraint is that the dependent tasks all be completed (normal completion). A dependency object is the value associated with a task's name within a workflow's dependencies object.]
items: object
_id string
The unique identifier for this workflow resource. This is an immutable opaque string.
read-only
state flowItemState
The state of a workflow.
read-only
enum values: definition, pending, blocked, running, paused, completed, failed, canceled
done boolean
Indicates if a task or workflow has completed. (With the current set of state values, this is true when the state is one of completed or failed or canceled, although the set of states may change when new states are added.)
read-only
effectiveStartAt string(date-time)
The date-time when this revision was created and became effective. This is an RFC 3339 formatted date-time string YYYY-MM-DDThh:mm:ss.sssZ. This field is derived and immutable.
format: date-time
effectiveEndAt string(date-time)
The date-time when the another revision became effective and this revision ceased being effective. This is an RFC 3339 formatted date-time string YYYY-MM-DDThh:mm:ss.sssZ. This field is derived and immutable and is not present until the revision is no longer active.
format: date-time
createdAt string(date-time)
The date-time when the workflow was created. This is an RFC 3369 formatted date-time string, YYYY-MM-DDThh:mm:ss.sssZ. This is a derived field and is immutable.
read-only
format: date-time
updatedAt string(date-time)
The date-time when the workflow was updated. This is an RFC 3369 formatted date-time string, YYYY-MM-DDThh:mm:ss.sssZ. This is a derived field and is immutable.
read-only
format: date-time
errorTask string
The name of a task to start when a task fails and the failed task does not define its own errorTask. If the task is a terminal task, the workflow sets its state to failed. If the value is "", then the workflow does nothing when a task fails. If not defined, the workflow state becomes failed if a task without an errorTask fails.
maxLength: 48
pattern: [a-zA-Z][-\w_]*
revisionLabel string
The text label for the revision of this resource, suitable for presentation to the client. This is used to differentiate between different revisions of the item. Clients should change this via the PATCH or PUT before creating the revision, since revisions are immutable and there is no way to change this label after the revision is created.
minLength: 1
maxLength: 128

workflows

{
  "_profile": "https://production.api.apiture.com/schemas/workflow/workflows/v1.3.2/profile.json",
  "_links": {
    "self": {
      "href": "https://api.devbank.apiture.com/workflow/workflows?start=10&limit=10"
    },
    "first": {
      "href": "https://api.devbank.apiture.com/workflow/workflows?start=0&limit=10"
    },
    "next": {
      "href": "https://api.devbank.apiture.com/workflow/workflows?start=20&limit=10"
    },
    "collection": {
      "href": "https://api.devbank.apiture.com/workflow/workflows"
    }
  },
  "start": 10,
  "limit": 10,
  "count": 67,
  "name": "workflows",
  "_embedded": {
    "items": [
      {
        "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
        "_profile": "https://production.api.apiture.com/schemas/workflow/summaryWorkflow/v1.3.2/profile.json",
        "_links": {
          "self": {
            "href": "https://api.devbank.apiture.com/workflow/workflows/0399abed-fd3d-4830-a88b-30f38b8a365c"
          }
        },
        "name": "newAccountSelector",
        "domain": "https://production.api.apiture.com/domains/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": {}
      }
    ]
  }
}

Workflow Collection (v1.3.2)

Collection of workflows. The items in the collection are ordered in the _embedded object with name items. The top-level _links object may contain pagination links (self, next, prev, first, last, collection) as well the following:

* *`apiture:createWorkflowDefinition`* - a POST operation to create a workflow definition using the `createWorkflow` schema for the request. 

Properties

NameDescription
Workflow Collection (v1.3.2) object

Collection of workflows. The items in the collection are ordered in the _embedded object with name items. The top-level _links object may contain pagination links (self, next, prev, first, last, collection) as well the following:

* *`apiture:createWorkflowDefinition`* - a POST operation to create a workflow definition using the `createWorkflow` schema for the request. 
_links links
An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.

This schema was resolved from common/links.

_embedded object
Embedded workflow summary objects.
» items array: [summaryWorkflow]
An array containing a page of workflow items.
items: object
_profile string(uri)
The URI of a resource profile which describes the representation.
read-only
format: uri
_error error
An object which describes an error. This value is omitted if the operation succeeded without error.
read-only
count integer
The number of items in the collection. This value is optional and may be omitted if the count is not computable efficiently. If a filter is applied to the collection (either implicitly or explicitly), the count, if present, indicates the number of items that satisfy the filter.
start integer
The start index of this page of items.
limit integer
The maximum number of items per page.
name string
The name of the collection.

Generated by @apiture/api-doc 3.1.0 on Fri Mar 22 2024 13:03:17 GMT+0000 (Coordinated Universal Time).