Accounts v0.24.2
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 Accounts API manages banking accounts for bank customers. This API manages two primary types of resources:
- Accounts (or internal accounts) are those controlled by the financial institution (FI). Account holders can perform a various operations on such accounts: Users may view balances and account details, open new accounts, lock internal accounts, blocking new banking activity on the account until they unlock it. Users may also close accounts. The FI can freeze or unfreeze accounts if they suspect fraudulent or other malicious or suspicious activity. Users map also transfer money, view transactions, etc. using other Apiture APIs.
- External Accounts are accounts controlled by an external financial institution. These are also known as linked accounts. The user can perform fewer operations on external accounts, primarily scheduling transfers between and an external account and an internal account, using other Apiture APIs.
Accounts are instances of a banking product (see the Products API). The product defines the type, rate, terms, attributes, and capabilities of accounts attached to the product. Accounts may be either personal accounts (also known as retail accounts) or business accounts (accounts for businesses, institutions, trusts, non-profits, etc., also known as commercial accounts).
A user can list their existing accounts and see the balances of those accounts (based on entitlements) and may have permission to change the account name and label and description. Each account has a primary user, which is a bank user (via the Users service). The primary user has full management and entitlements for the account, receives mailings such as statements or tax documents.
For personal (retail) accounts, an account has a primary owner and may have additional joint owners. For business (commercial) accounts, the account owner is the business organization and one or more authorized signers who have account access entitlements.
Because the account number is sensitive data, it is not included by
default in account representations. The masked account number is
returned in the accountNumbers
object. To also receive the full
account number when fetching an account, include the ?unmasked=true
option. When linking an external account, the full account number
should be in the accountNumbers.full
property in the request. The accountNumbers.full
property is included with the 201 response of creating an account.
This API also manages additional resources which are associated with accounts. For personal accounts, one can get the list of owners (the primary owner and joint owners). The account owner can also view and update the account's beneficiaries. For business accounts, the account holders can view the account's authorized signers: those who have authorization to conduct activity against the account.
Download OpenAPI Definition (YAML)
Base URLs:
Authentication
- API Key (
apiKey
)- header parameter: API-Key
- API Key based authentication. Each client application must pass its private, unique API key, allocated in the developer portal, via the
API-Key: {api-key}
request header.
- OAuth2 authentication (
accessToken
)- OAuth2 client access token authentication. The client authenticates against the server at
authorizationUrl
, passing the client's privateclientId
(and optionalclientSecret
) as part of this flow. The client obtains an access token from the server attokenUrl
. It then passes the received access token via theAuthorization: Bearer {access-token}
header in subsequent API calls. The authorization process also returns a refresh token which the client should use to renew the access token before it expires. - Flow:
authorizationCode
- Authorization URL = /auth/oauth2/authorize
- Token URL = /auth/oauth2/token
- OAuth2 client access token authentication. The client authenticates against the server at
Scope | Scope Description |
---|---|
banking/read |
Read access to accounts and account-related resources such as transfers and transactions. |
banking/write |
Write (update) access to accounts and account-related resources such as transfers and transactions. |
banking/delete |
Delete access to deletable accounts and account-related resources such as transfers. |
banking/readBalance |
Read access to account balances. This must be granted in addition to the apiture/readBanking scope in order to view balances, but is included in the banking/full scope. |
banking/full |
Full access to accounts and account-related resources such as transfers and transactions. |
API
The Accounts API
getApi
Code samples
# You can also use wget
curl -X GET https://api.devbank.apiture.com/accounts/ \
-H 'Accept: application/hal+json' \
-H 'API-Key: API_KEY'
GET https://api.devbank.apiture.com/accounts/ HTTP/1.1
Host: api.devbank.apiture.com
Accept: application/hal+json
var headers = {
'Accept':'application/hal+json',
'API-Key':'API_KEY'
};
$.ajax({
url: 'https://api.devbank.apiture.com/accounts/',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const headers = {
'Accept':'application/hal+json',
'API-Key':'API_KEY'
};
fetch('https://api.devbank.apiture.com/accounts/',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/hal+json',
'API-Key' => 'API_KEY'
}
result = RestClient.get 'https://api.devbank.apiture.com/accounts/',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/hal+json',
'API-Key': 'API_KEY'
}
r = requests.get('https://api.devbank.apiture.com/accounts/', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.devbank.apiture.com/accounts/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/hal+json"},
"API-Key": []string{"API_KEY"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://api.devbank.apiture.com/accounts/", 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:accounts
: links to the collection of accounts held at this financial institution.apiture:externalAccounts
: links to the collection of external accounts held at other financial institutions.
Try it
Fields marked with * are mandatory.
Response
Response Code:
Response Headers:
Response Body:
Click on 'Try It' to get a response.
Example responses
OK
{
"id": "accounts",
"name": "User Bank Accounts",
"apiVersion": "0.3.0",
"_profile": "https://api.apiture.com/schemas/common/root/v.0.1.0/profile.json",
"_links": {
"apiture:accounts": {
"href": "/accounts/accounts"
},
"apiture:externalAccounts": {
"href": "/accounts/externalAccounts"
}
}
}
200 Response
{
"id": "apiName",
"name": "API name",
"apiVersion": "1.0.0",
"_profile": "http://localhost:8080/schemas/common/root/v1.0.0/profile.json",
"_links": {}
}
Responses
getApiDoc
Code samples
# You can also use wget
curl -X GET https://api.devbank.apiture.com/accounts/apiDoc \
-H 'Accept: application/json' \
-H 'API-Key: API_KEY'
GET https://api.devbank.apiture.com/accounts/apiDoc HTTP/1.1
Host: api.devbank.apiture.com
Accept: application/json
var headers = {
'Accept':'application/json',
'API-Key':'API_KEY'
};
$.ajax({
url: 'https://api.devbank.apiture.com/accounts/apiDoc',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const headers = {
'Accept':'application/json',
'API-Key':'API_KEY'
};
fetch('https://api.devbank.apiture.com/accounts/apiDoc',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'API-Key' => 'API_KEY'
}
result = RestClient.get 'https://api.devbank.apiture.com/accounts/apiDoc',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'API-Key': 'API_KEY'
}
r = requests.get('https://api.devbank.apiture.com/accounts/apiDoc', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.devbank.apiture.com/accounts/apiDoc");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"API-Key": []string{"API_KEY"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://api.devbank.apiture.com/accounts/apiDoc", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Return API definition document
GET /apiDoc
Return the OpenAPI document that describes this API.
Try it
Fields marked with * are mandatory.
Response
Response Code:
Response Headers:
Response Body:
Click on 'Try It' to get a response.
Example responses
200 Response
{}
Responses
Status | Description |
---|---|
200 | OK |
OK | |
Schema: Inline |
Response Schema
getLabels
Code samples
# You can also use wget
curl -X GET https://api.devbank.apiture.com/accounts/labels \
-H 'Accept: application/hal+json' \
-H 'Accept-Language: string' \
-H 'API-Key: API_KEY'
GET https://api.devbank.apiture.com/accounts/labels HTTP/1.1
Host: api.devbank.apiture.com
Accept: application/hal+json
Accept-Language: string
var headers = {
'Accept':'application/hal+json',
'Accept-Language':'string',
'API-Key':'API_KEY'
};
$.ajax({
url: 'https://api.devbank.apiture.com/accounts/labels',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const headers = {
'Accept':'application/hal+json',
'Accept-Language':'string',
'API-Key':'API_KEY'
};
fetch('https://api.devbank.apiture.com/accounts/labels',
{
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',
'Accept-Language' => 'string',
'API-Key' => 'API_KEY'
}
result = RestClient.get 'https://api.devbank.apiture.com/accounts/labels',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/hal+json',
'Accept-Language': 'string',
'API-Key': 'API_KEY'
}
r = requests.get('https://api.devbank.apiture.com/accounts/labels', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.devbank.apiture.com/accounts/labels");
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"},
"Accept-Language": []string{"string"},
"API-Key": []string{"API_KEY"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://api.devbank.apiture.com/accounts/labels", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Localized Labels
GET /labels
Return a JSON object which defines labels for enumeration types defined by the schemas defined in this API.
The labels in the response may not all match the
requested language; some may be in the default
language (en-us
).
Parameters
Parameter | Description |
---|---|
Accept-Language (header) |
string The weighted language tags which indicate the user's preferred natural language for the localized labels in the response, as per RFC 7231. |
Try it
Fields marked with * are mandatory.
Response
Response Code:
Response Headers:
Response Body:
Click on 'Try It' to get a response.
Example responses
200 Response
{
"property1": {
"label": "Limited Liability Corporation",
"description": "string",
"language": "en-us",
"code": "31"
},
"property2": {
"label": "Limited Liability Corporation",
"description": "string",
"language": "en-us",
"code": "31"
}
}
Responses
Status | Description |
---|---|
200 | OK |
OK | |
Schema: localizedLabels |
Account
Bank Accounts
getAccounts
Code samples
# You can also use wget
curl -X GET https://api.devbank.apiture.com/accounts/accounts \
-H 'Accept: application/hal+json' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
GET https://api.devbank.apiture.com/accounts/accounts HTTP/1.1
Host: api.devbank.apiture.com
Accept: application/hal+json
var headers = {
'Accept':'application/hal+json',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.devbank.apiture.com/accounts/accounts',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const headers = {
'Accept':'application/hal+json',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.devbank.apiture.com/accounts/accounts',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/hal+json',
'API-Key' => 'API_KEY',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.get 'https://api.devbank.apiture.com/accounts/accounts',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/hal+json',
'API-Key': 'API_KEY',
'Authorization': 'Bearer {access-token}'
}
r = requests.get('https://api.devbank.apiture.com/accounts/accounts', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.devbank.apiture.com/accounts/accounts");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/hal+json"},
"API-Key": []string{"API_KEY"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://api.devbank.apiture.com/accounts/accounts", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Return a collection of accounts
GET /accounts
Return a paginated sortable filterable searchable collection of accounts. The links in the response include pagination links.
By default, the items in the collection return a subset of the accounts fields, as described in the summaryAccount
schema. To include all fields in an account, use the ?fields=*
query parameter.
If ?embed=owners
is used, each summary account representation in the _embedded.items
array will embed the account owners or the authorized signers and owning organization.
Parameters
Parameter | Description |
---|---|
start (query) |
integer(int64) The zero-based index of the first account item to include in this page. The default 0 denotes the beginning of the collection. |
limit (query) |
integer(int32) The maximum number of account representations to return in this page. |
sortBy (query) |
string Optional sort criteria. See sort criteria format, such as ?sortBy=field1,-field2 . |
state (query) |
string Subset the accounts or external accounts collection to those whose state matches this value. Use | to separate multiple values. For example, ?state=pending will match only items whose state is pending ; ?state=removed|inactive will match items whose state is removed or inactive . This is combined with an implicit and with other filters if they are used. See filtering. Enumerated values: pending active inactive frozen closed |
type (query) |
string Subset the accounts or external accounts collection to those with this exact type value. Use | to separate multiple values. For example, ?type=Personal Savings will match only items whose type is Personal Savings ; ?type=Personal Savings|Investment Account will match 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. |
subtype (query) |
string Subset the accounts or external accounts collection to those with this exact subtype value. For example, ?subtype=true will limit the response to only product types which are subtypes. Use | to separate multiple values. For example, ?subtype=Basic Personal Savings will match only items whose subtype is Basic Personal Savings ; ?subtype=Basic Personal Savings|Basic Investment Account will match items whose subtype is Basic Personal Savings or Basic Investment Account . This is combined with an implicit and with other filters if they are used. See filtering. |
name (query) |
string Subset the accounts or external accounts collection to those with this name value. Use | to separate multiple values. For example, ?name=Bartell will match only items whose name is Bartell ; ?name=Bartell|kirsten will match items whose name is Bartell or kirsten . This is combined with an implicit and with other filters if they are used. See filtering. |
productName (query) |
string Subset the accounts collection to those with this productName value. Use | to separate multiple values. For example, ?productName=Basic Personal Savings will match only items whose productName is Basic Personal Savings ; ?productName=Basic Personal Savings|inactive will match items whose productName is Basic Personal Savings or inactive . This is combined with an implicit and with other filters if they are used. See filtering. |
filter (query) |
string Optional filter criteria. See filtering. |
q (query) |
string Optional search string. See searching. |
unmasked (query) |
boolean When requesting an account, the full account number is not included in the response by default, for security reasons. Include this query parameter, with a value of true , to request that the response body includes the full account number. Such requests are auditable. |
fields (query) |
string Select which fields to include in each account in the collection's _embedded.items array. By default, a subset of all the fields in the account are returned (detailed in the summaryAccount schema). Use the value * to request all the fields in the account. Note that there is a performance impact of requesting this, since the account balance and interest (year to date) may require additional computation. |
activeBetween (query) |
string Limit the response to only accounts that are (or were) active between two dates, inclusive. The format of the query parameter is start-date,end-date where each date is in RFC 3339 date format, YYYY-MM-DD . The response includes accounts which became active on or before the end date and which were not closed before the start date. Example: ?activeBetween=2019-03-01,2019-03-31 . This option may be combined with ?embed=owners . Note: This option is limited to administrative use. |
embed (query) |
string If set, each account in the _embedded.items array will include additional embedded objects. The embed query parameter specifies which related resources to include in the _embedded object in each account in response. embed supports the following values:
?activeBetween . |
Try it
Fields marked with * are mandatory.
Response
Response Code:
Response Headers:
Response Body:
Click on 'Try It' to get a response.
Example responses
200 Response
{
"_profile": "https://api.apiture.com/schemas/accounts/accounts/v1.0.0/profile.json",
"start": "10",
"limit": 10,
"count": 67,
"name": "accounts",
"_links": {
"self": {
"href": "/accounts/accounts?start=10&limit=10"
},
"first": {
"href": "/accounts/accounts?start=0&limit=10"
},
"next": {
"href": "/accounts/accounts?start=20&limit=10"
},
"collection": {
"href": "/accounts/accounts"
}
},
"_embedded": {
"items": [
{
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"_profile": "https://api.apiture.com/schemas/accounts/account/v1.0.0/profile.json",
"name": "My basic savings account",
"title": "John Smith",
"state": "active",
"balance": {
"current": "3450.30",
"available": "3450.30",
"currency": "USD"
},
"accountNumbers": {
"masked": "*************3210"
},
"_links": {
"self": {
"href": "/accounts/accounts/0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:product": {
"href": "/products/products/0aba4bae-f18b-4c12-af99-5f8dbd682ae3"
}
}
}
]
}
}
Responses
Status | Description |
---|---|
200 | OK |
OK | |
Schema: accounts |
Status | Description |
---|---|
400 | Bad Request |
Bad Request. The request body or one or more of the query parameters was not well formed. The _error field in the response will contain details about the request error. | |
Schema: errorResponse |
Status | Description |
---|---|
409 | Conflict |
Conflict. Query parameters are in conflict. Do not use both ?orderable= and ?state= query parameters. | |
Schema: errorResponse |
Status | Description |
---|---|
422 | Unprocessable Entity |
Unprocessable Entity. One or more of the query parameters was well formed but otherwise invalid. The _error field in the response will contain details about the request error. | |
Schema: errorResponse |
createAccount
Code samples
# You can also use wget
curl -X POST https://api.devbank.apiture.com/accounts/accounts \
-H 'Content-Type: application/hal+json' \
-H 'Accept: application/hal+json' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
POST https://api.devbank.apiture.com/accounts/accounts HTTP/1.1
Host: api.devbank.apiture.com
Content-Type: application/hal+json
Accept: application/hal+json
var headers = {
'Content-Type':'application/hal+json',
'Accept':'application/hal+json',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.devbank.apiture.com/accounts/accounts',
method: 'post',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const inputBody = '{
"_profile": "https://api.apiture.com/schemas/accounts/account/v1.0.0/profile.json",
"name": "My car savings account",
"description": "My savings account used to save for a new car, opened in 2019. I try to put $550/month into this account.",
"_links": {
"apiture:user": {
"href": "/users/users/00007276-8b25-4e97-ac82-e1e17a2ff7c2"
},
"apiture:product": {
"href": "/products/products/0aba4bae-f18b-4c12-af99-5f8dbd682ae3"
},
"apiture:organization": {
"href": "/organizations/organizations/a1c9212c-0a5c-4779-a3fc-95e1c1e92e71"
},
"apiture:application": {
"href": "/accountApplications/applications/2f23b9fe-532f-4e82-943e-b079ea55aebc"
}
}
}';
const headers = {
'Content-Type':'application/hal+json',
'Accept':'application/hal+json',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.devbank.apiture.com/accounts/accounts',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/hal+json',
'Accept' => 'application/hal+json',
'API-Key' => 'API_KEY',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.post 'https://api.devbank.apiture.com/accounts/accounts',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/hal+json',
'Accept': 'application/hal+json',
'API-Key': 'API_KEY',
'Authorization': 'Bearer {access-token}'
}
r = requests.post('https://api.devbank.apiture.com/accounts/accounts', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.devbank.apiture.com/accounts/accounts");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/hal+json"},
"Accept": []string{"application/hal+json"},
"API-Key": []string{"API_KEY"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://api.devbank.apiture.com/accounts/accounts", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Create a new account.
POST /accounts
Create a new banking account. The request body must contain a link to an active product, user, organization (for a business account), and may contain an approved application. The required resource links are detailed in the createAccount
schema used for the request body. The application will be linked to the account and can be identifiable with the account. The product provides specific banking information like the type of product and it's subtype; the new account will adopt the terms and attributes of that banking product. If a name is not included in the request, the product name will be used to provide a unique name for this user. The account will be created in the pending
state (which allows deletion of the account). A successful operation returns the full account number.
Body parameter
{
"_profile": "https://api.apiture.com/schemas/accounts/account/v1.0.0/profile.json",
"name": "My car savings account",
"description": "My savings account used to save for a new car, opened in 2019. I try to put $550/month into this account.",
"_links": {
"apiture:user": {
"href": "/users/users/00007276-8b25-4e97-ac82-e1e17a2ff7c2"
},
"apiture:product": {
"href": "/products/products/0aba4bae-f18b-4c12-af99-5f8dbd682ae3"
},
"apiture:organization": {
"href": "/organizations/organizations/a1c9212c-0a5c-4779-a3fc-95e1c1e92e71"
},
"apiture:application": {
"href": "/accountApplications/applications/2f23b9fe-532f-4e82-943e-b079ea55aebc"
}
}
}
Parameters
Parameter | Description |
---|---|
body (body) |
createAccount (required) The data necessary to create a new account. |
Try it
Fields marked with * are mandatory.
Response
Response Code:
Response Headers:
Response Body:
Click on 'Try It' to get a response.
Example responses
201 Response
{
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"_profile": "https://api.apiture.com/schemas/accounts/account/v1.0.0/profile.json",
"_links": {
"self": {
"href": "/accounts/accounts/0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:product": {
"href": "/products/products/0aba4bae-f18b-4c12-af99-5f8dbd682ae3"
}
},
"name": "My savings",
"description": "My Basic savings account",
"routingNumber": "021000021",
"institutionName": "Canapi Bank",
"state": "active",
"title": "John Smith",
"ifxType": "SDA",
"allowsTransfers": true,
"accountNumbers": {
"full": "9876543210",
"masked": "*************3210"
},
"balance": {
"current": "3450.30",
"available": "3450.30",
"currency": "USD"
},
"rate": {
"value": "1.40",
"type": "apr"
},
"openedAt": {}
}
Responses
Status | Description |
---|---|
201 | Created |
Created | |
Schema: summaryAccount |
Status | Description |
---|---|
400 | Bad Request |
Bad Request. The request body or one or more of the query parameters was not well formed. The _error field in the response will contain details about the request error. | |
Schema: errorResponse |
Status | Description |
---|---|
409 | Conflict |
Conflict. The request attempted to create an account when a dependent resource is not in a correct state, such as the organization being in a state other than 'active'. | |
Schema: errorResponse |
Response Headers
Status | Description |
---|---|
201 | Location string uri |
The URI of the new resource. If the URI begins with / it is relative to the API root context. Else, it is a full URI starting with scheme ://host | |
201 | ETag string |
The ETag response header specifies an entity tag which may be provided in an If-Match request header for PUT or PATCH operations which update the resource. |
getAccount
Code samples
# You can also use wget
curl -X GET https://api.devbank.apiture.com/accounts/accounts/{accountId} \
-H 'Accept: application/hal+json' \
-H 'If-None-Match: string' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
GET https://api.devbank.apiture.com/accounts/accounts/{accountId} HTTP/1.1
Host: api.devbank.apiture.com
Accept: application/hal+json
If-None-Match: string
var headers = {
'Accept':'application/hal+json',
'If-None-Match':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.devbank.apiture.com/accounts/accounts/{accountId}',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const headers = {
'Accept':'application/hal+json',
'If-None-Match':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.devbank.apiture.com/accounts/accounts/{accountId}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/hal+json',
'If-None-Match' => 'string',
'API-Key' => 'API_KEY',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.get 'https://api.devbank.apiture.com/accounts/accounts/{accountId}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/hal+json',
'If-None-Match': 'string',
'API-Key': 'API_KEY',
'Authorization': 'Bearer {access-token}'
}
r = requests.get('https://api.devbank.apiture.com/accounts/accounts/{accountId}', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.devbank.apiture.com/accounts/accounts/{accountId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/hal+json"},
"If-None-Match": []string{"string"},
"API-Key": []string{"API_KEY"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://api.devbank.apiture.com/accounts/accounts/{accountId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Fetch a representation of this account
GET /accounts/{accountId}
Return a HAL representation of this account resource.
Parameters
Parameter | Description |
---|---|
accountId (path) |
string (required) The unique identifier of this account. 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. |
unmasked (query) |
boolean When requesting an account, the full account number is not included in the response by default, for security reasons. Include this query parameter, with a value of true , to request that the response body includes the full account number. Such requests are auditable. |
embed (query) |
array[string] The embed query parameter specifies which related resources to include in the _embedded object in the response. embed supports the following comma-separated values:
owners and beneficiaries for personal accounts use GET .../accounts/{accountId}?embed=owners,beneficiaries . To embed the banking product, the owning business, authorized signers for business accounts, use GET .../accounts/{accountId}?embed=product,owners,authorizedSigners . |
Try it
Fields marked with * are mandatory.
Response
Response Code:
Response Headers:
Response Body:
Click on 'Try It' to get a response.
Example responses
200 Response
{
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"_profile": "https://api.apiture.com/schemas/accounts/account/v1.0.0/profile.json",
"name": "My 1y CD",
"description": "My 1-year CD",
"productName": "1 Year Basic Certificate of Deposit",
"title": "John Smith",
"routingNumber": "021000021",
"institutionName": "Canapi Bank",
"state": "active",
"allowsTransfers": true,
"accountNumbers": {
"masked": "*************3210"
},
"balance": {
"current": "3450.30",
"available": "3450.30",
"pendingCredits": "3000.00",
"pendingDebits": "1500.00",
"currency": "USD"
},
"rate": {
"value": "2.625",
"type": "apr"
},
"openedAt": {},
"type": "CD",
"subtype": "Basic CD",
"ifxType": "CDA",
"interest": {
"yearToDate": "30.12",
"sinceOpening": "44.80"
},
"timeDeposit": {
"maturesAt": "2019-10-30T08:16:00.000Z",
"term": "P1D",
"maturityPolicy": "rolloverPrincipalAndInterest",
"rolloverProductName": "Basic Savings"
},
"cycleWithdrawalCount": 0,
"_embedded": {
"product": {
"_id": "0aba4bae-f18b-4c12-af99-5f8dbd682ae3",
"_profile": "https://api.apiture.com/schemas/products/product/v1.0.0/profile.json"
}
},
"_links": {
"self": {
"href": "/accounts/accounts/0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:product": {
"href": "/products/products/0aba4bae-f18b-4c12-af99-5f8dbd682ae3"
},
"apiture:deactivate": {
"href": "/accounts/inactiveAccounts?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:freeze": {
"href": "/accounts/frozenAccounts?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:close": {
"href": "/accounts/closedAccounts?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:rolloverProduct": {
"href": "/products/products/24112ba3-1aa0-4a8c-979c-e40f05786bd7"
}
}
}
Responses
Status | Description |
---|---|
200 | OK |
OK | |
Schema: account |
Status | Description |
---|---|
304 | Not Modified |
Not Modified. The resource has not been modified since it was last fetched. |
Status | Description |
---|---|
404 | Not Found |
Not Found. There is no such account resource at the specified {accountId} . The _error field in the response will contain details about the request error. | |
Schema: errorResponse |
Response Headers
Status | Description |
---|---|
200 | ETag string |
The ETag response header specifies an entity tag which may be provided in an If-Match request header for PUT or PATCH operations which update this account resource. |
patchAccount
Code samples
# You can also use wget
curl -X PATCH https://api.devbank.apiture.com/accounts/accounts/{accountId} \
-H 'Content-Type: application/hal+json' \
-H 'Accept: application/hal+json' \
-H 'If-Match: string' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
PATCH https://api.devbank.apiture.com/accounts/accounts/{accountId} HTTP/1.1
Host: api.devbank.apiture.com
Content-Type: application/hal+json
Accept: application/hal+json
If-Match: string
var headers = {
'Content-Type':'application/hal+json',
'Accept':'application/hal+json',
'If-Match':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.devbank.apiture.com/accounts/accounts/{accountId}',
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/accounts/account/v1.0.0/profile.json",
"name": "My 1y CD",
"description": "My 1-year CD",
"productName": "1 Year Basic Certificate of Deposit",
"title": "John Smith",
"routingNumber": "021000021",
"institutionName": "Canapi Bank",
"state": "active",
"allowsTransfers": true,
"accountNumbers": {
"masked": "*************3210"
},
"balance": {
"current": "3450.30",
"available": "3450.30",
"pendingCredits": "3000.00",
"pendingDebits": "1500.00",
"currency": "USD"
},
"rate": {
"value": "2.625",
"type": "apr"
},
"openedAt": {},
"type": "CD",
"subtype": "Basic CD",
"ifxType": "CDA",
"interest": {
"yearToDate": "30.12",
"sinceOpening": "44.80"
},
"timeDeposit": {
"maturesAt": "2019-10-30T08:16:00.000Z",
"term": "P1D",
"maturityPolicy": "rolloverPrincipalAndInterest",
"rolloverProductName": "Basic Savings"
},
"cycleWithdrawalCount": 0,
"_embedded": {
"product": {
"_id": "0aba4bae-f18b-4c12-af99-5f8dbd682ae3",
"_profile": "https://api.apiture.com/schemas/products/product/v1.0.0/profile.json"
}
},
"_links": {
"self": {
"href": "/accounts/accounts/0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:product": {
"href": "/products/products/0aba4bae-f18b-4c12-af99-5f8dbd682ae3"
},
"apiture:deactivate": {
"href": "/accounts/inactiveAccounts?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:freeze": {
"href": "/accounts/frozenAccounts?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:close": {
"href": "/accounts/closedAccounts?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:rolloverProduct": {
"href": "/products/products/24112ba3-1aa0-4a8c-979c-e40f05786bd7"
}
}
}';
const headers = {
'Content-Type':'application/hal+json',
'Accept':'application/hal+json',
'If-Match':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.devbank.apiture.com/accounts/accounts/{accountId}',
{
method: 'PATCH',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/hal+json',
'Accept' => 'application/hal+json',
'If-Match' => 'string',
'API-Key' => 'API_KEY',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.patch 'https://api.devbank.apiture.com/accounts/accounts/{accountId}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/hal+json',
'Accept': 'application/hal+json',
'If-Match': 'string',
'API-Key': 'API_KEY',
'Authorization': 'Bearer {access-token}'
}
r = requests.patch('https://api.devbank.apiture.com/accounts/accounts/{accountId}', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.devbank.apiture.com/accounts/accounts/{accountId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PATCH");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/hal+json"},
"Accept": []string{"application/hal+json"},
"If-Match": []string{"string"},
"API-Key": []string{"API_KEY"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("PATCH", "https://api.devbank.apiture.com/accounts/accounts/{accountId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Update this account
PATCH /accounts/{accountId}
Perform a partial updates of this account. Fields which are omitted from the request are not updated. Nested _embedded
objects are ignored if included. This operation does not change the state
property. To change the state
of the account, use the POST
operations activateAccount
, deactivateAccount
, freezeAccount
, closeAccount
, removeAccount
, which are available in the _links
on an account instance.
Body parameter
{
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"_profile": "https://api.apiture.com/schemas/accounts/account/v1.0.0/profile.json",
"name": "My 1y CD",
"description": "My 1-year CD",
"productName": "1 Year Basic Certificate of Deposit",
"title": "John Smith",
"routingNumber": "021000021",
"institutionName": "Canapi Bank",
"state": "active",
"allowsTransfers": true,
"accountNumbers": {
"masked": "*************3210"
},
"balance": {
"current": "3450.30",
"available": "3450.30",
"pendingCredits": "3000.00",
"pendingDebits": "1500.00",
"currency": "USD"
},
"rate": {
"value": "2.625",
"type": "apr"
},
"openedAt": {},
"type": "CD",
"subtype": "Basic CD",
"ifxType": "CDA",
"interest": {
"yearToDate": "30.12",
"sinceOpening": "44.80"
},
"timeDeposit": {
"maturesAt": "2019-10-30T08:16:00.000Z",
"term": "P1D",
"maturityPolicy": "rolloverPrincipalAndInterest",
"rolloverProductName": "Basic Savings"
},
"cycleWithdrawalCount": 0,
"_embedded": {
"product": {
"_id": "0aba4bae-f18b-4c12-af99-5f8dbd682ae3",
"_profile": "https://api.apiture.com/schemas/products/product/v1.0.0/profile.json"
}
},
"_links": {
"self": {
"href": "/accounts/accounts/0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:product": {
"href": "/products/products/0aba4bae-f18b-4c12-af99-5f8dbd682ae3"
},
"apiture:deactivate": {
"href": "/accounts/inactiveAccounts?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:freeze": {
"href": "/accounts/frozenAccounts?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:close": {
"href": "/accounts/closedAccounts?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:rolloverProduct": {
"href": "/products/products/24112ba3-1aa0-4a8c-979c-e40f05786bd7"
}
}
}
Parameters
Parameter | Description |
---|---|
accountId (path) |
string (required) The unique identifier of this account. This is an opaque string. |
If-Match (header) |
string The entity tag that was returned in the ETag response. If used, this must match the current entity tag of the resource. |
body (body) |
account (required) |
Try it
Fields marked with * are mandatory.
Response
Response Code:
Response Headers:
Response Body:
Click on 'Try It' to get a response.
Example responses
200 Response
{
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"_profile": "https://api.apiture.com/schemas/accounts/account/v1.0.0/profile.json",
"name": "My 1y CD",
"description": "My 1-year CD",
"productName": "1 Year Basic Certificate of Deposit",
"title": "John Smith",
"routingNumber": "021000021",
"institutionName": "Canapi Bank",
"state": "active",
"allowsTransfers": true,
"accountNumbers": {
"masked": "*************3210"
},
"balance": {
"current": "3450.30",
"available": "3450.30",
"pendingCredits": "3000.00",
"pendingDebits": "1500.00",
"currency": "USD"
},
"rate": {
"value": "2.625",
"type": "apr"
},
"openedAt": {},
"type": "CD",
"subtype": "Basic CD",
"ifxType": "CDA",
"interest": {
"yearToDate": "30.12",
"sinceOpening": "44.80"
},
"timeDeposit": {
"maturesAt": "2019-10-30T08:16:00.000Z",
"term": "P1D",
"maturityPolicy": "rolloverPrincipalAndInterest",
"rolloverProductName": "Basic Savings"
},
"cycleWithdrawalCount": 0,
"_embedded": {
"product": {
"_id": "0aba4bae-f18b-4c12-af99-5f8dbd682ae3",
"_profile": "https://api.apiture.com/schemas/products/product/v1.0.0/profile.json"
}
},
"_links": {
"self": {
"href": "/accounts/accounts/0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:product": {
"href": "/products/products/0aba4bae-f18b-4c12-af99-5f8dbd682ae3"
},
"apiture:deactivate": {
"href": "/accounts/inactiveAccounts?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:freeze": {
"href": "/accounts/frozenAccounts?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:close": {
"href": "/accounts/closedAccounts?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:rolloverProduct": {
"href": "/products/products/24112ba3-1aa0-4a8c-979c-e40f05786bd7"
}
}
}
Responses
Status | Description |
---|---|
200 | OK |
OK | |
Schema: account |
Status | Description |
---|---|
400 | Bad Request |
Bad Request. The request body or one or more of the query parameters was not well formed. The _error field in the response will contain details about the request error. | |
Schema: errorResponse |
Status | Description |
---|---|
404 | Not Found |
Not Found. There is no such account resource at the specified {accountId} . The _error field in the response will contain details about the request error. | |
Schema: errorResponse |
Status | Description |
---|---|
409 | Conflict |
Conflict. the request attempted to change the state in an incompatible way, such as an attempt to change the state from active to pending or to change the name to a name that is already in use by another external account that the user or organization holds. |
Status | Description |
---|---|
412 | Precondition Failed |
Precondition Failed. The supplied If-Match header value does not match the most recent ETag response header value. The resource has changed in the interim. | |
Schema: errorResponse |
Status | Description |
---|---|
422 | Unprocessable Entity |
Unprocessable Entity. One or more of the query parameters was well formed but otherwise invalid. The _error field in the response will contain details about the request error. | |
Schema: errorResponse |
Response Headers
Status | Description |
---|---|
200 | ETag string |
The ETag response header specifies an entity tag which may be provided in an If-Match request header for PUT or PATCH operations which update this account resource. |
deleteAccount
Code samples
# You can also use wget
curl -X DELETE https://api.devbank.apiture.com/accounts/accounts/{accountId} \
-H 'Accept: application/hal+json' \
-H 'If-Match: string' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
DELETE https://api.devbank.apiture.com/accounts/accounts/{accountId} HTTP/1.1
Host: api.devbank.apiture.com
Accept: application/hal+json
If-Match: string
var headers = {
'Accept':'application/hal+json',
'If-Match':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.devbank.apiture.com/accounts/accounts/{accountId}',
method: 'delete',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const headers = {
'Accept':'application/hal+json',
'If-Match':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.devbank.apiture.com/accounts/accounts/{accountId}',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/hal+json',
'If-Match' => 'string',
'API-Key' => 'API_KEY',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.delete 'https://api.devbank.apiture.com/accounts/accounts/{accountId}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/hal+json',
'If-Match': 'string',
'API-Key': 'API_KEY',
'Authorization': 'Bearer {access-token}'
}
r = requests.delete('https://api.devbank.apiture.com/accounts/accounts/{accountId}', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.devbank.apiture.com/accounts/accounts/{accountId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/hal+json"},
"If-Match": []string{"string"},
"API-Key": []string{"API_KEY"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("DELETE", "https://api.devbank.apiture.com/accounts/accounts/{accountId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Delete this account resource
DELETE /accounts/{accountId}
Delete this account resource and any resources that are owned by it. Note that only pending
accounts may be deleted. Once an account has been activated, it cannot be deleted, only inactivated or closed.
Parameters
Parameter | Description |
---|---|
If-Match (header) |
string The entity tag that was returned in the ETag response. If used, this must match the current entity tag of the resource. |
accountId (path) |
string (required) The unique identifier of this account. This is an opaque string. |
Try it
Fields marked with * are mandatory.
Response
Response Code:
Response Headers:
Response Body:
Click on 'Try It' to get a response.
Example responses
412 Response
{
"_profile": "https://api.apiture.com/schemas/common/errorResponse/v2.0.0/profile.json",
"_error": {
"_id": "2eae46e1-575c-4d69-8a8f-0a7b0115a4b3",
"message": "The value for deposit must be greater than 0.",
"statusCode": 422,
"type": "positiveNumberRequired",
"attributes": {
"value": -125.5
},
"remediation": "Provide a value which is greater than 0",
"occurredAt": "2018-01-25T05:50:52.375Z",
"_links": {
"describedby": {
"href": "https://api.apiture.com/errors/positiveNumberRequired"
}
},
"_embedded": {
"errors": []
}
}
}
Responses
Status | Description |
---|---|
204 | No Content |
No Content. The resource was deleted successfully. |
Status | Description |
---|---|
409 | Conflict |
Conflict. the request attempted to change the state in an incompatible way, such as an attempt to change the state from active to pending or to change the name to a name that is already in use by another external account that the user or organization holds. |
Status | Description |
---|---|
412 | Precondition Failed |
Precondition Failed. The supplied If-Match header value does not match the most recent ETag response header value. The resource has changed in the interim. | |
Schema: errorResponse |
generateVerificationLetter
Code samples
# You can also use wget
curl -X POST https://api.devbank.apiture.com/accounts/accounts/{accountId}/verificationLetter \
-H 'Accept: application/hal+json' \
-H 'Accept: string' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
POST https://api.devbank.apiture.com/accounts/accounts/{accountId}/verificationLetter HTTP/1.1
Host: api.devbank.apiture.com
Accept: application/hal+json
Accept: string
var headers = {
'Accept':'application/hal+json',
'Accept':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.devbank.apiture.com/accounts/accounts/{accountId}/verificationLetter',
method: 'post',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const headers = {
'Accept':'application/hal+json',
'Accept':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.devbank.apiture.com/accounts/accounts/{accountId}/verificationLetter',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/hal+json',
'Accept' => 'string',
'API-Key' => 'API_KEY',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.post 'https://api.devbank.apiture.com/accounts/accounts/{accountId}/verificationLetter',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/hal+json',
'Accept': 'string',
'API-Key': 'API_KEY',
'Authorization': 'Bearer {access-token}'
}
r = requests.post('https://api.devbank.apiture.com/accounts/accounts/{accountId}/verificationLetter', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.devbank.apiture.com/accounts/accounts/{accountId}/verificationLetter");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/hal+json"},
"Accept": []string{"string"},
"API-Key": []string{"API_KEY"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://api.devbank.apiture.com/accounts/accounts/{accountId}/verificationLetter", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Generate the account verification letter
POST /accounts/{accountId}/verificationLetter
Generate the account verification letter for this internal account.
If the letter has not been generated, this returns 202 Accepted
and no response body. The response will include a Retry-After
response
header with a recommended retry interval in seconds.
If the letter has been generated for this account, the operations returns 200 OK and the response body is the PDF formatted account verification letter.
For personal accounts, only the primary and joint owners may invoke this operation.
For business accounts, only the authorized signers associated with the owning business organization may invoke this operation.
Parameters
Parameter | Description |
---|---|
accountId (path) |
string (required) The unique identifier of this account. This is an opaque string. |
Accept (header) |
string Optional. Only application/pdf is currently supported. |
Try it
Fields marked with * are mandatory.
Response
Response Code:
Response Headers:
Response Body:
Click on 'Try It' to get a response.
Example responses
404 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": []
}
}
}
406 Response
Responses
Status | Description |
---|---|
200 | OK |
OK. The request has succeeded. | |
202 | Accepted |
Accepted. The request has been accepted for processing, but the processing has not been completed. |
Status | Description |
---|---|
404 | Not Found |
Not Found. There is no such account resource at the specified {accountId} . The _error field in the response will contain details about the request error. | |
Schema: errorResponse |
Status | Description |
---|---|
406 | Not Acceptable |
Not Acceptable. Indicates that the server cannot produce a response matching the list of acceptable values defined in the request's headers. This operation only supports Accept: application/pdf . | |
Schema: errorResponse |
Response Headers
Status | Description |
---|---|
200 | Content-Type string |
When the letter is available, the response body will be the PDF formatted account verification letter for this account. | |
202 | Retry-After string |
Indicates a suggested delay in seconds after which the client should retry the operation. Example: Retry-After: 10 |
activateAccount
Code samples
# You can also use wget
curl -X POST https://api.devbank.apiture.com/accounts/activeAccounts?account=string \
-H 'Accept: application/hal+json' \
-H 'If-Match: string' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
POST https://api.devbank.apiture.com/accounts/activeAccounts?account=string HTTP/1.1
Host: api.devbank.apiture.com
Accept: application/hal+json
If-Match: string
var headers = {
'Accept':'application/hal+json',
'If-Match':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.devbank.apiture.com/accounts/activeAccounts',
method: 'post',
data: '?account=string',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const headers = {
'Accept':'application/hal+json',
'If-Match':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.devbank.apiture.com/accounts/activeAccounts?account=string',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/hal+json',
'If-Match' => 'string',
'API-Key' => 'API_KEY',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.post 'https://api.devbank.apiture.com/accounts/activeAccounts',
params: {
'account' => 'string'
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/hal+json',
'If-Match': 'string',
'API-Key': 'API_KEY',
'Authorization': 'Bearer {access-token}'
}
r = requests.post('https://api.devbank.apiture.com/accounts/activeAccounts', params={
'account': 'string'
}, headers = headers)
print r.json()
URL obj = new URL("https://api.devbank.apiture.com/accounts/activeAccounts?account=string");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/hal+json"},
"If-Match": []string{"string"},
"API-Key": []string{"API_KEY"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://api.devbank.apiture.com/accounts/activeAccounts", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Activate an account
POST /activeAccounts
Activate an account that is eligible to be activated. Only accounts which are pending
or inactive
or frozen
may be activated. This operation is invoked from the apiture:activate
link on an account, which only exists if the action is allowed. This changes the state
to active
.
Parameters
Parameter | Description |
---|---|
account (query) |
string (required) A server-supplied value which identifies the account instance. |
If-Match (header) |
string The entity tag that was returned in the ETag response. If used, this must match the current entity tag of the resource. |
Try it
Fields marked with * are mandatory.
Response
Response Code:
Response Headers:
Response Body:
Click on 'Try It' to get a response.
Example responses
200 Response
{
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"_profile": "https://api.apiture.com/schemas/accounts/account/v1.0.0/profile.json",
"name": "My 1y CD",
"description": "My 1-year CD",
"productName": "1 Year Basic Certificate of Deposit",
"title": "John Smith",
"routingNumber": "021000021",
"institutionName": "Canapi Bank",
"state": "active",
"allowsTransfers": true,
"accountNumbers": {
"masked": "*************3210"
},
"balance": {
"current": "3450.30",
"available": "3450.30",
"pendingCredits": "3000.00",
"pendingDebits": "1500.00",
"currency": "USD"
},
"rate": {
"value": "2.625",
"type": "apr"
},
"openedAt": {},
"type": "CD",
"subtype": "Basic CD",
"ifxType": "CDA",
"interest": {
"yearToDate": "30.12",
"sinceOpening": "44.80"
},
"timeDeposit": {
"maturesAt": "2019-10-30T08:16:00.000Z",
"term": "P1D",
"maturityPolicy": "rolloverPrincipalAndInterest",
"rolloverProductName": "Basic Savings"
},
"cycleWithdrawalCount": 0,
"_embedded": {
"product": {
"_id": "0aba4bae-f18b-4c12-af99-5f8dbd682ae3",
"_profile": "https://api.apiture.com/schemas/products/product/v1.0.0/profile.json"
}
},
"_links": {
"self": {
"href": "/accounts/accounts/0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:product": {
"href": "/products/products/0aba4bae-f18b-4c12-af99-5f8dbd682ae3"
},
"apiture:deactivate": {
"href": "/accounts/inactiveAccounts?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:freeze": {
"href": "/accounts/frozenAccounts?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:close": {
"href": "/accounts/closedAccounts?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:rolloverProduct": {
"href": "/products/products/24112ba3-1aa0-4a8c-979c-e40f05786bd7"
}
}
}
Responses
Status | Description |
---|---|
200 | OK |
OK | |
Schema: account |
Status | Description |
---|---|
400 | Bad Request |
Bad Request. The account parameter was malformed or does not refer to an account. | |
Schema: errorResponse |
Status | Description |
---|---|
409 | Conflict |
Conflict. The request to change the state of the account is not allowed. For example, one cannot change the state of a closed account, or change a non-pending account to pending . The _error field in the response will contain details about the request error. | |
Schema: errorResponse |
Status | Description |
---|---|
422 | Unprocessable Entity |
Unprocessable Entity. One or more of the query parameters was well formed but otherwise invalid. The _error field in the response will contain details about the request error. | |
Schema: errorResponse |
deactivateAccount
Code samples
# You can also use wget
curl -X POST https://api.devbank.apiture.com/accounts/inactiveAccounts?account=string \
-H 'Accept: application/hal+json' \
-H 'If-Match: string' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
POST https://api.devbank.apiture.com/accounts/inactiveAccounts?account=string HTTP/1.1
Host: api.devbank.apiture.com
Accept: application/hal+json
If-Match: string
var headers = {
'Accept':'application/hal+json',
'If-Match':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.devbank.apiture.com/accounts/inactiveAccounts',
method: 'post',
data: '?account=string',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const headers = {
'Accept':'application/hal+json',
'If-Match':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.devbank.apiture.com/accounts/inactiveAccounts?account=string',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/hal+json',
'If-Match' => 'string',
'API-Key' => 'API_KEY',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.post 'https://api.devbank.apiture.com/accounts/inactiveAccounts',
params: {
'account' => 'string'
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/hal+json',
'If-Match': 'string',
'API-Key': 'API_KEY',
'Authorization': 'Bearer {access-token}'
}
r = requests.post('https://api.devbank.apiture.com/accounts/inactiveAccounts', params={
'account': 'string'
}, headers = headers)
print r.json()
URL obj = new URL("https://api.devbank.apiture.com/accounts/inactiveAccounts?account=string");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/hal+json"},
"If-Match": []string{"string"},
"API-Key": []string{"API_KEY"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://api.devbank.apiture.com/accounts/inactiveAccounts", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Deactivate an account
POST /inactiveAccounts
Deactivate an account that is eligible to be deactivated. Only accounts which are pending
or active
may be deactivated. This operation is invoked from the apiture:deactivate
link on an account; the link only exists if the action is allowed. This changes the state
to inactive
.
Parameters
Parameter | Description |
---|---|
account (query) |
string (required) A server-supplied value which identifies the account instance. |
If-Match (header) |
string The entity tag that was returned in the ETag response. If used, this must match the current entity tag of the resource. |
Try it
Fields marked with * are mandatory.
Response
Response Code:
Response Headers:
Response Body:
Click on 'Try It' to get a response.
Example responses
200 Response
{
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"_profile": "https://api.apiture.com/schemas/accounts/account/v1.0.0/profile.json",
"name": "My 1y CD",
"description": "My 1-year CD",
"productName": "1 Year Basic Certificate of Deposit",
"title": "John Smith",
"routingNumber": "021000021",
"institutionName": "Canapi Bank",
"state": "active",
"allowsTransfers": true,
"accountNumbers": {
"masked": "*************3210"
},
"balance": {
"current": "3450.30",
"available": "3450.30",
"pendingCredits": "3000.00",
"pendingDebits": "1500.00",
"currency": "USD"
},
"rate": {
"value": "2.625",
"type": "apr"
},
"openedAt": {},
"type": "CD",
"subtype": "Basic CD",
"ifxType": "CDA",
"interest": {
"yearToDate": "30.12",
"sinceOpening": "44.80"
},
"timeDeposit": {
"maturesAt": "2019-10-30T08:16:00.000Z",
"term": "P1D",
"maturityPolicy": "rolloverPrincipalAndInterest",
"rolloverProductName": "Basic Savings"
},
"cycleWithdrawalCount": 0,
"_embedded": {
"product": {
"_id": "0aba4bae-f18b-4c12-af99-5f8dbd682ae3",
"_profile": "https://api.apiture.com/schemas/products/product/v1.0.0/profile.json"
}
},
"_links": {
"self": {
"href": "/accounts/accounts/0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:product": {
"href": "/products/products/0aba4bae-f18b-4c12-af99-5f8dbd682ae3"
},
"apiture:deactivate": {
"href": "/accounts/inactiveAccounts?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:freeze": {
"href": "/accounts/frozenAccounts?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:close": {
"href": "/accounts/closedAccounts?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:rolloverProduct": {
"href": "/products/products/24112ba3-1aa0-4a8c-979c-e40f05786bd7"
}
}
}
Responses
Status | Description |
---|---|
200 | OK |
OK | |
Schema: account |
Status | Description |
---|---|
400 | Bad Request |
Bad Request. The account parameter was malformed or does not refer to an account. | |
Schema: errorResponse |
Status | Description |
---|---|
409 | Conflict |
Conflict. The request to change the state of the account is not allowed. For example, one cannot change the state of a closed account, or change a non-pending account to pending . The _error field in the response will contain details about the request error. | |
Schema: errorResponse |
Status | Description |
---|---|
422 | Unprocessable Entity |
Unprocessable Entity. One or more of the query parameters was well formed but otherwise invalid. The _error field in the response will contain details about the request error. | |
Schema: errorResponse |
freezeAccount
Code samples
# You can also use wget
curl -X POST https://api.devbank.apiture.com/accounts/frozenAccounts?account=string \
-H 'Accept: application/hal+json' \
-H 'If-Match: string' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
POST https://api.devbank.apiture.com/accounts/frozenAccounts?account=string HTTP/1.1
Host: api.devbank.apiture.com
Accept: application/hal+json
If-Match: string
var headers = {
'Accept':'application/hal+json',
'If-Match':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.devbank.apiture.com/accounts/frozenAccounts',
method: 'post',
data: '?account=string',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const headers = {
'Accept':'application/hal+json',
'If-Match':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.devbank.apiture.com/accounts/frozenAccounts?account=string',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/hal+json',
'If-Match' => 'string',
'API-Key' => 'API_KEY',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.post 'https://api.devbank.apiture.com/accounts/frozenAccounts',
params: {
'account' => 'string'
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/hal+json',
'If-Match': 'string',
'API-Key': 'API_KEY',
'Authorization': 'Bearer {access-token}'
}
r = requests.post('https://api.devbank.apiture.com/accounts/frozenAccounts', params={
'account': 'string'
}, headers = headers)
print r.json()
URL obj = new URL("https://api.devbank.apiture.com/accounts/frozenAccounts?account=string");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/hal+json"},
"If-Match": []string{"string"},
"API-Key": []string{"API_KEY"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://api.devbank.apiture.com/accounts/frozenAccounts", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Freeze an account
POST /frozenAccounts
Freeze an account that is eligible to be frozen. Only accounts which are active
or inactive
may be frozen. This operation is invoked from the apiture:freeze
link on an account; the link only exists if the action is allowed. This changes the state
to frozen
.
Parameters
Parameter | Description |
---|---|
account (query) |
string (required) A server-supplied value which identifies the account instance. |
If-Match (header) |
string The entity tag that was returned in the ETag response. If used, this must match the current entity tag of the resource. |
Try it
Fields marked with * are mandatory.
Response
Response Code:
Response Headers:
Response Body:
Click on 'Try It' to get a response.
Example responses
200 Response
{
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"_profile": "https://api.apiture.com/schemas/accounts/account/v1.0.0/profile.json",
"name": "My 1y CD",
"description": "My 1-year CD",
"productName": "1 Year Basic Certificate of Deposit",
"title": "John Smith",
"routingNumber": "021000021",
"institutionName": "Canapi Bank",
"state": "active",
"allowsTransfers": true,
"accountNumbers": {
"masked": "*************3210"
},
"balance": {
"current": "3450.30",
"available": "3450.30",
"pendingCredits": "3000.00",
"pendingDebits": "1500.00",
"currency": "USD"
},
"rate": {
"value": "2.625",
"type": "apr"
},
"openedAt": {},
"type": "CD",
"subtype": "Basic CD",
"ifxType": "CDA",
"interest": {
"yearToDate": "30.12",
"sinceOpening": "44.80"
},
"timeDeposit": {
"maturesAt": "2019-10-30T08:16:00.000Z",
"term": "P1D",
"maturityPolicy": "rolloverPrincipalAndInterest",
"rolloverProductName": "Basic Savings"
},
"cycleWithdrawalCount": 0,
"_embedded": {
"product": {
"_id": "0aba4bae-f18b-4c12-af99-5f8dbd682ae3",
"_profile": "https://api.apiture.com/schemas/products/product/v1.0.0/profile.json"
}
},
"_links": {
"self": {
"href": "/accounts/accounts/0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:product": {
"href": "/products/products/0aba4bae-f18b-4c12-af99-5f8dbd682ae3"
},
"apiture:deactivate": {
"href": "/accounts/inactiveAccounts?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:freeze": {
"href": "/accounts/frozenAccounts?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:close": {
"href": "/accounts/closedAccounts?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:rolloverProduct": {
"href": "/products/products/24112ba3-1aa0-4a8c-979c-e40f05786bd7"
}
}
}
Responses
Status | Description |
---|---|
200 | OK |
OK | |
Schema: account |
Status | Description |
---|---|
400 | Bad Request |
Bad Request. The account parameter was malformed or does not refer to an account. | |
Schema: errorResponse |
Status | Description |
---|---|
409 | Conflict |
Conflict. The request to change the state of the account is not allowed. For example, one cannot change the state of a closed account, or change a non-pending account to pending . The _error field in the response will contain details about the request error. | |
Schema: errorResponse |
Status | Description |
---|---|
422 | Unprocessable Entity |
Unprocessable Entity. One or more of the query parameters was well formed but otherwise invalid. The _error field in the response will contain details about the request error. | |
Schema: errorResponse |
closeAccount
Code samples
# You can also use wget
curl -X POST https://api.devbank.apiture.com/accounts/closedAccounts?account=string \
-H 'Accept: application/hal+json' \
-H 'If-Match: string' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
POST https://api.devbank.apiture.com/accounts/closedAccounts?account=string HTTP/1.1
Host: api.devbank.apiture.com
Accept: application/hal+json
If-Match: string
var headers = {
'Accept':'application/hal+json',
'If-Match':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.devbank.apiture.com/accounts/closedAccounts',
method: 'post',
data: '?account=string',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const headers = {
'Accept':'application/hal+json',
'If-Match':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.devbank.apiture.com/accounts/closedAccounts?account=string',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/hal+json',
'If-Match' => 'string',
'API-Key' => 'API_KEY',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.post 'https://api.devbank.apiture.com/accounts/closedAccounts',
params: {
'account' => 'string'
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/hal+json',
'If-Match': 'string',
'API-Key': 'API_KEY',
'Authorization': 'Bearer {access-token}'
}
r = requests.post('https://api.devbank.apiture.com/accounts/closedAccounts', params={
'account': 'string'
}, headers = headers)
print r.json()
URL obj = new URL("https://api.devbank.apiture.com/accounts/closedAccounts?account=string");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/hal+json"},
"If-Match": []string{"string"},
"API-Key": []string{"API_KEY"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://api.devbank.apiture.com/accounts/closedAccounts", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Close an account
POST /closedAccounts
Close an account that is eligible to be closed. Only accounts which are active
or inactive
or frozen
may be closed. This operation is invoked from the apiture:close
link on an account; the link only exists if the action is allowed. This changes the state
to closed
. Closing an account will append the text " (Closed YYYY-MM-DDThh:mm:ssZ)
" to the name, so that the previous name may be used for other accounts.
Parameters
Parameter | Description |
---|---|
account (query) |
string (required) A server-supplied value which identifies the account instance. |
If-Match (header) |
string The entity tag that was returned in the ETag response. If used, this must match the current entity tag of the resource. |
Try it
Fields marked with * are mandatory.
Response
Response Code:
Response Headers:
Response Body:
Click on 'Try It' to get a response.
Example responses
200 Response
{
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"_profile": "https://api.apiture.com/schemas/accounts/account/v1.0.0/profile.json",
"name": "My 1y CD",
"description": "My 1-year CD",
"productName": "1 Year Basic Certificate of Deposit",
"title": "John Smith",
"routingNumber": "021000021",
"institutionName": "Canapi Bank",
"state": "active",
"allowsTransfers": true,
"accountNumbers": {
"masked": "*************3210"
},
"balance": {
"current": "3450.30",
"available": "3450.30",
"pendingCredits": "3000.00",
"pendingDebits": "1500.00",
"currency": "USD"
},
"rate": {
"value": "2.625",
"type": "apr"
},
"openedAt": {},
"type": "CD",
"subtype": "Basic CD",
"ifxType": "CDA",
"interest": {
"yearToDate": "30.12",
"sinceOpening": "44.80"
},
"timeDeposit": {
"maturesAt": "2019-10-30T08:16:00.000Z",
"term": "P1D",
"maturityPolicy": "rolloverPrincipalAndInterest",
"rolloverProductName": "Basic Savings"
},
"cycleWithdrawalCount": 0,
"_embedded": {
"product": {
"_id": "0aba4bae-f18b-4c12-af99-5f8dbd682ae3",
"_profile": "https://api.apiture.com/schemas/products/product/v1.0.0/profile.json"
}
},
"_links": {
"self": {
"href": "/accounts/accounts/0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:product": {
"href": "/products/products/0aba4bae-f18b-4c12-af99-5f8dbd682ae3"
},
"apiture:deactivate": {
"href": "/accounts/inactiveAccounts?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:freeze": {
"href": "/accounts/frozenAccounts?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:close": {
"href": "/accounts/closedAccounts?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:rolloverProduct": {
"href": "/products/products/24112ba3-1aa0-4a8c-979c-e40f05786bd7"
}
}
}
Responses
Status | Description |
---|---|
200 | OK |
OK | |
Schema: account |
Status | Description |
---|---|
400 | Bad Request |
Bad Request. The account parameter was malformed or does not refer to an account. | |
Schema: errorResponse |
Status | Description |
---|---|
409 | Conflict |
Conflict. The request to change the state of the account is not allowed. For example, one cannot change the state of a closed account, or change a non-pending account to pending . The _error field in the response will contain details about the request error. | |
Schema: errorResponse |
Status | Description |
---|---|
422 | Unprocessable Entity |
Unprocessable Entity. One or more of the query parameters was well formed but otherwise invalid. The _error field in the response will contain details about the request error. | |
Schema: errorResponse |
reviewAccount
Code samples
# You can also use wget
curl -X POST https://api.devbank.apiture.com/accounts/externalAccountsUnderReview?account=string \
-H 'Accept: application/hal+json' \
-H 'If-Match: string' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
POST https://api.devbank.apiture.com/accounts/externalAccountsUnderReview?account=string HTTP/1.1
Host: api.devbank.apiture.com
Accept: application/hal+json
If-Match: string
var headers = {
'Accept':'application/hal+json',
'If-Match':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.devbank.apiture.com/accounts/externalAccountsUnderReview',
method: 'post',
data: '?account=string',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const headers = {
'Accept':'application/hal+json',
'If-Match':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.devbank.apiture.com/accounts/externalAccountsUnderReview?account=string',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/hal+json',
'If-Match' => 'string',
'API-Key' => 'API_KEY',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.post 'https://api.devbank.apiture.com/accounts/externalAccountsUnderReview',
params: {
'account' => 'string'
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/hal+json',
'If-Match': 'string',
'API-Key': 'API_KEY',
'Authorization': 'Bearer {access-token}'
}
r = requests.post('https://api.devbank.apiture.com/accounts/externalAccountsUnderReview', params={
'account': 'string'
}, headers = headers)
print r.json()
URL obj = new URL("https://api.devbank.apiture.com/accounts/externalAccountsUnderReview?account=string");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/hal+json"},
"If-Match": []string{"string"},
"API-Key": []string{"API_KEY"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://api.devbank.apiture.com/accounts/externalAccountsUnderReview", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
The account is under review
POST /externalAccountsUnderReview
Begin review of an account, if its state allows review. This changes the state to underReview
. When an external account is under review, the financial institution reviews the account details and may approve or reject the account; this will set the state to active
or frozen
, respectively. Only accounts which are verifying
may make this state transition, and review is normally triggered automatically if external account verification was successful and customer data does not match with the account's holders' information. This operation is invoked from the apiture:review
link on an account, which only exists if the action is allowed to update an account state to under review. Only administrative or service applications may call this operation, not bank customers.
Parameters
Parameter | Description |
---|---|
account (query) |
string (required) A server-supplied value which identifies the account instance. |
If-Match (header) |
string The entity tag that was returned in the ETag response. If used, this must match the current entity tag of the resource. |
Try it
Fields marked with * are mandatory.
Response
Response Code:
Response Headers:
Response Body:
Click on 'Try It' to get a response.
Example responses
200 Response
{
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"_profile": "https://api.apiture.com/schemas/accounts/account/v1.0.0/profile.json",
"name": "My 1y CD",
"description": "My 1-year CD",
"productName": "1 Year Basic Certificate of Deposit",
"title": "John Smith",
"routingNumber": "021000021",
"institutionName": "Canapi Bank",
"state": "active",
"allowsTransfers": true,
"accountNumbers": {
"masked": "*************3210"
},
"balance": {
"current": "3450.30",
"available": "3450.30",
"pendingCredits": "3000.00",
"pendingDebits": "1500.00",
"currency": "USD"
},
"rate": {
"value": "2.625",
"type": "apr"
},
"openedAt": {},
"type": "CD",
"subtype": "Basic CD",
"ifxType": "CDA",
"interest": {
"yearToDate": "30.12",
"sinceOpening": "44.80"
},
"timeDeposit": {
"maturesAt": "2019-10-30T08:16:00.000Z",
"term": "P1D",
"maturityPolicy": "rolloverPrincipalAndInterest",
"rolloverProductName": "Basic Savings"
},
"cycleWithdrawalCount": 0,
"_embedded": {
"product": {
"_id": "0aba4bae-f18b-4c12-af99-5f8dbd682ae3",
"_profile": "https://api.apiture.com/schemas/products/product/v1.0.0/profile.json"
}
},
"_links": {
"self": {
"href": "/accounts/accounts/0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:product": {
"href": "/products/products/0aba4bae-f18b-4c12-af99-5f8dbd682ae3"
},
"apiture:deactivate": {
"href": "/accounts/inactiveAccounts?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:freeze": {
"href": "/accounts/frozenAccounts?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:close": {
"href": "/accounts/closedAccounts?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:rolloverProduct": {
"href": "/products/products/24112ba3-1aa0-4a8c-979c-e40f05786bd7"
}
}
}
Responses
Status | Description |
---|---|
200 | OK |
OK | |
Schema: account |
Status | Description |
---|---|
400 | Bad Request |
Bad Request. The account parameter was malformed or does not refer to an account. | |
Schema: errorResponse |
Status | Description |
---|---|
409 | Conflict |
Conflict. The request to change the state of the account is not allowed. For example, one cannot change the state of a closed account, or change a non-pending account to pending . The _error field in the response will contain details about the request error. | |
Schema: errorResponse |
Status | Description |
---|---|
422 | Unprocessable Entity |
Unprocessable Entity. One or more of the query parameters was well formed but otherwise invalid. The _error field in the response will contain details about the request error. | |
Schema: errorResponse |
External Account
External Bank Accounts
getExternalAccounts
Code samples
# You can also use wget
curl -X GET https://api.devbank.apiture.com/accounts/externalAccounts \
-H 'Accept: application/hal+json' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
GET https://api.devbank.apiture.com/accounts/externalAccounts HTTP/1.1
Host: api.devbank.apiture.com
Accept: application/hal+json
var headers = {
'Accept':'application/hal+json',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.devbank.apiture.com/accounts/externalAccounts',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const headers = {
'Accept':'application/hal+json',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.devbank.apiture.com/accounts/externalAccounts',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/hal+json',
'API-Key' => 'API_KEY',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.get 'https://api.devbank.apiture.com/accounts/externalAccounts',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/hal+json',
'API-Key': 'API_KEY',
'Authorization': 'Bearer {access-token}'
}
r = requests.get('https://api.devbank.apiture.com/accounts/externalAccounts', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.devbank.apiture.com/accounts/externalAccounts");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/hal+json"},
"API-Key": []string{"API_KEY"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://api.devbank.apiture.com/accounts/externalAccounts", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Return a collection of external accounts
GET /externalAccounts
Return a paginated sortable filterable searchable collection of external accounts. The links in the response include pagination links.
Parameters
Parameter | Description |
---|---|
start (query) |
integer(int64) The zero-based index of the first external account item to include in this page. The default 0 denotes the beginning of the collection. |
limit (query) |
integer(int32) The maximum number of external account representations to return in this page. |
sortBy (query) |
string Optional sort criteria. See sort criteria format, such as ?sortBy=field1,-field2 . |
state (query) |
string Subset the accounts or external accounts collection to those whose state matches this value. Use | to separate multiple values. For example, ?state=pending will match only items whose state is pending ; ?state=removed|inactive will match items whose state is removed or inactive . This is combined with an implicit and with other filters if they are used. See filtering. Enumerated values: pending active inactive frozen closed |
type (query) |
string Subset the accounts or external accounts collection to those with this exact type value. Use | to separate multiple values. For example, ?type=Personal Savings will match only items whose type is Personal Savings ; ?type=Personal Savings|Investment Account will match 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. |
name (query) |
string Subset the accounts or external accounts collection to those with this name value. Use | to separate multiple values. For example, ?name=Bartell will match only items whose name is Bartell ; ?name=Bartell|kirsten will match items whose name is Bartell or kirsten . This is combined with an implicit and with other filters if they are used. See filtering. |
filter (query) |
string Optional filter criteria. See filtering. |
q (query) |
string Optional search string. See searching. |
unmasked (query) |
boolean When requesting an account, the full account number is not included in the response by default, for security reasons. Include this query parameter, with a value of true , to request that the response body includes the full account number. Such requests are auditable. |
Try it
Fields marked with * are mandatory.
Response
Response Code:
Response Headers:
Response Body:
Click on 'Try It' to get a response.
Example responses
200 Response
{
"_profile": "https://api.apiture.com/schemas/accounts/externalAccounts/v1.0.0/profile.json",
"start": "10",
"limit": 10,
"count": 67,
"name": "external accounts",
"_links": {
"self": {
"href": "/accounts/externalAccounts?start=10&limit=10"
},
"first": {
"href": "/accounts/externalAccounts?start=0&limit=10"
},
"next": {
"href": "/accounts/externalAccounts?start=20&limit=10"
},
"collection": {
"href": "/accounts/externalAccounts"
}
},
"_embedded": {
"items": [
{
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"name": "My account at 3rdParty Bank",
"_profile": "https://api.apiture.com/schemas/accounts/externalAccount/v1.0.0/profile.json",
"type": "savings",
"ifxType": "SDA",
"state": "active",
"primaryUserName": "Lucille Wellphunded",
"institutionName": "3rdParty Bank",
"verifiedAt": "2018-01-20T18:13:33.375Z",
"createdAt": "2018-01-20T05:54:52.375Z",
"routingNumber": "021000021",
"accountNumbers": {
"masked": "*************3210"
},
"_links": {
"self": {
"href": "/accounts/externalAccounts/0399abed-fd3d-4830-a88b-30f38b8a365c"
}
}
}
]
}
}
Responses
Status | Description |
---|---|
200 | OK |
OK | |
Schema: externalAccounts |
Status | Description |
---|---|
400 | Bad Request |
Bad Request. The request body or one or more of the query parameters was not well formed. The _error field in the response will contain details about the request error. | |
Schema: errorResponse |
Status | Description |
---|---|
422 | Unprocessable Entity |
Unprocessable Entity. One or more of the query parameters was well formed but otherwise invalid. The _error field in the response will contain details about the request error. | |
Schema: errorResponse |
createExternalAccount
Code samples
# You can also use wget
curl -X POST https://api.devbank.apiture.com/accounts/externalAccounts \
-H 'Content-Type: application/hal+json' \
-H 'Accept: application/hal+json' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
POST https://api.devbank.apiture.com/accounts/externalAccounts HTTP/1.1
Host: api.devbank.apiture.com
Content-Type: application/hal+json
Accept: application/hal+json
var headers = {
'Content-Type':'application/hal+json',
'Accept':'application/hal+json',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.devbank.apiture.com/accounts/externalAccounts',
method: 'post',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const inputBody = '{
"_profile": "https://api.apiture.com/schemas/accounts/externalAccount/v1.0.0/profile.json",
"name": "My account at 3rdParty Bank",
"institutionName": "3rd Party Bank",
"primaryUserName": "Lana Michaels",
"type": "savings",
"ifxType": "SDA",
"routingNumber": "021000021",
"accountNumbers": {
"full": "9876543210"
},
"_links": {
"apiture:user": {
"href": "/users/users/00007276-8b25-4e97-ac82-e1e17a2ff7c2"
},
"apiture:productType": {
"href": "/products/productTypes/a93c19ba-f96d-4b30-8dd7-92b2d6ffcb0b"
}
}
}';
const headers = {
'Content-Type':'application/hal+json',
'Accept':'application/hal+json',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.devbank.apiture.com/accounts/externalAccounts',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/hal+json',
'Accept' => 'application/hal+json',
'API-Key' => 'API_KEY',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.post 'https://api.devbank.apiture.com/accounts/externalAccounts',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/hal+json',
'Accept': 'application/hal+json',
'API-Key': 'API_KEY',
'Authorization': 'Bearer {access-token}'
}
r = requests.post('https://api.devbank.apiture.com/accounts/externalAccounts', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.devbank.apiture.com/accounts/externalAccounts");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/hal+json"},
"Accept": []string{"application/hal+json"},
"API-Key": []string{"API_KEY"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://api.devbank.apiture.com/accounts/externalAccounts", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Create a new external account
POST /externalAccounts
Create a new external account. A successful operation returns the full accountNumber.
Body parameter
{
"_profile": "https://api.apiture.com/schemas/accounts/externalAccount/v1.0.0/profile.json",
"name": "My account at 3rdParty Bank",
"institutionName": "3rd Party Bank",
"primaryUserName": "Lana Michaels",
"type": "savings",
"ifxType": "SDA",
"routingNumber": "021000021",
"accountNumbers": {
"full": "9876543210"
},
"_links": {
"apiture:user": {
"href": "/users/users/00007276-8b25-4e97-ac82-e1e17a2ff7c2"
},
"apiture:productType": {
"href": "/products/productTypes/a93c19ba-f96d-4b30-8dd7-92b2d6ffcb0b"
}
}
}
Parameters
Parameter | Description |
---|---|
body (body) |
createExternalAccount (required) The data necessary to create a new external account. |
Try it
Fields marked with * are mandatory.
Response
Response Code:
Response Headers:
Response Body:
Click on 'Try It' to get a response.
Example responses
201 Response
{
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"_profile": "https://api.apiture.com/schemas/accounts/externalAccount/v1.0.0/profile.json",
"_links": {
"self": {
"href": "/accounts/externalAccounts/0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:deactivate": {
"href": "/accounts/inactiveAccounts?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:freeze": {
"href": "/accounts/frozenAccounts?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:close": {
"href": "/accounts/closedAccounts?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
}
},
"_embedded": {
"productType": {
"_id": "0a8a1349-d652-4d5e-accc-047ec815d78a",
"_profile": "https://api.apiture.com/schemas/products/productType/v1.0.0/profile.json",
"name": "savings",
"label": "Personal Savings"
}
},
"name": "My account at 3rdParty Bank",
"type": "savings",
"ifxType": "SDA",
"state": "active",
"primaryUserName": "Lucille Wellphunded",
"verifiedAt": "2018-01-20T18:13:33.375Z",
"createdAt": "2018-01-20T05:54:52.375Z",
"institutionName": "3rdParty Bank",
"routingNumber": "021000021",
"accountNumbers": {
"masked": "*************3210"
}
}
Responses
Status | Description |
---|---|
201 | Created |
Created | |
Schema: externalAccount |
Status | Description |
---|---|
400 | Bad Request |
Bad Request. The request body or one or more of the query parameters was not well formed. The _error field in the response will contain details about the request error. | |
Schema: errorResponse |
Status | Description |
---|---|
409 | Conflict |
Conflict. An external account with the key account details already exists for the user, such as an attempt to change the state from active to pending , or to change the name to a name that is already in use by another external account that the user or organization holds. | |
Schema: errorResponse |
Response Headers
Status | Description |
---|---|
201 | Location string uri |
The URI of the new resource. If the URI begins with / it is relative to the API root context. Else, it is a full URI starting with scheme ://host | |
201 | ETag string |
The ETag response header specifies an entity tag which may be provided in an If-Match request header for PUT or PATCH operations which update the resource. |
getExternalAccount
Code samples
# You can also use wget
curl -X GET https://api.devbank.apiture.com/accounts/externalAccounts/{externalAccountId} \
-H 'Accept: application/hal+json' \
-H 'If-None-Match: string' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
GET https://api.devbank.apiture.com/accounts/externalAccounts/{externalAccountId} HTTP/1.1
Host: api.devbank.apiture.com
Accept: application/hal+json
If-None-Match: string
var headers = {
'Accept':'application/hal+json',
'If-None-Match':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.devbank.apiture.com/accounts/externalAccounts/{externalAccountId}',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const headers = {
'Accept':'application/hal+json',
'If-None-Match':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.devbank.apiture.com/accounts/externalAccounts/{externalAccountId}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/hal+json',
'If-None-Match' => 'string',
'API-Key' => 'API_KEY',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.get 'https://api.devbank.apiture.com/accounts/externalAccounts/{externalAccountId}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/hal+json',
'If-None-Match': 'string',
'API-Key': 'API_KEY',
'Authorization': 'Bearer {access-token}'
}
r = requests.get('https://api.devbank.apiture.com/accounts/externalAccounts/{externalAccountId}', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.devbank.apiture.com/accounts/externalAccounts/{externalAccountId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/hal+json"},
"If-None-Match": []string{"string"},
"API-Key": []string{"API_KEY"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://api.devbank.apiture.com/accounts/externalAccounts/{externalAccountId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Fetch a representation of this external account
GET /externalAccounts/{externalAccountId}
Return a HAL representation of this external account resource.
Parameters
Parameter | Description |
---|---|
externalAccountId (path) |
string (required) The unique identifier of this external account. 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. |
unmasked (query) |
boolean When requesting an account, the full account number is not included in the response by default, for security reasons. Include this query parameter, with a value of true , to request that the response body includes the full account number. Such requests are auditable. |
Try it
Fields marked with * are mandatory.
Response
Response Code:
Response Headers:
Response Body:
Click on 'Try It' to get a response.
Example responses
200 Response
{
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"_profile": "https://api.apiture.com/schemas/accounts/externalAccount/v1.0.0/profile.json",
"_links": {
"self": {
"href": "/accounts/externalAccounts/0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:deactivate": {
"href": "/accounts/inactiveAccounts?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:freeze": {
"href": "/accounts/frozenAccounts?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:close": {
"href": "/accounts/closedAccounts?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
}
},
"_embedded": {
"productType": {
"_id": "0a8a1349-d652-4d5e-accc-047ec815d78a",
"_profile": "https://api.apiture.com/schemas/products/productType/v1.0.0/profile.json",
"name": "savings",
"label": "Personal Savings"
}
},
"name": "My account at 3rdParty Bank",
"type": "savings",
"ifxType": "SDA",
"state": "active",
"primaryUserName": "Lucille Wellphunded",
"verifiedAt": "2018-01-20T18:13:33.375Z",
"createdAt": "2018-01-20T05:54:52.375Z",
"institutionName": "3rdParty Bank",
"routingNumber": "021000021",
"accountNumbers": {
"masked": "*************3210"
}
}
Responses
Status | Description |
---|---|
200 | OK |
OK | |
Schema: externalAccount |
Status | Description |
---|---|
304 | Not Modified |
Not Modified. The resource has not been modified since it was last fetched. |
Status | Description |
---|---|
404 | Not Found |
Not Found. There is no such external account resource at the specified {externalAccountId} The _error field in the response will contain details about the request error. | |
Schema: errorResponse |
Response Headers
Status | Description |
---|---|
200 | ETag string |
The ETag response header specifies an entity tag which may be provided in an If-Match request header for PUT or PATCH operations which update this external account resource. |
patchExternalAccount
Code samples
# You can also use wget
curl -X PATCH https://api.devbank.apiture.com/accounts/externalAccounts/{externalAccountId} \
-H 'Content-Type: application/hal+json' \
-H 'Accept: application/hal+json' \
-H 'If-Match: string' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
PATCH https://api.devbank.apiture.com/accounts/externalAccounts/{externalAccountId} HTTP/1.1
Host: api.devbank.apiture.com
Content-Type: application/hal+json
Accept: application/hal+json
If-Match: string
var headers = {
'Content-Type':'application/hal+json',
'Accept':'application/hal+json',
'If-Match':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.devbank.apiture.com/accounts/externalAccounts/{externalAccountId}',
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/accounts/externalAccount/v1.0.0/profile.json",
"_links": {
"self": {
"href": "/accounts/externalAccounts/0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:deactivate": {
"href": "/accounts/inactiveAccounts?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:freeze": {
"href": "/accounts/frozenAccounts?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:close": {
"href": "/accounts/closedAccounts?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
}
},
"_embedded": {
"productType": {
"_id": "0a8a1349-d652-4d5e-accc-047ec815d78a",
"_profile": "https://api.apiture.com/schemas/products/productType/v1.0.0/profile.json",
"name": "savings",
"label": "Personal Savings"
}
},
"name": "My account at 3rdParty Bank",
"type": "savings",
"ifxType": "SDA",
"state": "active",
"primaryUserName": "Lucille Wellphunded",
"verifiedAt": "2018-01-20T18:13:33.375Z",
"createdAt": "2018-01-20T05:54:52.375Z",
"institutionName": "3rdParty Bank",
"routingNumber": "021000021",
"accountNumbers": {
"masked": "*************3210"
}
}';
const headers = {
'Content-Type':'application/hal+json',
'Accept':'application/hal+json',
'If-Match':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.devbank.apiture.com/accounts/externalAccounts/{externalAccountId}',
{
method: 'PATCH',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/hal+json',
'Accept' => 'application/hal+json',
'If-Match' => 'string',
'API-Key' => 'API_KEY',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.patch 'https://api.devbank.apiture.com/accounts/externalAccounts/{externalAccountId}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/hal+json',
'Accept': 'application/hal+json',
'If-Match': 'string',
'API-Key': 'API_KEY',
'Authorization': 'Bearer {access-token}'
}
r = requests.patch('https://api.devbank.apiture.com/accounts/externalAccounts/{externalAccountId}', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.devbank.apiture.com/accounts/externalAccounts/{externalAccountId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PATCH");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/hal+json"},
"Accept": []string{"application/hal+json"},
"If-Match": []string{"string"},
"API-Key": []string{"API_KEY"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("PATCH", "https://api.devbank.apiture.com/accounts/externalAccounts/{externalAccountId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Update this external account
PATCH /externalAccounts/{externalAccountId}
Perform a partial update of this external account. Fields which are omitted from the request are not updated. Nested _embedded
and _links
are ignored if included. Bank users may only update the routingNumber
and accountNumbers.full
and institutionName
and type
if the external account is still pending
. If accountNumbers.full
is patched, then the full account number is included in the response. This operation does not change the state
property. To change the state
of the account, use the POST
operations activateAccount
, deactivateAccount
, freezeAccount
, closeAccount
, reviewExternalAccount
, removeAccount
, which are available in the _links
on an account instance.
Body parameter
{
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"_profile": "https://api.apiture.com/schemas/accounts/externalAccount/v1.0.0/profile.json",
"_links": {
"self": {
"href": "/accounts/externalAccounts/0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:deactivate": {
"href": "/accounts/inactiveAccounts?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:freeze": {
"href": "/accounts/frozenAccounts?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:close": {
"href": "/accounts/closedAccounts?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
}
},
"_embedded": {
"productType": {
"_id": "0a8a1349-d652-4d5e-accc-047ec815d78a",
"_profile": "https://api.apiture.com/schemas/products/productType/v1.0.0/profile.json",
"name": "savings",
"label": "Personal Savings"
}
},
"name": "My account at 3rdParty Bank",
"type": "savings",
"ifxType": "SDA",
"state": "active",
"primaryUserName": "Lucille Wellphunded",
"verifiedAt": "2018-01-20T18:13:33.375Z",
"createdAt": "2018-01-20T05:54:52.375Z",
"institutionName": "3rdParty Bank",
"routingNumber": "021000021",
"accountNumbers": {
"masked": "*************3210"
}
}
Parameters
Parameter | Description |
---|---|
externalAccountId (path) |
string (required) The unique identifier of this external account. This is an opaque string. |
If-Match (header) |
string The entity tag that was returned in the ETag response. If used, this must match the current entity tag of the resource. |
body (body) |
externalAccount (required) |
Try it
Fields marked with * are mandatory.
Response
Response Code:
Response Headers:
Response Body:
Click on 'Try It' to get a response.
Example responses
200 Response
{
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"_profile": "https://api.apiture.com/schemas/accounts/externalAccount/v1.0.0/profile.json",
"_links": {
"self": {
"href": "/accounts/externalAccounts/0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:deactivate": {
"href": "/accounts/inactiveAccounts?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:freeze": {
"href": "/accounts/frozenAccounts?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:close": {
"href": "/accounts/closedAccounts?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
}
},
"_embedded": {
"productType": {
"_id": "0a8a1349-d652-4d5e-accc-047ec815d78a",
"_profile": "https://api.apiture.com/schemas/products/productType/v1.0.0/profile.json",
"name": "savings",
"label": "Personal Savings"
}
},
"name": "My account at 3rdParty Bank",
"type": "savings",
"ifxType": "SDA",
"state": "active",
"primaryUserName": "Lucille Wellphunded",
"verifiedAt": "2018-01-20T18:13:33.375Z",
"createdAt": "2018-01-20T05:54:52.375Z",
"institutionName": "3rdParty Bank",
"routingNumber": "021000021",
"accountNumbers": {
"masked": "*************3210"
}
}
Responses
Status | Description |
---|---|
200 | OK |
OK | |
Schema: externalAccount |
Status | Description |
---|---|
400 | Bad Request |
Bad Request. The request body or one or more of the query parameters was not well formed. The _error field in the response will contain details about the request error. | |
Schema: errorResponse |
Status | Description |
---|---|
404 | Not Found |
Not Found. There is no such external account resource at the specified {externalAccountId} The _error field in the response will contain details about the request error. | |
Schema: errorResponse |
Status | Description |
---|---|
409 | Conflict |
Conflict. the request attempted to change the state in an incompatible way, such as an attempt to change the state from active to pending or to change the name to a name that is already in use by another external account that the user or organization holds. |
Status | Description |
---|---|
412 | Precondition Failed |
Precondition Failed. The supplied If-Match header value does not match the most recent ETag response header value. The resource has changed in the interim. | |
Schema: errorResponse |
Status | Description |
---|---|
422 | Unprocessable Entity |
Unprocessable Entity. One or more of the query parameters was well formed but otherwise invalid. The _error field in the response will contain details about the request error. | |
Schema: errorResponse |
Response Headers
Status | Description |
---|---|
200 | ETag string |
The ETag response header specifies an entity tag which may be provided in an If-Match request header for PUT or PATCH operations which update this external account resource. |
deleteExternalAccount
Code samples
# You can also use wget
curl -X DELETE https://api.devbank.apiture.com/accounts/externalAccounts/{externalAccountId} \
-H 'Accept: application/hal+json' \
-H 'If-Match: string' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
DELETE https://api.devbank.apiture.com/accounts/externalAccounts/{externalAccountId} HTTP/1.1
Host: api.devbank.apiture.com
Accept: application/hal+json
If-Match: string
var headers = {
'Accept':'application/hal+json',
'If-Match':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.devbank.apiture.com/accounts/externalAccounts/{externalAccountId}',
method: 'delete',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const headers = {
'Accept':'application/hal+json',
'If-Match':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.devbank.apiture.com/accounts/externalAccounts/{externalAccountId}',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/hal+json',
'If-Match' => 'string',
'API-Key' => 'API_KEY',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.delete 'https://api.devbank.apiture.com/accounts/externalAccounts/{externalAccountId}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/hal+json',
'If-Match': 'string',
'API-Key': 'API_KEY',
'Authorization': 'Bearer {access-token}'
}
r = requests.delete('https://api.devbank.apiture.com/accounts/externalAccounts/{externalAccountId}', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.devbank.apiture.com/accounts/externalAccounts/{externalAccountId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/hal+json"},
"If-Match": []string{"string"},
"API-Key": []string{"API_KEY"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("DELETE", "https://api.devbank.apiture.com/accounts/externalAccounts/{externalAccountId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Delete this external account resource
DELETE /externalAccounts/{externalAccountId}
Delete this external account resource and any resources that are owned by it. Note that only pending
accounts may be deleted. Once an account has been activated, it cannot be deleted, only inactivated or removed from use.
Parameters
Parameter | Description |
---|---|
If-Match (header) |
string The entity tag that was returned in the ETag response. If used, this must match the current entity tag of the resource. |
externalAccountId (path) |
string (required) The unique identifier of this external account. This is an opaque string. |
Try it
Fields marked with * are mandatory.
Response
Response Code:
Response Headers:
Response Body:
Click on 'Try It' to get a response.
Example responses
404 Response
{
"_profile": "https://api.apiture.com/schemas/common/errorResponse/v2.0.0/profile.json",
"_error": {
"_id": "2eae46e1-575c-4d69-8a8f-0a7b0115a4b3",
"message": "The value for deposit must be greater than 0.",
"statusCode": 422,
"type": "positiveNumberRequired",
"attributes": {
"value": -125.5
},
"remediation": "Provide a value which is greater than 0",
"occurredAt": "2018-01-25T05:50:52.375Z",
"_links": {
"describedby": {
"href": "https://api.apiture.com/errors/positiveNumberRequired"
}
},
"_embedded": {
"errors": []
}
}
}
Responses
Status | Description |
---|---|
204 | No Content |
No Content. The resource was deleted successfully. |
Status | Description |
---|---|
404 | Not Found |
Not Found. There is no such external account resource at the specified {externalAccountId} The _error field in the response will contain details about the request error. | |
Schema: errorResponse |
Status | Description |
---|---|
409 | Conflict |
Conflict. the request attempted to change the state in an incompatible way, such as an attempt to change the state from active to pending or to change the name to a name that is already in use by another external account that the user or organization holds. |
Status | Description |
---|---|
412 | Precondition Failed |
Precondition Failed. The supplied If-Match header value does not match the most recent ETag response header value. The resource has changed in the interim. | |
Schema: errorResponse |
Account Owners
Personal Account Owners
getExternalAccountOwners
Code samples
# You can also use wget
curl -X GET https://api.devbank.apiture.com/accounts/externalAccounts/{externalAccountId}/accountOwners \
-H 'Accept: application/hal+json' \
-H 'If-None-Match: string' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
GET https://api.devbank.apiture.com/accounts/externalAccounts/{externalAccountId}/accountOwners HTTP/1.1
Host: api.devbank.apiture.com
Accept: application/hal+json
If-None-Match: string
var headers = {
'Accept':'application/hal+json',
'If-None-Match':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.devbank.apiture.com/accounts/externalAccounts/{externalAccountId}/accountOwners',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const headers = {
'Accept':'application/hal+json',
'If-None-Match':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.devbank.apiture.com/accounts/externalAccounts/{externalAccountId}/accountOwners',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/hal+json',
'If-None-Match' => 'string',
'API-Key' => 'API_KEY',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.get 'https://api.devbank.apiture.com/accounts/externalAccounts/{externalAccountId}/accountOwners',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/hal+json',
'If-None-Match': 'string',
'API-Key': 'API_KEY',
'Authorization': 'Bearer {access-token}'
}
r = requests.get('https://api.devbank.apiture.com/accounts/externalAccounts/{externalAccountId}/accountOwners', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.devbank.apiture.com/accounts/externalAccounts/{externalAccountId}/accountOwners");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/hal+json"},
"If-None-Match": []string{"string"},
"API-Key": []string{"API_KEY"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://api.devbank.apiture.com/accounts/externalAccounts/{externalAccountId}/accountOwners", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Return a list of external account owners
GET /externalAccounts/{externalAccountId}/accountOwners
Return a list of the external account's account owners (holders). The result may be empty if the data was not available when user created the external account or the account aggregator provider does not provide this information.
Parameters
Parameter | Description |
---|---|
externalAccountId (path) |
string (required) The unique identifier of this external account. This is an opaque string. |
If-None-Match (header) |
string The entity tag that was returned in the ETag response. If the resource's current entity tag matches, the GET will return 304 (Not Modified) and no response body, else the resource representation will be returned. |
Try it
Fields marked with * are mandatory.
Response
Response Code:
Response Headers:
Response Body:
Click on 'Try It' to get a response.
Example responses
200 Response
{
"_profile": "https://api.apiture.com/schemas/accounts/externalAccountOwners/v1.0.0/profile.json",
"accountOwners": [
{
"firstName": "Steven",
"middleName": "Benjamin",
"lastName": "Storey",
"fullName": "Steven B. Storey",
"type": "primary"
}
]
}
Responses
Status | Description |
---|---|
200 | OK |
OK | |
Schema: externalAccountOwners |
Status | Description |
---|---|
304 | Not Modified |
Not Modified. The resource has not been modified since it was last fetched. |
Status | Description |
---|---|
404 | Not Found |
Not Found. There is no such external account resource at the specified {externalAccountId} The _error field in the response will contain details about the request error. | |
Schema: errorResponse |
Response Headers
Status | Description |
---|---|
200 | ETag string |
The ETag response header specifies an entity tag which may be be provided with the If-None-Match on subsequent requests. |
getOwners
Code samples
# You can also use wget
curl -X GET https://api.devbank.apiture.com/accounts/accounts/{accountId}/owners \
-H 'Accept: application/hal+json' \
-H 'If-None-Match: string' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
GET https://api.devbank.apiture.com/accounts/accounts/{accountId}/owners HTTP/1.1
Host: api.devbank.apiture.com
Accept: application/hal+json
If-None-Match: string
var headers = {
'Accept':'application/hal+json',
'If-None-Match':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.devbank.apiture.com/accounts/accounts/{accountId}/owners',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const headers = {
'Accept':'application/hal+json',
'If-None-Match':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.devbank.apiture.com/accounts/accounts/{accountId}/owners',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/hal+json',
'If-None-Match' => 'string',
'API-Key' => 'API_KEY',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.get 'https://api.devbank.apiture.com/accounts/accounts/{accountId}/owners',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/hal+json',
'If-None-Match': 'string',
'API-Key': 'API_KEY',
'Authorization': 'Bearer {access-token}'
}
r = requests.get('https://api.devbank.apiture.com/accounts/accounts/{accountId}/owners', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.devbank.apiture.com/accounts/accounts/{accountId}/owners");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/hal+json"},
"If-None-Match": []string{"string"},
"API-Key": []string{"API_KEY"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://api.devbank.apiture.com/accounts/accounts/{accountId}/owners", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Fetch the primary and joint owners of an account
GET /accounts/{accountId}/owners
Return a HAL representation
of the array of the account owners for personal accounts. There is one primary
owner and
zero or more joint
owners.
Bank customers cannot directly change this set; only the bank system or
admins can change owners. Existing primary or joint owners may invite other joint owners
via the Invitations API.
For business accounts, refer to the owningBusiness
in the
account resource's embedded objects.
Parameters
Parameter | Description |
---|---|
accountId (path) |
string (required) The unique identifier of this account. 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. |
unmasked (query) |
boolean When requesting an account, the full account number is not included in the response by default, for security reasons. Include this query parameter, with a value of true , to request that the response body includes the full account number. Such requests are auditable. |
Try it
Fields marked with * are mandatory.
Response
Response Code:
Response Headers:
Response Body:
Click on 'Try It' to get a response.
Example responses
200 Response
{
"_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"
}
}
},
"items": [
{
"userId": "bd9e7a93-32cc-435d-ac57-f21faa082318",
"customerId": "00047294723672",
"type": "joint",
"role": "Chief Financial Officer",
"firstName": "John",
"middleName": "Daniel",
"lastName": "Smith",
"taxId": "111-11-1111",
"citizen": true,
"addresses": [
{
"_id": "ha5",
"type": "home",
"addressLine1": "555 N Front Street",
"addressLine2": "Suite 5555",
"city": "Wilmington",
"regionCode": "NC",
"postalCode": "28401-5405",
"countryCode": "US"
},
{
"id": "wa0",
"type": "other",
"label": "mailing",
"addressLine1": "123 S 3rd Street",
"addressLine2": "Apt 42",
"city": "Wilmington",
"regionCode": "NC",
"postalCode": "28411-5405",
"countryCode": "US"
}
],
"preferredMailingAddressId": "ha5",
"emailAddress": "JohnDanielSmith@example.com"
}
]
}
Responses
Status | Description |
---|---|
200 | OK |
OK | |
Schema: owners |
Status | Description |
---|---|
304 | Not Modified |
Not Modified. The resource has not been modified since it was last fetched. |
Status | Description |
---|---|
404 | Not Found |
Not Found. There is no such account resource at the specified {accountId} . The _error field in the response will contain details about the request error. | |
Schema: errorResponse |
Response Headers
Status | Description |
---|---|
200 | ETag string |
The ETag response header specifies an entity tag which may be provided in an If-Match request header for PUT or PATCH operations which update this account resource. |
updateOwners
Code samples
# You can also use wget
curl -X PUT https://api.devbank.apiture.com/accounts/accounts/{accountId}/owners \
-H 'Content-Type: application/hal+json' \
-H 'Accept: application/hal+json' \
-H 'If-Match: string' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
PUT https://api.devbank.apiture.com/accounts/accounts/{accountId}/owners HTTP/1.1
Host: api.devbank.apiture.com
Content-Type: application/hal+json
Accept: application/hal+json
If-Match: string
var headers = {
'Content-Type':'application/hal+json',
'Accept':'application/hal+json',
'If-Match':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.devbank.apiture.com/accounts/accounts/{accountId}/owners',
method: 'put',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const inputBody = '{
"_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"
}
}
},
"items": [
{
"userId": "bd9e7a93-32cc-435d-ac57-f21faa082318",
"customerId": "00047294723672",
"type": "joint",
"role": "Chief Financial Officer",
"firstName": "John",
"middleName": "Daniel",
"lastName": "Smith",
"taxId": "111-11-1111",
"citizen": true,
"addresses": [
{
"_id": "ha5",
"type": "home",
"addressLine1": "555 N Front Street",
"addressLine2": "Suite 5555",
"city": "Wilmington",
"regionCode": "NC",
"postalCode": "28401-5405",
"countryCode": "US"
},
{
"id": "wa0",
"type": "other",
"label": "mailing",
"addressLine1": "123 S 3rd Street",
"addressLine2": "Apt 42",
"city": "Wilmington",
"regionCode": "NC",
"postalCode": "28411-5405",
"countryCode": "US"
}
],
"preferredMailingAddressId": "ha5",
"emailAddress": "JohnDanielSmith@example.com"
}
]
}';
const headers = {
'Content-Type':'application/hal+json',
'Accept':'application/hal+json',
'If-Match':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.devbank.apiture.com/accounts/accounts/{accountId}/owners',
{
method: 'PUT',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/hal+json',
'Accept' => 'application/hal+json',
'If-Match' => 'string',
'API-Key' => 'API_KEY',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.put 'https://api.devbank.apiture.com/accounts/accounts/{accountId}/owners',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/hal+json',
'Accept': 'application/hal+json',
'If-Match': 'string',
'API-Key': 'API_KEY',
'Authorization': 'Bearer {access-token}'
}
r = requests.put('https://api.devbank.apiture.com/accounts/accounts/{accountId}/owners', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.devbank.apiture.com/accounts/accounts/{accountId}/owners");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PUT");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/hal+json"},
"Accept": []string{"application/hal+json"},
"If-Match": []string{"string"},
"API-Key": []string{"API_KEY"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("PUT", "https://api.devbank.apiture.com/accounts/accounts/{accountId}/owners", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Update the owners of this account
PUT /accounts/{accountId}/owners
Update the array of the primary and joint owners on a personal account. Each owner in the request must be a verified user. This operation completely replaces the set of owners. This operation applies only to personal accounts. The new owners must have exactly one primary owner and may have additional joint owners.
Only financial institutions may update owners; this occurs after an existing owner or the person who created the personal account has invited other users and those verified users have accepted the invitation.
Body parameter
{
"_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"
}
}
},
"items": [
{
"userId": "bd9e7a93-32cc-435d-ac57-f21faa082318",
"customerId": "00047294723672",
"type": "joint",
"role": "Chief Financial Officer",
"firstName": "John",
"middleName": "Daniel",
"lastName": "Smith",
"taxId": "111-11-1111",
"citizen": true,
"addresses": [
{
"_id": "ha5",
"type": "home",
"addressLine1": "555 N Front Street",
"addressLine2": "Suite 5555",
"city": "Wilmington",
"regionCode": "NC",
"postalCode": "28401-5405",
"countryCode": "US"
},
{
"id": "wa0",
"type": "other",
"label": "mailing",
"addressLine1": "123 S 3rd Street",
"addressLine2": "Apt 42",
"city": "Wilmington",
"regionCode": "NC",
"postalCode": "28411-5405",
"countryCode": "US"
}
],
"preferredMailingAddressId": "ha5",
"emailAddress": "JohnDanielSmith@example.com"
}
]
}
Parameters
Parameter | Description |
---|---|
accountId (path) |
string (required) The unique identifier of this account. This is an opaque string. |
If-Match (header) |
string The entity tag that was returned in the ETag response. If used, this must match the current entity tag of the resource. |
body (body) |
owners (required) The array of owners. |
Try it
Fields marked with * are mandatory.
Response
Response Code:
Response Headers:
Response Body:
Click on 'Try It' to get a response.
Example responses
200 Response
{
"_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"
}
}
},
"items": [
{
"userId": "bd9e7a93-32cc-435d-ac57-f21faa082318",
"customerId": "00047294723672",
"type": "joint",
"role": "Chief Financial Officer",
"firstName": "John",
"middleName": "Daniel",
"lastName": "Smith",
"taxId": "111-11-1111",
"citizen": true,
"addresses": [
{
"_id": "ha5",
"type": "home",
"addressLine1": "555 N Front Street",
"addressLine2": "Suite 5555",
"city": "Wilmington",
"regionCode": "NC",
"postalCode": "28401-5405",
"countryCode": "US"
},
{
"id": "wa0",
"type": "other",
"label": "mailing",
"addressLine1": "123 S 3rd Street",
"addressLine2": "Apt 42",
"city": "Wilmington",
"regionCode": "NC",
"postalCode": "28411-5405",
"countryCode": "US"
}
],
"preferredMailingAddressId": "ha5",
"emailAddress": "JohnDanielSmith@example.com"
}
]
}
Responses
Status | Description |
---|---|
200 | OK |
OK | |
Schema: owners |
Status | Description |
---|---|
304 | Not Modified |
Not Modified. The resource has not been modified since it was last fetched. |
Status | Description |
---|---|
404 | Not Found |
Not Found. There is no such account resource at the specified {accountId} . The _error field in the response will contain details about the request error. | |
Schema: errorResponse |
Status | Description |
---|---|
422 | Unprocessable Entity |
Unprocessable Entity. Invalid data in the request to update an accounts owners:
| |
Schema: errorResponse |
Response Headers
Status | Description |
---|---|
200 | ETag string |
The ETag response header specifies an entity tag which may be provided in an If-Match request header for PUT or PATCH operations which update this account resource. |
Account Beneficiaries
Personal Account Beneficiaries
getBeneficiaries
Code samples
# You can also use wget
curl -X GET https://api.devbank.apiture.com/accounts/accounts/{accountId}/beneficiaries \
-H 'Accept: application/hal+json' \
-H 'If-None-Match: string' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
GET https://api.devbank.apiture.com/accounts/accounts/{accountId}/beneficiaries HTTP/1.1
Host: api.devbank.apiture.com
Accept: application/hal+json
If-None-Match: string
var headers = {
'Accept':'application/hal+json',
'If-None-Match':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.devbank.apiture.com/accounts/accounts/{accountId}/beneficiaries',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const headers = {
'Accept':'application/hal+json',
'If-None-Match':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.devbank.apiture.com/accounts/accounts/{accountId}/beneficiaries',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/hal+json',
'If-None-Match' => 'string',
'API-Key' => 'API_KEY',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.get 'https://api.devbank.apiture.com/accounts/accounts/{accountId}/beneficiaries',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/hal+json',
'If-None-Match': 'string',
'API-Key': 'API_KEY',
'Authorization': 'Bearer {access-token}'
}
r = requests.get('https://api.devbank.apiture.com/accounts/accounts/{accountId}/beneficiaries', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.devbank.apiture.com/accounts/accounts/{accountId}/beneficiaries");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/hal+json"},
"If-None-Match": []string{"string"},
"API-Key": []string{"API_KEY"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://api.devbank.apiture.com/accounts/accounts/{accountId}/beneficiaries", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Fetch the account's beneficiaries
GET /accounts/{accountId}/beneficiaries
Return a HAL representation of the array of the account beneficiaries.
Parameters
Parameter | Description |
---|---|
accountId (path) |
string (required) The unique identifier of this account. This is an opaque string. |
If-None-Match (header) |
string The entity tag that was returned in the ETag response. If the resource's current entity tag matches, the GET will return 304 (Not Modified) and no response body, else the resource representation will be returned. |
Try it
Fields marked with * are mandatory.
Response
Response Code:
Response Headers:
Response Body:
Click on 'Try It' to get a response.
Example responses
200 Response
{
"_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"
}
}
},
"items": [
{
"type": "organization",
"percent": 40,
"organization": {
"name": "Doctors Without Borders USA",
"label": "Doctors Without Borders",
"type": "nonProfit",
"subtype": "charitableTrust",
"identification": {
"type": "taxId",
"value": "13-3433452"
},
"addresses": [
{
"type": "headquarters",
"addressLine1": "40 Rector St.",
"addressLine2": "16th Floor",
"city": "New York",
"regionCode": "NY",
"postalCode": 10006
}
]
}
}
]
}
Responses
Status | Description |
---|---|
200 | OK |
OK | |
Schema: beneficiaries |
Status | Description |
---|---|
304 | Not Modified |
Not Modified. The resource has not been modified since it was last fetched. |
Status | Description |
---|---|
404 | Not Found |
Not Found. There is no such account resource at the specified {accountId} , or the account type does not support beneficiaries. The _error field in the response will contain details about the request error. | |
Schema: errorResponse |
Response Headers
Status | Description |
---|---|
200 | ETag string |
The ETag response header specifies an entity tag which may be provided in an If-Match request header for PUT or PATCH operations which update this account resource. |
patchBeneficiaries
Code samples
# You can also use wget
curl -X PATCH https://api.devbank.apiture.com/accounts/accounts/{accountId}/beneficiaries \
-H 'Content-Type: application/hal+json' \
-H 'Accept: application/hal+json' \
-H 'If-Match: string' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
PATCH https://api.devbank.apiture.com/accounts/accounts/{accountId}/beneficiaries HTTP/1.1
Host: api.devbank.apiture.com
Content-Type: application/hal+json
Accept: application/hal+json
If-Match: string
var headers = {
'Content-Type':'application/hal+json',
'Accept':'application/hal+json',
'If-Match':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.devbank.apiture.com/accounts/accounts/{accountId}/beneficiaries',
method: 'patch',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const inputBody = '{
"_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"
}
}
},
"items": [
{
"type": "organization",
"percent": 40,
"organization": {
"name": "Doctors Without Borders USA",
"label": "Doctors Without Borders",
"type": "nonProfit",
"subtype": "charitableTrust",
"identification": {
"type": "taxId",
"value": "13-3433452"
},
"addresses": [
{
"type": "headquarters",
"addressLine1": "40 Rector St.",
"addressLine2": "16th Floor",
"city": "New York",
"regionCode": "NY",
"postalCode": 10006
}
]
}
}
]
}';
const headers = {
'Content-Type':'application/hal+json',
'Accept':'application/hal+json',
'If-Match':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.devbank.apiture.com/accounts/accounts/{accountId}/beneficiaries',
{
method: 'PATCH',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/hal+json',
'Accept' => 'application/hal+json',
'If-Match' => 'string',
'API-Key' => 'API_KEY',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.patch 'https://api.devbank.apiture.com/accounts/accounts/{accountId}/beneficiaries',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/hal+json',
'Accept': 'application/hal+json',
'If-Match': 'string',
'API-Key': 'API_KEY',
'Authorization': 'Bearer {access-token}'
}
r = requests.patch('https://api.devbank.apiture.com/accounts/accounts/{accountId}/beneficiaries', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.devbank.apiture.com/accounts/accounts/{accountId}/beneficiaries");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PATCH");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/hal+json"},
"Accept": []string{"application/hal+json"},
"If-Match": []string{"string"},
"API-Key": []string{"API_KEY"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("PATCH", "https://api.devbank.apiture.com/accounts/accounts/{accountId}/beneficiaries", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Create or Update the account's beneficiaries
PATCH /accounts/{accountId}/beneficiaries
Create or update the array of the beneficiaries for this account. Beneficiaries may be individuals, or a trust or charity. If the array contains only one item, it's percentage is automatically set to 100%.
When updating an existing set of beneficiaries, null
values in
the items
array or omitted objects (such as individual
or
organization
) inside the items are ignored: the beneficiary
corresponding to a null
item is not changed. For example, the
client may omit the type
, individual
, and organization
properties in the items
array in order to adjust just the
percentages:
[ { 'percentage': 20 }, { 'percentage': 30 }, { 'percentage' : 20 }, null, null ]
will change just the percentages of the first three beneficiaries and not update their other data for any of the five beneficiaries;
The beneficiaries list is truncated to the size of the items
array. For example: if there were five beneficiaries, and the
request body contains only three items, the last two are removed
from the accounts beneficiaries array (The new total must still
total 100%.)
This operation applies only to personal
accounts.
Body parameter
{
"_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"
}
}
},
"items": [
{
"type": "organization",
"percent": 40,
"organization": {
"name": "Doctors Without Borders USA",
"label": "Doctors Without Borders",
"type": "nonProfit",
"subtype": "charitableTrust",
"identification": {
"type": "taxId",
"value": "13-3433452"
},
"addresses": [
{
"type": "headquarters",
"addressLine1": "40 Rector St.",
"addressLine2": "16th Floor",
"city": "New York",
"regionCode": "NY",
"postalCode": 10006
}
]
}
}
]
}
Parameters
Parameter | Description |
---|---|
accountId (path) |
string (required) The unique identifier of this account. This is an opaque string. |
If-Match (header) |
string The entity tag that was returned in the ETag response. If used, this must match the current entity tag of the resource. |
body (body) |
beneficiaries (required) The array of account beneficiaries. |
Try it
Fields marked with * are mandatory.
Response
Response Code:
Response Headers:
Response Body:
Click on 'Try It' to get a response.
Example responses
200 Response
{
"_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"
}
}
},
"items": [
{
"type": "organization",
"percent": 40,
"organization": {
"name": "Doctors Without Borders USA",
"label": "Doctors Without Borders",
"type": "nonProfit",
"subtype": "charitableTrust",
"identification": {
"type": "taxId",
"value": "13-3433452"
},
"addresses": [
{
"type": "headquarters",
"addressLine1": "40 Rector St.",
"addressLine2": "16th Floor",
"city": "New York",
"regionCode": "NY",
"postalCode": 10006
}
]
}
}
]
}
Responses
Status | Description |
---|---|
200 | OK |
OK | |
Schema: beneficiaries |
Status | Description |
---|---|
304 | Not Modified |
Not Modified. The resource has not been modified since it was last fetched. |
Status | Description |
---|---|
400 | Bad Request |
Bad Request. The beneficiary data is invalid or percentages to not total 100%. | |
Schema: errorResponse |
Status | Description |
---|---|
404 | Not Found |
Not Found. There is no such account resource at the specified {accountId} . The _error field in the response will contain details about the request error. | |
Schema: errorResponse |
Status | Description |
---|---|
409 | Conflict |
Conflict. Beneficiaries can only be assigned to personal accounts. | |
Schema: errorResponse |
Response Headers
Status | Description |
---|---|
200 | ETag string |
The ETag response header specifies an entity tag which may be provided in an If-Match request header for PUT or PATCH operations which update this account resource. |
Authorized Signers
Business Account Authorized Signers
getAuthorizedSigners
Code samples
# You can also use wget
curl -X GET https://api.devbank.apiture.com/accounts/accounts/{accountId}/authorizedSigners \
-H 'Accept: application/hal+json' \
-H 'If-None-Match: string' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
GET https://api.devbank.apiture.com/accounts/accounts/{accountId}/authorizedSigners HTTP/1.1
Host: api.devbank.apiture.com
Accept: application/hal+json
If-None-Match: string
var headers = {
'Accept':'application/hal+json',
'If-None-Match':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.devbank.apiture.com/accounts/accounts/{accountId}/authorizedSigners',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const headers = {
'Accept':'application/hal+json',
'If-None-Match':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.devbank.apiture.com/accounts/accounts/{accountId}/authorizedSigners',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/hal+json',
'If-None-Match' => 'string',
'API-Key' => 'API_KEY',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.get 'https://api.devbank.apiture.com/accounts/accounts/{accountId}/authorizedSigners',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/hal+json',
'If-None-Match': 'string',
'API-Key': 'API_KEY',
'Authorization': 'Bearer {access-token}'
}
r = requests.get('https://api.devbank.apiture.com/accounts/accounts/{accountId}/authorizedSigners', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.devbank.apiture.com/accounts/accounts/{accountId}/authorizedSigners");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/hal+json"},
"If-None-Match": []string{"string"},
"API-Key": []string{"API_KEY"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://api.devbank.apiture.com/accounts/accounts/{accountId}/authorizedSigners", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Fetch the business account's authorized signers
GET /accounts/{accountId}/authorizedSigners
Return a HAL representation of the array of the account's authorized signers.
This operation applies only to business accounts.
Parameters
Parameter | Description |
---|---|
accountId (path) |
string (required) The unique identifier of this account. This is an opaque string. |
If-None-Match (header) |
string The entity tag that was returned in the ETag response. If the resource's current entity tag matches, the GET will return 304 (Not Modified) and no response body, else the resource representation will be returned. |
Try it
Fields marked with * are mandatory.
Response
Example responses
200 Response
{
"_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"
}
}
},
"items": [
{
"userId": "bd9e7a93-32cc-435d-ac57-f21faa082318",
"customerId": "00047294723672",
"type": "joint",
"role": "Chief Financial Officer",
"firstName": "John",
"middleName": "Daniel",
"lastName": "Smith",
"taxId": "111-11-1111",
"citizen": true,
"addresses": [
{
"_id": "ha5",
"type": "home",
"addressLine1": "555 N Front Street",
"addressLine2": "Suite 5555",
"city": "Wilmington",
"regionCode": "NC",
"postalCode": "28401-5405",
"countryCode": "US"
},
{
"id": "wa0",
"type": "other",
"label": "mailing",
"addressLine1": "123 S 3rd Street",
"addressLine2": "Apt 42",
"city": "Wilmington",
"regionCode": "NC",
"postalCode": "28411-5405",
"countryCode": "US"
}
],
"preferredMailingAddressId": "ha5",
"emailAddress": "JohnDanielSmith@example.com"
}
]
}
Responses
Status | Description |
---|---|
200 | OK |
OK | |
Schema: authorizedSigners |
Status | Description |
---|---|
304 | Not Modified |
Not Modified. The resource has not been modified since it was last fetched. |
Status | Description |
---|---|
404 | Not Found |
Not Found. There is no such account resource at the specified {accountId} . The _error field in the response will contain details about the request error. | |
Schema: errorResponse |
Response Headers
Status | Description |
---|---|
200 | ETag string |
The ETag response header specifies an entity tag which may be provided in an If-Match request header for PUT or PATCH operations which update this account resource. |
updateAuthorizedSigners
Code samples
# You can also use wget
curl -X PUT https://api.devbank.apiture.com/accounts/accounts/{accountId}/authorizedSigners \
-H 'Content-Type: application/hal+json' \
-H 'Accept: application/hal+json' \
-H 'If-Match: string' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
PUT https://api.devbank.apiture.com/accounts/accounts/{accountId}/authorizedSigners HTTP/1.1
Host: api.devbank.apiture.com
Content-Type: application/hal+json
Accept: application/hal+json
If-Match: string
var headers = {
'Content-Type':'application/hal+json',
'Accept':'application/hal+json',
'If-Match':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.devbank.apiture.com/accounts/accounts/{accountId}/authorizedSigners',
method: 'put',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const inputBody = '{
"_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"
}
}
},
"items": [
{
"userId": "bd9e7a93-32cc-435d-ac57-f21faa082318",
"customerId": "00047294723672",
"type": "joint",
"role": "Chief Financial Officer",
"firstName": "John",
"middleName": "Daniel",
"lastName": "Smith",
"taxId": "111-11-1111",
"citizen": true,
"addresses": [
{
"_id": "ha5",
"type": "home",
"addressLine1": "555 N Front Street",
"addressLine2": "Suite 5555",
"city": "Wilmington",
"regionCode": "NC",
"postalCode": "28401-5405",
"countryCode": "US"
},
{
"id": "wa0",
"type": "other",
"label": "mailing",
"addressLine1": "123 S 3rd Street",
"addressLine2": "Apt 42",
"city": "Wilmington",
"regionCode": "NC",
"postalCode": "28411-5405",
"countryCode": "US"
}
],
"preferredMailingAddressId": "ha5",
"emailAddress": "JohnDanielSmith@example.com"
}
]
}';
const headers = {
'Content-Type':'application/hal+json',
'Accept':'application/hal+json',
'If-Match':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.devbank.apiture.com/accounts/accounts/{accountId}/authorizedSigners',
{
method: 'PUT',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/hal+json',
'Accept' => 'application/hal+json',
'If-Match' => 'string',
'API-Key' => 'API_KEY',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.put 'https://api.devbank.apiture.com/accounts/accounts/{accountId}/authorizedSigners',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/hal+json',
'Accept': 'application/hal+json',
'If-Match': 'string',
'API-Key': 'API_KEY',
'Authorization': 'Bearer {access-token}'
}
r = requests.put('https://api.devbank.apiture.com/accounts/accounts/{accountId}/authorizedSigners', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.devbank.apiture.com/accounts/accounts/{accountId}/authorizedSigners");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PUT");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/hal+json"},
"Accept": []string{"application/hal+json"},
"If-Match": []string{"string"},
"API-Key": []string{"API_KEY"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("PUT", "https://api.devbank.apiture.com/accounts/accounts/{accountId}/authorizedSigners", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Update the authorized signers of an account
PUT /accounts/{accountId}/authorizedSigners
Update the array of the authorized signers. Each signer must be a verified user. This operation completely replaces the set of signers. Only financial institutions may update authorized signers; this occurs after an existing authorized signer or the person who created the business account has invited other users and those verified users have accepted the invitation.
This operation applies only to business accounts.
Body parameter
{
"_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"
}
}
},
"items": [
{
"userId": "bd9e7a93-32cc-435d-ac57-f21faa082318",
"customerId": "00047294723672",
"type": "joint",
"role": "Chief Financial Officer",
"firstName": "John",
"middleName": "Daniel",
"lastName": "Smith",
"taxId": "111-11-1111",
"citizen": true,
"addresses": [
{
"_id": "ha5",
"type": "home",
"addressLine1": "555 N Front Street",
"addressLine2": "Suite 5555",
"city": "Wilmington",
"regionCode": "NC",
"postalCode": "28401-5405",
"countryCode": "US"
},
{
"id": "wa0",
"type": "other",
"label": "mailing",
"addressLine1": "123 S 3rd Street",
"addressLine2": "Apt 42",
"city": "Wilmington",
"regionCode": "NC",
"postalCode": "28411-5405",
"countryCode": "US"
}
],
"preferredMailingAddressId": "ha5",
"emailAddress": "JohnDanielSmith@example.com"
}
]
}
Parameters
Parameter | Description |
---|---|
accountId (path) |
string (required) The unique identifier of this account. This is an opaque string. |
If-Match (header) |
string The entity tag that was returned in the ETag response. If used, this must match the current entity tag of the resource. |
body (body) |
authorizedSigners (required) The array of authorized signers. |
Try it
Fields marked with * are mandatory.
Response
Example responses
200 Response
{
"_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"
}
}
},
"items": [
{
"userId": "bd9e7a93-32cc-435d-ac57-f21faa082318",
"customerId": "00047294723672",
"type": "joint",
"role": "Chief Financial Officer",
"firstName": "John",
"middleName": "Daniel",
"lastName": "Smith",
"taxId": "111-11-1111",
"citizen": true,
"addresses": [
{
"_id": "ha5",
"type": "home",
"addressLine1": "555 N Front Street",
"addressLine2": "Suite 5555",
"city": "Wilmington",
"regionCode": "NC",
"postalCode": "28401-5405",
"countryCode": "US"
},
{
"id": "wa0",
"type": "other",
"label": "mailing",
"addressLine1": "123 S 3rd Street",
"addressLine2": "Apt 42",
"city": "Wilmington",
"regionCode": "NC",
"postalCode": "28411-5405",
"countryCode": "US"
}
],
"preferredMailingAddressId": "ha5",
"emailAddress": "JohnDanielSmith@example.com"
}
]
}
Responses
Status | Description |
---|---|
200 | OK |
OK | |
Schema: authorizedSigners |
Status | Description |
---|---|
304 | Not Modified |
Not Modified. The resource has not been modified since it was last fetched. |
Status | Description |
---|---|
404 | Not Found |
Not Found. There is no such account resource at the specified {accountId} . The _error field in the response will contain details about the request error. | |
Schema: errorResponse |
Status | Description |
---|---|
422 | Unprocessable Entity |
Unprocessable Entity. Invalid data in the request to update an account's authorized signers:
| |
Schema: errorResponse |
Response Headers
Status | Description |
---|---|
200 | ETag string |
The ETag response header specifies an entity tag which may be provided in an If-Match request header for PUT or PATCH operations which update this account resource. |
Configuration
getConfigurationGroups
Code samples
# You can also use wget
curl -X GET https://api.devbank.apiture.com/accounts/configurations/groups \
-H 'Accept: application/hal+json' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
GET https://api.devbank.apiture.com/accounts/configurations/groups HTTP/1.1
Host: api.devbank.apiture.com
Accept: application/hal+json
var headers = {
'Accept':'application/hal+json',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.devbank.apiture.com/accounts/configurations/groups',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const headers = {
'Accept':'application/hal+json',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.devbank.apiture.com/accounts/configurations/groups',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/hal+json',
'API-Key' => 'API_KEY',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.get 'https://api.devbank.apiture.com/accounts/configurations/groups',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/hal+json',
'API-Key': 'API_KEY',
'Authorization': 'Bearer {access-token}'
}
r = requests.get('https://api.devbank.apiture.com/accounts/configurations/groups', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.devbank.apiture.com/accounts/configurations/groups");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/hal+json"},
"API-Key": []string{"API_KEY"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://api.devbank.apiture.com/accounts/configurations/groups", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Return a collection of configuration groups
GET /configurations/groups
Return a paginated sortable filterable searchable collection of configuration groups. The links in the response include pagination links.
Parameters
Parameter | Description |
---|---|
start (query) |
integer(int64) The zero-based index of the first configuration group item to include in this page. The default 0 denotes the beginning of the collection. |
limit (query) |
integer(int32) The maximum number of configuration group representations to return in this page. |
sortBy (query) |
string Optional sort criteria. See sort criteria format, such as ?sortBy=field1,-field2 . |
filter (query) |
string Optional filter criteria. See filtering. |
q (query) |
string Optional search string. See searching. |
Try it
Fields marked with * are mandatory.
Response
Response Code:
Response Headers:
Response Body:
Click on 'Try It' to get a response.
Example responses
200 Response
{
"_profile": "http://localhost:8080/schemas/configurations/configurationGroups/v1.0.0/profile.json",
"start": 10,
"limit": 10,
"count": 67,
"name": "configurationGroups",
"_links": {
"self": {
"href": "/configurations/configurations/groups?start=10&limit=10"
},
"first": {
"href": "/configurations/configurations/groups?start=0&limit=10"
},
"next": {
"href": "/configurations/configurations/groups?start=20&limit=10"
},
"collection": {
"href": "/configurations/configurations/groups"
}
},
"_embedded": {
"items": [
{
"_profile": "https://api.apiture.com/schemas/configurations/configurationGroup/v1.0.0/profile.json",
"_links": {
"self": {
"href": "/configurations/groups/basic"
},
"apiture:configuration": {
"href": "/configurations"
}
},
"name": "basic",
"label": "Basic Settings",
"description": "The basic settings for the Transfers API"
},
{
"_profile": "https://api.apiture.com/schemas/configurations/configurationGroup/v1.0.0/profile.json",
"_links": {
"self": {
"href": "/configurations/groups/calendar"
},
"apiture:configuration": {
"href": "/configurations"
}
},
"name": "calendar",
"label": "Calendar",
"description": "A calendar that specifies which dates are valid for performing transfers (e.g., weekdays excluding federal holidays)"
}
]
}
}
Responses
Status | Description |
---|---|
200 | OK |
OK | |
Schema: configurationGroups |
Status | Description |
---|---|
400 | Bad Request |
Bad Request. The request body or one or more of the query parameters was not well formed. The _error field in the response will contain details about the request error. | |
Schema: errorResponse |
Status | Description |
---|---|
422 | Unprocessable Entity |
Unprocessable Entity. One or more of the query parameters was well formed but otherwise invalid. The _error field in the response will contain details about the request error. | |
Schema: errorResponse |
getConfigurationGroup
Code samples
# You can also use wget
curl -X GET https://api.devbank.apiture.com/accounts/configurations/groups/{groupName} \
-H 'Accept: application/hal+json' \
-H 'If-None-Match: string' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
GET https://api.devbank.apiture.com/accounts/configurations/groups/{groupName} HTTP/1.1
Host: api.devbank.apiture.com
Accept: application/hal+json
If-None-Match: string
var headers = {
'Accept':'application/hal+json',
'If-None-Match':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.devbank.apiture.com/accounts/configurations/groups/{groupName}',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const headers = {
'Accept':'application/hal+json',
'If-None-Match':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.devbank.apiture.com/accounts/configurations/groups/{groupName}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/hal+json',
'If-None-Match' => 'string',
'API-Key' => 'API_KEY',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.get 'https://api.devbank.apiture.com/accounts/configurations/groups/{groupName}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/hal+json',
'If-None-Match': 'string',
'API-Key': 'API_KEY',
'Authorization': 'Bearer {access-token}'
}
r = requests.get('https://api.devbank.apiture.com/accounts/configurations/groups/{groupName}', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.devbank.apiture.com/accounts/configurations/groups/{groupName}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/hal+json"},
"If-None-Match": []string{"string"},
"API-Key": []string{"API_KEY"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://api.devbank.apiture.com/accounts/configurations/groups/{groupName}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Fetch a representation of this configuration group
GET /configurations/groups/{groupName}
Return a HAL representation of this configuration group resource.
Parameters
Parameter | Description |
---|---|
groupName (path) |
string (required) The unique name of this configuration group. |
If-None-Match (header) |
string The entity tag that was returned in the ETag response. If the resource's current entity tag matches, the GET will return 304 (Not Modified) and no response body, else the resource representation will be returned. |
Try it
Fields marked with * are mandatory.
Response
Response Code:
Response Headers:
Response Body:
Click on 'Try It' to get a response.
Example responses
200 Response
{
"_profile": "https://api.apiture.com/schemas/configurations/configurationGroup/v2.0.0/profile.json",
"_links": {
"self": {
"href": "/configurations/groups/basic"
},
"apiture:configuration": {
"href": "/configurations"
}
},
"name": "basic",
"label": "Basic Settings",
"description": "The basic settings for the Transfers API",
"schema": {
"type": "object",
"properties": {
"dailyLimit": {
"type": "number",
"description": "The daily limit for the number of transfers"
},
"cutoffTime": {
"type": "string",
"format": "time",
"description": "The cutoff time for scheduling transfers for the current day"
}
}
},
"values": {
"dailyLimit": 5,
"cutoffTime": "17:30:00"
}
}
Responses
Status | Description |
---|---|
200 | OK |
OK | |
Schema: configurationGroup |
Status | Description |
---|---|
304 | Not Modified |
Not Modified. The resource has not been modified since it was last fetched. |
Status | Description |
---|---|
404 | Not Found |
Not Found. There is no such configuration group resource at the specified {groupName} The _error field in the response will contain details about the request error. | |
Schema: errorResponse |
Response Headers
Status | Description |
---|---|
200 | ETag string |
The ETag response header specifies an entity tag which may be provided in an If-None-Match request header for GET operations for this configuration group resource. |
getConfigurationGroupSchema
Code samples
# You can also use wget
curl -X GET https://api.devbank.apiture.com/accounts/configurations/groups/{groupName}/schema \
-H 'Accept: application/hal+json' \
-H 'If-None-Match: string' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
GET https://api.devbank.apiture.com/accounts/configurations/groups/{groupName}/schema HTTP/1.1
Host: api.devbank.apiture.com
Accept: application/hal+json
If-None-Match: string
var headers = {
'Accept':'application/hal+json',
'If-None-Match':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.devbank.apiture.com/accounts/configurations/groups/{groupName}/schema',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const headers = {
'Accept':'application/hal+json',
'If-None-Match':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.devbank.apiture.com/accounts/configurations/groups/{groupName}/schema',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/hal+json',
'If-None-Match' => 'string',
'API-Key' => 'API_KEY',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.get 'https://api.devbank.apiture.com/accounts/configurations/groups/{groupName}/schema',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/hal+json',
'If-None-Match': 'string',
'API-Key': 'API_KEY',
'Authorization': 'Bearer {access-token}'
}
r = requests.get('https://api.devbank.apiture.com/accounts/configurations/groups/{groupName}/schema', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.devbank.apiture.com/accounts/configurations/groups/{groupName}/schema");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/hal+json"},
"If-None-Match": []string{"string"},
"API-Key": []string{"API_KEY"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://api.devbank.apiture.com/accounts/configurations/groups/{groupName}/schema", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Fetch the schema for this configuration group
GET /configurations/groups/{groupName}/schema
Return a HAL representation of this configuration group schema resource.
Parameters
Parameter | Description |
---|---|
groupName (path) |
string (required) The unique name of this configuration group. |
If-None-Match (header) |
string The entity tag that was returned in the ETag response. If the resource's current entity tag matches, the GET will return 304 (Not Modified) and no response body, else the resource representation will be returned. |
Try it
Fields marked with * are mandatory.
Response
Response Code:
Response Headers:
Response Body:
Click on 'Try It' to get a response.
Example responses
200 Response
{
"type": "object",
"properties": {
"dailyLimit": {
"type": "number",
"description": "The daily limit for the number of transfers"
},
"cutoffTime": {
"type": "string",
"format": "time",
"description": "The cutoff time for scheduling transfers for the current day"
}
}
}
Responses
Status | Description |
---|---|
200 | OK |
OK | |
Schema: configurationSchema |
Status | Description |
---|---|
304 | Not Modified |
Not Modified. The resource has not been modified since it was last fetched. |
Status | Description |
---|---|
404 | Not Found |
Not Found. There is no such configuration group resource at the specified {groupName} The _error field in the response will contain details about the request error. | |
Schema: errorResponse |
Response Headers
Status | Description |
---|---|
200 | ETag string |
The ETag response header specifies an entity tag which may be provided in an If-Match request header for PUT |
getConfigurationGroupValues
Code samples
# You can also use wget
curl -X GET https://api.devbank.apiture.com/accounts/configurations/groups/{groupName}/values \
-H 'Accept: application/hal+json' \
-H 'If-None-Match: string' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
GET https://api.devbank.apiture.com/accounts/configurations/groups/{groupName}/values HTTP/1.1
Host: api.devbank.apiture.com
Accept: application/hal+json
If-None-Match: string
var headers = {
'Accept':'application/hal+json',
'If-None-Match':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.devbank.apiture.com/accounts/configurations/groups/{groupName}/values',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const headers = {
'Accept':'application/hal+json',
'If-None-Match':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.devbank.apiture.com/accounts/configurations/groups/{groupName}/values',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/hal+json',
'If-None-Match' => 'string',
'API-Key' => 'API_KEY',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.get 'https://api.devbank.apiture.com/accounts/configurations/groups/{groupName}/values',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/hal+json',
'If-None-Match': 'string',
'API-Key': 'API_KEY',
'Authorization': 'Bearer {access-token}'
}
r = requests.get('https://api.devbank.apiture.com/accounts/configurations/groups/{groupName}/values', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.devbank.apiture.com/accounts/configurations/groups/{groupName}/values");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/hal+json"},
"If-None-Match": []string{"string"},
"API-Key": []string{"API_KEY"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://api.devbank.apiture.com/accounts/configurations/groups/{groupName}/values", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Fetch the values for the specified configuration group
GET /configurations/groups/{groupName}/values
Return a representation of this configuration group values resource.
Parameters
Parameter | Description |
---|---|
groupName (path) |
string (required) The unique name of this configuration group. |
If-None-Match (header) |
string The entity tag that was returned in the ETag response. If the resource's current entity tag matches, the GET will return 304 (Not Modified) and no response body, else the resource representation will be returned. |
Try it
Fields marked with * are mandatory.
Response
Response Code:
Response Headers:
Response Body:
Click on 'Try It' to get a response.
Example responses
200 Response
{
"dailyLimit": 5,
"cutoffTime": "17:30:00"
}
Responses
Status | Description |
---|---|
200 | OK |
OK | |
Schema: configurationValues |
Status | Description |
---|---|
304 | Not Modified |
Not Modified. The resource has not been modified since it was last fetched. |
Status | Description |
---|---|
404 | Not Found |
Not Found. There is no such configuration group resource at the specified {groupName} The _error field in the response will contain details about the request error. | |
Schema: errorResponse |
Response Headers
Status | Description |
---|---|
200 | ETag string |
The ETag response header specifies an entity tag which may be provided in an If-Match request header for PUT |
updateConfigurationGroupValues
Code samples
# You can also use wget
curl -X PUT https://api.devbank.apiture.com/accounts/configurations/groups/{groupName}/values \
-H 'Content-Type: application/hal+json' \
-H 'Accept: application/hal+json' \
-H 'If-Match: string' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
PUT https://api.devbank.apiture.com/accounts/configurations/groups/{groupName}/values HTTP/1.1
Host: api.devbank.apiture.com
Content-Type: application/hal+json
Accept: application/hal+json
If-Match: string
var headers = {
'Content-Type':'application/hal+json',
'Accept':'application/hal+json',
'If-Match':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.devbank.apiture.com/accounts/configurations/groups/{groupName}/values',
method: 'put',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const inputBody = '{
"dailyLimit": 5,
"cutoffTime": "17:30:00"
}';
const headers = {
'Content-Type':'application/hal+json',
'Accept':'application/hal+json',
'If-Match':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.devbank.apiture.com/accounts/configurations/groups/{groupName}/values',
{
method: 'PUT',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/hal+json',
'Accept' => 'application/hal+json',
'If-Match' => 'string',
'API-Key' => 'API_KEY',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.put 'https://api.devbank.apiture.com/accounts/configurations/groups/{groupName}/values',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/hal+json',
'Accept': 'application/hal+json',
'If-Match': 'string',
'API-Key': 'API_KEY',
'Authorization': 'Bearer {access-token}'
}
r = requests.put('https://api.devbank.apiture.com/accounts/configurations/groups/{groupName}/values', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.devbank.apiture.com/accounts/configurations/groups/{groupName}/values");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PUT");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/hal+json"},
"Accept": []string{"application/hal+json"},
"If-Match": []string{"string"},
"API-Key": []string{"API_KEY"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("PUT", "https://api.devbank.apiture.com/accounts/configurations/groups/{groupName}/values", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Update the values for the specified configuration group
PUT /configurations/groups/{groupName}/values
Perform a complete replacement of this set of values
Body parameter
{
"dailyLimit": 5,
"cutoffTime": "17:30:00"
}
Parameters
Parameter | Description |
---|---|
groupName (path) |
string (required) The unique name of this configuration group. |
If-Match (header) |
string The entity tag that was returned in the ETag response. If used, this must match the current entity tag of the resource. |
body (body) |
configurationValues (required) |
Try it
Fields marked with * are mandatory.
Response
Response Code:
Response Headers:
Response Body:
Click on 'Try It' to get a response.
Example responses
200 Response
{
"type": "object",
"properties": {
"dailyLimit": {
"type": "number",
"description": "The daily limit for the number of transfers"
},
"cutoffTime": {
"type": "string",
"format": "time",
"description": "The cutoff time for scheduling transfers for the current day"
}
}
}
Responses
Status | Description |
---|---|
200 | OK |
OK | |
Schema: configurationSchema |
Status | Description |
---|---|
400 | Bad Request |
Bad Request. The request body or one or more of the query parameters was not well formed. The _error field in the response will contain details about the request error. | |
Schema: errorResponse |
Status | Description |
---|---|
403 | Forbidden |
Access denied. Only user allowed to update configurations is an admin. | |
Schema: errorResponse |
Status | Description |
---|---|
404 | Not Found |
Not Found. There is no such configuration group resource at the specified {groupName} The _error field in the response will contain details about the request error. | |
Schema: errorResponse |
Status | Description |
---|---|
412 | Precondition Failed |
Precondition Failed. The supplied If-Match header value does not match the most recent ETag response header value. The resource has changed in the interim. | |
Schema: errorResponse |
Response Headers
Status | Description |
---|---|
200 | ETag string |
The ETag response header specifies an entity tag which may be provided in an If-Match request header for PUT |
getConfigurationGroupValue
Code samples
# You can also use wget
curl -X GET https://api.devbank.apiture.com/accounts/configurations/groups/{groupName}/values/{valueName} \
-H 'Accept: application/hal+json' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
GET https://api.devbank.apiture.com/accounts/configurations/groups/{groupName}/values/{valueName} HTTP/1.1
Host: api.devbank.apiture.com
Accept: application/hal+json
var headers = {
'Accept':'application/hal+json',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.devbank.apiture.com/accounts/configurations/groups/{groupName}/values/{valueName}',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const headers = {
'Accept':'application/hal+json',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.devbank.apiture.com/accounts/configurations/groups/{groupName}/values/{valueName}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/hal+json',
'API-Key' => 'API_KEY',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.get 'https://api.devbank.apiture.com/accounts/configurations/groups/{groupName}/values/{valueName}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/hal+json',
'API-Key': 'API_KEY',
'Authorization': 'Bearer {access-token}'
}
r = requests.get('https://api.devbank.apiture.com/accounts/configurations/groups/{groupName}/values/{valueName}', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.devbank.apiture.com/accounts/configurations/groups/{groupName}/values/{valueName}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/hal+json"},
"API-Key": []string{"API_KEY"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://api.devbank.apiture.com/accounts/configurations/groups/{groupName}/values/{valueName}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Fetch a single value associated with the specified configuration group
GET /configurations/groups/{groupName}/values/{valueName}
Fetch a single value associated with this configuration group. This provides convenient access to individual values of the configuration group.
The response is always a JSON value which can be parsed with a strict JSON parser. The response may be
- a primitive number, boolean, or quoted JSON string.
- a JSON array.
- a JSON object.
null
.
Examples:
"a string configuration value"
120
true
null
{ "borderWidth": 8, "foregroundColor": "blue" }
To update a specific value,
use PUT /accounts/configurations/groups/{groupName}/values/{valueName}
(operation updateConfigurationGroupValue
).
Parameters
Parameter | Description |
---|---|
groupName (path) |
string (required) The unique name of this configuration group. |
valueName (path) |
string (required) The unique name of a value in a configuration group. This is the name of the value in the schema . A {valueName} must be a simple identifier following the pattern letter [letter | digit | '-' | '_']* |
Try it
Fields marked with * are mandatory.
Response
Response Code:
Response Headers:
Response Body:
Click on 'Try It' to get a response.
Example responses
200 Response
"string"
Responses
Status | Description |
---|---|
200 | OK |
OK. The value of the named configuration value as a JSON string, number, boolean, array, or object. | |
Schema: string |
Status | Description |
---|---|
404 | Not Found |
Not Found. There is either no such configuration group resource at the specified {groupName} or no such value at the specified {valueName} . The _error field in the response will contain details about the request error. | |
Schema: errorResponse |
Response Headers
Status | Description |
---|---|
200 | ETag string |
The ETag response header specifies an entity tag which may be provided in an If-Match request header for PUT or PATCH operations which update this configuration group resource. |
updateConfigurationGroupValue
Code samples
# You can also use wget
curl -X PUT https://api.devbank.apiture.com/accounts/configurations/groups/{groupName}/values/{valueName} \
-H 'Content-Type: application/hal+json' \
-H 'Accept: application/hal+json' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
PUT https://api.devbank.apiture.com/accounts/configurations/groups/{groupName}/values/{valueName} HTTP/1.1
Host: api.devbank.apiture.com
Content-Type: application/hal+json
Accept: application/hal+json
var headers = {
'Content-Type':'application/hal+json',
'Accept':'application/hal+json',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.devbank.apiture.com/accounts/configurations/groups/{groupName}/values/{valueName}',
method: 'put',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const inputBody = 'string';
const headers = {
'Content-Type':'application/hal+json',
'Accept':'application/hal+json',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.devbank.apiture.com/accounts/configurations/groups/{groupName}/values/{valueName}',
{
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',
'API-Key' => 'API_KEY',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.put 'https://api.devbank.apiture.com/accounts/configurations/groups/{groupName}/values/{valueName}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/hal+json',
'Accept': 'application/hal+json',
'API-Key': 'API_KEY',
'Authorization': 'Bearer {access-token}'
}
r = requests.put('https://api.devbank.apiture.com/accounts/configurations/groups/{groupName}/values/{valueName}', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.devbank.apiture.com/accounts/configurations/groups/{groupName}/values/{valueName}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PUT");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/hal+json"},
"Accept": []string{"application/hal+json"},
"API-Key": []string{"API_KEY"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("PUT", "https://api.devbank.apiture.com/accounts/configurations/groups/{groupName}/values/{valueName}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Update a single value associated with the specified configuration group
PUT /configurations/groups/{groupName}/values/{valueName}
Update a single value associated with this configuration group.
This provides convenient access to individual values of the configuration group
as defined in the configuration group's schema
. The request body must conform to
the configuration group's schema for the named {valueName}
.
This operation is idempotent.
The request body must be a JSON value which can be parsed with a strict JSON parser. The response may be
- a primitive number, boolean, or quoted JSON string.
- a JSON array.
- a JSON object.
null
.
Examples:
"a string configuration value"
120
true
null
{ "borderWidth": 8, "foregroundColor": "blue" }
To fetch specific value, use GET /accounts/configurations/groups/{groupName}/values/{valueName}
(operation getConfigurationGroupValue
).
Body parameter
"string"
Parameters
Parameter | Description |
---|---|
groupName (path) |
string (required) The unique name of this configuration group. |
valueName (path) |
string (required) The unique name of a value in a configuration group. This is the name of the value in the schema . A {valueName} must be a simple identifier following the pattern letter [letter | digit | '-' | '_']* |
body (body) |
string (required) The request body must a valid JSON value and should be parsable with a JSON parser. The result may be a string, number, boolean, array, or object. |
Try it
Fields marked with * are mandatory.
Response
Response Code:
Response Headers:
Response Body:
Click on 'Try It' to get a response.
Example responses
200 Response
"string"
Responses
Status | Description |
---|---|
200 | OK |
OK | |
Schema: string |
Status | Description |
---|---|
403 | Forbidden |
Access denied. Only user allowed to update configurations is an admin. | |
Schema: errorResponse |
Response Headers
Status | Description |
---|---|
200 | ETag string |
The ETag response header specifies an entity tag which may be provided in an If-Match request header for PUT or PATCH operations which update this configuration group resource. |
Schemas
accountNumbers
{
"masked": "*************3210",
"full": "9876543210"
}
Account Numbers (Version v1.0.0
)
Different representations of an account number.
Properties
Name | Description |
---|---|
masked | string A partial account number that does not contain all the digits of the full account number. This masked number appears in statements or in user experience presentation. It is sufficient for a user to differentiate this account from other accounts they hold, but is not sufficient for initiating transfers, etc. The first character is the mask character and is repeated; this does not indicate that the full account number is the same as the mask length. This value is derived and immutable. read-only
minLength: 8
maxLength: 32
|
full | string The full account number. This value only appears when ?unmasked=true is passed on the GET request. Not included in the summary representation of the account that is included in account collection responses. This value is derived and immutable.
read-only
minLength: 4
maxLength: 17
|
externalAccountNumbers
{
"masked": "*************3210",
"full": "9876543210"
}
External Account Numbers (Version v1.0.0
)
The account numbers necessary to link an external account.
Properties
Name | Description |
---|---|
masked | string A partial account number that does not contain all the digits of the full account number. This masked number appears in statements or in user experience presentation. It is sufficient for a user to differentiate this account from other accounts they hold, but is not sufficient for initiating transfers, etc. The first character is the mask character and is repeated; this does not indicate that the full account number is the same as the mask length. This value is included when accounts are embedded in collections or other resources. This value is derived and immutable. read-only
minLength: 8
maxLength: 32
|
full | string The full account number. This value only appears when ?unmasked=true is passed on the GET request for an account. Not included in the summary representation of the account that is included in account collection responses. Pass in this value when linking an external account. This field can be updated whenever the account is still in the pending state.
minLength: 4
maxLength: 17
|
createExternalAccountNumbers
{
"full": "9876543210"
}
Create External Account Numbers (Version v1.0.0
)
The account numbers necessary to link an external account.
Properties
Name | Description |
---|---|
full | string (required) The full account number. Pass in this value when linking an external account. This field can be updated whenever the account is still in the pending state. minLength: 4
maxLength: 17
|
summaryExternalAccount
{
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"_profile": "https://api.apiture.com/schemas/accounts/externalAccount/v1.0.0/profile.json",
"_links": {
"self": {
"href": "/accounts/externalAccounts/0399abed-fd3d-4830-a88b-30f38b8a365c"
}
},
"name": "My account at 3rdParty Bank",
"type": "savings",
"ifxType": "SDA",
"state": "active",
"verifiedAt": "2018-01-20T18:13:33.375Z",
"createdAt": "2018-01-20T05:54:52.375Z",
"routingNumber": "021000021",
"accountNumbers": {
"masked": "*************3210"
},
"institutionName": "3rd Party Bank",
"primaryUserName": "Lana Michaels"
}
External Account Summary (Version v1.0.0
)
Summary representation of an external account resource in external accounts collections. This representation normally does not contain any _embedded
objects. If needed, call the GET
operation on the item's self
link to get _embedded
objects.
Properties
Name | Description |
---|---|
_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. |
name | string The user-assigned name of this external account maxLength: 128
|
description | string The user-assigned description of this external account. maxLength: 4096
|
institutionName | string The name of the financial institution. minLength: 2
maxLength: 128
|
primaryUserName | string The primary user or owner of the external account. maxLength: 128
|
title | string The name of the account holder. This is derived from the user resource. maxLength: 512
|
type | string The type of account. This is the name of an external product type associated with this external account. (The product type is defined in the Products API.) |
ifxType | ifxType A code which identifies the product type. This is one of the IFX AcctType values. |
routingNumber | string The account routing number which identifies the financial institution. The full routing number and full account number are required to fully identify the account. minLength: 9
maxLength: 9
|
state | externalAccountState The state of the external account. read-only
|
verifiedAt | string(date-time) The date-time when the external account was most recently verified. This is in RFC 3339 format, UTC. |
attributes | attributes An optional map of name/value pairs which contains additional dynamic data about the resource. |
_id | string The unique identifier for this external account resource. This is an immutable opaque string. |
createdAt | string(date-time) The date-time when the external account was created. This is in RFC 3339format, UTC. This is derived and immutable. |
accountNumbers | externalAccountNumbers The masked and full account number |
createExternalAccount
{
"_profile": "https://api.apiture.com/schemas/accounts/externalAccount/v1.0.0/profile.json",
"name": "My account at 3rdParty Bank",
"institutionName": "3rd Party Bank",
"primaryUserName": "Lana Michaels",
"type": "savings",
"ifxType": "SDA",
"routingNumber": "021000021",
"accountNumbers": {
"full": "9876543210"
},
"_links": {
"apiture:user": {
"href": "/users/users/00007276-8b25-4e97-ac82-e1e17a2ff7c2"
},
"apiture:productType": {
"href": "/products/productTypes/a93c19ba-f96d-4b30-8dd7-92b2d6ffcb0b"
}
}
}
Create External Account (Version v1.0.0
)
Representation used to create a new external account. The request should include a apiture:productType
link to a product type.
Properties
Name | Description |
---|---|
name | string (required) The user-assigned name of this external account maxLength: 128
|
description | string The user-assigned description of this external account. maxLength: 4096
|
institutionName | string (required) The name of the financial institution. minLength: 2
maxLength: 128
|
primaryUserName | string The primary user or owner of the external account. maxLength: 128
|
title | string The name of the account holder. This is derived from the user resource. maxLength: 512
|
type | string (required) The type of account. This is the name of an external product type associated with this external account. (The product type is defined in the Products API.) |
ifxType | ifxType A code which identifies the product type. This is one of the IFX AcctType values. |
routingNumber | string (required) The account routing number which identifies the financial institution. The full routing number and full account number are required to fully identify the account. minLength: 9
maxLength: 9
|
state | externalAccountState The state of the external account. read-only
|
verifiedAt | string(date-time) The date-time when the external account was most recently verified. This is in RFC 3339 format, UTC. |
attributes | attributes An optional map of name/value pairs which contains additional dynamic data about the resource. |
_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. |
accountNumbers | createExternalAccountNumbers (required) The masked and full account number |
externalAccount
{
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"_profile": "https://api.apiture.com/schemas/accounts/externalAccount/v1.0.0/profile.json",
"_links": {
"self": {
"href": "/accounts/externalAccounts/0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:deactivate": {
"href": "/accounts/inactiveAccounts?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:freeze": {
"href": "/accounts/frozenAccounts?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:close": {
"href": "/accounts/closedAccounts?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
}
},
"_embedded": {
"productType": {
"_id": "0a8a1349-d652-4d5e-accc-047ec815d78a",
"_profile": "https://api.apiture.com/schemas/products/productType/v1.0.0/profile.json",
"name": "savings",
"label": "Personal Savings"
}
},
"name": "My account at 3rdParty Bank",
"type": "savings",
"ifxType": "SDA",
"state": "active",
"primaryUserName": "Lucille Wellphunded",
"verifiedAt": "2018-01-20T18:13:33.375Z",
"createdAt": "2018-01-20T05:54:52.375Z",
"institutionName": "3rdParty Bank",
"routingNumber": "021000021",
"accountNumbers": {
"masked": "*************3210"
}
}
External Account (Version v1.0.0
)
Representation of an external account resource, a banking account held by another financial institution.
The _links
on an external account may include the following, depending on the state of the account: self
- The link to the external account. apiture:activate
- Activate the account (POST). apiture:deactivate
- Deactivate the account (POST). apiture:freeze
- Freeze the account (POST). apiture:close
- Close the account (POST). apiture:review
- Under review the account (POST).
Properties
Name | Description |
---|---|
_links | links An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
|
_embedded | object An optional map of nested resources, mapping each nested resource name to a nested resource representation. |
_profile | string(uri) The URI of a resource profile which describes the representation. |
_error | error An object which describes an error. This value is omitted if the operation succeeded without error. |
name | string The user-assigned name of this external account maxLength: 128
|
description | string The user-assigned description of this external account. maxLength: 4096
|
institutionName | string The name of the financial institution. minLength: 2
maxLength: 128
|
primaryUserName | string The primary user or owner of the external account. maxLength: 128
|
title | string The name of the account holder. This is derived from the user resource. maxLength: 512
|
type | string The type of account. This is the name of an external product type associated with this external account. (The product type is defined in the Products API.) |
ifxType | ifxType A code which identifies the product type. This is one of the IFX AcctType values. |
routingNumber | string The account routing number which identifies the financial institution. The full routing number and full account number are required to fully identify the account. minLength: 9
maxLength: 9
|
state | externalAccountState The state of the external account. read-only
|
verifiedAt | string(date-time) The date-time when the external account was most recently verified. This is in RFC 3339 format, UTC. |
attributes | attributes An optional map of name/value pairs which contains additional dynamic data about the resource. |
_id | string The unique identifier for this external account resource. This is an immutable opaque string. |
createdAt | string(date-time) The date-time when the external account was created. This is in RFC 3339format, UTC. This is derived and immutable. |
accountNumbers | externalAccountNumbers The masked and full account number |
externalAccountSummaries
{
"items": [
{
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"_profile": "https://api.apiture.com/schemas/accounts/externalAccount/v1.0.0/profile.json",
"_links": {
"self": {
"href": "/accounts/externalAccounts/0399abed-fd3d-4830-a88b-30f38b8a365c"
}
},
"name": "My account at 3rdParty Bank",
"type": "savings",
"ifxType": "SDA",
"state": "active",
"verifiedAt": "2018-01-20T18:13:33.375Z",
"createdAt": "2018-01-20T05:54:52.375Z",
"routingNumber": "021000021",
"accountNumbers": {
"masked": "*************3210"
},
"institutionName": "3rd Party Bank",
"primaryUserName": "Lana Michaels"
}
]
}
External Account Summaries (Version v1.0.0
)
A page of embedded external account summaries.
Properties
Name | Description |
---|---|
items | [summaryExternalAccount] (required) An array containing a page of external account items. |
externalAccounts
{
"_profile": "https://api.apiture.com/schemas/accounts/externalAccounts/v1.0.0/profile.json",
"start": "10",
"limit": 10,
"count": 67,
"name": "external accounts",
"_links": {
"self": {
"href": "/accounts/externalAccounts?start=10&limit=10"
},
"first": {
"href": "/accounts/externalAccounts?start=0&limit=10"
},
"next": {
"href": "/accounts/externalAccounts?start=20&limit=10"
},
"collection": {
"href": "/accounts/externalAccounts"
}
},
"_embedded": {
"items": [
{
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"name": "My account at 3rdParty Bank",
"_profile": "https://api.apiture.com/schemas/accounts/externalAccount/v1.0.0/profile.json",
"type": "savings",
"ifxType": "SDA",
"state": "active",
"primaryUserName": "Lucille Wellphunded",
"institutionName": "3rdParty Bank",
"verifiedAt": "2018-01-20T18:13:33.375Z",
"createdAt": "2018-01-20T05:54:52.375Z",
"routingNumber": "021000021",
"accountNumbers": {
"masked": "*************3210"
},
"_links": {
"self": {
"href": "/accounts/externalAccounts/0399abed-fd3d-4830-a88b-30f38b8a365c"
}
}
}
]
}
}
External Account Collection (Version v1.0.0
)
Collection of external accounts. The items in the collection are ordered in the _embedded
object with name items
. The top-level _links
object may contain pagination links (self
, next
, prev
, first
, last
, collection
).
Properties
Name | Description |
---|---|
_links | links An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
|
_embedded | externalAccountSummaries (required) A page of embedded external account summaries. |
_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 is 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 0-based start index of this page of items. |
limit | integer The maximum number of items per page. |
name | string A name for the items in collection. |
externalAccountOwners
{
"_profile": "https://api.apiture.com/schemas/accounts/externalAccountOwners/v1.0.0/profile.json",
"accountOwners": [
{
"firstName": "Steven",
"middleName": "Benjamin",
"lastName": "Storey",
"fullName": "Steven B. Storey",
"type": "primary"
}
]
}
External Account Owners (Version v1.0.0
)
A (possibly empty) list of external account owners. Since this is a small finite set, this is not a paginated collection, just an array.
Properties
Name | Description |
---|---|
_links | links An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
|
_embedded | object An optional map of nested resources, mapping each nested resource name to a nested resource representation. |
_profile | string(uri) The URI of a resource profile which describes the representation. |
_error | error An object which describes an error. This value is omitted if the operation succeeded without error. |
accountOwners | [externalAccountOwner] The array of account owners. This may be an empty array (0 items) but is always present. |
externalAccountOwner
{
"firstName": "Steven",
"middleName": "Benjamin",
"lastName": "Storey",
"fullName": "Steven B. Storey",
"type": "primary"
}
External Account Owner (Version v1.0.0
)
An external account owner. Since this is a small finite set, this is not a paginated collection, just an array.
Properties
Name | Description |
---|---|
firstName | string The person's first name (or given name). |
middleName | string The person's middle name. |
lastName | string The person's last name (or surname). |
fullName | string The account owner's full name (first name and last name). maxLength: 128
|
type | authorizationType The account owner's ownership type. |
summaryAccount
{
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"_profile": "https://api.apiture.com/schemas/accounts/account/v1.0.0/profile.json",
"_links": {
"self": {
"href": "/accounts/accounts/0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:product": {
"href": "/products/products/0aba4bae-f18b-4c12-af99-5f8dbd682ae3"
}
},
"name": "My savings",
"description": "My Basic savings account",
"routingNumber": "021000021",
"institutionName": "Canapi Bank",
"state": "active",
"title": "John Smith",
"ifxType": "SDA",
"allowsTransfers": true,
"accountNumbers": {
"full": "9876543210",
"masked": "*************3210"
},
"balance": {
"current": "3450.30",
"available": "3450.30",
"currency": "USD"
},
"rate": {
"value": "1.40",
"type": "apr"
},
"openedAt": {}
}
Account Summary (Version v1.0.0
)
Summary representation of an account resource in accounts 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.
By default, not all account fields are set when paging through accounts via the collection. The following fields are not set unless the collection request includes ?fields=*
:
balance
interest
timeDeposit
attributes
Additionally, the summaryAccount
representation does not support the full set of links or the nested owners, beneficiaries, and authorized signers available in the account
schema returned by the getAccount
operation (GET /accounts/{accountId}
).
Properties
Name | Description |
---|---|
_links | links An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
|
_embedded | object An optional map of nested resources, mapping each nested resource name to a nested resource representation. |
_profile | string(uri) The URI of a resource profile which describes the representation. |
_error | error An object which describes an error. This value is omitted if the operation succeeded without error. |
name | string The user-assigned name of this account. minLength: 1
maxLength: 128
|
description | string The user-assigned description of this account. minLength: 1
maxLength: 4096
|
interestPolicy | string How interest credits on the account (if any) are disbursed. This field is none for non-interest bearing accounts. If this is transfer , the apiture:interestTargetAccount link in the account's _link references the target account for the disbursements. This field applies if the account is a time deposit (CD) account.
|
institutionName | string The name of the financial institution (FI), derived from the FI's configuration. read-only
minLength: 2
maxLength: 128
|
routingNumber | string The account routing number which identifies the financial institution (FI). The full routing number is derived from the FI's configuration. read-only
minLength: 9
maxLength: 9
|
_id | string The unique identifier for this account resource. This is an immutable opaque string. |
state | internalAccountState The state of the internal account. read-only
|
title | string The name of the account holder. This is derived from the user resource. maxLength: 512
|
productName | string The name of the banking product that this account is an instance of. This is derived from the product resource. read-only
minLength: 1
maxLength: 128
|
type | string The name of the banking product type. This is derived from the product resource. The subtype is more specific; type is a broad account category.
read-only
minLength: 1
maxLength: 128
|
subtype | string The name of the banking product sub type. This is derived from the product resource. This is more specific than the type .
read-only
minLength: 1
maxLength: 128
|
ifxType | ifxType A code which identifies the product type. This is one of the IFX AcctType values. |
accountNumbers | accountNumbers Different representations of the account number. |
balance | balance The account balance. read-only
|
rate | rate The account's rate of return (for deposit account) or interest rate (for debit accounts). read-only
|
allowsTransfers | boolean If true , the account is open to deposits and credits such as transfers or rollovers.
read-only
|
openedAt | string(date-time) The date-time the account was opened. This is an RFC 3339 UTC time stamp. read-only
|
interest | interest Interest disbursement settings for the account. |
timeDeposit | timeDeposit Time deposit options for the account. |
cycleWithdrawalCount | number(integer) The number of withdrawals made against this account within the current statement cycle. For some deposit accounts such as savings accounts, this is limited to a maximum defined in the corresponding product's constraints. If exceeded over multiple statement cycles, the financial institution may convert the account to a demand deposit (checking) account. read-only
|
attributes | attributes An optional map of name/value pairs which contains additional dynamic data about the resource. |
createAccount
{
"_profile": "https://api.apiture.com/schemas/accounts/account/v1.0.0/profile.json",
"name": "My car savings account",
"description": "My savings account used to save for a new car, opened in 2019. I try to put $550/month into this account.",
"_links": {
"apiture:user": {
"href": "/users/users/00007276-8b25-4e97-ac82-e1e17a2ff7c2"
},
"apiture:product": {
"href": "/products/products/0aba4bae-f18b-4c12-af99-5f8dbd682ae3"
},
"apiture:organization": {
"href": "/organizations/organizations/a1c9212c-0a5c-4779-a3fc-95e1c1e92e71"
},
"apiture:application": {
"href": "/accountApplications/applications/2f23b9fe-532f-4e82-943e-b079ea55aebc"
}
}
}
Create Account (Version v1.0.0
)
Representation used to create a new account. The request must contain a link to an active product, user, organization (for a business account) and, optionally, an approved account application; the account type and product are extracted from that product resource, and additional associations to people or organizations that should be attached to the account may come from the application, such as co-owners, owning business (if not passed in the apiture:organization
link), etc. The product must be passed as apiture:product
, user as apiture:user
, organization as apiture:organization
, and account application should be passed as the apiture:application
link in _links
in the request.
Interest-bearing accounts can either have interest disbursements capitalized (deposited into the account) or transferred to another internal account or an external account. This account is specified in the apiture:interestTargetAccount
link in the request's _links
. The account must be active and eligible for deposits/credits. This link can be updated in the updatedAccount
or patchAccount
operations.
An account for a time deposit account (Certificate of Deposit accounts) may also specify an apiture:rolloverProduct
link at creation time. If this account rolls over into a new product at maturity, this link is the URI of the banking product for the rollover account (see the Products API). This is used if timeDeposit.maturityPolicy
is rolloverPrincipalAndInterest
or rolloverPrincipalAndTransferInterest
.
Time deposit accounts may also specify an existing account (savings, checking) to transfer principal and/or interest to upon maturity in the apiture:transferTargetAccount
link. The account must be an internal account which is active and available for deposits. This is used if timeDeposit.maturityPolicy
is transferPrincipalAndInterest
or rolloverPrincipalAndTransferInterest
.
An apiture:user
must be defined for specifying the owner of a non-business account and as an authorized signer of a business account.
Business accounts must specify the organization owning the account as an organization link, such as apiture:organization
.
Properties
Name | Description |
---|---|
_links | links An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
|
_embedded | object An optional map of nested resources, mapping each nested resource name to a nested resource representation. |
_profile | string(uri) The URI of a resource profile which describes the representation. |
name | string The user-assigned name of this account. minLength: 1
maxLength: 128
|
description | string The user-assigned description of this account. minLength: 1
maxLength: 4096
|
interestPolicy | string How interest credits on the account (if any) are disbursed. This field is none for non-interest bearing accounts. If this is transfer , the apiture:interestTargetAccount link in the account's _link references the target account for the disbursements. This field applies if the account is a time deposit (CD) account.
|
account
{
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"_profile": "https://api.apiture.com/schemas/accounts/account/v1.0.0/profile.json",
"name": "My 1y CD",
"description": "My 1-year CD",
"productName": "1 Year Basic Certificate of Deposit",
"title": "John Smith",
"routingNumber": "021000021",
"institutionName": "Canapi Bank",
"state": "active",
"allowsTransfers": true,
"accountNumbers": {
"masked": "*************3210"
},
"balance": {
"current": "3450.30",
"available": "3450.30",
"pendingCredits": "3000.00",
"pendingDebits": "1500.00",
"currency": "USD"
},
"rate": {
"value": "2.625",
"type": "apr"
},
"openedAt": {},
"type": "CD",
"subtype": "Basic CD",
"ifxType": "CDA",
"interest": {
"yearToDate": "30.12",
"sinceOpening": "44.80"
},
"timeDeposit": {
"maturesAt": "2019-10-30T08:16:00.000Z",
"term": "P1D",
"maturityPolicy": "rolloverPrincipalAndInterest",
"rolloverProductName": "Basic Savings"
},
"cycleWithdrawalCount": 0,
"_embedded": {
"product": {
"_id": "0aba4bae-f18b-4c12-af99-5f8dbd682ae3",
"_profile": "https://api.apiture.com/schemas/products/product/v1.0.0/profile.json"
}
},
"_links": {
"self": {
"href": "/accounts/accounts/0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:product": {
"href": "/products/products/0aba4bae-f18b-4c12-af99-5f8dbd682ae3"
},
"apiture:deactivate": {
"href": "/accounts/inactiveAccounts?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:freeze": {
"href": "/accounts/frozenAccounts?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:close": {
"href": "/accounts/closedAccounts?account=0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:rolloverProduct": {
"href": "/products/products/24112ba3-1aa0-4a8c-979c-e40f05786bd7"
}
}
}
Account (Version v1.0.0
)
Representation of an account resource. A banking account, which is an instance of a banking product
A business account may have authorized signers, which are people authorized to perform banking operations on the account such as initiating funds transfers.
The _links
on an external account may include the following, depending on the state of the account:
self
- The link to the external account.apiture:productType
- The link to the external account's product type.apiture:owners
- The link to a personal account's owners.apiture:beneficiaries
- The link to a personal account's beneficiaries.apiture:authorizedSigners
- The link to a business account's authorized signers.apiture:activate
- Activate the account (POST).apiture:deactivate
- Deactivate the account (POST).apiture:freeze
- Freeze the account (POST).apiture:close
- Close the account (POST).apiture:rolloverProduct
- for rollover of time deposit accounts.apiture:transferTargetAccount
- for transferring principal and interest upon maturity of time deposit accounts.apiture:interestTargetAccount
- for transferring interest disbursements (other than maturity).
The apiture:rolloverProduct
and apiture:transferTargetAccount
links may be updated by the updateAccount
and patchAccount
operations. The owners are listed by the getOwners
operation. The beneficiaries are listed and updated by the getBeneficiaries
and patchBeneficiaries
operations. The authorized signers are listed and updated by the getAuthorizedSigners
and updateAuthorizedSigners
operation.
Properties
Name | Description |
---|---|
_links | links An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
|
_embedded | embeddedObjects Embedded objects. |
_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. |
name | string The user-assigned name of this account. minLength: 1
maxLength: 128
|
description | string The user-assigned description of this account. minLength: 1
maxLength: 4096
|
interestPolicy | string How interest credits on the account (if any) are disbursed. This field is none for non-interest bearing accounts. If this is transfer , the apiture:interestTargetAccount link in the account's _link references the target account for the disbursements. This field applies if the account is a time deposit (CD) account.
|
institutionName | string The name of the financial institution (FI), derived from the FI's configuration. read-only
minLength: 2
maxLength: 128
|
routingNumber | string The account routing number which identifies the financial institution (FI). The full routing number is derived from the FI's configuration. read-only
minLength: 9
maxLength: 9
|
_id | string The unique identifier for this account resource. This is an immutable opaque string. |
state | internalAccountState The state of the internal account. read-only
|
title | string The name of the account holder. This is derived from the user resource. maxLength: 512
|
productName | string The name of the banking product that this account is an instance of. This is derived from the product resource. read-only
minLength: 1
maxLength: 128
|
type | string The name of the banking product type. This is derived from the product resource. The subtype is more specific; type is a broad account category.
read-only
minLength: 1
maxLength: 128
|
subtype | string The name of the banking product sub type. This is derived from the product resource. This is more specific than the type .
read-only
minLength: 1
maxLength: 128
|
ifxType | ifxType A code which identifies the product type. This is one of the IFX AcctType values. |
accountNumbers | accountNumbers Different representations of the account number. |
balance | balance The account balance. read-only
|
rate | rate The account's rate of return (for deposit account) or interest rate (for debit accounts). read-only
|
allowsTransfers | boolean If true , the account is open to deposits and credits such as transfers or rollovers.
read-only
|
openedAt | string(date-time) The date-time the account was opened. This is an RFC 3339 UTC time stamp. read-only
|
interest | interest Interest disbursement settings for the account. |
timeDeposit | timeDeposit Time deposit options for the account. |
cycleWithdrawalCount | number(integer) The number of withdrawals made against this account within the current statement cycle. For some deposit accounts such as savings accounts, this is limited to a maximum defined in the corresponding product's constraints. If exceeded over multiple statement cycles, the financial institution may convert the account to a demand deposit (checking) account. read-only
|
attributes | attributes An optional map of name/value pairs which contains additional dynamic data about the resource. |
embeddedObjects
{
"owners": {
"_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"
}
}
},
"items": [
{
"userId": "bd9e7a93-32cc-435d-ac57-f21faa082318",
"customerId": "00047294723672",
"type": "joint",
"role": "Chief Financial Officer",
"firstName": "John",
"middleName": "Daniel",
"lastName": "Smith",
"taxId": "111-11-1111",
"citizen": true,
"addresses": [
{
"_id": "ha5",
"type": "home",
"addressLine1": "555 N Front Street",
"addressLine2": "Suite 5555",
"city": "Wilmington",
"regionCode": "NC",
"postalCode": "28401-5405",
"countryCode": "US"
},
{
"id": "wa0",
"type": "other",
"label": "mailing",
"addressLine1": "123 S 3rd Street",
"addressLine2": "Apt 42",
"city": "Wilmington",
"regionCode": "NC",
"postalCode": "28411-5405",
"countryCode": "US"
}
],
"preferredMailingAddressId": "ha5",
"emailAddress": "JohnDanielSmith@example.com"
}
]
},
"beneficiaries": {
"_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"
}
}
},
"items": [
{
"type": "organization",
"percent": 40,
"organization": {
"name": "Doctors Without Borders USA",
"label": "Doctors Without Borders",
"type": "nonProfit",
"subtype": "charitableTrust",
"identification": {
"type": "taxId",
"value": "13-3433452"
},
"addresses": [
{
"type": "headquarters",
"addressLine1": "40 Rector St.",
"addressLine2": "16th Floor",
"city": "New York",
"regionCode": "NY",
"postalCode": 10006
}
]
}
}
]
},
"owningBusiness": {
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"customerId": "000489353781",
"_profile": "https://api.apiture.com/schemas/organizations/organization/v1.0.0/profile.json",
"name": "Smith's Auto Detailing",
"label": "Smith's Detailing",
"tradeName": "Smith's Auto Detailing",
"emailAddresses": [
{
"_id": "ea0",
"type": "work",
"value": "smitties-detailing@example.com"
}
],
"preferredEmailAddressId": "ea0",
"phones": [
{
"type": "work",
"number": "(555) 555-5555",
"_id": "wp0"
},
{
"type": "mobile",
"number": "(999) 555-5555",
"_id": "wp1"
}
],
"preferredPhoneNumberId": "wp0",
"addresses": [
{
"type": "work",
"addressLine1": "555 N Front Street",
"addressLine2": "Suite 5555",
"city": "Wilmington",
"regionCode": "NC",
"postalCode": "28401-5405",
"countryCode": "US"
},
{
"type": "work",
"addressLine1": "123 S 3rd Street",
"addressLine2": "Apt 42",
"city": "Wilmington",
"regionCode": "NC",
"postalCode": "28411-5405",
"countryCode": "US"
}
],
"preferredMailingAddressId": "wa0",
"establishedDate": "2009-07-09T",
"identification": [
{
"type": "taxId",
"value": "00-9999999"
}
],
"state": "active",
"governmentOwned": false,
"registeredIn": "NC",
"publiclyHeld": false,
"smallBusiness": true,
"taxExempt": false,
"currency": "USD",
"estimatedAnnualRevenue": "from1to10Million",
"estimatedMonthlyAmounts": {
"sentWire": "20000.00",
"receivedWire": "30000.00",
"mobileCheckDeposit": "250000.00",
"receivedAch": "40000.00",
"sentAch": "35000.00"
},
"type": "corporation",
"subtype": "soleProprietorship",
"employeeCountLowerBound": 1,
"employeeCountUpperBound": 1,
"countryOfOperations": "US",
"mobileCheckDepositEnabled": true,
"achEnabled": true,
"authorizedSigners": [],
"beneficialOwners": [],
"createdAt": "2018-04-17T10:04:46.375Z",
"updatedAt": "2018-04-17T10:12:58.375Z",
"_links": {
"self": {
"href": "/organizations/organizations/0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:deactivate": {
"href": "/organizations/inactiveOrganizations?organization=0399abed-fd3d-4830-a88b-30f38b8a365c"
}
},
"_embedded": {}
},
"authorizedSigners": {
"_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"
}
}
},
"items": [
{
"userId": "bd9e7a93-32cc-435d-ac57-f21faa082318",
"customerId": "00047294723672",
"type": "joint",
"role": "Chief Financial Officer",
"firstName": "John",
"middleName": "Daniel",
"lastName": "Smith",
"taxId": "111-11-1111",
"citizen": true,
"addresses": [
{
"_id": "ha5",
"type": "home",
"addressLine1": "555 N Front Street",
"addressLine2": "Suite 5555",
"city": "Wilmington",
"regionCode": "NC",
"postalCode": "28401-5405",
"countryCode": "US"
},
{
"id": "wa0",
"type": "other",
"label": "mailing",
"addressLine1": "123 S 3rd Street",
"addressLine2": "Apt 42",
"city": "Wilmington",
"regionCode": "NC",
"postalCode": "28411-5405",
"countryCode": "US"
}
],
"preferredMailingAddressId": "ha5",
"emailAddress": "JohnDanielSmith@example.com"
}
]
}
}
Embedded Account Objects (Version v1.0.0
)
Embedded objects to include within an accounts _embedded
object, as selected with the embed
query parameter on the getAccount
operation.
Properties
Name | Description |
---|---|
owners | owners A personal account's primary and joint owners. This object is only available for personal accounts. |
beneficiaries | beneficiaries A personal account's primary and joint owners. This object is only available for personal accounts. |
owningBusiness | organization A business account's owning organization. This object is only available for business accounts. This is derived from the organization in the account application resource with which the account was created. This object is an Organization in the Organizations API. The business organization maintains a list of authorized signers who having permission to banking activity on the account.
read-only
|
authorizedSigners | authorizedSigners A list of authorized signers for a business account. This object is only available for business accounts. |
owners
{
"_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"
}
}
},
"items": [
{
"userId": "bd9e7a93-32cc-435d-ac57-f21faa082318",
"customerId": "00047294723672",
"type": "joint",
"role": "Chief Financial Officer",
"firstName": "John",
"middleName": "Daniel",
"lastName": "Smith",
"taxId": "111-11-1111",
"citizen": true,
"addresses": [
{
"_id": "ha5",
"type": "home",
"addressLine1": "555 N Front Street",
"addressLine2": "Suite 5555",
"city": "Wilmington",
"regionCode": "NC",
"postalCode": "28401-5405",
"countryCode": "US"
},
{
"id": "wa0",
"type": "other",
"label": "mailing",
"addressLine1": "123 S 3rd Street",
"addressLine2": "Apt 42",
"city": "Wilmington",
"regionCode": "NC",
"postalCode": "28411-5405",
"countryCode": "US"
}
],
"preferredMailingAddressId": "ha5",
"emailAddress": "JohnDanielSmith@example.com"
}
]
}
Owners (Version v1.0.0
)
Personal account primary and joint owners. These are fetched and set via the getOwners
operations. Owners are added when other users accept invitations to become joint account holders. The user cannot directly modify this set of owners.
Properties
Name | Description |
---|---|
_links | links An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
|
_embedded | object An optional map of nested resources, mapping each nested resource name to a nested resource representation. |
_profile | string(uri) The URI of a resource profile which describes the representation. |
_error | error An object which describes an error. This value is omitted if the operation succeeded without error. |
items | [authorization] An array of account owners. For personal accounts, this array contains exactly one primary owner and zero or more joint owners. The maximum number of joint account owners, including the primary owner, is 10 (but in the future, this will be configurable by the financial institution.) The primary owner for new accounts is the user who creates the account application and account. Joint owners are added by inviting others.
minLength: 1
|
authorizedSigners
{
"_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"
}
}
},
"items": [
{
"userId": "bd9e7a93-32cc-435d-ac57-f21faa082318",
"customerId": "00047294723672",
"type": "joint",
"role": "Chief Financial Officer",
"firstName": "John",
"middleName": "Daniel",
"lastName": "Smith",
"taxId": "111-11-1111",
"citizen": true,
"addresses": [
{
"_id": "ha5",
"type": "home",
"addressLine1": "555 N Front Street",
"addressLine2": "Suite 5555",
"city": "Wilmington",
"regionCode": "NC",
"postalCode": "28401-5405",
"countryCode": "US"
},
{
"id": "wa0",
"type": "other",
"label": "mailing",
"addressLine1": "123 S 3rd Street",
"addressLine2": "Apt 42",
"city": "Wilmington",
"regionCode": "NC",
"postalCode": "28411-5405",
"countryCode": "US"
}
],
"preferredMailingAddressId": "ha5",
"emailAddress": "JohnDanielSmith@example.com"
}
]
}
Authorized Signers (Version v1.0.0
)
The list of users who are authorized to access the organization and its bank accounts.
Properties
Name | Description |
---|---|
_links | links An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
|
_embedded | object An optional map of nested resources, mapping each nested resource name to a nested resource representation. |
_profile | string(uri) The URI of a resource profile which describes the representation. |
_error | error An object which describes an error. This value is omitted if the operation succeeded without error. |
items | [authorization] The array of authorized signers for this business and their role within the organization. These people have account access for all business accounts owned by the business. The items in this array must all have the type of authorizedSigner .
minLength: 1
|
beneficiaries
{
"_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"
}
}
},
"items": [
{
"type": "organization",
"percent": 40,
"organization": {
"name": "Doctors Without Borders USA",
"label": "Doctors Without Borders",
"type": "nonProfit",
"subtype": "charitableTrust",
"identification": {
"type": "taxId",
"value": "13-3433452"
},
"addresses": [
{
"type": "headquarters",
"addressLine1": "40 Rector St.",
"addressLine2": "16th Floor",
"city": "New York",
"regionCode": "NY",
"postalCode": 10006
}
]
}
}
]
}
Beneficiaries (Version v1.0.0
)
Account beneficiaries who received the account assets if the owner dies. Beneficiaries apply only to personal accounts.
Properties
Name | Description |
---|---|
_links | links An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
|
_embedded | object An optional map of nested resources, mapping each nested resource name to a nested resource representation. |
_profile | string(uri) The URI of a resource profile which describes the representation. |
_error | error An object which describes an error. This value is omitted if the operation succeeded without error. |
items | [beneficiary] A list of beneficiaries who receive the account assets payable on death (POD) of the account owner(s). This array may be empty. If the array is not empty, the percentages in this array should add up to 100 and may not exceed 100. However, if the array contains exactly one beneficiary, the percentage is automatically adjusted to 100%. The maximum number of account beneficiaries is 10 (but in the future, this will be configurable by the financial institution.) Beneficiaries are updated via the patchBeneficiaries operation.
maxLength: 10
|
beneficiary
{
"type": "organization",
"percent": 40,
"organization": {
"name": "Doctors Without Borders USA",
"label": "Doctors Without Borders",
"type": "nonProfit",
"subtype": "charitableTrust",
"identification": {
"type": "taxId",
"value": "13-3433452"
},
"addresses": [
{
"type": "headquarters",
"addressLine1": "40 Rector St.",
"addressLine2": "16th Floor",
"city": "New York",
"regionCode": "NY",
"postalCode": 10006
}
]
}
}
Beneficiary (Version v1.0.0
)
An account beneficiary which receives a percentage of the account assets if the personal account owner dies. A beneficiary is either a person or a business organization representing a trust or charity.
Properties
Name | Description |
---|---|
type | string Indicates if this beneficiary is a business organization or an individual person.
|
individual | individualBeneficiary Details of a beneficiary who is an individual person. The individual property is only used if type is individual and is thus mutually exclusive with organization .
|
organization | simpleOrganization Details of a trust or charity beneficiary. The organization property is only used if type is organization and is thus mutually exclusive with individual . The organization must have a |
percentage | number(integer) The percent of the account assets that this beneficiary should receive. A value of 0 is allowed so a user can change the percentage to a non-zero value in the future without having to enter all the beneficiary data again.
|
individualBeneficiary
{
"firstName": "string",
"middleName": "string",
"lastName": "string",
"addresses": [
{
"_id": "ha5",
"type": "home",
"addressLine1": "555 N Front Street",
"addressLine2": "Suite 5555",
"city": "Wilmington",
"regionCode": "NC",
"postalCode": "28401-5405",
"countryCode": "US"
}
],
"preferredMailingAddressId": "stri",
"taxId": "string",
"citizen": true,
"emailAddress": "user@example.com",
"birthdate": "2020-02-12",
"relationship": "string"
}
Individual Beneficiary (Version v1.0.0
)
Details of a beneficiary who is an individual person. The individual
property is only used if type
is individual
and is thus mutually exclusive with organization
.
Properties
Name | Description |
---|---|
firstName | string (required) The person's first name (or given name). |
middleName | string The person's middle name. |
lastName | string (required) The person's last name (or surname). |
addresses | [address] (required) An array of postal/mailing addresses. |
preferredMailingAddressId | string The preferred mailing address. This string is the _id of an address in the addresses array.
minLength: 1
maxLength: 4
|
taxId | string (required) Official government identification (tax ID) for this person. |
citizen | boolean Indicates if the person is a (US) citizen. |
emailAddress | string(email) Optional email address. |
birthdate | string(date) (required) The beneficiary's birth date in YYYY-MM-DD format.
|
relationship | string The beneficiary's relationship to the primary account owner, such as "child" or "spouse" .
|
timeDeposit
{
"maturesAt": "2019-10-30T08:16:00.000Z",
"term": "P6M",
"maturityPolicy": "rolloverPrincipalAndInterest",
"rolloverProductName": "string",
"transferTargetAccountName": "string"
}
Time Deposit (Version v1.0.0
)
Properties of a time deposit account, typically Certificate of Deposit accounts.
Properties
Name | Description |
---|---|
maturesAt | string(date-time) The date-time that this account will mature. The account matures on the date which is derived by adding the duration of the term to the opening date-time. The date-time is a string in RFC 3339 UTF format: YYYY-MM-DDThh:mm:ss.sssZ .
|
term | string(period) The maturity term. The account matures on the date which is derived by adding the duration of the term to the opening date-time. This value is an ISO 8601 duration string of the form |
maturityPolicy | maturityPolicy What happens to the account upon maturity. |
rolloverProductName | string If this account rolls over into a new product at maturity, this is the name of the banking product for the rollover account. The product is defined in the apiture:rolloverProduct in the account's _links .
read-only
|
transferTargetAccountName | string If this account transfers funds into an account at maturity, this is the name of the the target account The account is defined in the apiture:transferTargetAccount in the account's _links .
read-only
|
interest
{
"yearToDate": "3.12",
"sinceOpening": "34.62"
}
Interest (Version v1.0.0
)
The account's accrued interest. The values are in the currency
associated with the account.
Properties
Name | Description |
---|---|
yearToDate | string The interest earned to date since the beginning of the year. read-only
|
sinceOpening | string The interest earned since the account was opened. read-only
|
accountSummaries
{
"items": [
{
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"_profile": "https://api.apiture.com/schemas/accounts/account/v1.0.0/profile.json",
"_links": {
"self": {
"href": "/accounts/accounts/0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:product": {
"href": "/products/products/0aba4bae-f18b-4c12-af99-5f8dbd682ae3"
}
},
"name": "My savings",
"description": "My Basic savings account",
"routingNumber": "021000021",
"institutionName": "Canapi Bank",
"state": "active",
"title": "John Smith",
"ifxType": "SDA",
"allowsTransfers": true,
"accountNumbers": {
"full": "9876543210",
"masked": "*************3210"
},
"balance": {
"current": "3450.30",
"available": "3450.30",
"currency": "USD"
},
"rate": {
"value": "1.40",
"type": "apr"
},
"openedAt": {}
}
]
}
Account Summaries (Version v1.0.0
)
A page of embedded account summaries.
Properties
Name | Description |
---|---|
items | [summaryAccount] (required) An array containing a page of account items. |
accounts
{
"_profile": "https://api.apiture.com/schemas/accounts/accounts/v1.0.0/profile.json",
"start": "10",
"limit": 10,
"count": 67,
"name": "accounts",
"_links": {
"self": {
"href": "/accounts/accounts?start=10&limit=10"
},
"first": {
"href": "/accounts/accounts?start=0&limit=10"
},
"next": {
"href": "/accounts/accounts?start=20&limit=10"
},
"collection": {
"href": "/accounts/accounts"
}
},
"_embedded": {
"items": [
{
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"_profile": "https://api.apiture.com/schemas/accounts/account/v1.0.0/profile.json",
"name": "My basic savings account",
"title": "John Smith",
"state": "active",
"balance": {
"current": "3450.30",
"available": "3450.30",
"currency": "USD"
},
"accountNumbers": {
"masked": "*************3210"
},
"_links": {
"self": {
"href": "/accounts/accounts/0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:product": {
"href": "/products/products/0aba4bae-f18b-4c12-af99-5f8dbd682ae3"
}
}
}
]
}
}
Account Collection (Version v1.0.0
)
Collection of accounts. The items in the collection are ordered in the _embedded
object with name items
. The top-level _links
object may contain pagination links (self
, next
, prev
, first
, last
, collection
).
Properties
Name | Description |
---|---|
_links | links An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
|
_embedded | accountSummaries (required) A page of embedded account summaries. |
_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 is 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 0-based start index of this page of items. |
limit | integer The maximum number of items per page. |
name | string A name for the items in collection. |
balance
{
"current": "3450.30",
"available": "2850.30",
"hold": "500.00",
"reserve": "100.00",
"currency": "USD"
}
Account Balance (Version v1.0.0
)
The balance of the account. This is derived data and not mutable through the API. Balances may be negative, indicating a deficit or loan balance.
Properties
Name | Description |
---|---|
current | string The current balance is the available balance plus all pending credits and minus all pending debits. read-only
|
available | string The string representation of the exact decimal available balance. For deposit accounts, this reflects the amount that may be used for withdrawals or transfers. This field does not apply to debit accounts such as loans. read-only
|
hold | string The hold balance is the total amount of funds held due to holds placed on individual transactions. Transaction holds reduce the available balance until expiration.
read-only
|
reserve | string A reserve balance is the amount placed on hold by the Financial Institution. A reserve balance reduces the available balance.
read-only
|
pendingCredits | string The string representation of the total of all pending credits against this account. This contributes to the current balance but not the available balance. read-only
|
pendingDebits | string The string representation of the total of all pending debits against this account. This contributes to the current balance but not the available balance. read-only
|
currency | string The ISO 4217 currency code for this balance. read-only
|
rate
{
"value": "1.40",
"type": "apr"
}
Interest Rate (Version v1.0.0
)
The interest rate of the account. For deposit accounts, this is the rate of return; for loan accounts, this is the interest rate charged on balances.
Properties
Name | Description |
---|---|
value | string The rate, expressed as an decimal percentage in order to represent the rate exactly. read-only
|
type | interestRateType The interest rate type. read-only
|
interestRateType
"apr"
Interest Rate Type (Version v1.0.0
)
The rate type. Rate types are:
apr
- Annual percentage rate.apy
- Annual percentage yield.
Type: string
Enumerated values: apr
apy
internalAccountState
"active"
Internal Account State (Version v1.0.0
)
The state of the account. This field is immutable and derived.
pending
: A new account that has not been verifiedactive
: An account which is active and available for use and for making new transactions.inactive
: An account which is marked inactive and not available for new transactions. Inactive accounts may be changed back to active.frozen
: An account which is frozen and not eligible for new transactions. This is typically the result of suspicious activity or fraud detection. The user must contact their financial institution to unfreeze the account (by changing the state back toactive
) or the financial institution may opt to close the account.closed
: An account that is closed and removed from use Closed accounts are not eligible for transactions or to become active. Such accounts are retained for historical purposes because some transactions may refer to it. Users do not see closed accounts when they view their accounts.
To change the state of an account, POST
the account ID to the corresponding resource endpoints, using the corresponding link on the account resource. To activate an account, use the apiture:activate
link to POST
to /accounts/activeAccounts
. To deactivate an account, use the apiture:deactivate
link to POST
to /accounts/inactiveAccounts
. To freeze an account, use the apiture:freeze
link to POST
to /accounts/frozenAccounts
. To close an account, use the apiture:close
link to POST
to /accounts/closedAccounts
.
Type: string
Enumerated values: pending
active
inactive
frozen
closed
externalAccountState
"active"
External Account State (Version v1.0.0
)
The state of an external (linked) banking account. This field is immutable and derived.
pending
: A new external account that has not been verifiedverifying
: A new account that is being verified. This state only applies to external accounts.failed
: A external account which has failed account verification.active
: An account which is active and available for use and for making new transactions.inactive
: An account which is marked inactive and not available for new transactions. Inactive accounts may be changed back to active.frozen
: An account which is frozen and not eligible for new transactions. This is typically the result of suspicious activity or fraud detection. The user must contact their financial institution to unfreeze the account (by changing the state back toactive
) or the financial institution may opt to close the account.closed
: An account that is closed and removed from use. Closed accounts are not eligible for transactions or to become active. Such accounts are retained for historical purposes because some transactions may refer to it. Users do not see closed accounts when they view their accounts.underReview
: A new account that is being under review. This state only applies to external accounts.
To change the state of an account, POST
the account ID to the corresponding resource endpoints, using the corresponding link on the account resource. To activate an account, use the apiture:activate
link to POST
to /accounts/activeAccounts
. To deactivate an account, use the apiture:deactivate
link to POST
to /accounts/inactiveAccounts
. To freeze an account, use the apiture:freeze
link to POST
to /accounts/frozenAccounts
. To close an account, use the apiture:close
link to POST
to /accounts/closedAccounts
. To under review an account, use the apiture:review
link to POST
to /accounts/externalAccountsUnderReview
.
Type: string
Enumerated values: pending
verifying
failed
active
inactive
frozen
closed
underReview
errorResponse
{
"_profile": "https://api.apiture.com/schemas/common/errorResponse/v2.0.0/profile.json",
"_error": {
"_id": "2eae46e1-575c-4d69-8a8f-0a7b0115a4b3",
"message": "The value for deposit must be greater than 0.",
"statusCode": 422,
"type": "positiveNumberRequired",
"attributes": {
"value": -125.5
},
"remediation": "Provide a value which is greater than 0",
"occurredAt": "2018-01-25T05:50:52.375Z",
"_links": {
"describedby": {
"href": "https://api.apiture.com/errors/positiveNumberRequired"
}
},
"_embedded": {
"errors": []
}
}
}
Error Response (Version v2.0.0
)
Describes an error response, typically returned on 4xx or 5xx errors from API operations. The _error
object contains the error details.
Properties
Name | Description |
---|---|
_links | links An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
|
_embedded | object An optional map of nested resources, mapping each nested resource name to a nested resource representation. |
_profile | string(uri) The URI of a resource profile which describes the representation. |
_error | error An object which describes an error. This value is omitted if the operation succeeded without error. |
root
{
"id": "apiName",
"name": "API name",
"apiVersion": "1.0.0",
"_profile": "http://localhost:8080/schemas/common/root/v1.0.0/profile.json",
"_links": {}
}
API Root (Version v1.0.0
)
A HAL response, with hypermedia _links
for the top-level resources and operations in API.
Properties
Name | Description |
---|---|
_links | links An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
|
_embedded | object An optional map of nested resources, mapping each nested resource name to a nested resource representation. |
_profile | string(uri) The URI of a resource profile which describes the representation. |
_error | error An object which describes an error. This value is omitted if the operation succeeded without error. |
_id | string This API's unique ID. |
name | string This API's name. |
apiVersion | string This API's version. |
configurationGroups
{
"_profile": "http://localhost:8080/schemas/configurations/configurationGroups/v1.0.0/profile.json",
"start": 10,
"limit": 10,
"count": 67,
"name": "configurationGroups",
"_links": {
"self": {
"href": "/configurations/configurations/groups?start=10&limit=10"
},
"first": {
"href": "/configurations/configurations/groups?start=0&limit=10"
},
"next": {
"href": "/configurations/configurations/groups?start=20&limit=10"
},
"collection": {
"href": "/configurations/configurations/groups"
}
},
"_embedded": {
"items": [
{
"_profile": "https://api.apiture.com/schemas/configurations/configurationGroup/v1.0.0/profile.json",
"_links": {
"self": {
"href": "/configurations/groups/basic"
},
"apiture:configuration": {
"href": "/configurations"
}
},
"name": "basic",
"label": "Basic Settings",
"description": "The basic settings for the Transfers API"
},
{
"_profile": "https://api.apiture.com/schemas/configurations/configurationGroup/v1.0.0/profile.json",
"_links": {
"self": {
"href": "/configurations/groups/calendar"
},
"apiture:configuration": {
"href": "/configurations"
}
},
"name": "calendar",
"label": "Calendar",
"description": "A calendar that specifies which dates are valid for performing transfers (e.g., weekdays excluding federal holidays)"
}
]
}
}
Configuration Group Collection (Version v1.0.0
)
Collection of configuration groups. The items in the collection are ordered in the _embedded
object with name items
. The top-level _links
object may contain pagination links (self
, next
, prev
, first
, last
, collection
).
Properties
Name | Description |
---|---|
_links | links An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
|
_embedded | object Embedded objects. |
» items | [configurationGroupSummary] An array containing a page of configuration group 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 is 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 0-based start index of this page of items. |
limit | integer The maximum number of items per page. |
name | string A name for the items in collection. |
configurationGroup
{
"_profile": "https://api.apiture.com/schemas/configurations/configurationGroup/v2.0.0/profile.json",
"_links": {
"self": {
"href": "/configurations/groups/basic"
},
"apiture:configuration": {
"href": "/configurations"
}
},
"name": "basic",
"label": "Basic Settings",
"description": "The basic settings for the Transfers API",
"schema": {
"type": "object",
"properties": {
"dailyLimit": {
"type": "number",
"description": "The daily limit for the number of transfers"
},
"cutoffTime": {
"type": "string",
"format": "time",
"description": "The cutoff time for scheduling transfers for the current day"
}
}
},
"values": {
"dailyLimit": 5,
"cutoffTime": "17:30:00"
}
}
Configuration Group (Version v1.0.0
)
Represents a configuration group.
Properties
Name | Description |
---|---|
_links | links An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
|
_embedded | object An optional map of nested resources, mapping each nested resource name to a nested resource representation. |
_profile | string(uri) The URI of a resource profile which describes the representation. |
_error | error An object which describes an error. This value is omitted if the operation succeeded without error. |
name | string The name of this configuration group, must be unique within the set of all resources of this type. minLength: 1
maxLength: 48
pattern: [a-zA-Z][-\w_]*
|
label | string The text label for this resource, suitable for presentation to the client. minLength: 1
maxLength: 128
|
description | string The full description for this resource, suitable for presentation to the client. minLength: 1
maxLength: 4096
|
schema | configurationSchema The schema which defines the name and types of the variables that are part of this configuration definition. Property names must be simple identifiers consisting of alphanumeric characters, - , _ following the pattern letter [letter | digit | '-' | '_']* This is implicitly a schema for The |
values | configurationValues The data values associated with this configuration group: the group's variable names and values. These values must conform to this item's schema . Note: the For example, multiple configurations may use the same schema that defines values |
configurationSchema
{
"type": "object",
"properties": {
"dailyLimit": {
"type": "number",
"description": "The daily limit for the number of transfers"
},
"cutoffTime": {
"type": "string",
"format": "time",
"description": "The cutoff time for scheduling transfers for the current day"
}
}
}
Configuration Schema (Version v2.0.0
)
The schema which defines the name and types of the variables that are part of this configuration definition. Property names must be simple identifiers consisting of alphanumeric characters, -
, following the pattern
letter [letter | digit | '-' | '
']*
This is implicitly a schema for type: object
and contains the properties.
The values
in a configuration conform to the schema. The names and types are described with a subset of JSON Schema Core and JSON Schema Validation similar to that used to define schemas in OpenAPI Specification 2.0.
Properties
Name | Description |
---|---|
additionalProperties | configurationSchemaValue The data associated with this configuration schema. |
configurationValues
{
"dailyLimit": 5,
"cutoffTime": "17:30:00"
}
Configuration Values (Version v2.0.0
)
The data values associated with this configuration group: the group's variable names and values. These values must conform to this item's schema
.
Note: the schema
may also contain default
values which, if present, are used if a value is not set in the definition's values
.
For example, multiple configurations may use the same schema that defines values a
, b
, and c
, but each configuration may have their own unique values for a
, b
, and c
which is separate from the schema.
Properties
Name | Description |
---|---|
additionalProperties | configurationValue The data associated with this configuration. |
localizedLabels
{
"property1": {
"label": "Limited Liability Corporation",
"description": "string",
"language": "en-us",
"code": "31"
},
"property2": {
"label": "Limited Liability Corporation",
"description": "string",
"language": "en-us",
"code": "31"
}
}
Localized Labels (Version v1.0.0
)
A map that defines lables for an enumeration or other item in a JSON schema. This is a map which maps enumeration schema names to an localizedLabel
object.
Properties
Name | Description |
---|---|
additionalProperties | localizedLabel A localized label and optional description for localizable content defined in this API. |
ifxType
"CCA"
IFX Account Type (Version v1.0.0
)
A code which identifies the product type. This is one of the IFX AcctType values. Labels and descriptions for the enumeration values are in the ifxType
key in the response of the getLabels
operation.
Type: string
Enumerated values: CCA
CDA
CLA
CMA
DDA
EQU
GLA
ILA
INV
IRA
IRL
LOC
MLA
MMA
PBA
PPA
RWD
SDA
attributes
{
"property1": {},
"property2": {}
}
Attributes (Version v2.0.0
)
An optional map of name/value pairs which contains additional dynamic data about the resource.
Properties
Name | Description |
---|---|
additionalProperties | attributeValue The data associated with this attribute. |
abstractResource
{
"_profile": "{uri of resource profile.json}",
"_links": {
"self": {
"href": "{uri of current resource}"
}
}
}
Abstract Resource (Version v2.0.0
)
An abstract schema used to define other schemas for request and response bodies. This is a HAL resource representation. This model contains hypermedia _links
, and either optional domain object data with _profile
and optional _embedded
objects, or an _error
object. In responses, if the operation was successful, this object will not include the _error
, but if the operation was a 4xx or 5xx error, this object will not include _embedded
or any data fields, only _error
and optionally _links
.
Properties
Name | Description |
---|---|
_links | links An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
|
_embedded | object An optional map of nested resources, mapping each nested resource name to a nested resource representation. |
_profile | string(uri) The URI of a resource profile which describes the representation. |
_error | error An object which describes an error. This value is omitted if the operation succeeded without error. |
abstractRequest
{
"_profile": "{uri of resource profile.json}",
"_links": {
"self": {
"href": "{uri of current resource}"
}
}
}
Abstract Request (Version v2.0.0
)
An abstract schema used to define other request-only schemas. This is a HAL resource representation, minus the _error
defined in abstractResource
.
Properties
Name | Description |
---|---|
_links | links An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
|
_embedded | object An optional map of nested resources, mapping each nested resource name to a nested resource representation. |
_profile | string(uri) The URI of a resource profile which describes the representation. |
authorizationType
"primary"
Account Authorization type (Version v1.0.0
)
The type of this account access authorization.
primary
the person is the primary owner of a personal account. There may be only one primary owner.joint
the person is a non-primary joint owner of a personal account.authorizedSigner
the person is an authorized signer for all business accounts owned by the organization.
Type: string
Enumerated values: primary
joint
authorizedSigner
organization
{
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"customerId": "000489353781",
"_profile": "https://api.apiture.com/schemas/organizations/organization/v1.0.0/profile.json",
"name": "Smith's Auto Detailing",
"label": "Smith's Detailing",
"tradeName": "Smith's Auto Detailing",
"emailAddresses": [
{
"_id": "ea0",
"type": "work",
"value": "smitties-detailing@example.com"
}
],
"preferredEmailAddressId": "ea0",
"phones": [
{
"type": "work",
"number": "(555) 555-5555",
"_id": "wp0"
},
{
"type": "mobile",
"number": "(999) 555-5555",
"_id": "wp1"
}
],
"preferredPhoneNumberId": "wp0",
"addresses": [
{
"type": "work",
"addressLine1": "555 N Front Street",
"addressLine2": "Suite 5555",
"city": "Wilmington",
"regionCode": "NC",
"postalCode": "28401-5405",
"countryCode": "US"
},
{
"type": "work",
"addressLine1": "123 S 3rd Street",
"addressLine2": "Apt 42",
"city": "Wilmington",
"regionCode": "NC",
"postalCode": "28411-5405",
"countryCode": "US"
}
],
"preferredMailingAddressId": "wa0",
"establishedDate": "2009-07-09T",
"identification": [
{
"type": "taxId",
"value": "00-9999999"
}
],
"state": "active",
"governmentOwned": false,
"registeredIn": "NC",
"publiclyHeld": false,
"smallBusiness": true,
"taxExempt": false,
"currency": "USD",
"estimatedAnnualRevenue": "from1to10Million",
"estimatedMonthlyAmounts": {
"sentWire": "20000.00",
"receivedWire": "30000.00",
"mobileCheckDeposit": "250000.00",
"receivedAch": "40000.00",
"sentAch": "35000.00"
},
"type": "corporation",
"subtype": "soleProprietorship",
"employeeCountLowerBound": 1,
"employeeCountUpperBound": 1,
"countryOfOperations": "US",
"mobileCheckDepositEnabled": true,
"achEnabled": true,
"authorizedSigners": [],
"beneficialOwners": [],
"createdAt": "2018-04-17T10:04:46.375Z",
"updatedAt": "2018-04-17T10:12:58.375Z",
"_links": {
"self": {
"href": "/organizations/organizations/0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:deactivate": {
"href": "/organizations/inactiveOrganizations?organization=0399abed-fd3d-4830-a88b-30f38b8a365c"
}
},
"_embedded": {}
}
Organization (Version v1.0.0
)
Representation of content and descriptive data (mailing addresses, phone numbers, email addresses) for an organization.
An organization which is used for a business banking account may have authorized signers, which are people authorized to perform banking operations on the business account(s) such as initiating funds transfers.
Regulations require identifying an organization's _beneficial owners_: people who own 25% or more of a business. These may be listed and updated with the getBeneficialOwners
and updateBeneficialOwners
operations.
An organization may have the following links in the _links
object:
apiture:activate
- Activate a new, pending organization.apiture:deactivate
- Deactivate an organization (if it is pending or active).apiture:remove
- Remove an inactive organization.apiture:authorizedSigners
- List the authorized signers.apiture:beneficialOwners
- List the beneficial owners.
Properties
Name | Description |
---|---|
_links | links An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
|
_embedded | object Embedded objects, as selected with the ?embed query parameter.
|
» authorizedSigners | authorizedSigners The list of users who are authorized to access the organization and its bank accounts. |
» beneficialOwners | beneficialOwners A list of people who own at least 25% of the business. The sum of the percentages may not exceed 100%. Some items in the list may have ownership percentages below 25%, so that the beneficial owner's data can be saved and easily updated if their ownership rises to above 25% again. |
_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. |
name | string The organization's official full name |
label | string The organization's common name. |
type | organizationType Indicates what type of organization this resource represents. The enumeration values are described by the |
subtype | organizationSubtype A refinement of the type . The enumeration values are described by the |
identification | [organizationIdentification] A collection of official identifying information associated with the organization. This currently only supports government tax ID. |
addresses | [organizationAddress] An array containing address items. |
phones | [organizationPhoneNumber] An array of phone numbers associated with the organization. The first item, if present, is the default (preferred) organization phone number. |
emailAddresses | [organizationEmailAddress] An array of email addresses associated with the organization. The first item, if present, is the default (preferred) organization email. |
preferredEmailAddressId | string The ID of the organization's preferred email address. This string is the _id of an email address in the emailAddresses array. This value is set with the setPreferredEmailAddress operation.
read-only
minLength: 1
maxLength: 4
|
preferredPhoneId | string The ID of organization's preferred phone number. This string is the _id of a phone number in the phones array. This value is set with the setPreferredPhoneNumber operation.
read-only
minLength: 1
maxLength: 4
|
preferredMailingAddressId | string The preferred mailing address. This string is the _id of an address in the addresses array. This value is set with the setPreferredMailingAddress operation.
read-only
minLength: 1
maxLength: 4
|
establishedDate | string(date) The date the organization was established. |
state | organizationState The state of this organization. The enumeration values are described by the organizationState value in the response of the getLabels operation.
|
tradeName | string The trade name of the organization. |
governmentOwned | boolean Indicates whether the organization is a government-owned entity. |
publiclyHeld | boolean Indicates whether the organization is publicly held. |
smallBusiness | boolean Indicates whether the organization is classified as a small business |
taxExempt | boolean Indicates whether the organization is the tax-exempt. |
employeeCountLowerBound | number The lower bound of persons employed. minimum: 1
|
employeeCountUpperBound | number The upper bound of persons employed. maximum: 20000000
|
homeUrl | string The organization's home page. |
industry | string Indicates what industry does this organization work within. |
countryOfOperations | string The ISO 3166-1 country code for the organization's operation. minLength: 2
maxLength: 2
|
regulatory | object An object containing answers to organization specific regulatory questions. |
currency | string The ISO 4217 currency code for this monetary value. This is always upper case ASCII. TODO: ISO 4217 defines three-character codes. However, ISO 4217 does not account for cryptocurrencies. Of note, DASH uses 4 characters. minLength: 3
maxLength: 3
|
estimatedAnnualRevenue | estimatedAnnualRevenue USD amount of estimated revenue. |
mobileCheckDepositEnabled | boolean Indicates that the organization use mobile check deposits. |
achEnabled | boolean Indicates that the organization use ACH transfers. |
estimatedMonthlyAmounts | object Indicates the estimated monthly amounts for wires, mobile deposits and ACH |
» sentWire | string Indicates the estimated monthly minimum wires amount sent. |
» receivedWire | string Indicates the estimated monthly minimum wires amount received. |
» mobileCheckDeposit | string Indicates the estimated monthly minimum amount to deposit. |
» receivedAch | string Indicates the estimated monthly total amount to receive by ACH. |
» sentAch | string Indicates the estimated monthly total amount to send by ACH. |
accountPurpose | accountPurpose The purpose of the account. |
registeredIn | string The US state or other region in which the organization is registered. minLength: 2
maxLength: 2
pattern: ^[a-zA-Z]{2}$
|
_id | string The unique identifier for this organization resource. This is an immutable opaque string. |
customerId | string The unique customer number, also known as the Customer Identification File number or CIF number. This derived value is assigned to the organization in the banking core. The customerId differs from the _id (which is the ID of the resource in the Organizations API).
read-only
minLength: 1
maxLength: 32
|
createdAt | string(date-time) The date-time when the organization was created. |
updatedAt | string(date-time) The date-time when the organization was updated |
attributes | object An optional map of name/value pairs which provide additional metadata about the organization. |
authorization
{
"userId": "bd9e7a93-32cc-435d-ac57-f21faa082318",
"customerId": "00047294723672",
"type": "joint",
"role": "Chief Financial Officer",
"firstName": "John",
"middleName": "Daniel",
"lastName": "Smith",
"taxId": "111-11-1111",
"citizen": true,
"addresses": [
{
"_id": "ha5",
"type": "home",
"addressLine1": "555 N Front Street",
"addressLine2": "Suite 5555",
"city": "Wilmington",
"regionCode": "NC",
"postalCode": "28401-5405",
"countryCode": "US"
},
{
"id": "wa0",
"type": "other",
"label": "mailing",
"addressLine1": "123 S 3rd Street",
"addressLine2": "Apt 42",
"city": "Wilmington",
"regionCode": "NC",
"postalCode": "28411-5405",
"countryCode": "US"
}
],
"preferredMailingAddressId": "ha5",
"emailAddress": "JohnDanielSmith@example.com"
}
Authorization (Version v1.0.0
)
Represents a person authorized for account access. This object contains key identification information for the person and the type of access or role that the person has in relation to the banking account or organization.
Properties
Name | Description |
---|---|
firstName | string (required) The person's first name (or given name). |
middleName | string The person's middle name. |
lastName | string (required) The person's last name (or surname). |
addresses | [address] (required) An array of postal/mailing addresses. |
preferredMailingAddressId | string The preferred mailing address. This string is the _id of an address in the addresses array.
minLength: 1
maxLength: 4
|
taxId | string (required) Official government identification (tax ID) for this person. |
citizen | boolean (required) Indicates if the person is a (US) citizen. |
emailAddress | string(email) Optional email address. |
userId | string (required) The unique ID of the user. This is the _id value of the user resource from the Users API.
|
customerId | string (required) The unique customer number, also known as the Customer Identification File number or CIF number. This derived value is assigned to the user in the banking core. The customerId differs from the _id (which is the ID of the resource in the Users API).
read-only
minLength: 1
maxLength: 32
|
type | authorizationType (required) The type of this account access authorization.
|
role | string The person's role at the organization. This attribute is required when the authorization type is authorizedSigner. |
simpleOrganization
{
"name": "Smith's Auto Detailing",
"label": "Smith's Detailing",
"emailAddresses": [
{
"type": "work",
"value": "smitties-detailing@example.com"
}
],
"identification": [
{
"type": "taxId",
"value": "00-9999999"
}
],
"phones": [
{
"type": "work",
"number": "(555) 555-5555"
},
{
"type": "mobile",
"number": "(999) 555-5555"
}
],
"addresses": [
{
"type": "work",
"addressLine1": "555 N Front Street",
"addressLine2": "Suite 5555",
"city": "Wilmington",
"regionCode": "NC",
"postalCode": "28401-5405",
"countryCode": "US"
},
{
"type": "work",
"addressLine1": "123 S 3rd Street",
"addressLine2": "Apt 42",
"city": "Wilmington",
"regionCode": "NC",
"postalCode": "28411-5405",
"countryCode": "US"
}
],
"establishedDate": "2009-07-09T"
}
Simple Organization (Version v1.0.0
)
The simplest form of an organization.
Properties
Name | Description |
---|---|
name | string The organization's official full name |
label | string The organization's common name. |
type | organizationType Indicates what type of organization this resource represents. The enumeration values are described by the |
subtype | organizationSubtype A refinement of the type . The enumeration values are described by the |
identification | [organizationIdentification] A collection of official identifying information associated with the organization. This currently only supports government tax ID. |
addresses | [organizationAddress] An array containing address items. |
phones | [organizationPhoneNumber] An array of phone numbers associated with the organization. The first item, if present, is the default (preferred) organization phone number. |
emailAddresses | [organizationEmailAddress] An array of email addresses associated with the organization. The first item, if present, is the default (preferred) organization email. |
preferredEmailAddressId | string The ID of the organization's preferred email address. This string is the _id of an email address in the emailAddresses array. This value is set with the setPreferredEmailAddress operation.
read-only
minLength: 1
maxLength: 4
|
preferredPhoneId | string The ID of organization's preferred phone number. This string is the _id of a phone number in the phones array. This value is set with the setPreferredPhoneNumber operation.
read-only
minLength: 1
maxLength: 4
|
preferredMailingAddressId | string The preferred mailing address. This string is the _id of an address in the addresses array. This value is set with the setPreferredMailingAddress operation.
read-only
minLength: 1
maxLength: 4
|
establishedDate | string(date) The date the organization was established. |
maturityPolicy
"rolloverPrincipalAndInterest"
Maturity Policy (Version v1.0.0
)
Indicates how the principal and interest are processed upon maturity. The values indicate whether to rollover (to a time deposit account of the same rate and term), transfer funds to another (possibly new) deposit account, or simply hold the funds in the current account (which may no longer accrue interest). Labels and descriptions for the enumeration values are in the maturityPolicy
key in the response of the getLabels
operation.
Type: string
Enumerated values: rolloverPrincipalAndInterest
transferPrincipalAndInterest
rolloverPrincipalAndTransferInterest
holdPrincipalAndInterest
partialTransfer
organizationType
"corporation"
Organization Type (Version v1.0.0
)
The primary organization type.
Type: string
Enumerated values: corporation
partnership
llc
llp
nonProfit
trust
municipality
custodial
financialInstitution
publicFunds
federalGovernment
unknown
other
notApplicable
organizationSubtype
"soleProprietorship"
Organization Subtype (Version v1.0.0
)
A refinement of the organization type.
Type: string
Enumerated values: soleProprietorship
partnership
limitedPartnership
corporation
sCorporation
limitedLiabilityCompany
revokableTrust
irrevocableTrust
assetProtectionTrust
charitableTrust
constructiveTrust
specialNeedsTrust
spendthriftTrust
taxBypassTrust
tottenTrust
other
organizationIdentification
{
"value": "string",
"type": "taxId",
"expiresOn": "2020-02-12",
"expiration": "2020-02-12"
}
Organization Identification (Version v1.0.0
)
The type and value of the organizations unique identification numbers.
Properties
Name | Description |
---|---|
value | string (required) The value of this form of identification (the tax ID as a string, for example) |
type | organizationIdentificationType (required) The type of this form of identification. taxId is the only supported type at this time.
|
expiresOn | string(date) The date when this form of identification expires. |
expiration | string(date) The date when this form of identification expires. Note This property is deprecated; use expiresOn .
|
organizationAddress
{
"_id": "ha1",
"type": "home",
"addressLine1": "555 N Front Street",
"addressLine2": "Suite 5555",
"city": "Wilmington",
"regionCode": "NC",
"postalCode": "28401-5405",
"countryCode": "US",
"state": "approved",
"_links": {
"self": {
"href": "/organizations/organizations/f2d87aa6-33c8-458c-819b-41bb00f1ec08/addresses/ha1"
}
}
}
Organization Address (Version v1.0.0
)
Representation of an organization's address resource. The links on an address indicate allowed organization operations:
delete
- Delete the address resource. This operation is only present if the organization may delete this address. For example, it is not available if this address is the organization's preferred mailing address. (verb:DELETE
; operation:deleteAddress
.)apiture:setAsPreferred
- Set this address as the organization's preferred mailing address. This operation is only present if- the address is not already selected as preferred and
- the address'
state
isapproved
. (verb:PUT
; operation:setPreferredAddress
.)
Properties
Name | Description |
---|---|
type | string The type of this address.
|
label | string A text label, suitable for presentation to the end user. This is derived from type or from otherType if type is other
read-only
minLength: 4
maxLength: 32
|
otherType | string The actual address type if type is other .
minLength: 4
maxLength: 32
|
addressLine1 | string The first street address line of the address, normally a house number and street name. minLength: 4
maxLength: 128
|
addressLine2 | string The optional second street address line of the address. maxLength: 128
|
city | string The name of the city or municipality. minLength: 2
maxLength: 128
|
regionCode | string The mailing address region code, such as state in the US, or a province in Canada. This is normalized to uppercase. minLength: 2
maxLength: 2
pattern: ^[a-zA-Z]{2}$
|
postalCode | string The mailing address postal code, such as a US Zip or Zip+4 code, or a Canadian postal code. minLength: 5
maxLength: 10
pattern: ^[0-9]{5}(?:-[0-9]{4})?$
|
countryCode | string The ISO 3166-1 alpha-2 country code. This is normalized to uppercase. minLength: 2
maxLength: 2
pattern: ^[a-zA-Z]{2}$
|
_id | string An identifier for this address, so that it can be referenced uniquely. The service will assign a unique _id if the client does not provide one. The _id must be unique across all addresses within the addresses array.
minLength: 1
maxLength: 8
pattern: ^[-a-zA-Z0-9_]{1,8}$
|
_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. |
state | profileItemState The state of this address. pending addresses require financial institution approval. Only approved addresses may be set as the preferred address.
|
See the definition of the organizationAddress
schema in organizations
API for definition of the links on this schema.
organizationPhoneNumber
{
"_id": "hp1",
"_profile": "https://api.apiture.com/schemas/organizations/organizationPhoneNumber/v1.0.0/profile.json",
"type": "home",
"number": "555-555-5555",
"state": "approved",
"_links": {
"self": {
"href": "/organizations/organizations/9b0387db-8705-469a-852c-ead8bfd872ba/phoneNumbers/hp1"
}
}
}
Phone Number (Version v1.0.0
)
Representation of phone number resources. The links on an phone number indicate allowed organization operations:
delete
- Delete the phone number resource. This operation is only present if the organization may delete this phone number. For example, it is not available if this phone number is the organization's preferred phone number. (verb:DELETE
; operation:deletePhoneNumber
.)apiture:setAsPreferred
- Set this phone number as the organization's preferred phone number. This operation is only present if- the phone number is not already selected as preferred and
- the phone number's
state
isapproved
. (verb:PUT
; operation:setPreferredPhoneNumber
.)
Properties
Name | Description |
---|---|
type | string The type or role of this phone number.
|
number | string The phone number, as a string. minLength: 8
maxLength: 16
|
label | string A text label, suitable for presentation to the end user. This is also used if type is other .
maxLength: 32
|
_id | string An identifier for this phone number, so that it can be referenced uniquely. The service will assign a unique _id if the client does not provide one. The _id must be unique across all phone numbers within the phones array.
minLength: 1
maxLength: 8
pattern: ^[-a-zA-Z0-9_]{1,8}$
|
_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. |
state | profileItemState The state of this phone number. pending numbers require financial institution approval. Only approved numbers may be set as the preferred phone number.
|
See the definition of the organizationPhoneNumber
schema in organizations
API for definition of the links on this schema.
organizationEmailAddress
{
"_id": "pe1",
"_profile": "https://api.apiture.com/schemas/organizations/organizationEmailAddress/v1.0.0/profile.json",
"type": "personal",
"number": "555-555-5555",
"state": "approved",
"_links": {
"self": {
"href": "/organizations/organizations/f2d87aa6-33c8-458c-819b-41bb00f1ec08/emailAddresses/pe1"
},
"delete": {
"href": "/organizations/organizations/f2d87aa6-33c8-458c-819b-41bb00f1ec08/emailAddresses/pe1"
},
"apiture:setAsPreferred": {
"href": "/organizations/organizations/f2d87aa6-33c8-458c-819b-41bb00f1ec08/preferredEmailAddresses?value=pe1"
}
}
}
Email Address (Version v1.0.0
)
Representation of email address resources. An email address is immutable, although organizations can add new email addresses. The links on an address indicate allowed organization operations:
delete
- Delete the email address resource. This operation is only present if the organization may delete this address. For example, it is not available if this email address is the organization's preferred email address. (verb:DELETE
; operation:deleteEmailAddress
.)apiture:setAsPreferred
- Set this email address as the organization's preferred email address. This operation is only present if- the email address is not already selected as preferred and
- the address'
state
isapproved
. (verb:PUT
; operation:setPreferredEmailAddress
.)
Properties
Name | Description |
---|---|
value | string(email) The email address, such as JohnBankCustomer@example.com
minLength: 8
maxLength: 120
|
type | string The kind of email address this is.
|
_id | string An identifier for this email address, so that it can be referenced uniquely. The service will assign a unique _id if the client does not provide one. The _id must be unique across all email addresses within the emailAddresses array.
minLength: 1
maxLength: 8
pattern: ^[-a-zA-Z0-9_]{1,8}$
|
_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. |
state | profileItemState The state of this email address. pending email addresses require financial institution approval. Only approved numbers may be set as the preferred email address.
|
See the definition of the organizationEmailAddress
schema in organizations
API for definition of the links on this schema.
summaryOrganization
{
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"_profile": "https://api.apiture.com/schemas/organizations/organization/v1.0.0/profile.json",
"_links": {
"self": {
"href": "/organizations/organizations/0399abed-fd3d-4830-a88b-30f38b8a365c"
}
}
}
Organization Summary (Version v1.0.0
)
Summary representation of an organization resource in organizations collections. This representation normally does not contain any _embedded
objects. If needed, call the GET
operation on the item's self
link to get _embedded
objects.
Properties
Name | Description |
---|---|
_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. |
name | string The organization's official full name |
label | string The organization's common name. |
type | organizationType Indicates what type of organization this resource represents. The enumeration values are described by the |
subtype | organizationSubtype A refinement of the type . The enumeration values are described by the |
identification | [organizationIdentification] A collection of official identifying information associated with the organization. This currently only supports government tax ID. |
addresses | [organizationAddress] An array containing address items. |
phones | [organizationPhoneNumber] An array of phone numbers associated with the organization. The first item, if present, is the default (preferred) organization phone number. |
emailAddresses | [organizationEmailAddress] An array of email addresses associated with the organization. The first item, if present, is the default (preferred) organization email. |
preferredEmailAddressId | string The ID of the organization's preferred email address. This string is the _id of an email address in the emailAddresses array. This value is set with the setPreferredEmailAddress operation.
read-only
minLength: 1
maxLength: 4
|
preferredPhoneId | string The ID of organization's preferred phone number. This string is the _id of a phone number in the phones array. This value is set with the setPreferredPhoneNumber operation.
read-only
minLength: 1
maxLength: 4
|
preferredMailingAddressId | string The preferred mailing address. This string is the _id of an address in the addresses array. This value is set with the setPreferredMailingAddress operation.
read-only
minLength: 1
maxLength: 4
|
establishedDate | string(date) The date the organization was established. |
state | organizationState The state of this organization. The enumeration values are described by the organizationState value in the response of the getLabels operation.
|
tradeName | string The trade name of the organization. |
governmentOwned | boolean Indicates whether the organization is a government-owned entity. |
publiclyHeld | boolean Indicates whether the organization is publicly held. |
smallBusiness | boolean Indicates whether the organization is classified as a small business |
taxExempt | boolean Indicates whether the organization is the tax-exempt. |
employeeCountLowerBound | number The lower bound of persons employed. minimum: 1
|
employeeCountUpperBound | number The upper bound of persons employed. maximum: 20000000
|
homeUrl | string The organization's home page. |
industry | string Indicates what industry does this organization work within. |
countryOfOperations | string The ISO 3166-1 country code for the organization's operation. minLength: 2
maxLength: 2
|
regulatory | object An object containing answers to organization specific regulatory questions. |
currency | string The ISO 4217 currency code for this monetary value. This is always upper case ASCII. TODO: ISO 4217 defines three-character codes. However, ISO 4217 does not account for cryptocurrencies. Of note, DASH uses 4 characters. minLength: 3
maxLength: 3
|
estimatedAnnualRevenue | estimatedAnnualRevenue USD amount of estimated revenue. |
mobileCheckDepositEnabled | boolean Indicates that the organization use mobile check deposits. |
achEnabled | boolean Indicates that the organization use ACH transfers. |
estimatedMonthlyAmounts | object Indicates the estimated monthly amounts for wires, mobile deposits and ACH |
» sentWire | string Indicates the estimated monthly minimum wires amount sent. |
» receivedWire | string Indicates the estimated monthly minimum wires amount received. |
» mobileCheckDeposit | string Indicates the estimated monthly minimum amount to deposit. |
» receivedAch | string Indicates the estimated monthly total amount to receive by ACH. |
» sentAch | string Indicates the estimated monthly total amount to send by ACH. |
accountPurpose | accountPurpose The purpose of the account. |
registeredIn | string The US state or other region in which the organization is registered. minLength: 2
maxLength: 2
pattern: ^[a-zA-Z]{2}$
|
_id | string The unique identifier for this organization resource. This is an immutable opaque string. |
customerId | string The unique customer number, also known as the Customer Identification File number or CIF number. This derived value is assigned to the organization in the banking core. The customerId differs from the _id (which is the ID of the resource in the Organizations API).
read-only
minLength: 1
maxLength: 32
|
beneficialOwners
{
"items": [
{
"firstName": "William",
"lastName": "Wellphunded",
"addresses": [
{
"addressLine1": "1234 S Front Street",
"city": "Wilmington",
"regionCode": "NC",
"postalCode": "28401-5405",
"countryCode": "US",
"type": "home"
}
],
"role": "Chief Financial Officer",
"percentage": 35,
"identification": [
{
"type": "taxId",
"value": "111-11-1111"
}
]
}
],
"_links": {
"self": {
"href": "/organizations/organizations/0399abed-fd3d-4830-a88b-30f38b8a365c/beneficialOwners"
}
}
}
Beneficial Owners (Version v1.0.0
)
A list of people who own at least 25% of the business. The sum of the percentages may not exceed 100%. Some items in the list may have ownership percentages below 25%, so that the beneficial owner's data can be saved and easily updated if their ownership rises to above 25% again.
Properties
Name | Description |
---|---|
_links | links An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
|
_embedded | object An optional map of nested resources, mapping each nested resource name to a nested resource representation. |
_profile | string(uri) The URI of a resource profile which describes the representation. |
_error | error An object which describes an error. This value is omitted if the operation succeeded without error. |
items | [beneficialOwner] (required) A list of people who own at least 25% of the business, and the percentage owned. maxLength: 10
|
configurationGroupSummary
{
"_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"
}
}
},
"name": "transfers",
"label": "Transfers Configuration",
"description": "The configuration for the Transfers API."
}
Configuration Group Summary (Version v2.0.0
)
A summary of the data contained within a configuration group resource.
Properties
Name | Description |
---|---|
_links | links An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
|
_embedded | object An optional map of nested resources, mapping each nested resource name to a nested resource representation. |
_profile | string(uri) The URI of a resource profile which describes the representation. |
_error | error An object which describes an error. This value is omitted if the operation succeeded without error. |
name | string The name of this configuration group, must be unique within the set of all resources of this type. minLength: 1
maxLength: 48
pattern: [a-zA-Z][-\w_]*
|
label | string The text label for this resource, suitable for presentation to the client. minLength: 1
maxLength: 128
|
description | string The full description for this resource, suitable for presentation to the client. minLength: 1
maxLength: 4096
|
links
{
"property1": {
"href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
"title": "Applicant"
},
"property2": {
"href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
"title": "Applicant"
}
}
Links (Version v1.0.0
)
An optional map of links, mapping each link relation to a link object. This model defines the _links
object of HAL representations.
Properties
Name | Description |
---|---|
additionalProperties | link Describes a hypermedia link within a _links object in HAL representations. In Apiture APIs, links are HAL links, but Apiture APIs do not use the name or hreflang properties of HAL. Apiture links may include a method property.
|
localizedLabel
{
"label": "Limited Liability Corporation",
"description": "string",
"language": "en-us",
"code": "31"
}
Localized Label (Version v1.0.0
)
A localized label and optional description for localizable content defined in this API.
Properties
Name | Description |
---|---|
label | string A localized label or title which may be used labels or other UI controls which present a value. |
description | string A more detailed localized description of a localizable label. |
language | string The actual natural language tag to which this localized label is associated, as per RFC 7231 |
code | string If the localized value is associated with an external standard, this is a lookup code or key or URI for that value. |
link
{
"href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
"title": "Applicant"
}
Link (Version v1.0.0
)
Describes a hypermedia link within a _links
object in HAL representations. In Apiture APIs, links are HAL links, but Apiture APIs do not use the name
or hreflang
properties of HAL. Apiture links may include a method
property.
Properties
Name | Description |
---|---|
href | string(uri) (required) The URI or URI template for the resource/operation this link refers to. |
type | string The media type for the resource. |
templated | boolean If true, the link's href is a URI template. |
title | string An optional human-readable localized title for the link. |
deprecation | string(uri) If present, the containing link is deprecated and the value is a URI which provides human-readable text information about the deprecation. |
profile | string(uri) The URI of a profile document, a JSON document which describes the target resource/operation. |
error
{
"_id": "2eae46e1575c0a7b0115a4b3",
"message": "Descriptive error message...",
"statusCode": 422,
"type": "errorType1",
"remediation": "Remediation string...",
"occurredAt": "2018-01-25T05:50:52.375Z",
"errors": [
{
"_id": "ccdbe2c5c938a230667b3827",
"message": "An optional embedded error"
},
{
"_id": "dbe9088dcfe2460f229338a3",
"message": "Another optional embedded error"
}
],
"_links": {
"describedby": {
"href": "https://developer.apiture.com/errors/errorType1"
}
}
}
Error (Version v2.0.0
)
Describes an error in an API request or in a service called via the API.
Properties
Name | Description |
---|---|
message | string (required) A localized message string describing the error condition. |
_id | string A unique identifier for this error instance. This may be used as a correlation ID with the root cause error (i.e. this ID may be logged at the source of the error). This is is an opaque string. |
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.
|
organizationIdentificationType
"taxId"
Organization Identification Type (Version v1.0.0
)
The type of the form of an organization's identification. taxId
is the only supported type at this time.
Type: string
Enumerated values: taxId
dunsNumber
address
{
"_id": "ha5",
"type": "home",
"addressLine1": "555 N Front Street",
"addressLine2": "Suite 5555",
"city": "Wilmington",
"regionCode": "NC",
"postalCode": "28401-5405",
"countryCode": "US"
}
Address (Version v1.0.0
)
A postal address.
Properties
Name | Description |
---|---|
type | string (required) The type of this address.
|
label | string A text label, suitable for presentation to the end user. This is derived from type or from otherType if type is other
read-only
minLength: 4
maxLength: 32
|
otherType | string The actual address type if type is other .
minLength: 4
maxLength: 32
|
addressLine1 | string The first street address line of the address, normally a house number and street name. minLength: 4
maxLength: 128
|
addressLine2 | string The optional second street address line of the address. maxLength: 128
|
city | string The name of the city or municipality. minLength: 2
maxLength: 128
|
regionCode | string The mailing address region code, such as state in the US, or a province in Canada. This is normalized to uppercase. minLength: 2
maxLength: 2
pattern: ^[a-zA-Z]{2}$
|
postalCode | string The mailing address postal code, such as a US Zip or Zip+4 code, or a Canadian postal code. minLength: 5
maxLength: 10
pattern: ^[0-9]{5}(?:-[0-9]{4})?$
|
countryCode | string The ISO 3166-1 alpha-2 country code. This is normalized to uppercase. minLength: 2
maxLength: 2
pattern: ^[a-zA-Z]{2}$
|
_id | string An identifier for this address, so that it can be referenced uniquely. The service will assign a unique _id if the client does not provide one. The _id must be unique across all addresses within the addresses array.
minLength: 1
maxLength: 8
pattern: ^[-a-zA-Z0-9_]{1,8}$
|
profileItemState
"approved"
Organization Profile Item State (Version v1.0.0
)
The state of an item (address, email address, or phone number) within the organization's profile. New addresses, email addresses, or phone numbers start with the state pending
, which means approval by the financial institution is pending. After they have been verified, the state becomes approved
. Some normalizing or sanitizing of the value may occur when this happens (for example, a ZIP code may change to ZIP+4 format). pending
items may not be assigned as the preferred item.
Type: string
Enumerated values: pending
approved
configurationSchemaValue
{}
Configuration Schema Value (Version v2.0.0
)
The data associated with this configuration schema.
Properties
typedEmailAddress
{
"value": "JohnBankCustomer@example.com",
"type": "unknown",
"_id": "ha3"
}
Email Address (Version v1.0.0
)
An email address and the email address type.
Properties
Name | Description |
---|---|
value | string(email) The email address, such as JohnBankCustomer@example.com
minLength: 8
maxLength: 120
|
type | string The kind of email address this is.
|
_id | string An identifier for this email address, so that it can be referenced uniquely. The service will assign a unique _id if the client does not provide one. The _id must be unique across all email addresses within the emailAddresses array.
minLength: 1
maxLength: 8
pattern: ^[-a-zA-Z0-9_]{1,8}$
|
configurationValue
{}
Configuration Value (Version v2.0.0
)
The data associated with this configuration.
Properties
phoneNumber
{
"_id": "hp1",
"type": "home",
"number": "555-555-5555"
}
Phone Number (Version v1.0.0
)
A phone number and its role.
Properties
Name | Description |
---|---|
type | string (required) The type or role of this phone number.
|
number | string (required) The phone number, as a string. minLength: 8
maxLength: 16
|
label | string A text label, suitable for presentation to the end user. This is also used if type is other .
maxLength: 32
|
_id | string An identifier for this phone number, so that it can be referenced uniquely. The service will assign a unique _id if the client does not provide one. The _id must be unique across all phone numbers within the phones array.
minLength: 1
maxLength: 8
pattern: ^[-a-zA-Z0-9_]{1,8}$
|
beneficialOwner
{
"firstName": "William",
"lastName": "Wellphunded",
"addresses": [
{
"addressLine1": "1234 S Front Street",
"city": "Wilmington",
"regionCode": "NC",
"postalCode": "28401-5405",
"countryCode": "US",
"type": "home"
}
],
"identification": [
{
"type": "taxId",
"value": "111-11-1111"
}
],
"role": "Chief Financial Officer",
"percentage": 35,
"contactId": "8bf04d7d-c1bd-4945-b0ac-40ef02bb3953"
}
Beneficial Owner (Version v1.0.0
)
A person who owns 25% or more of a business organization.
Properties
Name | Description |
---|---|
firstName | string The person's first name (or given name). |
middleName | string The person's middle name. |
lastName | string The person's last name (or surname). |
addresses | [address] An array of postal/mailing addresses. |
preferredMailingAddressId | string The preferred mailing address. This string is the _id of an address in the addresses array.
minLength: 1
maxLength: 4
|
emailAddresses | [typedEmailAddress] An array of email addresses. |
preferredEmailAddressId | string The preferred email address. This string is the _id of an email address in the emailAddresses array.
minLength: 1
maxLength: 4
|
phones | [phoneNumber] An array of phone numbers. |
preferredPhoneId | string The ID of preferred phone number. This string is the _id of a phone number in the phones array.
minLength: 1
maxLength: 4
|
prefix | string A title or honorific prefix such as Dr. or Fr. maxLength: 20
|
suffix | string A title or honorific suffix such as PhD or DDS. maxLength: 20
|
preferredName | string The contact's preferred name. This is how the contact's name is presented to the user in the interface. The default is the contact's firstName .
|
identification | [identification] A collection of official identifying information associated with the contact. |
preferredContactMethod | preferredContactMethod The contact's preferred method of communication. |
role | string The person's role at the organization. |
percentage | number(integer) (required) The percent of the business that this person owns. maximum: 100
|
contactId | string (required) The _id of an existing contact resource associated with the beneficial owner. Create the beneficial owner contact resource using the Contacts API.
|
organizationState
"pending"
Organization State (Version v1.0.0
)
The state of this organization. The enumeration values are described by the organizationState
value in the response of the getLabels
operation.
Type: string
Enumerated values: pending
inactive
active
merged
removed
estimatedAnnualRevenue
"unknown"
Estimated Annual Revenue (Version v1.0.0
)
The estimated annual revenue in USD.
Type: string
Enumerated values: unknown
under1Million
from1to10Million
from10to100Million
over100Million
other
notApplicable
accountPurpose
"unknown"
Account purpose (Version v1.0.0
)
The purpose of the account.
Type: string
Enumerated values: unknown
creditCardProcessing
generalOperatingFunds
lottery
payroll
savings
other
notApplicable
simpleContact
{
"firstName": "John",
"middleName": "Daniel",
"lastName": "Smith",
"preferredName": "John",
"suffix": "MD",
"identification": [
{
"type": "taxId",
"value": "111-11-1111"
}
],
"addresses": [
{
"_id": "ha1",
"type": "home",
"addressLine1": "555 N Front Street",
"addressLine2": "Suite 5555",
"city": "Wilmington",
"regionCode": "NC",
"postalCode": "28401-5405",
"countryCode": "US"
}
],
"preferredMailingAddressId": "ha1",
"emailAddresses": [
{
"id": "pe0",
"value": "api@apiture.com",
"type": "personal"
},
{
"id": "wp1",
"value": "support@apiture.com",
"type": "work"
}
],
"preferredEmailAddressId": "pe0",
"phones": [
{
"_id": "hp1",
"type": "home",
"number": "(555) 555-5555"
},
{
"_id": "mp1",
"type": "mobile",
"number": "(999) 555-5555"
}
],
"preferredPhoneId": "hp1",
"preferredContactMethod": "email"
}
Simple Contact (Version v1.0.0
)
Basic contact and identification information for a person, consisting of the name, mailing address, phone numbers, email addresses, and government identification.
Properties
Name | Description |
---|---|
firstName | string The person's first name (or given name). |
middleName | string The person's middle name. |
lastName | string The person's last name (or surname). |
addresses | [address] An array of postal/mailing addresses. |
preferredMailingAddressId | string The preferred mailing address. This string is the _id of an address in the addresses array.
minLength: 1
maxLength: 4
|
emailAddresses | [typedEmailAddress] An array of email addresses. |
preferredEmailAddressId | string The preferred email address. This string is the _id of an email address in the emailAddresses array.
minLength: 1
maxLength: 4
|
phones | [phoneNumber] An array of phone numbers. |
preferredPhoneId | string The ID of preferred phone number. This string is the _id of a phone number in the phones array.
minLength: 1
maxLength: 4
|
prefix | string A title or honorific prefix such as Dr. or Fr. maxLength: 20
|
suffix | string A title or honorific suffix such as PhD or DDS. maxLength: 20
|
preferredName | string The contact's preferred name. This is how the contact's name is presented to the user in the interface. The default is the contact's firstName .
|
identification | [identification] A collection of official identifying information associated with the contact. |
preferredContactMethod | preferredContactMethod The contact's preferred method of communication. |
attributeValue
{}
Attribute Value (Version v2.0.0
)
The data associated with this attribute.
Properties
identification
{
"type": "taxId",
"value": "111-11-1111",
"expiration": {}
}
Identification (Version v1.0.0
)
Official identifying information associated with the contact.
Properties
Name | Description |
---|---|
value | string (required) The value of this form of identification (the tax ID as a string, for example) |
type | string (required) The type of this form of identification.
|
expiration | string(date) The date when the form of identification expires, in RFC 3339 YYYY-MM-DD format.
|
preferredContactMethod
"unknown"
Preferred Contact Method (Version v1.0.0
)
The contact's preferred method of communication.
Type: string
Enumerated values: unknown
sms
email
other
notApplicable