External Account Verification v0.10.1
Scroll down for code samples, example requests and responses. Select a language for code samples from the tabs above or the mobile navigation menu.
This API allows financial institutions to verify their customer's external accounts. An external account is defined as a customer's account held at a different financial institution.
Two sets of operations can be utilized to accomplish the verification of an external account: instant verification and micro-deposit. Both operations are asynchronous, which means that upon resource creation the API will return a resource with state
equal to pending
. Once the verification completes, the state
will be updated to verified
or failed
to indicate the result of the operation.
Instant Account Verification (IAV)
This process verifies accounts held at a financial institution within seconds by authenticating via user account credentials with the external financial institution and multi-factor challenges when available.
Micro-Deposit Verification (MD)
This is an alternative verification method for institutions that don't support IAV. When this verification is initiated, Apiture creates two deposits (typically less than $0.99) to the customer account to be verified, followed by a debit which balances those deposits. Once the transactions post to the user account, the account owner should find the deposits on their external account and submit the two amounts to the micro-deposits resources. This verifies that the user has ownership or access to the external account. Please note that the micro-deposit transactions may take up to two business days to be reflected on the external financial institution.
Download OpenAPI Definition (YAML)
Base URLs:
Authentication
- API Key (
apiKey
)- header parameter: API-Key
- API Key based authentication. Each client application must pass its private, unique API key, allocated in the developer portal, via the
API-Key: {api-key}
request header.
- OAuth2 authentication (
accessToken
)- OAuth2 client access token authentication. The client authenticates against the server at
authorizationUrl
, passing the client's privateclientId
(and optionalclientSecret
) as part of this flow. The client obtains an access token from the server attokenUrl
. It then passes the received access token via theAuthorization: Bearer {access-token}
header in subsequent API calls. The authorization process also returns a refresh token which the client should use to renew the access token before it expires. - Flow:
authorizationCode
- Authorization URL = https://auth.apiture.com/oauth2/authorize
- Token URL = http://auth.apiture.com/auth/oauth2/token
- OAuth2 client access token authentication. The client authenticates against the server at
Scope | Scope Description |
---|---|
banking/read |
Read access to (behavior TBD). |
banking/write |
Write (update) access to (behavior TBD). |
banking/delete |
Delete access to (behavior TBD). |
banking/full |
Full access to (behavior TBD). |
API
Operations which describe this API
getApi
Code samples
# You can also use wget
curl -X GET /accountVerifications/ \
-H 'Accept: application/hal+json' \
-H 'API-Key: API_KEY'
GET /accountVerifications/ HTTP/1.1
Accept: application/hal+json
var headers = {
'Accept':'application/hal+json',
'API-Key':'API_KEY'
};
$.ajax({
url: '/accountVerifications/',
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('/accountVerifications/',
{
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 '/accountVerifications/',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/hal+json',
'API-Key': 'API_KEY'
}
r = requests.get('/accountVerifications/', params={
}, headers = headers)
print r.json()
URL obj = new URL("/accountVerifications/");
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", "/accountVerifications/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Top-level resources and operations in this API
GET /
Return links to the top-level resources and operations in this API.
Example responses
200 Response
{
"id": "apiName",
"name": "API name",
"apiVersion": "1.0.0",
"_profile": "https://api.apiture.com/schemas/common/root/v1.0.0/profile.json",
"_links": {}
}
Responses
Status | Description |
---|---|
200 | OK |
OK | |
Schema: root |
getApiDoc
Code samples
# You can also use wget
curl -X GET /accountVerifications/apiDoc \
-H 'Accept: application/json' \
-H 'API-Key: API_KEY'
GET /accountVerifications/apiDoc HTTP/1.1
Accept: application/json
var headers = {
'Accept':'application/json',
'API-Key':'API_KEY'
};
$.ajax({
url: '/accountVerifications/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('/accountVerifications/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 '/accountVerifications/apiDoc',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'API-Key': 'API_KEY'
}
r = requests.get('/accountVerifications/apiDoc', params={
}, headers = headers)
print r.json()
URL obj = new URL("/accountVerifications/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", "/accountVerifications/apiDoc", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Return API definition document
GET /apiDoc
Return the OpenAPI document that describes this API.
Example responses
200 Response
{}
Responses
Status | Description |
---|---|
200 | OK |
OK | |
Schema: Inline |
Response Schema
Account Verification
Creation and retrieval of account verifications
getMicroDepositVerifications
Code samples
# You can also use wget
curl -X GET /accountVerifications/microDepositVerifications \
-H 'Accept: application/hal+json' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
GET /accountVerifications/microDepositVerifications HTTP/1.1
Accept: application/hal+json
var headers = {
'Accept':'application/hal+json',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: '/accountVerifications/microDepositVerifications',
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('/accountVerifications/microDepositVerifications',
{
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 '/accountVerifications/microDepositVerifications',
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('/accountVerifications/microDepositVerifications', params={
}, headers = headers)
print r.json()
URL obj = new URL("/accountVerifications/microDepositVerifications");
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", "/accountVerifications/microDepositVerifications", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Return a collection of micro-deposit verification resources
GET /microDepositVerifications
Return a paginated sortable filterable searchable collection of micro-deposit verifications. The links in the response include pagination links.
Parameters
Parameter | Description |
---|---|
start (query) |
integer(int64) The zero-based index of the first institution item to include in this page. The default 0 denotes the beginning of the collection. |
limit (query) |
integer(int32) The maximum number of institution 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. |
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": {
"items": [
{
"_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": "2eae46e1-575c-4d69-8a8f-0a7b0115a4b3",
"message": "The value for deposit must be greater than 0.",
"statusCode": 422,
"type": "positiveNumberRequired",
"attributes": {
"value": -125.5
},
"remediation": "Provide a value which is greater than 0",
"occurredAt": "2018-01-25T05:50:52.375Z",
"_links": {
"describedby": {
"href": "https://developer.apiture.com/errors/positiveNumberRequired"
}
},
"_embedded": {
"errors": []
}
},
"_id": "string",
"state": "pending",
"completedAt": "2019-11-21T15:33:07Z",
"createdAt": "2019-11-21T15:33:07Z",
"stateMessages": [
{}
]
}
]
},
"_profile": "http://example.com",
"_error": {
"_id": "2eae46e1-575c-4d69-8a8f-0a7b0115a4b3",
"message": "The value for deposit must be greater than 0.",
"statusCode": 422,
"type": "positiveNumberRequired",
"attributes": {
"value": -125.5
},
"remediation": "Provide a value which is greater than 0",
"occurredAt": "2018-01-25T05:50:52.375Z",
"_links": {
"describedby": {
"href": "https://developer.apiture.com/errors/positiveNumberRequired"
}
},
"_embedded": {
"errors": []
}
},
"count": 0,
"start": 0,
"limit": 0,
"name": "string"
}
Responses
Status | Description |
---|---|
200 | OK |
OK | |
Schema: microDepositVerifications | |
400 | Bad Request |
Bad Request. One or more of the query parameters was not well formed. The _error field in the response will contain details about the request error. | |
Schema: errorResponse | |
422 | Unprocessable Entity |
Unprocessable Entity. One or more of the query parameters was well formed but otherwise invalid. The _error field in the response will contain details about the request error. | |
Schema: errorResponse |
createMicroDepositVerification
Code samples
# You can also use wget
curl -X POST /accountVerifications/microDepositVerifications \
-H 'Content-Type: application/hal+json' \
-H 'Accept: application/hal+json' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
POST /accountVerifications/microDepositVerifications HTTP/1.1
Content-Type: application/hal+json
Accept: application/hal+json
var headers = {
'Content-Type':'application/hal+json',
'Accept':'application/hal+json',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: '/accountVerifications/microDepositVerifications',
method: 'post',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const inputBody = '{
"routingNumber": "054100318",
"accountNumbers": {
"full": "7432172992"
}
}';
const headers = {
'Content-Type':'application/hal+json',
'Accept':'application/hal+json',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
fetch('/accountVerifications/microDepositVerifications',
{
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 '/accountVerifications/microDepositVerifications',
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('/accountVerifications/microDepositVerifications', params={
}, headers = headers)
print r.json()
URL obj = new URL("/accountVerifications/microDepositVerifications");
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", "/accountVerifications/microDepositVerifications", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Create a new micro-deposit verification resource
POST /microDepositVerifications
This operation is used to verify an account using micro-deposits. The verification must contain full unmasked account numbers.
Body parameter
{
"routingNumber": "054100318",
"accountNumbers": {
"full": "7432172992"
}
}
Parameters
Parameter | Description |
---|---|
body (body) |
createMicroDepositVerification (required) The data necessary to create a new account verification. |
Example responses
201 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": "2eae46e1-575c-4d69-8a8f-0a7b0115a4b3",
"message": "The value for deposit must be greater than 0.",
"statusCode": 422,
"type": "positiveNumberRequired",
"attributes": {
"value": -125.5
},
"remediation": "Provide a value which is greater than 0",
"occurredAt": "2018-01-25T05:50:52.375Z",
"_links": {
"describedby": {
"href": "https://developer.apiture.com/errors/positiveNumberRequired"
}
},
"_embedded": {
"errors": []
}
},
"_id": "string",
"state": "pending",
"completedAt": "2019-11-21T15:33:07Z",
"createdAt": "2019-11-21T15:33:07Z",
"stateMessages": [
{}
]
}
Responses
Status | Description |
---|---|
201 | Created |
Created | |
Schema: microDepositVerification | |
400 | Bad Request |
Bad Request. 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 | |
409 | Conflict |
Conflict. A conflict can occur for several reasons:
| |
Schema: error |
Response Headers
Status | Description |
---|---|
201 | Location string uri |
The URI of the new resource. If the URI begins with / it is relative to the API root context. Else, it is a full URI starting with scheme ://host . | |
201 | ETag string |
The ETag response header specifies an entity tag which must be provided in an If-Match request header for PUT or PATCH operations which update the resource. |
getMicroDepositVerification
Code samples
# You can also use wget
curl -X GET /accountVerifications/microDepositVerifications/{verificationId} \
-H 'Accept: application/hal+json' \
-H 'If-None-Match: string' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
GET /accountVerifications/microDepositVerifications/{verificationId} HTTP/1.1
Accept: application/hal+json
If-None-Match: string
var headers = {
'Accept':'application/hal+json',
'If-None-Match':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: '/accountVerifications/microDepositVerifications/{verificationId}',
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('/accountVerifications/microDepositVerifications/{verificationId}',
{
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 '/accountVerifications/microDepositVerifications/{verificationId}',
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('/accountVerifications/microDepositVerifications/{verificationId}', params={
}, headers = headers)
print r.json()
URL obj = new URL("/accountVerifications/microDepositVerifications/{verificationId}");
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", "/accountVerifications/microDepositVerifications/{verificationId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Fetch a representation of this micro-deposit verification resource
GET /microDepositVerifications/{verificationId}
Return a HAL representation of this account verification resource.
Parameters
Parameter | Description |
---|---|
verificationId (path) |
string (required) The unique identifier of this account verificaton. This is an opaque string. |
If-None-Match (header) |
string The entity tag that was returned in the ETag response. If the resource's current entity tag matches, the GET will return 304 (Not Modified) and no response body, else the resource representation will be returned. |
Example responses
200 Response
{
"_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": "2eae46e1-575c-4d69-8a8f-0a7b0115a4b3",
"message": "The value for deposit must be greater than 0.",
"statusCode": 422,
"type": "positiveNumberRequired",
"attributes": {
"value": -125.5
},
"remediation": "Provide a value which is greater than 0",
"occurredAt": "2018-01-25T05:50:52.375Z",
"_links": {
"describedby": {
"href": "https://developer.apiture.com/errors/positiveNumberRequired"
}
},
"_embedded": {
"errors": []
}
},
"_id": "string",
"state": "pending",
"completedAt": "2019-11-21T15:33:07Z",
"createdAt": "2019-11-21T15:33:07Z",
"stateMessages": [
{}
]
}
Responses
Status | Description |
---|---|
200 | OK |
OK | |
Schema: microDepositVerification | |
304 | Not Modified |
Not Modified. The resource has not been modified since it was last fetched. | |
404 | Not Found |
Not Found. There is no such account verification resource at the specified {verificationId} The _error field in the response will contain details about the request error. | |
Schema: error |
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 institution resource. |
verifyMicroDepositAmounts
Code samples
# You can also use wget
curl -X POST /accountVerifications/microDepositVerifications/{verificationId} \
-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}'
POST /accountVerifications/microDepositVerifications/{verificationId} HTTP/1.1
Content-Type: application/hal+json
Accept: application/hal+json
If-Match: string
var headers = {
'Content-Type':'application/hal+json',
'Accept':'application/hal+json',
'If-Match':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: '/accountVerifications/microDepositVerifications/{verificationId}',
method: 'post',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const inputBody = '{
"amounts": [
{
"value": ".02",
"currency": "USD",
"baseType": "credit"
},
{
"value": ".04",
"currency": "USD",
"baseType": "credit"
},
{
"value": ".06",
"currency": "USD",
"baseType": "debit"
}
]
}';
const headers = {
'Content-Type':'application/hal+json',
'Accept':'application/hal+json',
'If-Match':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
fetch('/accountVerifications/microDepositVerifications/{verificationId}',
{
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',
'If-Match' => 'string',
'API-Key' => 'API_KEY',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.post '/accountVerifications/microDepositVerifications/{verificationId}',
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.post('/accountVerifications/microDepositVerifications/{verificationId}', params={
}, headers = headers)
print r.json()
URL obj = new URL("/accountVerifications/microDepositVerifications/{verificationId}");
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"},
"If-Match": []string{"string"},
"API-Key": []string{"API_KEY"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "/accountVerifications/microDepositVerifications/{verificationId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Verify micro-deposit amounts
POST /microDepositVerifications/{verificationId}
Complete the verification by providing the amount values from the micro-deposit transactions.
Body parameter
{
"amounts": [
{
"value": ".02",
"currency": "USD",
"baseType": "credit"
},
{
"value": ".04",
"currency": "USD",
"baseType": "credit"
},
{
"value": ".06",
"currency": "USD",
"baseType": "debit"
}
]
}
Parameters
Parameter | Description |
---|---|
verificationId (path) |
string (required) The unique identifier of this account verificaton. This is an opaque string. |
If-Match (header) |
string The entity tag that was returned in the ETag response. This must match the current entity tag of the resource. |
body (body) |
microDepositVerificationAmounts (required) The amounts from a micro-deposit. |
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": "2eae46e1-575c-4d69-8a8f-0a7b0115a4b3",
"message": "The value for deposit must be greater than 0.",
"statusCode": 422,
"type": "positiveNumberRequired",
"attributes": {
"value": -125.5
},
"remediation": "Provide a value which is greater than 0",
"occurredAt": "2018-01-25T05:50:52.375Z",
"_links": {
"describedby": {
"href": "https://developer.apiture.com/errors/positiveNumberRequired"
}
},
"_embedded": {
"errors": []
}
},
"_id": "string",
"state": "pending",
"completedAt": "2019-11-21T15:33:07Z",
"createdAt": "2019-11-21T15:33:07Z",
"stateMessages": [
{}
]
}
Responses
Status | Description |
---|---|
200 | OK |
OK | |
Schema: microDepositVerification | |
404 | Not Found |
Not Found. There is no such account verification resource at the specified {verificationId} The _error field in the response will contain details about the request error. | |
Schema: error |
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 institution resource. |
getMicroDepositVerificationAccounts
Code samples
# You can also use wget
curl -X GET /accountVerifications/microDepositVerifications/{verificationId}/accounts \
-H 'Accept: application/hal+json' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
GET /accountVerifications/microDepositVerifications/{verificationId}/accounts HTTP/1.1
Accept: application/hal+json
var headers = {
'Accept':'application/hal+json',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: '/accountVerifications/microDepositVerifications/{verificationId}/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('/accountVerifications/microDepositVerifications/{verificationId}/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 '/accountVerifications/microDepositVerifications/{verificationId}/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('/accountVerifications/microDepositVerifications/{verificationId}/accounts', params={
}, headers = headers)
print r.json()
URL obj = new URL("/accountVerifications/microDepositVerifications/{verificationId}/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", "/accountVerifications/microDepositVerifications/{verificationId}/accounts", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Returns a collection of external accounts related to this verification resource
GET /microDepositVerifications/{verificationId}/accounts
Once a verification is successful, this operation retrieves the accounts associated with it. The response includes the external account entities pertaining to the verification.
Parameters
Parameter | Description |
---|---|
verificationId (path) |
string (required) The unique identifier of this account verificaton. This is an opaque string. |
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 | |
400 | Bad Request |
Bad Request. One or more of the query parameters was not well formed. The _error field in the response will contain details about the request error. | |
Schema: errorResponse | |
422 | Unprocessable Entity |
Unprocessable Entity. One or more of the query parameters was well formed but otherwise invalid. The _error field in the response will contain details about the request error. | |
Schema: errorResponse |
getInstantVerifications
Code samples
# You can also use wget
curl -X GET /accountVerifications/instantVerifications \
-H 'Accept: application/hal+json' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
GET /accountVerifications/instantVerifications HTTP/1.1
Accept: application/hal+json
var headers = {
'Accept':'application/hal+json',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: '/accountVerifications/instantVerifications',
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('/accountVerifications/instantVerifications',
{
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 '/accountVerifications/instantVerifications',
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('/accountVerifications/instantVerifications', params={
}, headers = headers)
print r.json()
URL obj = new URL("/accountVerifications/instantVerifications");
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", "/accountVerifications/instantVerifications", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Return a collection of instant verifications
GET /instantVerifications
Return a paginated sortable filterable searchable collection of account verifications. The links in the response include pagination links.
Parameters
Parameter | Description |
---|---|
start (query) |
integer(int64) The zero-based index of the first instant verification item to include in this page. The default 0 denotes the beginning of the collection. |
limit (query) |
integer(int32) The maximum number of instant verification 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. |
Example responses
200 Response
{
"_profile": "https://api.apiture.com/schemas/accountVerifications/instantVerifications/v1.0.0/profile.json"
}
Responses
Status | Description |
---|---|
200 | OK |
OK | |
Schema: instantVerifications | |
400 | Bad Request |
Bad Request. One or more of the query parameters was not well formed. The _error field in the response will contain details about the request error. | |
Schema: errorResponse | |
422 | Unprocessable Entity |
Unprocessable Entity. One or more of the query parameters was well formed but otherwise invalid. The _error field in the response will contain details about the request error. | |
Schema: errorResponse |
createInstantVerification
Code samples
# You can also use wget
curl -X POST /accountVerifications/instantVerifications \
-H 'Content-Type: application/hal+json' \
-H 'Accept: application/hal+json' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
POST /accountVerifications/instantVerifications HTTP/1.1
Content-Type: application/hal+json
Accept: application/hal+json
var headers = {
'Content-Type':'application/hal+json',
'Accept':'application/hal+json',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: '/accountVerifications/instantVerifications',
method: 'post',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const inputBody = '{
"_links": {
"apiture:institution": {
"href": "/accountVerifications/institutions/961ffc1e-e1f1-11e8-8366-274c0a4e671e"
},
"apiture:contact": {
"href": "/contacts/contact/0399abed-fd3d-4830-a88b-30f38b8a365c"
}
},
"authenticationFields": [
{
"username": {
"value": "user123"
}
},
{
"password": {
"value": "pass123"
}
},
{
"pin": {
"value": 123
}
}
]
}';
const headers = {
'Content-Type':'application/hal+json',
'Accept':'application/hal+json',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
fetch('/accountVerifications/instantVerifications',
{
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 '/accountVerifications/instantVerifications',
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('/accountVerifications/instantVerifications', params={
}, headers = headers)
print r.json()
URL obj = new URL("/accountVerifications/instantVerifications");
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", "/accountVerifications/instantVerifications", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Create a new instant verification resource
POST /instantVerifications
This type of verification requires to send encrypted login fields to initiate an authentication process with the external financial institution. A GET
to /institutions/{institutionId}/authenticationFields
must be executed to retrieve the required login fields. This operation returns a verification resource with a pending
status. In order to check for status updates, a client must continuously poll the resource via GET
to the /instantVerifications
endpoint.
Body parameter
{
"_links": {
"apiture:institution": {
"href": "/accountVerifications/institutions/961ffc1e-e1f1-11e8-8366-274c0a4e671e"
},
"apiture:contact": {
"href": "/contacts/contact/0399abed-fd3d-4830-a88b-30f38b8a365c"
}
},
"authenticationFields": [
{
"username": {
"value": "user123"
}
},
{
"password": {
"value": "pass123"
}
},
{
"pin": {
"value": 123
}
}
]
}
Parameters
Parameter | Description |
---|---|
body (body) |
createInstantVerification (required) The data necessary to create a new account verification. |
Example responses
201 Response
{
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"_profile": "https://api.apiture.com/schemas/accountVerifications/instantVerification/v1.0.0/profile.json",
"_links": {
"self": {
"href": "/accountVerifications/instantVerifications/0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:externalAccounts": {
"href": "/accountVerifications/instantVerifications/0399abed-fd3d-4830-a88b-30f38b8a365c/accounts"
},
"apiture:verificationReport": {
"href": "/accountVerifications/verificationReports?verification=0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:contact": {
"href": "/contacts/contacts/ef039bdb-5605-4802-b163-d2f7cdbd28ab"
},
"apiture:institution": {
"href": "/accountVerifications/institutions/961ffc1e-e1f1-11e8-8366-274c0a4e671e"
}
},
"state": "pending",
"mfaRequired": true,
"mfaPrompt": [
{
"key": 1,
"type": "TEXT",
"value": "Send code to",
"choices": [
{
"key": 1,
"value": "Mobile XXX-XXX-9771"
},
{
"key": 2,
"value": "Mobile XXX-XXX-9881"
}
]
}
]
}
Responses
Status | Description |
---|---|
201 | Created |
Created | |
Schema: instantVerification | |
400 | Bad Request |
Bad Request. 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 | |
500 | Internal Server Error |
Server Error. Fatal error has occurred. | |
Schema: errorResponse |
Response Headers
Status | Description |
---|---|
201 | Location string uri |
The URI of the new resource. If the URI begins with / it is relative to the API root context. Else, it is a full URI starting with scheme ://host | |
201 | ETag string |
The ETag response header specifies an entity tag which must be provided in an If-Match request header for PUT or PATCH operations which update the resource. |
getInstantVerification
Code samples
# You can also use wget
curl -X GET /accountVerifications/instantVerifications/{verificationId} \
-H 'Accept: application/hal+json' \
-H 'If-None-Match: string' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
GET /accountVerifications/instantVerifications/{verificationId} HTTP/1.1
Accept: application/hal+json
If-None-Match: string
var headers = {
'Accept':'application/hal+json',
'If-None-Match':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: '/accountVerifications/instantVerifications/{verificationId}',
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('/accountVerifications/instantVerifications/{verificationId}',
{
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 '/accountVerifications/instantVerifications/{verificationId}',
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('/accountVerifications/instantVerifications/{verificationId}', params={
}, headers = headers)
print r.json()
URL obj = new URL("/accountVerifications/instantVerifications/{verificationId}");
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", "/accountVerifications/instantVerifications/{verificationId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Fetch a representation of this instant verification resource
GET /instantVerifications/{verificationId}
Return a HAL representation of this account verification resource.
Parameters
Parameter | Description |
---|---|
verificationId (path) |
string (required) The unique identifier of this account verificaton. This is an opaque string. |
If-None-Match (header) |
string The entity tag that was returned in the ETag response. If the resource's current entity tag matches, the GET will return 304 (Not Modified) and no response body, else the resource representation will be returned. |
Example responses
200 Response
{
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"_profile": "https://api.apiture.com/schemas/accountVerifications/instantVerification/v1.0.0/profile.json",
"_links": {
"self": {
"href": "/accountVerifications/instantVerifications/0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:externalAccounts": {
"href": "/accountVerifications/instantVerifications/0399abed-fd3d-4830-a88b-30f38b8a365c/accounts"
},
"apiture:verificationReport": {
"href": "/accountVerifications/verificationReports?verification=0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:contact": {
"href": "/contacts/contacts/ef039bdb-5605-4802-b163-d2f7cdbd28ab"
},
"apiture:institution": {
"href": "/accountVerifications/institutions/961ffc1e-e1f1-11e8-8366-274c0a4e671e"
}
},
"state": "pending",
"mfaRequired": true,
"mfaPrompt": [
{
"key": 1,
"type": "TEXT",
"value": "Send code to",
"choices": [
{
"key": 1,
"value": "Mobile XXX-XXX-9771"
},
{
"key": 2,
"value": "Mobile XXX-XXX-9881"
}
]
}
]
}
Responses
Status | Description |
---|---|
200 | OK |
OK | |
Schema: instantVerification | |
304 | Not Modified |
Not Modified. The resource has not been modified since it was last fetched. | |
404 | Not Found |
Not Found. There is no such account verification resource at the specified {verificationId} The _error field in the response will contain details about the request error. | |
Schema: error | |
500 | Internal Server Error |
Server Error. Fatal error has occurred. | |
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 instant verification resource. |
updateInstantVerification
Code samples
# You can also use wget
curl -X PATCH /accountVerifications/instantVerifications/{verificationId} \
-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 /accountVerifications/instantVerifications/{verificationId} HTTP/1.1
Content-Type: application/hal+json
Accept: application/hal+json
If-Match: string
var headers = {
'Content-Type':'application/hal+json',
'Accept':'application/hal+json',
'If-Match':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: '/accountVerifications/instantVerifications/{verificationId}',
method: 'patch',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const inputBody = '{
"_profile": "https://api.apiture.com/schemas/accountVerifications/instantVerifications/v1.0.0/profile.json",
"_links": {
"apiture:institution": {
"href": "/institutions/institutions/0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:contact": {
"href": "/contacts/contact/0399abed-fd3d-4830-a88b-30f38b8a365c"
}
},
"mfa": {
"answers": [
{
"key": 1,
"value": "Mobile XXX-XXX-9771"
}
]
}
}';
const headers = {
'Content-Type':'application/hal+json',
'Accept':'application/hal+json',
'If-Match':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
fetch('/accountVerifications/instantVerifications/{verificationId}',
{
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 '/accountVerifications/instantVerifications/{verificationId}',
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('/accountVerifications/instantVerifications/{verificationId}', params={
}, headers = headers)
print r.json()
URL obj = new URL("/accountVerifications/instantVerifications/{verificationId}");
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", "/accountVerifications/instantVerifications/{verificationId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Update this instant verification resource
PATCH /instantVerifications/{verificationId}
This operation must be used to update a verification resource waiting for user input, that is when the mfaRequired
field is set to true and the state of the resource is pending
.
Body parameter
{
"_profile": "https://api.apiture.com/schemas/accountVerifications/instantVerifications/v1.0.0/profile.json",
"_links": {
"apiture:institution": {
"href": "/institutions/institutions/0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:contact": {
"href": "/contacts/contact/0399abed-fd3d-4830-a88b-30f38b8a365c"
}
},
"mfa": {
"answers": [
{
"key": 1,
"value": "Mobile XXX-XXX-9771"
}
]
}
}
Parameters
Parameter | Description |
---|---|
verificationId (path) |
string (required) The unique identifier of this account verificaton. This is an opaque string. |
If-Match (header) |
string The entity tag that was returned in the ETag response. This must match the current entity tag of the resource. |
body (body) |
updateInstantVerification (required) The data necessary to update an instant verification resource. |
Example responses
200 Response
{
"_profile": "https://api.apiture.com/schemas/accountVerifications/instantVerification/v1.0.0/profile.json",
"_links": {
"self": {
"href": "/accountVerifications/instantVerifications/0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:externalAccounts": {
"href": "/accountVerifications/instantVerifications/0399abed-fd3d-4830-a88b-30f38b8a365c/accounts"
},
"apiture:verificationReport": {
"href": "/accountVerifications/verificationReports?verification=0399abed-fd3d-4830-a88b-30f38b8a365c"
}
},
"state": "pending",
"mfaRequired": true,
"mfaPrompt": [
{
"key": 1,
"type": "TEXT",
"value": "Input the received code"
}
]
}
Responses
Status | Description |
---|---|
200 | OK |
OK | |
Schema: Inline | |
400 | Bad Request |
Bad Request. One or more of the query parameters was not well formed. The _error field in the response will contain details about the request error. | |
Schema: errorResponse | |
404 | Not Found |
Not Found. There is no such account verification resource at the specified {verificationId} The _error field in the response will contain details about the request error. | |
Schema: error | |
500 | Internal Server Error |
Server Error. Fatal error has occurred. | |
Schema: errorResponse |
Response Schema
Status Code 200
Property Name | Description |
---|---|
» _links | object An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations. |
»» Link | 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. |
»»» 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. |
»» _embedded | object The objects which participate in this verification resource. |
»» _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. |
»»» 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. |
»»»» Error | error Describes an error in an API request or in a service called via the API. |
»»»»» 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. |
»»»»»» Link | link Describes a hypermedia link within a _links object in HAL representations. In Apiture APIs, links are HAL links, but Apiture APIs do not use the name or hreflang properties of HAL. Apiture links may include a method property. |
»»»»» _embedded | object Embedded objects. An error object may contain nested errors. For example, an API which validates its request body may find multiple errors in the request, which are returned with an error response with nested errors. These are held in an items array of errorResponse objects. _embedded or _embedded.items may not exist if the error does not have nested errors. This property is deprecated; use see error.errors instead. |
»»»»»» items | [errorResponse] An array of error objects. |
»»»»»»» Error Response | errorResponse Describes an error response, typically returned on 4xx or 5xx errors from API operations. The _error object contains the error details. |
»»»»»»»» _links | object An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations. |
»»»»»»»»» Link | link Describes a hypermedia link within a _links object in HAL representations. In Apiture APIs, links are HAL links, but Apiture APIs do not use the name or hreflang properties of HAL. Apiture links may include a method property. |
»»»»»»»» _embedded | object An optional map of nested resources, mapping each nested resource name to a nested resource representation. |
»»»»»»»» _profile | string(uri) The URI of a resource profile which describes the representation. |
»»»»»»»» _error | error An object which describes an error. This value is omitted if the operation succeeded without error. |
»»»»»»»»» message | string (required) A localized message string describing the error condition. |
»»»»»»»»» _id | string A unique identifier for this error instance. This may be used as a correlation ID with the root cause error (i.e. this ID may be logged at the source of the error). This is is an opaque string. |
»»»»»»»»» statusCode | integer The HTTP status code associate with this error. minimum: 100 maximum: 599 |
»»»»»»»»» type | string An error identifier which indicates the category of error and associate it with API support documentation or which the UI tier can use to render an appropriate message or hint. This provides a finer level of granularity than the statusCode . For example, instead of just 400 Bad Request, the type may be much more specific. such as integerValueNotInAllowedRange or numericValueExceedsMaximum or stringValueNotInAllowedSet . |
»»»»»»»»» occurredAt | string(date-time) An RFC 3339 UTC time stamp indicating when the error occurred. |
»»»»»»»»» attributes | attributes Informative values or constraints which describe the error. For example, for a value out of range error, the attributes may specify the minimum and maximum values. This allows clients to present error messages as they see fit (the API does not assume the client/presentation tier). The set of attributes varies by error type . |
»»»»»»»»» remediation | string An optional localized string which provides hints for how the user or client can resolve the error. |
»»»»»»»»» errors | [error] An optional array of nested error objects. This property is not always present. |
»»»»»»»»» _links | links An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations. |
»»»»»»»»» _embedded | object Embedded objects. An error object may contain nested errors. For example, an API which validates its request body may find multiple errors in the request, which are returned with an error response with nested errors. These are held in an items array of errorResponse objects. _embedded or _embedded.items may not exist if the error does not have nested errors. This property is deprecated; use see error.errors instead. |
»»»»»»»» _links | links An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations. |
»»»»»»»» _embedded | object Embedded objects. An error object may contain nested errors. For example, an API which validates its request body may find multiple errors in the request, which are returned with an error response with nested errors. These are held in an items array of errorResponse objects. _embedded or _embedded.items may not exist if the error does not have nested errors. This property is deprecated; use see error.errors instead. |
»»»»»»» _id | string The unique identifier for this resource. This is an immutable opaque string. |
»»»»»»» state | string The state of the verification, one of the following: * pending - account verification is pending * mfaPending - multi-factor authentication is pending * mfaSubmitted - multi-factor authentication has been submitted * verified - the account verification succeeded * failed - the account verification failed |
»»»»»»» completedAt | string(date-time) An ISO 8601 UTC time stamp indicating when the verification completed (has a status different from pending). |
»»»»»»» createdAt | string(date-time) An ISO 8601 UTC time stamp indicating when the verification report was created. |
»»»»»»» mfaRequired | boolean Indicates if multi-factor authentication (MFA) is required. |
»»»»»»» mfaPrompt | mfaPrompt Representation of a multi-factor authentication challenge. |
»»»»»»»» MFA Question | question Representation of a multi-factor authentication question. The supported question formats are text and image, in which case the encoded payload is available under the content field. |
»»»»»»»»» key | string The unique key for this question's fields. |
»»»»»»»»» content | string The question's content: the token value, or image URI. |
»»»»»»»»» _links | links An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations. |
»»»»»»»»» choices | [choice] Optional array of choices for this question. |
»»»»»»»»»» MFA Choice | choice Representation of question choice. |
»»»»»»»»»»» type | string The user interface type of choice. |
»»»»»»»»»»» key | string The choice's unique key. |
»»»»»»»»»»» value | string The choice's value. |
»»»»»»»»»»» content | string The content specific to this choice. |
»»»»»»»»»»» _links | links An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations. |
»»»»»»»»»» type | string The question type. |
»»»»»»»»»» value | string The question text. |
»»»»»»»»» stateMessages | [object] An array of messages providing aditional information of the status of the verification. |
Enumerated Values
Property | Value |
---|---|
state | pending |
state | mfaPending |
state | mfaSubmitted |
state | verified |
state | failed |
type | image |
type | text |
type | option |
type | checkbox |
type | radio |
type | question |
type | token |
type | image |
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 instant verification resource. |
getInstantVerificationAccounts
Code samples
# You can also use wget
curl -X GET /accountVerifications/instantVerifications/{verificationId}/accounts \
-H 'Accept: application/hal+json' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
GET /accountVerifications/instantVerifications/{verificationId}/accounts HTTP/1.1
Accept: application/hal+json
var headers = {
'Accept':'application/hal+json',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: '/accountVerifications/instantVerifications/{verificationId}/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('/accountVerifications/instantVerifications/{verificationId}/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 '/accountVerifications/instantVerifications/{verificationId}/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('/accountVerifications/instantVerifications/{verificationId}/accounts', params={
}, headers = headers)
print r.json()
URL obj = new URL("/accountVerifications/instantVerifications/{verificationId}/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", "/accountVerifications/instantVerifications/{verificationId}/accounts", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Returns a collection of external accounts related to this verification resource
GET /instantVerifications/{verificationId}/accounts
Once a verification is successful, this operation retrieves the accounts associated with it. The response includes an array of embeded external account entities pertaining to the verified FI account.
Parameters
Parameter | Description |
---|---|
verificationId (path) |
string (required) The unique identifier of this account verificaton. This is an opaque string. |
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 | |
400 | Bad Request |
Bad Request. One or more of the query parameters was not well formed. The _error field in the response will contain details about the request error. | |
Schema: errorResponse | |
404 | Not Found |
Not Found. There is no such account verification resource at the specified {verificationId} The _error field in the response will contain details about the request error. | |
Schema: error | |
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 | |
500 | Internal Server Error |
Server Error. Fatal error has occurred. | |
Schema: errorResponse |
Verification Report
Generating account verification reports
createVerificationReport
Code samples
# You can also use wget
curl -X POST /accountVerifications/verificationReports?verification=string \
-H 'Accept: application/hal+json' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
POST /accountVerifications/verificationReports?verification=string HTTP/1.1
Accept: application/hal+json
var headers = {
'Accept':'application/hal+json',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: '/accountVerifications/verificationReports',
method: 'post',
data: '?verification=string',
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('/accountVerifications/verificationReports?verification=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',
'API-Key' => 'API_KEY',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.post '/accountVerifications/verificationReports',
params: {
'verification' => 'string'
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/hal+json',
'API-Key': 'API_KEY',
'Authorization': 'Bearer {access-token}'
}
r = requests.post('/accountVerifications/verificationReports', params={
'verification': 'string'
}, headers = headers)
print r.json()
URL obj = new URL("/accountVerifications/verificationReports?verification=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"},
"API-Key": []string{"API_KEY"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "/accountVerifications/verificationReports", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Create a new verification report resource
POST /verificationReports
A verification report is an additional layer of validation that can be run against a verification resource. It uses available account aggregation data from an external provider to generate a pass/fail result based on pre-configured risk factors. This operation does not create a new persisent resource; the report is transient and returned in the response body only.
Parameters
Parameter | Description |
---|---|
verification (query) |
string (required) A string which identifies a specific verification resource. The value may be a {verificationId} or a verification URI. |
Example responses
200 Response
{
"state": "failed",
"accountRiskFactors": [
{
"riskCode": 101,
"description": "Account owner first name does not match"
},
{
"riskCode": 102,
"description": "Account owner last name does not match"
},
{
"riskCode": 103,
"description": "Account owner zip code does not match"
}
]
}
Responses
Status | Description |
---|---|
200 | OK |
OK | |
Schema: verificationReport | |
400 | Bad Request |
Bad Request. One or more of the query parameters was not well formed. The _error field in the response will contain details about the request error. | |
Schema: errorResponse | |
404 | Not Found |
Not Found. There is no resource at the specified {Id} The _error field in the response will contain details about the request error. | |
Schema: error | |
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 | |
500 | Internal Server Error |
Server Error. Fatal error has occurred. | |
Schema: errorResponse |
Institutions
Information about financial institutions
getInstitutions
Code samples
# You can also use wget
curl -X GET /accountVerifications/institutions \
-H 'Accept: application/hal+json' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
GET /accountVerifications/institutions HTTP/1.1
Accept: application/hal+json
var headers = {
'Accept':'application/hal+json',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: '/accountVerifications/institutions',
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('/accountVerifications/institutions',
{
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 '/accountVerifications/institutions',
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('/accountVerifications/institutions', params={
}, headers = headers)
print r.json()
URL obj = new URL("/accountVerifications/institutions");
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", "/accountVerifications/institutions", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Return a collection of institutions
GET /institutions
Return a paginated sortable filterable searchable collection of registered external financial institutions. This list is supplied by a third party and is immutable (there are no operations to add, modify, or remove institutions). The links in the response include pagination links.
In adition to the standard sorting mechanisms, it is possible to sort institutions by popularity by using the popularity
criteria, such as ?sortBy=popularity
.
Parameters
Parameter | Description |
---|---|
start (query) |
integer(int64) The zero-based index of the first institution item to include in this page. The default 0 denotes the beginning of the collection. |
limit (query) |
integer(int32) The maximum number of financial institution representations to return in this page. |
sortBy (query) |
string Optional sort criteria. See sort criteria format, such as ?sortBy=field1,-field2 . |
filter (query) |
string Optional filter criteria. See filtering. |
q (query) |
string Optional search string. See searching. |
name (query) |
string Subset the accounts or external accounts collection to those with this name value. Use |
label (query) |
string Subset the accounts or external accounts collection to those with this label value. Use |
Example responses
200 Response
{
"_profile": "https://api.apiture.com/schemas/accountVerifications/externalInstitutions/v1.0.0/profile.json",
"start": 10,
"limit": 10,
"count": 67,
"name": "external institutions",
"_links": {
"self": {
"href": "/accountVerifications/institutions?start=10&limit=10"
},
"first": {
"href": "/accountVerifications/institutions?start=0&limit=10"
},
"next": {
"href": "/accountVerifications/institutions?start=20&limit=10"
},
"collection": {
"href": "/accountVerifications/institutions"
}
},
"_embedded": {
"items": [
{
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"name": "Example Banks, Inc",
"_profile": "https://api.apiture.com/schemas/accountVerifications/institution/v1.0.0/profile.json",
"label": "Banks",
"featured": true,
"_links": {
"self": {
"href": "/accountVerifications/institution/0399abed-fd3d-4830-a88b-30f38b8a365d"
},
"icon": {
"href": "http://d111111abcdef8.cloudfront.net/images/image2.jpg"
},
"home": {
"href": "https://bank.example.com/"
}
}
},
{
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365d",
"name": "Example Bank.",
"_profile": "https://api.apiture.com/schemas/accountVerifications/institution/v1.0.0/profile.json",
"label": "Example Bank",
"featured": true,
"_links": {
"self": {
"href": "/accountVerifications/institution/0399abed-fd3d-4830-a88b-30f38b8a365d"
},
"icon": {
"href": "http://d111111abcdef8.cloudfront.net/images/image2.jpg"
},
"home": {
"href": "https://bank.example.com/"
}
}
}
]
}
}
Responses
Status | Description |
---|---|
200 | OK |
OK | |
Schema: institutions | |
400 | Bad Request |
Bad Request. One or more of the query parameters was not well formed. The _error field in the response will contain details about the request error. | |
Schema: errorResponse | |
422 | Unprocessable Entity |
Unprocessable Entity. One or more of the query parameters was well formed but otherwise invalid. The _error field in the response will contain details about the request error. | |
Schema: errorResponse |
getInstitution
Code samples
# You can also use wget
curl -X GET /accountVerifications/institutions/{institutionId} \
-H 'Accept: application/hal+json' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
GET /accountVerifications/institutions/{institutionId} HTTP/1.1
Accept: application/hal+json
var headers = {
'Accept':'application/hal+json',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: '/accountVerifications/institutions/{institutionId}',
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('/accountVerifications/institutions/{institutionId}',
{
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 '/accountVerifications/institutions/{institutionId}',
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('/accountVerifications/institutions/{institutionId}', params={
}, headers = headers)
print r.json()
URL obj = new URL("/accountVerifications/institutions/{institutionId}");
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", "/accountVerifications/institutions/{institutionId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Fetch a representation of this external financial institution
GET /institutions/{institutionId}
Return a HAL representation of this external financial institution resource.
The links in an institution may contain the following:
home
- Home URL of the financial website.icon
- URL referencing an institution icon. The possible image formats are SVG and PNG.
Parameters
Parameter | Description |
---|---|
institutionId (path) |
string (required) The unique identifier of this institution resource. This is an opaque string. |
Example responses
200 Response
{
"name": "Example Bank Bancshares, Inc.",
"label": "Example Bank",
"featured": true,
"_profile": "https://api.apiture.com/schemas/accountVerifications/institution/v1.0.0/profile.json",
"_links": {
"self": {
"href": "/accountVerifications/institution/0399abed-fd3d-4830-a88b-30f38b8a365d"
},
"icon": {
"href": "http://d111111abcdef8.cloudfront.net/images/image2.jpg"
},
"home": {
"href": "https://www.bank.example.bank/"
}
}
}
Responses
Status | Description |
---|---|
200 | OK |
OK | |
Schema: institution | |
304 | Not Modified |
Not Modified. The resource has not been modified since it was last fetched. | |
404 | Not Found |
Not Found. There is no institution resource at the specified {institutionId} The _error field in the response will contain details about the request error. | |
Schema: error |
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 institution resource. |
getInstitutionFields
Code samples
# You can also use wget
curl -X GET /accountVerifications/institutions/{institutionId}/authenticationFields \
-H 'Accept: application/hal+json' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
GET /accountVerifications/institutions/{institutionId}/authenticationFields HTTP/1.1
Accept: application/hal+json
var headers = {
'Accept':'application/hal+json',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: '/accountVerifications/institutions/{institutionId}/authenticationFields',
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('/accountVerifications/institutions/{institutionId}/authenticationFields',
{
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 '/accountVerifications/institutions/{institutionId}/authenticationFields',
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('/accountVerifications/institutions/{institutionId}/authenticationFields', params={
}, headers = headers)
print r.json()
URL obj = new URL("/accountVerifications/institutions/{institutionId}/authenticationFields");
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", "/accountVerifications/institutions/{institutionId}/authenticationFields", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Return descriptions of the fields required to authenticate with the external institution
GET /institutions/{institutionId}/authenticationFields
This endpoint returns descriptions of the fields required to authenticate with the external institution.
Parameters
Parameter | Description |
---|---|
institutionId (path) |
string (required) The unique identifier of this institution resource. This is an opaque string. |
Example responses
200 Response
{
"_profile": "https://api.apiture.com/accountVerifications/authenticationFields/v1.0.0/profile.json",
"_links": {
"self": {
"href": "/accountVerifications/institutions/0399abed-fd3d-4830-a88b-30f38b8a365c/authenticationFields"
}
},
"fields": [
{
"username": {
"title": "Online ID",
"value": "user123",
"type": "string"
}
},
{
"password": {
"title": "Password",
"value": "pass123",
"type": "string"
}
},
{
"pin": {
"title": "PIN",
"value": 123,
"type": "string"
}
}
]
}
Responses
Status | Description |
---|---|
200 | OK |
OK | |
Schema: authenticationFieldsResponse | |
304 | Not Modified |
Not Modified. The resource has not been modified since it was last fetched. | |
404 | Not Found |
Not Found. There is no institution resource at the specified {institutionId} The _error field in the response will contain details about the request error. | |
Schema: error |
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 institution resource. |
Configuration
A set of endpoints that allows for the creation and retrieval of configuration options specific to this service
getConfiguration
Code samples
# You can also use wget
curl -X GET /accountVerifications/configurations \
-H 'Accept: application/hal+json' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
GET /accountVerifications/configurations HTTP/1.1
Accept: application/hal+json
var headers = {
'Accept':'application/hal+json',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: '/accountVerifications/configurations',
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('/accountVerifications/configurations',
{
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 '/accountVerifications/configurations',
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('/accountVerifications/configurations', params={
}, headers = headers)
print r.json()
URL obj = new URL("/accountVerifications/configurations");
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", "/accountVerifications/configurations", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Configuration definition for this API
GET /configurations
Returns the configuration for this API
Example responses
200 Response
{
"_links": {
"self": {
"href": "/accountVerifications/configurations/"
},
"apiture:groups": {
"href": "/accountVerifications/configurations/groups"
}
}
}
Responses
Status | Description |
---|---|
200 | OK |
OK | |
Schema: configuration |
getConfigurationGroups
Code samples
# You can also use wget
curl -X GET /accountVerifications/configurations/groups \
-H 'Accept: application/hal+json' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
GET /accountVerifications/configurations/groups HTTP/1.1
Accept: application/hal+json
var headers = {
'Accept':'application/hal+json',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: '/accountVerifications/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('/accountVerifications/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 '/accountVerifications/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('/accountVerifications/configurations/groups', params={
}, headers = headers)
print r.json()
URL obj = new URL("/accountVerifications/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", "/accountVerifications/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. |
Example responses
200 Response
{
"_profile": "https://api.apiture.com/schemas/configurations/configurationGroups/v1.0.0/profile.json",
"start": 10,
"limit": 10,
"count": 67,
"name": "configurationGroups",
"_links": {
"self": {
"href": "/accountVerifications/configurations/groups?start=10&limit=10"
},
"first": {
"href": "/accountVerifications/configurations/groups?start=0&limit=10"
},
"next": {
"href": "/accountVerifications/configurations/groups?start=20&limit=10"
},
"collection": {
"href": "/accountVerifications/configurations/groups"
}
},
"_embedded": {
"items": [
{
"_profile": "https://api.apiture.com/schemas/configurations/configurationGroup/v1.0.0/profile.json",
"_links": {
"self": {
"href": "/accountVerifications/configurations/groups/basic"
},
"apiture:configuration": {
"href": "/accountVerifications/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": "/accountVerifications/configurations/groups/calendar"
},
"apiture:configuration": {
"href": "/accountVerifications/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 | |
400 | Bad Request |
Bad Request. One or more of the query parameters was not well formed. The _error field in the response will contain details about the request error. | |
Schema: errorResponse | |
422 | Unprocessable Entity |
Unprocessable Entity. One or more of the query parameters was well formed but otherwise invalid. The _error field in the response will contain details about the request error. | |
Schema: errorResponse |
getConfigurationGroup
Code samples
# You can also use wget
curl -X GET /accountVerifications/configurations/groups/{groupName} \
-H 'Accept: application/hal+json' \
-H 'If-None-Match: string' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
GET /accountVerifications/configurations/groups/{groupName} HTTP/1.1
Accept: application/hal+json
If-None-Match: string
var headers = {
'Accept':'application/hal+json',
'If-None-Match':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: '/accountVerifications/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('/accountVerifications/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 '/accountVerifications/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('/accountVerifications/configurations/groups/{groupName}', params={
}, headers = headers)
print r.json()
URL obj = new URL("/accountVerifications/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", "/accountVerifications/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. |
Example responses
200 Response
{
"_profile": "https://api.apiture.com/schemas/configurations/configurationGroup/v1.0.0/profile.json",
"_links": {
"self": {
"href": "/accountVerifications/configurations/groups/basic"
},
"apiture:configuration": {
"href": "/accountVerifications/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 | |
304 | Not Modified |
Not Modified. The resource has not been modified since it was last fetched. | |
404 | Not Found |
Not Found. There is no such configuration group resource at the specified {groupName} The _error field in the response will contain details about the request error. | |
Schema: error |
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 /accountVerifications/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 /accountVerifications/configurations/groups/{groupName}/schema HTTP/1.1
Accept: application/hal+json
If-None-Match: string
var headers = {
'Accept':'application/hal+json',
'If-None-Match':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: '/accountVerifications/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('/accountVerifications/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 '/accountVerifications/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('/accountVerifications/configurations/groups/{groupName}/schema', params={
}, headers = headers)
print r.json()
URL obj = new URL("/accountVerifications/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", "/accountVerifications/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. |
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 | |
304 | Not Modified |
Not Modified. The resource has not been modified since it was last fetched. | |
404 | Not Found |
Not Found. There is no such configuration group resource at the specified {groupName} The _error field in the response will contain details about the request error. | |
Schema: error |
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 |
getConfigurationGroupValues
Code samples
# You can also use wget
curl -X GET /accountVerifications/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 /accountVerifications/configurations/groups/{groupName}/values HTTP/1.1
Accept: application/hal+json
If-None-Match: string
var headers = {
'Accept':'application/hal+json',
'If-None-Match':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: '/accountVerifications/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('/accountVerifications/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 '/accountVerifications/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('/accountVerifications/configurations/groups/{groupName}/values', params={
}, headers = headers)
print r.json()
URL obj = new URL("/accountVerifications/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", "/accountVerifications/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. |
Example responses
200 Response
{
"dailyLimit": 5,
"cutoffTime": "17:30:00"
}
Responses
Status | Description |
---|---|
200 | OK |
OK | |
Schema: configurationValues | |
304 | Not Modified |
Not Modified. The resource has not been modified since it was last fetched. | |
404 | Not Found |
Not Found. There is no such configuration group resource at the specified {groupName} The _error field in the response will contain details about the request error. | |
Schema: error |
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 |
updateConfigurationGroupValues
Code samples
# You can also use wget
curl -X PUT /accountVerifications/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 /accountVerifications/configurations/groups/{groupName}/values HTTP/1.1
Content-Type: application/hal+json
Accept: application/hal+json
If-Match: string
var headers = {
'Content-Type':'application/hal+json',
'Accept':'application/hal+json',
'If-Match':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: '/accountVerifications/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('/accountVerifications/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 '/accountVerifications/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('/accountVerifications/configurations/groups/{groupName}/values', params={
}, headers = headers)
print r.json()
URL obj = new URL("/accountVerifications/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", "/accountVerifications/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. This must match the current entity tag of the resource. |
body (body) |
configurationValues (required) |
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 | |
400 | Bad Request |
Bad Request. 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 | |
403 | Forbidden |
Access denied. Only user allowed to update configurations is an admin. | |
Schema: errorResponse | |
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: error | |
412 | Precondition Failed |
Precondition Failed. The supplied if-Match header value does not match the most recent ETag response header value. The resource has changed in the interim. | |
Schema: errorResponse |
Response Headers
Status | Description |
---|---|
200 | ETag string |
The ETag response header specifies an entity tag which must be provided in an If-Match request header for PUT |
getConfigurationGroupValue
Code samples
# You can also use wget
curl -X GET /accountVerifications/configurations/groups/{groupName}/values/{valueName} \
-H 'Accept: application/hal+json' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
GET /accountVerifications/configurations/groups/{groupName}/values/{valueName} HTTP/1.1
Accept: application/hal+json
var headers = {
'Accept':'application/hal+json',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: '/accountVerifications/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('/accountVerifications/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 '/accountVerifications/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('/accountVerifications/configurations/groups/{groupName}/values/{valueName}', params={
}, headers = headers)
print r.json()
URL obj = new URL("/accountVerifications/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", "/accountVerifications/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 /accountVerifications/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 | '-' | '_']* |
Example responses
200 Response
"string"
Responses
Status | Description |
---|---|
200 | OK |
OK. The value of the named configuraton value as a JSON string, number, boolean, array, or object. | |
Schema: string | |
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: error |
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 configuration group resource. |
updateConfigurationGroupValue
Code samples
# You can also use wget
curl -X PUT /accountVerifications/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 /accountVerifications/configurations/groups/{groupName}/values/{valueName} HTTP/1.1
Content-Type: application/hal+json
Accept: application/hal+json
var headers = {
'Content-Type':'application/hal+json',
'Accept':'application/hal+json',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: '/accountVerifications/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('/accountVerifications/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 '/accountVerifications/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('/accountVerifications/configurations/groups/{groupName}/values/{valueName}', params={
}, headers = headers)
print r.json()
URL obj = new URL("/accountVerifications/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", "/accountVerifications/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 /accountVerifications/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. |
Example responses
200 Response
"string"
Responses
Status | Description |
---|---|
200 | OK |
OK | |
Schema: string | |
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 must be provided in an If-Match request header for PUT or PATCH operations which update this configuration group resource. |
Schemas
institutions
{
"_profile": "https://api.apiture.com/schemas/accountVerifications/externalInstitutions/v1.0.0/profile.json",
"start": 10,
"limit": 10,
"count": 67,
"name": "external institutions",
"_links": {
"self": {
"href": "/accountVerifications/institutions?start=10&limit=10"
},
"first": {
"href": "/accountVerifications/institutions?start=0&limit=10"
},
"next": {
"href": "/accountVerifications/institutions?start=20&limit=10"
},
"collection": {
"href": "/accountVerifications/institutions"
}
},
"_embedded": {
"items": [
{
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"name": "Example Banks, Inc",
"_profile": "https://api.apiture.com/schemas/accountVerifications/institution/v1.0.0/profile.json",
"label": "Banks",
"featured": true,
"_links": {
"self": {
"href": "/accountVerifications/institution/0399abed-fd3d-4830-a88b-30f38b8a365d"
},
"icon": {
"href": "http://d111111abcdef8.cloudfront.net/images/image2.jpg"
},
"home": {
"href": "https://bank.example.com/"
}
}
},
{
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365d",
"name": "Example Bank.",
"_profile": "https://api.apiture.com/schemas/accountVerifications/institution/v1.0.0/profile.json",
"label": "Example Bank",
"featured": true,
"_links": {
"self": {
"href": "/accountVerifications/institution/0399abed-fd3d-4830-a88b-30f38b8a365d"
},
"icon": {
"href": "http://d111111abcdef8.cloudfront.net/images/image2.jpg"
},
"home": {
"href": "https://bank.example.com/"
}
}
}
]
}
}
Institutions
Collection of external financial institutions. This list is supplied by a third party and is immutable (there are no operations to add, modify, or remove institutions). The items in the collection are ordered in the _embedded.items
array; the name
is institutions
. The top-level _links
object may contain pagination links (self
, next
, prev
, first
, last
, collection
).
Properties
Name | Description |
---|---|
_links | object An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
|
» additionalProperties | link Describes a hypermedia link within a _links object in HAL representations. In Apiture APIs, links are HAL links, but Apiture APIs do not use the name or hreflang properties of HAL. Apiture links may include a method property.
|
_embedded | object Embedded objects. |
» items | [institution] [The links in a institution may contain the following: * home - Home URL of the finantial website * icon - URL referencing an instution icon. The possible image formats are SVG, PNG or JPEG. The maximum aspect ratio for the image is 250*100.]
|
_profile | string(uri) The URI of a resource profile which describes the representation. |
_error | error An object which describes an error. This value is omitted if the operation succeeded without error. |
count | integer The number of items in the collection. This value is optional and my be omitted if the count is not computable efficiently. If a filter is applied to the collection (either implicitly or explicitly), the count, if present, indicates the number of items that satisfy the filter. |
start | integer The start index of this page of items. |
limit | integer The maximum number of items per page. |
name | string The name of the collection. |
institution
{
"name": "Example Bank Bancshares, Inc.",
"label": "Example Bank",
"featured": true,
"_profile": "https://api.apiture.com/schemas/accountVerifications/institution/v1.0.0/profile.json",
"_links": {
"self": {
"href": "/accountVerifications/institution/0399abed-fd3d-4830-a88b-30f38b8a365d"
},
"icon": {
"href": "http://d111111abcdef8.cloudfront.net/images/image2.jpg"
},
"home": {
"href": "https://www.bank.example.bank/"
}
}
}
Institution
The links in a institution may contain the following: * home
- Home URL of the finantial website * icon
- URL referencing an instution icon. The possible image formats are SVG, PNG or JPEG. The maximum aspect ratio for the image is 250*100.
Properties
Name | Description |
---|---|
_links | object An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
|
» additionalProperties | link Describes a hypermedia link within a _links object in HAL representations. In Apiture APIs, links are HAL links, but Apiture APIs do not use the name or hreflang properties of HAL. Apiture links may include a method property.
|
_embedded | object An optional map of nested resources, mapping each nested resource name to a nested resource representation. |
_profile | string(uri) The URI of a resource profile which describes the representation. |
_error | error An object which describes an error. This value is omitted if the operation succeeded without error. |
_id | string The unique identifier for this resource. This is an immutable opaque string. |
name | string Name of the financial institution. maxLength: 128
|
label | string Display name of the institution maxLength: 128
|
featured | boolean indicates whether the institution is highlighted as one of the top most popular institutions. |
authenticationFieldsResponse
{
"_profile": "https://api.apiture.com/accountVerifications/authenticationFields/v1.0.0/profile.json",
"_links": {
"self": {
"href": "/accountVerifications/institutions/0399abed-fd3d-4830-a88b-30f38b8a365c/authenticationFields"
}
},
"fields": [
{
"username": {
"title": "Online ID",
"value": "user123",
"type": "string"
}
},
{
"password": {
"title": "Password",
"value": "pass123",
"type": "string"
}
},
{
"pin": {
"title": "PIN",
"value": 123,
"type": "string"
}
}
]
}
Authentication Fields Response
Map of authentication fields.
Properties
Name | Description |
---|---|
_links | object An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
|
» additionalProperties | link Describes a hypermedia link within a _links object in HAL representations. In Apiture APIs, links are HAL links, but Apiture APIs do not use the name or hreflang properties of HAL. Apiture links may include a method property.
|
_embedded | object An optional map of nested resources, mapping each nested resource name to a nested resource representation. |
_profile | string(uri) The URI of a resource profile which describes the representation. |
_error | error An object which describes an error. This value is omitted if the operation succeeded without error. |
fields | authenticationFields Map of authentication fields. |
authenticationFields
[
{
"username": {
"title": "Online ID",
"value": "user123",
"type": "string"
}
},
{
"password": {
"title": "Password",
"value": "pass123",
"type": "string",
"format": "password"
}
},
{
"pin": {
"title": "PIN",
"value": 123,
"type": "string"
}
}
]
Authentication Fields
Map of authentication fields.
Properties
authenticationField
{
"username": {},
"title": "Online ID",
"type": "string"
}
Authentication Field
Representation of an authentication field.
Properties
createMicroDepositVerification
{
"routingNumber": "054100318",
"accountNumbers": {
"full": "7432172992"
}
}
Create Micro Deposit Verification
Representation used to create a micro-deposit verification resource.
Properties
Name | Description |
---|---|
_links | object An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
|
» additionalProperties | link Describes a hypermedia link within a _links object in HAL representations. In Apiture APIs, links are HAL links, but Apiture APIs do not use the name or hreflang properties of HAL. Apiture links may include a method property.
|
_embedded | object An optional map of nested resources, mapping each nested resource name to a nested resource representation. |
_profile | string(uri) The URI of a resource profile which describes the representation. |
_error | error An object which describes an error. This value is omitted if the operation succeeded without error. |
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
|
accountNumbers | accountNumbers (required) Different representations of an account number. |
accountType | string (required) The account type.
|
microDepositVerificationAmounts
{
"amounts": [
{
"value": ".02",
"currency": "USD",
"baseType": "credit"
},
{
"value": ".04",
"currency": "USD",
"baseType": "credit"
},
{
"value": ".06",
"currency": "USD",
"baseType": "debit"
}
]
}
Update Micro Deposits Verification
Representation used to update a micro-deposit verification resource.
Properties
Name | Description |
---|---|
_links | object An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
|
» additionalProperties | link Describes a hypermedia link within a _links object in HAL representations. In Apiture APIs, links are HAL links, but Apiture APIs do not use the name or hreflang properties of HAL. Apiture links may include a method property.
|
_embedded | object An optional map of nested resources, mapping each nested resource name to a nested resource representation. |
_profile | string(uri) The URI of a resource profile which describes the representation. |
_error | error An object which describes an error. This value is omitted if the operation succeeded without error. |
amounts | [microDeposit] (required) An array containing a page of account verification items. minItems: 1
|
microDeposit
{
"value": "string",
"currency": "string",
"baseType": "credit"
}
Micro-Deposit
A micro-deposit.
Properties
Name | Description |
---|---|
value | string (required) Numeric value for the micro-deposit. Must include a leading zero and two decimal places. This value will always be between 0.01 and 0.99. |
currency | string (required) ISO 4217 currency code of the micro-deposit. Currently the only supported currency is USD. |
baseType | string (required) Type of micro-deposit transaction.
|
microDepositVerification
{
"_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": "2eae46e1-575c-4d69-8a8f-0a7b0115a4b3",
"message": "The value for deposit must be greater than 0.",
"statusCode": 422,
"type": "positiveNumberRequired",
"attributes": {
"value": -125.5
},
"remediation": "Provide a value which is greater than 0",
"occurredAt": "2018-01-25T05:50:52.375Z",
"_links": {
"describedby": {
"href": "https://developer.apiture.com/errors/positiveNumberRequired"
}
},
"_embedded": {
"errors": []
}
},
"_id": "string",
"state": "pending",
"completedAt": "2019-11-21T15:33:07Z",
"createdAt": "2019-11-21T15:33:07Z",
"stateMessages": [
{}
]
}
Micro Deposit Verification
Representation of a micro-deposit verification resource.
Properties
Name | Description |
---|---|
_links | object An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
|
» additionalProperties | link Describes a hypermedia link within a _links object in HAL representations. In Apiture APIs, links are HAL links, but Apiture APIs do not use the name or hreflang properties of HAL. Apiture links may include a method property.
|
_embedded | object The objects which participate in this verification resource. |
_profile | string(uri) The URI of a resource profile which describes the representation. |
_error | error An object which describes an error. This value is omitted if the operation succeeded without error. |
_id | string The unique identifier for this resource. This is an immutable opaque string. |
state | string The state of the micro-deposit verification, one of the following:
|
completedAt | string(date-time) An ISO 8601 UTC time stamp indicating when the verification completed (has a status different from pending). |
createdAt | string(date-time) An ISO 8601 UTC time stamp indicating when the verification report was created. |
stateMessages | [object] An array of messages providing aditional information of the status of the verification. |
microDepositVerifications
{
"_links": {
"property1": {
"href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
"title": "Applicant"
},
"property2": {
"href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
"title": "Applicant"
}
},
"_embedded": {
"items": [
{
"_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": "2eae46e1-575c-4d69-8a8f-0a7b0115a4b3",
"message": "The value for deposit must be greater than 0.",
"statusCode": 422,
"type": "positiveNumberRequired",
"attributes": {
"value": -125.5
},
"remediation": "Provide a value which is greater than 0",
"occurredAt": "2018-01-25T05:50:52.375Z",
"_links": {
"describedby": {
"href": "https://developer.apiture.com/errors/positiveNumberRequired"
}
},
"_embedded": {
"errors": []
}
},
"_id": "string",
"state": "pending",
"completedAt": "2019-11-21T15:33:07Z",
"createdAt": "2019-11-21T15:33:07Z",
"stateMessages": [
{}
]
}
]
},
"_profile": "http://example.com",
"_error": {
"_id": "2eae46e1-575c-4d69-8a8f-0a7b0115a4b3",
"message": "The value for deposit must be greater than 0.",
"statusCode": 422,
"type": "positiveNumberRequired",
"attributes": {
"value": -125.5
},
"remediation": "Provide a value which is greater than 0",
"occurredAt": "2018-01-25T05:50:52.375Z",
"_links": {
"describedby": {
"href": "https://developer.apiture.com/errors/positiveNumberRequired"
}
},
"_embedded": {
"errors": []
}
},
"count": 0,
"start": 0,
"limit": 0,
"name": "string"
}
Micro Deposit Verification Collection
Collection of micro-deposit verifications. 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 | object An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
|
» additionalProperties | link Describes a hypermedia link within a _links object in HAL representations. In Apiture APIs, links are HAL links, but Apiture APIs do not use the name or hreflang properties of HAL. Apiture links may include a method property.
|
_embedded | object Embedded objects. |
» items | [microDepositVerification] An array containing a page of account verification items. |
_profile | string(uri) The URI of a resource profile which describes the representation. |
_error | error An object which describes an error. This value is omitted if the operation succeeded without error. |
count | integer The number of items in the collection. This value is optional and my be omitted if the count is not computable efficiently. If a filter is applied to the collection (either implicitly or explicitly), the count, if present, indicates the number of items that satisfy the filter. |
start | integer The start index of this page of items. |
limit | integer The maximum number of items per page. |
name | string The name of the collection. |
instantVerificationFields
{}
Instant Verification Fields
Common fields of an instant verification resource.
Properties
instantVerification
{
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"_profile": "https://api.apiture.com/schemas/accountVerifications/instantVerification/v1.0.0/profile.json",
"_links": {
"self": {
"href": "/accountVerifications/instantVerifications/0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:externalAccounts": {
"href": "/accountVerifications/instantVerifications/0399abed-fd3d-4830-a88b-30f38b8a365c/accounts"
},
"apiture:verificationReport": {
"href": "/accountVerifications/verificationReports?verification=0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:contact": {
"href": "/contacts/contacts/ef039bdb-5605-4802-b163-d2f7cdbd28ab"
},
"apiture:institution": {
"href": "/accountVerifications/institutions/961ffc1e-e1f1-11e8-8366-274c0a4e671e"
}
},
"state": "pending",
"mfaRequired": true,
"mfaPrompt": [
{
"key": 1,
"type": "TEXT",
"value": "Send code to",
"choices": [
{
"key": 1,
"value": "Mobile XXX-XXX-9771"
},
{
"key": 2,
"value": "Mobile XXX-XXX-9881"
}
]
}
]
}
Instant Verification
Representation of an instant verification resource.
Properties
Name | Description |
---|---|
_links | object An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
|
» additionalProperties | link Describes a hypermedia link within a _links object in HAL representations. In Apiture APIs, links are HAL links, but Apiture APIs do not use the name or hreflang properties of HAL. Apiture links may include a method property.
|
_embedded | object The objects which participate in this verification resource. |
_profile | string(uri) The URI of a resource profile which describes the representation. |
_error | error An object which describes an error. This value is omitted if the operation succeeded without error. |
_id | string The unique identifier for this resource. This is an immutable opaque string. |
state | string The state of the verification, one of the following:
|
completedAt | string(date-time) An ISO 8601 UTC time stamp indicating when the verification completed (has a status different from pending). |
createdAt | string(date-time) An ISO 8601 UTC time stamp indicating when the verification report was created. |
mfaRequired | boolean Indicates if multi-factor authentication (MFA) is required. |
mfaPrompt | mfaPrompt Representation of a multi-factor authentication challenge. |
stateMessages | [object] An array of messages providing aditional information of the status of the verification. |
summaryInstantVerification
{
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"_profile": "https://api.apiture.com/schemas/accountVerifications/instantVerification/v1.0.0/profile.json",
"_links": {
"self": {
"href": "/accountVerifications/instantVerifications/0399abed-fd3d-4830-a88b-30f38b8a365c"
}
},
"apiture:externalAccounts": {
"href": "/accountVerifications/instantVerifications/0399abed-fd3d-4830-a88b-30f38b8a365c/accounts"
},
"apiture:verificationReport": {
"href": "/accountVerifications/verificationReports?verification=0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:contact": {
"href": "/contacts/contacts/ef039bdb-5605-4802-b163-d2f7cdbd28ab"
},
"apiture:institution": {
"href": "/accountVerifications/institutions/961ffc1e-e1f1-11e8-8366-274c0a4e671e"
},
"state": "pending",
"mfaRequired": true
}
Summary Instant Verification
Summary representation of an instant verification resource.
Properties
Name | Description |
---|---|
_links | object An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
|
» additionalProperties | link Describes a hypermedia link within a _links object in HAL representations. In Apiture APIs, links are HAL links, but Apiture APIs do not use the name or hreflang properties of HAL. Apiture links may include a method property.
|
_embedded | object An optional map of nested resources, mapping each nested resource name to a nested resource representation. |
_profile | string(uri) The URI of a resource profile which describes the representation. |
_error | error An object which describes an error. This value is omitted if the operation succeeded without error. |
_id | string The unique identifier for this resource. This is an immutable opaque string. |
state | string The state of an instant account verification, one of the following:
|
featured | boolean indicates whether the institution resource is highlighted as one of the top most popular institutions. |
instantVerifications
{
"_profile": "https://api.apiture.com/schemas/accountVerifications/instantVerifications/v1.0.0/profile.json"
}
Instant Verification Collection
Collection of account verification. 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 | object An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
|
» additionalProperties | link Describes a hypermedia link within a _links object in HAL representations. In Apiture APIs, links are HAL links, but Apiture APIs do not use the name or hreflang properties of HAL. Apiture links may include a method property.
|
_embedded | object Embedded objects. |
» items | [summaryInstantVerification] An array containing a page of account verification items. |
_profile | string(uri) The URI of a resource profile which describes the representation. |
_error | error An object which describes an error. This value is omitted if the operation succeeded without error. |
count | integer The number of items in the collection. This value is optional and my be omitted if the count is not computable efficiently. If a filter is applied to the collection (either implicitly or explicitly), the count, if present, indicates the number of items that satisfy the filter. |
start | integer The start index of this page of items. |
limit | integer The maximum number of items per page. |
name | string The name of the collection. |
createInstantVerification
{
"_links": {
"apiture:institution": {
"href": "/accountVerifications/institutions/961ffc1e-e1f1-11e8-8366-274c0a4e671e"
},
"apiture:contact": {
"href": "/contacts/contact/0399abed-fd3d-4830-a88b-30f38b8a365c"
}
},
"authenticationFields": [
{
"username": {
"value": "user123"
}
},
{
"password": {
"value": "pass123"
}
},
{
"pin": {
"value": 123
}
}
]
}
Create Instant Verification
Representation used to create a new instant verification resource. The _links
on a createInstantVerification must include the following: apiture:</em>institution<code>* An institution must be provided to authenticate and retreive data from the financial institution provider. *</code>apiture:<em>contact
The contact associated to the account to verify.
Properties
Name | Description |
---|---|
_links | object An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
|
» additionalProperties | link Describes a hypermedia link within a _links object in HAL representations. In Apiture APIs, links are HAL links, but Apiture APIs do not use the name or hreflang properties of HAL. Apiture links may include a method property.
|
_embedded | object An optional map of nested resources, mapping each nested resource name to a nested resource representation. |
_profile | string(uri) The URI of a resource profile which describes the representation. |
_error | error An object which describes an error. This value is omitted if the operation succeeded without error. |
authenticationFields | authenticationFields Map of authentication fields. |
updateInstantVerification
{
"_profile": "https://api.apiture.com/schemas/accountVerifications/instantVerifications/v1.0.0/profile.json",
"_links": {
"apiture:institution": {
"href": "/institutions/institutions/0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:contact": {
"href": "/contacts/contact/0399abed-fd3d-4830-a88b-30f38b8a365c"
}
},
"mfa": {
"answers": [
{
"key": 1,
"value": "Mobile XXX-XXX-9771"
}
]
}
}
Update Instant Verification
Representation used to update an instant verification resource.
Properties
Name | Description |
---|---|
_links | object An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
|
» additionalProperties | link Describes a hypermedia link within a _links object in HAL representations. In Apiture APIs, links are HAL links, but Apiture APIs do not use the name or hreflang properties of HAL. Apiture links may include a method property.
|
_embedded | object An optional map of nested resources, mapping each nested resource name to a nested resource representation. |
_profile | string(uri) The URI of a resource profile which describes the representation. |
_error | error An object which describes an error. This value is omitted if the operation succeeded without error. |
mfa | mfaResponse (required) Representation of a multi-factor authentication (MFA) response. |
mfaPrompt
[
{
"key": 1,
"type": "TEXT",
"value": "What is the name of your state?",
"choices": [
{
"key": 1,
"value": "North Carolina"
},
{
"key": 2,
"value": "South Carolina"
}
]
},
{
"key": 2,
"type": "TEXT",
"value": "Send code to",
"choices": [
{
"key": 1,
"value": "Mobile XXX-XXX-9771"
},
{
"key": 2,
"value": "Mobile XXX-XXX-9881"
}
]
},
{
"key": 3,
"type": "TEXT",
"value": "Input the received code"
}
]
MFA Challenge
Representation of a multi-factor authentication challenge.
Properties
questionFields
{
"key": "string"
}
MFA Question Fields
Common question and answer fields.
Properties
Name | Description |
---|---|
key | string (required) The unique key for this question's fields. |
question
{
"key": "string",
"content": "string",
"_links": {
"property1": {
"href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
"title": "Applicant"
},
"property2": {
"href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
"title": "Applicant"
}
},
"choices": [
{
"type": "image",
"key": "string",
"value": "string",
"content": "string",
"_links": {
"property1": {
"href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
"title": "Applicant"
},
"property2": {
"href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
"title": "Applicant"
}
}
}
],
"type": "question",
"value": "string"
}
MFA Question
Representation of a multi-factor authentication question. The supported question formats are text and image, in which case the encoded payload is available under the content field.
Properties
Name | Description |
---|---|
key | string The unique key for this question's fields. |
content | string The question's content: the token value, or image URI. |
_links | links An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
|
choices | [choice] Optional array of choices for this question. |
type | string The question type.
|
value | string The question text. |
questionResponse
{
"key": "string",
"value": "string"
}
MFA Question Answer
Representation of a multi-factor authentication question answer.
Properties
Name | Description |
---|---|
key | string (required) The unique key for this question's fields. |
value | string (required) User provided value for this question. |
choice
{
"type": "image",
"key": "string",
"value": "string",
"content": "string",
"_links": {
"property1": {
"href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
"title": "Applicant"
},
"property2": {
"href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
"title": "Applicant"
}
}
}
MFA Choice
Representation of question choice.
Properties
Name | Description |
---|---|
type | string The user interface type of choice.
|
key | string The choice's unique key. |
value | string The choice's value. |
content | string The content specific to this choice. |
_links | links An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
|
mfaResponse
{
"answers": [
{
"key": "string",
"value": "string"
}
]
}
MFA Response
Representation of a multi-factor authentication (MFA) response.
Properties
Name | Description |
---|---|
answers | [questionResponse] The answers provided for this MFA request. |
verificationReport
{
"state": "failed",
"accountRiskFactors": [
{
"riskCode": 101,
"description": "Account owner first name does not match"
},
{
"riskCode": 102,
"description": "Account owner last name does not match"
},
{
"riskCode": 103,
"description": "Account owner zip code does not match"
}
]
}
Verification Report
A verification report is an additional layer of validation that can be run against an instant verification resource. It uses available account aggregation data to generate a pass/fail result based on configured risk factors.
Properties
Name | Description |
---|---|
state | string The state of a verification report. passed indicates that the verification does not conain any risk factors based upon the user and account information, failed indicates that the verification contains one or more risk factors.
|
accountRiskFactors | [riskFactor] Risk factors associated with the account verification. |
riskFactor
{
"riskCode": "string",
"description": "string",
"attributes": {
"value": "string",
"expected": [
"string"
]
}
}
Risk Factor
A risk factor indicates a mismatch between user data and available account data.
Properties
Name | Description |
---|---|
riskCode | string The risk factor risk code |
description | string The risk code description |
attributes | riskFactorAttributes Details of the data used to determine a risk factor. |
riskFactorAttributes
{
"value": "string",
"expected": [
"string"
]
}
Risk Factor Attributes
Details of the data used to determine a risk factor.
Properties
Name | Description |
---|---|
value | string Supplied value for risk factor analysis |
expected | [string] Known values referenced for risk factor analysis |
configuration
{
"_links": {
"self": {
"href": "/accountVerifications/configurations/"
},
"apiture:groups": {
"href": "/accountVerifications/configurations/groups"
}
}
}
Configuration
Represents the configuration for various services.
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.
|
configurationGroups
{
"_profile": "https://api.apiture.com/schemas/configurations/configurationGroups/v1.0.0/profile.json",
"start": 10,
"limit": 10,
"count": 67,
"name": "configurationGroups",
"_links": {
"self": {
"href": "/accountVerifications/configurations/groups?start=10&limit=10"
},
"first": {
"href": "/accountVerifications/configurations/groups?start=0&limit=10"
},
"next": {
"href": "/accountVerifications/configurations/groups?start=20&limit=10"
},
"collection": {
"href": "/accountVerifications/configurations/groups"
}
},
"_embedded": {
"items": [
{
"_profile": "https://api.apiture.com/schemas/configurations/configurationGroup/v1.0.0/profile.json",
"_links": {
"self": {
"href": "/accountVerifications/configurations/groups/basic"
},
"apiture:configuration": {
"href": "/accountVerifications/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": "/accountVerifications/configurations/groups/calendar"
},
"apiture:configuration": {
"href": "/accountVerifications/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
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 | object An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
|
» additionalProperties | link Describes a hypermedia link within a _links object in HAL representations. In Apiture APIs, links are HAL links, but Apiture APIs do not use the name or hreflang properties of HAL. Apiture links may include a method property.
|
_embedded | object Embedded 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 my be omitted if the count is not computable efficiently. If a filter is applied to the collection (either implicitly or explicitly), the count, if present, indicates the number of items that satisfy the filter. |
start | integer The start index of this page of items. |
limit | integer The maximum number of items per page. |
name | string The name of the collection. |
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": "2eae46e1-575c-4d69-8a8f-0a7b0115a4b3",
"message": "The value for deposit must be greater than 0.",
"statusCode": 422,
"type": "positiveNumberRequired",
"attributes": {
"value": -125.5
},
"remediation": "Provide a value which is greater than 0",
"occurredAt": "2018-01-25T05:50:52.375Z",
"_links": {
"describedby": {
"href": "https://developer.apiture.com/errors/positiveNumberRequired"
}
},
"_embedded": {
"errors": []
}
},
"name": "transfers",
"label": "Transfers Configuration",
"description": "The configuration for the Transfers API."
}
Configuration Group Summary
A summary of the data contained within a configuration group resource.
Properties
Name | Description |
---|---|
_links | object An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
|
» additionalProperties | link Describes a hypermedia link within a _links object in HAL representations. In Apiture APIs, links are HAL links, but Apiture APIs do not use the name or hreflang properties of HAL. Apiture links may include a method property.
|
_embedded | object An optional map of nested resources, mapping each nested resource name to a nested resource representation. |
_profile | string(uri) The URI of a resource profile which describes the representation. |
_error | error An object which describes an error. This value is omitted if the operation succeeded without error. |
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
|
configurationGroup
{
"_profile": "https://api.apiture.com/schemas/configurations/configurationGroup/v1.0.0/profile.json",
"_links": {
"self": {
"href": "/accountVerifications/configurations/groups/basic"
},
"apiture:configuration": {
"href": "/accountVerifications/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
Represents a configuration group.
Properties
Name | Description |
---|---|
_links | object An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
|
» additionalProperties | link Describes a hypermedia link within a _links object in HAL representations. In Apiture APIs, links are HAL links, but Apiture APIs do not use the name or hreflang properties of HAL. Apiture links may include a method property.
|
_embedded | object An optional map of nested resources, mapping each nested resource name to a nested resource representation. |
_profile | string(uri) The URI of a resource profile which describes the representation. |
_error | error An object which describes an error. This value is omitted if the operation succeeded without error. |
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 type: object and contains the properties. The |
values | configurationValues The data associated with this configuration: the resource's variable names and values. These values must conform to this item's schema . Note: the |
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
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
configurationValues
{
"dailyLimit": 5,
"cutoffTime": "17:30:00"
}
Configuration Values
The data associated with this configuration: the resource'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
error
{
"_id": "2eae46e1-575c-4d69-8a8f-0a7b0115a4b3",
"message": "The value for deposit must be greater than 0.",
"statusCode": 422,
"type": "positiveNumberRequired",
"attributes": {
"value": -125.5
},
"remediation": "Provide a value which is greater than 0",
"occurredAt": "2018-01-25T05:50:52.375Z",
"_links": {
"describedby": {
"href": "https://developer.apiture.com/errors/positiveNumberRequired"
}
},
"_embedded": {
"errors": []
}
}
Error
Describes an error in an API request or in a service called via the API.
Properties
Name | Description |
---|---|
message | string (required) A localized message string describing the error condition. |
_id | string A unique identifier for this error instance. This may be used as a correlation ID with the root cause error (i.e. this ID may be logged at the source of the error). This is is an opaque string. |
statusCode | integer The HTTP status code associate with this error. minimum: 100
maximum: 599
|
type | string An error identifier which indicates the category of error and associate it with API support documentation or which the UI tier can use to render an appropriate message or hint. This provides a finer level of granularity than the statusCode . For example, instead of just 400 Bad Request, the type may be much more specific. such as integerValueNotInAllowedRange or numericValueExceedsMaximum or stringValueNotInAllowedSet .
|
occurredAt | string(date-time) An RFC 3339 UTC time stamp indicating when the error occurred. |
attributes | attributes Informative values or constraints which describe the error. For example, for a value out of range error, the attributes may specify the minimum and maximum values. This allows clients to present error messages as they see fit (the API does not assume the client/presentation tier). The set of attributes varies by error type .
|
remediation | string An optional localized string which provides hints for how the user or client can resolve the error. |
errors | [error] An optional array of nested error objects. This property is not always present. |
_links | links An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
|
_embedded | object Embedded objects. An error object may contain nested errors. For example, an API which validates its request body may find multiple errors in the request, which are returned with an error response with nested errors. These are held in an items array of errorResponse objects. _embedded or _embedded.items may not exist if the error does not have nested errors. This property is deprecated; use see error.errors instead.
|
» items | [errorResponse] An array of error objects. |
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
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 | object An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
|
» additionalProperties | link Describes a hypermedia link within a _links object in HAL representations. In Apiture APIs, links are HAL links, but Apiture APIs do not use the name or hreflang properties of HAL. Apiture links may include a method property.
|
_embedded | object Embedded objects. |
» items | [summaryExternalAccount] An array containing a page of external account items. |
_profile | string(uri) The URI of a resource profile which describes the representation. |
_error | error An object which describes an error. This value is omitted if the operation succeeded without error. |
count | integer The number of items in the collection. This value is optional and my be omitted if the count is not computable efficiently. If a filter is applied to the collection (either implicitly or explicitly), the count, if present, indicates the number of items that satisfy the filter. |
start | integer The start index of this page of items. |
limit | integer The maximum number of items per page. |
name | string The name of the collection. |
errorResponse
{
"_profile": "https://api.apiture.com/schemas/common/errorResponse/v1.0.0/profile.json",
"_error": {
"_id": "2eae46e1-575c-4d69-8a8f-0a7b0115a4b3",
"message": "The value for deposit must be greater than 0.",
"statusCode": 422,
"type": "positiveNumberRequired",
"attributes": {
"value": -125.5
},
"remediation": "Provide a value which is greater than 0",
"occurredAt": "2018-01-25T05:50:52.375Z",
"_links": {
"describedby": {
"href": "https://api.apiture.com/errors/positiveNumberRequired"
}
},
"_embedded": {
"errors": []
}
}
}
Error Response
Describes an error response, typically returned on 4xx or 5xx errors from API operations. The _error
object contains the error details.
Properties
Name | Description |
---|---|
_links | object An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
|
» additionalProperties | link Describes a hypermedia link within a _links object in HAL representations. In Apiture APIs, links are HAL links, but Apiture APIs do not use the name or hreflang properties of HAL. Apiture links may include a method property.
|
_embedded | object An optional map of nested resources, mapping each nested resource name to a nested resource representation. |
_profile | string(uri) The URI of a resource profile which describes the representation. |
_error | error An object which describes an error. This value is omitted if the operation succeeded without error. |
root
{
"id": "apiName",
"name": "API name",
"apiVersion": "1.0.0",
"_profile": "https://api.apiture.com/schemas/common/root/v1.0.0/profile.json",
"_links": {}
}
API Root
A HAL response, with hypermedia _links
for the top-level resources and operations in API.
Properties
Name | Description |
---|---|
_links | object An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
|
» additionalProperties | link Describes a hypermedia link within a _links object in HAL representations. In Apiture APIs, links are HAL links, but Apiture APIs do not use the name or hreflang properties of HAL. Apiture links may include a method property.
|
_embedded | object An optional map of nested resources, mapping each nested resource name to a nested resource representation. |
_profile | string(uri) The URI of a resource profile which describes the representation. |
_error | error An object which describes an error. This value is omitted if the operation succeeded without error. |
_id | string This API's unique ID. |
name | string This API's name. |
apiVersion | string This API's version. |
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
|
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.
|
attributes
{}
Attributes
An optional map of name/value pairs which contains additional dynamic data about the resource.
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. |
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
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 | object An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
|
» additionalProperties | link Describes a hypermedia link within a _links object in HAL representations. In Apiture APIs, links are HAL links, but Apiture APIs do not use the name or hreflang properties of HAL. Apiture links may include a method property.
|
_embedded | object An optional map of nested resources, mapping each nested resource name to a nested resource representation. |
_profile | string(uri) The URI of a resource profile which describes the representation. |
_error | error An object which describes an error. This value is omitted if the operation succeeded without error. |
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 |
_id | string The unique identifier for this external account resource. This is an immutable opaque string. |
verifiedAt | string(date-time) The date-time when the external account was most recently verified. This is in RFC 3339 format, UTC. |
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 |
attributes | attributes An optional map of name/value pairs which contains additional dynamic data about the resource. |
externalAccountNumbers
{
"masked": "*************3210",
"full": "9876543210"
}
External Account Numbers
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
|
ifxType
"CCA"
IFX Account Type
A code which identifies the product type. This is one of the IFX AcctType values.
Type: string
Enumerated values: CCA
CDA
CLA
CMA
DDA
EQU
GLA
ILA
INV
IRA
IRL
LOC
MLA
MMA
PBA
PPA
RWD
SDA
externalAccountState
"active"
External Account State
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.
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
verifying
failed
active
inactive
frozen
closed