- Workflow v0.25.3
- Error Types
- Authentication
- Workflow Definition
- Workflow
- Task Definition
- Task
- API
-
Schemas
- abstractRequest
- abstractResource
- attributes
- binding
- collection
- createTask
- createWorkflow
- dependency
- error
- errorResponse
- flowItemState
- interface
- labelGroup
- labelGroups
- labelItem
- link
- links
- nestableTask
- revisionEffectiveInterval
- root
- simpleLabel
- summaryTask
- summaryWorkflow
- task
- taskMode
- taskVisibility
- tasks
- visibleTasks
- workflow
- workflows
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 aschema
- A
state
field, one ofdefinition
,pending
,blocked
,running
,paused
,failed
,completed
,canceled
. The default state isrunning
(orblocked
if no tasks are runnable) - A
done
field istrue
if the state is one of those last three states. - A list of
bindings
which connect workflow statevalues
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 arecompleted
.- Entry criteria for each dependent task may also include a business
rule
which must evaluate totrue
. 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 iscompleted
.
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:
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 privateclientId
(and optionalclientSecret
) as part of this flow. The client obtains an access token from the server attokenUrl
. It then passes the received access token via theAuthorization: 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
- OAuth2 client access token authentication. The client authenticates against the server at
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
Parameter | Description |
---|---|
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
Status | Description |
---|---|
200 | OK |
OK. | |
Schema: workflows |
Status | Description |
---|---|
400 | Bad Request |
Bad Request. The request body or one or more of the query parameters was not well formed. The This error response may have one of the following | |
Schema: errorResponse |
Status | Description |
---|---|
422 | Unprocessable Entity |
Unprocessable Entity. One or more of the query parameters was well formed but otherwise invalid. The This error response may have one of the following | |
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
Parameter | Description |
---|---|
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
Status | Description |
---|---|
201 | Created |
Created. | |
Schema: workflow | |
Header | Location string uri |
The URI of the new resource. If the URI begins with / it is relative to the API root context. Else, it is a full URI starting with scheme ://host | |
Header | ETag string |
The ETag response header specifies an entity tag which must be provided in an If-Match request header for PUT or PATCH operations which update the resource. |
Status | Description |
---|---|
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 |
Status | Description |
---|---|
409 | Conflict |
Conflict. There is already a definition with the given name/context. This error response may have one of the following | |
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
Parameter | Description |
---|---|
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
Status | Description |
---|---|
200 | OK |
OK. | |
Schema: workflow | |
Header | ETag string |
The ETag response header specifies an entity tag which must be provided in an If-Match request header for PUT or PATCH operations which update this workflow definition resource. |
Status | Description |
---|---|
304 | Not Modified |
Not Modified. The resource has not been modified since it was last fetched. |
Status | Description |
---|---|
404 | Not Found |
Not Found. There is no such workflow definition resource at the specified This error response may have one of the following | |
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
Parameter | Description |
---|---|
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
Status | Description |
---|---|
200 | OK |
OK. | |
Schema: workflow | |
Header | ETag string |
The ETag response header specifies an entity tag which must be provided in an If-Match request header for PUT or PATCH operations which update this workflow definition resource. |
Status | Description |
---|---|
400 | Bad Request |
Bad Request. The request body or one or more of the query parameters was not well formed. The This error response may have one of the following | |
Schema: errorResponse |
Status | Description |
---|---|
404 | Not Found |
Not Found. There is no such workflow definition resource at the specified This error response may have one of the following | |
Schema: errorResponse |
Status | Description |
---|---|
409 | Conflict |
Conflict. There is already a definition with the given name/context. This error response may have one of the following | |
Schema: errorResponse |
Status | Description |
---|---|
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 |
Status | Description |
---|---|
422 | Unprocessable Entity |
Unprocessable Entity. One or more of the query parameters was well formed but otherwise invalid. The This error response may have one of the following | |
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
Parameter | Description |
---|---|
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
Status | Description |
---|---|
200 | OK |
OK. | |
Schema: workflow | |
Header | ETag string |
The ETag response header specifies an entity tag which must be provided in an If-Match request header for PUT or PATCH operations which update this workflow definition resource. |
Status | Description |
---|---|
400 | Bad Request |
Bad Request. The request body or one or more of the query parameters was not well formed. The This error response may have one of the following | |
Schema: errorResponse |
Status | Description |
---|---|
404 | Not Found |
Not Found. There is no such workflow definition resource at the specified This error response may have one of the following | |
Schema: errorResponse |
Status | Description |
---|---|
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 |
Status | Description |
---|---|
422 | Unprocessable Entity |
Unprocessable Entity. One or more of the query parameters was well formed but otherwise invalid. The This error response may have one of the following | |
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
Parameter | Description |
---|---|
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
Status | Description |
---|---|
204 | No Content |
No Content. The resource was deleted successfully. |
Status | Description |
---|---|
404 | Not Found |
Not Found. There is no such workflow definition resource at the specified This error response may have one of the following | |
Schema: errorResponse |
Status | Description |
---|---|
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 | |
Schema: errorResponse |
Status | Description |
---|---|
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
Parameter | Description |
---|---|
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
Status | Description |
---|---|
200 | OK |
OK. | |
Schema: workflows |
Status | Description |
---|---|
400 | Bad Request |
Bad Request. The request body or one or more of the query parameters was not well formed. The This error response may have one of the following | |
Schema: errorResponse |
Status | Description |
---|---|
404 | Not Found |
Not Found. There is no such workflow definition resource at the specified This error response may have one of the following | |
Schema: errorResponse |
Status | Description |
---|---|
422 | Unprocessable Entity |
Unprocessable Entity. One or more of the query parameters was well formed but otherwise invalid. The This error response may have one of the following | |
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
Parameter | Description |
---|---|
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
then creating new workflow definition revision with |
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
Status | Description |
---|---|
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. |
Status | Description |
---|---|
404 | Not Found |
Not Found. There is no such workflow definition resource at the specified This error response may have one of the following | |
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
Parameter | Description |
---|---|
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
Status | Description |
---|---|
200 | OK |
OK. | |
Schema: workflow | |
Header | ETag string |
The ETag response header specifies an entity tag which must be provided in an If-Match request header for PUT or PATCH operations which update this workflow definition resource. |
Status | Description |
---|---|
304 | Not Modified |
Not Modified. The resource has not been modified since it was last fetched. |
Status | Description |
---|---|
404 | Not Found |
Not Found. There is no such workflow definition resource at the specified This error response may have one of the following | |
Schema: errorResponse |
Status | Description |
---|---|
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
Parameter | Description |
---|---|
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
Status | Description |
---|---|
200 | OK |
OK. | |
Schema: workflows |
Status | Description |
---|---|
400 | Bad Request |
Bad Request. The request body or one or more of the query parameters was not well formed. The This error response may have one of the following | |
Schema: errorResponse |
Status | Description |
---|---|
422 | Unprocessable Entity |
Unprocessable Entity. One or more of the query parameters was well formed but otherwise invalid. The This error response may have one of the following | |
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
Parameter | Description |
---|---|
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
Status | Description |
---|---|
201 | Created |
Created. | |
Schema: workflow | |
Header | Location string uri |
The URI of the new resource. If the URI begins with / it is relative to the API root context. Else, it is a full URI starting with scheme ://host | |
Header | ETag string |
The ETag response header specifies an entity tag which must be provided in an If-Match request header for PUT or PATCH operations which update the resource. |
Status | Description |
---|---|
400 | Bad Request |
Bad Request. The request body or one or more of the query parameters was not well formed. The This error response may have one of the following | |
Schema: errorResponse |
Status | Description |
---|---|
404 | Not Found |
Not Found. There is no such workflow resource at the specified This error response may have one of the following | |
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
Parameter | Description |
---|---|
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:
|
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
Status | Description |
---|---|
200 | OK |
OK. | |
Schema: workflow | |
Header | ETag string |
The ETag response header specifies an entity tag which must be provided in an If-Match request header for PUT or PATCH operations which update this workflow resource. |
Status | Description |
---|---|
304 | Not Modified |
Not Modified. The resource has not been modified since it was last fetched. |
Status | Description |
---|---|
404 | Not Found |
Not Found. There is no such workflow resource at the specified This error response may have one of the following | |
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
Parameter | Description |
---|---|
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
Status | Description |
---|---|
204 | No Content |
No Content. The resource was deleted successfully. |
Status | Description |
---|---|
404 | Not Found |
Not Found. There is no such workflow resource at the specified This error response may have one of the following | |
Schema: errorResponse |
Status | Description |
---|---|
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
Parameter | Description |
---|---|
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
Status | Description |
---|---|
200 | OK |
OK. | |
Schema: visibleTasks | |
Header | ETag string |
The ETag response header specifies an entity tag which must be provided in an If-Match request header for PUT or PATCH operations which update this workflow resource. |
Status | Description |
---|---|
304 | Not Modified |
Not Modified. The resource has not been modified since it was last fetched. |
Status | Description |
---|---|
404 | Not Found |
Not Found. There is no such workflow resource at the specified This error response may have one of the following | |
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
Parameter | Description |
---|---|
workflowId in: path | string (required) The unique identifier of this workflow. This is an opaque string. |
Example responses
200 Response
{}
Responses
Status | Description |
---|---|
200 | OK |
OK. | |
Schema: Inline | |
Header | ETag string |
The ETag response header specifies an entity tag which must be provided in an If-Match request header for PUT or PATCH operations which update this workflow resource. |
Status | Description |
---|---|
404 | Not Found |
Not Found. There is no such workflow resource at the specified This error response may have one of the following | |
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
Parameter | Description |
---|---|
workflowId in: path | string (required) The unique identifier of this workflow. This is an opaque string. |
body | attributes (required) A set of named values. Additional Properties: true |
Example responses
200 Response
{}
Responses
Status | Description |
---|---|
200 | OK |
OK. | |
Schema: Inline | |
Header | ETag string |
The ETag response header specifies an entity tag which must be provided in an If-Match request header for PUT or PATCH operations which update this workflow resource. |
Status | Description |
---|---|
400 | Bad Request |
Bad Request. The request body or one or more of the query parameters was not well formed. The This error response may have one of the following | |
Schema: errorResponse |
Status | Description |
---|---|
404 | Not Found |
Not Found. There is no such workflow resource at the specified This error response may have one of the following | |
Schema: errorResponse |
Status | Description |
---|---|
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 |
Status | Description |
---|---|
422 | Unprocessable Entity |
Unprocessable Entity. One or more of the query parameters was well formed but otherwise invalid. The This error response may have one of the following | |
Schema: errorResponse |
Response Schema
Status Code 200
Property Name | Description |
---|---|
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 . |
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
Parameter | Description |
---|---|
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
Status | Description |
---|---|
200 | OK |
OK. | |
Schema: Inline | |
Header | ETag string |
The ETag response header specifies an entity tag which must be provided in an If-Match request header for PUT or PATCH operations which update this workflow resource. |
Status | Description |
---|---|
404 | Not Found |
Not Found. There is no such task resource at the specified This error response may have one of the following | |
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
Parameter | Description |
---|---|
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. Additional Properties: true |
Example responses
200 Response
{}
Responses
Status | Description |
---|---|
200 | OK |
OK. | |
Schema: Inline | |
Header | ETag string |
The ETag response header specifies an entity tag which must be provided in an If-Match request header for PUT or PATCH operations which update this workflow resource. |
Status | Description |
---|---|
404 | Not Found |
Not Found. There is no such task resource at the specified This error response may have one of the following | |
Schema: errorResponse |
Response Schema
Status Code 200
Property Name | Description |
---|---|
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 . |
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
Parameter | Description |
---|---|
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
Status | Description |
---|---|
200 | OK |
OK. | |
Schema: workflow |
Status | Description |
---|---|
422 | Unprocessable Entity |
Unprocessable Entity. The workflow parameter does not name a valid workflow. This error response may have one of the following | |
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
Parameter | Description |
---|---|
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
Status | Description |
---|---|
200 | OK |
OK. | |
Schema: workflow |
Status | Description |
---|---|
422 | Unprocessable Entity |
Unprocessable Entity. The workflow parameter does not name a valid workflow. This error response may have one of the following | |
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
Parameter | Description |
---|---|
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
Status | Description |
---|---|
200 | OK |
OK. | |
Schema: workflow |
Status | Description |
---|---|
422 | Unprocessable Entity |
Unprocessable Entity. The workflow parameter does not name a valid workflow. This error response may have one of the following | |
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
Parameter | Description |
---|---|
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
Status | Description |
---|---|
200 | OK |
OK. | |
Schema: workflow |
Status | Description |
---|---|
422 | Unprocessable Entity |
Unprocessable Entity. The workflow parameter does not name a valid workflow. This error response may have one of the following | |
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
Parameter | Description |
---|---|
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
Status | Description |
---|---|
200 | OK |
OK. | |
Schema: tasks |
Status | Description |
---|---|
400 | Bad Request |
Bad Request. The request body or one or more of the query parameters was not well formed. The This error response may have one of the following | |
Schema: errorResponse |
Status | Description |
---|---|
404 | Not Found |
Not Found. There is no such task resource at the specified This error response may have one of the following | |
Schema: errorResponse |
Status | Description |
---|---|
422 | Unprocessable Entity |
Unprocessable Entity. One or more of the query parameters was well formed but otherwise invalid. The This error response may have one of the following | |
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
Parameter | Description |
---|---|
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
Status | Description |
---|---|
201 | Created |
Created. | |
Schema: task | |
Header | Location string uri |
The URI of the new resource. If the URI begins with / it is relative to the API root context. Else, it is a full URI starting with scheme ://host | |
Header | ETag 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. |
Status | Description |
---|---|
400 | Bad Request |
Bad Request. The request body or one or more of the query parameters was not well formed. The This error response may have one of the following | |
Schema: errorResponse |
Status | Description |
---|---|
409 | Conflict |
Conflict. There is already a definition with the given name/context. This error response may have one of the following | |
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
Parameter | Description |
---|---|
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
Status | Description |
---|---|
200 | OK |
OK. | |
Schema: task | |
Header | ETag 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. |
Status | Description |
---|---|
304 | Not Modified |
Not Modified. The resource has not been modified since it was last fetched. |
Status | Description |
---|---|
404 | Not Found |
Not Found. There is no such task definition resource at the specified This error response may have one of the following | |
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
Parameter | Description |
---|---|
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
Status | Description |
---|---|
200 | OK |
OK. | |
Schema: task | |
Header | ETag 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. |
Status | Description |
---|---|
400 | Bad Request |
Bad Request. The request body or one or more of the query parameters was not well formed. The This error response may have one of the following | |
Schema: errorResponse |
Status | Description |
---|---|
404 | Not Found |
Not Found. There is no such task definition resource at the specified This error response may have one of the following | |
Schema: errorResponse |
Status | Description |
---|---|
409 | Conflict |
Conflict. There is already a definition with the given name/context. This error response may have one of the following | |
Schema: errorResponse |
Status | Description |
---|---|
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 |
Status | Description |
---|---|
422 | Unprocessable Entity |
Unprocessable Entity. One or more of the query parameters was well formed but otherwise invalid. The This error response may have one of the following | |
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
Parameter | Description |
---|---|
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
Status | Description |
---|---|
200 | OK |
OK. | |
Schema: task | |
Header | ETag 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. |
Status | Description |
---|---|
400 | Bad Request |
Bad Request. The request body or one or more of the query parameters was not well formed. The This error response may have one of the following | |
Schema: errorResponse |
Status | Description |
---|---|
404 | Not Found |
Not Found. There is no such task definition resource at the specified This error response may have one of the following | |
Schema: errorResponse |
Status | Description |
---|---|
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 |
Status | Description |
---|---|
422 | Unprocessable Entity |
Unprocessable Entity. One or more of the query parameters was well formed but otherwise invalid. The This error response may have one of the following | |
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
Parameter | Description |
---|---|
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
Status | Description |
---|---|
204 | No Content |
No Content. The resource was deleted successfully. |
Status | Description |
---|---|
404 | Not Found |
Not Found. There is no such task definition resource at the specified This error response may have one of the following | |
Schema: errorResponse |
Status | Description |
---|---|
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 | |
Schema: errorResponse |
Status | Description |
---|---|
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
Parameter | Description |
---|---|
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
Status | Description |
---|---|
200 | OK |
OK. | |
Schema: tasks |
Status | Description |
---|---|
400 | Bad Request |
Bad Request. The request body or one or more of the query parameters was not well formed. The This error response may have one of the following | |
Schema: errorResponse |
Status | Description |
---|---|
404 | Not Found |
Not Found. There is no such task definition resource at the specified This error response may have one of the following | |
Schema: errorResponse |
Status | Description |
---|---|
422 | Unprocessable Entity |
Unprocessable Entity. One or more of the query parameters was well formed but otherwise invalid. The This error response may have one of the following | |
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
Parameter | Description |
---|---|
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
Status | Description |
---|---|
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. |
Status | Description |
---|---|
404 | Not Found |
Not Found. There is no such task definition resource at the specified This error response may have one of the following | |
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
Parameter | Description |
---|---|
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
Status | Description |
---|---|
200 | OK |
OK. | |
Schema: task | |
Header | ETag string |
The ETag response header specifies an entity tag which must be provided in an If-Match request header for PUT or PATCH operations which update this workflow task resource. |
Status | Description |
---|---|
304 | Not Modified |
Not Modified. The resource has not been modified since it was last fetched. |
Status | Description |
---|---|
404 | Not Found |
Not Found. There is no such task definition resource at the specified This error response may have one of the following | |
Schema: errorResponse |
Status | Description |
---|---|
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
Parameter | Description |
---|---|
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
Status | Description |
---|---|
200 | OK |
OK. | |
Schema: tasks |
Status | Description |
---|---|
400 | Bad Request |
Bad Request. The request body or one or more of the query parameters was not well formed. The This error response may have one of the following | |
Schema: errorResponse |
Status | Description |
---|---|
422 | Unprocessable Entity |
Unprocessable Entity. One or more of the query parameters was well formed but otherwise invalid. The This error response may have one of the following | |
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
Parameter | Description |
---|---|
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
Status | Description |
---|---|
201 | Created |
Created. | |
Schema: task | |
Header | Location string uri |
The URI of the new resource. If the URI begins with / it is relative to the API root context. Else, it is a full URI starting with scheme ://host | |
Header | ETag 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. |
Status | Description |
---|---|
400 | Bad Request |
Bad Request. The request body or one or more of the query parameters was not well formed. The This error response may have one of the following | |
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
Parameter | Description |
---|---|
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
Status | Description |
---|---|
200 | OK |
OK. | |
Schema: task | |
Header | ETag 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. |
Status | Description |
---|---|
304 | Not Modified |
Not Modified. The resource has not been modified since it was last fetched. |
Status | Description |
---|---|
404 | Not Found |
Not Found. There is no such task resource at the specified This error response may have one of the following | |
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
Parameter | Description |
---|---|
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
Status | Description |
---|---|
200 | OK |
OK. | |
Schema: task | |
Header | ETag 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. |
Status | Description |
---|---|
400 | Bad Request |
Bad Request. The request body or one or more of the query parameters was not well formed. The This error response may have one of the following | |
Schema: errorResponse |
Status | Description |
---|---|
404 | Not Found |
Not Found. There is no such task resource at the specified This error response may have one of the following | |
Schema: errorResponse |
Status | Description |
---|---|
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 |
Status | Description |
---|---|
422 | Unprocessable Entity |
Unprocessable Entity. One or more of the query parameters was well formed but otherwise invalid. The This error response may have one of the following | |
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
Parameter | Description |
---|---|
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
Status | Description |
---|---|
204 | No Content |
No Content. The resource was deleted successfully. |
Status | Description |
---|---|
404 | Not Found |
Not Found. There is no such task resource at the specified This error response may have one of the following | |
Schema: errorResponse |
Status | Description |
---|---|
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
Parameter | Description |
---|---|
taskId in: path | string (required) The unique identifier of this task. This is an opaque string. |
Example responses
200 Response
{}
Responses
Status | Description |
---|---|
200 | OK |
OK. | |
Schema: Inline | |
Header | ETag 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. |
Status | Description |
---|---|
404 | Not Found |
Not Found. There is no such task resource at the specified This error response may have one of the following | |
Schema: errorResponse |
Status | Description |
---|---|
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
Parameter | Description |
---|---|
taskId in: path | string (required) The unique identifier of this task. This is an opaque string. |
body | attributes (required) A set of named values. Additional Properties: true |
Example responses
200 Response
{}
Responses
Status | Description |
---|---|
200 | OK |
OK. | |
Schema: Inline | |
Header | ETag 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. |
Status | Description |
---|---|
400 | Bad Request |
Bad Request. The request body or one or more of the query parameters was not well formed. The This error response may have one of the following | |
Schema: errorResponse |
Status | Description |
---|---|
404 | Not Found |
Not Found. There is no such task resource at the specified This error response may have one of the following | |
Schema: errorResponse |
Status | Description |
---|---|
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 |
Status | Description |
---|---|
422 | Unprocessable Entity |
Unprocessable Entity. One or more of the query parameters was well formed but otherwise invalid. The This error response may have one of the following | |
Schema: errorResponse |
Response Schema
Status Code 200
Property Name | Description |
---|---|
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 . |
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
Parameter | Description |
---|---|
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
Status | Description |
---|---|
200 | OK |
OK. | |
Schema: Inline | |
Header | ETag 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. |
Status | Description |
---|---|
404 | Not Found |
Not Found. There is no such task resource at the specified This error response may have one of the following | |
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
Parameter | Description |
---|---|
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. Additional Properties: true |
Example responses
200 Response
{}
Responses
Status | Description |
---|---|
200 | OK |
OK. | |
Schema: Inline | |
Header | ETag 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. |
Status | Description |
---|---|
400 | Bad Request |
Bad Request. The request body or one or more of the query parameters was not well formed. The This error response may have one of the following | |
Schema: errorResponse |
Status | Description |
---|---|
404 | Not Found |
Not Found. There is no such task resource at the specified This error response may have one of the following | |
Schema: errorResponse |
Response Schema
Status Code 200
Property Name | Description |
---|---|
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 . |
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
Parameter | Description |
---|---|
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
Status | Description |
---|---|
200 | OK |
OK. | |
Schema: task |
Status | Description |
---|---|
422 | Unprocessable Entity |
Unprocessable Entity. The task parameter does not name a valid workflow task. This error response may have one of the following | |
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
Parameter | Description |
---|---|
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
Status | Description |
---|---|
200 | OK |
OK. | |
Schema: task |
Status | Description |
---|---|
422 | Unprocessable Entity |
Unprocessable Entity. The task parameter does not name a valid workflow task. This error response may have one of the following | |
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
Parameter | Description |
---|---|
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
Status | Description |
---|---|
200 | OK |
OK. | |
Schema: task |
Status | Description |
---|---|
422 | Unprocessable Entity |
Unprocessable Entity. The task parameter does not name a valid workflow task. This error response may have one of the following | |
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
Parameter | Description |
---|---|
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
Status | Description |
---|---|
200 | OK |
OK. | |
Schema: task |
Status | Description |
---|---|
422 | Unprocessable Entity |
Unprocessable Entity. The task parameter does not name a valid workflow task. This error response may have one of the following | |
Schema: errorResponse |
API
Endpoints which describe this API
getLabels
Code samples
# You can also use wget<