Documents v0.1.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 Documents API provides operations for all bank customers to list their banking documents, such as :
- account statements
- agreements
- notices
- user documents or organization documents not associated with specific accounts, such as tax documents.
Users may request lists of documents based on document category, document type, and/or date intervals based on query parameters:
- the start and end date
- a start or end date and a period, such as statements for the first 6 months of a year
- an end date and a period, such as statements for the last 6 months.
The caller can fetch the document resource for each document. This document metadata includes properties which describe the document, such as the document name, label, document types, document category, content type, the date range the document applies to, the document context (usually an account).
Each document resource has an apiture:content
link to
download the document's content.
The content is typically a PDF (application/pdf
) file.
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/full |
Full access to accounts and account-related resources such as transfers and transactions. |
API
The Documents API
getApi
Code samples
# You can also use wget
curl -X GET https://api.devbank.apiture.com/documents/ \
-H 'Accept: application/hal+json' \
-H 'API-Key: API_KEY'
GET https://api.devbank.apiture.com/documents/ 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/documents/',
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/documents/',
{
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/documents/',
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/documents/', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.devbank.apiture.com/documents/");
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/documents/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Top-level resources and operations in this API
GET /
Return links to the top-level resources and operations in this API.
Try It
Example responses
200 Response
{
"id": "apiName",
"name": "API name",
"apiVersion": "1.0.0",
"_profile": "https://production.api.apiture.com/schemas/common/root/v2.0.0/profile.json",
"_links": {}
}
Responses
getApiDoc
Code samples
# You can also use wget
curl -X GET https://api.devbank.apiture.com/documents/apiDoc \
-H 'Accept: application/json' \
-H 'API-Key: API_KEY'
GET https://api.devbank.apiture.com/documents/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/documents/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/documents/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/documents/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/documents/apiDoc', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.devbank.apiture.com/documents/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/documents/apiDoc", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Return API definition document
GET /apiDoc
Return the OpenAPI document that describes this API.
Try It
Example responses
200 Response
{}
Responses
Status | Description |
---|---|
200 | OK |
OK | |
Schema: Inline |
Response Schema
Document
getDocuments
Code samples
# You can also use wget
curl -X GET https://api.devbank.apiture.com/documents/documents \
-H 'Accept: application/hal+json' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
GET https://api.devbank.apiture.com/documents/documents 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/documents/documents',
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/documents/documents',
{
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/documents/documents',
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/documents/documents', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.devbank.apiture.com/documents/documents");
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/documents/documents", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Return a collection of documents
GET /documents
Return a paginated filterable collection of documents. The links in the response include pagination links. Periodic or recurring documents such as statements or tax documents may be filtered in several ways:
- Pass
endOn
and aperiod
which represents how far in the past to include. TheendOn
is the current date if omitted. For example, to fetch documents for the last six months, request?period=P6M
query parameters. Eachprev
link will return the previous six months of documents. The default period if ommitted isP6M
. Thus, the default request if none ofstartOn
,endOn
andperiod
are passed is the last 6 months of documents. This implies a result sorted in descending order by time. - Pass
startOn
andendOn
, to find any documents which overlap that date range. This implies a result sorted in ascending order by time. - Pass the
startOn
and aperiod
which represents how far after the start date to include. For example, to fetch documents for the first six months of 2018, request?startOn=2018-01-01&period=P6M
query parameters. Eachnext
link in the response collection will return the next six months of documents, if available. This implies a result sorted in ascending order by time. - If one or ore accounts are included in the the optional
account
query parameter, only documents associated with those accounts will be returned; the caller must be a primary owner, joint owner, or authorized signer of the accounts. An empty list of_embedded.items
will be returned if the user is not entitled to any of the requested accounts.
Parameters
Parameter | Description |
---|---|
start (query) |
integer(int64) The zero-based index of the first document item to include in this page. The default 0 denotes the beginning of the collection. |
limit (query) |
integer(int32) The maximum number of document representations to return in this page. Default: 100 |
account (query) |
array[string] An optional pipe ( | ) separated list of one or more account IDs. Note: these are not account numbers but are the unique resource _id of the corresponding financial institution accounts via the Accounts API. The user must have access to the corresponding accounts in order to view documents associated with the accounts. If omitted, the listed documents may match any account the user is entitled to view, or may not be account-specific documents. Examples:?account=e486ebd0-167d-4fc6-8fd0-0edf275ef431 ?account=e486ebd0-167d-4fc6-8fd0-0edf275ef431|43ae102e-4cec-488f-a3c5-7f15c3659960 |
startOn (query) |
string(date) The start date of the query range. May be combined with endOn or period but not both. |
endOn (query) |
string(date) The end date of the query range. May be combined with endOn or period but not both. |
period (query) |
string(period) The time period for the date range, looking backwards from endOn (or today, if endOn is omitted), or forward from startOn . For example, to list the documents for the last 6 months, use ?period=P6m . |
type (query) |
array[string] Match documents by document category. This matches any of the values in the | -seprated list. Note: type and category are mutually exclusive. Examples: * ?category=form1099Int' * ?category=form1099Int |
category (query) |
array[string] Match documents by document category. This matches any of the values in the | -seprated list. Note: type and category are mutually exclusive. Examples: * ?category=accountStatement' * ?category=accountStatement |
filter (query) |
string Optional filter criteria. See filtering. |
Try It
Example responses
200 Response
{
"_profile": "https://api.apiture.com/schemas/documents/documents/v1.0.0/profile.json",
"name": "documents",
"start": 10,
"limit": 10,
"count": 67,
"_links": {
"self": {
"href": "/documents/documents?start=10&limit=10"
},
"first": {
"href": "/documents/documents?start=0&limit=10"
},
"next": {
"href": "/documents/documents?start=20&limit=10"
},
"collection": {
"href": "/documents/documents"
}
},
"_embedded": {
"items": [
{
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"_profile": "https://api.apiture.com/schemas/documents/document/v1.0.0/profile.json",
"_links": {
"self": {
"href": "/documents/documents/0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:document": {
"href": "/some/expiring/download/location"
},
"apiture:account": {
"href": "/accounts/accounts/{accountId}"
}
},
"name": "532a0e1b82f592e40803-1099-INT.pdf",
"label": "1099 INT for Account ******3210 for 2019",
"typeName": "form1099Int",
"categoryName": "taxForm",
"contentType": "application/pdf",
"startOn": "2020-01-01",
"endOn": "2020-01-31",
"createdAt": "2020-02-01T00:01:38.375Z",
"account": {
"name": "Personal Savings",
"title": "John Smith",
"institutionName": "3rd Party Bank",
"routingNumber": "021000021",
"accountNumbers": {
"masked": "******3210"
}
}
},
{
"_id": "83babc98-f0bf-4c14-b7d6-4cb1539e2b47",
"_profile": "https://api.apiture.com/schemas/documents/document/v1.0.0/profile.json",
"_links": {
"self": {
"href": "/documents/documents/83babc98-f0bf-4c14-b7d6-4cb1539e2b47"
},
"apiture:document": {
"href": "/some/expiring/download/location"
},
"apiture:account": {
"href": "/accounts/accounts/{accountId}"
}
},
"name": "532a0e1b82f592e40803-1099-SA.pdf",
"label": "1099 SA for Account ******3210 for 2019",
"typeName": "form1099Sa",
"categoryName": "taxForm",
"contentType": "application/pdf",
"startOn": "2020-01-01",
"endOn": "2020-01-31",
"createdAt": "2020-02-01T00:01:38.375Z",
"account": {
"name": "Personal Savings",
"title": "John Smith",
"institutionName": "3rd Party Bank",
"routingNumber": "021000021",
"accountNumbers": {
"masked": "******3210"
}
}
}
]
}
}
Responses
Status | Description |
---|---|
200 | OK |
OK | |
Schema: documents |
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 |
getDocument
Code samples
# You can also use wget
curl -X GET https://api.devbank.apiture.com/documents/documents/{documentId} \
-H 'Accept: application/hal+json' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
GET https://api.devbank.apiture.com/documents/documents/{documentId} 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/documents/documents/{documentId}',
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/documents/documents/{documentId}',
{
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/documents/documents/{documentId}',
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/documents/documents/{documentId}', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.devbank.apiture.com/documents/documents/{documentId}");
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/documents/documents/{documentId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Fetch a representation of this document
GET /documents/{documentId}
Return a HAL representation of this document resource. This returns a JSON object which describes the document, its category, type. The document representation includes a n apiture:content
link to the getContent
operation for downloading the document's content.
Parameters
Parameter | Description |
---|---|
documentId (path) |
string (required) The unique identifier of this document. This is an opaque string. |
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
Example responses
200 Response
{
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"_profile": "https://api.apiture.com/schemas/documents/document/v1.0.0/profile.json",
"_links": {
"self": {
"href": "/documents/documents/0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:content": {
"href": "/documents/documents/0399abed-fd3d-4830-a88b-30f38b8a365c/content"
},
"apiture:account": {
"href": "/accounts/account/100a6159-7811-4986-b1df-99555b059757"
}
},
"name": "532a0e1b82f592e40803-1099-INT.pdf",
"label": "1099 INT for Account ******3210 for 2019",
"contentType": "application/pdf",
"typeName": "form1099Int",
"categoryName": "taxForm",
"startOn": "2020-01-01",
"endOn": "2020-01-31",
"createdAt": "2020-02-01T00:01:38.375Z",
"type": {
"name": "accountStatement",
"label": "Account Statement",
"period": "P1M",
"category": {
"name": "accountStatements",
"label": "Account Statements"
}
},
"account": {
"name": "Personal Savings",
"title": "John Smith",
"institutionName": "3rd Party Bank",
"routingNumber": "021000021",
"accountNumbers": {
"masked": "******3210"
}
}
}
Responses
Status | Description |
---|---|
200 | OK |
OK | |
Schema: document |
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 document resource at the specified {documentId} . 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 |
Response Headers
Status | Description |
---|---|
200 | ETag string |
The ETag response header specifies an entity tag which must be provided in an If-Match request header for PUT or PATCH operations which update this document resource. |
getContent
Code samples
# You can also use wget
curl -X GET https://api.devbank.apiture.com/documents/documents/{documentId}/content \
-H 'Accept: */*' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
GET https://api.devbank.apiture.com/documents/documents/{documentId}/content HTTP/1.1
Host: api.devbank.apiture.com
Accept: */*
var headers = {
'Accept':'*/*',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.devbank.apiture.com/documents/documents/{documentId}/content',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const headers = {
'Accept':'*/*',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.devbank.apiture.com/documents/documents/{documentId}/content',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => '*/*',
'API-Key' => 'API_KEY',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.get 'https://api.devbank.apiture.com/documents/documents/{documentId}/content',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': '*/*',
'API-Key': 'API_KEY',
'Authorization': 'Bearer {access-token}'
}
r = requests.get('https://api.devbank.apiture.com/documents/documents/{documentId}/content', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.devbank.apiture.com/documents/documents/{documentId}/content");
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{"*/*"},
"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/documents/documents/{documentId}/content", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Return the raw content of the document
GET /documents/{documentId}/content
Return the raw content of the document as a stream of bytes. This operation normally returns a 302 to redirect the caller to the actual URL where the file content is available.
Parameters
Parameter | Description |
---|---|
documentId (path) |
string (required) The unique identifier of this document. This is an opaque string. |
Try It
Example responses
200 Response
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 |
---|---|
200 | OK |
OK | |
Schema: string |
Status | Description |
---|---|
302 | Found |
Found. The URL where the file's content is located. This is the most likely response. |
Status | Description |
---|---|
404 | Not Found |
Not Found. There is no such document resource at the specified {documentId} . The _error field in the response will contain details about the request error. | |
Schema: errorResponse |
Response Headers
Status | Description |
---|---|
200 | Content-Type string |
The media type of the file content. | |
302 | Location string |
The URL where the file's content is located. |
Statement
getStatements
Code samples
# You can also use wget
curl -X GET https://api.devbank.apiture.com/documents/statements \
-H 'Accept: application/hal+json' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
GET https://api.devbank.apiture.com/documents/statements 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/documents/statements',
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/documents/statements',
{
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/documents/statements',
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/documents/statements', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.devbank.apiture.com/documents/statements");
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/documents/statements", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Return a collection of statements
GET /statements
Return a paginated filterable collection of account activity statements. The links in the response include pagination links. This operation is a convenience for getDocuments?type=accountStatement
. Thus, this operation does not support passing or augmenting the type
or category
query parameters or collection filters as allowed by that operation. Statements may be filtered using the ?startOn
, ?endOn
and period
query parameters of that operation. Note that the items in the response are summary document representations, and the nested document resources are located at /documents/{documentId}
.
Parameters
Parameter | Description |
---|---|
start (query) |
integer(int64) The zero-based index of the first statement item to include in this page. The default 0 denotes the beginning of the collection. |
limit (query) |
integer(int32) The maximum number of statement representations to return in this page. Default: 100 |
accounts (query) |
array[string] An optional pipe ( | ) separated list of one or more account IDs. Note: these are not account numbers but are the unique resource _id of the corresponding financial institution accounts via the Accounts API. The user must have access to the corresponding accounts in order to view documents associated with the accounts. If omitted, the listed documents may match any account the user is entitled to view, be account-specific documents. Examples:?account=e486ebd0-167d-4fc6-8fd0-0edf275ef431 ?account=e486ebd0-167d-4fc6-8fd0-0edf275ef431|43ae102e-4cec-488f-a3c5-7f15c3659960 |
startOn (query) |
string(date) The start date of the query range. May be combined with endOn or period but not both. |
endOn (query) |
string(date) The end date of the query range. May be combined with endOn or period but not both. |
period (query) |
string(period) The time period for the date range, looking backwards from endOn (or today, if endOn is omitted), or forward from startOn . For example, to list the statements for the last 6 months, use ?period=P6m . |
filter (query) |
string Optional filter criteria. See filtering. |
Try It
Example responses
200 Response
{
"_profile": "https://api.apiture.com/schemas/documents/documents/v1.0.0/profile.json",
"name": "documents",
"start": 10,
"limit": 10,
"count": 67,
"_links": {
"self": {
"href": "/documents/documents?start=10&limit=10"
},
"first": {
"href": "/documents/documents?start=0&limit=10"
},
"next": {
"href": "/documents/documents?start=20&limit=10"
},
"collection": {
"href": "/documents/documents"
}
},
"_embedded": {
"items": [
{
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"_profile": "https://api.apiture.com/schemas/documents/document/v1.0.0/profile.json",
"_links": {
"self": {
"href": "/documents/documents/0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:document": {
"href": "/some/expiring/download/location"
},
"apiture:account": {
"href": "/accounts/accounts/{accountId}"
}
},
"name": "532a0e1b82f592e40803-1099-INT.pdf",
"label": "1099 INT for Account ******3210 for 2019",
"typeName": "form1099Int",
"categoryName": "taxForm",
"contentType": "application/pdf",
"startOn": "2020-01-01",
"endOn": "2020-01-31",
"createdAt": "2020-02-01T00:01:38.375Z",
"account": {
"name": "Personal Savings",
"title": "John Smith",
"institutionName": "3rd Party Bank",
"routingNumber": "021000021",
"accountNumbers": {
"masked": "******3210"
}
}
},
{
"_id": "83babc98-f0bf-4c14-b7d6-4cb1539e2b47",
"_profile": "https://api.apiture.com/schemas/documents/document/v1.0.0/profile.json",
"_links": {
"self": {
"href": "/documents/documents/83babc98-f0bf-4c14-b7d6-4cb1539e2b47"
},
"apiture:document": {
"href": "/some/expiring/download/location"
},
"apiture:account": {
"href": "/accounts/accounts/{accountId}"
}
},
"name": "532a0e1b82f592e40803-1099-SA.pdf",
"label": "1099 SA for Account ******3210 for 2019",
"typeName": "form1099Sa",
"categoryName": "taxForm",
"contentType": "application/pdf",
"startOn": "2020-01-01",
"endOn": "2020-01-31",
"createdAt": "2020-02-01T00:01:38.375Z",
"account": {
"name": "Personal Savings",
"title": "John Smith",
"institutionName": "3rd Party Bank",
"routingNumber": "021000021",
"accountNumbers": {
"masked": "******3210"
}
}
}
]
}
}
Responses
Status | Description |
---|---|
200 | OK |
OK | |
Schema: documents |
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 |
Document Category
getDocumentCategories
Code samples
# You can also use wget
curl -X GET https://api.devbank.apiture.com/documents/documentCategories \
-H 'Accept: application/hal+json'
GET https://api.devbank.apiture.com/documents/documentCategories HTTP/1.1
Host: api.devbank.apiture.com
Accept: application/hal+json
var headers = {
'Accept':'application/hal+json'
};
$.ajax({
url: 'https://api.devbank.apiture.com/documents/documentCategories',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const headers = {
'Accept':'application/hal+json'
};
fetch('https://api.devbank.apiture.com/documents/documentCategories',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/hal+json'
}
result = RestClient.get 'https://api.devbank.apiture.com/documents/documentCategories',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/hal+json'
}
r = requests.get('https://api.devbank.apiture.com/documents/documentCategories', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.devbank.apiture.com/documents/documentCategories");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/hal+json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://api.devbank.apiture.com/documents/documentCategories", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Return a list of document categories
GET /documentCategories
Return a list of document categories.
Try It
Example responses
200 Response
{
"_profile": "https://api.apiture.com/schemas/documents/documentCategories/v1.0.0/profile.json",
"items": [
{
"name": "agreements",
"label": "Account Agreements",
"_profile": "https://api.apiture.com/schemas/documents/documentCategory/v1.0.0/profile.json"
},
{
"name": "taxForm",
"label": "Tax Forms",
"_profile": "https://api.apiture.com/schemas/documents/documentCategory/v1.0.0/profile.json"
}
],
"_links": {
"self": {
"href": "/documents/documentCategories"
}
}
}
Responses
Status | Description |
---|---|
200 | OK |
OK | |
Schema: documentCategories |
Document Type
getDocumentTypes
Code samples
# You can also use wget
curl -X GET https://api.devbank.apiture.com/documents/documentTypes \
-H 'Accept: application/hal+json'
GET https://api.devbank.apiture.com/documents/documentTypes HTTP/1.1
Host: api.devbank.apiture.com
Accept: application/hal+json
var headers = {
'Accept':'application/hal+json'
};
$.ajax({
url: 'https://api.devbank.apiture.com/documents/documentTypes',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const headers = {
'Accept':'application/hal+json'
};
fetch('https://api.devbank.apiture.com/documents/documentTypes',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/hal+json'
}
result = RestClient.get 'https://api.devbank.apiture.com/documents/documentTypes',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/hal+json'
}
r = requests.get('https://api.devbank.apiture.com/documents/documentTypes', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.devbank.apiture.com/documents/documentTypes");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/hal+json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://api.devbank.apiture.com/documents/documentTypes", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Return a list of document types
GET /documentTypes
Return a list of document types.
Try It
Example responses
200 Response
{
"_profile": "https://api.apiture.com/schemas/documents/documentTypes/v1.0.0/profile.json",
"items": [
{
"name": "accountStatement",
"label": "Account Statement",
"period": "P1M",
"category": {
"name": "accountStatements",
"label": "Account Statements"
},
"_profile": "https://api.apiture.com/schemas/documents/documentType/v1.0.0/profile.json"
},
{
"name": "form1099Int",
"label": "Form 1099-INT",
"period": "P1Y",
"category": {
"name": "taxStatements",
"label": "Tax Statements"
},
"_profile": "https://api.apiture.com/schemas/documents/documentType/v1.0.0/profile.json"
}
],
"_links": {
"self": {
"href": "/documents/documentTypes"
}
}
}
Responses
Status | Description |
---|---|
200 | OK |
OK | |
Schema: documentTypes |
Schemas
documentCategory
{
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"name": "taxForms",
"label": "Tax Forms",
"content": "user",
"_profile": "https://api.apiture.com/schemas/documents/documentCategory/v1.0.0/profile.json"
}
Document Category (v1.0.0)
Representation of document category resources.
Properties
Name | Description |
---|---|
name | string The name of this document category. This is an identifier. This corresponds to an item in the getDocumentCategories response.
pattern: ^[a-z][a-zA-Z0-9_$]{1,48}$
|
label | string The human-presentable label of this document category. |
context | documentContext The type of resource that documents in this category are associated with. |
documentContext
"account"
Document Context (v1.0.0)
The type of resource that documents in this category are associated with.
documentContext
strings may have one of the following enumerated values values (described by the named documentContext)
Value | Description |
---|---|
account | Account: The document is associated with the account referenced by the `apiture:account` link. |
organization | organization: The document is associated with an organization referenced by the `apiture:organization` link. |
user | Account: The document is associated with a user referenced by the `apiture:user` link. |
Type: string
Enumerated values: account
organization
user
documentCategories
{
"_profile": "https://api.apiture.com/schemas/documents/documentCategories/v1.0.0/profile.json",
"items": [
{
"name": "agreements",
"label": "Account Agreements",
"_profile": "https://api.apiture.com/schemas/documents/documentCategory/v1.0.0/profile.json"
},
{
"name": "taxForm",
"label": "Tax Forms",
"_profile": "https://api.apiture.com/schemas/documents/documentCategory/v1.0.0/profile.json"
}
],
"_links": {
"self": {
"href": "/documents/documentCategories"
}
}
}
Document Categories (v1.0.0)
Array of document categories.
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 | [documentCategory] An array containing document category items. |
documentType
{
"name": "accountStatement",
"label": "Account Statement",
"period": "P1M",
"category": {
"name": "accountStatements",
"label": "Account Statements"
},
"_profile": "https://api.apiture.com/schemas/documents/documentType/v1.0.0/profile.json"
}
Document Type (v1.0.0)
Representation of document type resources.
Properties
Name | Description |
---|---|
name | string The name of this document type. This corresponds to an item in the getDocumentTypes response.
pattern: ^[a-z][a-zA-Z0-9_$]{1,48}$
|
label | string The human-presentable label of this document category. |
period | string(period) The document issue period document for documents issued on a regular periodic basis. For example, account statements are issued monthly ( P1M ), and tax statements annually (`P1Y'). If empty, the documents are issued on an ad-hoc schedule, such as in response to banking or account activity.
|
category | documentCategory This document type's category. |
documentTypes
{
"_profile": "https://api.apiture.com/schemas/documents/documentTypes/v1.0.0/profile.json",
"items": [
{
"name": "accountStatement",
"label": "Account Statement",
"period": "P1M",
"category": {
"name": "accountStatements",
"label": "Account Statements"
},
"_profile": "https://api.apiture.com/schemas/documents/documentType/v1.0.0/profile.json"
},
{
"name": "form1099Int",
"label": "Form 1099-INT",
"period": "P1Y",
"category": {
"name": "taxStatements",
"label": "Tax Statements"
},
"_profile": "https://api.apiture.com/schemas/documents/documentType/v1.0.0/profile.json"
}
],
"_links": {
"self": {
"href": "/documents/documentTypes"
}
}
}
Document Type Collection (v1.0.0)
Collection of document types. The items in the collection are ordered in the _embedded.items
array; the name
is documentTypes
. 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 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 | [documentType] An array containing a page of document type items. |
summaryDocument
{
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"_profile": "https://api.apiture.com/schemas/documents/document/v1.0.0/profile.json",
"_links": {
"self": {
"href": "/documents/documents/0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:content": {
"href": "/documents/documents/0399abed-fd3d-4830-a88b-30f38b8a365c/content"
},
"apiture:account": {
"documents": "/accounts/accounts/{accountId}"
}
},
"name": "532a0e1b82f592e40803-1099-INT.pdf",
"label": "1099 INT for Account ******3210 for 2019",
"contentType": "application/pdf",
"typeName": "form1099Int",
"categoryName": "taxForm",
"startOn": "2020-01-01",
"endOn": "2020-01-31",
"createdAt": "2020-02-01T00:01:38.375Z",
"period": "P1Y",
"account": {
"name": "Personal Savings",
"title": "John Smith",
"institutionName": "3rd Party Bank",
"routingNumber": "021000021",
"accountNumbers": {
"masked": "******3210"
}
}
}
Document Summary (v1.0.0)
Summary representation of a document resource in documents 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. This object and contains a link (apiture:document
) to the downloadable document document, typically PDF.
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 document name. read-only
|
label | string A more descriptive label for the document. read-only
|
typeName | string The name of the document type read-only
|
categoryName | string The name of the document category. read-only
|
contentType | string The media type for this file. This is document/pdf (Portable Document Format) for most document types. For text documents, the content type should include the text encoding; if omitted, the encoding type is assumed to be utf-8.
read-only
|
startOn | string(date) The inclusive beginning date in RFC 3339 YYYY-MM-DD format for this document. For example, for statements or other recurring documents, this is the beginning of the statement period. The document type indicates if the the document is recurring/periodical.
read-only
|
endOn | string(date) The inclusive end date in RFC 3339 YYYY-MM-DD format for this document. For example, for statements or other recurring documents, this is the end of the statement period. The document type indicates if the the document is recurring/periodical.
read-only
|
createdAt | string(date-time) The date-time of the document's creation, in RFC 3339 YYYY-MM-DDThh:mm:ss.sssZ format.
|
account | accountIdentification Identifying attributes of the account that this document pertains to. If omitted, the document is not associated with an account. read-only
|
_id | string The unique identifier for this document resource. This is an immutable opaque string. read-only
|
document
{
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"_profile": "https://api.apiture.com/schemas/documents/document/v1.0.0/profile.json",
"_links": {
"self": {
"href": "/documents/documents/0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:content": {
"href": "/documents/documents/0399abed-fd3d-4830-a88b-30f38b8a365c/content"
},
"apiture:account": {
"href": "/accounts/account/100a6159-7811-4986-b1df-99555b059757"
}
},
"name": "532a0e1b82f592e40803-1099-INT.pdf",
"label": "1099 INT for Account ******3210 for 2019",
"contentType": "application/pdf",
"typeName": "form1099Int",
"categoryName": "taxForm",
"startOn": "2020-01-01",
"endOn": "2020-01-31",
"createdAt": "2020-02-01T00:01:38.375Z",
"type": {
"name": "accountStatement",
"label": "Account Statement",
"period": "P1M",
"category": {
"name": "accountStatements",
"label": "Account Statements"
}
},
"account": {
"name": "Personal Savings",
"title": "John Smith",
"institutionName": "3rd Party Bank",
"routingNumber": "021000021",
"accountNumbers": {
"masked": "******3210"
}
}
}
Document (v1.0.0)
Representation of document metadata. The links on a document include the content download URL, and for documents associated with an account, organization, or user, a link to the assocuated account organization, or user resource.
Links
Response and request bodies using this document
schema may contain the following links:
Rel | Summary | Method |
---|---|---|
self | Fetch a representation of this document | GET |
apiture:content | Return the raw content of the document | GET |
apiture:account | Account associated with this document | GET |
apiture:user | User associated with this document | GET |
apiture:organization | Organization associated with this document | GET |
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 document name. read-only
|
label | string A more descriptive label for the document. read-only
|
typeName | string The name of the document type read-only
|
categoryName | string The name of the document category. read-only
|
contentType | string The media type for this file. This is document/pdf (Portable Document Format) for most document types. For text documents, the content type should include the text encoding; if omitted, the encoding type is assumed to be utf-8.
read-only
|
startOn | string(date) The inclusive beginning date in RFC 3339 YYYY-MM-DD format for this document. For example, for statements or other recurring documents, this is the beginning of the statement period. The document type indicates if the the document is recurring/periodical.
read-only
|
endOn | string(date) The inclusive end date in RFC 3339 YYYY-MM-DD format for this document. For example, for statements or other recurring documents, this is the end of the statement period. The document type indicates if the the document is recurring/periodical.
read-only
|
createdAt | string(date-time) The date-time of the document's creation, in RFC 3339 YYYY-MM-DDThh:mm:ss.sssZ format.
|
account | accountIdentification Identifying attributes of the account that this document pertains to. If omitted, the document is not associated with an account. read-only
|
_id | string The unique identifier for this document resource. This is an immutable opaque string. read-only
|
type | documentType The document type, which also includes the document's category. |
documents
{
"_profile": "https://api.apiture.com/schemas/documents/documents/v1.0.0/profile.json",
"name": "documents",
"start": 10,
"limit": 10,
"count": 67,
"_links": {
"self": {
"href": "/documents/documents?start=10&limit=10"
},
"first": {
"href": "/documents/documents?start=0&limit=10"
},
"next": {
"href": "/documents/documents?start=20&limit=10"
},
"collection": {
"href": "/documents/documents"
}
},
"_embedded": {
"items": [
{
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"_profile": "https://api.apiture.com/schemas/documents/document/v1.0.0/profile.json",
"_links": {
"self": {
"href": "/documents/documents/0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:document": {
"href": "/some/expiring/download/location"
},
"apiture:account": {
"href": "/accounts/accounts/{accountId}"
}
},
"name": "532a0e1b82f592e40803-1099-INT.pdf",
"label": "1099 INT for Account ******3210 for 2019",
"typeName": "form1099Int",
"categoryName": "taxForm",
"contentType": "application/pdf",
"startOn": "2020-01-01",
"endOn": "2020-01-31",
"createdAt": "2020-02-01T00:01:38.375Z",
"account": {
"name": "Personal Savings",
"title": "John Smith",
"institutionName": "3rd Party Bank",
"routingNumber": "021000021",
"accountNumbers": {
"masked": "******3210"
}
}
},
{
"_id": "83babc98-f0bf-4c14-b7d6-4cb1539e2b47",
"_profile": "https://api.apiture.com/schemas/documents/document/v1.0.0/profile.json",
"_links": {
"self": {
"href": "/documents/documents/83babc98-f0bf-4c14-b7d6-4cb1539e2b47"
},
"apiture:document": {
"href": "/some/expiring/download/location"
},
"apiture:account": {
"href": "/accounts/accounts/{accountId}"
}
},
"name": "532a0e1b82f592e40803-1099-SA.pdf",
"label": "1099 SA for Account ******3210 for 2019",
"typeName": "form1099Sa",
"categoryName": "taxForm",
"contentType": "application/pdf",
"startOn": "2020-01-01",
"endOn": "2020-01-31",
"createdAt": "2020-02-01T00:01:38.375Z",
"account": {
"name": "Personal Savings",
"title": "John Smith",
"institutionName": "3rd Party Bank",
"routingNumber": "021000021",
"accountNumbers": {
"masked": "******3210"
}
}
}
]
}
}
Document Collection (v1.0.0)
Collection of documents. The items in the collection are ordered in the _embedded.items
array; the name
is documents
. 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 | [summaryDocument] An array containing a page of document items. |
_profile | string(uri) The URI of a resource profile which describes the representation. |
_error | error An object which describes an error. This value is omitted if the operation succeeded without error. |
count | integer The number of items in the collection. This value is optional and may be omitted if the count is not computable efficiently. If a filter is applied to the collection (either implicitly or explicitly), the count, if present, indicates the number of items that satisfy the filter. |
start | integer The start index of this page of items. |
limit | integer The maximum number of items per page. |
name | string The name of the collection. |
root
{
"id": "apiName",
"name": "API name",
"apiVersion": "1.0.0",
"_profile": "https://production.api.apiture.com/schemas/common/root/v2.0.0/profile.json",
"_links": {}
}
API Root
A HAL response, with hypermedia _links
for the top-level resources and operations in API.
Properties
Name | Description |
---|---|
_links | links An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
|
_embedded | object An optional map of nested resources, mapping each nested resource name to a nested resource representation. |
_profile | string(uri) The URI of a resource profile which describes the representation. |
_error | error An object which describes an error. This value is omitted if the operation succeeded without error. |
_id | string This API's unique ID. read-only
|
name | string This API's name. |
apiVersion | string This API's version. |
errorResponse
{
"_profile": "https://api.apiture.com/schemas/common/errorResponse/v2.0.0/profile.json",
"_error": {
"_id": "2eae46e1-575c-4d69-8a8f-0a7b0115a4b3",
"message": "The value for deposit must be greater than 0.",
"statusCode": 422,
"type": "positiveNumberRequired",
"attributes": {
"value": -125.5
},
"remediation": "Provide a value which is greater than 0",
"occurredAt": "2018-01-25T05:50:52.375Z",
"_links": {
"describedby": {
"href": "https://api.apiture.com/errors/positiveNumberRequired"
}
},
"_embedded": {
"errors": []
}
}
}
Error Response
Describes an error response, typically returned on 4xx or 5xx errors from API operations. The _error
object contains the error details.
Properties
Name | Description |
---|---|
_links | links An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
|
_embedded | object An optional map of nested resources, mapping each nested resource name to a nested resource representation. |
_profile | string(uri) The URI of a resource profile which describes the representation. |
_error | error An object which describes an error. This value is omitted if the operation succeeded without error. |
abstractResource
{
"_profile": "{uri of resource profile.json}",
"_links": {
"self": {
"href": "{uri of current resource}"
}
}
}
Abstract Resource
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. |
accountIdentification
{
"name": "My Premiere Savings",
"title": "John Smith",
"routingNumber": "021000021",
"accountNumbers": {
"masked": "*************3210"
},
"institutionName": "3rd Party Bank"
}
Account Identification
Properties which identify a specific account.
Properties
Name | Description |
---|---|
name | string The account name. |
title | string The title of the account. Traditionally, this is the name of the account holder. maxLength: 512
|
institutionName | string The name of the financial institution which manages the account. read-only
minLength: 2
maxLength: 128
|
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. read-only
minLength: 9
maxLength: 9
|
accountNumbers | accountNumbers The masked and full account numbers for this account. The full value only appears when ?unmasked=true is passed on the GET request.
read-only
|
collection
{
"_links": {
"property1": {
"href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
"title": "Applicant"
},
"property2": {
"href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
"title": "Applicant"
}
},
"_embedded": {},
"_profile": "http://example.com",
"_error": {
"_id": "2eae46e1575c0a7b0115a4b3",
"message": "Descriptive error message...",
"statusCode": 422,
"type": "errorType1",
"remediation": "Remediation string...",
"occurredAt": "2018-01-25T05:50:52.375Z",
"errors": [
{
"_id": "ccdbe2c5c938a230667b3827",
"message": "An optional embedded error"
},
{
"_id": "dbe9088dcfe2460f229338a3",
"message": "Another optional embedded error"
}
],
"_links": {
"describedby": {
"href": "https://developer.apiture.com/errors/errorType1"
}
}
},
"count": 0,
"start": 0,
"limit": 0,
"name": "string"
}
Collection
A collection of resources. This is an abstract model schema which is extended to define specific resource collections.
Properties
Name | Description |
---|---|
_links | links An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
|
_embedded | object An optional map of nested resources, mapping each nested resource name to a nested resource representation. |
_profile | string(uri) The URI of a resource profile which describes the representation. |
_error | error An object which describes an error. This value is omitted if the operation succeeded without error. |
count | integer The number of items in the collection. This value is optional and may be omitted if the count is not computable efficiently. If a filter is applied to the collection (either implicitly or explicitly), the count, if present, indicates the number of items that satisfy the filter. |
start | integer The start index of this page of items. |
limit | integer The maximum number of items per page. |
name | string The name of the collection. |
abstractRequest
{
"_profile": "{uri of resource profile.json}",
"_links": {
"self": {
"href": "{uri of current resource}"
}
}
}
Abstract Request
An abstract schema used to define other request-only schemas. This is a HAL resource representation, minus the _error
defined in abstractResource
.
Properties
Name | Description |
---|---|
_links | links An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
|
_embedded | object An optional map of nested resources, mapping each nested resource name to a nested resource representation. |
_profile | string(uri) The URI of a resource profile which describes the representation. |
error
{
"_id": "2eae46e1575c0a7b0115a4b3",
"message": "Descriptive error message...",
"statusCode": 422,
"type": "errorType1",
"remediation": "Remediation string...",
"occurredAt": "2018-01-25T05:50:52.375Z",
"errors": [
{
"_id": "ccdbe2c5c938a230667b3827",
"message": "An optional embedded error"
},
{
"_id": "dbe9088dcfe2460f229338a3",
"message": "Another optional embedded error"
}
],
"_links": {
"describedby": {
"href": "https://developer.apiture.com/errors/errorType1"
}
}
}
Error
Describes an error in an API request or in a service called via the API.
Properties
Name | Description |
---|---|
message | string (required) A localized message string describing the error condition. |
_id | string A unique identifier for this error instance. This may be used as a correlation ID with the root cause error (i.e. this ID may be logged at the source of the error). This is is an opaque string. read-only
|
statusCode | integer The HTTP status code associate with this error. minimum: 100
maximum: 599
|
type | string An error identifier which indicates the category of error and associate it with API support documentation or which the UI tier can use to render an appropriate message or hint. This provides a finer level of granularity than the statusCode . For example, instead of just 400 Bad Request, the type may be much more specific. such as integerValueNotInAllowedRange or numericValueExceedsMaximum or stringValueNotInAllowedSet .
|
occurredAt | string(date-time) An RFC 3339 UTC time stamp indicating when the error occurred. |
attributes | attributes Informative values or constraints which describe the error. For example, for a value out of range error, the attributes may specify the minimum and maximum values. This allows clients to present error messages as they see fit (the API does not assume the client/presentation tier). The set of attributes varies by error type .
|
remediation | string An optional localized string which provides hints for how the user or client can resolve the error. |
errors | [error] An optional array of nested error objects. This property is not always present. |
_links | links An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
|
accountNumbers
{
"masked": "*************3210",
"full": "9876543210"
}
Account Numbers
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
|
attributes
{
"property1": {},
"property2": {}
}
Attributes
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. |
links
{
"property1": {
"href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
"title": "Applicant"
},
"property2": {
"href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
"title": "Applicant"
}
}
Links
An optional map of links, mapping each link relation to a link object. This model defines the _links
object of HAL representations.
Properties
Name | Description |
---|---|
additionalProperties | link Describes a hypermedia link within a _links object in HAL representations. In Apiture APIs, links are HAL links, but Apiture APIs do not use the name or hreflang properties of HAL. Apiture links may include a method property.
|
attributeValue
{}
Attribute Value
The data associated with this attribute.
Properties
link
{
"href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
"title": "Applicant"
}
Link
Describes a hypermedia link within a _links
object in HAL representations. In Apiture APIs, links are HAL links, but Apiture APIs do not use the name
or hreflang
properties of HAL. Apiture links may include a method
property.
Properties
Name | Description |
---|---|
href | string(uri) (required) The URI or URI template for the resource/operation this link refers to. |
type | string The media type for the resource. |
templated | boolean If true, the link's href is a URI template. |
title | string An optional human-readable localized title for the link. |
deprecation | string(uri) If present, the containing link is deprecated and the value is a URI which provides human-readable text information about the deprecation. |
profile | string(uri) The URI of a profile document, a JSON document which describes the target resource/operation. |