API Products v0.8.4
Scroll down for code samples, example requests and responses. Select a language for code samples from the tabs above or the mobile navigation menu.
An API to manage API products (built on the Apiture stack) associated with a dev portal. An API product is a collection of one or more APIs/services. Client applications are associated with one or more API products. An API product consists of
- zero or more APIs
- zero or more other API products
For example, the product Digital Account Opening may be composed of a Basic Banking product plus the Applications API and the Workflow API.
Upon creation, an API product is in a pending
state. It must be activated before it can be selected for use by an application; see the activateApiProduct
operation.
Download OpenAPI Definition (YAML)
Base URLs:
Authentication
- API Key (
apiKey
)- header parameter: API-Key
- API Key based authentication. Each client application must pass its private, unique API key, allocated in the developer portal, via the
API-Key: {api-key}
request header.
- OAuth2 authentication (
accessToken
)- OAuth2 client access token authentication. The client authenticates against the server at
authorizationUrl
, passing the client's privateclientId
(and optionalclientSecret
) as part of this flow. The client obtains an access token from the server attokenUrl
. It then passes the received access token via theAuthorization: Bearer {access-token}
header in subsequent API calls. The authorization process also returns a refresh token which the client should use to renew the access token before it expires. - Flow:
authorizationCode
- Authorization URL = https://auth.apiture.com/oauth2/authorize
- Token URL = http://auth.apiture.com/auth/oauth2/token
- OAuth2 client access token authentication. The client authenticates against the server at
Scope | Scope Description |
---|---|
admin/write |
Write (update) access to API products. |
admin/delete |
Delete access to API products. |
admin/full |
Full access to API products. |
API
Endpoints which describe this API.
getApi
Code samples
# You can also use wget
curl -X GET /apiProducts/ \
-H 'Accept: application/hal+json' \
-H 'API-Key: API_KEY'
GET /apiProducts/ HTTP/1.1
Accept: application/hal+json
var headers = {
'Accept':'application/hal+json',
'API-Key':'API_KEY'
};
$.ajax({
url: '/apiProducts/',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const headers = {
'Accept':'application/hal+json',
'API-Key':'API_KEY'
};
fetch('/apiProducts/',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/hal+json',
'API-Key' => 'API_KEY'
}
result = RestClient.get '/apiProducts/',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/hal+json',
'API-Key': 'API_KEY'
}
r = requests.get('/apiProducts/', params={
}, headers = headers)
print r.json()
URL obj = new URL("/apiProducts/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/hal+json"},
"API-Key": []string{"API_KEY"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "/apiProducts/", 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.
Example responses
200 Response
{
"id": "apiName",
"name": "API name",
"apiVersion": "1.0.0",
"_profile": "https://api.apiture.com/schemas/common/root/v1.0.0/profile.json",
"_links": {}
}
Responses
Status | Description |
---|---|
200 | OK |
OK | |
Schema: root |
getApiDoc
Code samples
# You can also use wget
curl -X GET /apiProducts/apiDoc \
-H 'Accept: application/json' \
-H 'API-Key: API_KEY'
GET /apiProducts/apiDoc HTTP/1.1
Accept: application/json
var headers = {
'Accept':'application/json',
'API-Key':'API_KEY'
};
$.ajax({
url: '/apiProducts/apiDoc',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const headers = {
'Accept':'application/json',
'API-Key':'API_KEY'
};
fetch('/apiProducts/apiDoc',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'API-Key' => 'API_KEY'
}
result = RestClient.get '/apiProducts/apiDoc',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'API-Key': 'API_KEY'
}
r = requests.get('/apiProducts/apiDoc', params={
}, headers = headers)
print r.json()
URL obj = new URL("/apiProducts/apiDoc");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"API-Key": []string{"API_KEY"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "/apiProducts/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.
Example responses
200 Response
{}
Responses
Status | Description |
---|---|
200 | OK |
OK | |
Schema: Inline |
Response Schema
API Product
API Prodcucts
getApiProducts
Code samples
# You can also use wget
curl -X GET /apiProducts/products \
-H 'Accept: application/hal+json' \
-H 'API-Key: API_KEY'
GET /apiProducts/products HTTP/1.1
Accept: application/hal+json
var headers = {
'Accept':'application/hal+json',
'API-Key':'API_KEY'
};
$.ajax({
url: '/apiProducts/products',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const headers = {
'Accept':'application/hal+json',
'API-Key':'API_KEY'
};
fetch('/apiProducts/products',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/hal+json',
'API-Key' => 'API_KEY'
}
result = RestClient.get '/apiProducts/products',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/hal+json',
'API-Key': 'API_KEY'
}
r = requests.get('/apiProducts/products', params={
}, headers = headers)
print r.json()
URL obj = new URL("/apiProducts/products");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/hal+json"},
"API-Key": []string{"API_KEY"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "/apiProducts/products", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Return a collection of API products
GET /products
Return a paginated sortable filterable searchable collection of API products. The links in the response include pagination links.
Parameters
Parameter | Description |
---|---|
start (query) |
integer(int64) The zero-based index of the first API product item to include in this page. The default 0 denotes the beginning of the collection. |
limit (query) |
integer(int32) The maximum number of API product representations to return in this page. |
sortBy (query) |
string Optional sort criteria. See sort criteria format, such as ?sortBy=field1,-field2 . |
filter (query) |
string Optional filter criteria. See filtering. |
q (query) |
string Optional search string. See searching. |
state (query) |
string Subset the resources to only those whose state matches the query, such as ?state=active . The value may be a | separated list of states, such as ?state=pending|active to match all resources whose state is either pending or active'. If ?filter=is also used, the two are combined with an implicit and()` operation. Enumerated values: pending active inactive |
Example responses
200 Response
{
"_profile": "https://api.apiture.com/schemas/apiProducts/products/v1.0.0/profile.json",
"start": 10,
"limit": 10,
"count": 67,
"name": "apiProducts",
"_links": {
"self": {
"href": "/apiProducts/products?start=10&limit=10"
},
"first": {
"href": "/apiProducts/products?start=0&limit=10"
},
"next": {
"href": "/apiProducts/products?start=20&limit=10"
},
"collection": {
"href": "/apiProducts/products"
}
},
"_embedded": {
"items": [
{
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"_profile": "https://api.apiture.com/schemas/apiProducts/apiProduct/v1.0.0/profile.json",
"_links": {
"self": {
"href": "/apiProducts/products/0399abed-fd3d-4830-a88b-30f38b8a365c"
}
}
},
{
"_id": "d62c0701-0d74-4836-83f9-ebf3709442ea",
"_profile": "https://api.apiture.com/schemas/apiProducts/apiProduct/v1.0.0/profile.json",
"_links": {
"self": {
"href": "/apiProducts/products/d62c0701-0d74-4836-83f9-ebf3709442ea"
}
}
}
]
}
}
Responses
Status | Description |
---|---|
200 | OK |
OK | |
Schema: products | |
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 | |
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 |
createApiProduct
Code samples
# You can also use wget
curl -X POST /apiProducts/products \
-H 'Content-Type: application/hal+json' \
-H 'Accept: application/hal+json' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
POST /apiProducts/products HTTP/1.1
Content-Type: application/hal+json
Accept: application/hal+json
var headers = {
'Content-Type':'application/hal+json',
'Accept':'application/hal+json',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: '/apiProducts/products',
method: 'post',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const inputBody = '{
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"_profile": "https://api.apiture.com/schemas/apiProducts/product/v1.0.0/profile.json",
"tag": "digital-account-Opening",
"name": "Digital Account Opening",
"description": "Supports opening accounts in a fully digital, self-service manner. Clients complete an application on-line, following full regulatory guidelines, to open a new account for a banking product, optionally funding the account from an outside funding source.",
"version": "1.0.0",
"apis": [
{
"name": "Account Applications",
"basePath": "/accountApplications",
"version": "1.0.0",
"description": "Manages the data and workflow for applications for new banking accounts"
},
{
"name": "Workflow",
"basePath": "/workflow",
"version": "1.0.0",
"description": "Business processes, included automatic and manual human-driven tasks, such as filling in forms or approving activities"
}
],
"products": [
{
"name": "Basic Banking",
"_links": {
"self": "https://api.developer.apiture.com/apiProducts/products/43f271c2-190a-45e1-b332-bdf0b11a92bb"
}
}
],
"_links": {
"self": {
"href": "https://api.developer.apiture.com/apiProducts/products/43f271c2-190a-45e1-b332-bdf0b11a92bb"
},
"apiture:activate": {
"href": "https://api.developer.apiture.com/apiProducts/activeProducts?product=43f271c2-190a-45e1-b332-bdf0b11a92bb"
},
"apiture:deactivate": {
"href": "https://api.developer.apiture.com/apiProducts/inactiveProducts?product=43f271c2-190a-45e1-b332-bdf0b11a92bb"
}
}
}';
const headers = {
'Content-Type':'application/hal+json',
'Accept':'application/hal+json',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
fetch('/apiProducts/products',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/hal+json',
'Accept' => 'application/hal+json',
'API-Key' => 'API_KEY',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.post '/apiProducts/products',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/hal+json',
'Accept': 'application/hal+json',
'API-Key': 'API_KEY',
'Authorization': 'Bearer {access-token}'
}
r = requests.post('/apiProducts/products', params={
}, headers = headers)
print r.json()
URL obj = new URL("/apiProducts/products");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/hal+json"},
"Accept": []string{"application/hal+json"},
"API-Key": []string{"API_KEY"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "/apiProducts/products", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Create a new API product
POST /products
Create a new API product in the API products collection. The tag is required and must be unique.
Upon creation, an API product is in a pending
state. It must be activated before it can be selected for use by an application; see the activateApiProduct
operation.
Body parameter
{
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"_profile": "https://api.apiture.com/schemas/apiProducts/product/v1.0.0/profile.json",
"tag": "digital-account-Opening",
"name": "Digital Account Opening",
"description": "Supports opening accounts in a fully digital, self-service manner. Clients complete an application on-line, following full regulatory guidelines, to open a new account for a banking product, optionally funding the account from an outside funding source.",
"version": "1.0.0",
"apis": [
{
"name": "Account Applications",
"basePath": "/accountApplications",
"version": "1.0.0",
"description": "Manages the data and workflow for applications for new banking accounts"
},
{
"name": "Workflow",
"basePath": "/workflow",
"version": "1.0.0",
"description": "Business processes, included automatic and manual human-driven tasks, such as filling in forms or approving activities"
}
],
"products": [
{
"name": "Basic Banking",
"_links": {
"self": "https://api.developer.apiture.com/apiProducts/products/43f271c2-190a-45e1-b332-bdf0b11a92bb"
}
}
],
"_links": {
"self": {
"href": "https://api.developer.apiture.com/apiProducts/products/43f271c2-190a-45e1-b332-bdf0b11a92bb"
},
"apiture:activate": {
"href": "https://api.developer.apiture.com/apiProducts/activeProducts?product=43f271c2-190a-45e1-b332-bdf0b11a92bb"
},
"apiture:deactivate": {
"href": "https://api.developer.apiture.com/apiProducts/inactiveProducts?product=43f271c2-190a-45e1-b332-bdf0b11a92bb"
}
}
}
Parameters
Parameter | Description |
---|---|
body (body) |
product (required) The data necessary to create a new API product. |
Example responses
201 Response
{
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"_profile": "https://api.apiture.com/schemas/apiProducts/product/v1.0.0/profile.json",
"tag": "digital-account-Opening",
"name": "Digital Account Opening",
"description": "Supports opening accounts in a fully digital, self-service manner. Clients complete an application on-line, following full regulatory guidelines, to open a new account for a banking product, optionally funding the account from an outside funding source.",
"version": "1.0.0",
"apis": [
{
"name": "Account Applications",
"basePath": "/accountApplications",
"version": "1.0.0",
"description": "Manages the data and workflow for applications for new banking accounts"
},
{
"name": "Workflow",
"basePath": "/workflow",
"version": "1.0.0",
"description": "Business processes, included automatic and manual human-driven tasks, such as filling in forms or approving activities"
}
],
"products": [
{
"name": "Basic Banking",
"_links": {
"self": "https://api.developer.apiture.com/apiProducts/products/43f271c2-190a-45e1-b332-bdf0b11a92bb"
}
}
],
"_links": {
"self": {
"href": "https://api.developer.apiture.com/apiProducts/products/43f271c2-190a-45e1-b332-bdf0b11a92bb"
},
"apiture:activate": {
"href": "https://api.developer.apiture.com/apiProducts/activeProducts?product=43f271c2-190a-45e1-b332-bdf0b11a92bb"
},
"apiture:deactivate": {
"href": "https://api.developer.apiture.com/apiProducts/inactiveProducts?product=43f271c2-190a-45e1-b332-bdf0b11a92bb"
}
}
}
Responses
Status | Description |
---|---|
201 | Created |
Created | |
Schema: product | |
400 | Bad Request |
Bad Request. One of the request parameters to create a productType was not valid. See _error for more information | |
Schema: errorResponse | |
409 | Conflict |
Conflict. An API product already exists with specified tag . | |
Schema: errorResponse |
Response Headers
Status | Description |
---|---|
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. |
getApiProduct
Code samples
# You can also use wget
curl -X GET /apiProducts/products/{productId} \
-H 'Accept: application/hal+json' \
-H 'If-None-Match: string' \
-H 'API-Key: API_KEY'
GET /apiProducts/products/{productId} HTTP/1.1
Accept: application/hal+json
If-None-Match: string
var headers = {
'Accept':'application/hal+json',
'If-None-Match':'string',
'API-Key':'API_KEY'
};
$.ajax({
url: '/apiProducts/products/{productId}',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const headers = {
'Accept':'application/hal+json',
'If-None-Match':'string',
'API-Key':'API_KEY'
};
fetch('/apiProducts/products/{productId}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/hal+json',
'If-None-Match' => 'string',
'API-Key' => 'API_KEY'
}
result = RestClient.get '/apiProducts/products/{productId}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/hal+json',
'If-None-Match': 'string',
'API-Key': 'API_KEY'
}
r = requests.get('/apiProducts/products/{productId}', params={
}, headers = headers)
print r.json()
URL obj = new URL("/apiProducts/products/{productId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/hal+json"},
"If-None-Match": []string{"string"},
"API-Key": []string{"API_KEY"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "/apiProducts/products/{productId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Fetch a representation of this API product
GET /products/{productId}
Return a HAL representation of this API product resource.
Parameters
Parameter | Description |
---|---|
productId (path) |
string (required) The unique identifier of this API product. 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. |
Example responses
200 Response
{
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"_profile": "https://api.apiture.com/schemas/apiProducts/product/v1.0.0/profile.json",
"tag": "digital-account-Opening",
"name": "Digital Account Opening",
"description": "Supports opening accounts in a fully digital, self-service manner. Clients complete an application on-line, following full regulatory guidelines, to open a new account for a banking product, optionally funding the account from an outside funding source.",
"version": "1.0.0",
"apis": [
{
"name": "Account Applications",
"basePath": "/accountApplications",
"version": "1.0.0",
"description": "Manages the data and workflow for applications for new banking accounts"
},
{
"name": "Workflow",
"basePath": "/workflow",
"version": "1.0.0",
"description": "Business processes, included automatic and manual human-driven tasks, such as filling in forms or approving activities"
}
],
"products": [
{
"name": "Basic Banking",
"_links": {
"self": "https://api.developer.apiture.com/apiProducts/products/43f271c2-190a-45e1-b332-bdf0b11a92bb"
}
}
],
"_links": {
"self": {
"href": "https://api.developer.apiture.com/apiProducts/products/43f271c2-190a-45e1-b332-bdf0b11a92bb"
},
"apiture:activate": {
"href": "https://api.developer.apiture.com/apiProducts/activeProducts?product=43f271c2-190a-45e1-b332-bdf0b11a92bb"
},
"apiture:deactivate": {
"href": "https://api.developer.apiture.com/apiProducts/inactiveProducts?product=43f271c2-190a-45e1-b332-bdf0b11a92bb"
}
}
}
Responses
Status | Description |
---|---|
200 | OK |
OK | |
Schema: product | |
304 | Not Modified |
Not Modified. The resource has not been modified since it was last fetched. | |
404 | Not Found |
Not Found. There is no such API product resource at the specified {productId} . The _error field in the response will contain details about the request error. | |
Schema: errorResponse |
Response Headers
Status | Description |
---|---|
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 API product resource. |
updateApiProduct
Code samples
# You can also use wget
curl -X PUT /apiProducts/products/{productId} \
-H 'Content-Type: application/hal+json' \
-H 'Accept: application/hal+json' \
-H 'If-Match: string' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
PUT /apiProducts/products/{productId} 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',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: '/apiProducts/products/{productId}',
method: 'put',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const inputBody = '{
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"_profile": "https://api.apiture.com/schemas/apiProducts/product/v1.0.0/profile.json",
"tag": "digital-account-Opening",
"name": "Digital Account Opening",
"description": "Supports opening accounts in a fully digital, self-service manner. Clients complete an application on-line, following full regulatory guidelines, to open a new account for a banking product, optionally funding the account from an outside funding source.",
"version": "1.0.0",
"apis": [
{
"name": "Account Applications",
"basePath": "/accountApplications",
"version": "1.0.0",
"description": "Manages the data and workflow for applications for new banking accounts"
},
{
"name": "Workflow",
"basePath": "/workflow",
"version": "1.0.0",
"description": "Business processes, included automatic and manual human-driven tasks, such as filling in forms or approving activities"
}
],
"products": [
{
"name": "Basic Banking",
"_links": {
"self": "https://api.developer.apiture.com/apiProducts/products/43f271c2-190a-45e1-b332-bdf0b11a92bb"
}
}
],
"_links": {
"self": {
"href": "https://api.developer.apiture.com/apiProducts/products/43f271c2-190a-45e1-b332-bdf0b11a92bb"
},
"apiture:activate": {
"href": "https://api.developer.apiture.com/apiProducts/activeProducts?product=43f271c2-190a-45e1-b332-bdf0b11a92bb"
},
"apiture:deactivate": {
"href": "https://api.developer.apiture.com/apiProducts/inactiveProducts?product=43f271c2-190a-45e1-b332-bdf0b11a92bb"
}
}
}';
const headers = {
'Content-Type':'application/hal+json',
'Accept':'application/hal+json',
'If-Match':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
fetch('/apiProducts/products/{productId}',
{
method: 'PUT',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/hal+json',
'Accept' => 'application/hal+json',
'If-Match' => 'string',
'API-Key' => 'API_KEY',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.put '/apiProducts/products/{productId}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/hal+json',
'Accept': 'application/hal+json',
'If-Match': 'string',
'API-Key': 'API_KEY',
'Authorization': 'Bearer {access-token}'
}
r = requests.put('/apiProducts/products/{productId}', params={
}, headers = headers)
print r.json()
URL obj = new URL("/apiProducts/products/{productId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PUT");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/hal+json"},
"Accept": []string{"application/hal+json"},
"If-Match": []string{"string"},
"API-Key": []string{"API_KEY"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("PUT", "/apiProducts/products/{productId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Update this API product
PUT /products/{productId}
Perform a complete replacement of this API product.
Body parameter
{
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"_profile": "https://api.apiture.com/schemas/apiProducts/product/v1.0.0/profile.json",
"tag": "digital-account-Opening",
"name": "Digital Account Opening",
"description": "Supports opening accounts in a fully digital, self-service manner. Clients complete an application on-line, following full regulatory guidelines, to open a new account for a banking product, optionally funding the account from an outside funding source.",
"version": "1.0.0",
"apis": [
{
"name": "Account Applications",
"basePath": "/accountApplications",
"version": "1.0.0",
"description": "Manages the data and workflow for applications for new banking accounts"
},
{
"name": "Workflow",
"basePath": "/workflow",
"version": "1.0.0",
"description": "Business processes, included automatic and manual human-driven tasks, such as filling in forms or approving activities"
}
],
"products": [
{
"name": "Basic Banking",
"_links": {
"self": "https://api.developer.apiture.com/apiProducts/products/43f271c2-190a-45e1-b332-bdf0b11a92bb"
}
}
],
"_links": {
"self": {
"href": "https://api.developer.apiture.com/apiProducts/products/43f271c2-190a-45e1-b332-bdf0b11a92bb"
},
"apiture:activate": {
"href": "https://api.developer.apiture.com/apiProducts/activeProducts?product=43f271c2-190a-45e1-b332-bdf0b11a92bb"
},
"apiture:deactivate": {
"href": "https://api.developer.apiture.com/apiProducts/inactiveProducts?product=43f271c2-190a-45e1-b332-bdf0b11a92bb"
}
}
}
Parameters
Parameter | Description |
---|---|
productId (path) |
string (required) The unique identifier of this API product. This is an opaque string. |
If-Match (header) |
string (required) The entity tag that was returned in the ETag response. This must match the current entity tag of the resource. |
body (body) |
product (required) |
Example responses
200 Response
{
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"_profile": "https://api.apiture.com/schemas/apiProducts/product/v1.0.0/profile.json",
"tag": "digital-account-Opening",
"name": "Digital Account Opening",
"description": "Supports opening accounts in a fully digital, self-service manner. Clients complete an application on-line, following full regulatory guidelines, to open a new account for a banking product, optionally funding the account from an outside funding source.",
"version": "1.0.0",
"apis": [
{
"name": "Account Applications",
"basePath": "/accountApplications",
"version": "1.0.0",
"description": "Manages the data and workflow for applications for new banking accounts"
},
{
"name": "Workflow",
"basePath": "/workflow",
"version": "1.0.0",
"description": "Business processes, included automatic and manual human-driven tasks, such as filling in forms or approving activities"
}
],
"products": [
{
"name": "Basic Banking",
"_links": {
"self": "https://api.developer.apiture.com/apiProducts/products/43f271c2-190a-45e1-b332-bdf0b11a92bb"
}
}
],
"_links": {
"self": {
"href": "https://api.developer.apiture.com/apiProducts/products/43f271c2-190a-45e1-b332-bdf0b11a92bb"
},
"apiture:activate": {
"href": "https://api.developer.apiture.com/apiProducts/activeProducts?product=43f271c2-190a-45e1-b332-bdf0b11a92bb"
},
"apiture:deactivate": {
"href": "https://api.developer.apiture.com/apiProducts/inactiveProducts?product=43f271c2-190a-45e1-b332-bdf0b11a92bb"
}
}
}
Responses
Status | Description |
---|---|
200 | OK |
OK | |
Schema: product | |
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 | |
404 | Not Found |
Not Found. There is no such API product resource at the specified {productId} . 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 |
Response Headers
Status | Description |
---|---|
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 API product resource. |
patchApiProduct
Code samples
# You can also use wget
curl -X PATCH /apiProducts/products/{productId} \
-H 'Content-Type: application/hal+json' \
-H 'Accept: application/hal+json' \
-H 'If-Match: string' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
PATCH /apiProducts/products/{productId} 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',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: '/apiProducts/products/{productId}',
method: 'patch',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const inputBody = '{
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"_profile": "https://api.apiture.com/schemas/apiProducts/product/v1.0.0/profile.json",
"tag": "digital-account-Opening",
"name": "Digital Account Opening",
"description": "Supports opening accounts in a fully digital, self-service manner. Clients complete an application on-line, following full regulatory guidelines, to open a new account for a banking product, optionally funding the account from an outside funding source.",
"version": "1.0.0",
"apis": [
{
"name": "Account Applications",
"basePath": "/accountApplications",
"version": "1.0.0",
"description": "Manages the data and workflow for applications for new banking accounts"
},
{
"name": "Workflow",
"basePath": "/workflow",
"version": "1.0.0",
"description": "Business processes, included automatic and manual human-driven tasks, such as filling in forms or approving activities"
}
],
"products": [
{
"name": "Basic Banking",
"_links": {
"self": "https://api.developer.apiture.com/apiProducts/products/43f271c2-190a-45e1-b332-bdf0b11a92bb"
}
}
],
"_links": {
"self": {
"href": "https://api.developer.apiture.com/apiProducts/products/43f271c2-190a-45e1-b332-bdf0b11a92bb"
},
"apiture:activate": {
"href": "https://api.developer.apiture.com/apiProducts/activeProducts?product=43f271c2-190a-45e1-b332-bdf0b11a92bb"
},
"apiture:deactivate": {
"href": "https://api.developer.apiture.com/apiProducts/inactiveProducts?product=43f271c2-190a-45e1-b332-bdf0b11a92bb"
}
}
}';
const headers = {
'Content-Type':'application/hal+json',
'Accept':'application/hal+json',
'If-Match':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
fetch('/apiProducts/products/{productId}',
{
method: 'PATCH',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/hal+json',
'Accept' => 'application/hal+json',
'If-Match' => 'string',
'API-Key' => 'API_KEY',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.patch '/apiProducts/products/{productId}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/hal+json',
'Accept': 'application/hal+json',
'If-Match': 'string',
'API-Key': 'API_KEY',
'Authorization': 'Bearer {access-token}'
}
r = requests.patch('/apiProducts/products/{productId}', params={
}, headers = headers)
print r.json()
URL obj = new URL("/apiProducts/products/{productId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PATCH");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/hal+json"},
"Accept": []string{"application/hal+json"},
"If-Match": []string{"string"},
"API-Key": []string{"API_KEY"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("PATCH", "/apiProducts/products/{productId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Update this API product
PATCH /products/{productId}
Perform a partial update of this API product. Fields which are omitted are not updated. Nested _embedded
and _links
are ignored if included.
Body parameter
{
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"_profile": "https://api.apiture.com/schemas/apiProducts/product/v1.0.0/profile.json",
"tag": "digital-account-Opening",
"name": "Digital Account Opening",
"description": "Supports opening accounts in a fully digital, self-service manner. Clients complete an application on-line, following full regulatory guidelines, to open a new account for a banking product, optionally funding the account from an outside funding source.",
"version": "1.0.0",
"apis": [
{
"name": "Account Applications",
"basePath": "/accountApplications",
"version": "1.0.0",
"description": "Manages the data and workflow for applications for new banking accounts"
},
{
"name": "Workflow",
"basePath": "/workflow",
"version": "1.0.0",
"description": "Business processes, included automatic and manual human-driven tasks, such as filling in forms or approving activities"
}
],
"products": [
{
"name": "Basic Banking",
"_links": {
"self": "https://api.developer.apiture.com/apiProducts/products/43f271c2-190a-45e1-b332-bdf0b11a92bb"
}
}
],
"_links": {
"self": {
"href": "https://api.developer.apiture.com/apiProducts/products/43f271c2-190a-45e1-b332-bdf0b11a92bb"
},
"apiture:activate": {
"href": "https://api.developer.apiture.com/apiProducts/activeProducts?product=43f271c2-190a-45e1-b332-bdf0b11a92bb"
},
"apiture:deactivate": {
"href": "https://api.developer.apiture.com/apiProducts/inactiveProducts?product=43f271c2-190a-45e1-b332-bdf0b11a92bb"
}
}
}
Parameters
Parameter | Description |
---|---|
productId (path) |
string (required) The unique identifier of this API product. This is an opaque string. |
If-Match (header) |
string (required) The entity tag that was returned in the ETag response. This must match the current entity tag of the resource. |
body (body) |
product (required) |
Example responses
200 Response
{
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"_profile": "https://api.apiture.com/schemas/apiProducts/product/v1.0.0/profile.json",
"tag": "digital-account-Opening",
"name": "Digital Account Opening",
"description": "Supports opening accounts in a fully digital, self-service manner. Clients complete an application on-line, following full regulatory guidelines, to open a new account for a banking product, optionally funding the account from an outside funding source.",
"version": "1.0.0",
"apis": [
{
"name": "Account Applications",
"basePath": "/accountApplications",
"version": "1.0.0",
"description": "Manages the data and workflow for applications for new banking accounts"
},
{
"name": "Workflow",
"basePath": "/workflow",
"version": "1.0.0",
"description": "Business processes, included automatic and manual human-driven tasks, such as filling in forms or approving activities"
}
],
"products": [
{
"name": "Basic Banking",
"_links": {
"self": "https://api.developer.apiture.com/apiProducts/products/43f271c2-190a-45e1-b332-bdf0b11a92bb"
}
}
],
"_links": {
"self": {
"href": "https://api.developer.apiture.com/apiProducts/products/43f271c2-190a-45e1-b332-bdf0b11a92bb"
},
"apiture:activate": {
"href": "https://api.developer.apiture.com/apiProducts/activeProducts?product=43f271c2-190a-45e1-b332-bdf0b11a92bb"
},
"apiture:deactivate": {
"href": "https://api.developer.apiture.com/apiProducts/inactiveProducts?product=43f271c2-190a-45e1-b332-bdf0b11a92bb"
}
}
}
Responses
Status | Description |
---|---|
200 | OK |
OK | |
Schema: product | |
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 | |
404 | Not Found |
Not Found. There is no such API product resource at the specified {productId} . 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 |
Response Headers
Status | Description |
---|---|
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 API product resource. |
deleteApiProduct
Code samples
# You can also use wget
curl -X DELETE /apiProducts/products/{productId} \
-H 'Accept: application/hal+json' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
DELETE /apiProducts/products/{productId} HTTP/1.1
Accept: application/hal+json
var headers = {
'Accept':'application/hal+json',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: '/apiProducts/products/{productId}',
method: 'delete',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const headers = {
'Accept':'application/hal+json',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
fetch('/apiProducts/products/{productId}',
{
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',
'API-Key' => 'API_KEY',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.delete '/apiProducts/products/{productId}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/hal+json',
'API-Key': 'API_KEY',
'Authorization': 'Bearer {access-token}'
}
r = requests.delete('/apiProducts/products/{productId}', params={
}, headers = headers)
print r.json()
URL obj = new URL("/apiProducts/products/{productId}");
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"},
"API-Key": []string{"API_KEY"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("DELETE", "/apiProducts/products/{productId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Delete this API product resource
DELETE /products/{productId}
Delete this API product resource and any resources that are owned by it. A product must be inactive before it may be deleted.
Parameters
Parameter | Description |
---|---|
productId (path) |
string (required) The unique identifier of this API product. This is an opaque string. |
Example responses
409 Response
{
"_profile": "https://api.apiture.com/schemas/common/errorResponse/v1.0.0/profile.json",
"_error": {
"_id": "2eae46e1-575c-4d69-8a8f-0a7b0115a4b3",
"message": "The value for deposit must be greater than 0.",
"statusCode": 422,
"type": "positiveNumberRequired",
"attributes": {
"value": -125.5
},
"remediation": "Provide a value which is greater than 0",
"occurredAt": "2018-01-25T05:50:52.375Z",
"_links": {
"describedby": {
"href": "https://api.apiture.com/errors/positiveNumberRequired"
}
},
"_embedded": {
"errors": []
}
}
}
Responses
Status | Description |
---|---|
204 | No Content |
No Content. The resource was deleted successfully. | |
409 | Conflict |
Conflict. The product may not be deleted if the state is inactive . | |
Schema: errorResponse |
API Product States
API Product States
deactivateApiProduct
Code samples
# You can also use wget
curl -X POST /apiProducts/inactiveProducts?product=string \
-H 'Accept: application/hal+json' \
-H 'If-Match: string' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
POST /apiProducts/inactiveProducts?product=string HTTP/1.1
Accept: application/hal+json
If-Match: string
var headers = {
'Accept':'application/hal+json',
'If-Match':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: '/apiProducts/inactiveProducts',
method: 'post',
data: '?product=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',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
fetch('/apiProducts/inactiveProducts?product=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',
'API-Key' => 'API_KEY',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.post '/apiProducts/inactiveProducts',
params: {
'product' => 'string'
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/hal+json',
'If-Match': 'string',
'API-Key': 'API_KEY',
'Authorization': 'Bearer {access-token}'
}
r = requests.post('/apiProducts/inactiveProducts', params={
'product': 'string'
}, headers = headers)
print r.json()
URL obj = new URL("/apiProducts/inactiveProducts?product=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"},
"API-Key": []string{"API_KEY"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "/apiProducts/inactiveProducts", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Deactivate an API product
POST /inactiveProducts
Update an API product by adding it to the set of inactive API products. This changes the state
property of the API product to inactive
. This operation is available via the apiture:deactivate
link on the api product resource, if and only if the API product is eligible for the deactivate operation. A product may not be deactivated if it is in use by any client applications, unless the ?force=true
option is used.
The responses is the updated representation of the API product. The If-Match
request header value, if used, must match the current entity tag value of the API product.
Parameters
Parameter | Description |
---|---|
product (query) |
string (required) A string which uniquely identifies an API product which is to added to the active API products resource set. This may be the unique API product ID or the URI of the API product. |
force (query) |
boolean Force deactivation of the product, even if client applications are using the product. This is false by default. |
If-Match (header) |
string (required) The entity tag that was returned in the ETag response. This must match the current entity tag of the resource. |
Example responses
200 Response
{
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"_profile": "https://api.apiture.com/schemas/apiProducts/product/v1.0.0/profile.json",
"tag": "digital-account-Opening",
"name": "Digital Account Opening",
"description": "Supports opening accounts in a fully digital, self-service manner. Clients complete an application on-line, following full regulatory guidelines, to open a new account for a banking product, optionally funding the account from an outside funding source.",
"version": "1.0.0",
"apis": [
{
"name": "Account Applications",
"basePath": "/accountApplications",
"version": "1.0.0",
"description": "Manages the data and workflow for applications for new banking accounts"
},
{
"name": "Workflow",
"basePath": "/workflow",
"version": "1.0.0",
"description": "Business processes, included automatic and manual human-driven tasks, such as filling in forms or approving activities"
}
],
"products": [
{
"name": "Basic Banking",
"_links": {
"self": "https://api.developer.apiture.com/apiProducts/products/43f271c2-190a-45e1-b332-bdf0b11a92bb"
}
}
],
"_links": {
"self": {
"href": "https://api.developer.apiture.com/apiProducts/products/43f271c2-190a-45e1-b332-bdf0b11a92bb"
},
"apiture:activate": {
"href": "https://api.developer.apiture.com/apiProducts/activeProducts?product=43f271c2-190a-45e1-b332-bdf0b11a92bb"
},
"apiture:deactivate": {
"href": "https://api.developer.apiture.com/apiProducts/inactiveProducts?product=43f271c2-190a-45e1-b332-bdf0b11a92bb"
}
}
}
Responses
Status | Description |
---|---|
200 | OK |
OK. The operation succeeded. The API product was updated and its state changed to inactive . | |
Schema: product | |
400 | Bad Request |
Bad Request. The apiProduct parameter was malformed or does not refer to an existing or accessible API product. | |
Schema: errorResponse | |
409 | Conflict |
Conflict. The request to change the state of the API product is not allowed. The _error field in the response will contain details about the request error. | |
Schema: errorResponse |
Response Headers
Status | Description |
---|---|
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 the resource. |
activateApiProduct
Code samples
# You can also use wget
curl -X POST /apiProducts/activeProducts?product=string \
-H 'Accept: application/hal+json' \
-H 'If-Match: string' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
POST /apiProducts/activeProducts?product=string HTTP/1.1
Accept: application/hal+json
If-Match: string
var headers = {
'Accept':'application/hal+json',
'If-Match':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: '/apiProducts/activeProducts',
method: 'post',
data: '?product=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',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
fetch('/apiProducts/activeProducts?product=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',
'API-Key' => 'API_KEY',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.post '/apiProducts/activeProducts',
params: {
'product' => 'string'
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/hal+json',
'If-Match': 'string',
'API-Key': 'API_KEY',
'Authorization': 'Bearer {access-token}'
}
r = requests.post('/apiProducts/activeProducts', params={
'product': 'string'
}, headers = headers)
print r.json()
URL obj = new URL("/apiProducts/activeProducts?product=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"},
"API-Key": []string{"API_KEY"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "/apiProducts/activeProducts", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Activate an API product
POST /activeProducts
Update an API product by adding it to the set of active API products. This changes the state
property of the API product to active
. This operation is available via the apiture:activate
link on the api product resource, if and only if the API product is eligible for the activate operation. The responses is the updated representation of the API product. The If-Match
required request header value must match the current entity tag value of the API product.
Parameters
Parameter | Description |
---|---|
product (query) |
string (required) A string which uniquely identifies an API product which is to added to the active API products resource set. This may be the unique API product ID or the URI of the API product. |
If-Match (header) |
string (required) The entity tag that was returned in the ETag response. This must match the current entity tag of the resource. |
Example responses
200 Response
{
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"_profile": "https://api.apiture.com/schemas/apiProducts/product/v1.0.0/profile.json",
"tag": "digital-account-Opening",
"name": "Digital Account Opening",
"description": "Supports opening accounts in a fully digital, self-service manner. Clients complete an application on-line, following full regulatory guidelines, to open a new account for a banking product, optionally funding the account from an outside funding source.",
"version": "1.0.0",
"apis": [
{
"name": "Account Applications",
"basePath": "/accountApplications",
"version": "1.0.0",
"description": "Manages the data and workflow for applications for new banking accounts"
},
{
"name": "Workflow",
"basePath": "/workflow",
"version": "1.0.0",
"description": "Business processes, included automatic and manual human-driven tasks, such as filling in forms or approving activities"
}
],
"products": [
{
"name": "Basic Banking",
"_links": {
"self": "https://api.developer.apiture.com/apiProducts/products/43f271c2-190a-45e1-b332-bdf0b11a92bb"
}
}
],
"_links": {
"self": {
"href": "https://api.developer.apiture.com/apiProducts/products/43f271c2-190a-45e1-b332-bdf0b11a92bb"
},
"apiture:activate": {
"href": "https://api.developer.apiture.com/apiProducts/activeProducts?product=43f271c2-190a-45e1-b332-bdf0b11a92bb"
},
"apiture:deactivate": {
"href": "https://api.developer.apiture.com/apiProducts/inactiveProducts?product=43f271c2-190a-45e1-b332-bdf0b11a92bb"
}
}
}
Responses
Status | Description |
---|---|
200 | OK |
OK. The operation succeeded. The API product was updated and its state changed to active . | |
Schema: product | |
400 | Bad Request |
Bad Request. The apiProduct parameter was malformed or does not refer to an existing or accessible API product. | |
Schema: errorResponse | |
409 | Conflict |
Conflict. The request to change the state of the API product is not allowed. The _error field in the response will contain details about the request error. | |
Schema: errorResponse |
Response Headers
Status | Description |
---|---|
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 the resource. |
Schemas
product
{
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"_profile": "https://api.apiture.com/schemas/apiProducts/product/v1.0.0/profile.json",
"tag": "digital-account-Opening",
"name": "Digital Account Opening",
"description": "Supports opening accounts in a fully digital, self-service manner. Clients complete an application on-line, following full regulatory guidelines, to open a new account for a banking product, optionally funding the account from an outside funding source.",
"version": "1.0.0",
"apis": [
{
"name": "Account Applications",
"basePath": "/accountApplications",
"version": "1.0.0",
"description": "Manages the data and workflow for applications for new banking accounts"
},
{
"name": "Workflow",
"basePath": "/workflow",
"version": "1.0.0",
"description": "Business processes, included automatic and manual human-driven tasks, such as filling in forms or approving activities"
}
],
"products": [
{
"name": "Basic Banking",
"_links": {
"self": "https://api.developer.apiture.com/apiProducts/products/43f271c2-190a-45e1-b332-bdf0b11a92bb"
}
}
],
"_links": {
"self": {
"href": "https://api.developer.apiture.com/apiProducts/products/43f271c2-190a-45e1-b332-bdf0b11a92bb"
},
"apiture:activate": {
"href": "https://api.developer.apiture.com/apiProducts/activeProducts?product=43f271c2-190a-45e1-b332-bdf0b11a92bb"
},
"apiture:deactivate": {
"href": "https://api.developer.apiture.com/apiProducts/inactiveProducts?product=43f271c2-190a-45e1-b332-bdf0b11a92bb"
}
}
}
API Product
Representation of API product resources. TODO: Update /apiProducts paths and check /v1.0.0/ in profile paths.
Properties
Name | Description |
---|---|
_links | object An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
|
» 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.
|
_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. |
_id | string This API product's unique ID. read-only |
name | string The name of the API product. minLength: 6
maxLength: 64
|
tag | string A unique read-only alphanumeric identifier for this product. When combined with the version , this creates a unique human-readable identifier for this product.
read-only minLength: 6
maxLength: 64
|
description | string(markdown) The description of the client application. |
version | string(semantic-version) The semantic version of the product. |
state | string The state of this API product. The default state is pending . The product must be activated in order for an application to use the product. Use the POST HTTP method on the corresponding activateApiProduct and `deactivateApiProduct to activate or deactivate the API product.
|
products | [productRef] An array of products that this composite product contains. Some products are made as assemblies of other products. |
apis | [api] Specific APIs that are elements of this product. |
productRef
{
"name": "Basic Banking",
"version": "1.2.5",
"_links": {
"self": {
"href": "https://api.developer.apiture.com/apiProducts/products/43f271c2-190a-45e1-b332-bdf0b11a92bb"
}
}
}
Product Reference
A concise reference to an API product.
Properties
Name | Description |
---|---|
name | string (required) The name of the API product. read-only minLength: 6
maxLength: 64
|
version | string(semantic-version) (required) The semantic version of the product. read-only |
_links | links (required) The self link of an API product resource.
|
api
{
"name": "Accounts",
"basePath": "/accounts",
"description": "Access internal accounts and account details (balances, etc.) at a financial institution, as well as linked external accounts",
"version": "1.0.0"
}
API
An API is a component of an API product.
Properties
Name | Description |
---|---|
name | string The name of the API product. minLength: 6
maxLength: 64
|
description | string(markdown) The description of the API product. |
basePath | string The base path of the API (from the basePath in the OpenAPI definition).
minLength: 4
maxLength: 32
|
version | string(semantic-version) The semantic version of the API (from the info.version in the OpenAPI definition).
|
products
{
"_profile": "https://api.apiture.com/schemas/apiProducts/products/v1.0.0/profile.json",
"start": 10,
"limit": 10,
"count": 67,
"name": "apiProducts",
"_links": {
"self": {
"href": "/apiProducts/products?start=10&limit=10"
},
"first": {
"href": "/apiProducts/products?start=0&limit=10"
},
"next": {
"href": "/apiProducts/products?start=20&limit=10"
},
"collection": {
"href": "/apiProducts/products"
}
},
"_embedded": {
"items": [
{
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"_profile": "https://api.apiture.com/schemas/apiProducts/apiProduct/v1.0.0/profile.json",
"_links": {
"self": {
"href": "/apiProducts/products/0399abed-fd3d-4830-a88b-30f38b8a365c"
}
}
},
{
"_id": "d62c0701-0d74-4836-83f9-ebf3709442ea",
"_profile": "https://api.apiture.com/schemas/apiProducts/apiProduct/v1.0.0/profile.json",
"_links": {
"self": {
"href": "/apiProducts/products/d62c0701-0d74-4836-83f9-ebf3709442ea"
}
}
}
]
}
}
API Product Collection
Collection of API products. The items in the collection are ordered in the _embedded.items
array; the name
is apiProducts
. The top-level _links
object may contain pagination links: self
, next
, prev
, first
, last
, collection
.
Properties
Name | Description |
---|---|
_links | object An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
|
» 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.
|
_embedded | object Embedded resources. |
» items | [product] An array containing a page of API product items. |
_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. |
count | integer The number of items in the collection. This value is optional and my be omitted if the count is not computable efficiently. If a filter is applied to the collection (either implicitly or explicitly), the count, if present, indicates the number of items that satisfy the filter. |
start | integer The start index of this page of items. |
limit | integer The maximum number of items per page. |
name | string The name of the collection. |
errorResponse
{
"_profile": "https://api.apiture.com/schemas/common/errorResponse/v1.0.0/profile.json",
"_error": {
"_id": "2eae46e1-575c-4d69-8a8f-0a7b0115a4b3",
"message": "The value for deposit must be greater than 0.",
"statusCode": 422,
"type": "positiveNumberRequired",
"attributes": {
"value": -125.5
},
"remediation": "Provide a value which is greater than 0",
"occurredAt": "2018-01-25T05:50:52.375Z",
"_links": {
"describedby": {
"href": "https://api.apiture.com/errors/positiveNumberRequired"
}
},
"_embedded": {
"errors": []
}
}
}
Error Response
Describes an error response, typically returned on 4xx or 5xx errors from API operations. The _error
object contains the error details.
Properties
Name | Description |
---|---|
_links | object An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
|
» 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.
|
_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": "1.0.0",
"_profile": "https://api.apiture.com/schemas/common/root/v1.0.0/profile.json",
"_links": {}
}
API Root
A HAL response, with hypermedia _links
for the top-level resources and operations in API.
Properties
Name | Description |
---|---|
_links | object An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
|
» 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.
|
_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. |
_id | string This API's unique ID. |
name | string This API's name. |
apiVersion | string This API's version. |
links
{
"property1": {
"href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
"title": "Applicant"
},
"property2": {
"href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
"title": "Applicant"
}
}
Links
An optional map of links, mapping each link relation to a link object. This model defines the _links
object of HAL representations.
Properties
Name | Description |
---|---|
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.
|
link
{
"href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
"title": "Applicant"
}
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.
Properties
Name | Description |
---|---|
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. |
error
{
"_id": "2eae46e1-575c-4d69-8a8f-0a7b0115a4b3",
"message": "The value for deposit must be greater than 0.",
"statusCode": 422,
"type": "positiveNumberRequired",
"attributes": {
"value": -125.5
},
"remediation": "Provide a value which is greater than 0",
"occurredAt": "2018-01-25T05:50:52.375Z",
"_links": {
"describedby": {
"href": "https://developer.apiture.com/errors/positiveNumberRequired"
}
},
"_embedded": {
"errors": []
}
}
Error
Describes an error in an API request or in a service called via the API.
Properties
Name | Description |
---|---|
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 RFC 3339 UTC time stamp indicating when the error occurred. |
attributes | attributes Informative values or constraints which describe the error. For example, for a value out of range error, the attributes may specify the minimum and maximum values. This allows clients to present error messages as they see fit (the API does not assume the client/presentation tier). The set of attributes varies by error type .
|
remediation | string An optional localized string which provides hints for how the user or client can resolve the error. |
errors | [error] An optional array of nested error objects. This property is not always present. |
_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 Embedded objects. An error object may contain nested errors. For example, an API which validates its request body may find multiple errors in the request, which are returned with an error response with nested errors. These are held in an items array of errorResponse objects. _embedded or _embedded.items may not exist if the error does not have nested errors. This property is deprecated; use see error.errors instead.
|
» items | [errorResponse] An array of error objects. |
attributes
{}
Attributes
An optional map of name/value pairs which contains additional dynamic data about the resource.