Shell HTTP JavaScript Node.JS Ruby Python Java Go

Associations v0.7.8

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:

Terms of service

Email: Apiture Web: Apiture

Authentication

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 /associations/ \
  -H 'Accept: application/hal+json' \
  -H 'API-Key: API_KEY'

GET /associations/ HTTP/1.1

Accept: application/hal+json

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

};

$.ajax({
  url: '/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('/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 '/associations/',
  params: {
  }, headers: headers

p JSON.parse(result)

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

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

}, headers = headers)

print r.json()

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

StatusDescription
200 OK
OK
Schema: root

getApiDoc

Code samples

# You can also use wget
curl -X GET /associations/apiDoc \
  -H 'Accept: application/json' \
  -H 'API-Key: API_KEY'

GET /associations/apiDoc HTTP/1.1

Accept: application/json

var headers = {
  'Accept':'application/json',
  'API-Key':'API_KEY'

};

$.ajax({
  url: '/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('/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 '/associations/apiDoc',
  params: {
  }, headers: headers

p JSON.parse(result)

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

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

}, headers = headers)

print r.json()

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

StatusDescription
200 OK
OK
Schema: Inline

Response Schema

Association

Association between Two Resources

getAssociations

Code samples

# You can also use wget
curl -X GET /associations/associations \
  -H 'Accept: application/hal+json' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

GET /associations/associations HTTP/1.1

Accept: application/hal+json

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

};

$.ajax({
  url: '/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('/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 '/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('/associations/associations', params={

}, headers = headers)

print r.json()

URL obj = new URL("/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", "/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.
Default: 100
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 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 associations 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 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

StatusDescription
200 OK
OK
Schema: associations
StatusDescription
400 Bad Request
Bad Request. The request body or one or more of the query parameters was not well formed. The _error field in the response will contain details about the request error.
Schema: errorResponse
StatusDescription
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 /associations/associations \
  -H 'Content-Type: application/hal+json' \
  -H 'Accept: application/hal+json' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

POST /associations/associations HTTP/1.1

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

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

};

$.ajax({
  url: '/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('/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 '/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('/associations/associations', params={

}, headers = headers)

print r.json()

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

StatusDescription
201 Created
Created. A representation of the new association is returned, including the self link, the role, source and target of the association.
Schema: association
StatusDescription
400 Bad Request
Bad Request. The request body or one or more of the query parameters was not well formed. The _error field in the response will contain details about the request error.
Schema: errorResponse

Response Headers

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

getAssociation

Code samples

# You can also use wget
curl -X GET /associations/associations/{associationId} \
  -H 'Accept: application/hal+json' \
  -H 'If-None-Match: string' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

GET /associations/associations/{associationId} HTTP/1.1

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

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

};

$.ajax({
  url: '/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('/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 '/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('/associations/associations/{associationId}', params={

}, headers = headers)

print r.json()

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

StatusDescription
200 OK
OK
Schema: association
StatusDescription
304 Not Modified
Not Modified. The resource has not been modified since it was last fetched.
StatusDescription
404 Not Found
Not Found. There is no such association resource at the specified {associationId} The _error field in the response will contain details about the request error.
Schema: errorResponse

Response Headers

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

patchAssociation

Code samples

# You can also use wget
curl -X PATCH /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 /associations/associations/{associationId} HTTP/1.1

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

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

};

$.ajax({
  url: '/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('/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 '/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('/associations/associations/{associationId}', params={

}, headers = headers)

print r.json()

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

StatusDescription
200 OK
OK
Schema: association
StatusDescription
400 Bad Request
Bad Request. The request body or one or more of the query parameters was not well formed. The _error field in the response will contain details about the request error.
Schema: errorResponse
StatusDescription
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
StatusDescription
412 Precondition Failed
Precondition Failed. The supplied if-Match header value does not match the most recent ETag response header value. The resource has changed in the interim.
Schema: errorResponse
StatusDescription
422 Unprocessable Entity
Unprocessable Entity. One or more of the query parameters was well formed but otherwise invalid. The _error field in the response will contain details about the request error.
Schema: errorResponse

Response Headers

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

deleteAssociation

Code samples

# You can also use wget
curl -X DELETE /associations/associations/{associationId} \
  -H 'Accept: application/hal+json' \
  -H 'If-Match: string' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

DELETE /associations/associations/{associationId} HTTP/1.1

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

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

};

$.ajax({
  url: '/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('/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 '/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('/associations/associations/{associationId}', params={

}, headers = headers)

print r.json()

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

StatusDescription
204 No Content
No Content. The resource was deleted successfully.
StatusDescription
412 Precondition Failed
Precondition Failed. The supplied if-Match header value does not match the most recent ETag response header value. The resource has changed in the interim.
Schema: errorResponse

Role

The Role of an Association

getRoles

Code samples

# You can also use wget
curl -X GET /associations/roles \
  -H 'Accept: application/hal+json' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

GET /associations/roles HTTP/1.1

Accept: application/hal+json

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

};

$.ajax({
  url: '/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('/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 '/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('/associations/roles', params={

}, headers = headers)

print r.json()

URL obj = new URL("/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", "/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.
Default: 100
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 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 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": {
      "anyOf": [
        {
          "_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

StatusDescription
200 OK
OK
Schema: roles
StatusDescription
400 Bad Request
Bad Request. The request body or one or more of the query parameters was not well formed. The _error field in the response will contain details about the request error.
Schema: errorResponse
StatusDescription
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 /associations/roles \
  -H 'Content-Type: application/hal+json' \
  -H 'Accept: application/hal+json' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

POST /associations/roles HTTP/1.1

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

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

};

$.ajax({
  url: '/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('/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 '/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('/associations/roles', params={

}, headers = headers)

print r.json()

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

StatusDescription
201 Created
Created
Schema: role
StatusDescription
400 Bad Request
Bad Request. The request body or one or more of the query parameters was not well formed. The _error field in the response will contain details about the request error.
Schema: errorResponse

Response Headers

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

getRole

Code samples

# You can also use wget
curl -X GET /associations/roles/{roleId} \
  -H 'Accept: application/hal+json' \
  -H 'If-None-Match: string' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

GET /associations/roles/{roleId} HTTP/1.1

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

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

};

$.ajax({
  url: '/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('/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 '/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('/associations/roles/{roleId}', params={

}, headers = headers)

print r.json()

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

StatusDescription
200 OK
OK
Schema: role
StatusDescription
304 Not Modified
Not Modified. The resource has not been modified since it was last fetched.
StatusDescription
404 Not Found
Not Found. There is no such role resource at the specified {roleId} The _error field in the response will contain details about the request error.
Schema: errorResponse
StatusDescription
412 Precondition Failed
Precondition Failed. The supplied if-Match header value does not match the most recent ETag response header value. The resource has changed in the interim.
Schema: errorResponse

Response Headers

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

patchRole

Code samples

# You can also use wget
curl -X PATCH /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 /associations/roles/{roleId} HTTP/1.1

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

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

};

$.ajax({
  url: '/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('/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 '/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('/associations/roles/{roleId}', params={

}, headers = headers)

print r.json()

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

StatusDescription
200 OK
OK
Schema: role
StatusDescription
400 Bad Request
Bad Request. The request body or one or more of the query parameters was not well formed. The _error field in the response will contain details about the request error.
Schema: errorResponse
StatusDescription
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
StatusDescription
409 Conflict
Conflict. There is a conflict between the request and the current state of the resource. It may be one of the following:
Schema: errorResponse
StatusDescription
412 Precondition Failed
Precondition Failed. The supplied if-Match header value does not match the most recent ETag response header value. The resource has changed in the interim.
Schema: errorResponse
StatusDescription
422 Unprocessable Entity
Unprocessable Entity. One or more of the query parameters was well formed but otherwise invalid. The _error field in the response will contain details about the request error.
Schema: errorResponse

Response Headers

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

updateRole

Code samples

# You can also use wget
curl -X PUT /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 /associations/roles/{roleId} HTTP/1.1

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

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

};

$.ajax({
  url: '/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('/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 '/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('/associations/roles/{roleId}', params={

}, headers = headers)

print r.json()

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

StatusDescription
200 OK
OK
Schema: role
StatusDescription
400 Bad Request
Bad Request. The request body or one or more of the query parameters was not well formed. The _error field in the response will contain details about the request error.
Schema: errorResponse
StatusDescription
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
StatusDescription
412 Precondition Failed
Precondition Failed. The supplied if-Match header value does not match the most recent ETag response header value. The resource has changed in the interim.
Schema: errorResponse
StatusDescription
422 Unprocessable Entity
Unprocessable Entity. One or more of the query parameters was well formed but otherwise invalid. The _error field in the response will contain details about the request error.
Schema: errorResponse

Response Headers

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

deleteRole

Code samples

# You can also use wget
curl -X DELETE /associations/roles/{roleId} \
  -H 'Accept: application/hal+json' \
  -H 'If-Match: string' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

DELETE /associations/roles/{roleId} HTTP/1.1

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

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

};

$.ajax({
  url: '/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('/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 '/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('/associations/roles/{roleId}', params={

}, headers = headers)

print r.json()

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

409 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

StatusDescription
204 No Content
No Content. The resource was deleted successfully.
StatusDescription
409 Conflict
Conflict. There is a conflict between the request and the current state of the resource. It may be one of the following:
Schema: errorResponse
StatusDescription
412 Precondition Failed
Precondition Failed. The supplied if-Match header value does not match the most recent ETag response header value. The resource has changed in the interim.
Schema: errorResponse

Schemas

abstractRequest

{
  "_profile": "{uri of resource profile.json}",
  "_links": {
    "self": {
      "href": "{uri of current resource}"
    }
  }
}

Abstract Request (v2.0.0)

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

Properties

NameDescription
_links links
An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
_embedded object
An optional map of nested resources, mapping each nested resource name to a nested resource representation.
_profile string(uri)
The URI of a resource profile which describes the representation.

abstractResource

{
  "_profile": "{uri of resource profile.json}",
  "_links": {
    "self": {
      "href": "{uri of current resource}"
    }
  }
}

Abstract Resource (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

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

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

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

NameDescription
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

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

Core fields of the association resource used to build other model schema.

Properties

NameDescription
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

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

NameDescription
_links links
An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
_embedded object
Embedded objects.
» 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.

attributeValue

{}

Attribute Value (v2.0.0)

The data associated with this attribute.

Properties

attributes

{
  "property1": {},
  "property2": {}
}

Attributes (v2.0.0)

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

Properties

NameDescription
additionalProperties attributeValue
The data associated with this attribute.

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 (v2.0.0)

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

Properties

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

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

Representation used to create a new association.

Properties

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

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

Representation used to create a new role.

Properties

NameDescription
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

error

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

Error (v2.0.0)

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

Properties

NameDescription
message string (required)
A localized message string describing the error condition.
_id string
A unique identifier for this error instance. This may be used as a correlation ID with the root cause error (i.e. this ID may be logged at the source of the error). This is is an opaque string.
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.

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

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

{
  "href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
  "title": "Applicant"
}

Link (v1.0.0)

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

Properties

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

{
  "property1": {
    "href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
    "title": "Applicant"
  },
  "property2": {
    "href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
    "title": "Applicant"
  }
}

Links (v1.0.0)

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

Properties

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

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

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

NameDescription
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

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

Core fields of the role resource used to build other model schema.

Properties

NameDescription
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

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": {
      "anyOf": [
        {
          "_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

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

NameDescription
_links links
An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
_embedded object
Embedded objects.
» 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.

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 (v2.0.0)

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

Properties

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

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

Summary representation of an association resource in associations collections.

Properties

NameDescription
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

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

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

NameDescription
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

updateAssociation

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

Update Association

Representation used to update or patch an association.

Properties

NameDescription
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

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

Representation used to update or patch a role.

Properties

NameDescription
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