Customers v0.7.0
Scroll down for code samples, example requests and responses. Select a language for code samples from the tabs above or the mobile navigation menu.
Banking Customers. Customers can be either individuals or businesses who hold bank accounts.
Download OpenAPI Definition (YAML)
Base URLs:
License: Apiture API License
Authentication
- API Key (
apiKey
)- header parameter: API-Key
- API Key based client identification. See details at Secure Access.
- OpenID Connect authentication (
accessToken
)- OpenId Connect (OIDC) authentication/authorization. The client uses the
authorization_endpoint
andtoken_endpoint
to obtain an access token to pass in theAuthorization
header. Those endpoints are available via the OIDC Configuration URL. The actual URL may vary with each financial institution. See details at Secure Access. - OIDC Configuration URL =
https://oidc.apiture.com/oidc/.well-known/oidc-configuration
- OpenId Connect (OIDC) authentication/authorization. The client uses the
Customers
Banking Customers
getMyPreferences
Code samples
# You can also use wget
curl -X GET https://api.apiture.com/banking/customers/me/preferences \
-H 'Accept: application/json' \
-H 'Authorization: Bearer {access-token}'
GET https://api.apiture.com/banking/customers/me/preferences HTTP/1.1
Host: api.apiture.com
Accept: application/json
const fetch = require('node-fetch');
const headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.apiture.com/banking/customers/me/preferences',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
var headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.apiture.com/banking/customers/me/preferences',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.get 'https://api.apiture.com/banking/customers/me/preferences',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Bearer {access-token}'
}
r = requests.get('https://api.apiture.com/banking/customers/me/preferences', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.apiture.com/banking/customers/me/preferences");
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"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://api.apiture.com/banking/customers/me/preferences", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Return the customer's preferences
GET https://api.apiture.com/banking/customers/me/preferences
Return the customer's preferences, organized by preference groups.
Optionally, an agent can access a business customer's preferences when acting on behalf of that business customer.
Parameters
Parameter | Description |
---|---|
customerId | resourceId The optional identifier of a business customer. This is an opaque string. An agent who is operating on behalf of a business can use this to access the resources of that business customer. The agent must have entitlements to act on behalf of the business; if not, the operation returns a 403 Forbidden response. For other situations, omit this value, else this must match the authenticated caller's customer ID (not their access ID). minLength: 6 maxLength: 48 pattern: ^[-_:.~$a-zA-Z0-9]+$ |
Example responses
200 Response
{
"ach": {
"settlement": {
"ppdDebit": "summary",
"ppdCredit": "detailed",
"ctxDebit": "detailed",
"ctxCredit": "summary",
"ccdDebit": "summary",
"ccdCredit": "summary",
"achImport": "summary"
}
}
}
Responses
Status | Description |
---|---|
200 | OK |
OK. | |
Schema: customerPreferences |
Status | Description |
---|---|
400 | Bad Request |
Bad Request. The request body, request headers, and/or query parameters are not well-formed. This error response may have one of the following
| |
Schema: problemResponse |
Status | Description |
---|---|
401 | Unauthorized |
Unauthorized. The operation require authentication but none was given. This error response may have one of the following
| |
Schema: problemResponse | |
Header | WWW-Authenticate string |
Optionally indicates the authentication scheme(s) and parameters applicable to the target resource/operation. This normally occurs if the request requires authentication but no authentication was passed. A 401 Unauthorized response may also be used for operations that have valid credentials but which require step-up authentication. |
Status | Description |
---|---|
403 | Forbidden |
Forbidden. The authenticated caller is not authorized to perform the requested operation. This error response may have one of the following
| |
Schema: problemResponse |
Status | Description |
---|---|
422 | Unprocessable Entity |
Unprocessable Entity. The request body and/or query parameters were well formed but otherwise invalid. | |
Schema: problemResponse |
getMyAchPreferences
Code samples
# You can also use wget
curl -X GET https://api.apiture.com/banking/customers/me/preferences/ach \
-H 'Accept: application/json' \
-H 'Authorization: Bearer {access-token}'
GET https://api.apiture.com/banking/customers/me/preferences/ach HTTP/1.1
Host: api.apiture.com
Accept: application/json
const fetch = require('node-fetch');
const headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.apiture.com/banking/customers/me/preferences/ach',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
var headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.apiture.com/banking/customers/me/preferences/ach',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.get 'https://api.apiture.com/banking/customers/me/preferences/ach',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Bearer {access-token}'
}
r = requests.get('https://api.apiture.com/banking/customers/me/preferences/ach', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.apiture.com/banking/customers/me/preferences/ach");
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"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://api.apiture.com/banking/customers/me/preferences/ach", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Return the customer's ACH preferences
GET https://api.apiture.com/banking/customers/me/preferences/ach
Return the customer's preferences related to ACH batches.
Optionally, an agent can access a business customer's preferences when acting on behalf of that business customer.
Parameters
Parameter | Description |
---|---|
customerId | resourceId The optional identifier of a business customer. This is an opaque string. An agent who is operating on behalf of a business can use this to access the resources of that business customer. The agent must have entitlements to act on behalf of the business; if not, the operation returns a 403 Forbidden response. For other situations, omit this value, else this must match the authenticated caller's customer ID (not their access ID). minLength: 6 maxLength: 48 pattern: ^[-_:.~$a-zA-Z0-9]+$ |
Example responses
200 Response
{
"settlement": {
"ppdDebit": "summary",
"ppdCredit": "detailed",
"ctxDebit": "detailed",
"ctxCredit": "summary",
"ccdDebit": "summary",
"ccdCredit": "summary",
"achImport": "summary"
}
}
Responses
Status | Description |
---|---|
200 | OK |
OK. | |
Schema: customerAchPreferences |
Status | Description |
---|---|
400 | Bad Request |
Bad Request. The request body, request headers, and/or query parameters are not well-formed. This error response may have one of the following
| |
Schema: problemResponse |
Status | Description |
---|---|
401 | Unauthorized |
Unauthorized. The operation require authentication but none was given. This error response may have one of the following
| |
Schema: problemResponse | |
Header | WWW-Authenticate string |
Optionally indicates the authentication scheme(s) and parameters applicable to the target resource/operation. This normally occurs if the request requires authentication but no authentication was passed. A 401 Unauthorized response may also be used for operations that have valid credentials but which require step-up authentication. |
Status | Description |
---|---|
403 | Forbidden |
Forbidden. The authenticated caller is not authorized to perform the requested operation. This error response may have one of the following
| |
Schema: problemResponse |
patchMyAchPreferences
Code samples
# You can also use wget
curl -X PATCH https://api.apiture.com/banking/customers/me/preferences/ach \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer {access-token}'
PATCH https://api.apiture.com/banking/customers/me/preferences/ach HTTP/1.1
Host: api.apiture.com
Content-Type: application/json
Accept: application/json
const fetch = require('node-fetch');
const inputBody = '{
"settlement": {
"ppdDebit": "summary",
"ppdCredit": "detailed",
"ctxDebit": "detailed",
"ctxCredit": "summary",
"ccdDebit": "summary",
"ccdCredit": "summary",
"achImport": "summary"
}
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.apiture.com/banking/customers/me/preferences/ach',
{
method: 'PATCH',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
var headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.apiture.com/banking/customers/me/preferences/ach',
method: 'patch',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.patch 'https://api.apiture.com/banking/customers/me/preferences/ach',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer {access-token}'
}
r = requests.patch('https://api.apiture.com/banking/customers/me/preferences/ach', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.apiture.com/banking/customers/me/preferences/ach");
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/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("PATCH", "https://api.apiture.com/banking/customers/me/preferences/ach", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Update the customer's ACH preferences
PATCH https://api.apiture.com/banking/customers/me/preferences/ach
Perform a partial update of the customer's ACH preferences as per JSON Merge Patch format and processing rules. Only fields in the request body are updated on the resource; fields which are omitted are not updated.
Optionally, an agent can access a business customer's preferences when acting on behalf of that business customer.
Body parameter
{
"settlement": {
"ppdDebit": "summary",
"ppdCredit": "detailed",
"ctxDebit": "detailed",
"ctxCredit": "summary",
"ccdDebit": "summary",
"ccdCredit": "summary",
"achImport": "summary"
}
}
Parameters
Parameter | Description |
---|---|
customerId | resourceId The optional identifier of a business customer. This is an opaque string. An agent who is operating on behalf of a business can use this to access the resources of that business customer. The agent must have entitlements to act on behalf of the business; if not, the operation returns a 403 Forbidden response. For other situations, omit this value, else this must match the authenticated caller's customer ID (not their access ID). minLength: 6 maxLength: 48 pattern: ^[-_:.~$a-zA-Z0-9]+$ |
body | customerAchPreferencesPatch (required) |
Example responses
200 Response
{
"settlement": {
"ppdDebit": "summary",
"ppdCredit": "detailed",
"ctxDebit": "detailed",
"ctxCredit": "summary",
"ccdDebit": "summary",
"ccdCredit": "summary",
"achImport": "summary"
}
}
Responses
Status | Description |
---|---|
200 | OK |
OK. | |
Schema: customerAchPreferences |
Status | Description |
---|---|
400 | Bad Request |
Bad Request. The request body, request headers, and/or query parameters are not well-formed. This error response may have one of the following
| |
Schema: problemResponse |
Status | Description |
---|---|
401 | Unauthorized |
Unauthorized. The operation require authentication but none was given. This error response may have one of the following
| |
Schema: problemResponse | |
Header | WWW-Authenticate string |
Optionally indicates the authentication scheme(s) and parameters applicable to the target resource/operation. This normally occurs if the request requires authentication but no authentication was passed. A 401 Unauthorized response may also be used for operations that have valid credentials but which require step-up authentication. |
Status | Description |
---|---|
403 | Forbidden |
Forbidden. The authenticated caller is not authorized to perform the requested operation. This error response may have one of the following
| |
Schema: problemResponse |
Schemas
achPaymentSettlementType
"summary"
ACH Payment Settlement Type (v1.0.0)
Provides instruction for the system on how to process the payment batch.
The schema achPaymentSettlementType
was added on version 0.2.0
of the API.
achPaymentSettlementType
strings may have one of the following enumerated values:
Value | Description |
---|---|
summary | Summary: Creates a single offsetting entry in the settlement account for all instructions in the payment batch. |
detailed | Detailed: Creates individual offsetting entries in the settlement account for each instruction in the payment batch. |
Type: string
enum values: summary
, detailed
achSettlementPreference
{
"ppdDebit": "summary",
"ppdCredit": "detailed",
"ctxDebit": "detailed",
"ctxCredit": "summary",
"ccdDebit": "summary",
"ccdCredit": "summary",
"achImport": "summary"
}
ACH Settlement Preference (v1.0.0)
Indicates the ACH settlement type for payment batch creation. Preferences are set for various individual SEC codes for specific payment directions, as well as for imports via NACHA ACH file.
The schema achSettlementPreference
was added on version 0.2.0
of the API.
Properties
Name | Description | ||||||
---|---|---|---|---|---|---|---|
ppdDebit | string: achPaymentSettlementType (required) Provides instruction for the system on how to process the payment batch.
enum values: summary , detailed | ||||||
ppdCredit | string: achPaymentSettlementType (required) Provides instruction for the system on how to process the payment batch.
enum values: summary , detailed | ||||||
ctxDebit | string: achPaymentSettlementType (required) Provides instruction for the system on how to process the payment batch.
enum values: summary , detailed | ||||||
ctxCredit | string: achPaymentSettlementType (required) Provides instruction for the system on how to process the payment batch.
enum values: summary , detailed | ||||||
ccdDebit | string: achPaymentSettlementType (required) Provides instruction for the system on how to process the payment batch.
enum values: summary , detailed | ||||||
ccdCredit | string: achPaymentSettlementType (required) Provides instruction for the system on how to process the payment batch.
enum values: summary , detailed | ||||||
achImport | string: achPaymentSettlementType (required) Provides instruction for the system on how to process the payment batch.
enum values: summary , detailed |
apiProblem
{
"id": "3fbad566-be86-4b22-9ba6-3ca99fdc0799",
"type": "https://production.api.apiture.com/errors/accountNotFound/v1.0.0",
"title": "Account Not Found",
"status": 422,
"occurredAt": "2022-04-25T12:42:21.375Z",
"detail": "No account exists at the given account_url",
"instance": "https://production.api.apiture.com/banking/transfers/bb709151-575041fcd617"
}
API Problem (v1.1.0)
API problem or error, as per RFC 7807 application/problem+json.
Properties
Name | Description |
---|---|
type | string(uri-reference) A URI reference (RFC3986) that identifies the problem type. If present, this is the URL of human-readable HTML documentation for the problem type. When this member is not present, its value is assumed to be "about:blank" . |
title | string A short, human-readable summary of the problem type. The title is usually the same for all problem with the same type . |
status | integer(int32) The HTTP status code for this occurrence of the problem. minimum: 100 maximum: 599 |
detail | string A human-readable explanation specific to this occurrence of the problem. |
instance | string(uri-reference) A URI reference that identifies the specific occurrence of the problem. This is the URI of an API resource that the problem is related to, with a unique error correlation ID URI fragment |
id | string: readOnlyResourceId The unique identifier for this problem. This is an immutable opaque string. read-only minLength: 6 maxLength: 48 pattern: ^[-_:.~$a-zA-Z0-9]+$ |
occurredAt | string(date-time): readOnlyTimestamp The timestamp when the problem occurred, in RFC 3339 date-time YYYY-MM-DDThh:mm:ss.sssZ format, UTC.read-only minLength: 20 maxLength: 30 |
problems | array: [apiProblem] Optional root-causes if there are multiple problems in the request or API call processing. |
attributes | object Additional optional attributes related to the problem. This data conforms to the schema associated with the error type. |
customerAchPreferences
{
"settlement": {
"ppdDebit": "summary",
"ppdCredit": "detailed",
"ctxDebit": "detailed",
"ctxCredit": "summary",
"ccdDebit": "summary",
"ccdCredit": "summary",
"achImport": "summary"
}
}
Customer ACH Preferences (v1.0.0)
A digital banking customer's ACH Payment preferences.
The schema customerAchPreferences
was added on version 0.2.0
of the API.
Properties
Name | Description |
---|---|
settlement | object: achSettlementPreference (required) Preferences related to ACH settlement. |
customerAchPreferencesPatch
{
"settlement": {
"ppdDebit": "summary",
"ppdCredit": "detailed",
"ctxDebit": "detailed",
"ctxCredit": "summary",
"ccdDebit": "summary",
"ccdCredit": "summary",
"achImport": "summary"
}
}
Customer ACH Preferences Patch (v1.0.0)
Representation used to patch existing customer ACH preferences using the JSON Merge Patch format and processing rules.
The schema customerAchPreferencesPatch
was added on version 0.2.0
of the API.
Properties
Name | Description |
---|---|
settlement | object: achSettlementPreference Preferences related to ACH settlement. |
customerPreferences
{
"ach": {
"settlement": {
"ppdDebit": "summary",
"ppdCredit": "detailed",
"ctxDebit": "detailed",
"ctxCredit": "summary",
"ccdDebit": "summary",
"ccdCredit": "summary",
"achImport": "summary"
}
}
}
Customer Preference (v1.0.1)
Enumerated customer preferences grouped by preference category.
The schema customerPreferences
was added on version 0.2.0
of the API.
Properties
Name | Description |
---|---|
ach | object: customerAchPreferences Customer preferences related to ACH batch payments. |
customerReference
{
"id": "f48291b6-14ce",
"name": "Amanda Cummins"
}
Customer Reference (v1.0.0)
A reference to a customer. The name
property is the customer's name
at the time this reference was created.
Properties
Name | Description |
---|---|
id | string: resourceId (required) The unique id of the customer.minLength: 6 maxLength: 48 pattern: ^[-_:.~$a-zA-Z0-9]+$ |
name | string (required) The customer's full name. minLength: 2 maxLength: 48 |
phoneNumberType
"primary"
Phone Number Type (v1.0.0)
Describes the type of a banking customer's phone number.
phoneNumberType
strings may have one of the following enumerated values:
Value | Description |
---|---|
primary | Primary: The user's primary phone number |
secondary | Secondary: The user's secondary phone number |
mobile | Mobile: The user's mobile phone number |
fax | fax: The user's fax phone number |
alternate | Alternate: The user's alternate phone number |
Type: string
enum values: primary
, secondary
, mobile
, fax
, alternate
problemResponse
{
"id": "3fbad566-be86-4b22-9ba6-3ca99fdc0799",
"type": "https://production.api.apiture.com/errors/noSuchAccount/v1.0.0",
"title": "Account Not Found",
"status": 422,
"occurredAt": "2022-04-25T12:42:21.375Z",
"detail": "No account exists for the given account reference",
"instance": "https://production.api.apiture.com/banking/transfers/bb709151-575041fcd617"
}
Problem Response (v0.3.0)
API problem or error response, as per RFC 7807 application/problem+json.
Properties
Name | Description |
---|---|
type | string(uri-reference) A URI reference (RFC3986) that identifies the problem type. If present, this is the URL of human-readable HTML documentation for the problem type. When this member is not present, its value is assumed to be "about:blank" . |
title | string A short, human-readable summary of the problem type. The title is usually the same for all problem with the same type . |
status | integer(int32) The HTTP status code for this occurrence of the problem. minimum: 100 maximum: 599 |
detail | string A human-readable explanation specific to this occurrence of the problem. |
instance | string(uri-reference) A URI reference that identifies the specific occurrence of the problem. This is the URI of an API resource that the problem is related to, with a unique error correlation ID URI fragment |
id | string: readOnlyResourceId The unique identifier for this problem. This is an immutable opaque string. read-only minLength: 6 maxLength: 48 pattern: ^[-_:.~$a-zA-Z0-9]+$ |
occurredAt | string(date-time): readOnlyTimestamp The timestamp when the problem occurred, in RFC 3339 date-time YYYY-MM-DDThh:mm:ss.sssZ format, UTC.read-only minLength: 20 maxLength: 30 |
problems | array: [apiProblem] Optional root-causes if there are multiple problems in the request or API call processing. |
attributes | object Additional optional attributes related to the problem. This data conforms to the schema associated with the error type. |
readOnlyResourceId
"string"
Read-only Resource Identifier (v1.0.0)
The unique, opaque system-assigned identifier for a resource. This case-sensitive ID is also used in URLs as path parameters or in other properties or parameters that reference a resource by ID rather than URL. Resource IDs are immutable.
Type: string
read-only
minLength: 6
maxLength: 48
pattern: ^[-_:.~$a-zA-Z0-9]+$
readOnlyTimestamp
"2021-10-30T19:06:04.250Z"
Read-Only Timestamp (v1.0.0)
A readonly or derived timestamp (an instant in time) formatted in RFC 3339 date-time
UTC format: YYYY-MM-DDThh:mm:ss.sssZ
.
The schema readOnlyTimestamp
was added on version 0.4.0
of the API.
Type: string(date-time)
read-only
minLength: 20
maxLength: 30
resourceId
"string"
Resource Identifier (v1.0.0)
The unique, opaque system identifier for a resource. This case-sensitive ID is also used as path parameters in URLs or in other properties or parameters that reference a resource by ID rather than URL.
Type: string
minLength: 6
maxLength: 48
pattern: ^[-_:.~$a-zA-Z0-9]+$