Associations v0.7.3
Scroll down for code samples, example requests and responses. Select a language for code samples from the tabs above or the mobile navigation menu.
The Associations API associates source resources to target resources using association roles.
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 optional andclientSecret
) 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 = /auth/oauth2/authorize
- Token URL = /auth/oauth2/token
- OAuth2 client access token authentication. The client authenticates against the server at
Scope | Scope Description |
---|---|
data/read |
Read access to non-account, non-profile data. |
data/write |
Write (update) access to non-account, non-profile data. |
data/delete |
Delete access to non-account, non-profile data. |
data/full |
Full access to non-account, non-profile data. |
API
The Associations API
getApi
Code samples
# You can also use wget
curl -X GET https://api.devbank.apiture.com/associations/ \
-H 'Accept: application/hal+json' \
-H 'API-Key: API_KEY'
GET https://api.devbank.apiture.com/associations/ HTTP/1.1
Host: api.devbank.apiture.com
Accept: application/hal+json
var headers = {
'Accept':'application/hal+json',
'API-Key':'API_KEY'
};
$.ajax({
url: 'https://api.devbank.apiture.com/associations/',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const headers = {
'Accept':'application/hal+json',
'API-Key':'API_KEY'
};
fetch('https://api.devbank.apiture.com/associations/',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/hal+json',
'API-Key' => 'API_KEY'
}
result = RestClient.get 'https://api.devbank.apiture.com/associations/',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/hal+json',
'API-Key': 'API_KEY'
}
r = requests.get('https://api.devbank.apiture.com/associations/', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.devbank.apiture.com/associations/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/hal+json"},
"API-Key": []string{"API_KEY"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://api.devbank.apiture.com/associations/", 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. This API returns the following links: apiture:associations
: links to the collection of associations held at this financial institution. apiture:roles
: links to the collection of roles held at this financial institution.
Try It
Example responses
OK
{
"id": "associations",
"name": "Associations",
"apiVersion": "0.1.0",
"_profile": "https://api.apiture.com/schemas/common/root/v2.0.0/profile.json",
"_links": {
"apiture:associations": {
"href": "/associations/associations"
},
"apiture:roles": {
"href": "/associations/roles"
}
}
}
200 Response
{
"id": "apiName",
"name": "API name",
"apiVersion": "1.0.0",
"_profile": "https://production.api.apiture.com/schemas/common/root/v2.0.0/profile.json",
"_links": {}
}
Responses
getApiDoc
Code samples
# You can also use wget
curl -X GET https://api.devbank.apiture.com/associations/apiDoc \
-H 'Accept: application/json' \
-H 'API-Key: API_KEY'
GET https://api.devbank.apiture.com/associations/apiDoc HTTP/1.1
Host: api.devbank.apiture.com
Accept: application/json
var headers = {
'Accept':'application/json',
'API-Key':'API_KEY'
};
$.ajax({
url: 'https://api.devbank.apiture.com/associations/apiDoc',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const headers = {
'Accept':'application/json',
'API-Key':'API_KEY'
};
fetch('https://api.devbank.apiture.com/associations/apiDoc',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'API-Key' => 'API_KEY'
}
result = RestClient.get 'https://api.devbank.apiture.com/associations/apiDoc',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'API-Key': 'API_KEY'
}
r = requests.get('https://api.devbank.apiture.com/associations/apiDoc', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.devbank.apiture.com/associations/apiDoc");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"API-Key": []string{"API_KEY"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://api.devbank.apiture.com/associations/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
Example responses
200 Response
{}
Responses
Status | Description |
---|---|
200 | OK |
OK | |
Schema: Inline |
Response Schema
Association
Association between Two Resources
getAssociations
Code samples
# You can also use wget
curl -X GET https://api.devbank.apiture.com/associations/associations \
-H 'Accept: application/hal+json' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
GET https://api.devbank.apiture.com/associations/associations HTTP/1.1
Host: api.devbank.apiture.com
Accept: application/hal+json
var headers = {
'Accept':'application/hal+json',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.devbank.apiture.com/associations/associations',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const headers = {
'Accept':'application/hal+json',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.devbank.apiture.com/associations/associations',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/hal+json',
'API-Key' => 'API_KEY',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.get 'https://api.devbank.apiture.com/associations/associations',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/hal+json',
'API-Key': 'API_KEY',
'Authorization': 'Bearer {access-token}'
}
r = requests.get('https://api.devbank.apiture.com/associations/associations', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.devbank.apiture.com/associations/associations");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/hal+json"},
"API-Key": []string{"API_KEY"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://api.devbank.apiture.com/associations/associations", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Return a collection of associations.
GET /associations
Return a paginated sortable filterable searchable collection of associations. The links in the response include pagination links.
Parameters
Parameter | Description |
---|---|
start (query) |
integer(int64) The zero-based index of the first association item to include in this page. The default 0 denotes the beginning of the collection. |
limit (query) |
integer(int32) The maximum number of association 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. |
name (query) |
string Subset the accounts or external accounts collection to those with this name value. Use | to separate multiple values. For example, ?name=Bartell will match only items whose name is Bartell; ?name=Bartell|kirsten will match items whose name is Bartell or kirsten. This is combined with an implicit and with other filters if they are used. See filtering. |
type (query) |
string Subset the accounts or external accounts collection to those with this exact type value. Use | to separate multiple values. For example, ?type=Personal%20Savings matches only items whose type is Personal Savings; ?type=Personal%20Savings|Investment%20Account matches items whose type is Personal Savings or Investment Account. This is combined with an implicit and with other filters if they are used. See filtering. |
label (query) |
string Subset the accounts or external accounts collection to those with this label value. Use | to separate multiple values. For example, ?label=email_verification matches only items whose label is email_verification ; ?label=email_verification|account_verification matches items whose label is email_verification or account_verification . This is combined with an implicit and with other filters if they are used. See filtering. |
Try It
Example responses
200 Response
{
"_profile": "https://api.apiture.com/schemas/associations/association/v1.0.0/profile.json",
"start": 10,
"limit": 10,
"count": 67,
"name": "associations",
"_links": {
"self": {
"href": "/associations/associations?start=10&limit=10"
},
"first": {
"href": "/associations/associations?start=0&limit=10"
},
"next": {
"href": "/associations/associations?start=20&limit=10"
},
"collection": {
"href": "/associations/associations"
}
},
"_embedded": {
"items": [
{
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"_profile": "https://api.apiture.com/schemas/associations/association/v1.0.0/profile.json",
"_links": {
"self": {
"href": "/associations/associations/0399abed-fd3d-4830-a88b-30f38b8a365c"
}
},
"roleName": "primaryUser",
"_embedded": {
"role": {
"_id": "c83790c9-8bcb-4754-a989-7a45342697cb",
"_profile": "https://api.apiture.com/schemas/associations/role/v1.0.0/profile.json",
"name": "primaryUser",
"label": "primaryUser",
"description": "The account owner has full control across the account. For personal accounts, the orimary user is also known as the account owner. For organization accounts, the organization is the \"owner\"; the primary user is the person who is granted administration permissions on the account, which includes managing permissions and roles of other users associated with the account.\nThere may be only one primary user."
},
"target": {
"_id": "4222e6e8-bd85-487e-8864-ec16a0b0d058",
"_profile": "https://api.apiture.com/schemas/user/v1.0.0/profile.json",
"type": "user",
"firstName": "Bobette",
"middleName": "",
"lastName": "Wellphunded"
},
"source": {
"_id": "4222e6e8-bd85-487e-8864-ec16a0b0d058",
"_profile": "https://api.apiture.com/schemas/accounts/v1.0.0/profile.json",
"type": "account",
"name": "Personal Checking"
}
}
}
]
}
}
Responses
Status | Description |
---|---|
200 | OK |
OK | |
Schema: associations |
Status | Description |
---|---|
400 | Bad Request |
Bad Request. The request body or one or more of the query parameters was not well formed. The _error field in the response will contain details about the request error. | |
Schema: errorResponse |
Status | Description |
---|---|
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 |
createAssociation
Code samples
# You can also use wget
curl -X POST https://api.devbank.apiture.com/associations/associations \
-H 'Content-Type: application/hal+json' \
-H 'Accept: application/hal+json' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
POST https://api.devbank.apiture.com/associations/associations HTTP/1.1
Host: api.devbank.apiture.com
Content-Type: application/hal+json
Accept: application/hal+json
var headers = {
'Content-Type':'application/hal+json',
'Accept':'application/hal+json',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.devbank.apiture.com/associations/associations',
method: 'post',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const inputBody = '{
"sourceUri": "string",
"roleUri": "string",
"roleName": "string",
"targetUri": "string",
"attributes": {
"property1": {},
"property2": {}
},
"_links": {
"property1": {
"href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
"title": "Applicant"
},
"property2": {
"href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
"title": "Applicant"
}
},
"_embedded": {},
"_profile": "http://example.com",
"_error": {
"_id": "2eae46e1575c0a7b0115a4b3",
"message": "Descriptive error message...",
"statusCode": 422,
"type": "errorType1",
"remediation": "Remediation string...",
"occurredAt": "2018-01-25T05:50:52.375Z",
"errors": [
{
"_id": "ccdbe2c5c938a230667b3827",
"message": "An optional embedded error"
},
{
"_id": "dbe9088dcfe2460f229338a3",
"message": "Another optional embedded error"
}
],
"_links": {
"describedby": {
"href": "https://developer.apiture.com/errors/errorType1"
}
}
}
}';
const headers = {
'Content-Type':'application/hal+json',
'Accept':'application/hal+json',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.devbank.apiture.com/associations/associations',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/hal+json',
'Accept' => 'application/hal+json',
'API-Key' => 'API_KEY',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.post 'https://api.devbank.apiture.com/associations/associations',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/hal+json',
'Accept': 'application/hal+json',
'API-Key': 'API_KEY',
'Authorization': 'Bearer {access-token}'
}
r = requests.post('https://api.devbank.apiture.com/associations/associations', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.devbank.apiture.com/associations/associations");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/hal+json"},
"Accept": []string{"application/hal+json"},
"API-Key": []string{"API_KEY"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://api.devbank.apiture.com/associations/associations", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Create a new association
POST /associations
Create a new association between two resources. The request must include a valid link (apiture:source
) to a source resource, (apiture:role
) to an association role instance and a link (apiture:target
) to a target resource.
Body parameter
{
"sourceUri": "string",
"roleUri": "string",
"roleName": "string",
"targetUri": "string",
"attributes": {
"property1": {},
"property2": {}
},
"_links": {
"property1": {
"href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
"title": "Applicant"
},
"property2": {
"href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
"title": "Applicant"
}
},
"_embedded": {},
"_profile": "http://example.com",
"_error": {
"_id": "2eae46e1575c0a7b0115a4b3",
"message": "Descriptive error message...",
"statusCode": 422,
"type": "errorType1",
"remediation": "Remediation string...",
"occurredAt": "2018-01-25T05:50:52.375Z",
"errors": [
{
"_id": "ccdbe2c5c938a230667b3827",
"message": "An optional embedded error"
},
{
"_id": "dbe9088dcfe2460f229338a3",
"message": "Another optional embedded error"
}
],
"_links": {
"describedby": {
"href": "https://developer.apiture.com/errors/errorType1"
}
}
}
}
Parameters
Parameter | Description |
---|---|
body (body) |
createAssociation (required) The data necessary to create a new association. |
Try It
Example responses
201 Response
{
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"_profile": "https://api.apiture.com/schemas/associations/association/v1.0.0/profile.json",
"_links": {
"apiture:role": {
"href": "/associations/roles/e4f09b4d-eba6-46da-86d3-ba28595067cd"
},
"apiture:source": {
"href": "/accounts/accounts/540f4849-0df4-4fbc-b987-6ad1f29998ed"
},
"apiture:target": {
"href": "/users/users/540f4849-0df4-4fbc-b987-6ad1f29998ed"
}
},
"sourceUri": "/accounts/accounts/540f4849-0df4-4fbc-b987-6ad1f29998ed",
"roleUri": "/associations/roles/e4f09b4d-eba6-46da-86d3-ba28595067cd",
"roleName": "primaryUser",
"targetUri": "/users/users/540f4849-0df4-4fbc-b987-6ad1f29998ed",
"_embedded": {
"source": {
"_id": "4222e6e8-bd85-487e-8864-ec16a0b0d058",
"_profile": "https://api.apiture.com/schemas/accounts/v1.0.0/profile.json",
"type": "account",
"name": "Personal Checking",
"TODO": "Refine this example when Accounts API is defined."
},
"role": {
"_id": "c83790c9-8bcb-4754-a989-7a45342697cb",
"_profile": "https://api.apiture.com/schemas/associations/role/v1.0.0/profile.json",
"name": "primaryUser",
"label": "Primary User",
"description": "The account owner has full control across the account. For personal accounts, the primary user is also known as the account owner. For organization accounts, the organization is the \"owner\"; the primary user is the person who is granted administration permissions on the account, which includes managing permissions and roles of other users associated with the account.\nThere may be only one primary user."
},
"target": {
"_id": "4222e6e8-bd85-487e-8864-ec16a0b0d058",
"_profile": "https://api.apiture.com/schemas/user/v1.0.0/profile.json",
"type": "user",
"firstName": "Bobette",
"middleName": "",
"lastName": "Wellphunded",
"TODO": "Refine this example when Users API is defined."
}
}
}
Responses
Status | Description |
---|---|
201 | Created |
Created. A representation of the new assocuation is returned, including the self link, the role, source and target of the association. | |
Schema: association |
Status | Description |
---|---|
400 | Bad Request |
Bad Request. The request body or one or more of the query parameters was not well formed. The _error field in the response will contain details about the request error. | |
Schema: errorResponse |
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. |
getAssociation
Code samples
# You can also use wget
curl -X GET https://api.devbank.apiture.com/associations/associations/{associationId} \
-H 'Accept: application/hal+json' \
-H 'If-None-Match: string' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
GET https://api.devbank.apiture.com/associations/associations/{associationId} HTTP/1.1
Host: api.devbank.apiture.com
Accept: application/hal+json
If-None-Match: string
var headers = {
'Accept':'application/hal+json',
'If-None-Match':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.devbank.apiture.com/associations/associations/{associationId}',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const headers = {
'Accept':'application/hal+json',
'If-None-Match':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.devbank.apiture.com/associations/associations/{associationId}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/hal+json',
'If-None-Match' => 'string',
'API-Key' => 'API_KEY',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.get 'https://api.devbank.apiture.com/associations/associations/{associationId}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/hal+json',
'If-None-Match': 'string',
'API-Key': 'API_KEY',
'Authorization': 'Bearer {access-token}'
}
r = requests.get('https://api.devbank.apiture.com/associations/associations/{associationId}', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.devbank.apiture.com/associations/associations/{associationId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/hal+json"},
"If-None-Match": []string{"string"},
"API-Key": []string{"API_KEY"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://api.devbank.apiture.com/associations/associations/{associationId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Fetch a representation of this association
GET /associations/{associationId}
Return a HAL representation of this association resource.
Parameters
Parameter | Description |
---|---|
associationId (path) |
string (required) The unique identifier of this association. 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
Example responses
200 Response
{
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"_profile": "https://api.apiture.com/schemas/associations/association/v1.0.0/profile.json",
"_links": {
"apiture:role": {
"href": "/associations/roles/e4f09b4d-eba6-46da-86d3-ba28595067cd"
},
"apiture:source": {
"href": "/accounts/accounts/540f4849-0df4-4fbc-b987-6ad1f29998ed"
},
"apiture:target": {
"href": "/users/users/540f4849-0df4-4fbc-b987-6ad1f29998ed"
}
},
"sourceUri": "/accounts/accounts/540f4849-0df4-4fbc-b987-6ad1f29998ed",
"roleUri": "/associations/roles/e4f09b4d-eba6-46da-86d3-ba28595067cd",
"roleName": "primaryUser",
"targetUri": "/users/users/540f4849-0df4-4fbc-b987-6ad1f29998ed",
"_embedded": {
"source": {
"_id": "4222e6e8-bd85-487e-8864-ec16a0b0d058",
"_profile": "https://api.apiture.com/schemas/accounts/v1.0.0/profile.json",
"type": "account",
"name": "Personal Checking",
"TODO": "Refine this example when Accounts API is defined."
},
"role": {
"_id": "c83790c9-8bcb-4754-a989-7a45342697cb",
"_profile": "https://api.apiture.com/schemas/associations/role/v1.0.0/profile.json",
"name": "primaryUser",
"label": "Primary User",
"description": "The account owner has full control across the account. For personal accounts, the primary user is also known as the account owner. For organization accounts, the organization is the \"owner\"; the primary user is the person who is granted administration permissions on the account, which includes managing permissions and roles of other users associated with the account.\nThere may be only one primary user."
},
"target": {
"_id": "4222e6e8-bd85-487e-8864-ec16a0b0d058",
"_profile": "https://api.apiture.com/schemas/user/v1.0.0/profile.json",
"type": "user",
"firstName": "Bobette",
"middleName": "",
"lastName": "Wellphunded",
"TODO": "Refine this example when Users API is defined."
}
}
}
Responses
Status | Description |
---|---|
200 | OK |
OK | |
Schema: association |
Status | Description |
---|---|
304 | Not Modified |
Not Modified. The resource has not been modified since it was last fetched. |
Status | Description |
---|---|
404 | Not Found |
Not Found. There is no such association resource at the specified {associationId} 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 association resource. |
patchAssociation
Code samples
# You can also use wget
curl -X PATCH https://api.devbank.apiture.com/associations/associations/{associationId} \
-H 'Content-Type: application/hal+json' \
-H 'Accept: application/hal+json' \
-H 'If-Match: string' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
PATCH https://api.devbank.apiture.com/associations/associations/{associationId} HTTP/1.1
Host: api.devbank.apiture.com
Content-Type: application/hal+json
Accept: application/hal+json
If-Match: string
var headers = {
'Content-Type':'application/hal+json',
'Accept':'application/hal+json',
'If-Match':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.devbank.apiture.com/associations/associations/{associationId}',
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/associations/associations/v1.0.0/profile.json"
}';
const headers = {
'Content-Type':'application/hal+json',
'Accept':'application/hal+json',
'If-Match':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.devbank.apiture.com/associations/associations/{associationId}',
{
method: 'PATCH',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/hal+json',
'Accept' => 'application/hal+json',
'If-Match' => 'string',
'API-Key' => 'API_KEY',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.patch 'https://api.devbank.apiture.com/associations/associations/{associationId}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/hal+json',
'Accept': 'application/hal+json',
'If-Match': 'string',
'API-Key': 'API_KEY',
'Authorization': 'Bearer {access-token}'
}
r = requests.patch('https://api.devbank.apiture.com/associations/associations/{associationId}', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.devbank.apiture.com/associations/associations/{associationId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PATCH");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/hal+json"},
"Accept": []string{"application/hal+json"},
"If-Match": []string{"string"},
"API-Key": []string{"API_KEY"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("PATCH", "https://api.devbank.apiture.com/associations/associations/{associationId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Update this association
PATCH /associations/{associationId}
Perform a partial update of this association. Fields which are omitted are not updated.
Body parameter
{
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"_profile": "https://api.apiture.com/schemas/associations/associations/v1.0.0/profile.json"
}
Parameters
Parameter | Description |
---|---|
associationId (path) |
string (required) The unique identifier of this association. 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) |
updateAssociation (required) |
Try It
Example responses
200 Response
{
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"_profile": "https://api.apiture.com/schemas/associations/association/v1.0.0/profile.json",
"_links": {
"apiture:role": {
"href": "/associations/roles/e4f09b4d-eba6-46da-86d3-ba28595067cd"
},
"apiture:source": {
"href": "/accounts/accounts/540f4849-0df4-4fbc-b987-6ad1f29998ed"
},
"apiture:target": {
"href": "/users/users/540f4849-0df4-4fbc-b987-6ad1f29998ed"
}
},
"sourceUri": "/accounts/accounts/540f4849-0df4-4fbc-b987-6ad1f29998ed",
"roleUri": "/associations/roles/e4f09b4d-eba6-46da-86d3-ba28595067cd",
"roleName": "primaryUser",
"targetUri": "/users/users/540f4849-0df4-4fbc-b987-6ad1f29998ed",
"_embedded": {
"source": {
"_id": "4222e6e8-bd85-487e-8864-ec16a0b0d058",
"_profile": "https://api.apiture.com/schemas/accounts/v1.0.0/profile.json",
"type": "account",
"name": "Personal Checking",
"TODO": "Refine this example when Accounts API is defined."
},
"role": {
"_id": "c83790c9-8bcb-4754-a989-7a45342697cb",
"_profile": "https://api.apiture.com/schemas/associations/role/v1.0.0/profile.json",
"name": "primaryUser",
"label": "Primary User",
"description": "The account owner has full control across the account. For personal accounts, the primary user is also known as the account owner. For organization accounts, the organization is the \"owner\"; the primary user is the person who is granted administration permissions on the account, which includes managing permissions and roles of other users associated with the account.\nThere may be only one primary user."
},
"target": {
"_id": "4222e6e8-bd85-487e-8864-ec16a0b0d058",
"_profile": "https://api.apiture.com/schemas/user/v1.0.0/profile.json",
"type": "user",
"firstName": "Bobette",
"middleName": "",
"lastName": "Wellphunded",
"TODO": "Refine this example when Users API is defined."
}
}
}
Responses
Status | Description |
---|---|
200 | OK |
OK | |
Schema: association |
Status | Description |
---|---|
400 | Bad Request |
Bad Request. The request body or one or more of the query parameters was not well formed. The _error field in the response will contain details about the request error. | |
Schema: errorResponse |
Status | Description |
---|---|
404 | Not Found |
Not Found. There is no such association resource at the specified {associationId} The _error field in the response will contain details about the request error. | |
Schema: errorResponse |
Status | Description |
---|---|
412 | Precondition Failed |
Precondition Failed. The supplied if-Match header value does not match the most recent ETag response header value. The resource has changed in the interim. | |
Schema: errorResponse |
Status | Description |
---|---|
422 | Unprocessable Entity |
Unprocessable Entity. One or more of the query parameters was well formed but otherwise invalid. The _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 association resource. |
deleteAssociation
Code samples
# You can also use wget
curl -X DELETE https://api.devbank.apiture.com/associations/associations/{associationId} \
-H 'Accept: application/hal+json' \
-H 'If-Match: string' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
DELETE https://api.devbank.apiture.com/associations/associations/{associationId} HTTP/1.1
Host: api.devbank.apiture.com
Accept: application/hal+json
If-Match: string
var headers = {
'Accept':'application/hal+json',
'If-Match':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.devbank.apiture.com/associations/associations/{associationId}',
method: 'delete',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const headers = {
'Accept':'application/hal+json',
'If-Match':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.devbank.apiture.com/associations/associations/{associationId}',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/hal+json',
'If-Match' => 'string',
'API-Key' => 'API_KEY',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.delete 'https://api.devbank.apiture.com/associations/associations/{associationId}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/hal+json',
'If-Match': 'string',
'API-Key': 'API_KEY',
'Authorization': 'Bearer {access-token}'
}
r = requests.delete('https://api.devbank.apiture.com/associations/associations/{associationId}', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.devbank.apiture.com/associations/associations/{associationId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/hal+json"},
"If-Match": []string{"string"},
"API-Key": []string{"API_KEY"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("DELETE", "https://api.devbank.apiture.com/associations/associations/{associationId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Delete this association resource
DELETE /associations/{associationId}
Delete this association resource and any resources that are owned by it. Deleting an association does not delete the source, role, or target resources.
Parameters
Parameter | Description |
---|---|
If-Match (header) |
string The entity tag that was returned in the ETag response. This must match the current entity tag of the resource. |
associationId (path) |
string (required) The unique identifier of this association. This is an opaque string. |
Try It
Example responses
412 Response
{
"_profile": "https://api.apiture.com/schemas/common/errorResponse/v2.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. |
Status | Description |
---|---|
412 | Precondition Failed |
Precondition Failed. The supplied if-Match header value does not match the most recent ETag response header value. The resource has changed in the interim. | |
Schema: errorResponse |
Role
The Role of an Association
getRoles
Code samples
# You can also use wget
curl -X GET https://api.devbank.apiture.com/associations/roles \
-H 'Accept: application/hal+json' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
GET https://api.devbank.apiture.com/associations/roles HTTP/1.1
Host: api.devbank.apiture.com
Accept: application/hal+json
var headers = {
'Accept':'application/hal+json',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.devbank.apiture.com/associations/roles',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const headers = {
'Accept':'application/hal+json',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.devbank.apiture.com/associations/roles',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/hal+json',
'API-Key' => 'API_KEY',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.get 'https://api.devbank.apiture.com/associations/roles',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/hal+json',
'API-Key': 'API_KEY',
'Authorization': 'Bearer {access-token}'
}
r = requests.get('https://api.devbank.apiture.com/associations/roles', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.devbank.apiture.com/associations/roles");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/hal+json"},
"API-Key": []string{"API_KEY"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://api.devbank.apiture.com/associations/roles", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Return a collection of roles
GET /roles
Return a paginated sortable filterable searchable collection of roles. The links in the response include pagination links.
Parameters
Parameter | Description |
---|---|
start (query) |
integer(int64) The zero-based index of the first role item to include in this page. The default 0 denotes the beginning of the collection. |
limit (query) |
integer(int32) The maximum number of role 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. |
name (query) |
string Subset the accounts or external accounts collection to those with this name value. Use | to separate multiple values. For example, ?name=Bartell will match only items whose name is Bartell; ?name=Bartell|kirsten will match items whose name is Bartell or kirsten. This is combined with an implicit and with other filters if they are used. See filtering. |
label (query) |
string Subset the accounts or external accounts collection to those with this label value. Use | to separate multiple values. For example, ?label=email_verification matches only items whose label is email_verification ; ?label=email_verification|account_verification matches items whose label is email_verification or account_verification . This is combined with an implicit and with other filters if they are used. See filtering. |
Try It
Example responses
200 Response
{
"_profile": "https://api.apiture.com/schemas/associations/roles/v1.0.0/profile.json",
"start": 10,
"limit": 10,
"count": 67,
"name": "roles",
"_links": {
"self": {
"href": "/associations/roles?start=10&limit=10"
},
"first": {
"href": "/associations/roles?start=0&limit=10"
},
"next": {
"href": "/associations/roles?start=20&limit=10"
},
"collection": {
"href": "/associations/roles"
}
},
"_embedded": {
"items": [
{
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"_profile": "https://api.apiture.com/schemas/associations/role/v1.0.0/profile.json",
"name": "primaryUser",
"label": "Primary User",
"description": "The primary user on the account.\nThere may be only one primary user on an account.",
"_links": {
"self": {
"href": "/associations/roles/0399abed-fd3d-4830-a88b-30f38b8a365c"
}
}
},
{
"_id": "1e0c734d-f0e7-4204-942d-222a860eed03",
"_profile": "https://api.apiture.com/schemas/associations/role/v1.0.0/profile.json",
"name": "beneficiary",
"label": "Beneficiary",
"description": "An account beneficiary.",
"_links": {
"self": {
"href": "/associations/roles/1e0c734d-f0e7-4204-942d-222a860eed03"
}
}
}
]
}
}
Responses
Status | Description |
---|---|
200 | OK |
OK | |
Schema: roles |
Status | Description |
---|---|
400 | Bad Request |
Bad Request. The request body or one or more of the query parameters was not well formed. The _error field in the response will contain details about the request error. | |
Schema: errorResponse |
Status | Description |
---|---|
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 |
createRole
Code samples
# You can also use wget
curl -X POST https://api.devbank.apiture.com/associations/roles \
-H 'Content-Type: application/hal+json' \
-H 'Accept: application/hal+json' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
POST https://api.devbank.apiture.com/associations/roles HTTP/1.1
Host: api.devbank.apiture.com
Content-Type: application/hal+json
Accept: application/hal+json
var headers = {
'Content-Type':'application/hal+json',
'Accept':'application/hal+json',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.devbank.apiture.com/associations/roles',
method: 'post',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const inputBody = '{
"name": "primaryUser",
"label": "Primary User",
"description": "string",
"_links": {
"property1": {
"href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
"title": "Applicant"
},
"property2": {
"href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
"title": "Applicant"
}
},
"_embedded": {},
"_profile": "http://example.com",
"_error": {
"_id": "2eae46e1575c0a7b0115a4b3",
"message": "Descriptive error message...",
"statusCode": 422,
"type": "errorType1",
"remediation": "Remediation string...",
"occurredAt": "2018-01-25T05:50:52.375Z",
"errors": [
{
"_id": "ccdbe2c5c938a230667b3827",
"message": "An optional embedded error"
},
{
"_id": "dbe9088dcfe2460f229338a3",
"message": "Another optional embedded error"
}
],
"_links": {
"describedby": {
"href": "https://developer.apiture.com/errors/errorType1"
}
}
}
}';
const headers = {
'Content-Type':'application/hal+json',
'Accept':'application/hal+json',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.devbank.apiture.com/associations/roles',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/hal+json',
'Accept' => 'application/hal+json',
'API-Key' => 'API_KEY',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.post 'https://api.devbank.apiture.com/associations/roles',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/hal+json',
'Accept': 'application/hal+json',
'API-Key': 'API_KEY',
'Authorization': 'Bearer {access-token}'
}
r = requests.post('https://api.devbank.apiture.com/associations/roles', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.devbank.apiture.com/associations/roles");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/hal+json"},
"Accept": []string{"application/hal+json"},
"API-Key": []string{"API_KEY"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://api.devbank.apiture.com/associations/roles", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Create a new role
POST /roles
Create a new role which is used to associate two resources.
Body parameter
{
"name": "primaryUser",
"label": "Primary User",
"description": "string",
"_links": {
"property1": {
"href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
"title": "Applicant"
},
"property2": {
"href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
"title": "Applicant"
}
},
"_embedded": {},
"_profile": "http://example.com",
"_error": {
"_id": "2eae46e1575c0a7b0115a4b3",
"message": "Descriptive error message...",
"statusCode": 422,
"type": "errorType1",
"remediation": "Remediation string...",
"occurredAt": "2018-01-25T05:50:52.375Z",
"errors": [
{
"_id": "ccdbe2c5c938a230667b3827",
"message": "An optional embedded error"
},
{
"_id": "dbe9088dcfe2460f229338a3",
"message": "Another optional embedded error"
}
],
"_links": {
"describedby": {
"href": "https://developer.apiture.com/errors/errorType1"
}
}
}
}
Parameters
Parameter | Description |
---|---|
body (body) |
createRole (required) The data necessary to create a new role. |
Try It
Example responses
201 Response
{
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"_profile": "https://api.apiture.com/schemas/associations/role/v1.0.0/profile.json",
"_links": {
"self": {
"href": "/associations/roles/0399abed-fd3d-4830-a88b-30f38b8a365c"
}
},
"name": "primaryUser",
"label": "Primary User",
"createdAt": "2018-02-01T13:07:01.375Z",
"description": "The account owner has full control across the account.\n\nThere may be only one primary user."
}
Responses
Status | Description |
---|---|
201 | Created |
Created | |
Schema: role |
Status | Description |
---|---|
400 | Bad Request |
Bad Request. The request body or one or more of the query parameters was not well formed. The _error field in the response will contain details about the request error. | |
Schema: errorResponse |
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. |
getRole
Code samples
# You can also use wget
curl -X GET https://api.devbank.apiture.com/associations/roles/{roleId} \
-H 'Accept: application/hal+json' \
-H 'If-None-Match: string' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
GET https://api.devbank.apiture.com/associations/roles/{roleId} HTTP/1.1
Host: api.devbank.apiture.com
Accept: application/hal+json
If-None-Match: string
var headers = {
'Accept':'application/hal+json',
'If-None-Match':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.devbank.apiture.com/associations/roles/{roleId}',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const headers = {
'Accept':'application/hal+json',
'If-None-Match':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.devbank.apiture.com/associations/roles/{roleId}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/hal+json',
'If-None-Match' => 'string',
'API-Key' => 'API_KEY',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.get 'https://api.devbank.apiture.com/associations/roles/{roleId}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/hal+json',
'If-None-Match': 'string',
'API-Key': 'API_KEY',
'Authorization': 'Bearer {access-token}'
}
r = requests.get('https://api.devbank.apiture.com/associations/roles/{roleId}', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.devbank.apiture.com/associations/roles/{roleId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/hal+json"},
"If-None-Match": []string{"string"},
"API-Key": []string{"API_KEY"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://api.devbank.apiture.com/associations/roles/{roleId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Fetch a representation of this role
GET /roles/{roleId}
Return a HAL representation of this role resource.
Parameters
Parameter | Description |
---|---|
roleId (path) |
string (required) The unique identifier of this role. 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
Example responses
200 Response
{
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"_profile": "https://api.apiture.com/schemas/associations/role/v1.0.0/profile.json",
"_links": {
"self": {
"href": "/associations/roles/0399abed-fd3d-4830-a88b-30f38b8a365c"
}
},
"name": "primaryUser",
"label": "Primary User",
"createdAt": "2018-02-01T13:07:01.375Z",
"description": "The account owner has full control across the account.\n\nThere may be only one primary user."
}
Responses
Status | Description |
---|---|
200 | OK |
OK | |
Schema: role |
Status | Description |
---|---|
304 | Not Modified |
Not Modified. The resource has not been modified since it was last fetched. |
Status | Description |
---|---|
404 | Not Found |
Not Found. There is no such role resource at the specified {roleId} The _error field in the response will contain details about the request error. | |
Schema: errorResponse |
Status | Description |
---|---|
412 | Precondition Failed |
Precondition Failed. The supplied if-Match header value does not match the most recent ETag response header value. The resource has changed in the interim. | |
Schema: errorResponse |
Response 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 role resource. |
patchRole
Code samples
# You can also use wget
curl -X PATCH https://api.devbank.apiture.com/associations/roles/{roleId} \
-H 'Content-Type: application/hal+json' \
-H 'Accept: application/hal+json' \
-H 'If-Match: string' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
PATCH https://api.devbank.apiture.com/associations/roles/{roleId} HTTP/1.1
Host: api.devbank.apiture.com
Content-Type: application/hal+json
Accept: application/hal+json
If-Match: string
var headers = {
'Content-Type':'application/hal+json',
'Accept':'application/hal+json',
'If-Match':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.devbank.apiture.com/associations/roles/{roleId}',
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/associations/role/v1.0.0/profile.json",
"label": "primary user",
"name": "primaryUser",
"description": "The primary user for this account."
}';
const headers = {
'Content-Type':'application/hal+json',
'Accept':'application/hal+json',
'If-Match':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.devbank.apiture.com/associations/roles/{roleId}',
{
method: 'PATCH',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/hal+json',
'Accept' => 'application/hal+json',
'If-Match' => 'string',
'API-Key' => 'API_KEY',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.patch 'https://api.devbank.apiture.com/associations/roles/{roleId}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/hal+json',
'Accept': 'application/hal+json',
'If-Match': 'string',
'API-Key': 'API_KEY',
'Authorization': 'Bearer {access-token}'
}
r = requests.patch('https://api.devbank.apiture.com/associations/roles/{roleId}', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.devbank.apiture.com/associations/roles/{roleId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PATCH");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/hal+json"},
"Accept": []string{"application/hal+json"},
"If-Match": []string{"string"},
"API-Key": []string{"API_KEY"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("PATCH", "https://api.devbank.apiture.com/associations/roles/{roleId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Update this role
PATCH /roles/{roleId}
Perform a partial update of this role. 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/associations/role/v1.0.0/profile.json",
"label": "primary user",
"name": "primaryUser",
"description": "The primary user for this account."
}
Parameters
Parameter | Description |
---|---|
roleId (path) |
string (required) The unique identifier of this role. 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) |
updateRole (required) |
Try It
Example responses
200 Response
{
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"_profile": "https://api.apiture.com/schemas/associations/role/v1.0.0/profile.json",
"_links": {
"self": {
"href": "/associations/roles/0399abed-fd3d-4830-a88b-30f38b8a365c"
}
},
"name": "primaryUser",
"label": "Primary User",
"createdAt": "2018-02-01T13:07:01.375Z",
"description": "The account owner has full control across the account.\n\nThere may be only one primary user."
}
Responses
Status | Description |
---|---|
200 | OK |
OK | |
Schema: role |
Status | Description |
---|---|
400 | Bad Request |
Bad Request. The request body or one or more of the query parameters was not well formed. The _error field in the response will contain details about the request error. | |
Schema: errorResponse |
Status | Description |
---|---|
404 | Not Found |
Not Found. There is no such role resource at the specified {roleId} The _error field in the response will contain details about the request error. | |
Schema: errorResponse |
Status | Description |
---|---|
412 | Precondition Failed |
Precondition Failed. The supplied if-Match header value does not match the most recent ETag response header value. The resource has changed in the interim. | |
Schema: errorResponse |
Status | Description |
---|---|
422 | Unprocessable Entity |
Unprocessable Entity. One or more of the query parameters was well formed but otherwise invalid. The _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 role resource. |
updateRole
Code samples
# You can also use wget
curl -X PUT https://api.devbank.apiture.com/associations/roles/{roleId} \
-H 'Content-Type: application/hal+json' \
-H 'Accept: application/hal+json' \
-H 'If-Match: string' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
PUT https://api.devbank.apiture.com/associations/roles/{roleId} HTTP/1.1
Host: api.devbank.apiture.com
Content-Type: application/hal+json
Accept: application/hal+json
If-Match: string
var headers = {
'Content-Type':'application/hal+json',
'Accept':'application/hal+json',
'If-Match':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.devbank.apiture.com/associations/roles/{roleId}',
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/associations/role/v1.0.0/profile.json",
"label": "primary user",
"name": "primaryUser",
"description": "The primary user for this account."
}';
const headers = {
'Content-Type':'application/hal+json',
'Accept':'application/hal+json',
'If-Match':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.devbank.apiture.com/associations/roles/{roleId}',
{
method: 'PUT',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/hal+json',
'Accept' => 'application/hal+json',
'If-Match' => 'string',
'API-Key' => 'API_KEY',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.put 'https://api.devbank.apiture.com/associations/roles/{roleId}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/hal+json',
'Accept': 'application/hal+json',
'If-Match': 'string',
'API-Key': 'API_KEY',
'Authorization': 'Bearer {access-token}'
}
r = requests.put('https://api.devbank.apiture.com/associations/roles/{roleId}', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.devbank.apiture.com/associations/roles/{roleId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PUT");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/hal+json"},
"Accept": []string{"application/hal+json"},
"If-Match": []string{"string"},
"API-Key": []string{"API_KEY"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("PUT", "https://api.devbank.apiture.com/associations/roles/{roleId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Update this role
PUT /roles/{roleId}
Perform a complete replacement of this role.
Body parameter
{
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"_profile": "https://api.apiture.com/schemas/associations/role/v1.0.0/profile.json",
"label": "primary user",
"name": "primaryUser",
"description": "The primary user for this account."
}
Parameters
Parameter | Description |
---|---|
roleId (path) |
string (required) The unique identifier of this role. 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) |
updateRole (required) |
Try It
Example responses
200 Response
{
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"_profile": "https://api.apiture.com/schemas/associations/role/v1.0.0/profile.json",
"_links": {
"self": {
"href": "/associations/roles/0399abed-fd3d-4830-a88b-30f38b8a365c"
}
},
"name": "primaryUser",
"label": "Primary User",
"createdAt": "2018-02-01T13:07:01.375Z",
"description": "The account owner has full control across the account.\n\nThere may be only one primary user."
}
Responses
Status | Description |
---|---|
200 | OK |
OK | |
Schema: role |
Status | Description |
---|---|
400 | Bad Request |
Bad Request. The request body or one or more of the query parameters was not well formed. The _error field in the response will contain details about the request error. | |
Schema: errorResponse |
Status | Description |
---|---|
404 | Not Found |
Not Found. There is no such role resource at the specified {roleId} The _error field in the response will contain details about the request error. | |
Schema: errorResponse |
Status | Description |
---|---|
412 | Precondition Failed |
Precondition Failed. The supplied if-Match header value does not match the most recent ETag response header value. The resource has changed in the interim. | |
Schema: errorResponse |
Status | Description |
---|---|
422 | Unprocessable Entity |
Unprocessable Entity. One or more of the query parameters was well formed but otherwise invalid. The _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 role resource. |
deleteRole
Code samples
# You can also use wget
curl -X DELETE https://api.devbank.apiture.com/associations/roles/{roleId} \
-H 'Accept: application/hal+json' \
-H 'If-Match: string' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
DELETE https://api.devbank.apiture.com/associations/roles/{roleId} HTTP/1.1
Host: api.devbank.apiture.com
Accept: application/hal+json
If-Match: string
var headers = {
'Accept':'application/hal+json',
'If-Match':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.devbank.apiture.com/associations/roles/{roleId}',
method: 'delete',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const headers = {
'Accept':'application/hal+json',
'If-Match':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.devbank.apiture.com/associations/roles/{roleId}',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/hal+json',
'If-Match' => 'string',
'API-Key' => 'API_KEY',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.delete 'https://api.devbank.apiture.com/associations/roles/{roleId}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/hal+json',
'If-Match': 'string',
'API-Key': 'API_KEY',
'Authorization': 'Bearer {access-token}'
}
r = requests.delete('https://api.devbank.apiture.com/associations/roles/{roleId}', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.devbank.apiture.com/associations/roles/{roleId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/hal+json"},
"If-Match": []string{"string"},
"API-Key": []string{"API_KEY"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("DELETE", "https://api.devbank.apiture.com/associations/roles/{roleId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Delete this role resource
DELETE /roles/{roleId}
Delete this role resource and any resources that are owned by it. A role cannot be deleted if it is in use in an association.
Parameters
Parameter | Description |
---|---|
If-Match (header) |
string The entity tag that was returned in the ETag response. This must match the current entity tag of the resource. |
roleId (path) |
string (required) The unique identifier of this role. This is an opaque string. |
Try It
Example responses
412 Response
{
"_profile": "https://api.apiture.com/schemas/common/errorResponse/v2.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. |
Status | Description |
---|---|
412 | Precondition Failed |
Precondition Failed. The supplied if-Match header value does not match the most recent ETag response header value. The resource has changed in the interim. | |
Schema: errorResponse |
Schemas
association
{
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"_profile": "https://api.apiture.com/schemas/associations/association/v1.0.0/profile.json",
"_links": {
"apiture:role": {
"href": "/associations/roles/e4f09b4d-eba6-46da-86d3-ba28595067cd"
},
"apiture:source": {
"href": "/accounts/accounts/540f4849-0df4-4fbc-b987-6ad1f29998ed"
},
"apiture:target": {
"href": "/users/users/540f4849-0df4-4fbc-b987-6ad1f29998ed"
}
},
"sourceUri": "/accounts/accounts/540f4849-0df4-4fbc-b987-6ad1f29998ed",
"roleUri": "/associations/roles/e4f09b4d-eba6-46da-86d3-ba28595067cd",
"roleName": "primaryUser",
"targetUri": "/users/users/540f4849-0df4-4fbc-b987-6ad1f29998ed",
"_embedded": {
"source": {
"_id": "4222e6e8-bd85-487e-8864-ec16a0b0d058",
"_profile": "https://api.apiture.com/schemas/accounts/v1.0.0/profile.json",
"type": "account",
"name": "Personal Checking",
"TODO": "Refine this example when Accounts API is defined."
},
"role": {
"_id": "c83790c9-8bcb-4754-a989-7a45342697cb",
"_profile": "https://api.apiture.com/schemas/associations/role/v1.0.0/profile.json",
"name": "primaryUser",
"label": "Primary User",
"description": "The account owner has full control across the account. For personal accounts, the primary user is also known as the account owner. For organization accounts, the organization is the \"owner\"; the primary user is the person who is granted administration permissions on the account, which includes managing permissions and roles of other users associated with the account.\nThere may be only one primary user."
},
"target": {
"_id": "4222e6e8-bd85-487e-8864-ec16a0b0d058",
"_profile": "https://api.apiture.com/schemas/user/v1.0.0/profile.json",
"type": "user",
"firstName": "Bobette",
"middleName": "",
"lastName": "Wellphunded",
"TODO": "Refine this example when Users API is defined."
}
}
}
Association (Version v1.0.0
)
Representation of an association between two resources. When used to create a new association, the request must contain links to the elements of the association: a role (apiture:role
) a source resource (apiture:source
) and a target resource (apiture:target
). In many cases, the target resource is a person or user; a source or target may be any resource.
Properties
Name | Description |
---|---|
sourceUri | string The URI of association source resource. |
roleUri | string The URI of association role resource. |
roleName | string The name of the role used to associate two resources. This is a derived value and is ignored on updates. |
targetUri | string The URI of association target resource. |
attributes | attributes Data attribute associated with the error, such as values or constraints. |
_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 The objects which participate in this association |
» source | object The source resource for this association. |
» role | role The role for this association |
» target | object The target resource for this association. |
_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 The unique identifier for this association resource. This is an immutable opaque string. read-only
|
createdAt | string(date-time) The date-time when the association was created. This is in ISO 8601 format, UTC. This is derived and immutable. read-only
|
updateAssociation
{
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"_profile": "https://api.apiture.com/schemas/associations/associations/v1.0.0/profile.json"
}
Update Association (Version v1.0.0
)
Representation used to update or patch an association.
Properties
Name | Description |
---|---|
sourceUri | string The URI of association source resource. |
roleUri | string The URI of association role resource. |
roleName | string The name of the role used to associate two resources. This is a derived value and is ignored on updates. |
targetUri | string The URI of association target resource. |
attributes | attributes Data attribute associated with the error, such as values or constraints. |
_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. |
_id | string The unique identifier for this association resource. This is an immutable opaque string. read-only
|
summaryAssociation
{
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"_profile": "https://api.apiture.com/schemas/associations/associations/v1.0.0/profile.json",
"_links": {
"self": {
"href": "/associations/associations/0399abed-fd3d-4830-a88b-30f38b8a365c"
}
}
}
Association Summary (Version v1.0.0
)
Summary representation of an association resource in associations collections.
Properties
Name | Description |
---|---|
sourceUri | string The URI of association source resource. |
roleUri | string The URI of association role resource. |
roleName | string The name of the role used to associate two resources. This is a derived value and is ignored on updates. |
targetUri | string The URI of association target resource. |
attributes | attributes Data attribute associated with the error, such as values or constraints. |
_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. |
_id | string The unique identifier for this association resource. This is an immutable opaque string. read-only
|
createAssociation
{
"sourceUri": "string",
"roleUri": "string",
"roleName": "string",
"targetUri": "string",
"attributes": {
"property1": {},
"property2": {}
},
"_links": {
"property1": {
"href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
"title": "Applicant"
},
"property2": {
"href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
"title": "Applicant"
}
},
"_embedded": {},
"_profile": "http://example.com",
"_error": {
"_id": "2eae46e1575c0a7b0115a4b3",
"message": "Descriptive error message...",
"statusCode": 422,
"type": "errorType1",
"remediation": "Remediation string...",
"occurredAt": "2018-01-25T05:50:52.375Z",
"errors": [
{
"_id": "ccdbe2c5c938a230667b3827",
"message": "An optional embedded error"
},
{
"_id": "dbe9088dcfe2460f229338a3",
"message": "Another optional embedded error"
}
],
"_links": {
"describedby": {
"href": "https://developer.apiture.com/errors/errorType1"
}
}
}
}
Create Association (Version v1.0.0
)
Representation used to create a new association.
Properties
Name | Description |
---|---|
sourceUri | string (required) The URI of association source resource. |
roleUri | string (required) The URI of association role resource. |
roleName | string The name of the role used to associate two resources. This is a derived value and is ignored on updates. |
targetUri | string (required) The URI of association target resource. |
attributes | attributes Data attribute associated with the error, such as values or constraints. |
_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. |
associationFields
{
"sourceUri": "/accounts/accounts/540f4849-0df4-4fbc-b987-6ad1f29998ed",
"roleUri": "/associations/roles/e4f09b4d-eba6-46da-86d3-ba28595067cd",
"roleName": "primaryUser",
"targetUri": "/users/users/540f4849-0df4-4fbc-b987-6ad1f29998ed"
}
Association Fields (Version v1.0.0
)
Core fields of the association resource used to build other model schema.
Properties
Name | Description |
---|---|
sourceUri | string The URI of association source resource. |
roleUri | string The URI of association role resource. |
roleName | string The name of the role used to associate two resources. This is a derived value and is ignored on updates. |
targetUri | string The URI of association target resource. |
attributes | attributes Data attribute associated with the error, such as values or constraints. |
associations
{
"_profile": "https://api.apiture.com/schemas/associations/association/v1.0.0/profile.json",
"start": 10,
"limit": 10,
"count": 67,
"name": "associations",
"_links": {
"self": {
"href": "/associations/associations?start=10&limit=10"
},
"first": {
"href": "/associations/associations?start=0&limit=10"
},
"next": {
"href": "/associations/associations?start=20&limit=10"
},
"collection": {
"href": "/associations/associations"
}
},
"_embedded": {
"items": [
{
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"_profile": "https://api.apiture.com/schemas/associations/association/v1.0.0/profile.json",
"_links": {
"self": {
"href": "/associations/associations/0399abed-fd3d-4830-a88b-30f38b8a365c"
}
},
"roleName": "primaryUser",
"_embedded": {
"role": {
"_id": "c83790c9-8bcb-4754-a989-7a45342697cb",
"_profile": "https://api.apiture.com/schemas/associations/role/v1.0.0/profile.json",
"name": "primaryUser",
"label": "primaryUser",
"description": "The account owner has full control across the account. For personal accounts, the orimary user is also known as the account owner. For organization accounts, the organization is the \"owner\"; the primary user is the person who is granted administration permissions on the account, which includes managing permissions and roles of other users associated with the account.\nThere may be only one primary user."
},
"target": {
"_id": "4222e6e8-bd85-487e-8864-ec16a0b0d058",
"_profile": "https://api.apiture.com/schemas/user/v1.0.0/profile.json",
"type": "user",
"firstName": "Bobette",
"middleName": "",
"lastName": "Wellphunded"
},
"source": {
"_id": "4222e6e8-bd85-487e-8864-ec16a0b0d058",
"_profile": "https://api.apiture.com/schemas/accounts/v1.0.0/profile.json",
"type": "account",
"name": "Personal Checking"
}
}
}
]
}
}
Association Collection (Version v1.0.0
)
Collection of associations. The items in the collection are ordered in the _embedded
object with name items
. The top-level _links
object may contain pagination links (self
, next
, prev
, first
, last
, collection
).
Properties
Name | Description |
---|---|
_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 |
» items | [summaryAssociation] An array containing a page of association 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 may be omitted if the count is not computable efficiently. If a filter is applied to the collection (either implicitly or explicitly), the count, if present, indicates the number of items that satisfy the filter. |
start | integer The start index of this page of items. |
limit | integer The maximum number of items per page. |
name | string The name of the collection. |
roleFields
{
"name": "primaryUser",
"label": "Primary User",
"description": "The primary user on the account.\nThere may be only one primary user on an account."
}
Role Fields (Version v1.0.0
)
Core fields of the role resource used to build other model schema.
Properties
Name | Description |
---|---|
name | string The name of this role, for identification purposes, such as primaryOwner , beneficiary , authorizedSigner . Some roles have well-known uses in the platform.
minLength: 1
maxLength: 128
|
label | string The text label for this role, for use in human presentation. This field may be localized. minLength: 1
maxLength: 128
|
description | string A fuller description of this role. This field may be localized. minLength: 1
maxLength: 4096
|
summaryRole
{
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"_profile": "https://api.apiture.com/schemas/associations/role/v1.0.0/profile.json",
"name": "primaryUser",
"label": "Primary User",
"description": "The primary user on the account.\nThere may be only one primary user on an account.",
"_links": {
"self": {
"href": "/associations/roles/0399abed-fd3d-4830-a88b-30f38b8a365c"
}
}
}
Role Summary (Version v1.0.0
)
Summary representation of a role resource in roles 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.
Properties
Name | Description |
---|---|
name | string The name of this role, for identification purposes, such as primaryOwner , beneficiary , authorizedSigner . Some roles have well-known uses in the platform.
minLength: 1
maxLength: 128
|
label | string The text label for this role, for use in human presentation. This field may be localized. minLength: 1
maxLength: 128
|
description | string A fuller description of this role. This field may be localized. minLength: 1
maxLength: 4096
|
_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. |
_id | string The unique identifier for this role resource. This is an immutable opaque string. read-only
|
createRole
{
"name": "primaryUser",
"label": "Primary User",
"description": "string",
"_links": {
"property1": {
"href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
"title": "Applicant"
},
"property2": {
"href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
"title": "Applicant"
}
},
"_embedded": {},
"_profile": "http://example.com",
"_error": {
"_id": "2eae46e1575c0a7b0115a4b3",
"message": "Descriptive error message...",
"statusCode": 422,
"type": "errorType1",
"remediation": "Remediation string...",
"occurredAt": "2018-01-25T05:50:52.375Z",
"errors": [
{
"_id": "ccdbe2c5c938a230667b3827",
"message": "An optional embedded error"
},
{
"_id": "dbe9088dcfe2460f229338a3",
"message": "Another optional embedded error"
}
],
"_links": {
"describedby": {
"href": "https://developer.apiture.com/errors/errorType1"
}
}
},
"_id": "string"
}
Create Role (Version v1.0.0
)
Representation used to create a new role.
Properties
Name | Description |
---|---|
name | string (required) The name of this role, for identification purposes, such as primaryOwner , beneficiary , authorizedSigner . Some roles have well-known uses in the platform.
minLength: 1
maxLength: 128
|
label | string (required) The text label for this role, for use in human presentation. This field may be localized. minLength: 1
maxLength: 128
|
description | string A fuller description of this role. This field may be localized. minLength: 1
maxLength: 4096
|
_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. |
_id | string The unique identifier for this role resource. This is an immutable opaque string. read-only
|
updateRole
{
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"_profile": "https://api.apiture.com/schemas/associations/role/v1.0.0/profile.json",
"label": "primary user",
"name": "primaryUser",
"description": "The primary user for this account."
}
Update Role (Version v1.0.0
)
Representation used to update or patch a role.
Properties
Name | Description |
---|---|
name | string The name of this role, for identification purposes, such as primaryOwner , beneficiary , authorizedSigner . Some roles have well-known uses in the platform.
minLength: 1
maxLength: 128
|
label | string The text label for this role, for use in human presentation. This field may be localized. minLength: 1
maxLength: 128
|
description | string A fuller description of this role. This field may be localized. minLength: 1
maxLength: 4096
|
_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. |
_id | string The unique identifier for this role resource. This is an immutable opaque string. read-only
|
role
{
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"_profile": "https://api.apiture.com/schemas/associations/role/v1.0.0/profile.json",
"_links": {
"self": {
"href": "/associations/roles/0399abed-fd3d-4830-a88b-30f38b8a365c"
}
},
"name": "primaryUser",
"label": "Primary User",
"createdAt": "2018-02-01T13:07:01.375Z",
"description": "The account owner has full control across the account.\n\nThere may be only one primary user."
}
Role (Version v1.0.0
)
Representation of a role resource. Roles are used to associate resources. The most common roles may be related to entitlements(users) but can also be applied to organizations or non-users (such as beneficiaries, payees, etc.).
Properties
Name | Description |
---|---|
name | string The name of this role, for identification purposes, such as primaryOwner , beneficiary , authorizedSigner . Some roles have well-known uses in the platform.
minLength: 1
maxLength: 128
|
label | string The text label for this role, for use in human presentation. This field may be localized. minLength: 1
maxLength: 128
|
description | string A fuller description of this role. This field may be localized. minLength: 1
maxLength: 4096
|
_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. |
_id | string The unique identifier for this role resource. This is an immutable opaque string. read-only
|
createdAt | string(date-time) The date-time when the role was created. This is in ISO 8601 format, UTC. This is derived and immutable. read-only
|
roles
{
"_profile": "https://api.apiture.com/schemas/associations/roles/v1.0.0/profile.json",
"start": 10,
"limit": 10,
"count": 67,
"name": "roles",
"_links": {
"self": {
"href": "/associations/roles?start=10&limit=10"
},
"first": {
"href": "/associations/roles?start=0&limit=10"
},
"next": {
"href": "/associations/roles?start=20&limit=10"
},
"collection": {
"href": "/associations/roles"
}
},
"_embedded": {
"items": [
{
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"_profile": "https://api.apiture.com/schemas/associations/role/v1.0.0/profile.json",
"name": "primaryUser",
"label": "Primary User",
"description": "The primary user on the account.\nThere may be only one primary user on an account.",
"_links": {
"self": {
"href": "/associations/roles/0399abed-fd3d-4830-a88b-30f38b8a365c"
}
}
},
{
"_id": "1e0c734d-f0e7-4204-942d-222a860eed03",
"_profile": "https://api.apiture.com/schemas/associations/role/v1.0.0/profile.json",
"name": "beneficiary",
"label": "Beneficiary",
"description": "An account beneficiary.",
"_links": {
"self": {
"href": "/associations/roles/1e0c734d-f0e7-4204-942d-222a860eed03"
}
}
}
]
}
}
Role Collection (Version v1.0.0
)
Collection of roles. The items in the collection are ordered in the _embedded
object with name items
. The top-level _links
object may contain pagination links (self
, next
, prev
, first
, last
, collection
).
Properties
Name | Description |
---|---|
_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 |
» items | [summaryRole] An array containing a page of role 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 may be omitted if the count is not computable efficiently. If a filter is applied to the collection (either implicitly or explicitly), the count, if present, indicates the number of items that satisfy the filter. |
start | integer The start index of this page of items. |
limit | integer The maximum number of items per page. |
name | string The name of the collection. |
attributes
{
"property1": {},
"property2": {}
}
Attributes (Version v2.0.0
)
An optional map of name/value pairs which contains additional dynamic data about the resource.
Properties
Name | Description |
---|---|
additionalProperties | attributeValue The data associated with this attribute. |
root
{
"id": "apiName",
"name": "API name",
"apiVersion": "1.0.0",
"_profile": "https://production.api.apiture.com/schemas/common/root/v2.0.0/profile.json",
"_links": {}
}
API Root (Version v2.0.0
)
A HAL response, with hypermedia _links
for the top-level resources and operations in API.
Properties
Name | Description |
---|---|
_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. |
_id | string This API's unique ID. read-only
|
name | string This API's name. |
apiVersion | string This API's version. |
errorResponse
{
"_profile": "https://api.apiture.com/schemas/common/errorResponse/v2.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 (Version v2.0.0
)
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 | 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. |
abstractResource
{
"_profile": "{uri of resource profile.json}",
"_links": {
"self": {
"href": "{uri of current resource}"
}
}
}
Abstract Resource (Version v2.0.0
)
An abstract schema used to define other schemas for request and response bodies. This is a HAL resource representation. This model contains hypermedia _links
, and either optional domain object data with _profile
and optional _embedded
objects, or an _error
object. In responses, if the operation was successful, this object will not include the _error
, but if the operation was a 4xx or 5xx error, this object will not include _embedded
or any data fields, only _error
and optionally _links
.
Properties
Name | Description |
---|---|
_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. |
collection
{
"_links": {
"property1": {
"href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
"title": "Applicant"
},
"property2": {
"href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
"title": "Applicant"
}
},
"_embedded": {},
"_profile": "http://example.com",
"_error": {
"_id": "2eae46e1575c0a7b0115a4b3",
"message": "Descriptive error message...",
"statusCode": 422,
"type": "errorType1",
"remediation": "Remediation string...",
"occurredAt": "2018-01-25T05:50:52.375Z",
"errors": [
{
"_id": "ccdbe2c5c938a230667b3827",
"message": "An optional embedded error"
},
{
"_id": "dbe9088dcfe2460f229338a3",
"message": "Another optional embedded error"
}
],
"_links": {
"describedby": {
"href": "https://developer.apiture.com/errors/errorType1"
}
}
},
"count": 0,
"start": 0,
"limit": 0,
"name": "string"
}
Collection (Version v2.0.0
)
A collection of resources. This is an abstract model schema which is extended to define specific resource collections.
Properties
Name | Description |
---|---|
_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. |
count | integer The number of items in the collection. This value is optional and may be omitted if the count is not computable efficiently. If a filter is applied to the collection (either implicitly or explicitly), the count, if present, indicates the number of items that satisfy the filter. |
start | integer The start index of this page of items. |
limit | integer The maximum number of items per page. |
name | string The name of the collection. |
abstractRequest
{
"_profile": "{uri of resource profile.json}",
"_links": {
"self": {
"href": "{uri of current resource}"
}
}
}
Abstract Request (Version v2.0.0
)
An abstract schema used to define other request-only schemas. This is a HAL resource representation, minus the _error
defined in abstractResource
.
Properties
Name | Description |
---|---|
_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
{
"_id": "2eae46e1575c0a7b0115a4b3",
"message": "Descriptive error message...",
"statusCode": 422,
"type": "errorType1",
"remediation": "Remediation string...",
"occurredAt": "2018-01-25T05:50:52.375Z",
"errors": [
{
"_id": "ccdbe2c5c938a230667b3827",
"message": "An optional embedded error"
},
{
"_id": "dbe9088dcfe2460f229338a3",
"message": "Another optional embedded error"
}
],
"_links": {
"describedby": {
"href": "https://developer.apiture.com/errors/errorType1"
}
}
}
Error (Version v2.0.0
)
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. read-only
|
statusCode | integer The HTTP status code associate with this error. minimum: 100
maximum: 599
|
type | string An error identifier which indicates the category of error and associate it with API support documentation or which the UI tier can use to render an appropriate message or hint. This provides a finer level of granularity than the statusCode . For example, instead of just 400 Bad Request, the type may be much more specific. such as integerValueNotInAllowedRange or numericValueExceedsMaximum or stringValueNotInAllowedSet .
|
occurredAt | string(date-time) An RFC 3339 UTC time stamp indicating when the error occurred. |
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.
|
links
{
"property1": {
"href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
"title": "Applicant"
},
"property2": {
"href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
"title": "Applicant"
}
}
Links (Version v1.0.0
)
An optional map of links, mapping each link relation to a link object. This model defines the _links
object of HAL representations.
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 (Version v1.0.0
)
Describes a hypermedia link within a _links
object in HAL representations. In Apiture APIs, links are HAL links, but Apiture APIs do not use the name
or hreflang
properties of HAL. Apiture links may include a method
property.
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. |
attributeValue
{}
Attribute Value (Version v2.0.0
)
The data associated with this attribute.