NAV Navigation
Shell HTTP JavaScript Node.JS Ruby Python Java Go

Approvals v0.3.0

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

This API manages state-transition based approvals for Financial Institutions. Approval milestones are useful in confirming that part or all of a process is complete.

Examples of approvals may include Identity Verification Document approval or Account Application approval.

Approval States may be one of the following:

Allowed state transitions are:

An approval may only be deleted if its state is open or canceled. In order to change the state, use POST to the href in the corresponding links (apiture:approve, apiture:submit, apiture:reject, etc.) in the approval resource as described fully in the Approval schema.

All approval resources contain an approval type, a resource that is also managed in this API. Approval types provide financial institutions the ability to track, reconcile and group specific approvals. In addition, metadata regarding specific types of approvals can be stored on the approval type. Approval types may only be deleted if they are not in use by any existing approvals. Some examples of approval types may be specific documents releated to new account opening that need to be manually approved, account applications or transfer requests.

The target of the approval, which may be any resource, is not required but may be provided on the POST operation that creates the approval. This may be done in the _links with the link relation apiture:target. Alternatively, the content to be approved may be embedded within the attributes on the approval request. It will also be conveyed in the approval representation in the GET operation on the instance and the summary representation in the /approvals collection. Some target examples may include an account application or a document.

Additional data related to an approval or approval type may be stored in the resource's attributes. Attributes can be modified through PATCH and are not copied from the approval type to the approval.

Download OpenAPI Definition (YAML)

Base URLs:

Terms of service

Email: Apiture Web: Apiture

API

Endpoints which describe this API.

getApi

Code samples

# You can also use wget
curl -X GET /approvals/ \
  -H 'Accept: application/hal+json'

GET /approvals/ HTTP/1.1

Accept: application/hal+json

var headers = {
  'Accept':'application/hal+json'

};

$.ajax({
  url: '/approvals/',
  method: 'get',

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

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

const headers = {
  'Accept':'application/hal+json'

};

fetch('/approvals/',
{
  method: 'GET',

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

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/hal+json'
}

result = RestClient.get '/approvals/',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/hal+json'
}

r = requests.get('/approvals/', params={

}, headers = headers)

print r.json()

URL obj = new URL("/approvals/");
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"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/approvals/", data)
    req.Header = headers

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

Top-level resources and operations in this API

GET /

Return links to the top-level resources and operations in this API.

Try it

Fields marked with * are mandatory.

ParameterValue
MethodGET
* URL
* API Key
* Access Token

Response

Response Code:

Response Headers:

Response Body:

    
      Click on 'Try It' to get a response.
    
  

Example responses

200 Response

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

Responses

StatusDescription
200 OK
OK
Schema: root

getApiDoc

Code samples

# You can also use wget
curl -X GET /approvals/apiDoc \
  -H 'Accept: application/json'

GET /approvals/apiDoc HTTP/1.1

Accept: application/json

var headers = {
  'Accept':'application/json'

};

$.ajax({
  url: '/approvals/apiDoc',
  method: 'get',

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

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

const headers = {
  'Accept':'application/json'

};

fetch('/approvals/apiDoc',
{
  method: 'GET',

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

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json'
}

result = RestClient.get '/approvals/apiDoc',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json'
}

r = requests.get('/approvals/apiDoc', params={

}, headers = headers)

print r.json()

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

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/approvals/apiDoc", data)
    req.Header = headers

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

Return API definition document

GET /apiDoc

Return the OpenAPI document that describes this API.

Try it

Fields marked with * are mandatory.

ParameterValue
MethodGET
* URL
* API Key
* Access Token

Response

Response Code:

Response Headers:

Response Body:

    
      Click on 'Try It' to get a response.
    
  

Example responses

200 Response

{}

Responses

StatusDescription
200 OK
OK
Schema: Inline

Response Schema

Approval

getApprovals

Code samples

# You can also use wget
curl -X GET /approvals/approvals \
  -H 'Accept: application/hal+json'

GET /approvals/approvals HTTP/1.1

Accept: application/hal+json

var headers = {
  'Accept':'application/hal+json'

};

$.ajax({
  url: '/approvals/approvals',
  method: 'get',

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

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

const headers = {
  'Accept':'application/hal+json'

};

fetch('/approvals/approvals',
{
  method: 'GET',

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

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/hal+json'
}

result = RestClient.get '/approvals/approvals',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/hal+json'
}

r = requests.get('/approvals/approvals', params={

}, headers = headers)

print r.json()

URL obj = new URL("/approvals/approvals");
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"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/approvals/approvals", data)
    req.Header = headers

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

Return a collection of approvals

GET /approvals

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

Parameters

Parameter Description
start
(query)
integer(int64)
The zero-based index of the first approval item to include in this page. The default 0 denotes the beginning of the collection.
limit
(query)
integer(int32)
The maximum number of approval representations to return in this page.
sortBy
(query)
string
Optional sort criteria. See sort criteria format, such as ?sortBy=field1,-field2.
filter
(query)
string
Optional filter criteria. See filtering.
q
(query)
string
Optional search string. See searching.

Try it

Fields marked with * are mandatory.

ParameterValue
MethodGET
* URL
* API Key
* Access Token

start

limit

sortBy

filter

q

Response

Response Code:

Response Headers:

Response Body:

    
      Click on 'Try It' to get a response.
    
  

Example responses

200 Response

{
  "_profile": "http://api.apiture.com/schemas/basePath/approvals/v0.1.0/profile.json",
  "start": 10,
  "limit": 10,
  "count": 67,
  "name": "approvals",
  "_links": {
    "self": {
      "href": "/basePath/approvals?start=10&limit=10"
    },
    "first": {
      "href": "/basePath/approvals?start=0&limit=10"
    },
    "next": {
      "href": "/basePath/approvals?start=20&limit=10"
    },
    "collection": {
      "href": "/basePath/approvals"
    }
  },
  "_embedded": {
    "items": [
      {
        "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
        "_profile": "http://api.apiture.com/schemas/approvals/approvals/v0.1.0/profile.json",
        "_links": {
          "self": {
            "href": "/approvals/approvals/0399abed-fd3d-4830-a88b-30f38b8a365c"
          }
        },
        "state": "active",
        "done": true,
        "label": "Government Issued ID",
        "description": "A document that identifies a user",
        "reviewedBy": "/users/users/0399abed-fd3d-4830-a88b-30f38b8a365c",
        "reviewedAt": "2018-04-17T10:12:58.375Z"
      }
    ]
  }
}

Responses

StatusDescription
200 OK
OK
Schema: approvals
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
401 Unauthorized
Unauthorized. The request has not been applied because it lacks valid authentication credentials for the target resource.
Schema: errorResponse
422 Unprocessable Entity
Unprocessable Entity. One or more of the query parameters was well formed but otherwise invalid. The _error field in the response will contain details about the request error.
Schema: errorResponse

createApproval

Code samples

# You can also use wget
curl -X POST /approvals/approvals \
  -H 'Content-Type: application/hal+json' \
  -H 'Accept: application/hal+json'

POST /approvals/approvals HTTP/1.1

Content-Type: application/hal+json
Accept: application/hal+json

var headers = {
  'Content-Type':'application/hal+json',
  'Accept':'application/hal+json'

};

$.ajax({
  url: '/approvals/approvals',
  method: 'post',

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

const fetch = require('node-fetch');
const inputBody = '{
  "_profile": "http://api.apiture.com/schemas/basePath/approval/v1.0.0/profile.json"
}';
const headers = {
  'Content-Type':'application/hal+json',
  'Accept':'application/hal+json'

};

fetch('/approvals/approvals',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/hal+json',
  'Accept' => 'application/hal+json'
}

result = RestClient.post '/approvals/approvals',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/hal+json',
  'Accept': 'application/hal+json'
}

r = requests.post('/approvals/approvals', params={

}, headers = headers)

print r.json()

URL obj = new URL("/approvals/approvals");
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"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/approvals/approvals", data)
    req.Header = headers

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

Create a new approval

POST /approvals

Create a new approval in the approvals collection. The link to an Approval Type resource is required in order to create a new Approval resource. This link should be passed in the _links in the request with an apiture:approvalType key. The optional target of an approval may be passed on Approval create in either the _links with the link relation apiture:target or in attributes.

Body parameter

{
  "_profile": "http://api.apiture.com/schemas/basePath/approval/v1.0.0/profile.json"
}

Parameters

Parameter Description
body
(body)
createApproval (required)
The data necessary to create a new approval.

Try it

Fields marked with * are mandatory.

ParameterValue
MethodPOST
* URL
* API Key
* Access Token

* body

Response

Response Code:

Response Headers:

Response Body:

    
      Click on 'Try It' to get a response.
    
  

Example responses

201 Response

{
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "_profile": "http://api.apiture.com/schemas/approvals/approvals/v0.1.0/profile.json",
  "createdAt": "2018-04-17T10:04:46.375Z",
  "updatedAt": "2018-04-17T10:12:58.375Z",
  "_links": {
    "self": {
      "href": "/approvals/approvals/0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:approvalType": {
      "href": "/approvals/approvalTypes/e4f09b4d-eba6-46da-86d3-ba28595067cd"
    },
    "apiture:target": {
      "href": "/vault/files/e4f09b4d-eba6-46da-86d3-hjr434fuhe"
    }
  },
  "_embedded": {
    "approvalType": {
      "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
      "_profile": "http://api.apiture.com/schemas/approvals/approvalTypes/v0.1.0/profile.json",
      "_links": {
        "self": {
          "href": "/approvals/approvalTypes/0399abed-fd3d-4830-a88b-30f38b8a365c"
        }
      },
      "name": "governmentId",
      "label": "Government Issued ID",
      "description": "A document that identifies a user"
    }
  }
}

Responses

StatusDescription
201 Created
Created
Schema: approval
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
401 Unauthorized
Unauthorized. The request has not been applied because it lacks valid authentication credentials for the target resource.
Schema: errorResponse

Response Headers

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

getApproval

Code samples

# You can also use wget
curl -X GET /approvals/approvals/{approvalId} \
  -H 'Accept: application/hal+json' \
  -H 'If-None-Match: string'

GET /approvals/approvals/{approvalId} HTTP/1.1

Accept: application/hal+json
If-None-Match: string

var headers = {
  'Accept':'application/hal+json',
  'If-None-Match':'string'

};

$.ajax({
  url: '/approvals/approvals/{approvalId}',
  method: 'get',

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

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

const headers = {
  'Accept':'application/hal+json',
  'If-None-Match':'string'

};

fetch('/approvals/approvals/{approvalId}',
{
  method: 'GET',

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

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/hal+json',
  'If-None-Match' => 'string'
}

result = RestClient.get '/approvals/approvals/{approvalId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/hal+json',
  'If-None-Match': 'string'
}

r = requests.get('/approvals/approvals/{approvalId}', params={

}, headers = headers)

print r.json()

URL obj = new URL("/approvals/approvals/{approvalId}");
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"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/approvals/approvals/{approvalId}", data)
    req.Header = headers

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

Fetch a representation of this approval

GET /approvals/{approvalId}

Return a HAL representation of this approval resource.

Parameters

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

Try it

Fields marked with * are mandatory.

ParameterValue
MethodGET
* URL
* API Key
* Access Token

* approvalId

If-None-Match

Response

Response Code:

Response Headers:

Response Body:

    
      Click on 'Try It' to get a response.
    
  

Example responses

200 Response

{
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "_profile": "http://api.apiture.com/schemas/approvals/approvals/v0.1.0/profile.json",
  "createdAt": "2018-04-17T10:04:46.375Z",
  "updatedAt": "2018-04-17T10:12:58.375Z",
  "_links": {
    "self": {
      "href": "/approvals/approvals/0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:approvalType": {
      "href": "/approvals/approvalTypes/e4f09b4d-eba6-46da-86d3-ba28595067cd"
    },
    "apiture:target": {
      "href": "/vault/files/e4f09b4d-eba6-46da-86d3-hjr434fuhe"
    }
  },
  "_embedded": {
    "approvalType": {
      "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
      "_profile": "http://api.apiture.com/schemas/approvals/approvalTypes/v0.1.0/profile.json",
      "_links": {
        "self": {
          "href": "/approvals/approvalTypes/0399abed-fd3d-4830-a88b-30f38b8a365c"
        }
      },
      "name": "governmentId",
      "label": "Government Issued ID",
      "description": "A document that identifies a user"
    }
  }
}

Responses

StatusDescription
200 OK
OK
Schema: approval
304 Not Modified
Not Modified. The resource has not been modified since it was last fetched.
401 Unauthorized
Unauthorized. The request has not been applied because it lacks valid authentication credentials for the target resource.
Schema: errorResponse
404 Not Found
Not Found. There is no such approval resource at the specified {approvalId}. The _error field in the response will contain details about the request error.
Schema: errorResponse

Response Headers

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

updateApproval

Code samples

# You can also use wget
curl -X PUT /approvals/approvals/{approvalId} \
  -H 'Content-Type: application/hal+json' \
  -H 'Accept: application/hal+json' \
  -H 'If-Match: string'

PUT /approvals/approvals/{approvalId} HTTP/1.1

Content-Type: application/hal+json
Accept: application/hal+json
If-Match: string

var headers = {
  'Content-Type':'application/hal+json',
  'Accept':'application/hal+json',
  'If-Match':'string'

};

$.ajax({
  url: '/approvals/approvals/{approvalId}',
  method: 'put',

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

const fetch = require('node-fetch');
const inputBody = '{
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "_profile": "http://api.apiture.com/schemas/approvals/approvals/v1.0.0/profile.json"
}';
const headers = {
  'Content-Type':'application/hal+json',
  'Accept':'application/hal+json',
  'If-Match':'string'

};

fetch('/approvals/approvals/{approvalId}',
{
  method: 'PUT',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/hal+json',
  'Accept' => 'application/hal+json',
  'If-Match' => 'string'
}

result = RestClient.put '/approvals/approvals/{approvalId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/hal+json',
  'Accept': 'application/hal+json',
  'If-Match': 'string'
}

r = requests.put('/approvals/approvals/{approvalId}', params={

}, headers = headers)

print r.json()

URL obj = new URL("/approvals/approvals/{approvalId}");
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"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PUT", "/approvals/approvals/{approvalId}", data)
    req.Header = headers

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

Update this approval

PUT /approvals/{approvalId}

Perform a complete replacement of this approval.

Body parameter

{
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "_profile": "http://api.apiture.com/schemas/approvals/approvals/v1.0.0/profile.json"
}

Parameters

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

Try it

Fields marked with * are mandatory.

ParameterValue
MethodPUT
* URL
* API Key
* Access Token

* approvalId

If-Match

* body

Response

Response Code:

Response Headers:

Response Body:

    
      Click on 'Try It' to get a response.
    
  

Example responses

200 Response

{
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "_profile": "http://api.apiture.com/schemas/approvals/approvals/v0.1.0/profile.json",
  "createdAt": "2018-04-17T10:04:46.375Z",
  "updatedAt": "2018-04-17T10:12:58.375Z",
  "_links": {
    "self": {
      "href": "/approvals/approvals/0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:approvalType": {
      "href": "/approvals/approvalTypes/e4f09b4d-eba6-46da-86d3-ba28595067cd"
    },
    "apiture:target": {
      "href": "/vault/files/e4f09b4d-eba6-46da-86d3-hjr434fuhe"
    }
  },
  "_embedded": {
    "approvalType": {
      "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
      "_profile": "http://api.apiture.com/schemas/approvals/approvalTypes/v0.1.0/profile.json",
      "_links": {
        "self": {
          "href": "/approvals/approvalTypes/0399abed-fd3d-4830-a88b-30f38b8a365c"
        }
      },
      "name": "governmentId",
      "label": "Government Issued ID",
      "description": "A document that identifies a user"
    }
  }
}

Responses

StatusDescription
200 OK
OK
Schema: approval
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
401 Unauthorized
Unauthorized. The request has not been applied because it lacks valid authentication credentials for the target resource.
Schema: errorResponse
404 Not Found
Not Found. There is no such approval resource at the specified {approvalId}. The _error field in the response will contain details about the request error.
Schema: errorResponse
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
422 Unprocessable Entity
Unprocessable Entity. One or more of the query parameters was well formed but otherwise invalid. The _error field in the response will contain details about the request error.
Schema: errorResponse
428 Precondition Required
Precondition Required. The request did not include the required if-Match header. Resubmit with the operation, supplying the value of the ETag and the most recent state of the resource.
Schema: errorResponse

Response Headers

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

patchApproval

Code samples

# You can also use wget
curl -X PATCH /approvals/approvals/{approvalId} \
  -H 'Content-Type: application/hal+json' \
  -H 'Accept: application/hal+json' \
  -H 'If-Match: string'

PATCH /approvals/approvals/{approvalId} HTTP/1.1

Content-Type: application/hal+json
Accept: application/hal+json
If-Match: string

var headers = {
  'Content-Type':'application/hal+json',
  'Accept':'application/hal+json',
  'If-Match':'string'

};

$.ajax({
  url: '/approvals/approvals/{approvalId}',
  method: 'patch',

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

const fetch = require('node-fetch');
const inputBody = '{
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "_profile": "http://api.apiture.com/schemas/approvals/approvals/v1.0.0/profile.json"
}';
const headers = {
  'Content-Type':'application/hal+json',
  'Accept':'application/hal+json',
  'If-Match':'string'

};

fetch('/approvals/approvals/{approvalId}',
{
  method: 'PATCH',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/hal+json',
  'Accept' => 'application/hal+json',
  'If-Match' => 'string'
}

result = RestClient.patch '/approvals/approvals/{approvalId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/hal+json',
  'Accept': 'application/hal+json',
  'If-Match': 'string'
}

r = requests.patch('/approvals/approvals/{approvalId}', params={

}, headers = headers)

print r.json()

URL obj = new URL("/approvals/approvals/{approvalId}");
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"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PATCH", "/approvals/approvals/{approvalId}", data)
    req.Header = headers

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

Update this approval

PATCH /approvals/{approvalId}

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

Body parameter

{
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "_profile": "http://api.apiture.com/schemas/approvals/approvals/v1.0.0/profile.json"
}

Parameters

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

Try it

Fields marked with * are mandatory.

ParameterValue
MethodPATCH
* URL
* API Key
* Access Token

* approvalId

If-Match

* body

Response

Response Code:

Response Headers:

Response Body:

    
      Click on 'Try It' to get a response.
    
  

Example responses

200 Response

{
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "_profile": "http://api.apiture.com/schemas/approvals/approvals/v0.1.0/profile.json",
  "createdAt": "2018-04-17T10:04:46.375Z",
  "updatedAt": "2018-04-17T10:12:58.375Z",
  "_links": {
    "self": {
      "href": "/approvals/approvals/0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:approvalType": {
      "href": "/approvals/approvalTypes/e4f09b4d-eba6-46da-86d3-ba28595067cd"
    },
    "apiture:target": {
      "href": "/vault/files/e4f09b4d-eba6-46da-86d3-hjr434fuhe"
    }
  },
  "_embedded": {
    "approvalType": {
      "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
      "_profile": "http://api.apiture.com/schemas/approvals/approvalTypes/v0.1.0/profile.json",
      "_links": {
        "self": {
          "href": "/approvals/approvalTypes/0399abed-fd3d-4830-a88b-30f38b8a365c"
        }
      },
      "name": "governmentId",
      "label": "Government Issued ID",
      "description": "A document that identifies a user"
    }
  }
}

Responses

StatusDescription
200 OK
OK
Schema: approval
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
401 Unauthorized
Unauthorized. The request has not been applied because it lacks valid authentication credentials for the target resource.
Schema: errorResponse
404 Not Found
Not Found. There is no such approval resource at the specified {approvalId}. The _error field in the response will contain details about the request error.
Schema: errorResponse
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
422 Unprocessable Entity
Unprocessable Entity. One or more of the query parameters was well formed but otherwise invalid. The _error field in the response will contain details about the request error.
Schema: errorResponse
428 Precondition Required
Precondition Required. The request did not include the required if-Match header. Resubmit with the operation, supplying the value of the ETag and the most recent state of the resource.
Schema: errorResponse

Response Headers

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

deleteApproval

Code samples

# You can also use wget
curl -X DELETE /approvals/approvals/{approvalId} \
  -H 'Accept: application/hal+json'

DELETE /approvals/approvals/{approvalId} HTTP/1.1

Accept: application/hal+json

var headers = {
  'Accept':'application/hal+json'

};

$.ajax({
  url: '/approvals/approvals/{approvalId}',
  method: 'delete',

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

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

const headers = {
  'Accept':'application/hal+json'

};

fetch('/approvals/approvals/{approvalId}',
{
  method: 'DELETE',

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

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/hal+json'
}

result = RestClient.delete '/approvals/approvals/{approvalId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/hal+json'
}

r = requests.delete('/approvals/approvals/{approvalId}', params={

}, headers = headers)

print r.json()

URL obj = new URL("/approvals/approvals/{approvalId}");
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"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("DELETE", "/approvals/approvals/{approvalId}", data)
    req.Header = headers

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

Delete this approval resource

DELETE /approvals/{approvalId}

Delete this approval resource and any resources that are owned by it. an Approval may only be deleted if its state is open or canceled.

Parameters

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

Try it

Fields marked with * are mandatory.

ParameterValue
MethodDELETE
* URL
* API Key
* Access Token

* approvalId

Response

Response Code:

Response Headers:

Response Body:

    
      Click on 'Try It' to get a response.
    
  

Example responses

401 Response

{
  "_profile": "http://api.apiture.com/schemas/error/v1.0.0/profile.json",
  "_error": {
    "_id": "2eae46e1-575c-4d69-8a8f-0a7b0115a4b3",
    "_profile": "https://api.apiture.com/schemas/error/v1.0.0/profile.json",
    "message": "The value for deposit must be greater than 0.",
    "statusCode": 422,
    "type": "positiveNumberRequired",
    "attributes": {
      "value": -125.5
    },
    "remediation": "Provide a value which is greater than 0",
    "occurredAt": "2019-02-20T12:18:18.817Z",
    "_links": {
      "describedby": {
        "href": "http://doc.apiture.com/errors/positiveNumberRequired"
      }
    },
    "_embedded": {
      "errors": []
    }
  }
}

Responses

StatusDescription
204 No Content
No Content. The resource was deleted successfully.
401 Unauthorized
Unauthorized. The request has not been applied because it lacks valid authentication credentials for the target resource.
Schema: errorResponse

approveApproval

Code samples

# You can also use wget
curl -X POST /approvals/approvedApprovals?approval=string \
  -H 'Accept: application/hal+json' \
  -H 'If-Match: string'

POST /approvals/approvedApprovals?approval=string HTTP/1.1

Accept: application/hal+json
If-Match: string

var headers = {
  'Accept':'application/hal+json',
  'If-Match':'string'

};

$.ajax({
  url: '/approvals/approvedApprovals',
  method: 'post',
  data: '?approval=string',
  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

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

const headers = {
  'Accept':'application/hal+json',
  'If-Match':'string'

};

fetch('/approvals/approvedApprovals?approval=string',
{
  method: 'POST',

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

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/hal+json',
  'If-Match' => 'string'
}

result = RestClient.post '/approvals/approvedApprovals',
  params: {
  'approval' => 'string'
}, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/hal+json',
  'If-Match': 'string'
}

r = requests.post('/approvals/approvedApprovals', params={
  'approval': 'string'
}, headers = headers)

print r.json()

URL obj = new URL("/approvals/approvedApprovals?approval=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"},
        "If-Match": []string{"string"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/approvals/approvedApprovals", data)
    req.Header = headers

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

Approve an approval

POST /approvedApprovals

Approve an approval.

Only product types which are submitted may be approved.

This operation is invoked from the apiture:approve link on a product type when it is eligible to be approved.

This changes the state to approved.

Parameters

Parameter Description
approval
(query)
string (required)
A server-generated key which identifies an existing approval resource.
approvalUri
(query)
string
The URI of an existing approval which is eligible to be approved. Note: This parameter is deprecated and will be removed in the next version. Use ?approval= instead.
If-Match
(header)
string
The entity tag that was returned in the ETag response. This must match the current entity tag of the resource.

Try it

Fields marked with * are mandatory.

ParameterValue
MethodPOST
* URL
* API Key
* Access Token

* approval

approvalUri

If-Match

Response

Response Code:

Response Headers:

Response Body:

    
      Click on 'Try It' to get a response.
    
  

Example responses

200 Response

{
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "_profile": "http://api.apiture.com/schemas/approvals/approvals/v0.1.0/profile.json",
  "createdAt": "2018-04-17T10:04:46.375Z",
  "updatedAt": "2018-04-17T10:12:58.375Z",
  "_links": {
    "self": {
      "href": "/approvals/approvals/0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:approvalType": {
      "href": "/approvals/approvalTypes/e4f09b4d-eba6-46da-86d3-ba28595067cd"
    },
    "apiture:target": {
      "href": "/vault/files/e4f09b4d-eba6-46da-86d3-hjr434fuhe"
    }
  },
  "_embedded": {
    "approvalType": {
      "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
      "_profile": "http://api.apiture.com/schemas/approvals/approvalTypes/v0.1.0/profile.json",
      "_links": {
        "self": {
          "href": "/approvals/approvalTypes/0399abed-fd3d-4830-a88b-30f38b8a365c"
        }
      },
      "name": "governmentId",
      "label": "Government Issued ID",
      "description": "A document that identifies a user"
    }
  }
}

Responses

StatusDescription
200 OK
OK
Schema: approval
400 Bad Request
Bad Request. The approval or approvalUri parameter was malformed or does not refer to an approval.
401 Unauthorized
Unauthorized. The request has not been applied because it lacks valid authentication credentials for the target resource.
Schema: errorResponse
409 Conflict

Conflict. There is a conflict between the request and the current state of the resource. It may be one of the following:

  • The state of an Approval resource may only be changed in accordance with the state transitions described in this specification.
Schema: errorResponse
422 Unprocessable Entity
Unprocessable Entity. One or more of the query parameters was well formed but otherwise invalid. The _error field in the response will contain details about the request error.
Schema: errorResponse
428 Precondition Required
Precondition Required. The request did not include the required if-Match header. Resubmit with the operation, supplying the value of the ETag and the most recent state of the resource.
Schema: errorResponse

rejectApproval

Code samples

# You can also use wget
curl -X POST /approvals/rejectedApprovals?approval=string \
  -H 'Accept: application/hal+json' \
  -H 'If-Match: string'

POST /approvals/rejectedApprovals?approval=string HTTP/1.1

Accept: application/hal+json
If-Match: string

var headers = {
  'Accept':'application/hal+json',
  'If-Match':'string'

};

$.ajax({
  url: '/approvals/rejectedApprovals',
  method: 'post',
  data: '?approval=string',
  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

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

const headers = {
  'Accept':'application/hal+json',
  'If-Match':'string'

};

fetch('/approvals/rejectedApprovals?approval=string',
{
  method: 'POST',

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

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/hal+json',
  'If-Match' => 'string'
}

result = RestClient.post '/approvals/rejectedApprovals',
  params: {
  'approval' => 'string'
}, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/hal+json',
  'If-Match': 'string'
}

r = requests.post('/approvals/rejectedApprovals', params={
  'approval': 'string'
}, headers = headers)

print r.json()

URL obj = new URL("/approvals/rejectedApprovals?approval=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"},
        "If-Match": []string{"string"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/approvals/rejectedApprovals", data)
    req.Header = headers

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

Reject an approval

POST /rejectedApprovals

Reject an approval.

Only product types which are submitted may be rejected.

This operation is invoked from the apiture:reject link on a product type when it is eligible to be rejected.

This changes the state to rejected.

Parameters

Parameter Description
approval
(query)
string (required)
A server-generated key which identifies an existing approval resource.
approvalUri
(query)
string
The URI of an existing approval which is eligible to be rejected. Note: This parameter is deprecated and will be removed in the next version. Use ?approval= instead.
If-Match
(header)
string
The entity tag that was returned in the ETag response. This must match the current entity tag of the resource.

Try it

Fields marked with * are mandatory.

ParameterValue
MethodPOST
* URL
* API Key
* Access Token

* approval

approvalUri

If-Match

Response

Response Code:

Response Headers:

Response Body:

    
      Click on 'Try It' to get a response.
    
  

Example responses

200 Response

{
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "_profile": "http://api.apiture.com/schemas/approvals/approvals/v0.1.0/profile.json",
  "createdAt": "2018-04-17T10:04:46.375Z",
  "updatedAt": "2018-04-17T10:12:58.375Z",
  "_links": {
    "self": {
      "href": "/approvals/approvals/0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:approvalType": {
      "href": "/approvals/approvalTypes/e4f09b4d-eba6-46da-86d3-ba28595067cd"
    },
    "apiture:target": {
      "href": "/vault/files/e4f09b4d-eba6-46da-86d3-hjr434fuhe"
    }
  },
  "_embedded": {
    "approvalType": {
      "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
      "_profile": "http://api.apiture.com/schemas/approvals/approvalTypes/v0.1.0/profile.json",
      "_links": {
        "self": {
          "href": "/approvals/approvalTypes/0399abed-fd3d-4830-a88b-30f38b8a365c"
        }
      },
      "name": "governmentId",
      "label": "Government Issued ID",
      "description": "A document that identifies a user"
    }
  }
}

Responses

StatusDescription
200 OK
OK
Schema: approval
400 Bad Request
Bad Request. The approval or approvalUri was malformed or does not refer to an approval.
401 Unauthorized
Unauthorized. The request has not been applied because it lacks valid authentication credentials for the target resource.
Schema: errorResponse
409 Conflict

Conflict. There is a conflict between the request and the current state of the resource. It may be one of the following:

  • The state of an Approval resource may only be changed in accordance with the state transitions described in this specification.
Schema: errorResponse
422 Unprocessable Entity
Unprocessable Entity. One or more of the query parameters was well formed but otherwise invalid. The _error field in the response will contain details about the request error.
Schema: errorResponse
428 Precondition Required
Precondition Required. The request did not include the required if-Match header. Resubmit with the operation, supplying the value of the ETag and the most recent state of the resource.
Schema: errorResponse

waiveApproval

Code samples

# You can also use wget
curl -X POST /approvals/waivedApprovals?approval=string&approvalUri=string \
  -H 'Accept: application/hal+json' \
  -H 'If-Match: string'

POST /approvals/waivedApprovals?approval=string&approvalUri=string HTTP/1.1

Accept: application/hal+json
If-Match: string

var headers = {
  'Accept':'application/hal+json',
  'If-Match':'string'

};

$.ajax({
  url: '/approvals/waivedApprovals',
  method: 'post',
  data: '?approval=string&approvalUri=string',
  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

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

const headers = {
  'Accept':'application/hal+json',
  'If-Match':'string'

};

fetch('/approvals/waivedApprovals?approval=string&approvalUri=string',
{
  method: 'POST',

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

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/hal+json',
  'If-Match' => 'string'
}

result = RestClient.post '/approvals/waivedApprovals',
  params: {
  'approval' => 'string',
'approvalUri' => 'string'
}, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/hal+json',
  'If-Match': 'string'
}

r = requests.post('/approvals/waivedApprovals', params={
  'approval': 'string',  'approvalUri': 'string'
}, headers = headers)

print r.json()

URL obj = new URL("/approvals/waivedApprovals?approval=string&approvalUri=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"},
        "If-Match": []string{"string"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/approvals/waivedApprovals", data)
    req.Header = headers

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

Waive an approval

POST /waivedApprovals

Waive an approval.

Only product types which are open or submitted may be waived.

This operation is invoked from the apiture:waive link on a product type when it is eligible to be waived.

This changes the state to waived.

Parameters

Parameter Description
approval
(query)
string (required)
A server-generated key which identifies an existing approval resource.
approvalUri
(query)
string (required)
The URI of an existing approval which is eligible to be waived. Note: This parameter is deprecated and will be removed in the next version. Use ?approval= instead.
If-Match
(header)
string
The entity tag that was returned in the ETag response. This must match the current entity tag of the resource.

Try it

Fields marked with * are mandatory.

ParameterValue
MethodPOST
* URL
* API Key
* Access Token

* approval

* approvalUri

If-Match

Response

Response Code:

Response Headers:

Response Body:

    
      Click on 'Try It' to get a response.
    
  

Example responses

200 Response

{
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "_profile": "http://api.apiture.com/schemas/approvals/approvals/v0.1.0/profile.json",
  "createdAt": "2018-04-17T10:04:46.375Z",
  "updatedAt": "2018-04-17T10:12:58.375Z",
  "_links": {
    "self": {
      "href": "/approvals/approvals/0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:approvalType": {
      "href": "/approvals/approvalTypes/e4f09b4d-eba6-46da-86d3-ba28595067cd"
    },
    "apiture:target": {
      "href": "/vault/files/e4f09b4d-eba6-46da-86d3-hjr434fuhe"
    }
  },
  "_embedded": {
    "approvalType": {
      "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
      "_profile": "http://api.apiture.com/schemas/approvals/approvalTypes/v0.1.0/profile.json",
      "_links": {
        "self": {
          "href": "/approvals/approvalTypes/0399abed-fd3d-4830-a88b-30f38b8a365c"
        }
      },
      "name": "governmentId",
      "label": "Government Issued ID",
      "description": "A document that identifies a user"
    }
  }
}

Responses

StatusDescription
200 OK
OK
Schema: approval
400 Bad Request
Bad Request. The 'approvalorapprovalUri` was malformed or does not refer to an approval.
401 Unauthorized
Unauthorized. The request has not been applied because it lacks valid authentication credentials for the target resource.
Schema: errorResponse
409 Conflict

Conflict. There is a conflict between the request and the current state of the resource. It may be one of the following:

  • The state of an Approval resource may only be changed in accordance with the state transitions described in this specification.
Schema: errorResponse
422 Unprocessable Entity
Unprocessable Entity. One or more of the query parameters was well formed but otherwise invalid. The _error field in the response will contain details about the request error.
Schema: errorResponse
428 Precondition Required
Precondition Required. The request did not include the required if-Match header. Resubmit with the operation, supplying the value of the ETag and the most recent state of the resource.
Schema: errorResponse

submitApproval

Code samples

# You can also use wget
curl -X POST /approvals/submittedApprovals?approval=string&approvalUri=string \
  -H 'Accept: application/hal+json' \
  -H 'If-Match: string'

POST /approvals/submittedApprovals?approval=string&approvalUri=string HTTP/1.1

Accept: application/hal+json
If-Match: string

var headers = {
  'Accept':'application/hal+json',
  'If-Match':'string'

};

$.ajax({
  url: '/approvals/submittedApprovals',
  method: 'post',
  data: '?approval=string&approvalUri=string',
  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

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

const headers = {
  'Accept':'application/hal+json',
  'If-Match':'string'

};

fetch('/approvals/submittedApprovals?approval=string&approvalUri=string',
{
  method: 'POST',

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

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/hal+json',
  'If-Match' => 'string'
}

result = RestClient.post '/approvals/submittedApprovals',
  params: {
  'approval' => 'string',
'approvalUri' => 'string'
}, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/hal+json',
  'If-Match': 'string'
}

r = requests.post('/approvals/submittedApprovals', params={
  'approval': 'string',  'approvalUri': 'string'
}, headers = headers)

print r.json()

URL obj = new URL("/approvals/submittedApprovals?approval=string&approvalUri=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"},
        "If-Match": []string{"string"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/approvals/submittedApprovals", data)
    req.Header = headers

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

Submit an approval

POST /submittedApprovals

Submit an approval.

Only product types which are open or returned may be submitted.

This operation is invoked from the apiture:submit link on a product type when it is eligible to be submitted.

This changes the state to submitted.

Parameters

Parameter Description
approval
(query)
string (required)
A server-generated key which identifies an existing approval resource.
approvalUri
(query)
string (required)
The URI of an existing approval which is eligible to be submitted. Note: This parameter is deprecated and will be removed in the next version. Use ?approval= instead.
If-Match
(header)
string
The entity tag that was returned in the ETag response. This must match the current entity tag of the resource.

Try it

Fields marked with * are mandatory.

ParameterValue
MethodPOST
* URL
* API Key
* Access Token

* approval

* approvalUri

If-Match

Response

Response Code:

Response Headers:

Response Body:

    
      Click on 'Try It' to get a response.
    
  

Example responses

200 Response

{
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "_profile": "http://api.apiture.com/schemas/approvals/approvals/v0.1.0/profile.json",
  "createdAt": "2018-04-17T10:04:46.375Z",
  "updatedAt": "2018-04-17T10:12:58.375Z",
  "_links": {
    "self": {
      "href": "/approvals/approvals/0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:approvalType": {
      "href": "/approvals/approvalTypes/e4f09b4d-eba6-46da-86d3-ba28595067cd"
    },
    "apiture:target": {
      "href": "/vault/files/e4f09b4d-eba6-46da-86d3-hjr434fuhe"
    }
  },
  "_embedded": {
    "approvalType": {
      "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
      "_profile": "http://api.apiture.com/schemas/approvals/approvalTypes/v0.1.0/profile.json",
      "_links": {
        "self": {
          "href": "/approvals/approvalTypes/0399abed-fd3d-4830-a88b-30f38b8a365c"
        }
      },
      "name": "governmentId",
      "label": "Government Issued ID",
      "description": "A document that identifies a user"
    }
  }
}

Responses

StatusDescription
200 OK
OK
Schema: approval
400 Bad Request
Bad Request. The approval or approvalUri was malformed or does not refer to an approval.
401 Unauthorized
Unauthorized. The request has not been applied because it lacks valid authentication credentials for the target resource.
Schema: errorResponse
409 Conflict

Conflict. There is a conflict between the request and the current state of the resource. It may be one of the following:

  • The state of an Approval resource may only be changed in accordance with the state transitions described in this specification.
Schema: errorResponse
422 Unprocessable Entity
Unprocessable Entity. One or more of the query parameters was well formed but otherwise invalid. The _error field in the response will contain details about the request error.
Schema: errorResponse
428 Precondition Required
Precondition Required. The request did not include the required if-Match header. Resubmit with the operation, supplying the value of the ETag and the most recent state of the resource.
Schema: errorResponse

returnApproval

Code samples

# You can also use wget
curl -X POST /approvals/returnedApprovals?approval=string&approvalUri=string \
  -H 'Accept: application/hal+json' \
  -H 'If-Match: string'

POST /approvals/returnedApprovals?approval=string&approvalUri=string HTTP/1.1

Accept: application/hal+json
If-Match: string

var headers = {
  'Accept':'application/hal+json',
  'If-Match':'string'

};

$.ajax({
  url: '/approvals/returnedApprovals',
  method: 'post',
  data: '?approval=string&approvalUri=string',
  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

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

const headers = {
  'Accept':'application/hal+json',
  'If-Match':'string'

};

fetch('/approvals/returnedApprovals?approval=string&approvalUri=string',
{
  method: 'POST',

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

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/hal+json',
  'If-Match' => 'string'
}

result = RestClient.post '/approvals/returnedApprovals',
  params: {
  'approval' => 'string',
'approvalUri' => 'string'
}, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/hal+json',
  'If-Match': 'string'
}

r = requests.post('/approvals/returnedApprovals', params={
  'approval': 'string',  'approvalUri': 'string'
}, headers = headers)

print r.json()

URL obj = new URL("/approvals/returnedApprovals?approval=string&approvalUri=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"},
        "If-Match": []string{"string"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/approvals/returnedApprovals", data)
    req.Header = headers

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

Return an approval

POST /returnedApprovals

Return an approval.

Only product types which are submitted may be returned.

This operation is invoked from the apiture:return link on a product type when it is eligible to be returned.

This changes the state to returned.

Parameters

Parameter Description
approval
(query)
string (required)
A server-generated key which identifies an existing approval resource.
approvalUri
(query)
string (required)
The URI of an existing approval which is eligible to be returned. Note: This parameter is deprecated and will be removed in the next version. Use ?approval= instead.
If-Match
(header)
string
The entity tag that was returned in the ETag response. This must match the current entity tag of the resource.

Try it

Fields marked with * are mandatory.

ParameterValue
MethodPOST
* URL
* API Key
* Access Token

* approval

* approvalUri

If-Match

Response

Response Code:

Response Headers:

Response Body:

    
      Click on 'Try It' to get a response.
    
  

Example responses

200 Response

{
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "_profile": "http://api.apiture.com/schemas/approvals/approvals/v0.1.0/profile.json",
  "createdAt": "2018-04-17T10:04:46.375Z",
  "updatedAt": "2018-04-17T10:12:58.375Z",
  "_links": {
    "self": {
      "href": "/approvals/approvals/0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:approvalType": {
      "href": "/approvals/approvalTypes/e4f09b4d-eba6-46da-86d3-ba28595067cd"
    },
    "apiture:target": {
      "href": "/vault/files/e4f09b4d-eba6-46da-86d3-hjr434fuhe"
    }
  },
  "_embedded": {
    "approvalType": {
      "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
      "_profile": "http://api.apiture.com/schemas/approvals/approvalTypes/v0.1.0/profile.json",
      "_links": {
        "self": {
          "href": "/approvals/approvalTypes/0399abed-fd3d-4830-a88b-30f38b8a365c"
        }
      },
      "name": "governmentId",
      "label": "Government Issued ID",
      "description": "A document that identifies a user"
    }
  }
}

Responses

StatusDescription
200 OK
OK
Schema: approval
400 Bad Request
Bad Request. The approval or approvalUri was malformed or does not refer to an approval.
401 Unauthorized
Unauthorized. The request has not been applied because it lacks valid authentication credentials for the target resource.
Schema: errorResponse
409 Conflict

Conflict. There is a conflict between the request and the current state of the resource. It may be one of the following:

  • The state of an Approval resource may only be changed in accordance with the state transitions described in this specification.
Schema: errorResponse
422 Unprocessable Entity
Unprocessable Entity. One or more of the query parameters was well formed but otherwise invalid. The _error field in the response will contain details about the request error.
Schema: errorResponse
428 Precondition Required
Precondition Required. The request did not include the required if-Match header. Resubmit with the operation, supplying the value of the ETag and the most recent state of the resource.
Schema: errorResponse

cancelApproval

Code samples

# You can also use wget
curl -X POST /approvals/canceledApprovals?approval=string&approvalUri=string \
  -H 'Accept: application/hal+json' \
  -H 'If-Match: string'

POST /approvals/canceledApprovals?approval=string&approvalUri=string HTTP/1.1

Accept: application/hal+json
If-Match: string

var headers = {
  'Accept':'application/hal+json',
  'If-Match':'string'

};

$.ajax({
  url: '/approvals/canceledApprovals',
  method: 'post',
  data: '?approval=string&approvalUri=string',
  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

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

const headers = {
  'Accept':'application/hal+json',
  'If-Match':'string'

};

fetch('/approvals/canceledApprovals?approval=string&approvalUri=string',
{
  method: 'POST',

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

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/hal+json',
  'If-Match' => 'string'
}

result = RestClient.post '/approvals/canceledApprovals',
  params: {
  'approval' => 'string',
'approvalUri' => 'string'
}, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/hal+json',
  'If-Match': 'string'
}

r = requests.post('/approvals/canceledApprovals', params={
  'approval': 'string',  'approvalUri': 'string'
}, headers = headers)

print r.json()

URL obj = new URL("/approvals/canceledApprovals?approval=string&approvalUri=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"},
        "If-Match": []string{"string"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/approvals/canceledApprovals", data)
    req.Header = headers

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

Cancel an approval

POST /canceledApprovals

Cancel an approval.

Only product types which are open, submitted or returned may be canceled.

This operation is invoked from the apiture:cancel link on a product type when it is eligible to be cenceled.

This changes the state to canceled.

Parameters

Parameter Description
approval
(query)
string (required)
A server-generated key which identifies an existing approval resource.
approvalUri
(query)
string (required)
The URI of an existing approval which is eligible to be canceled. Note: This parameter is deprecated and will be removed in the next version. Use ?approval= instead.
If-Match
(header)
string
The entity tag that was returned in the ETag response. This must match the current entity tag of the resource.

Try it

Fields marked with * are mandatory.

ParameterValue
MethodPOST
* URL
* API Key
* Access Token

* approval

* approvalUri

If-Match

Response

Response Code:

Response Headers:

Response Body:

    
      Click on 'Try It' to get a response.
    
  

Example responses

200 Response

{
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "_profile": "http://api.apiture.com/schemas/approvals/approvals/v0.1.0/profile.json",
  "createdAt": "2018-04-17T10:04:46.375Z",
  "updatedAt": "2018-04-17T10:12:58.375Z",
  "_links": {
    "self": {
      "href": "/approvals/approvals/0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:approvalType": {
      "href": "/approvals/approvalTypes/e4f09b4d-eba6-46da-86d3-ba28595067cd"
    },
    "apiture:target": {
      "href": "/vault/files/e4f09b4d-eba6-46da-86d3-hjr434fuhe"
    }
  },
  "_embedded": {
    "approvalType": {
      "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
      "_profile": "http://api.apiture.com/schemas/approvals/approvalTypes/v0.1.0/profile.json",
      "_links": {
        "self": {
          "href": "/approvals/approvalTypes/0399abed-fd3d-4830-a88b-30f38b8a365c"
        }
      },
      "name": "governmentId",
      "label": "Government Issued ID",
      "description": "A document that identifies a user"
    }
  }
}

Responses

StatusDescription
200 OK
OK
Schema: approval
400 Bad Request
Bad Request. The approval or approvalUri was malformed or does not refer to an approval.
401 Unauthorized
Unauthorized. The request has not been applied because it lacks valid authentication credentials for the target resource.
Schema: errorResponse
409 Conflict

Conflict. There is a conflict between the request and the current state of the resource. It may be one of the following:

  • The state of an Approval resource may only be changed in accordance with the state transitions described in this specification.
Schema: errorResponse
422 Unprocessable Entity
Unprocessable Entity. One or more of the query parameters was well formed but otherwise invalid. The _error field in the response will contain details about the request error.
Schema: errorResponse
428 Precondition Required
Precondition Required. The request did not include the required if-Match header. Resubmit with the operation, supplying the value of the ETag and the most recent state of the resource.
Schema: errorResponse

Approval Type

getApprovalTypes

Code samples

# You can also use wget
curl -X GET /approvals/approvalTypes \
  -H 'Accept: application/hal+json'

GET /approvals/approvalTypes HTTP/1.1

Accept: application/hal+json

var headers = {
  'Accept':'application/hal+json'

};

$.ajax({
  url: '/approvals/approvalTypes',
  method: 'get',

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

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

const headers = {
  'Accept':'application/hal+json'

};

fetch('/approvals/approvalTypes',
{
  method: 'GET',

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

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/hal+json'
}

result = RestClient.get '/approvals/approvalTypes',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/hal+json'
}

r = requests.get('/approvals/approvalTypes', params={

}, headers = headers)

print r.json()

URL obj = new URL("/approvals/approvalTypes");
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"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/approvals/approvalTypes", data)
    req.Header = headers

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

Return a collection of approval types

GET /approvalTypes

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

Parameters

Parameter Description
start
(query)
integer(int64)
The zero-based index of the first approval type item to include in this page. The default 0 denotes the beginning of the collection.
limit
(query)
integer(int32)
The maximum number of approval type representations to return in this page.
sortBy
(query)
string
Optional sort criteria. See sort criteria format, such as ?sortBy=field1,-field2.
filter
(query)
string
Optional filter criteria. See filtering.
q
(query)
string
Optional search string. See searching.

Try it

Fields marked with * are mandatory.

ParameterValue
MethodGET
* URL
* API Key
* Access Token

start

limit

sortBy

filter

q

Response

Response Code:

Response Headers:

Response Body:

    
      Click on 'Try It' to get a response.
    
  

Example responses

200 Response

{
  "_profile": "http://api.apiture.com/schemas/basePath/approvalTypes/v0.1.0/profile.json",
  "start": 10,
  "limit": 10,
  "count": 67,
  "name": "approvalTypes",
  "_links": {
    "self": {
      "href": "/basePath/approvalTypes?start=10&limit=10"
    },
    "first": {
      "href": "/basePath/approvalTypes?start=0&limit=10"
    },
    "next": {
      "href": "/basePath/approvalTypes?start=20&limit=10"
    },
    "collection": {
      "href": "/basePath/approvalTypes"
    }
  },
  "_embedded": {
    "items": [
      {
        "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
        "_profile": "http://api.apiture.com/schemas/approvals/approvalTypes/v0.1.0/profile.json",
        "_links": {
          "self": {
            "href": "/approvals/approvalTypes/0399abed-fd3d-4830-a88b-30f38b8a365c"
          }
        },
        "name": "governmentId",
        "label": "Government Issued ID",
        "description": "A document that identifies a user"
      }
    ]
  }
}

Responses

StatusDescription
200 OK
OK
Schema: approvalTypes
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
401 Unauthorized
Unauthorized. The request has not been applied because it lacks valid authentication credentials for the target resource.
Schema: errorResponse
422 Unprocessable Entity
Unprocessable Entity. One or more of the query parameters was well formed but otherwise invalid. The _error field in the response will contain details about the request error.
Schema: errorResponse

createApprovalType

Code samples

# You can also use wget
curl -X POST /approvals/approvalTypes \
  -H 'Content-Type: application/hal+json' \
  -H 'Accept: application/hal+json'

POST /approvals/approvalTypes HTTP/1.1

Content-Type: application/hal+json
Accept: application/hal+json

var headers = {
  'Content-Type':'application/hal+json',
  'Accept':'application/hal+json'

};

$.ajax({
  url: '/approvals/approvalTypes',
  method: 'post',

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

const fetch = require('node-fetch');
const inputBody = '{
  "_profile": "http://api.apiture.com/schemas/basePath/approvalTypes/v1.0.0/profile.json"
}';
const headers = {
  'Content-Type':'application/hal+json',
  'Accept':'application/hal+json'

};

fetch('/approvals/approvalTypes',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/hal+json',
  'Accept' => 'application/hal+json'
}

result = RestClient.post '/approvals/approvalTypes',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/hal+json',
  'Accept': 'application/hal+json'
}

r = requests.post('/approvals/approvalTypes', params={

}, headers = headers)

print r.json()

URL obj = new URL("/approvals/approvalTypes");
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"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/approvals/approvalTypes", data)
    req.Header = headers

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

Create a new approval type

POST /approvalTypes

Create a new approval type in the approval types collection.

Body parameter

{
  "_profile": "http://api.apiture.com/schemas/basePath/approvalTypes/v1.0.0/profile.json"
}

Parameters

Parameter Description
body
(body)
createApprovalType (required)
The data necessary to create a new approval type.

Try it

Fields marked with * are mandatory.

ParameterValue
MethodPOST
* URL
* API Key
* Access Token

* body

Response

Response Code:

Response Headers:

Response Body:

    
      Click on 'Try It' to get a response.
    
  

Example responses

201 Response

{
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "_profile": "http://api.apiture.com/schemas/approvals/approvalTypes/v1.0.0/profile.json",
  "createdAt": "2019-02-20T12:18:24Z",
  "updatedAt": "2019-02-20T12:18:24Z"
}

Responses

StatusDescription
201 Created
Created
Schema: approvalType
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
401 Unauthorized
Unauthorized. The request has not been applied because it lacks valid authentication credentials for the target resource.
Schema: errorResponse
409 Conflict

Conflict. There is a conflict between the request and the current state of the resource. It may be one of the following:

  • The name and domain of the Approval Type must be a unique combination within the FI Approval Type Resources.
  • The Approval Type is in use and cannot be deleted.
Schema: errorResponse

Response Headers

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

getApprovalType

Code samples

# You can also use wget
curl -X GET /approvals/approvalTypes/{approvalTypeId} \
  -H 'Accept: application/hal+json' \
  -H 'If-None-Match: string'

GET /approvals/approvalTypes/{approvalTypeId} HTTP/1.1

Accept: application/hal+json
If-None-Match: string

var headers = {
  'Accept':'application/hal+json',
  'If-None-Match':'string'

};

$.ajax({
  url: '/approvals/approvalTypes/{approvalTypeId}',
  method: 'get',

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

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

const headers = {
  'Accept':'application/hal+json',
  'If-None-Match':'string'

};

fetch('/approvals/approvalTypes/{approvalTypeId}',
{
  method: 'GET',

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

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/hal+json',
  'If-None-Match' => 'string'
}

result = RestClient.get '/approvals/approvalTypes/{approvalTypeId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/hal+json',
  'If-None-Match': 'string'
}

r = requests.get('/approvals/approvalTypes/{approvalTypeId}', params={

}, headers = headers)

print r.json()

URL obj = new URL("/approvals/approvalTypes/{approvalTypeId}");
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"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/approvals/approvalTypes/{approvalTypeId}", data)
    req.Header = headers

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

Fetch a representation of this approval type

GET /approvalTypes/{approvalTypeId}

Return a HAL representation of this approval type resource.

Parameters

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

Try it

Fields marked with * are mandatory.

ParameterValue
MethodGET
* URL
* API Key
* Access Token

* approvalTypeId

If-None-Match

Response

Response Code:

Response Headers:

Response Body:

    
      Click on 'Try It' to get a response.
    
  

Example responses

200 Response

{
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "_profile": "http://api.apiture.com/schemas/approvals/approvalTypes/v1.0.0/profile.json",
  "createdAt": "2019-02-20T12:18:24Z",
  "updatedAt": "2019-02-20T12:18:24Z"
}

Responses

StatusDescription
200 OK
OK
Schema: approvalType
304 Not Modified
Not Modified. The resource has not been modified since it was last fetched.
401 Unauthorized
Unauthorized. The request has not been applied because it lacks valid authentication credentials for the target resource.
Schema: errorResponse
404 Not Found
Not Found. There is no such approval type resource at the specified {approvalTypeId}. The _error field in the response will contain details about the request error.
Schema: errorResponse

Response Headers

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

updateApprovalType

Code samples

# You can also use wget
curl -X PUT /approvals/approvalTypes/{approvalTypeId} \
  -H 'Content-Type: application/hal+json' \
  -H 'Accept: application/hal+json' \
  -H 'If-Match: string'

PUT /approvals/approvalTypes/{approvalTypeId} HTTP/1.1

Content-Type: application/hal+json
Accept: application/hal+json
If-Match: string

var headers = {
  'Content-Type':'application/hal+json',
  'Accept':'application/hal+json',
  'If-Match':'string'

};

$.ajax({
  url: '/approvals/approvalTypes/{approvalTypeId}',
  method: 'put',

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

const fetch = require('node-fetch');
const inputBody = '{
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "_profile": "http://api.apiture.com/schemas/approvals/approvalTypes/v1.0.0/profile.json"
}';
const headers = {
  'Content-Type':'application/hal+json',
  'Accept':'application/hal+json',
  'If-Match':'string'

};

fetch('/approvals/approvalTypes/{approvalTypeId}',
{
  method: 'PUT',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/hal+json',
  'Accept' => 'application/hal+json',
  'If-Match' => 'string'
}

result = RestClient.put '/approvals/approvalTypes/{approvalTypeId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/hal+json',
  'Accept': 'application/hal+json',
  'If-Match': 'string'
}

r = requests.put('/approvals/approvalTypes/{approvalTypeId}', params={

}, headers = headers)

print r.json()

URL obj = new URL("/approvals/approvalTypes/{approvalTypeId}");
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"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PUT", "/approvals/approvalTypes/{approvalTypeId}", data)
    req.Header = headers

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

Update this approval type

PUT /approvalTypes/{approvalTypeId}

Perform a complete replacement of this approval type.

Body parameter

{
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "_profile": "http://api.apiture.com/schemas/approvals/approvalTypes/v1.0.0/profile.json"
}

Parameters

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

Try it

Fields marked with * are mandatory.

ParameterValue
MethodPUT
* URL
* API Key
* Access Token

* approvalTypeId

If-Match

* body

Response

Response Code:

Response Headers:

Response Body:

    
      Click on 'Try It' to get a response.
    
  

Example responses

200 Response

{
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "_profile": "http://api.apiture.com/schemas/approvals/approvalTypes/v1.0.0/profile.json",
  "createdAt": "2019-02-20T12:18:24Z",
  "updatedAt": "2019-02-20T12:18:24Z"
}

Responses

StatusDescription
200 OK
OK
Schema: approvalType
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
401 Unauthorized
Unauthorized. The request has not been applied because it lacks valid authentication credentials for the target resource.
Schema: errorResponse
404 Not Found
Not Found. There is no such approval type resource at the specified {approvalTypeId}. The _error field in the response will contain details about the request error.
Schema: errorResponse
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
422 Unprocessable Entity
Unprocessable Entity. One or more of the query parameters was well formed but otherwise invalid. The _error field in the response will contain details about the request error.
Schema: errorResponse
428 Precondition Required
Precondition Required. The request did not include the required if-Match header. Resubmit with the operation, supplying the value of the ETag and the most recent state of the resource.
Schema: errorResponse

Response Headers

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

patchApprovalType

Code samples

# You can also use wget
curl -X PATCH /approvals/approvalTypes/{approvalTypeId} \
  -H 'Content-Type: application/hal+json' \
  -H 'Accept: application/hal+json' \
  -H 'If-Match: string'

PATCH /approvals/approvalTypes/{approvalTypeId} HTTP/1.1

Content-Type: application/hal+json
Accept: application/hal+json
If-Match: string

var headers = {
  'Content-Type':'application/hal+json',
  'Accept':'application/hal+json',
  'If-Match':'string'

};

$.ajax({
  url: '/approvals/approvalTypes/{approvalTypeId}',
  method: 'patch',

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

const fetch = require('node-fetch');
const inputBody = '{
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "_profile": "http://api.apiture.com/schemas/approvals/approvalTypes/v1.0.0/profile.json"
}';
const headers = {
  'Content-Type':'application/hal+json',
  'Accept':'application/hal+json',
  'If-Match':'string'

};

fetch('/approvals/approvalTypes/{approvalTypeId}',
{
  method: 'PATCH',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/hal+json',
  'Accept' => 'application/hal+json',
  'If-Match' => 'string'
}

result = RestClient.patch '/approvals/approvalTypes/{approvalTypeId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/hal+json',
  'Accept': 'application/hal+json',
  'If-Match': 'string'
}

r = requests.patch('/approvals/approvalTypes/{approvalTypeId}', params={

}, headers = headers)

print r.json()

URL obj = new URL("/approvals/approvalTypes/{approvalTypeId}");
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"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PATCH", "/approvals/approvalTypes/{approvalTypeId}", data)
    req.Header = headers

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

Update this approval type

PATCH /approvalTypes/{approvalTypeId}

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

Body parameter

{
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "_profile": "http://api.apiture.com/schemas/approvals/approvalTypes/v1.0.0/profile.json"
}

Parameters

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

Try it

Fields marked with * are mandatory.

ParameterValue
MethodPATCH
* URL
* API Key
* Access Token

* approvalTypeId

If-Match

* body

Response

Response Code:

Response Headers:

Response Body:

    
      Click on 'Try It' to get a response.
    
  

Example responses

200 Response

{
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "_profile": "http://api.apiture.com/schemas/approvals/approvalTypes/v1.0.0/profile.json",
  "createdAt": "2019-02-20T12:18:24Z",
  "updatedAt": "2019-02-20T12:18:24Z"
}

Responses

StatusDescription
200 OK
OK
Schema: approvalType
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
401 Unauthorized
Unauthorized. The request has not been applied because it lacks valid authentication credentials for the target resource.
Schema: errorResponse
404 Not Found
Not Found. There is no such approval type resource at the specified {approvalTypeId}. The _error field in the response will contain details about the request error.
Schema: errorResponse
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
422 Unprocessable Entity
Unprocessable Entity. One or more of the query parameters was well formed but otherwise invalid. The _error field in the response will contain details about the request error.
Schema: errorResponse
428 Precondition Required
Precondition Required. The request did not include the required if-Match header. Resubmit with the operation, supplying the value of the ETag and the most recent state of the resource.
Schema: errorResponse

Response Headers

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

deleteApprovalType

Code samples

# You can also use wget
curl -X DELETE /approvals/approvalTypes/{approvalTypeId} \
  -H 'Accept: application/hal+json'

DELETE /approvals/approvalTypes/{approvalTypeId} HTTP/1.1

Accept: application/hal+json

var headers = {
  'Accept':'application/hal+json'

};

$.ajax({
  url: '/approvals/approvalTypes/{approvalTypeId}',
  method: 'delete',

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

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

const headers = {
  'Accept':'application/hal+json'

};

fetch('/approvals/approvalTypes/{approvalTypeId}',
{
  method: 'DELETE',

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

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/hal+json'
}

result = RestClient.delete '/approvals/approvalTypes/{approvalTypeId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/hal+json'
}

r = requests.delete('/approvals/approvalTypes/{approvalTypeId}', params={

}, headers = headers)

print r.json()

URL obj = new URL("/approvals/approvalTypes/{approvalTypeId}");
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"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("DELETE", "/approvals/approvalTypes/{approvalTypeId}", data)
    req.Header = headers

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

Delete this approval type resource

DELETE /approvalTypes/{approvalTypeId}

Delete this approval type resource and any resources that are owned by it. Deleting an Approval Type is only allowed if it is not in use by any existing Approvals.

Parameters

Parameter Description
approvalTypeId
(path)
string (required)
The unique identifier of this approval type. This is an opaque string.

Try it

Fields marked with * are mandatory.

ParameterValue
MethodDELETE
* URL
* API Key
* Access Token

* approvalTypeId

Response

Response Code:

Response Headers:

Response Body:

    
      Click on 'Try It' to get a response.
    
  

Example responses

401 Response

{
  "_profile": "http://api.apiture.com/schemas/error/v1.0.0/profile.json",
  "_error": {
    "_id": "2eae46e1-575c-4d69-8a8f-0a7b0115a4b3",
    "_profile": "https://api.apiture.com/schemas/error/v1.0.0/profile.json",
    "message": "The value for deposit must be greater than 0.",
    "statusCode": 422,
    "type": "positiveNumberRequired",
    "attributes": {
      "value": -125.5
    },
    "remediation": "Provide a value which is greater than 0",
    "occurredAt": "2019-02-20T12:18:18.817Z",
    "_links": {
      "describedby": {
        "href": "http://doc.apiture.com/errors/positiveNumberRequired"
      }
    },
    "_embedded": {
      "errors": []
    }
  }
}

Responses

StatusDescription
204 No Content
No Content. The resource was deleted successfully.
401 Unauthorized
Unauthorized. The request has not been applied because it lacks valid authentication credentials for the target resource.
Schema: errorResponse
409 Conflict

Conflict. There is a conflict between the request and the current state of the resource. It may be one of the following:

  • The name and domain of the Approval Type must be a unique combination within the FI Approval Type Resources.
  • The Approval Type is in use and cannot be deleted.
Schema: errorResponse

Schemas

approvalFields

{
  "state": "active",
  "done": true,
  "label": "Government Issued ID",
  "typeName": "governmentId",
  "description": "A document that identifies a user",
  "reviewedBy": "/users/users/0399abed-fd3d-4830-a88b-30f38b8a365c",
  "reviewedAt": "2018-04-17T10:12:58.375Z"
}

Approval Fields

Properties

Schema NameDescription
label string
The approval's common name. If ommitted on create request, this will default to the label of the Approval Type.
description string
The approval's description. If ommitted on create request, this will default to the description of the Approval Type.
state string
The approval's state.

  • open Created but pending input subject to approval
  • submitted Pending review by approver
  • approved Approval granted
  • rejected Approval denied
  • waived Approval forgiven
  • returned Approver returns approval for modification
  • canceled Approval request withdrawn

This is an immutable and derived property. It's value can only be changed by using the corresponding POST operations, submitApproval, approveApproval, rejectApproval, waiveApproval, returnApproval, and cancelApproval.

done boolean
Inferred done flag. If done is true, the approval is in a terminal state and may no longer be acted upon. Done states include canceled, approved, waived or rejected.
typeName string
The name of the Approval Type. This field is immutable and derived from the name of the Approval Type.
reviewedBy string
The id of the User that reviewed the approval.
reviewedAt string(date-time)
The date-time when the approval was reviewed.

Enumerated Values

Property Value
state open
state submitted
state approved
state rejected
state waived
state returned
state canceled

createApproval

{
  "_profile": "http://api.apiture.com/schemas/basePath/approval/v1.0.0/profile.json"
}

Create Approval

Properties

Schema NameDescription
Create Approval any
Representation used to create a new approval. A link to an apiture:approvalType is required to perform this operation. An optional apiture:target link may also be specified to represent the target resource for the approval. The target can be any resource, for example, an account application or a document.

allOf

Schema NameDescription
anonymous abstractResource
An augmented HAL resource representation. This model contains hypermedia _links, and either optional domain object data with _profile and optional _embedded objects, or an _error object. In responses, if the operation was successful, this object will not include the _error, but if the operation was a 4xx or 5xx error, this object will not include _embedded or any data fields, only _error and optionally _links.

and

Schema NameDescription
anonymous approvalFields
Common fields of the approval resource used to build other model schemas.

and

Schema NameDescription
anonymous object
undefined
attributes object
An optional map of name/value pairs which provide additional metadata about the approval.

summaryApproval

{
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "_profile": "http://api.apiture.com/schemas/approvals/approvals/v1.0.0/profile.json",
  "_links": {
    "self": {
      "href": "/approvals/approvals/0399abed-fd3d-4830-a88b-30f38b8a365c"
    }
  }
}

Approval Summary

Properties

Schema NameDescription
Approval Summary any
Summary representation of an approval resource in approvals collections. This representation normally does not contain any _embedded objects. If needed, call the GET operation on the item's self link to get _embedded objects.

allOf

Schema NameDescription
anonymous abstractResource
An augmented HAL resource representation. This model contains hypermedia _links, and either optional domain object data with _profile and optional _embedded objects, or an _error object. In responses, if the operation was successful, this object will not include the _error, but if the operation was a 4xx or 5xx error, this object will not include _embedded or any data fields, only _error and optionally _links.

and

Schema NameDescription
anonymous approvalFields
Common fields of the approval resource used to build other model schemas.

and

Schema NameDescription
anonymous object
undefined
_id string
The unique identifier for this approval resource. This is an immutable opaque string.

updateApproval

{
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "_profile": "http://api.apiture.com/schemas/approvals/approvals/v1.0.0/profile.json"
}

Update Approval

Properties

Schema NameDescription
Update Approval any
Representation used to update or patch an approval. The state field is immutable and not updated by this operation, but by the state transition POST operations such as approve or reject (ex. apiture:approve and apiture:reject).

allOf

Schema NameDescription
anonymous summaryApproval
Summary representation of an approval resource in approvals collections. This representation normally does not contain any _embedded objects. If needed, call the GET operation on the item's self link to get _embedded objects.

and

Schema NameDescription
anonymous object
undefined
attributes object
An optional map of name/value pairs which provide additional metadata about the approval.

approval

{
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "_profile": "http://api.apiture.com/schemas/approvals/approvals/v0.1.0/profile.json",
  "createdAt": "2018-04-17T10:04:46.375Z",
  "updatedAt": "2018-04-17T10:12:58.375Z",
  "_links": {
    "self": {
      "href": "/approvals/approvals/0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:approvalType": {
      "href": "/approvals/approvalTypes/e4f09b4d-eba6-46da-86d3-ba28595067cd"
    },
    "apiture:target": {
      "href": "/vault/files/e4f09b4d-eba6-46da-86d3-hjr434fuhe"
    }
  },
  "_embedded": {
    "approvalType": {
      "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
      "_profile": "http://api.apiture.com/schemas/approvals/approvalTypes/v0.1.0/profile.json",
      "_links": {
        "self": {
          "href": "/approvals/approvalTypes/0399abed-fd3d-4830-a88b-30f38b8a365c"
        }
      },
      "name": "governmentId",
      "label": "Government Issued ID",
      "description": "A document that identifies a user"
    }
  }
}

Approval

Properties

Schema NameDescription
Approval any
An approval represents the review of some process, activity or resource, such as a document or an application. The state of the approval is recorded in its state property. The target of the approval is in the link named apiture:target; see the Create Approval schema and createApproval operation. Links on an approval convey which state transitions are available. These links are:

  • apiture:approve -- mark the review request as approved
  • apiture:reject -- to reject the approval request
  • apiture:waive -- to waive the approval requirements. For example, rather than requiring a specific identity verification document to be approved, waiving the requirement means the document does not have to be provided.
  • apiture:return -- to return the request so the client can update the request or resource, then resubmit the request for approval
  • apiture:submit -- to submit a new request for appoval, or resubmit a request after it has been returned
  • apiture:cancel -- to cancel the request for review/approval

The client should use POST to invoke these operations, using the href on the named link object. No request body is used on these operations.

The absence of a link indicates that the particular state transition is not available at that time or that the caller is not authorized to make the change. For example, a user may lack permissions to approve a wire transfer they submitted.

allOf

Schema NameDescription
anonymous updateApproval
Representation used to update or patch an approval. The state field is immutable and not updated by this operation, but by the state transition POST operations such as approve or reject (ex. apiture:approve and apiture:reject).

and

Schema NameDescription
anonymous object
undefined
createdAt string(date-time)
The date-time when the approval was created.
updatedAt string(date-time)
The date-time when the approval was updated
_embedded object
The objects which participate in this association
approvalType summaryApprovalType
The role for this association

approvals

{
  "_profile": "http://api.apiture.com/schemas/basePath/approvals/v0.1.0/profile.json",
  "start": 10,
  "limit": 10,
  "count": 67,
  "name": "approvals",
  "_links": {
    "self": {
      "href": "/basePath/approvals?start=10&limit=10"
    },
    "first": {
      "href": "/basePath/approvals?start=0&limit=10"
    },
    "next": {
      "href": "/basePath/approvals?start=20&limit=10"
    },
    "collection": {
      "href": "/basePath/approvals"
    }
  },
  "_embedded": {
    "items": [
      {
        "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
        "_profile": "http://api.apiture.com/schemas/approvals/approvals/v0.1.0/profile.json",
        "_links": {
          "self": {
            "href": "/approvals/approvals/0399abed-fd3d-4830-a88b-30f38b8a365c"
          }
        },
        "state": "active",
        "done": true,
        "label": "Government Issued ID",
        "description": "A document that identifies a user",
        "reviewedBy": "/users/users/0399abed-fd3d-4830-a88b-30f38b8a365c",
        "reviewedAt": "2018-04-17T10:12:58.375Z"
      }
    ]
  }
}

Approval Collection

Properties

Schema NameDescription
Approval Collection any
Collection of approvals. The items in the collection are ordered in the _embedded.items array; the name is approvals. The top-level _links object may contain pagination links (self, next, prev, first, last, collection.)

allOf

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

and

Schema NameDescription
anonymous object
undefined
_embedded object
undefined
items [summaryApproval]
An array containing a page of approval items.

approvalTypeFields

{
  "name": "governmentId",
  "label": "Government Issued ID",
  "description": "A document that identifies a user",
  "domain": "http://api.apiture.com/domains/approvals/documentRequirement"
}

Approval Type Fields

Properties

Schema NameDescription
name string
The approval's name.
label string
The approval's common name.
description string
The approval's description.
domain string
A namespace for grouping related resources, to keep them separate from other resources. For example, a department or bank branch may define a domain, and all Approval Type instances they define will use that domain, so that they can avoid conflicting with Approval Type names in other domains. An API or service may define a domain for Approval Types that it defines. The combination of domain and name must be unique within the set of all resources of this type. It is a best practice to define domains with URIs.

approvalTypes

{
  "_profile": "http://api.apiture.com/schemas/basePath/approvalTypes/v0.1.0/profile.json",
  "start": 10,
  "limit": 10,
  "count": 67,
  "name": "approvalTypes",
  "_links": {
    "self": {
      "href": "/basePath/approvalTypes?start=10&limit=10"
    },
    "first": {
      "href": "/basePath/approvalTypes?start=0&limit=10"
    },
    "next": {
      "href": "/basePath/approvalTypes?start=20&limit=10"
    },
    "collection": {
      "href": "/basePath/approvalTypes"
    }
  },
  "_embedded": {
    "items": [
      {
        "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
        "_profile": "http://api.apiture.com/schemas/approvals/approvalTypes/v0.1.0/profile.json",
        "_links": {
          "self": {
            "href": "/approvals/approvalTypes/0399abed-fd3d-4830-a88b-30f38b8a365c"
          }
        },
        "name": "governmentId",
        "label": "Government Issued ID",
        "description": "A document that identifies a user"
      }
    ]
  }
}

Approval Types Collection

Properties

Schema NameDescription
Approval Types Collection any
Collection of approval types. The items in the collection are ordered in the _embedded.items array; the name is approvals. The top-level _links object may contain pagination links (self, next, prev, first, last, collection.)

allOf

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

and

Schema NameDescription
anonymous object
undefined
_embedded object
undefined
items [summaryApprovalType]
An array containing a page of approval type items.

createApprovalType

{
  "_profile": "http://api.apiture.com/schemas/basePath/approvalTypes/v1.0.0/profile.json"
}

Create Approval Type

Properties

allOf

Schema NameDescription
anonymous abstractResource
An augmented HAL resource representation. This model contains hypermedia _links, and either optional domain object data with _profile and optional _embedded objects, or an _error object. In responses, if the operation was successful, this object will not include the _error, but if the operation was a 4xx or 5xx error, this object will not include _embedded or any data fields, only _error and optionally _links.

and

Schema NameDescription
anonymous approvalTypeFields
Common fields of the approval resource used to build other model schemas.

and

Schema NameDescription
anonymous object
undefined
attributes object
An optional map of name/value pairs which provide additional metadata about the approval type.

approvalType

{
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "_profile": "http://api.apiture.com/schemas/approvals/approvalTypes/v1.0.0/profile.json",
  "createdAt": "2019-02-20T12:18:24Z",
  "updatedAt": "2019-02-20T12:18:24Z"
}

Approval Type

Properties

Schema NameDescription
Approval Type any
All Approval resources contain an Approval Type, a resource that is also managed in this API. Approval Types provide Financial Institutions the ability to track, reconcile and group specific Approvals. In addition, metadata regarding specific types of Approvals can be stored on the Approval Type. Approval Types may onle be deleted if they are not in use by any existing Approvals. Some examples of Approval Types may be specific documents releated to New Account Opening that need to be manually approved, Account Applications or Transfer requests.

allOf

Schema NameDescription
anonymous updateApprovalType
Representation used to update or patch an approval type.

and

Schema NameDescription
anonymous object
undefined
createdAt string(date-time)
The date-time when the approval was created.
updatedAt string(date-time)
The date-time when the approval was updated

updateApprovalType

{
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "_profile": "http://api.apiture.com/schemas/approvals/approvalTypes/v1.0.0/profile.json"
}

Update Approval Type

Properties

allOf

Schema NameDescription
anonymous summaryApprovalType
Summary representation of an approval type resource in approvals collections. This representation normally does not contain any _embedded objects. If needed, call the GET operation on the item's self link to get _embedded objects.

and

Schema NameDescription
anonymous object
undefined
attributes object
An optional map of name/value pairs which provide additional metadata about the approval type.

patchApprovalType

{
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "_profile": "http://api.apiture.com/schemas/approvals/approvalTypes/v1.0.0/profile.json"
}

Update Approval Type

Properties

Schema NameDescription
Update Approval Type any
Representation used to update or patch an approval type.

allOf

Schema NameDescription
anonymous summaryApprovalType
Summary representation of an approval type resource in approvals collections. This representation normally does not contain any _embedded objects. If needed, call the GET operation on the item's self link to get _embedded objects.

and

Schema NameDescription
anonymous object
undefined
attributes object
An optional map of name/value pairs which provide additional metadata about the approval type.

summaryApprovalType

{
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "_profile": "http://api.apiture.com/schemas/approvals/approvalTypes/v1.0.0/profile.json",
  "_links": {
    "self": {
      "href": "/approvals/approvalTypes/0399abed-fd3d-4830-a88b-30f38b8a365c"
    }
  }
}

Approval Type Summary

Properties

Schema NameDescription
Approval Type Summary any
Summary representation of an approval type resource in approvals collections. This representation normally does not contain any _embedded objects. If needed, call the GET operation on the item's self link to get _embedded objects.

allOf

Schema NameDescription
anonymous abstractResource
An augmented HAL resource representation. This model contains hypermedia _links, and either optional domain object data with _profile and optional _embedded objects, or an _error object. In responses, if the operation was successful, this object will not include the _error, but if the operation was a 4xx or 5xx error, this object will not include _embedded or any data fields, only _error and optionally _links.

and

Schema NameDescription
anonymous approvalTypeFields
Common fields of the approval resource used to build other model schemas.

and

Schema NameDescription
anonymous object
undefined
_id string
The unique identifier for this approval resource. This is an immutable opaque string.

abstractResource

{
  "_profile": "http://api.apiture.com/schemas/example/v1.0.0/profile.json",
  "_links": {
    "self": {
      "href": "{uri of current resource}"
    },
    "apiture:approvalType": {
      "href": "/approvals/approvalType/0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:target": {
      "href": "/vault/files/e4f09b4d-eba6-46da-86d3-hjr434fuhe"
    }
  }
}

Abstract Resource

Properties

Schema NameDescription
_links links
An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
_embedded object
An optional map of nested resources, mapping each nested resource name to a nested resource representation.
_profile string(uri)
The URI of a resource profile which describes the representation.
_error error
An object which describes an error. This value is omitted if the operation succeeded without error.

root

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

API Root

Properties

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

allOf

Schema NameDescription
anonymous abstractResource
An augmented HAL resource representation. This model contains hypermedia _links, and either optional domain object data with _profile and optional _embedded objects, or an _error object. In responses, if the operation was successful, this object will not include the _error, but if the operation was a 4xx or 5xx error, this object will not include _embedded or any data fields, only _error and optionally _links.

and

Schema NameDescription
anonymous object
undefined
_id string
This API's unique ID.
name string
This API's name.
apiVersion string
This API's version.

errorResponse

{
  "_profile": "http://api.apiture.com/schemas/error/v1.0.0/profile.json",
  "_error": {
    "_id": "2eae46e1-575c-4d69-8a8f-0a7b0115a4b3",
    "_profile": "https://api.apiture.com/schemas/error/v1.0.0/profile.json",
    "message": "The value for deposit must be greater than 0.",
    "statusCode": 422,
    "type": "positiveNumberRequired",
    "attributes": {
      "value": -125.5
    },
    "remediation": "Provide a value which is greater than 0",
    "occurredAt": "2019-02-20T12:18:18.817Z",
    "_links": {
      "describedby": {
        "href": "http://doc.apiture.com/errors/positiveNumberRequired"
      }
    },
    "_embedded": {
      "errors": []
    }
  }
}

Error Response

Properties

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

error

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

Error

Properties

Schema NameDescription
message string (required)
A localized message string describing the error condition.
_id string
A unique identifier for this error instance. This may be used as a correlation ID with the root cause error (i.e. this ID may be logged at the source of the error). This is is an opaque string.
statusCode integer
The HTTP status code associate with this error.
minimum: 100
maximum: 599
type string
An error identifier which indicates the category of error and associate it with API support documentation or which the UI tier can use to render an appropriate message or hint. This provides a finer level of granularity than the statusCode. For example, instead of just 400 Bad Request, the type may be much more specific. such as integerValueNotInAllowedRange or numericValueExceedsMaximum or stringValueNotInAllowedSet.
occurredAt string(date-time)
An ISO 8601 UTC time stamp indicating when the error occurred.
attributes attributes
Data attribute associated with the error, such as values or constraints.
remediation string
An optional localized string which provides hints for how the user or client can resolve the error.
_embedded object
Optional embedded array of errors. This field may not exist if the error does not have nested errors.
items [errorResponse]
An array of error objects.

attributes

{}

Attributes

Properties

No properties

{
  "property1": {
    "href": "http://example.com",
    "type": "string",
    "templated": true,
    "title": "string",
    "deprecation": "http://example.com",
    "profile": "http://example.com"
  },
  "property2": {
    "href": "http://example.com",
    "type": "string",
    "templated": true,
    "title": "string",
    "deprecation": "http://example.com",
    "profile": "http://example.com"
  }
}

Links

Properties

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

{
  "href": "http://example.com",
  "type": "string",
  "templated": true,
  "title": "string",
  "deprecation": "http://example.com",
  "profile": "http://example.com"
}

Link

Properties

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

collection

{
  "_profile": "http://api.apiture.com/schemas/example/v1.0.0/profile.json",
  "_links": {
    "self": {
      "href": "{uri of current resource}"
    },
    "apiture:approvalType": {
      "href": "/approvals/approvalType/0399abed-fd3d-4830-a88b-30f38b8a365c"
    },
    "apiture:target": {
      "href": "/vault/files/e4f09b4d-eba6-46da-86d3-hjr434fuhe"
    }
  },
  "count": 0,
  "start": 0,
  "limit": 0,
  "name": "string"
}

Collection

Properties

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

allOf

Schema NameDescription
anonymous abstractResource
An augmented HAL resource representation. This model contains hypermedia _links, and either optional domain object data with _profile and optional _embedded objects, or an _error object. In responses, if the operation was successful, this object will not include the _error, but if the operation was a 4xx or 5xx error, this object will not include _embedded or any data fields, only _error and optionally _links.

and

Schema NameDescription
anonymous object
undefined
count integer
The number of items in the full collection.
start integer
The start index of this page of items.
limit integer
The maximum number of items per page.
name string
The name of the collection.