Users v0.13.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.
The Users API provides operations to create and maintain online customers for the financial institution. A user represents a person who has registered for online digital banking. Each user resource contains contact information about them (their name, addresses, phone numbers, email addresses) as well as birthdate, government identification, citizenship, and other information that allows the financial institution to conform to regulations related to customers. Every user is uniquely identifiable by a system-generated unique identifier. Users can be created (never deleted) and the state of a user can be modified by authorized financial institution administrators. This API also maintains other banking information about a user, such as their funds transfer limits or other constraints. In addition to the basic operations to create and modify users, there are several actions supported for users. API links for these actions are described in the user
schema.
- Lock - if someone attempts to log in with an incorrect password too many times,
the user is locked.
(
POST /lockedUsers?user={userId}
). The user can be unlocked by resetting their password. Unlocking a user is done by reactivating them (POST /activeUsers?user={userId}
). - Deactivate - If the financial institution wishes to suspend a user's activity.
(
POST /inactiveUsers?user={userId}
). Inactive users can be reactivated (POST /activeUsers?user={userId}
)`. - Freeze - If the financial institution suspects fraudulent use of a user's account,
they can freeze a user.
(
POST /frozenUsers?user={userId}
). Unfreezing a user is done by reactivating them (POST /activeUsers?user={userId}
)`. - Remove - The financial institution can remove a user when they leave the financial institution.
(
POST /removedUsers?user={userId}
). The user resource is retained rather than being deleted, so that other audit and other information that references the user remains valid. This API also supports service configuration operations.
Multi-factor authentication challenges
To prevent account takeover attacks, some operations to update the user's profile require multi-factor authentication (MFA). An MFA challenge is a process to verify the user's identity through one or more additional authentication steps.
Some examples are the operations which change the user's preferred phone number:
setPreferredPhoneNumber
operationcreatePhoneNumber
operation when the?replaceId
names the current preferred phone number.
Both require an MFA challenge. When the client tries the operation without a valid redeemable Apiture-Challenge
request header, the operation may fail with a 409 Conflict. The response body, defined by the challengeErrorResponse
schema, contains a challenge
resource which includes one or more authenticators. The client should start at least one of the authenticators, optionally allowing the user choose which ones to use, depending on how many authenticators are required.
When changing the user's preferred phone number, for example, the challenge may include an authenticator that sends a verification code to the user's email account. The user completes the authentication by entering the code in the client application. Once the authentication step has completed successfully, the client must pass the resource ID of the challenge resource in the Apiture-Challenge
request header in order for the operation to update the user's profile information. Thus, these operations often require two tries: the first (without the Apiture-Challenge
header), which fails with a 409 status but returns the challenge object, then after completing the challenges' authenticators, a second try, passing in the Apiture-Challenge
header.
Download OpenAPI Definition (YAML)
Base URLs:
License: Pending.
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 |
---|---|
profiles/read |
Read access to user and contact related resources. |
profiles/write |
Write (update) access to user and contact related resources. |
profiles/delete |
Delete access to user and contact related resources. |
profiles/readPii |
Read access to personally identifiable information such as tax ID numbers, phone numbers, email and postal addresses. This must be granted in addition to the profiles/read scope in order to read such data, but is included in the profiles/full scope. |
profiles/full |
Full access to user and contact related resources. |
admin/read |
Read access to system configuration. |
admin/write |
Write (update) access to user and contact related resources just for administrative roles. |
admin/delete |
Delete access to system configuration. |
admin/full |
Full access to system configuration. |
API
Endpoints which describe this API
getApi
Code samples
# You can also use wget
curl -X GET https://api.devbank.apiture.com/users/ \
-H 'Accept: application/hal+json' \
-H 'API-Key: API_KEY'
GET https://api.devbank.apiture.com/users/ HTTP/1.1
Host: api.devbank.apiture.com
Accept: application/hal+json
var headers = {
'Accept':'application/hal+json',
'API-Key':'API_KEY'
};
$.ajax({
url: 'https://api.devbank.apiture.com/users/',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const headers = {
'Accept':'application/hal+json',
'API-Key':'API_KEY'
};
fetch('https://api.devbank.apiture.com/users/',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/hal+json',
'API-Key' => 'API_KEY'
}
result = RestClient.get 'https://api.devbank.apiture.com/users/',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/hal+json',
'API-Key': 'API_KEY'
}
r = requests.get('https://api.devbank.apiture.com/users/', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.devbank.apiture.com/users/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/hal+json"},
"API-Key": []string{"API_KEY"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://api.devbank.apiture.com/users/", 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. Links in the root response may include:
apiture:users
: A link to the collection of all users.apiture:createUser
: A link to create a new user (viaPOST
)
Try it
Fields marked with * are mandatory.
Response
Response Code:
Response Headers:
Response Body:
Click on 'Try It' to get a response.
Example responses
200 Response
{
"id": "apiName",
"name": "API name",
"apiVersion": "1.0.0",
"_profile": "http://localhost:8080/schemas/common/root/v1.0.0/profile.json",
"_links": {}
}
Responses
getApiDoc
Code samples
# You can also use wget
curl -X GET https://api.devbank.apiture.com/users/apiDoc \
-H 'Accept: application/json' \
-H 'API-Key: API_KEY'
GET https://api.devbank.apiture.com/users/apiDoc HTTP/1.1
Host: api.devbank.apiture.com
Accept: application/json
var headers = {
'Accept':'application/json',
'API-Key':'API_KEY'
};
$.ajax({
url: 'https://api.devbank.apiture.com/users/apiDoc',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const headers = {
'Accept':'application/json',
'API-Key':'API_KEY'
};
fetch('https://api.devbank.apiture.com/users/apiDoc',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'API-Key' => 'API_KEY'
}
result = RestClient.get 'https://api.devbank.apiture.com/users/apiDoc',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'API-Key': 'API_KEY'
}
r = requests.get('https://api.devbank.apiture.com/users/apiDoc', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.devbank.apiture.com/users/apiDoc");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"API-Key": []string{"API_KEY"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://api.devbank.apiture.com/users/apiDoc", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Return API definition document
GET /apiDoc
Return the OpenAPI document that describes this API.
Try it
Fields marked with * are mandatory.
Response
Response Code:
Response Headers:
Response Body:
Click on 'Try It' to get a response.
Example responses
200 Response
{}
Responses
Status | Description |
---|---|
200 | OK |
OK | |
Schema: Inline |
Response Schema
User
Endpoints to manage users
getUsers
Code samples
# You can also use wget
curl -X GET https://api.devbank.apiture.com/users/users \
-H 'Accept: application/hal+json' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
GET https://api.devbank.apiture.com/users/users HTTP/1.1
Host: api.devbank.apiture.com
Accept: application/hal+json
var headers = {
'Accept':'application/hal+json',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.devbank.apiture.com/users/users',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const headers = {
'Accept':'application/hal+json',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.devbank.apiture.com/users/users',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/hal+json',
'API-Key' => 'API_KEY',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.get 'https://api.devbank.apiture.com/users/users',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/hal+json',
'API-Key': 'API_KEY',
'Authorization': 'Bearer {access-token}'
}
r = requests.get('https://api.devbank.apiture.com/users/users', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.devbank.apiture.com/users/users");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/hal+json"},
"API-Key": []string{"API_KEY"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://api.devbank.apiture.com/users/users", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Return a collection of users
GET /users
Use this endpoint to retrieve a paginated, sortable, filterable, searchable collection of users. An authenticated user will have access only to their User resource. The links in the response include collecton pagination links. Each resource in the _embedded.items
array is a summary representation of a user; use the getUser
opertion on the summary's self
link to get the full representation of the user and all available links.
Parameters
Parameter | Description |
---|---|
start (query) |
integer(int64) The zero-based index of the first user in this page. The default, 0, represents the first page of the collection. |
limit (query) |
integer(int32) The maximum number of user 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. |
state (query) |
string Subset the users collection to those whose state matches this value. Use | to separate multiple values. For example, ?state=pending will match only items whose state is pending ; ?state=removed|inactive will match items whose state is removed or inactive . This is combined with an implicit and with other filters if they are used. See filtering. Enumerated values: locked frozen merged active inactive removed |
customerId (query) |
string Subset the users collection to those whose customerId matches this value. This is combined with an implicit and with other filters if they are used. See filtering. |
occupation (query) |
string Subset the users collection to those with this name value. Use | to separate multiple values. For example, ?occupation=education will match only items whose occupation is education ; ?occupation=education|farming will match items whose occupation is education or farming. This is combined with an implicit and with other filters if they are used. See filtering. |
Try it
Fields marked with * are mandatory.
Response
Response Code:
Response Headers:
Response Body:
Click on 'Try It' to get a response.
Example responses
200 Response
{
"_profile": "https://api.apiture.com/schemas/users/users/v1.0.0/profile.json",
"start": 0,
"limit": 10,
"count": 2,
"name": "users",
"_links": {
"self": {
"href": "/users?start=0&limit=10"
},
"first": {
"href": "/users?start=10&limit=10"
},
"next": {
"href": "/users?start=10&limit=10"
},
"collection": {
"href": "/users"
}
},
"_embedded": {
"items": [
{
"_id": "9604e5f8-da29-4197-b6fb-60a1cfecfba8",
"_profile": "https://api.apiture.com/schemas/users/user/v1.0.0/profile.json",
"_links": {
"self": {
"href": "/users/users/9604e5f8-da29-4197-b6fb-60a1cfecfba8"
},
"apiture:deactivate": {
"href": "/users/inactiveUsers?user=9604e5f8-da29-4197-b6fb-60a1cfecfba8"
},
"apiture:lock": {
"href": "/users/lockedUsers?user=9604e5f8-da29-4197-b6fb-60a1cfecfba8"
},
"apiture:freeze": {
"href": "/users/frozenUsers?user=9604e5f8-da29-4197-b6fb-60a1cfecfba8"
},
"apiture:remove": {
"href": "/users/removedUsers?user=9604e5f8-da29-4197-b6fb-60a1cfecfba8"
},
"apiture:merge": {
"href": "/users/mergedUsers"
}
},
"username": "Johnny1733",
"firstName": "John",
"middleName": "Daniel",
"lastName": "Smith",
"preferredName": "John",
"identification": [
{
"value": "111-11-1111",
"type": "taxId"
}
],
"customerId": "00047294723672",
"emailAddresses": [
{
"_id": "pe0",
"type": "personal",
"value": "johnny1733@example.com"
},
{
"_id": "we0",
"type": "work",
"value": "support@apiture.com"
}
],
"phones": [
{
"_id": "hp0",
"type": "home",
"number": "(555) 555-5555"
},
{
"_id": "mp0",
"type": "mobile",
"number": "(999) 555-5555"
}
],
"birthdate": "1974-10-27",
"citizenship": [
{
"countryCode": "US",
"state": "citizen"
}
],
"occupation": "Software Engineer",
"addresses": [
{
"type": "home",
"addressLine1": "555 N Front Street",
"addressLine2": "Suite 5555",
"city": "Wilmington",
"regionCode": "NC",
"postalCode": "28401-5405",
"countryCode": "US"
},
{
"type": "home",
"addressLine1": "123 S 3rd Street",
"addressLine2": "Apt 42",
"city": "Wilmington",
"regionCode": "NC",
"postalCode": "28411-5405",
"countryCode": "US"
}
],
"lastContactedAt": "2018-07-29T11:13:54Z",
"lastLoggedInAt": "2017-12-29T15:19:41Z",
"state": "active",
"createdAt": "2018-03-09T20:14:32Z"
},
{
"_id": "d1fabf13-31d1-4351-89ad-877ac4d1220a",
"_profile": "https://api.apiture.com/schemas/users/user/v1.0.0/profile.json",
"_links": {
"self": {
"href": "/users/users/d1fabf13-31d1-4351-89ad-877ac4d1220a"
},
"apiture:deactivate": {
"href": "/users/inactiveUsers?user=d1fabf13-31d1-4351-89ad-877ac4d1220a"
},
"apiture:lock": {
"href": "/users/lockedUsers?user=d1fabf13-31d1-4351-89ad-877ac4d1220a"
},
"apiture:freeze": {
"href": "/users/frozenUsers?user=d1fabf13-31d1-4351-89ad-877ac4d1220a"
},
"apiture:remove": {
"href": "/users/removedUsers?user=d1fabf13-31d1-4351-89ad-877ac4d1220a"
},
"apiture:merge": {
"href": "/users/mergedUsers"
}
},
"username": "LAS15",
"firstName": "Laura",
"middleName": "Eileen",
"lastName": "Smith",
"preferredName": "Laura",
"identification": [
{
"value": "111-11-1111",
"type": "taxId"
}
],
"emailAddresses": [
{
"_id": "pe0",
"type": "personal",
"value": "johnny1733@example.com"
},
{
"_id": "we0",
"type": "work",
"value": "support@apiture.com"
}
],
"phones": [
{
"_id": "hp0",
"type": "home",
"number": "(555) 555-5555"
},
{
"_id": "mp0",
"type": "mobile",
"number": "(999) 555-5555"
}
],
"birthdate": "1974-10-27",
"citizenship": [
{
"countryCode": "US",
"state": "citizen"
}
],
"occupation": "Software Engineer",
"addresses": [
{
"type": "home",
"addressLine1": "555 N Front Street",
"addressLine2": "Suite 5555",
"city": "Wilmington",
"regionCode": "NC",
"postalCode": "28401-5405",
"countryCode": "US"
},
{
"type": "home",
"addressLine1": "123 S 3rd Street",
"addressLine2": "Apt 42",
"city": "Wilmington",
"regionCode": "NC",
"postalCode": "28411-5405",
"countryCode": "US"
}
],
"lastContactedAt": "2018-07-29T11:13:54Z",
"lastLoggedInAt": "2017-12-29T15:19:41Z",
"state": "active",
"createdAt": "2018-07-29T11:13:54Z"
}
]
}
}
Responses
Status | Description |
---|---|
200 | OK |
OK | |
Schema: users |
Status | Description |
---|---|
400 | Bad Request |
Bad Request. The request body or one or more of the query parameters was not well formed. The _error field in the response will contain details about the request error. | |
Schema: errorResponse |
Status | Description |
---|---|
422 | Unprocessable Entity |
Unprocessable Entity. One or more of the query parameters was well formed but otherwise invalid. The _error field in the response will contain details about the request error. | |
Schema: errorResponse |
createUser
Code samples
# You can also use wget
curl -X POST https://api.devbank.apiture.com/users/users \
-H 'Content-Type: application/hal+json' \
-H 'Accept: application/hal+json' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
POST https://api.devbank.apiture.com/users/users HTTP/1.1
Host: api.devbank.apiture.com
Content-Type: application/hal+json
Accept: application/hal+json
var headers = {
'Content-Type':'application/hal+json',
'Accept':'application/hal+json',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.devbank.apiture.com/users/users',
method: 'post',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const inputBody = '{
"_links": {
"property1": {
"href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
"title": "Applicant"
},
"property2": {
"href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
"title": "Applicant"
}
},
"_embedded": {},
"_profile": "http://example.com",
"_error": {
"_id": "2eae46e1575c0a7b0115a4b3",
"message": "Descriptive error message...",
"statusCode": 422,
"type": "errorType1",
"remediation": "Remediation string...",
"occurredAt": "2018-01-25T05:50:52.375Z",
"errors": [
{
"_id": "ccdbe2c5c938a230667b3827",
"message": "An optional embedded error"
},
{
"_id": "dbe9088dcfe2460f229338a3",
"message": "Another optional embedded error"
}
],
"_links": {
"describedby": {
"href": "https://developer.apiture.com/errors/errorType1"
}
}
},
"firstName": "string",
"middleName": "string",
"lastName": "string",
"phones": [
{
"_id": "hp1",
"type": "home",
"number": "555-555-5555"
}
],
"prefix": "string",
"suffix": "string",
"preferredName": "string",
"identification": [
{
"type": "taxId",
"value": "111-11-1111",
"expiration": {}
}
],
"birthdate": "2020-01-27",
"citizenship": [
{
"countryCode": "US",
"state": "citizen"
}
],
"occupation": "unknown",
"otherOccupation": "string",
"username": "string",
"state": "active"
}';
const headers = {
'Content-Type':'application/hal+json',
'Accept':'application/hal+json',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.devbank.apiture.com/users/users',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/hal+json',
'Accept' => 'application/hal+json',
'API-Key' => 'API_KEY',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.post 'https://api.devbank.apiture.com/users/users',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/hal+json',
'Accept': 'application/hal+json',
'API-Key': 'API_KEY',
'Authorization': 'Bearer {access-token}'
}
r = requests.post('https://api.devbank.apiture.com/users/users', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.devbank.apiture.com/users/users");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/hal+json"},
"Accept": []string{"application/hal+json"},
"API-Key": []string{"API_KEY"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://api.devbank.apiture.com/users/users", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Create a new user
POST /users
Body parameter
{
"_links": {
"property1": {
"href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
"title": "Applicant"
},
"property2": {
"href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
"title": "Applicant"
}
},
"_embedded": {},
"_profile": "http://example.com",
"_error": {
"_id": "2eae46e1575c0a7b0115a4b3",
"message": "Descriptive error message...",
"statusCode": 422,
"type": "errorType1",
"remediation": "Remediation string...",
"occurredAt": "2018-01-25T05:50:52.375Z",
"errors": [
{
"_id": "ccdbe2c5c938a230667b3827",
"message": "An optional embedded error"
},
{
"_id": "dbe9088dcfe2460f229338a3",
"message": "Another optional embedded error"
}
],
"_links": {
"describedby": {
"href": "https://developer.apiture.com/errors/errorType1"
}
}
},
"firstName": "string",
"middleName": "string",
"lastName": "string",
"phones": [
{
"_id": "hp1",
"type": "home",
"number": "555-555-5555"
}
],
"prefix": "string",
"suffix": "string",
"preferredName": "string",
"identification": [
{
"type": "taxId",
"value": "111-11-1111",
"expiration": {}
}
],
"birthdate": "2020-01-27",
"citizenship": [
{
"countryCode": "US",
"state": "citizen"
}
],
"occupation": "unknown",
"otherOccupation": "string",
"username": "string",
"state": "active"
}
Parameters
Parameter | Description |
---|---|
body (body) |
createUser (required) The data necessary to create a new user. |
Try it
Fields marked with * are mandatory.
Response
Response Code:
Response Headers:
Response Body:
Click on 'Try It' to get a response.
Example responses
201 Response
{
"_id": "9604e5f8-da29-4197-b6fb-60a1cfecfba8",
"_profile": "https://api.apiture.com/schemas/users/user/v1.0.0/profile.json",
"username": "Johnny1733",
"firstName": "John",
"middleName": "Daniel",
"lastName": "Smith",
"preferredName": "John",
"identification": [
{
"value": "111-11-1111",
"type": "taxId",
"emailAddresses": [
{
"_id": "pe0",
"type": "personal",
"value": "johnny1733@example.com"
},
{
"_id": "we0",
"type": "work",
"value": "support@apiture.com"
}
]
}
],
"customerId": "00047294723672",
"phones": [
{
"_id": "hp0",
"type": "home",
"number": "(555) 555-5555"
},
{
"_id": "mp0",
"type": "mobile",
"number": "(999) 555-5555"
}
],
"birthdate": "1974-10-27",
"citizenship": [
{
"countryCode": "US",
"state": "citizen"
}
],
"occupation": "Software Engineer",
"addresses": [
{
"_id": "ha0",
"type": "home",
"addressLine1": "555 N Front Street",
"addressLine2": "Suite 5555",
"city": "Wilmington",
"regionCode": "NC",
"postalCode": "28401-5405",
"countryCode": "US"
},
{
"_id": "ha1",
"type": "home",
"addressLine1": "123 S 3rd Street",
"addressLine2": "Apt 42",
"city": "Wilmington",
"regionCode": "NC",
"postalCode": "28411-5405",
"countryCode": "Use"
}
],
"state": "active",
"attributes": {},
"_links": {
"self": {
"href": "/users/users/9604e5f8-da29-4197-b6fb-60a1cfecfba8"
},
"apiture:deactivate": {
"href": "/users/inactiveUsers?user=9604e5f8-da29-4197-b6fb-60a1cfecfba8"
},
"apiture:lock": {
"href": "/users/lockedUsers?user=9604e5f8-da29-4197-b6fb-60a1cfecfba8"
},
"apiture:freeze": {
"href": "/users/frozenUsers?user=9604e5f8-da29-4197-b6fb-60a1cfecfba8"
},
"apiture:remove": {
"href": "/users/removedUsers?user=9604e5f8-da29-4197-b6fb-60a1cfecfba8"
}
},
"createdAt": "2018-03-09T20:14:32Z",
"lastLoggedInAt": "2019-07-09T10:24:00Z",
"lastContactedAt": "2019-07-16T06:00:00Z"
}
Responses
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 schema ://host | |
201 | ETag string |
The ETag response header specifies an entity tag which may be provided in an If-Match request header for PUT or PATCH operations which update the resource. | |
202 | 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 schema ://host | |
202 | ETag string |
The ETag response header specifies an entity tag which may be provided in an If-Match request header for PUT or PATCH operations which update the resource. |
getUser
Code samples
# You can also use wget
curl -X GET https://api.devbank.apiture.com/users/users/{userId} \
-H 'Accept: application/hal+json' \
-H 'If-None-Match: string' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
GET https://api.devbank.apiture.com/users/users/{userId} HTTP/1.1
Host: api.devbank.apiture.com
Accept: application/hal+json
If-None-Match: string
var headers = {
'Accept':'application/hal+json',
'If-None-Match':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.devbank.apiture.com/users/users/{userId}',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const headers = {
'Accept':'application/hal+json',
'If-None-Match':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.devbank.apiture.com/users/users/{userId}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/hal+json',
'If-None-Match' => 'string',
'API-Key' => 'API_KEY',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.get 'https://api.devbank.apiture.com/users/users/{userId}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/hal+json',
'If-None-Match': 'string',
'API-Key': 'API_KEY',
'Authorization': 'Bearer {access-token}'
}
r = requests.get('https://api.devbank.apiture.com/users/users/{userId}', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.devbank.apiture.com/users/users/{userId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/hal+json"},
"If-None-Match": []string{"string"},
"API-Key": []string{"API_KEY"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://api.devbank.apiture.com/users/users/{userId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Fetch a representation of this user
GET /users/{userId}
Return a HAL representation of this user resource.
This representation will contain links related to the current user
as defined in the user
schema.
Parameters
Parameter | Description |
---|---|
userId (path) |
string (required) The unique identifier of the user. This is an opaque string. |
If-None-Match (header) |
string The entity tag that was returned in the ETag response. If the resource's current entity tag matches, the GET will return 304 (Not Modified) and no response body, else the resource representation will be returned. |
Try it
Fields marked with * are mandatory.
Response
Response Code:
Response Headers:
Response Body:
Click on 'Try It' to get a response.
Example responses
200 Response
{
"_id": "9604e5f8-da29-4197-b6fb-60a1cfecfba8",
"_profile": "https://api.apiture.com/schemas/users/user/v1.0.0/profile.json",
"username": "Johnny1733",
"firstName": "John",
"middleName": "Daniel",
"lastName": "Smith",
"preferredName": "John",
"identification": [
{
"value": "111-11-1111",
"type": "taxId",
"emailAddresses": [
{
"_id": "pe0",
"type": "personal",
"value": "johnny1733@example.com"
},
{
"_id": "we0",
"type": "work",
"value": "support@apiture.com"
}
]
}
],
"customerId": "00047294723672",
"phones": [
{
"_id": "hp0",
"type": "home",
"number": "(555) 555-5555"
},
{
"_id": "mp0",
"type": "mobile",
"number": "(999) 555-5555"
}
],
"birthdate": "1974-10-27",
"citizenship": [
{
"countryCode": "US",
"state": "citizen"
}
],
"occupation": "Software Engineer",
"addresses": [
{
"_id": "ha0",
"type": "home",
"addressLine1": "555 N Front Street",
"addressLine2": "Suite 5555",
"city": "Wilmington",
"regionCode": "NC",
"postalCode": "28401-5405",
"countryCode": "US"
},
{
"_id": "ha1",
"type": "home",
"addressLine1": "123 S 3rd Street",
"addressLine2": "Apt 42",
"city": "Wilmington",
"regionCode": "NC",
"postalCode": "28411-5405",
"countryCode": "Use"
}
],
"state": "active",
"attributes": {},
"_links": {
"self": {
"href": "/users/users/9604e5f8-da29-4197-b6fb-60a1cfecfba8"
},
"apiture:deactivate": {
"href": "/users/inactiveUsers?user=9604e5f8-da29-4197-b6fb-60a1cfecfba8"
},
"apiture:lock": {
"href": "/users/lockedUsers?user=9604e5f8-da29-4197-b6fb-60a1cfecfba8"
},
"apiture:freeze": {
"href": "/users/frozenUsers?user=9604e5f8-da29-4197-b6fb-60a1cfecfba8"
},
"apiture:remove": {
"href": "/users/removedUsers?user=9604e5f8-da29-4197-b6fb-60a1cfecfba8"
}
},
"createdAt": "2018-03-09T20:14:32Z",
"lastLoggedInAt": "2019-07-09T10:24:00Z",
"lastContactedAt": "2019-07-16T06:00:00Z"
}
Responses
Status | Description |
---|---|
200 | OK |
OK | |
Schema: user |
Status | Description |
---|---|
302 | Found |
Redirect. The specified user has a state of merged and will be redirected to the master user resource. | |
Schema: errorResponse |
Status | Description |
---|---|
404 | Not Found |
Not Found. There is no such user resource at the specified {userId} The _error field in the response will contain details about the request error. | |
Schema: errorResponse |
Response Headers
Status | Description |
---|---|
200 | ETag string |
The ETag response header specifies an entity tag which may be provided in an If-Match request header for PUT or PATCH operations which update this user resource. |
updateUser
Code samples
# You can also use wget
curl -X PUT https://api.devbank.apiture.com/users/users/{userId} \
-H 'Content-Type: application/hal+json' \
-H 'Accept: application/hal+json' \
-H 'If-Match: string' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
PUT https://api.devbank.apiture.com/users/users/{userId} HTTP/1.1
Host: api.devbank.apiture.com
Content-Type: application/hal+json
Accept: application/hal+json
If-Match: string
var headers = {
'Content-Type':'application/hal+json',
'Accept':'application/hal+json',
'If-Match':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.devbank.apiture.com/users/users/{userId}',
method: 'put',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const inputBody = '{
"_id": "9604e5f8-da29-4197-b6fb-60a1cfecfba8",
"_profile": "https://api.apiture.com/schemas/users/user/v1.0.0/profile.json",
"username": "Johnny1733",
"firstName": "John",
"middleName": "Daniel",
"lastName": "Smith",
"preferredName": "John",
"identification": [
{
"value": "111-11-1111",
"type": "taxId",
"emailAddresses": [
{
"_id": "pe0",
"type": "personal",
"value": "johnny1733@example.com"
},
{
"_id": "we0",
"type": "work",
"value": "support@apiture.com"
}
]
}
],
"customerId": "00047294723672",
"phones": [
{
"_id": "hp0",
"type": "home",
"number": "(555) 555-5555"
},
{
"_id": "mp0",
"type": "mobile",
"number": "(999) 555-5555"
}
],
"birthdate": "1974-10-27",
"citizenship": [
{
"countryCode": "US",
"state": "citizen"
}
],
"occupation": "Software Engineer",
"addresses": [
{
"_id": "ha0",
"type": "home",
"addressLine1": "555 N Front Street",
"addressLine2": "Suite 5555",
"city": "Wilmington",
"regionCode": "NC",
"postalCode": "28401-5405",
"countryCode": "US"
},
{
"_id": "ha1",
"type": "home",
"addressLine1": "123 S 3rd Street",
"addressLine2": "Apt 42",
"city": "Wilmington",
"regionCode": "NC",
"postalCode": "28411-5405",
"countryCode": "Use"
}
],
"state": "active",
"attributes": {},
"_links": {
"self": {
"href": "/users/users/9604e5f8-da29-4197-b6fb-60a1cfecfba8"
},
"apiture:deactivate": {
"href": "/users/inactiveUsers?user=9604e5f8-da29-4197-b6fb-60a1cfecfba8"
},
"apiture:lock": {
"href": "/users/lockedUsers?user=9604e5f8-da29-4197-b6fb-60a1cfecfba8"
},
"apiture:freeze": {
"href": "/users/frozenUsers?user=9604e5f8-da29-4197-b6fb-60a1cfecfba8"
},
"apiture:remove": {
"href": "/users/removedUsers?user=9604e5f8-da29-4197-b6fb-60a1cfecfba8"
}
},
"createdAt": "2018-03-09T20:14:32Z",
"lastLoggedInAt": "2019-07-09T10:24:00Z",
"lastContactedAt": "2019-07-16T06:00:00Z"
}';
const headers = {
'Content-Type':'application/hal+json',
'Accept':'application/hal+json',
'If-Match':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.devbank.apiture.com/users/users/{userId}',
{
method: 'PUT',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/hal+json',
'Accept' => 'application/hal+json',
'If-Match' => 'string',
'API-Key' => 'API_KEY',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.put 'https://api.devbank.apiture.com/users/users/{userId}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/hal+json',
'Accept': 'application/hal+json',
'If-Match': 'string',
'API-Key': 'API_KEY',
'Authorization': 'Bearer {access-token}'
}
r = requests.put('https://api.devbank.apiture.com/users/users/{userId}', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.devbank.apiture.com/users/users/{userId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PUT");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/hal+json"},
"Accept": []string{"application/hal+json"},
"If-Match": []string{"string"},
"API-Key": []string{"API_KEY"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("PUT", "https://api.devbank.apiture.com/users/users/{userId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Update this user
PUT /users/{userId}
Perform a complete replacement of this user.
Body parameter
{
"_id": "9604e5f8-da29-4197-b6fb-60a1cfecfba8",
"_profile": "https://api.apiture.com/schemas/users/user/v1.0.0/profile.json",
"username": "Johnny1733",
"firstName": "John",
"middleName": "Daniel",
"lastName": "Smith",
"preferredName": "John",
"identification": [
{
"value": "111-11-1111",
"type": "taxId",
"emailAddresses": [
{
"_id": "pe0",
"type": "personal",
"value": "johnny1733@example.com"
},
{
"_id": "we0",
"type": "work",
"value": "support@apiture.com"
}
]
}
],
"customerId": "00047294723672",
"phones": [
{
"_id": "hp0",
"type": "home",
"number": "(555) 555-5555"
},
{
"_id": "mp0",
"type": "mobile",
"number": "(999) 555-5555"
}
],
"birthdate": "1974-10-27",
"citizenship": [
{
"countryCode": "US",
"state": "citizen"
}
],
"occupation": "Software Engineer",
"addresses": [
{
"_id": "ha0",
"type": "home",
"addressLine1": "555 N Front Street",
"addressLine2": "Suite 5555",
"city": "Wilmington",
"regionCode": "NC",
"postalCode": "28401-5405",
"countryCode": "US"
},
{
"_id": "ha1",
"type": "home",
"addressLine1": "123 S 3rd Street",
"addressLine2": "Apt 42",
"city": "Wilmington",
"regionCode": "NC",
"postalCode": "28411-5405",
"countryCode": "Use"
}
],
"state": "active",
"attributes": {},
"_links": {
"self": {
"href": "/users/users/9604e5f8-da29-4197-b6fb-60a1cfecfba8"
},
"apiture:deactivate": {
"href": "/users/inactiveUsers?user=9604e5f8-da29-4197-b6fb-60a1cfecfba8"
},
"apiture:lock": {
"href": "/users/lockedUsers?user=9604e5f8-da29-4197-b6fb-60a1cfecfba8"
},
"apiture:freeze": {
"href": "/users/frozenUsers?user=9604e5f8-da29-4197-b6fb-60a1cfecfba8"
},
"apiture:remove": {
"href": "/users/removedUsers?user=9604e5f8-da29-4197-b6fb-60a1cfecfba8"
}
},
"createdAt": "2018-03-09T20:14:32Z",
"lastLoggedInAt": "2019-07-09T10:24:00Z",
"lastContactedAt": "2019-07-16T06:00:00Z"
}
Parameters
Parameter | Description |
---|---|
userId (path) |
string (required) The unique identifier of the user. This is an opaque string. |
If-Match (header) |
string The entity tag that was returned in the ETag response. If used, this must match the current entity tag of the resource. |
body (body) |
user (required) |
Try it
Fields marked with * are mandatory.
Response
Response Code:
Response Headers:
Response Body:
Click on 'Try It' to get a response.
Example responses
200 Response
{
"_id": "9604e5f8-da29-4197-b6fb-60a1cfecfba8",
"_profile": "https://api.apiture.com/schemas/users/user/v1.0.0/profile.json",
"username": "Johnny1733",
"firstName": "John",
"middleName": "Daniel",
"lastName": "Smith",
"preferredName": "John",
"identification": [
{
"value": "111-11-1111",
"type": "taxId",
"emailAddresses": [
{
"_id": "pe0",
"type": "personal",
"value": "johnny1733@example.com"
},
{
"_id": "we0",
"type": "work",
"value": "support@apiture.com"
}
]
}
],
"customerId": "00047294723672",
"phones": [
{
"_id": "hp0",
"type": "home",
"number": "(555) 555-5555"
},
{
"_id": "mp0",
"type": "mobile",
"number": "(999) 555-5555"
}
],
"birthdate": "1974-10-27",
"citizenship": [
{
"countryCode": "US",
"state": "citizen"
}
],
"occupation": "Software Engineer",
"addresses": [
{
"_id": "ha0",
"type": "home",
"addressLine1": "555 N Front Street",
"addressLine2": "Suite 5555",
"city": "Wilmington",
"regionCode": "NC",
"postalCode": "28401-5405",
"countryCode": "US"
},
{
"_id": "ha1",
"type": "home",
"addressLine1": "123 S 3rd Street",
"addressLine2": "Apt 42",
"city": "Wilmington",
"regionCode": "NC",
"postalCode": "28411-5405",
"countryCode": "Use"
}
],
"state": "active",
"attributes": {},
"_links": {
"self": {
"href": "/users/users/9604e5f8-da29-4197-b6fb-60a1cfecfba8"
},
"apiture:deactivate": {
"href": "/users/inactiveUsers?user=9604e5f8-da29-4197-b6fb-60a1cfecfba8"
},
"apiture:lock": {
"href": "/users/lockedUsers?user=9604e5f8-da29-4197-b6fb-60a1cfecfba8"
},
"apiture:freeze": {
"href": "/users/frozenUsers?user=9604e5f8-da29-4197-b6fb-60a1cfecfba8"
},
"apiture:remove": {
"href": "/users/removedUsers?user=9604e5f8-da29-4197-b6fb-60a1cfecfba8"
}
},
"createdAt": "2018-03-09T20:14:32Z",
"lastLoggedInAt": "2019-07-09T10:24:00Z",
"lastContactedAt": "2019-07-16T06:00:00Z"
}
Responses
Status | Description |
---|---|
200 | OK |
OK | |
Schema: user |
Status | Description |
---|---|
400 | Bad Request |
Bad Request. The request body or one or more of the query parameters was not well formed. The _error field in the response will contain details about the request error. | |
Schema: errorResponse |
Status | Description |
---|---|
404 | Not Found |
Not Found. There is no such user resource at the specified {userId} The _error field in the response will contain details about the request error. | |
Schema: errorResponse |
Status | Description |
---|---|
409 | Conflict |
Conflict. There is a conflict between the request and the current state of the resource. It may be one of the following:
| |
Schema: errorResponse |
Status | Description |
---|---|
412 | Precondition Failed |
Precondition Failed. The supplied If-Match header value does not match the most recent ETag response header value. The resource has changed in the interim. | |
Schema: errorResponse |
Status | Description |
---|---|
422 | Unprocessable Entity |
Unprocessable Entity. One or more of the query parameters was well formed but otherwise invalid. The _error field in the response will contain details about the request error. | |
Schema: errorResponse |
Response Headers
Status | Description |
---|---|
200 | ETag string |
The ETag response header specifies an entity tag which may be provided in an If-Match request header for PUT or PATCH operations which update this user resource. |
patchUser
Code samples
# You can also use wget
curl -X PATCH https://api.devbank.apiture.com/users/users/{userId} \
-H 'Content-Type: application/hal+json' \
-H 'Accept: application/hal+json' \
-H 'If-Match: string' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
PATCH https://api.devbank.apiture.com/users/users/{userId} HTTP/1.1
Host: api.devbank.apiture.com
Content-Type: application/hal+json
Accept: application/hal+json
If-Match: string
var headers = {
'Content-Type':'application/hal+json',
'Accept':'application/hal+json',
'If-Match':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.devbank.apiture.com/users/users/{userId}',
method: 'patch',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const inputBody = '{
"_id": "9604e5f8-da29-4197-b6fb-60a1cfecfba8",
"_profile": "https://api.apiture.com/schemas/users/user/v1.0.0/profile.json",
"username": "Johnny1733",
"firstName": "John",
"middleName": "Daniel",
"lastName": "Smith",
"preferredName": "John",
"identification": [
{
"value": "111-11-1111",
"type": "taxId",
"emailAddresses": [
{
"_id": "pe0",
"type": "personal",
"value": "johnny1733@example.com"
},
{
"_id": "we0",
"type": "work",
"value": "support@apiture.com"
}
]
}
],
"customerId": "00047294723672",
"phones": [
{
"_id": "hp0",
"type": "home",
"number": "(555) 555-5555"
},
{
"_id": "mp0",
"type": "mobile",
"number": "(999) 555-5555"
}
],
"birthdate": "1974-10-27",
"citizenship": [
{
"countryCode": "US",
"state": "citizen"
}
],
"occupation": "Software Engineer",
"addresses": [
{
"_id": "ha0",
"type": "home",
"addressLine1": "555 N Front Street",
"addressLine2": "Suite 5555",
"city": "Wilmington",
"regionCode": "NC",
"postalCode": "28401-5405",
"countryCode": "US"
},
{
"_id": "ha1",
"type": "home",
"addressLine1": "123 S 3rd Street",
"addressLine2": "Apt 42",
"city": "Wilmington",
"regionCode": "NC",
"postalCode": "28411-5405",
"countryCode": "Use"
}
],
"state": "active",
"attributes": {},
"_links": {
"self": {
"href": "/users/users/9604e5f8-da29-4197-b6fb-60a1cfecfba8"
},
"apiture:deactivate": {
"href": "/users/inactiveUsers?user=9604e5f8-da29-4197-b6fb-60a1cfecfba8"
},
"apiture:lock": {
"href": "/users/lockedUsers?user=9604e5f8-da29-4197-b6fb-60a1cfecfba8"
},
"apiture:freeze": {
"href": "/users/frozenUsers?user=9604e5f8-da29-4197-b6fb-60a1cfecfba8"
},
"apiture:remove": {
"href": "/users/removedUsers?user=9604e5f8-da29-4197-b6fb-60a1cfecfba8"
}
},
"createdAt": "2018-03-09T20:14:32Z",
"lastLoggedInAt": "2019-07-09T10:24:00Z",
"lastContactedAt": "2019-07-16T06:00:00Z"
}';
const headers = {
'Content-Type':'application/hal+json',
'Accept':'application/hal+json',
'If-Match':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.devbank.apiture.com/users/users/{userId}',
{
method: 'PATCH',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/hal+json',
'Accept' => 'application/hal+json',
'If-Match' => 'string',
'API-Key' => 'API_KEY',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.patch 'https://api.devbank.apiture.com/users/users/{userId}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/hal+json',
'Accept': 'application/hal+json',
'If-Match': 'string',
'API-Key': 'API_KEY',
'Authorization': 'Bearer {access-token}'
}
r = requests.patch('https://api.devbank.apiture.com/users/users/{userId}', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.devbank.apiture.com/users/users/{userId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PATCH");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/hal+json"},
"Accept": []string{"application/hal+json"},
"If-Match": []string{"string"},
"API-Key": []string{"API_KEY"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("PATCH", "https://api.devbank.apiture.com/users/users/{userId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Update this user
PATCH /users/{userId}
Perform a partial update of this user. Fields which are omitted are not updated.
Body parameter
{
"_id": "9604e5f8-da29-4197-b6fb-60a1cfecfba8",
"_profile": "https://api.apiture.com/schemas/users/user/v1.0.0/profile.json",
"username": "Johnny1733",
"firstName": "John",
"middleName": "Daniel",
"lastName": "Smith",
"preferredName": "John",
"identification": [
{
"value": "111-11-1111",
"type": "taxId",
"emailAddresses": [
{
"_id": "pe0",
"type": "personal",
"value": "johnny1733@example.com"
},
{
"_id": "we0",
"type": "work",
"value": "support@apiture.com"
}
]
}
],
"customerId": "00047294723672",
"phones": [
{
"_id": "hp0",
"type": "home",
"number": "(555) 555-5555"
},
{
"_id": "mp0",
"type": "mobile",
"number": "(999) 555-5555"
}
],
"birthdate": "1974-10-27",
"citizenship": [
{
"countryCode": "US",
"state": "citizen"
}
],
"occupation": "Software Engineer",
"addresses": [
{
"_id": "ha0",
"type": "home",
"addressLine1": "555 N Front Street",
"addressLine2": "Suite 5555",
"city": "Wilmington",
"regionCode": "NC",
"postalCode": "28401-5405",
"countryCode": "US"
},
{
"_id": "ha1",
"type": "home",
"addressLine1": "123 S 3rd Street",
"addressLine2": "Apt 42",
"city": "Wilmington",
"regionCode": "NC",
"postalCode": "28411-5405",
"countryCode": "Use"
}
],
"state": "active",
"attributes": {},
"_links": {
"self": {
"href": "/users/users/9604e5f8-da29-4197-b6fb-60a1cfecfba8"
},
"apiture:deactivate": {
"href": "/users/inactiveUsers?user=9604e5f8-da29-4197-b6fb-60a1cfecfba8"
},
"apiture:lock": {
"href": "/users/lockedUsers?user=9604e5f8-da29-4197-b6fb-60a1cfecfba8"
},
"apiture:freeze": {
"href": "/users/frozenUsers?user=9604e5f8-da29-4197-b6fb-60a1cfecfba8"
},
"apiture:remove": {
"href": "/users/removedUsers?user=9604e5f8-da29-4197-b6fb-60a1cfecfba8"
}
},
"createdAt": "2018-03-09T20:14:32Z",
"lastLoggedInAt": "2019-07-09T10:24:00Z",
"lastContactedAt": "2019-07-16T06:00:00Z"
}
Parameters
Parameter | Description |
---|---|
userId (path) |
string (required) The unique identifier of the user. This is an opaque string. |
If-Match (header) |
string The entity tag that was returned in the ETag response. If used, this must match the current entity tag of the resource. |
body (body) |
user (required) |
Try it
Fields marked with * are mandatory.
Response
Response Code:
Response Headers:
Response Body:
Click on 'Try It' to get a response.
Example responses
200 Response
{
"_id": "9604e5f8-da29-4197-b6fb-60a1cfecfba8",
"_profile": "https://api.apiture.com/schemas/users/user/v1.0.0/profile.json",
"username": "Johnny1733",
"firstName": "John",
"middleName": "Daniel",
"lastName": "Smith",
"preferredName": "John",
"identification": [
{
"value": "111-11-1111",
"type": "taxId",
"emailAddresses": [
{
"_id": "pe0",
"type": "personal",
"value": "johnny1733@example.com"
},
{
"_id": "we0",
"type": "work",
"value": "support@apiture.com"
}
]
}
],
"customerId": "00047294723672",
"phones": [
{
"_id": "hp0",
"type": "home",
"number": "(555) 555-5555"
},
{
"_id": "mp0",
"type": "mobile",
"number": "(999) 555-5555"
}
],
"birthdate": "1974-10-27",
"citizenship": [
{
"countryCode": "US",
"state": "citizen"
}
],
"occupation": "Software Engineer",
"addresses": [
{
"_id": "ha0",
"type": "home",
"addressLine1": "555 N Front Street",
"addressLine2": "Suite 5555",
"city": "Wilmington",
"regionCode": "NC",
"postalCode": "28401-5405",
"countryCode": "US"
},
{
"_id": "ha1",
"type": "home",
"addressLine1": "123 S 3rd Street",
"addressLine2": "Apt 42",
"city": "Wilmington",
"regionCode": "NC",
"postalCode": "28411-5405",
"countryCode": "Use"
}
],
"state": "active",
"attributes": {},
"_links": {
"self": {
"href": "/users/users/9604e5f8-da29-4197-b6fb-60a1cfecfba8"
},
"apiture:deactivate": {
"href": "/users/inactiveUsers?user=9604e5f8-da29-4197-b6fb-60a1cfecfba8"
},
"apiture:lock": {
"href": "/users/lockedUsers?user=9604e5f8-da29-4197-b6fb-60a1cfecfba8"
},
"apiture:freeze": {
"href": "/users/frozenUsers?user=9604e5f8-da29-4197-b6fb-60a1cfecfba8"
},
"apiture:remove": {
"href": "/users/removedUsers?user=9604e5f8-da29-4197-b6fb-60a1cfecfba8"
}
},
"createdAt": "2018-03-09T20:14:32Z",
"lastLoggedInAt": "2019-07-09T10:24:00Z",
"lastContactedAt": "2019-07-16T06:00:00Z"
}
Responses
Status | Description |
---|---|
200 | OK |
OK | |
Schema: user |
Status | Description |
---|---|
400 | Bad Request |
Bad Request. The request body or one or more of the query parameters was not well formed. The _error field in the response will contain details about the request error. | |
Schema: errorResponse |
Status | Description |
---|---|
404 | Not Found |
Not Found. There is no such user resource at the specified {userId} The _error field in the response will contain details about the request error. | |
Schema: errorResponse |
Status | Description |
---|---|
409 | Conflict |
Conflict. There is a conflict between the request and the current state of the resource. It may be one of the following:
| |
Schema: errorResponse |
Status | Description |
---|---|
412 | Precondition Failed |
Precondition Failed. The supplied If-Match header value does not match the most recent ETag response header value. The resource has changed in the interim. | |
Schema: errorResponse |
Status | Description |
---|---|
422 | Unprocessable Entity |
Unprocessable Entity. One or more of the query parameters was well formed but otherwise invalid. The _error field in the response will contain details about the request error. | |
Schema: errorResponse |
Response Headers
Status | Description |
---|---|
200 | ETag string |
The ETag response header specifies an entity tag which may be provided in an If-Match request header for PUT or PATCH operations which update this user resource. |
getUserConstraints
Code samples
# You can also use wget
curl -X GET https://api.devbank.apiture.com/users/users/{userId}/constraints \
-H 'Accept: application/hal+json' \
-H 'If-None-Match: string' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
GET https://api.devbank.apiture.com/users/users/{userId}/constraints HTTP/1.1
Host: api.devbank.apiture.com
Accept: application/hal+json
If-None-Match: string
var headers = {
'Accept':'application/hal+json',
'If-None-Match':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.devbank.apiture.com/users/users/{userId}/constraints',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const headers = {
'Accept':'application/hal+json',
'If-None-Match':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.devbank.apiture.com/users/users/{userId}/constraints',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/hal+json',
'If-None-Match' => 'string',
'API-Key' => 'API_KEY',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.get 'https://api.devbank.apiture.com/users/users/{userId}/constraints',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/hal+json',
'If-None-Match': 'string',
'API-Key': 'API_KEY',
'Authorization': 'Bearer {access-token}'
}
r = requests.get('https://api.devbank.apiture.com/users/users/{userId}/constraints', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.devbank.apiture.com/users/users/{userId}/constraints");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/hal+json"},
"If-None-Match": []string{"string"},
"API-Key": []string{"API_KEY"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://api.devbank.apiture.com/users/users/{userId}/constraints", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Fetch a representation of this user's constraints
GET /users/{userId}/constraints
Return a HAL representation of this user's constraints resource. Constraints are limits and other values established for the user, such as single or daily transfer limits.
Parameters
Parameter | Description |
---|---|
userId (path) |
string (required) The unique identifier of the user. This is an opaque string. |
If-None-Match (header) |
string The entity tag that was returned in the ETag response. If the resource's current entity tag matches, the GET will return 304 (Not Modified) and no response body, else the resource representation will be returned. |
Try it
Fields marked with * are mandatory.
Response
Response Code:
Response Headers:
Response Body:
Click on 'Try It' to get a response.
Example responses
200 Response
{
"_links": {
"property1": {
"href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
"title": "Applicant"
},
"property2": {
"href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
"title": "Applicant"
}
},
"_embedded": {},
"_profile": "http://example.com",
"_error": {
"_id": "2eae46e1575c0a7b0115a4b3",
"message": "Descriptive error message...",
"statusCode": 422,
"type": "errorType1",
"remediation": "Remediation string...",
"occurredAt": "2018-01-25T05:50:52.375Z",
"errors": [
{
"_id": "ccdbe2c5c938a230667b3827",
"message": "An optional embedded error"
},
{
"_id": "dbe9088dcfe2460f229338a3",
"message": "Another optional embedded error"
}
],
"_links": {
"describedby": {
"href": "https://developer.apiture.com/errors/errorType1"
}
}
},
"transfers": {
"singleCreditLimit": "20000.00",
"singleDebitLimit": "20000.00",
"dailyCreditLimit": "500000.00",
"dailyDebitLimit": "500000.00"
},
"checkDeposits": {
"enabled": true,
"monthlyTotalAmountLimit": "30000.00",
"monthlyTotalChecksLimit": 200
}
}
Responses
Status | Description |
---|---|
200 | OK |
OK | |
Schema: constraints |
Status | Description |
---|---|
404 | Not Found |
Not Found. There is no such user resource at the specified {userId} The _error field in the response will contain details about the request error. | |
Schema: errorResponse |
Response Headers
Status | Description |
---|---|
200 | ETag string |
The ETag response header specifies an entity tag which may be provided in an If-Match request header for PUT or PATCH operations which update this user resource. |
updateUserConstraints
Code samples
# You can also use wget
curl -X PUT https://api.devbank.apiture.com/users/users/{userId}/constraints \
-H 'Content-Type: application/hal+json' \
-H 'Accept: application/hal+json' \
-H 'If-Match: string' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
PUT https://api.devbank.apiture.com/users/users/{userId}/constraints HTTP/1.1
Host: api.devbank.apiture.com
Content-Type: application/hal+json
Accept: application/hal+json
If-Match: string
var headers = {
'Content-Type':'application/hal+json',
'Accept':'application/hal+json',
'If-Match':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.devbank.apiture.com/users/users/{userId}/constraints',
method: 'put',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const inputBody = '{
"transfers": {
"singleCreditLimit": "20000.00",
"singleDebitLimit": "20000.00",
"dailyCreditLimit": "500000.00",
"dailyDebitLimit": "500000.00"
},
"checkDeposits": {
"enabled": true,
"monthlyTotalAmountLimit": "30000.00",
"monthlyTotalChecksLimit": 200
}
}';
const headers = {
'Content-Type':'application/hal+json',
'Accept':'application/hal+json',
'If-Match':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.devbank.apiture.com/users/users/{userId}/constraints',
{
method: 'PUT',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/hal+json',
'Accept' => 'application/hal+json',
'If-Match' => 'string',
'API-Key' => 'API_KEY',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.put 'https://api.devbank.apiture.com/users/users/{userId}/constraints',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/hal+json',
'Accept': 'application/hal+json',
'If-Match': 'string',
'API-Key': 'API_KEY',
'Authorization': 'Bearer {access-token}'
}
r = requests.put('https://api.devbank.apiture.com/users/users/{userId}/constraints', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.devbank.apiture.com/users/users/{userId}/constraints");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PUT");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/hal+json"},
"Accept": []string{"application/hal+json"},
"If-Match": []string{"string"},
"API-Key": []string{"API_KEY"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("PUT", "https://api.devbank.apiture.com/users/users/{userId}/constraints", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Update this user's constraints
PUT /users/{userId}/constraints
Perform a complete replacement of this user's constraints. This operation is performed by an admin. A user cannot change their own limits.
Body parameter
{
"transfers": {
"singleCreditLimit": "20000.00",
"singleDebitLimit": "20000.00",
"dailyCreditLimit": "500000.00",
"dailyDebitLimit": "500000.00"
},
"checkDeposits": {
"enabled": true,
"monthlyTotalAmountLimit": "30000.00",
"monthlyTotalChecksLimit": 200
}
}
Parameters
Parameter | Description |
---|---|
userId (path) |
string (required) The unique identifier of the user. This is an opaque string. |
If-Match (header) |
string The entity tag that was returned in the ETag response. If used, this must match the current entity tag of the resource. |
body (body) |
updateConstraints (required) |
Try it
Fields marked with * are mandatory.
Response
Response Code:
Response Headers:
Response Body:
Click on 'Try It' to get a response.
Example responses
200 Response
{
"_links": {
"property1": {
"href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
"title": "Applicant"
},
"property2": {
"href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
"title": "Applicant"
}
},
"_embedded": {},
"_profile": "http://example.com",
"_error": {
"_id": "2eae46e1575c0a7b0115a4b3",
"message": "Descriptive error message...",
"statusCode": 422,
"type": "errorType1",
"remediation": "Remediation string...",
"occurredAt": "2018-01-25T05:50:52.375Z",
"errors": [
{
"_id": "ccdbe2c5c938a230667b3827",
"message": "An optional embedded error"
},
{
"_id": "dbe9088dcfe2460f229338a3",
"message": "Another optional embedded error"
}
],
"_links": {
"describedby": {
"href": "https://developer.apiture.com/errors/errorType1"
}
}
},
"transfers": {
"singleCreditLimit": "20000.00",
"singleDebitLimit": "20000.00",
"dailyCreditLimit": "500000.00",
"dailyDebitLimit": "500000.00"
},
"checkDeposits": {
"enabled": true,
"monthlyTotalAmountLimit": "30000.00",
"monthlyTotalChecksLimit": 200
}
}
Responses
Status | Description |
---|---|
200 | OK |
OK | |
Schema: constraints |
Status | Description |
---|---|
404 | Not Found |
Not Found. There is no such user resource at the specified {userId} The _error field in the response will contain details about the request error. | |
Schema: errorResponse |
Status | Description |
---|---|
412 | Precondition Failed |
Precondition Failed. The supplied If-Match header value does not match the most recent ETag response header value. The resource has changed in the interim. | |
Schema: errorResponse |
Status | Description |
---|---|
422 | Unprocessable Entity |
Unprocessable Entity. One or more of the query parameters was well formed but otherwise invalid. The _error field in the response will contain details about the request error. | |
Schema: errorResponse |
Response Headers
Status | Description |
---|---|
200 | ETag string |
The ETag response header specifies an entity tag which may be provided in an If-Match request header for PUT or PATCH operations which update this user resource. |
patchUserConstraints
Code samples
# You can also use wget
curl -X PATCH https://api.devbank.apiture.com/users/users/{userId}/constraints \
-H 'Content-Type: application/hal+json' \
-H 'Accept: application/hal+json' \
-H 'If-Match: string' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
PATCH https://api.devbank.apiture.com/users/users/{userId}/constraints HTTP/1.1
Host: api.devbank.apiture.com
Content-Type: application/hal+json
Accept: application/hal+json
If-Match: string
var headers = {
'Content-Type':'application/hal+json',
'Accept':'application/hal+json',
'If-Match':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.devbank.apiture.com/users/users/{userId}/constraints',
method: 'patch',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const inputBody = '{
"transfers": {
"singleCreditLimit": "20000.00",
"singleDebitLimit": "20000.00",
"dailyCreditLimit": "500000.00",
"dailyDebitLimit": "500000.00"
},
"checkDeposits": {
"enabled": true,
"monthlyTotalAmountLimit": "30000.00",
"monthlyTotalChecksLimit": 200
}
}';
const headers = {
'Content-Type':'application/hal+json',
'Accept':'application/hal+json',
'If-Match':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.devbank.apiture.com/users/users/{userId}/constraints',
{
method: 'PATCH',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/hal+json',
'Accept' => 'application/hal+json',
'If-Match' => 'string',
'API-Key' => 'API_KEY',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.patch 'https://api.devbank.apiture.com/users/users/{userId}/constraints',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/hal+json',
'Accept': 'application/hal+json',
'If-Match': 'string',
'API-Key': 'API_KEY',
'Authorization': 'Bearer {access-token}'
}
r = requests.patch('https://api.devbank.apiture.com/users/users/{userId}/constraints', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.devbank.apiture.com/users/users/{userId}/constraints");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PATCH");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/hal+json"},
"Accept": []string{"application/hal+json"},
"If-Match": []string{"string"},
"API-Key": []string{"API_KEY"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("PATCH", "https://api.devbank.apiture.com/users/users/{userId}/constraints", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Update this user's constraints
PATCH /users/{userId}/constraints
Perform a partial update of this user's constraints, a user should not be able to change their own limits. Fields which are omitted are not updated.
Body parameter
{
"transfers": {
"singleCreditLimit": "20000.00",
"singleDebitLimit": "20000.00",
"dailyCreditLimit": "500000.00",
"dailyDebitLimit": "500000.00"
},
"checkDeposits": {
"enabled": true,
"monthlyTotalAmountLimit": "30000.00",
"monthlyTotalChecksLimit": 200
}
}
Parameters
Parameter | Description |
---|---|
userId (path) |
string (required) The unique identifier of the user. This is an opaque string. |
If-Match (header) |
string The entity tag that was returned in the ETag response. If used, this must match the current entity tag of the resource. |
body (body) |
updateConstraints (required) |
Try it
Fields marked with * are mandatory.
Response
Response Code:
Response Headers:
Response Body:
Click on 'Try It' to get a response.
Example responses
200 Response
{
"_links": {
"property1": {
"href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
"title": "Applicant"
},
"property2": {
"href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
"title": "Applicant"
}
},
"_embedded": {},
"_profile": "http://example.com",
"_error": {
"_id": "2eae46e1575c0a7b0115a4b3",
"message": "Descriptive error message...",
"statusCode": 422,
"type": "errorType1",
"remediation": "Remediation string...",
"occurredAt": "2018-01-25T05:50:52.375Z",
"errors": [
{
"_id": "ccdbe2c5c938a230667b3827",
"message": "An optional embedded error"
},
{
"_id": "dbe9088dcfe2460f229338a3",
"message": "Another optional embedded error"
}
],
"_links": {
"describedby": {
"href": "https://developer.apiture.com/errors/errorType1"
}
}
},
"transfers": {
"singleCreditLimit": "20000.00",
"singleDebitLimit": "20000.00",
"dailyCreditLimit": "500000.00",
"dailyDebitLimit": "500000.00"
},
"checkDeposits": {
"enabled": true,
"monthlyTotalAmountLimit": "30000.00",
"monthlyTotalChecksLimit": 200
}
}
Responses
Status | Description |
---|---|
200 | OK |
OK | |
Schema: constraints |
Status | Description |
---|---|
404 | Not Found |
Not Found. There is no such user resource at the specified {userId} The _error field in the response will contain details about the request error. | |
Schema: errorResponse |
Status | Description |
---|---|
412 | Precondition Failed |
Precondition Failed. The supplied If-Match header value does not match the most recent ETag response header value. The resource has changed in the interim. | |
Schema: errorResponse |
Status | Description |
---|---|
422 | Unprocessable Entity |
Unprocessable Entity. One or more of the query parameters was well formed but otherwise invalid. The _error field in the response will contain details about the request error. | |
Schema: errorResponse |
Response Headers
Status | Description |
---|---|
200 | ETag string |
The ETag response header specifies an entity tag which may be provided in an If-Match request header for PUT or PATCH operations which update this user resource. |
User Actions
Actions on users
removeUser
Code samples
# You can also use wget
curl -X POST https://api.devbank.apiture.com/users/removedUsers \
-H 'Accept: application/hal+json' \
-H 'If-Match: string' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
POST https://api.devbank.apiture.com/users/removedUsers HTTP/1.1
Host: api.devbank.apiture.com
Accept: application/hal+json
If-Match: string
var headers = {
'Accept':'application/hal+json',
'If-Match':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.devbank.apiture.com/users/removedUsers',
method: 'post',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const headers = {
'Accept':'application/hal+json',
'If-Match':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.devbank.apiture.com/users/removedUsers',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/hal+json',
'If-Match' => 'string',
'API-Key' => 'API_KEY',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.post 'https://api.devbank.apiture.com/users/removedUsers',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/hal+json',
'If-Match': 'string',
'API-Key': 'API_KEY',
'Authorization': 'Bearer {access-token}'
}
r = requests.post('https://api.devbank.apiture.com/users/removedUsers', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.devbank.apiture.com/users/removedUsers");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/hal+json"},
"If-Match": []string{"string"},
"API-Key": []string{"API_KEY"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://api.devbank.apiture.com/users/removedUsers", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Remove a user
POST /removedUsers
Remove a user from active use.
This operation is invoked from the apiture:remove
link on a user
resource when that user is eligible to be removed.
This changes the state
to removed
.
Parameters
Parameter | Description |
---|---|
user (query) |
string The ID or URI of an existing user which is eligible to be removed. |
If-Match (header) |
string The entity tag that was returned in the ETag response. If used, this must match the current entity tag of the resource. |
Try it
Fields marked with * are mandatory.
Response
Response Code:
Response Headers:
Response Body:
Click on 'Try It' to get a response.
Example responses
200 Response
{
"_id": "9604e5f8-da29-4197-b6fb-60a1cfecfba8",
"_profile": "https://api.apiture.com/schemas/users/user/v1.0.0/profile.json",
"username": "Johnny1733",
"firstName": "John",
"middleName": "Daniel",
"lastName": "Smith",
"preferredName": "John",
"identification": [
{
"value": "111-11-1111",
"type": "taxId",
"emailAddresses": [
{
"_id": "pe0",
"type": "personal",
"value": "johnny1733@example.com"
},
{
"_id": "we0",
"type": "work",
"value": "support@apiture.com"
}
]
}
],
"customerId": "00047294723672",
"phones": [
{
"_id": "hp0",
"type": "home",
"number": "(555) 555-5555"
},
{
"_id": "mp0",
"type": "mobile",
"number": "(999) 555-5555"
}
],
"birthdate": "1974-10-27",
"citizenship": [
{
"countryCode": "US",
"state": "citizen"
}
],
"occupation": "Software Engineer",
"addresses": [
{
"_id": "ha0",
"type": "home",
"addressLine1": "555 N Front Street",
"addressLine2": "Suite 5555",
"city": "Wilmington",
"regionCode": "NC",
"postalCode": "28401-5405",
"countryCode": "US"
},
{
"_id": "ha1",
"type": "home",
"addressLine1": "123 S 3rd Street",
"addressLine2": "Apt 42",
"city": "Wilmington",
"regionCode": "NC",
"postalCode": "28411-5405",
"countryCode": "Use"
}
],
"state": "active",
"attributes": {},
"_links": {
"self": {
"href": "/users/users/9604e5f8-da29-4197-b6fb-60a1cfecfba8"
},
"apiture:deactivate": {
"href": "/users/inactiveUsers?user=9604e5f8-da29-4197-b6fb-60a1cfecfba8"
},
"apiture:lock": {
"href": "/users/lockedUsers?user=9604e5f8-da29-4197-b6fb-60a1cfecfba8"
},
"apiture:freeze": {
"href": "/users/frozenUsers?user=9604e5f8-da29-4197-b6fb-60a1cfecfba8"
},
"apiture:remove": {
"href": "/users/removedUsers?user=9604e5f8-da29-4197-b6fb-60a1cfecfba8"
}
},
"createdAt": "2018-03-09T20:14:32Z",
"lastLoggedInAt": "2019-07-09T10:24:00Z",
"lastContactedAt": "2019-07-16T06:00:00Z"
}
Responses
Status | Description |
---|---|
200 | OK |
OK | |
Schema: user |
Status | Description |
---|---|
400 | Bad Request |
Bad Request. The user was malformed or does not refer to a user. |
Status | Description |
---|---|
409 | Conflict |
Conflict. There is a conflict between the request and the current state of the resource. It may be one of the following:
| |
Schema: errorResponse |
Status | Description |
---|---|
412 | Precondition Failed |
Precondition Failed. The supplied If-Match header value does not match the most recent ETag response header value. The resource has changed in the interim. | |
Schema: errorResponse |
Status | Description |
---|---|
422 | Unprocessable Entity |
Unprocessable Entity. One or more of the query parameters was well formed but otherwise invalid. The _error field in the response will contain details about the request error. | |
Schema: errorResponse |
Response Headers
Status | Description |
---|---|
200 | ETag string |
The ETag response header specifies an entity tag which may be provided in an If-Match request header for PUT or PATCH operations which update this user resource. |
activateUser
Code samples
# You can also use wget
curl -X POST https://api.devbank.apiture.com/users/activeUsers \
-H 'Accept: application/hal+json' \
-H 'If-Match: string' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
POST https://api.devbank.apiture.com/users/activeUsers HTTP/1.1
Host: api.devbank.apiture.com
Accept: application/hal+json
If-Match: string
var headers = {
'Accept':'application/hal+json',
'If-Match':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.devbank.apiture.com/users/activeUsers',
method: 'post',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const headers = {
'Accept':'application/hal+json',
'If-Match':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.devbank.apiture.com/users/activeUsers',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/hal+json',
'If-Match' => 'string',
'API-Key' => 'API_KEY',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.post 'https://api.devbank.apiture.com/users/activeUsers',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/hal+json',
'If-Match': 'string',
'API-Key': 'API_KEY',
'Authorization': 'Bearer {access-token}'
}
r = requests.post('https://api.devbank.apiture.com/users/activeUsers', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.devbank.apiture.com/users/activeUsers");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/hal+json"},
"If-Match": []string{"string"},
"API-Key": []string{"API_KEY"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://api.devbank.apiture.com/users/activeUsers", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Activate a user
POST /activeUsers
Activate a user from an inactive state.
This operation is invoked from the apiture:activate
link on a user
resource when that user is eligible to be activated.
This operation will fail if the user is frozen or locked unless an FI
admin is invoking the operation.
This changes the state
to active
.
Parameters
Parameter | Description |
---|---|
user (query) |
string The ID or URI of an existing user which is eligible to be removed. |
If-Match (header) |
string The entity tag that was returned in the ETag response. If used, this must match the current entity tag of the resource. |
Try it
Fields marked with * are mandatory.
Response
Response Code:
Response Headers:
Response Body:
Click on 'Try It' to get a response.
Example responses
200 Response
{
"_id": "9604e5f8-da29-4197-b6fb-60a1cfecfba8",
"_profile": "https://api.apiture.com/schemas/users/user/v1.0.0/profile.json",
"username": "Johnny1733",
"firstName": "John",
"middleName": "Daniel",
"lastName": "Smith",
"preferredName": "John",
"identification": [
{
"value": "111-11-1111",
"type": "taxId",
"emailAddresses": [
{
"_id": "pe0",
"type": "personal",
"value": "johnny1733@example.com"
},
{
"_id": "we0",
"type": "work",
"value": "support@apiture.com"
}
]
}
],
"customerId": "00047294723672",
"phones": [
{
"_id": "hp0",
"type": "home",
"number": "(555) 555-5555"
},
{
"_id": "mp0",
"type": "mobile",
"number": "(999) 555-5555"
}
],
"birthdate": "1974-10-27",
"citizenship": [
{
"countryCode": "US",
"state": "citizen"
}
],
"occupation": "Software Engineer",
"addresses": [
{
"_id": "ha0",
"type": "home",
"addressLine1": "555 N Front Street",
"addressLine2": "Suite 5555",
"city": "Wilmington",
"regionCode": "NC",
"postalCode": "28401-5405",
"countryCode": "US"
},
{
"_id": "ha1",
"type": "home",
"addressLine1": "123 S 3rd Street",
"addressLine2": "Apt 42",
"city": "Wilmington",
"regionCode": "NC",
"postalCode": "28411-5405",
"countryCode": "Use"
}
],
"state": "active",
"attributes": {},
"_links": {
"self": {
"href": "/users/users/9604e5f8-da29-4197-b6fb-60a1cfecfba8"
},
"apiture:deactivate": {
"href": "/users/inactiveUsers?user=9604e5f8-da29-4197-b6fb-60a1cfecfba8"
},
"apiture:lock": {
"href": "/users/lockedUsers?user=9604e5f8-da29-4197-b6fb-60a1cfecfba8"
},
"apiture:freeze": {
"href": "/users/frozenUsers?user=9604e5f8-da29-4197-b6fb-60a1cfecfba8"
},
"apiture:remove": {
"href": "/users/removedUsers?user=9604e5f8-da29-4197-b6fb-60a1cfecfba8"
}
},
"createdAt": "2018-03-09T20:14:32Z",
"lastLoggedInAt": "2019-07-09T10:24:00Z",
"lastContactedAt": "2019-07-16T06:00:00Z"
}
Responses
Status | Description |
---|---|
200 | OK |
OK | |
Schema: user |
Status | Description |
---|---|
400 | Bad Request |
Bad Request. The user was malformed or does not refer to a user. |
Status | Description |
---|---|
409 | Conflict |
Conflict. There is a conflict between the request and the current state of the resource. It may be one of the following:
| |
Schema: errorResponse |
Status | Description |
---|---|
412 | Precondition Failed |
Precondition Failed. The supplied If-Match header value does not match the most recent ETag response header value. The resource has changed in the interim. | |
Schema: errorResponse |
Status | Description |
---|---|
422 | Unprocessable Entity |
Unprocessable Entity. One or more of the query parameters was well formed but otherwise invalid. The _error field in the response will contain details about the request error. | |
Schema: errorResponse |
Response Headers
Status | Description |
---|---|
200 | ETag string |
The ETag response header specifies an entity tag which may be provided in an If-Match request header for PUT or PATCH operations which update this user resource. |
deactivateUser
Code samples
# You can also use wget
curl -X POST https://api.devbank.apiture.com/users/inactiveUsers \
-H 'Accept: application/hal+json' \
-H 'If-Match: string' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
POST https://api.devbank.apiture.com/users/inactiveUsers HTTP/1.1
Host: api.devbank.apiture.com
Accept: application/hal+json
If-Match: string
var headers = {
'Accept':'application/hal+json',
'If-Match':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.devbank.apiture.com/users/inactiveUsers',
method: 'post',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const headers = {
'Accept':'application/hal+json',
'If-Match':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.devbank.apiture.com/users/inactiveUsers',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/hal+json',
'If-Match' => 'string',
'API-Key' => 'API_KEY',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.post 'https://api.devbank.apiture.com/users/inactiveUsers',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/hal+json',
'If-Match': 'string',
'API-Key': 'API_KEY',
'Authorization': 'Bearer {access-token}'
}
r = requests.post('https://api.devbank.apiture.com/users/inactiveUsers', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.devbank.apiture.com/users/inactiveUsers");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/hal+json"},
"If-Match": []string{"string"},
"API-Key": []string{"API_KEY"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://api.devbank.apiture.com/users/inactiveUsers", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Deactivate a user
POST /inactiveUsers
Deactivate a user from an active state.
This operation is invoked from the apiture:deactivate
link on a user
resource when that user is eligible to be deactivated.
This changes the state
to inactive
.
Parameters
Parameter | Description |
---|---|
user (query) |
string The ID or URI of an existing user which is eligible to be removed. |
If-Match (header) |
string The entity tag that was returned in the ETag response. If used, this must match the current entity tag of the resource. |
Try it
Fields marked with * are mandatory.
Response
Response Code:
Response Headers:
Response Body:
Click on 'Try It' to get a response.
Example responses
200 Response
{
"_id": "9604e5f8-da29-4197-b6fb-60a1cfecfba8",
"_profile": "https://api.apiture.com/schemas/users/user/v1.0.0/profile.json",
"username": "Johnny1733",
"firstName": "John",
"middleName": "Daniel",
"lastName": "Smith",
"preferredName": "John",
"identification": [
{
"value": "111-11-1111",
"type": "taxId",
"emailAddresses": [
{
"_id": "pe0",
"type": "personal",
"value": "johnny1733@example.com"
},
{
"_id": "we0",
"type": "work",
"value": "support@apiture.com"
}
]
}
],
"customerId": "00047294723672",
"phones": [
{
"_id": "hp0",
"type": "home",
"number": "(555) 555-5555"
},
{
"_id": "mp0",
"type": "mobile",
"number": "(999) 555-5555"
}
],
"birthdate": "1974-10-27",
"citizenship": [
{
"countryCode": "US",
"state": "citizen"
}
],
"occupation": "Software Engineer",
"addresses": [
{
"_id": "ha0",
"type": "home",
"addressLine1": "555 N Front Street",
"addressLine2": "Suite 5555",
"city": "Wilmington",
"regionCode": "NC",
"postalCode": "28401-5405",
"countryCode": "US"
},
{
"_id": "ha1",
"type": "home",
"addressLine1": "123 S 3rd Street",
"addressLine2": "Apt 42",
"city": "Wilmington",
"regionCode": "NC",
"postalCode": "28411-5405",
"countryCode": "Use"
}
],
"state": "active",
"attributes": {},
"_links": {
"self": {
"href": "/users/users/9604e5f8-da29-4197-b6fb-60a1cfecfba8"
},
"apiture:deactivate": {
"href": "/users/inactiveUsers?user=9604e5f8-da29-4197-b6fb-60a1cfecfba8"
},
"apiture:lock": {
"href": "/users/lockedUsers?user=9604e5f8-da29-4197-b6fb-60a1cfecfba8"
},
"apiture:freeze": {
"href": "/users/frozenUsers?user=9604e5f8-da29-4197-b6fb-60a1cfecfba8"
},
"apiture:remove": {
"href": "/users/removedUsers?user=9604e5f8-da29-4197-b6fb-60a1cfecfba8"
}
},
"createdAt": "2018-03-09T20:14:32Z",
"lastLoggedInAt": "2019-07-09T10:24:00Z",
"lastContactedAt": "2019-07-16T06:00:00Z"
}
Responses
Status | Description |
---|---|
200 | OK |
OK | |
Schema: user |
Status | Description |
---|---|
400 | Bad Request |
Bad Request. The user was malformed or does not refer to a user. |
Status | Description |
---|---|
409 | Conflict |
Conflict. There is a conflict between the request and the current state of the resource. It may be one of the following:
| |
Schema: errorResponse |
Status | Description |
---|---|
412 | Precondition Failed |
Precondition Failed. The supplied If-Match header value does not match the most recent ETag response header value. The resource has changed in the interim. | |
Schema: errorResponse |
Status | Description |
---|---|
422 | Unprocessable Entity |
Unprocessable Entity. One or more of the query parameters was well formed but otherwise invalid. The _error field in the response will contain details about the request error. | |
Schema: errorResponse |
Response Headers
Status | Description |
---|---|
200 | ETag string |
The ETag response header specifies an entity tag which may be provided in an If-Match request header for PUT or PATCH operations which update this user resource. |
lockUser
Code samples
# You can also use wget
curl -X POST https://api.devbank.apiture.com/users/lockedUsers \
-H 'Accept: application/hal+json' \
-H 'If-Match: string' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
POST https://api.devbank.apiture.com/users/lockedUsers HTTP/1.1
Host: api.devbank.apiture.com
Accept: application/hal+json
If-Match: string
var headers = {
'Accept':'application/hal+json',
'If-Match':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.devbank.apiture.com/users/lockedUsers',
method: 'post',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const headers = {
'Accept':'application/hal+json',
'If-Match':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.devbank.apiture.com/users/lockedUsers',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/hal+json',
'If-Match' => 'string',
'API-Key' => 'API_KEY',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.post 'https://api.devbank.apiture.com/users/lockedUsers',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/hal+json',
'If-Match': 'string',
'API-Key': 'API_KEY',
'Authorization': 'Bearer {access-token}'
}
r = requests.post('https://api.devbank.apiture.com/users/lockedUsers', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.devbank.apiture.com/users/lockedUsers");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/hal+json"},
"If-Match": []string{"string"},
"API-Key": []string{"API_KEY"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://api.devbank.apiture.com/users/lockedUsers", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Lock a user
POST /lockedUsers
Lock a user from an active or inactive state.
This operation is invoked from the apiture:lock
link on a user
resource when that user is eligible to be lock.
This changes the state
to locked
.
Parameters
Parameter | Description |
---|---|
user (query) |
string The ID or URI of an existing user which is eligible to be removed. |
If-Match (header) |
string The entity tag that was returned in the ETag response. If used, this must match the current entity tag of the resource. |
Try it
Fields marked with * are mandatory.
Response
Response Code:
Response Headers:
Response Body:
Click on 'Try It' to get a response.
Example responses
200 Response
{
"_id": "9604e5f8-da29-4197-b6fb-60a1cfecfba8",
"_profile": "https://api.apiture.com/schemas/users/user/v1.0.0/profile.json",
"username": "Johnny1733",
"firstName": "John",
"middleName": "Daniel",
"lastName": "Smith",
"preferredName": "John",
"identification": [
{
"value": "111-11-1111",
"type": "taxId",
"emailAddresses": [
{
"_id": "pe0",
"type": "personal",
"value": "johnny1733@example.com"
},
{
"_id": "we0",
"type": "work",
"value": "support@apiture.com"
}
]
}
],
"customerId": "00047294723672",
"phones": [
{
"_id": "hp0",
"type": "home",
"number": "(555) 555-5555"
},
{
"_id": "mp0",
"type": "mobile",
"number": "(999) 555-5555"
}
],
"birthdate": "1974-10-27",
"citizenship": [
{
"countryCode": "US",
"state": "citizen"
}
],
"occupation": "Software Engineer",
"addresses": [
{
"_id": "ha0",
"type": "home",
"addressLine1": "555 N Front Street",
"addressLine2": "Suite 5555",
"city": "Wilmington",
"regionCode": "NC",
"postalCode": "28401-5405",
"countryCode": "US"
},
{
"_id": "ha1",
"type": "home",
"addressLine1": "123 S 3rd Street",
"addressLine2": "Apt 42",
"city": "Wilmington",
"regionCode": "NC",
"postalCode": "28411-5405",
"countryCode": "Use"
}
],
"state": "active",
"attributes": {},
"_links": {
"self": {
"href": "/users/users/9604e5f8-da29-4197-b6fb-60a1cfecfba8"
},
"apiture:deactivate": {
"href": "/users/inactiveUsers?user=9604e5f8-da29-4197-b6fb-60a1cfecfba8"
},
"apiture:lock": {
"href": "/users/lockedUsers?user=9604e5f8-da29-4197-b6fb-60a1cfecfba8"
},
"apiture:freeze": {
"href": "/users/frozenUsers?user=9604e5f8-da29-4197-b6fb-60a1cfecfba8"
},
"apiture:remove": {
"href": "/users/removedUsers?user=9604e5f8-da29-4197-b6fb-60a1cfecfba8"
}
},
"createdAt": "2018-03-09T20:14:32Z",
"lastLoggedInAt": "2019-07-09T10:24:00Z",
"lastContactedAt": "2019-07-16T06:00:00Z"
}
Responses
Status | Description |
---|---|
200 | OK |
OK | |
Schema: user |
Status | Description |
---|---|
400 | Bad Request |
Bad Request. The user was malformed or does not refer to a user. |
Status | Description |
---|---|
409 | Conflict |
Conflict. There is a conflict between the request and the current state of the resource. It may be one of the following:
| |
Schema: errorResponse |
Status | Description |
---|---|
412 | Precondition Failed |
Precondition Failed. The supplied If-Match header value does not match the most recent ETag response header value. The resource has changed in the interim. | |
Schema: errorResponse |
Status | Description |
---|---|
422 | Unprocessable Entity |
Unprocessable Entity. One or more of the query parameters was well formed but otherwise invalid. The _error field in the response will contain details about the request error. | |
Schema: errorResponse |
Response Headers
Status | Description |
---|---|
200 | ETag string |
The ETag response header specifies an entity tag which may be provided in an If-Match request header for PUT or PATCH operations which update this user resource. |
freezeUser
Code samples
# You can also use wget
curl -X POST https://api.devbank.apiture.com/users/frozenUsers \
-H 'Accept: application/hal+json' \
-H 'If-Match: string' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
POST https://api.devbank.apiture.com/users/frozenUsers HTTP/1.1
Host: api.devbank.apiture.com
Accept: application/hal+json
If-Match: string
var headers = {
'Accept':'application/hal+json',
'If-Match':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.devbank.apiture.com/users/frozenUsers',
method: 'post',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const headers = {
'Accept':'application/hal+json',
'If-Match':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.devbank.apiture.com/users/frozenUsers',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/hal+json',
'If-Match' => 'string',
'API-Key' => 'API_KEY',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.post 'https://api.devbank.apiture.com/users/frozenUsers',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/hal+json',
'If-Match': 'string',
'API-Key': 'API_KEY',
'Authorization': 'Bearer {access-token}'
}
r = requests.post('https://api.devbank.apiture.com/users/frozenUsers', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.devbank.apiture.com/users/frozenUsers");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/hal+json"},
"If-Match": []string{"string"},
"API-Key": []string{"API_KEY"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://api.devbank.apiture.com/users/frozenUsers", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Freeze a user
POST /frozenUsers
Freeze a user from an active, inactive or locked state. A state of frozen indicates that an admin has a concern of fraud.
This operation is invoked from the apiture:freeze
link on a user
resource when an admin user has suspicion of fraud. Only admin has
access to freeze a user.
This changes the state
to frozen
.
Parameters
Parameter | Description |
---|---|
user (query) |
string The ID or URI of an existing user which is eligible to be frozen. |
If-Match (header) |
string The entity tag that was returned in the ETag response. If used, this must match the current entity tag of the resource. |
Try it
Fields marked with * are mandatory.
Response
Response Code:
Response Headers:
Response Body:
Click on 'Try It' to get a response.
Example responses
200 Response
{
"_id": "9604e5f8-da29-4197-b6fb-60a1cfecfba8",
"_profile": "https://api.apiture.com/schemas/users/user/v1.0.0/profile.json",
"username": "Johnny1733",
"firstName": "John",
"middleName": "Daniel",
"lastName": "Smith",
"preferredName": "John",
"identification": [
{
"value": "111-11-1111",
"type": "taxId",
"emailAddresses": [
{
"_id": "pe0",
"type": "personal",
"value": "johnny1733@example.com"
},
{
"_id": "we0",
"type": "work",
"value": "support@apiture.com"
}
]
}
],
"customerId": "00047294723672",
"phones": [
{
"_id": "hp0",
"type": "home",
"number": "(555) 555-5555"
},
{
"_id": "mp0",
"type": "mobile",
"number": "(999) 555-5555"
}
],
"birthdate": "1974-10-27",
"citizenship": [
{
"countryCode": "US",
"state": "citizen"
}
],
"occupation": "Software Engineer",
"addresses": [
{
"_id": "ha0",
"type": "home",
"addressLine1": "555 N Front Street",
"addressLine2": "Suite 5555",
"city": "Wilmington",
"regionCode": "NC",
"postalCode": "28401-5405",
"countryCode": "US"
},
{
"_id": "ha1",
"type": "home",
"addressLine1": "123 S 3rd Street",
"addressLine2": "Apt 42",
"city": "Wilmington",
"regionCode": "NC",
"postalCode": "28411-5405",
"countryCode": "Use"
}
],
"state": "active",
"attributes": {},
"_links": {
"self": {
"href": "/users/users/9604e5f8-da29-4197-b6fb-60a1cfecfba8"
},
"apiture:deactivate": {
"href": "/users/inactiveUsers?user=9604e5f8-da29-4197-b6fb-60a1cfecfba8"
},
"apiture:lock": {
"href": "/users/lockedUsers?user=9604e5f8-da29-4197-b6fb-60a1cfecfba8"
},
"apiture:freeze": {
"href": "/users/frozenUsers?user=9604e5f8-da29-4197-b6fb-60a1cfecfba8"
},
"apiture:remove": {
"href": "/users/removedUsers?user=9604e5f8-da29-4197-b6fb-60a1cfecfba8"
}
},
"createdAt": "2018-03-09T20:14:32Z",
"lastLoggedInAt": "2019-07-09T10:24:00Z",
"lastContactedAt": "2019-07-16T06:00:00Z"
}
Responses
Status | Description |
---|---|
200 | OK |
OK | |
Schema: user |
Status | Description |
---|---|
400 | Bad Request |
Bad Request. The user was malformed or does not refer to a user. |
Status | Description |
---|---|
409 | Conflict |
Conflict. There is a conflict between the request and the current state of the resource. It may be one of the following:
| |
Schema: errorResponse |
Status | Description |
---|---|
412 | Precondition Failed |
Precondition Failed. The supplied If-Match header value does not match the most recent ETag response header value. The resource has changed in the interim. | |
Schema: errorResponse |
Status | Description |
---|---|
422 | Unprocessable Entity |
Unprocessable Entity. One or more of the query parameters was well formed but otherwise invalid. The _error field in the response will contain details about the request error. | |
Schema: errorResponse |
Response Headers
Status | Description |
---|---|
200 | ETag string |
The ETag response header specifies an entity tag which may be provided in an If-Match request header for PUT or PATCH operations which update this user resource. |
mergeUsers
Code samples
# You can also use wget
curl -X POST https://api.devbank.apiture.com/users/mergedUsers \
-H 'Content-Type: application/hal+json' \
-H 'Accept: application/hal+json' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
POST https://api.devbank.apiture.com/users/mergedUsers HTTP/1.1
Host: api.devbank.apiture.com
Content-Type: application/hal+json
Accept: application/hal+json
var headers = {
'Content-Type':'application/hal+json',
'Accept':'application/hal+json',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.devbank.apiture.com/users/mergedUsers',
method: 'post',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const inputBody = '{
"_links": {
"apiture:master": {
"href": "/users/users/5150d4f2-0d94-4602-8ca8-f68d00815f63"
}
},
"items": [
{
"_id": "9604e5f8-da29-4197-b6fb-60a1cfecfba8",
"_profile": "https://api.apiture.com/schemas/users/user/v1.0.0/profile.json",
"_links": {
"self": {
"href": "/users/users/9604e5f8-da29-4197-b6fb-60a1cfecfba8"
}
},
"username": "Johnny1733",
"firstName": "John",
"middleName": "Daniel",
"lastName": "Smith",
"preferredName": "John",
"identification": [
{
"value": "111-11-1111",
"type": "taxId"
}
],
"emailAddresses": [
{
"_id": "pe0",
"type": "personal",
"value": "johnny1733@example.com"
},
{
"_id": "we0",
"type": "work",
"value": "support@apiture.com"
}
],
"phones": [
{
"_id": "hp0",
"type": "home",
"number": "(555) 555-5555"
},
{
"_id": "mp0",
"type": "mobile",
"number": "(999) 555-5555"
}
],
"birthdate": "1974-10-27",
"citizenship": [
{
"countryCode": "US",
"state": "citizen"
}
],
"occupation": "Software Engineer",
"addresses": [
{
"_id": "ha0",
"type": "home",
"addressLine1": "555 N Front Street",
"addressLine2": "Suite 5555",
"city": "Wilmington",
"regionCode": "NC",
"postalCode": "28401-5405",
"countryCode": "US"
},
{
"_id": "ha1",
"type": "home",
"addressLine1": "123 S 3rd Street",
"addressLine2": "Apt 42",
"city": "Wilmington",
"regionCode": "NC",
"postalCode": "28411-5405",
"countryCode": "US"
}
],
"state": "active"
},
{
"_id": "d1fabf13-31d1-4351-89ad-877ac4d1220a",
"_profile": "https://api.apiture.com/schemas/users/user/v1.0.0/profile.json",
"_links": {
"self": {
"href": "/users/users/d1fabf13-31d1-4351-89ad-877ac4d1220a"
}
},
"username": "LAS15",
"firstName": "Johnathan",
"middleName": "Daniel",
"lastName": "Smith",
"preferredName": "John",
"identification": [
{
"value": "111-11-1111",
"type": "taxId"
}
],
"emailAddresses": [
{
"_id": "pe0",
"type": "personal",
"value": "johnny1733@example.com"
},
{
"_id": "we0",
"type": "work",
"value": "support@apiture.com"
}
],
"phones": [
{
"_id": "hp0",
"type": "home",
"number": "(555) 555-5555"
},
{
"_id": "mp0",
"type": "mobile",
"number": "(999) 555-5555"
}
],
"birthdate": "1974-10-27",
"citizenship": [
{
"countryCode": "US",
"state": "citizen"
}
],
"occupation": "Software Engineer",
"addresses": [
{
"_id": "ha0",
"type": "home",
"addressLine1": "555 N Front Street",
"addressLine2": "Suite 5555",
"city": "Wilmington",
"regionCode": "NC",
"postalCode": "28401-5405",
"countryCode": "US"
},
{
"_id": "ha1",
"type": "home",
"addressLine1": "123 S 3rd Street",
"addressLine2": "Apt 42",
"city": "Wilmington",
"regionCode": "NC",
"postalCode": "28411-5405",
"countryCode": "US"
}
],
"state": "active"
}
]
}';
const headers = {
'Content-Type':'application/hal+json',
'Accept':'application/hal+json',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.devbank.apiture.com/users/mergedUsers',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/hal+json',
'Accept' => 'application/hal+json',
'API-Key' => 'API_KEY',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.post 'https://api.devbank.apiture.com/users/mergedUsers',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/hal+json',
'Accept': 'application/hal+json',
'API-Key': 'API_KEY',
'Authorization': 'Bearer {access-token}'
}
r = requests.post('https://api.devbank.apiture.com/users/mergedUsers', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.devbank.apiture.com/users/mergedUsers");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/hal+json"},
"Accept": []string{"application/hal+json"},
"API-Key": []string{"API_KEY"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://api.devbank.apiture.com/users/mergedUsers", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Merge a set of users
POST /mergedUsers
Merge a collection of users from an active, inactive or locked state
into the user specified via the apiture:master
link.
This operation is invoked from the apiture:merge
link on a user
resource when that user is eligible to be merged.
This changes the state
to merged
.
Body parameter
{
"_links": {
"apiture:master": {
"href": "/users/users/5150d4f2-0d94-4602-8ca8-f68d00815f63"
}
},
"items": [
{
"_id": "9604e5f8-da29-4197-b6fb-60a1cfecfba8",
"_profile": "https://api.apiture.com/schemas/users/user/v1.0.0/profile.json",
"_links": {
"self": {
"href": "/users/users/9604e5f8-da29-4197-b6fb-60a1cfecfba8"
}
},
"username": "Johnny1733",
"firstName": "John",
"middleName": "Daniel",
"lastName": "Smith",
"preferredName": "John",
"identification": [
{
"value": "111-11-1111",
"type": "taxId"
}
],
"emailAddresses": [
{
"_id": "pe0",
"type": "personal",
"value": "johnny1733@example.com"
},
{
"_id": "we0",
"type": "work",
"value": "support@apiture.com"
}
],
"phones": [
{
"_id": "hp0",
"type": "home",
"number": "(555) 555-5555"
},
{
"_id": "mp0",
"type": "mobile",
"number": "(999) 555-5555"
}
],
"birthdate": "1974-10-27",
"citizenship": [
{
"countryCode": "US",
"state": "citizen"
}
],
"occupation": "Software Engineer",
"addresses": [
{
"_id": "ha0",
"type": "home",
"addressLine1": "555 N Front Street",
"addressLine2": "Suite 5555",
"city": "Wilmington",
"regionCode": "NC",
"postalCode": "28401-5405",
"countryCode": "US"
},
{
"_id": "ha1",
"type": "home",
"addressLine1": "123 S 3rd Street",
"addressLine2": "Apt 42",
"city": "Wilmington",
"regionCode": "NC",
"postalCode": "28411-5405",
"countryCode": "US"
}
],
"state": "active"
},
{
"_id": "d1fabf13-31d1-4351-89ad-877ac4d1220a",
"_profile": "https://api.apiture.com/schemas/users/user/v1.0.0/profile.json",
"_links": {
"self": {
"href": "/users/users/d1fabf13-31d1-4351-89ad-877ac4d1220a"
}
},
"username": "LAS15",
"firstName": "Johnathan",
"middleName": "Daniel",
"lastName": "Smith",
"preferredName": "John",
"identification": [
{
"value": "111-11-1111",
"type": "taxId"
}
],
"emailAddresses": [
{
"_id": "pe0",
"type": "personal",
"value": "johnny1733@example.com"
},
{
"_id": "we0",
"type": "work",
"value": "support@apiture.com"
}
],
"phones": [
{
"_id": "hp0",
"type": "home",
"number": "(555) 555-5555"
},
{
"_id": "mp0",
"type": "mobile",
"number": "(999) 555-5555"
}
],
"birthdate": "1974-10-27",
"citizenship": [
{
"countryCode": "US",
"state": "citizen"
}
],
"occupation": "Software Engineer",
"addresses": [
{
"_id": "ha0",
"type": "home",
"addressLine1": "555 N Front Street",
"addressLine2": "Suite 5555",
"city": "Wilmington",
"regionCode": "NC",
"postalCode": "28401-5405",
"countryCode": "US"
},
{
"_id": "ha1",
"type": "home",
"addressLine1": "123 S 3rd Street",
"addressLine2": "Apt 42",
"city": "Wilmington",
"regionCode": "NC",
"postalCode": "28411-5405",
"countryCode": "US"
}
],
"state": "active"
}
]
}
Parameters
Parameter | Description |
---|---|
body (body) |
mergeUsers (required) The data necessary to merge users. |
Try it
Fields marked with * are mandatory.
Response
Response Code:
Response Headers:
Response Body:
Click on 'Try It' to get a response.
Example responses
200 Response
{
"_id": "9604e5f8-da29-4197-b6fb-60a1cfecfba8",
"_profile": "https://api.apiture.com/schemas/users/user/v1.0.0/profile.json",
"username": "Johnny1733",
"firstName": "John",
"middleName": "Daniel",
"lastName": "Smith",
"preferredName": "John",
"identification": [
{
"value": "111-11-1111",
"type": "taxId",
"emailAddresses": [
{
"_id": "pe0",
"type": "personal",
"value": "johnny1733@example.com"
},
{
"_id": "we0",
"type": "work",
"value": "support@apiture.com"
}
]
}
],
"customerId": "00047294723672",
"phones": [
{
"_id": "hp0",
"type": "home",
"number": "(555) 555-5555"
},
{
"_id": "mp0",
"type": "mobile",
"number": "(999) 555-5555"
}
],
"birthdate": "1974-10-27",
"citizenship": [
{
"countryCode": "US",
"state": "citizen"
}
],
"occupation": "Software Engineer",
"addresses": [
{
"_id": "ha0",
"type": "home",
"addressLine1": "555 N Front Street",
"addressLine2": "Suite 5555",
"city": "Wilmington",
"regionCode": "NC",
"postalCode": "28401-5405",
"countryCode": "US"
},
{
"_id": "ha1",
"type": "home",
"addressLine1": "123 S 3rd Street",
"addressLine2": "Apt 42",
"city": "Wilmington",
"regionCode": "NC",
"postalCode": "28411-5405",
"countryCode": "Use"
}
],
"state": "active",
"attributes": {},
"_links": {
"self": {
"href": "/users/users/9604e5f8-da29-4197-b6fb-60a1cfecfba8"
},
"apiture:deactivate": {
"href": "/users/inactiveUsers?user=9604e5f8-da29-4197-b6fb-60a1cfecfba8"
},
"apiture:lock": {
"href": "/users/lockedUsers?user=9604e5f8-da29-4197-b6fb-60a1cfecfba8"
},
"apiture:freeze": {
"href": "/users/frozenUsers?user=9604e5f8-da29-4197-b6fb-60a1cfecfba8"
},
"apiture:remove": {
"href": "/users/removedUsers?user=9604e5f8-da29-4197-b6fb-60a1cfecfba8"
}
},
"createdAt": "2018-03-09T20:14:32Z",
"lastLoggedInAt": "2019-07-09T10:24:00Z",
"lastContactedAt": "2019-07-16T06:00:00Z"
}
Responses
Status | Description |
---|---|
200 | OK |
OK | |
Schema: user |
Status | Description |
---|---|
409 | Conflict |
Conflict. There is a conflict between the request and the current state of the resource. It may be one of the following:
| |
Schema: errorResponse |
Status | Description |
---|---|
412 | Precondition Failed |
Precondition Failed. The supplied If-Match header value does not match the most recent ETag response header value. The resource has changed in the interim. | |
Schema: errorResponse |
Status | Description |
---|---|
422 | Unprocessable Entity |
Unprocessable Entity. One or more of the query parameters was well formed but otherwise invalid. The _error field in the response will contain details about the request error. | |
Schema: errorResponse |
Response Headers
Status | Description |
---|---|
200 | ETag string |
The ETag response header specifies an entity tag which may be provided in an If-Match request header for PUT or PATCH operations which update this user resource. |
Address
getAddresses
Code samples
# You can also use wget
curl -X GET https://api.devbank.apiture.com/users/users/{userId}/addresses \
-H 'Accept: application/hal+json' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
GET https://api.devbank.apiture.com/users/users/{userId}/addresses HTTP/1.1
Host: api.devbank.apiture.com
Accept: application/hal+json
var headers = {
'Accept':'application/hal+json',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.devbank.apiture.com/users/users/{userId}/addresses',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const headers = {
'Accept':'application/hal+json',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.devbank.apiture.com/users/users/{userId}/addresses',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/hal+json',
'API-Key' => 'API_KEY',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.get 'https://api.devbank.apiture.com/users/users/{userId}/addresses',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/hal+json',
'API-Key': 'API_KEY',
'Authorization': 'Bearer {access-token}'
}
r = requests.get('https://api.devbank.apiture.com/users/users/{userId}/addresses', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.devbank.apiture.com/users/users/{userId}/addresses");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/hal+json"},
"API-Key": []string{"API_KEY"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://api.devbank.apiture.com/users/users/{userId}/addresses", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Get user's addresses
GET /users/{userId}/addresses
Return the list of the user's addresses.
Parameters
Parameter | Description |
---|---|
userId (path) |
string (required) The unique identifier of the user. This is an opaque string. |
Try it
Fields marked with * are mandatory.
Response
Response Code:
Response Headers:
Response Body:
Click on 'Try It' to get a response.
Example responses
200 Response
{
"_profile": "https://api.apiture.com/schemas/users/userAddresses/v1.0.0/profile.json",
"items": [
{
"_id": "ha1",
"type": "home",
"addressLine1": "555 N Front Street",
"addressLine2": "Suite 5555",
"city": "Wilmington",
"regionCode": "NC",
"postalCode": "28401-5405",
"countryCode": "US",
"state": "approved",
"_links": {
"self": {
"href": "/users/users/f2d87aa6-33c8-458c-819b-41bb00f1ec08/addresses/ha1"
}
}
},
{
"_id": "wa1",
"type": "work",
"addressLine1": "123 S 3rd Street",
"addressLine2": "Apt 42",
"city": "Wilmington",
"regionCode": "NC",
"postalCode": "28411-5405",
"countryCode": "US",
"_links": {
"self": {
"href": "/users/users/f2d87aa6-33c8-458c-819b-41bb00f1ec08/addresses/wa1"
}
}
}
],
"_links": {
"self": {
"href": "/users/users/f2d87aa6-33c8-458c-819b-41bb00f1ec08/addresses"
}
}
}
Responses
Status | Description |
---|---|
200 | OK |
OK | |
Schema: userAddresses |
Status | Description |
---|---|
400 | Bad Request |
Bad Request. The request body or one or more of the query parameters was not well formed. The _error field in the response will contain details about the request error. | |
Schema: errorResponse |
Status | Description |
---|---|
422 | Unprocessable Entity |
Unprocessable Entity. One or more of the query parameters was well formed but otherwise invalid. The _error field in the response will contain details about the request error. | |
Schema: errorResponse |
createAddress
Code samples
# You can also use wget
curl -X POST https://api.devbank.apiture.com/users/users/{userId}/addresses \
-H 'Content-Type: application/hal+json' \
-H 'Accept: application/hal+json' \
-H 'Apiture-Challenge: string' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
POST https://api.devbank.apiture.com/users/users/{userId}/addresses HTTP/1.1
Host: api.devbank.apiture.com
Content-Type: application/hal+json
Accept: application/hal+json
Apiture-Challenge: string
var headers = {
'Content-Type':'application/hal+json',
'Accept':'application/hal+json',
'Apiture-Challenge':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.devbank.apiture.com/users/users/{userId}/addresses',
method: 'post',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const inputBody = '{
"_id": "ha1",
"type": "home",
"addressLine1": "555 N Front Street",
"addressLine2": "Suite 5555",
"city": "Wilmington",
"regionCode": "NC",
"postalCode": "28401-5405",
"countryCode": "US",
"state": "approved",
"_links": {
"self": {
"href": "/users/users/f2d87aa6-33c8-458c-819b-41bb00f1ec08/addresses/ha1"
}
}
}';
const headers = {
'Content-Type':'application/hal+json',
'Accept':'application/hal+json',
'Apiture-Challenge':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.devbank.apiture.com/users/users/{userId}/addresses',
{
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',
'Apiture-Challenge' => 'string',
'API-Key' => 'API_KEY',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.post 'https://api.devbank.apiture.com/users/users/{userId}/addresses',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/hal+json',
'Accept': 'application/hal+json',
'Apiture-Challenge': 'string',
'API-Key': 'API_KEY',
'Authorization': 'Bearer {access-token}'
}
r = requests.post('https://api.devbank.apiture.com/users/users/{userId}/addresses', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.devbank.apiture.com/users/users/{userId}/addresses");
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"},
"Apiture-Challenge": []string{"string"},
"API-Key": []string{"API_KEY"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://api.devbank.apiture.com/users/users/{userId}/addresses", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Create a new address
POST /users/{userId}/addresses
Add an address to the list of the user's addresses.
The new address will be pending
until the financial institution has
reviewed and approved it, after which it will become approved
.
This operation may require the user to complete an additional
authentication challenge as described in Multi-factor
authentication challenges above. A valid
Apiture-Challenge
request header may be required
if the ?replaceId
parameter is used and the profile item being
replaced is the preferred mailing address.
See Multi-factor authentication challenges above.
Body parameter
{
"_id": "ha1",
"type": "home",
"addressLine1": "555 N Front Street",
"addressLine2": "Suite 5555",
"city": "Wilmington",
"regionCode": "NC",
"postalCode": "28401-5405",
"countryCode": "US",
"state": "approved",
"_links": {
"self": {
"href": "/users/users/f2d87aa6-33c8-458c-819b-41bb00f1ec08/addresses/ha1"
}
}
}
Parameters
Parameter | Description |
---|---|
replaceId (query) |
string An optional _id of an existing address to be replaced with this new address instead of adding a new address, once it has been approved. If replaceId matches the _id of the preferred mailing address the preferredMailingAddressId will also be updated to the value of replaceId once approved (the Apiture-Challenge header may be required also). If no existing address matches replaceId , the new address is added to the list of addresses. Example: ?replaceId=ha1 |
Apiture-Challenge (header) |
string The unique identifier of a Challenge resource which demonstrates the user has recently verified their identity. See the discussion of Multi-factor authentication challenges above. The value must be the _id string of a valid, redeemable Challenge resource which matches the challenge context. |
body (body) |
userAddress (required) The data necessary to create a new address. |
userId (path) |
string (required) The unique identifier of the user. This is an opaque string. |
Try it
Fields marked with * are mandatory.
Response
Response Code:
Response Headers:
Response Body:
Click on 'Try It' to get a response.
Example responses
201 Response
{
"_id": "ha1",
"type": "home",
"addressLine1": "555 N Front Street",
"addressLine2": "Suite 5555",
"city": "Wilmington",
"regionCode": "NC",
"postalCode": "28401-5405",
"countryCode": "US",
"state": "approved",
"_links": {
"self": {
"href": "/users/users/f2d87aa6-33c8-458c-819b-41bb00f1ec08/addresses/ha1"
}
}
}
Responses
Status | Description |
---|---|
201 | Created |
Created | |
Schema: userAddress |
Status | Description |
---|---|
400 | Bad Request |
Bad Request. The request body or one or more of the query parameters was not well formed. The _error field in the response will contain details about the request error. | |
Schema: errorResponse |
Status | Description |
---|---|
409 | Conflict |
Conflict. The selected profile value cannot be set as the preferred because it is still pending , or no Apiture-Challenge request header was passed when expected, or the challenge has not been verified, has expired, or has been redeemed too many times. | |
Schema: challengeErrorResponse |
Response Headers
Status | Description |
---|---|
201 | Location string uri |
The URI of the new resource. If the URI begins with / it is relative to the API root context. Else, it is a full URI starting with scheme ://host | |
201 | ETag string |
The ETag response header specifies an entity tag which may be provided in an If-Match request header for PUT or PATCH operations which update the resource. |
getAddress
Code samples
# You can also use wget
curl -X GET https://api.devbank.apiture.com/users/users/{userId}/addresses/{addressId} \
-H 'Accept: application/hal+json' \
-H 'If-None-Match: string' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
GET https://api.devbank.apiture.com/users/users/{userId}/addresses/{addressId} HTTP/1.1
Host: api.devbank.apiture.com
Accept: application/hal+json
If-None-Match: string
var headers = {
'Accept':'application/hal+json',
'If-None-Match':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.devbank.apiture.com/users/users/{userId}/addresses/{addressId}',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const headers = {
'Accept':'application/hal+json',
'If-None-Match':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.devbank.apiture.com/users/users/{userId}/addresses/{addressId}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/hal+json',
'If-None-Match' => 'string',
'API-Key' => 'API_KEY',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.get 'https://api.devbank.apiture.com/users/users/{userId}/addresses/{addressId}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/hal+json',
'If-None-Match': 'string',
'API-Key': 'API_KEY',
'Authorization': 'Bearer {access-token}'
}
r = requests.get('https://api.devbank.apiture.com/users/users/{userId}/addresses/{addressId}', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.devbank.apiture.com/users/users/{userId}/addresses/{addressId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/hal+json"},
"If-None-Match": []string{"string"},
"API-Key": []string{"API_KEY"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://api.devbank.apiture.com/users/users/{userId}/addresses/{addressId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Fetch a representation of this address
GET /users/{userId}/addresses/{addressId}
Return a HAL representation of this address resource.
Parameters
Parameter | Description |
---|---|
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. |
userId (path) |
string (required) The unique identifier of the user. This is an opaque string. |
addressId (path) |
string (required) The unique identifier of this address. This is an opaque string. |
Try it
Fields marked with * are mandatory.
Response
Response Code:
Response Headers:
Response Body:
Click on 'Try It' to get a response.
Example responses
200 Response
{
"_id": "ha1",
"type": "home",
"addressLine1": "555 N Front Street",
"addressLine2": "Suite 5555",
"city": "Wilmington",
"regionCode": "NC",
"postalCode": "28401-5405",
"countryCode": "US",
"state": "approved",
"_links": {
"self": {
"href": "/users/users/f2d87aa6-33c8-458c-819b-41bb00f1ec08/addresses/ha1"
}
}
}
Responses
Status | Description |
---|---|
200 | OK |
OK | |
Schema: userAddress |
Status | Description |
---|---|
304 | Not Modified |
Not Modified. The resource has not been modified since it was last fetched. |
Status | Description |
---|---|
404 | Not Found |
Not Found. There is no such address resource at the specified {addressId} . The _error field in the response will contain details about the request error. | |
Schema: errorResponse |
Response Headers
Status | Description |
---|---|
200 | ETag string |
The ETag response header specifies an entity tag which may be provided in an If-Match request header for PUT or PATCH operations which update this address resource. |
deleteAddress
Code samples
# You can also use wget
curl -X DELETE https://api.devbank.apiture.com/users/users/{userId}/addresses/{addressId} \
-H 'Accept: application/hal+json' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
DELETE https://api.devbank.apiture.com/users/users/{userId}/addresses/{addressId} HTTP/1.1
Host: api.devbank.apiture.com
Accept: application/hal+json
var headers = {
'Accept':'application/hal+json',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.devbank.apiture.com/users/users/{userId}/addresses/{addressId}',
method: 'delete',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const headers = {
'Accept':'application/hal+json',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.devbank.apiture.com/users/users/{userId}/addresses/{addressId}',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/hal+json',
'API-Key' => 'API_KEY',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.delete 'https://api.devbank.apiture.com/users/users/{userId}/addresses/{addressId}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/hal+json',
'API-Key': 'API_KEY',
'Authorization': 'Bearer {access-token}'
}
r = requests.delete('https://api.devbank.apiture.com/users/users/{userId}/addresses/{addressId}', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.devbank.apiture.com/users/users/{userId}/addresses/{addressId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/hal+json"},
"API-Key": []string{"API_KEY"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("DELETE", "https://api.devbank.apiture.com/users/users/{userId}/addresses/{addressId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Delete this address resource
DELETE /users/{userId}/addresses/{addressId}
Delete this address. The address can only be deleted if it is not the user's preferred address.
Parameters
Parameter | Description |
---|---|
userId (path) |
string (required) The unique identifier of the user. This is an opaque string. |
addressId (path) |
string (required) The unique identifier of this address. This is an opaque string. |
Try it
Fields marked with * are mandatory.
Response
Response Code:
Response Headers:
Response Body:
Click on 'Try It' to get a response.
Example responses
409 Response
{
"_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": []
}
}
}
Responses
Status | Description |
---|---|
204 | No Content |
No Content. The resource was deleted successfully. |
Status | Description |
---|---|
409 | Conflict |
Conflict. The selected address cannot be deleted because it is currently the user's preferred address. | |
Schema: errorResponse |
setPreferredAddress
Code samples
# You can also use wget
curl -X PUT https://api.devbank.apiture.com/users/users/{userId}/preferredAddress \
-H 'Accept: application/hal+json' \
-H 'Apiture-Challenge: string' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
PUT https://api.devbank.apiture.com/users/users/{userId}/preferredAddress HTTP/1.1
Host: api.devbank.apiture.com
Accept: application/hal+json
Apiture-Challenge: string
var headers = {
'Accept':'application/hal+json',
'Apiture-Challenge':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.devbank.apiture.com/users/users/{userId}/preferredAddress',
method: 'put',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const headers = {
'Accept':'application/hal+json',
'Apiture-Challenge':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.devbank.apiture.com/users/users/{userId}/preferredAddress',
{
method: 'PUT',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/hal+json',
'Apiture-Challenge' => 'string',
'API-Key' => 'API_KEY',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.put 'https://api.devbank.apiture.com/users/users/{userId}/preferredAddress',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/hal+json',
'Apiture-Challenge': 'string',
'API-Key': 'API_KEY',
'Authorization': 'Bearer {access-token}'
}
r = requests.put('https://api.devbank.apiture.com/users/users/{userId}/preferredAddress', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.devbank.apiture.com/users/users/{userId}/preferredAddress");
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{
"Accept": []string{"application/hal+json"},
"Apiture-Challenge": []string{"string"},
"API-Key": []string{"API_KEY"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("PUT", "https://api.devbank.apiture.com/users/users/{userId}/preferredAddress", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Set Preferred mailing Address
PUT /users/{userId}/preferredAddress
Set the user's preferred mailing address.
The user may set their preferred address
to an approved address by passing its
unique _id
in the value
query parameter.
This updates the preferredAddressId
property of the user.
This operation may require the user to complete an additional
authentication challenge as described in Multi-factor
authentication challenges above. A valid
Apiture-Challenge
request header may be required.
This operation is available via the apiture:setAsPreferred
link on an address if that resource is eligible
to be set as the preferred address.
No changes are made if the specified address is already the preferred address.
Parameters
Parameter | Description |
---|---|
value (query) |
string The _id of the address to assign as the preferred address. If this query parameter exists, the request body, if any, is ignored. Example: ?value=ha1 |
Apiture-Challenge (header) |
string The unique identifier of a Challenge resource which demonstrates the user has recently verified their identity. See the discussion of Multi-factor authentication challenges above. The value must be the _id string of a valid, redeemable Challenge resource which matches the challenge context. |
userId (path) |
string (required) The unique identifier of the user. This is an opaque string. |
Try it
Fields marked with * are mandatory.
Response
Response Code:
Response Headers:
Response Body:
Click on 'Try It' to get a response.
Example responses
200 Response
{
"_id": "9604e5f8-da29-4197-b6fb-60a1cfecfba8",
"_profile": "https://api.apiture.com/schemas/users/user/v1.0.0/profile.json",
"username": "Johnny1733",
"firstName": "John",
"middleName": "Daniel",
"lastName": "Smith",
"preferredName": "John",
"identification": [
{
"value": "111-11-1111",
"type": "taxId",
"emailAddresses": [
{
"_id": "pe0",
"type": "personal",
"value": "johnny1733@example.com"
},
{
"_id": "we0",
"type": "work",
"value": "support@apiture.com"
}
]
}
],
"customerId": "00047294723672",
"phones": [
{
"_id": "hp0",
"type": "home",
"number": "(555) 555-5555"
},
{
"_id": "mp0",
"type": "mobile",
"number": "(999) 555-5555"
}
],
"birthdate": "1974-10-27",
"citizenship": [
{
"countryCode": "US",
"state": "citizen"
}
],
"occupation": "Software Engineer",
"addresses": [
{
"_id": "ha0",
"type": "home",
"addressLine1": "555 N Front Street",
"addressLine2": "Suite 5555",
"city": "Wilmington",
"regionCode": "NC",
"postalCode": "28401-5405",
"countryCode": "US"
},
{
"_id": "ha1",
"type": "home",
"addressLine1": "123 S 3rd Street",
"addressLine2": "Apt 42",
"city": "Wilmington",
"regionCode": "NC",
"postalCode": "28411-5405",
"countryCode": "Use"
}
],
"state": "active",
"attributes": {},
"_links": {
"self": {
"href": "/users/users/9604e5f8-da29-4197-b6fb-60a1cfecfba8"
},
"apiture:deactivate": {
"href": "/users/inactiveUsers?user=9604e5f8-da29-4197-b6fb-60a1cfecfba8"
},
"apiture:lock": {
"href": "/users/lockedUsers?user=9604e5f8-da29-4197-b6fb-60a1cfecfba8"
},
"apiture:freeze": {
"href": "/users/frozenUsers?user=9604e5f8-da29-4197-b6fb-60a1cfecfba8"
},
"apiture:remove": {
"href": "/users/removedUsers?user=9604e5f8-da29-4197-b6fb-60a1cfecfba8"
}
},
"createdAt": "2018-03-09T20:14:32Z",
"lastLoggedInAt": "2019-07-09T10:24:00Z",
"lastContactedAt": "2019-07-16T06:00:00Z"
}
Responses
Status | Description |
---|---|
200 | OK |
OK. The user's preferredAddressId is updated to the passed value. | |
Schema: user |
Status | Description |
---|---|
409 | Conflict |
Conflict. The selected profile value cannot be set as the preferred because it is still pending , or no Apiture-Challenge request header was passed when expected, or the challenge has not been verified, has expired, or has been redeemed too many times. | |
Schema: challengeErrorResponse |
Status | Description |
---|---|
422 | Unprocessable Entity |
Unprocessable Entity. The request to set a preferred profile value cannot be processed because no such profile value value exists, or the passed challenge does not exist. | |
Schema: errorResponse |
Response Headers
Status | Description |
---|---|
200 | ETag string |
The ETag response header specifies an entity tag which may be provided in an If-Match request header for PUT or PATCH operations which update this user resource. |
Email Address
getEmailAddresses
Code samples
# You can also use wget
curl -X GET https://api.devbank.apiture.com/users/users/{userId}/emailAddresses \
-H 'Accept: application/hal+json' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
GET https://api.devbank.apiture.com/users/users/{userId}/emailAddresses HTTP/1.1
Host: api.devbank.apiture.com
Accept: application/hal+json
var headers = {
'Accept':'application/hal+json',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.devbank.apiture.com/users/users/{userId}/emailAddresses',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const headers = {
'Accept':'application/hal+json',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.devbank.apiture.com/users/users/{userId}/emailAddresses',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/hal+json',
'API-Key' => 'API_KEY',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.get 'https://api.devbank.apiture.com/users/users/{userId}/emailAddresses',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/hal+json',
'API-Key': 'API_KEY',
'Authorization': 'Bearer {access-token}'
}
r = requests.get('https://api.devbank.apiture.com/users/users/{userId}/emailAddresses', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.devbank.apiture.com/users/users/{userId}/emailAddresses");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/hal+json"},
"API-Key": []string{"API_KEY"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://api.devbank.apiture.com/users/users/{userId}/emailAddresses", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Get user's email addresses
GET /users/{userId}/emailAddresses
Return the list of the user's email addresses.
Parameters
Parameter | Description |
---|---|
userId (path) |
string (required) The unique identifier of the user. This is an opaque string. |
Try it
Fields marked with * are mandatory.
Response
Response Code:
Response Headers:
Response Body:
Click on 'Try It' to get a response.
Example responses
200 Response
{
"_profile": "https://api.apiture.com/schemas/users/userEmailAddresses/v1.0.0/profile.json",
"items": [
{
"_id": "pe0",
"type": "personal",
"label": "Personal",
"number": "user7838@example.com",
"state": "approved",
"_profile": "https://api.apiture.com/schemas/users/userEmailAddress/v1.0.0/profile.json",
"_links": {
"self": {
"href": "/users/users/f2d87aa6-33c8-458c-819b-41bb00f1ec08/emailAddresses/pe0"
}
}
},
{
"_id": "pe2",
"type": "personal",
"label": "Personal",
"value": "John.Smith@example.com",
"state": "approved",
"_profile": "https://api.apiture.com/schemas/users/userEmailAddress/v1.0.0/profile.json",
"_links": {
"self": {
"href": "/users/users/f2d87aa6-33c8-458c-819b-41bb00f1ec08/userEmailAddresses/pe2"
}
}
}
],
"_links": {
"self": {
"href": "/users/users/f2d87aa6-33c8-458c-819b-41bb00f1ec08/emailAddresses"
}
}
}
Responses
Status | Description |
---|---|
200 | OK |
OK | |
Schema: userEmailAddresses |
Status | Description |
---|---|
400 | Bad Request |
Bad Request. The request body or one or more of the query parameters was not well formed. The _error field in the response will contain details about the request error. | |
Schema: errorResponse |
Status | Description |
---|---|
422 | Unprocessable Entity |
Unprocessable Entity. One or more of the query parameters was well formed but otherwise invalid. The _error field in the response will contain details about the request error. | |
Schema: errorResponse |
createEmailAddress
Code samples
# You can also use wget
curl -X POST https://api.devbank.apiture.com/users/users/{userId}/emailAddresses \
-H 'Content-Type: application/hal+json' \
-H 'Accept: application/hal+json' \
-H 'Apiture-Challenge: string' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
POST https://api.devbank.apiture.com/users/users/{userId}/emailAddresses HTTP/1.1
Host: api.devbank.apiture.com
Content-Type: application/hal+json
Accept: application/hal+json
Apiture-Challenge: string
var headers = {
'Content-Type':'application/hal+json',
'Accept':'application/hal+json',
'Apiture-Challenge':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.devbank.apiture.com/users/users/{userId}/emailAddresses',
method: 'post',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const inputBody = '{
"_id": "pe1",
"_profile": "https://api.apiture.com/schemas/users/userEmailAddress/v1.0.0/profile.json",
"type": "personal",
"number": "555-555-5555",
"state": "approved",
"_links": {
"self": {
"href": "/users/users/f2d87aa6-33c8-458c-819b-41bb00f1ec08/emailAddresses/pe1"
},
"delete": {
"href": "/users/users/f2d87aa6-33c8-458c-819b-41bb00f1ec08/emailAddresses/pe1"
},
"apiture:setAsPreferred": {
"href": "/users/users/f2d87aa6-33c8-458c-819b-41bb00f1ec08/preferredEmailAddresses?value=pe1"
}
}
}';
const headers = {
'Content-Type':'application/hal+json',
'Accept':'application/hal+json',
'Apiture-Challenge':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.devbank.apiture.com/users/users/{userId}/emailAddresses',
{
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',
'Apiture-Challenge' => 'string',
'API-Key' => 'API_KEY',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.post 'https://api.devbank.apiture.com/users/users/{userId}/emailAddresses',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/hal+json',
'Accept': 'application/hal+json',
'Apiture-Challenge': 'string',
'API-Key': 'API_KEY',
'Authorization': 'Bearer {access-token}'
}
r = requests.post('https://api.devbank.apiture.com/users/users/{userId}/emailAddresses', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.devbank.apiture.com/users/users/{userId}/emailAddresses");
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"},
"Apiture-Challenge": []string{"string"},
"API-Key": []string{"API_KEY"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://api.devbank.apiture.com/users/users/{userId}/emailAddresses", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Create a new email address
POST /users/{userId}/emailAddresses
Add an email address to the list of the user's email addresses.
The new email address will be pending
until the financial institution has
reviewed and approved it, after which it will become approved
.
This operation may require the user to complete an additional
authentication challenge as described in Multi-factor
authentication challenges above. A valid
Apiture-Challenge
request header may be required
if the ?replaceId
parameter is used and the profile item being
replaced is the preferred email address.
See Multi-factor authentication challenges above.
Body parameter
{
"_id": "pe1",
"_profile": "https://api.apiture.com/schemas/users/userEmailAddress/v1.0.0/profile.json",
"type": "personal",
"number": "555-555-5555",
"state": "approved",
"_links": {
"self": {
"href": "/users/users/f2d87aa6-33c8-458c-819b-41bb00f1ec08/emailAddresses/pe1"
},
"delete": {
"href": "/users/users/f2d87aa6-33c8-458c-819b-41bb00f1ec08/emailAddresses/pe1"
},
"apiture:setAsPreferred": {
"href": "/users/users/f2d87aa6-33c8-458c-819b-41bb00f1ec08/preferredEmailAddresses?value=pe1"
}
}
}
Parameters
Parameter | Description |
---|---|
replaceId (query) |
string An optional _id of an existing email address to be replaced with this new email address instead of adding a new email address, once it has been approved. If replaceId matches the _id of the preferred email address the preferredEmailAddressId will also be updated to the value of replaceId once approved (the Apiture-Challenge header may be required also). If no existing email address matches replaceId , the new email address is added to the list of email addresses. Example: ?replaceId=e1 |
Apiture-Challenge (header) |
string The unique identifier of a Challenge resource which demonstrates the user has recently verified their identity. See the discussion of Multi-factor authentication challenges above. The value must be the _id string of a valid, redeemable Challenge resource which matches the challenge context. |
body (body) |
userEmailAddress (required) The data necessary to create a new email address. |
userId (path) |
string (required) The unique identifier of the user. This is an opaque string. |
Try it
Fields marked with * are mandatory.
Response
Response Code:
Response Headers:
Response Body:
Click on 'Try It' to get a response.
Example responses
201 Response
{
"_id": "pe1",
"_profile": "https://api.apiture.com/schemas/users/userEmailAddress/v1.0.0/profile.json",
"type": "personal",
"number": "555-555-5555",
"state": "approved",
"_links": {
"self": {
"href": "/users/users/f2d87aa6-33c8-458c-819b-41bb00f1ec08/emailAddresses/pe1"
},
"delete": {
"href": "/users/users/f2d87aa6-33c8-458c-819b-41bb00f1ec08/emailAddresses/pe1"
},
"apiture:setAsPreferred": {
"href": "/users/users/f2d87aa6-33c8-458c-819b-41bb00f1ec08/preferredEmailAddresses?value=pe1"
}
}
}
Responses
Status | Description |
---|---|
201 | Created |
Created | |
Schema: userEmailAddress |
Status | Description |
---|---|
400 | Bad Request |
Bad Request. The request body or one or more of the query parameters was not well formed. The _error field in the response will contain details about the request error. | |
Schema: errorResponse |
Status | Description |
---|---|
409 | Conflict |
Conflict. The selected profile value cannot be set as the preferred because it is still pending , or no Apiture-Challenge request header was passed when expected, or the challenge has not been verified, has expired, or has been redeemed too many times. | |
Schema: challengeErrorResponse |
Response Headers
Status | Description |
---|---|
201 | Location string uri |
The URI of the new resource. If the URI begins with / it is relative to the API root context. Else, it is a full URI starting with scheme ://host | |
201 | ETag string |
The ETag response header specifies an entity tag which may be provided in an If-Match request header for PUT or PATCH operations which update the resource. |
getEmailAddress
Code samples
# You can also use wget
curl -X GET https://api.devbank.apiture.com/users/users/{userId}/emailAddresses/{emailAddressId} \
-H 'Accept: application/hal+json' \
-H 'If-None-Match: string' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
GET https://api.devbank.apiture.com/users/users/{userId}/emailAddresses/{emailAddressId} HTTP/1.1
Host: api.devbank.apiture.com
Accept: application/hal+json
If-None-Match: string
var headers = {
'Accept':'application/hal+json',
'If-None-Match':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.devbank.apiture.com/users/users/{userId}/emailAddresses/{emailAddressId}',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const headers = {
'Accept':'application/hal+json',
'If-None-Match':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.devbank.apiture.com/users/users/{userId}/emailAddresses/{emailAddressId}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/hal+json',
'If-None-Match' => 'string',
'API-Key' => 'API_KEY',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.get 'https://api.devbank.apiture.com/users/users/{userId}/emailAddresses/{emailAddressId}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/hal+json',
'If-None-Match': 'string',
'API-Key': 'API_KEY',
'Authorization': 'Bearer {access-token}'
}
r = requests.get('https://api.devbank.apiture.com/users/users/{userId}/emailAddresses/{emailAddressId}', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.devbank.apiture.com/users/users/{userId}/emailAddresses/{emailAddressId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/hal+json"},
"If-None-Match": []string{"string"},
"API-Key": []string{"API_KEY"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://api.devbank.apiture.com/users/users/{userId}/emailAddresses/{emailAddressId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Fetch a representation of this email address
GET /users/{userId}/emailAddresses/{emailAddressId}
Return a HAL representation of this email address resource.
Parameters
Parameter | Description |
---|---|
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. |
userId (path) |
string (required) The unique identifier of the user. This is an opaque string. |
emailAddressId (path) |
string (required) The unique identifier of this email address. This is an opaque string. |
Try it
Fields marked with * are mandatory.
Response
Response Code:
Response Headers:
Response Body:
Click on 'Try It' to get a response.
Example responses
200 Response
{
"_id": "pe1",
"_profile": "https://api.apiture.com/schemas/users/userEmailAddress/v1.0.0/profile.json",
"type": "personal",
"number": "555-555-5555",
"state": "approved",
"_links": {
"self": {
"href": "/users/users/f2d87aa6-33c8-458c-819b-41bb00f1ec08/emailAddresses/pe1"
},
"delete": {
"href": "/users/users/f2d87aa6-33c8-458c-819b-41bb00f1ec08/emailAddresses/pe1"
},
"apiture:setAsPreferred": {
"href": "/users/users/f2d87aa6-33c8-458c-819b-41bb00f1ec08/preferredEmailAddresses?value=pe1"
}
}
}
Responses
Status | Description |
---|---|
200 | OK |
OK | |
Schema: userEmailAddress |
Status | Description |
---|---|
304 | Not Modified |
Not Modified. The resource has not been modified since it was last fetched. |
Status | Description |
---|---|
404 | Not Found |
Not Found. There is no such email address resource at the specified {emailAddressId} . The _error field in the response will contain details about the request error. | |
Schema: errorResponse |
Response Headers
Status | Description |
---|---|
200 | ETag string |
The ETag response header specifies an entity tag which may be provided in an If-Match request header for PUT or PATCH operations which update this email address resource. |
deleteEmailAddress
Code samples
# You can also use wget
curl -X DELETE https://api.devbank.apiture.com/users/users/{userId}/emailAddresses/{emailAddressId} \
-H 'Accept: application/hal+json' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
DELETE https://api.devbank.apiture.com/users/users/{userId}/emailAddresses/{emailAddressId} HTTP/1.1
Host: api.devbank.apiture.com
Accept: application/hal+json
var headers = {
'Accept':'application/hal+json',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.devbank.apiture.com/users/users/{userId}/emailAddresses/{emailAddressId}',
method: 'delete',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const headers = {
'Accept':'application/hal+json',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.devbank.apiture.com/users/users/{userId}/emailAddresses/{emailAddressId}',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/hal+json',
'API-Key' => 'API_KEY',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.delete 'https://api.devbank.apiture.com/users/users/{userId}/emailAddresses/{emailAddressId}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/hal+json',
'API-Key': 'API_KEY',
'Authorization': 'Bearer {access-token}'
}
r = requests.delete('https://api.devbank.apiture.com/users/users/{userId}/emailAddresses/{emailAddressId}', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.devbank.apiture.com/users/users/{userId}/emailAddresses/{emailAddressId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/hal+json"},
"API-Key": []string{"API_KEY"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("DELETE", "https://api.devbank.apiture.com/users/users/{userId}/emailAddresses/{emailAddressId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Delete this email address resource
DELETE /users/{userId}/emailAddresses/{emailAddressId}
Delete this email address. The email address can only be deleted if it is not the user's preferred email address.
Parameters
Parameter | Description |
---|---|
userId (path) |
string (required) The unique identifier of the user. This is an opaque string. |
emailAddressId (path) |
string (required) The unique identifier of this email address. This is an opaque string. |
Try it
Fields marked with * are mandatory.
Response
Response Code:
Response Headers:
Response Body:
Click on 'Try It' to get a response.
Example responses
409 Response
{
"_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": []
}
}
}
Responses
Status | Description |
---|---|
204 | No Content |
No Content. The resource was deleted successfully. |
Status | Description |
---|---|
409 | Conflict |
Conflict. The selected email address cannot be deleted because it is currently the user's preferred email address. | |
Schema: errorResponse |
setPreferredEmailAddress
Code samples
# You can also use wget
curl -X PUT https://api.devbank.apiture.com/users/users/{userId}/preferredEmailAddress \
-H 'Accept: application/hal+json' \
-H 'Apiture-Challenge: string' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
PUT https://api.devbank.apiture.com/users/users/{userId}/preferredEmailAddress HTTP/1.1
Host: api.devbank.apiture.com
Accept: application/hal+json
Apiture-Challenge: string
var headers = {
'Accept':'application/hal+json',
'Apiture-Challenge':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.devbank.apiture.com/users/users/{userId}/preferredEmailAddress',
method: 'put',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const headers = {
'Accept':'application/hal+json',
'Apiture-Challenge':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.devbank.apiture.com/users/users/{userId}/preferredEmailAddress',
{
method: 'PUT',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/hal+json',
'Apiture-Challenge' => 'string',
'API-Key' => 'API_KEY',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.put 'https://api.devbank.apiture.com/users/users/{userId}/preferredEmailAddress',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/hal+json',
'Apiture-Challenge': 'string',
'API-Key': 'API_KEY',
'Authorization': 'Bearer {access-token}'
}
r = requests.put('https://api.devbank.apiture.com/users/users/{userId}/preferredEmailAddress', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.devbank.apiture.com/users/users/{userId}/preferredEmailAddress");
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{
"Accept": []string{"application/hal+json"},
"Apiture-Challenge": []string{"string"},
"API-Key": []string{"API_KEY"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("PUT", "https://api.devbank.apiture.com/users/users/{userId}/preferredEmailAddress", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Set Preferred Email Address
PUT /users/{userId}/preferredEmailAddress
Set the user's preferred email address.
The user may set their preferred email address
to an approved address by passing its
unique _id
in the value
query parameter.
This updates the preferredEmailAddressId
property of the user.
This operation may require the user to complete an additional
authentication challenge as described in Multi-factor
authentication challenges above. A valid
Apiture-Challenge
request header may be required.
This operation is available via the apiture:setAsPreferred
link on an email address if that resource is eligible
to be set as the preferred email address.
No changes are made if the specified email address is already the preferred email address.
Parameters
Parameter | Description |
---|---|
value (query) |
string The _id of the email address to assign as the preferred email address. If this query parameter exists, the request body, if any, is ignored. Example: ?value=pe0 |
Apiture-Challenge (header) |
string The unique identifier of a Challenge resource which demonstrates the user has recently verified their identity. See the discussion of Multi-factor authentication challenges above. The value must be the _id string of a valid, redeemable Challenge resource which matches the challenge context. |
userId (path) |
string (required) The unique identifier of the user. This is an opaque string. |
Try it
Fields marked with * are mandatory.
Response
Response Code:
Response Headers:
Response Body:
Click on 'Try It' to get a response.
Example responses
200 Response
{
"_id": "9604e5f8-da29-4197-b6fb-60a1cfecfba8",
"_profile": "https://api.apiture.com/schemas/users/user/v1.0.0/profile.json",
"username": "Johnny1733",
"firstName": "John",
"middleName": "Daniel",
"lastName": "Smith",
"preferredName": "John",
"identification": [
{
"value": "111-11-1111",
"type": "taxId",
"emailAddresses": [
{
"_id": "pe0",
"type": "personal",
"value": "johnny1733@example.com"
},
{
"_id": "we0",
"type": "work",
"value": "support@apiture.com"
}
]
}
],
"customerId": "00047294723672",
"phones": [
{
"_id": "hp0",
"type": "home",
"number": "(555) 555-5555"
},
{
"_id": "mp0",
"type": "mobile",
"number": "(999) 555-5555"
}
],
"birthdate": "1974-10-27",
"citizenship": [
{
"countryCode": "US",
"state": "citizen"
}
],
"occupation": "Software Engineer",
"addresses": [
{
"_id": "ha0",
"type": "home",
"addressLine1": "555 N Front Street",
"addressLine2": "Suite 5555",
"city": "Wilmington",
"regionCode": "NC",
"postalCode": "28401-5405",
"countryCode": "US"
},
{
"_id": "ha1",
"type": "home",
"addressLine1": "123 S 3rd Street",
"addressLine2": "Apt 42",
"city": "Wilmington",
"regionCode": "NC",
"postalCode": "28411-5405",
"countryCode": "Use"
}
],
"state": "active",
"attributes": {},
"_links": {
"self": {
"href": "/users/users/9604e5f8-da29-4197-b6fb-60a1cfecfba8"
},
"apiture:deactivate": {
"href": "/users/inactiveUsers?user=9604e5f8-da29-4197-b6fb-60a1cfecfba8"
},
"apiture:lock": {
"href": "/users/lockedUsers?user=9604e5f8-da29-4197-b6fb-60a1cfecfba8"
},
"apiture:freeze": {
"href": "/users/frozenUsers?user=9604e5f8-da29-4197-b6fb-60a1cfecfba8"
},
"apiture:remove": {
"href": "/users/removedUsers?user=9604e5f8-da29-4197-b6fb-60a1cfecfba8"
}
},
"createdAt": "2018-03-09T20:14:32Z",
"lastLoggedInAt": "2019-07-09T10:24:00Z",
"lastContactedAt": "2019-07-16T06:00:00Z"
}
Responses
Status | Description |
---|---|
200 | OK |
OK. The user's preferredEmailAddressId is updated to the passed value. | |
Schema: user |
Status | Description |
---|---|
409 | Conflict |
Conflict. The selected profile value cannot be set as the preferred because it is still pending , or no Apiture-Challenge request header was passed when expected, or the challenge has not been verified, has expired, or has been redeemed too many times. | |
Schema: challengeErrorResponse |
Status | Description |
---|---|
422 | Unprocessable Entity |
Unprocessable Entity. The request to set a preferred profile value cannot be processed because no such profile value value exists, or the passed challenge does not exist. | |
Schema: errorResponse |
Response Headers
Status | Description |
---|---|
200 | ETag string |
The ETag response header specifies an entity tag which may be provided in an If-Match request header for PUT or PATCH operations which update this user resource. |
Phone Number
getPhoneNumbers
Code samples
# You can also use wget
curl -X GET https://api.devbank.apiture.com/users/users/{userId}/phoneNumbers \
-H 'Accept: application/hal+json' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
GET https://api.devbank.apiture.com/users/users/{userId}/phoneNumbers HTTP/1.1
Host: api.devbank.apiture.com
Accept: application/hal+json
var headers = {
'Accept':'application/hal+json',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.devbank.apiture.com/users/users/{userId}/phoneNumbers',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const headers = {
'Accept':'application/hal+json',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.devbank.apiture.com/users/users/{userId}/phoneNumbers',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/hal+json',
'API-Key' => 'API_KEY',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.get 'https://api.devbank.apiture.com/users/users/{userId}/phoneNumbers',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/hal+json',
'API-Key': 'API_KEY',
'Authorization': 'Bearer {access-token}'
}
r = requests.get('https://api.devbank.apiture.com/users/users/{userId}/phoneNumbers', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.devbank.apiture.com/users/users/{userId}/phoneNumbers");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/hal+json"},
"API-Key": []string{"API_KEY"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://api.devbank.apiture.com/users/users/{userId}/phoneNumbers", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Get user's phone numbers
GET /users/{userId}/phoneNumbers
Return the list of the user's phone numbers
Parameters
Parameter | Description |
---|---|
userId (path) |
string (required) The unique identifier of the user. This is an opaque string. |
Try it
Fields marked with * are mandatory.
Response
Response Code:
Response Headers:
Response Body:
Click on 'Try It' to get a response.
Example responses
200 Response
{
"_profile": "https://api.apiture.com/schemas/users/userPhoneNumbers/v1.0.0/profile.json",
"items": [
{
"_id": "mp0",
"type": "mobile",
"label": "Mobile",
"number": "555-555-5555",
"state": "approved",
"_profile": "https://api.apiture.com/schemas/users/userPhoneNumber/v1.0.0/profile.json",
"_links": {
"self": {
"href": "/users/users/9b0387db-8705-469a-852c-ead8bfd872ba/phoneNumbers/mp0"
}
}
},
{
"_id": "mp2",
"type": "home",
"label": "Home",
"number": "555-444-4444",
"state": "approved",
"_profile": "https://api.apiture.com/schemas/users/userPhoneNumber/v1.0.0/profile.json",
"_links": {
"self": {
"href": "/users/users/9b0387db-8705-469a-852c-ead8bfd872ba/phoneNumbers/mp2"
}
}
}
],
"_links": {
"self": {
"href": "/users/users/9b0387db-8705-469a-852c-ead8bfd872ba/phoneNumbers"
}
}
}
Responses
Status | Description |
---|---|
200 | OK |
OK | |
Schema: userPhoneNumbers |
Status | Description |
---|---|
400 | Bad Request |
Bad Request. The request body or one or more of the query parameters was not well formed. The _error field in the response will contain details about the request error. | |
Schema: errorResponse |
Status | Description |
---|---|
422 | Unprocessable Entity |
Unprocessable Entity. One or more of the query parameters was well formed but otherwise invalid. The _error field in the response will contain details about the request error. | |
Schema: errorResponse |
createPhoneNumber
Code samples
# You can also use wget
curl -X POST https://api.devbank.apiture.com/users/users/{userId}/phoneNumbers \
-H 'Content-Type: application/hal+json' \
-H 'Accept: application/hal+json' \
-H 'Apiture-Challenge: string' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
POST https://api.devbank.apiture.com/users/users/{userId}/phoneNumbers HTTP/1.1
Host: api.devbank.apiture.com
Content-Type: application/hal+json
Accept: application/hal+json
Apiture-Challenge: string
var headers = {
'Content-Type':'application/hal+json',
'Accept':'application/hal+json',
'Apiture-Challenge':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.devbank.apiture.com/users/users/{userId}/phoneNumbers',
method: 'post',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const inputBody = '{
"_id": "hp1",
"_profile": "https://api.apiture.com/schemas/users/userPhoneNumber/v1.0.0/profile.json",
"type": "home",
"number": "555-555-5555",
"state": "approved",
"_links": {
"self": {
"href": "/users/users/9b0387db-8705-469a-852c-ead8bfd872ba/phoneNumbers/hp1"
}
}
}';
const headers = {
'Content-Type':'application/hal+json',
'Accept':'application/hal+json',
'Apiture-Challenge':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.devbank.apiture.com/users/users/{userId}/phoneNumbers',
{
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',
'Apiture-Challenge' => 'string',
'API-Key' => 'API_KEY',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.post 'https://api.devbank.apiture.com/users/users/{userId}/phoneNumbers',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/hal+json',
'Accept': 'application/hal+json',
'Apiture-Challenge': 'string',
'API-Key': 'API_KEY',
'Authorization': 'Bearer {access-token}'
}
r = requests.post('https://api.devbank.apiture.com/users/users/{userId}/phoneNumbers', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.devbank.apiture.com/users/users/{userId}/phoneNumbers");
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"},
"Apiture-Challenge": []string{"string"},
"API-Key": []string{"API_KEY"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://api.devbank.apiture.com/users/users/{userId}/phoneNumbers", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Create a new phone number
POST /users/{userId}/phoneNumbers
Add a phone number to the list of the user's phone numbers.
The new number will be pending
until the financial institution has
reviewed and approved it, after which it will become approved
.
This operation may require the user to complete an additional
authentication challenge as described in Multi-factor
authentication challenges above. A valid
Apiture-Challenge
request header may be required
if the ?replaceId
parameter is used and the profile item being
replaced is the preferred phone number.
See Multi-factor authentication challenges above.
Body parameter
{
"_id": "hp1",
"_profile": "https://api.apiture.com/schemas/users/userPhoneNumber/v1.0.0/profile.json",
"type": "home",
"number": "555-555-5555",
"state": "approved",
"_links": {
"self": {
"href": "/users/users/9b0387db-8705-469a-852c-ead8bfd872ba/phoneNumbers/hp1"
}
}
}
Parameters
Parameter | Description |
---|---|
replaceId (query) |
string An optional _id of an existing phone number to be replaced with this new phone number instead of adding a new phone number, once it has been approved. If replaceId matches the _id of the preferred phone number the preferredPhoneNumberId will also be updated to the value of replaceId once approved (the Apiture-Challenge header may be required also). If no existing phone number matches replaceId , the new phone number is added to the list of phone numbers. Example: ?replaceId=p1 |
Apiture-Challenge (header) |
string The unique identifier of a Challenge resource which demonstrates the user has recently verified their identity. See the discussion of Multi-factor authentication challenges above. The value must be the _id string of a valid, redeemable Challenge resource which matches the challenge context. |
body (body) |
userPhoneNumber (required) The data necessary to create a new phone number. |
userId (path) |
string (required) The unique identifier of the user. This is an opaque string. |
Try it
Fields marked with * are mandatory.
Response
Response Code:
Response Headers:
Response Body:
Click on 'Try It' to get a response.
Example responses
201 Response
{
"_id": "hp1",
"_profile": "https://api.apiture.com/schemas/users/userPhoneNumber/v1.0.0/profile.json",
"type": "home",
"number": "555-555-5555",
"state": "approved",
"_links": {
"self": {
"href": "/users/users/9b0387db-8705-469a-852c-ead8bfd872ba/phoneNumbers/hp1"
}
}
}
Responses
Status | Description |
---|---|
201 | Created |
Created | |
Schema: userPhoneNumber |
Status | Description |
---|---|
400 | Bad Request |
Bad Request. The request body or one or more of the query parameters was not well formed. The _error field in the response will contain details about the request error. | |
Schema: errorResponse |
Status | Description |
---|---|
409 | Conflict |
Conflict. The selected profile value cannot be set as the preferred because it is still pending , or no Apiture-Challenge request header was passed when expected, or the challenge has not been verified, has expired, or has been redeemed too many times. | |
Schema: challengeErrorResponse |
Response Headers
Status | Description |
---|---|
201 | Location string uri |
The URI of the new resource. If the URI begins with / it is relative to the API root context. Else, it is a full URI starting with scheme ://host | |
201 | ETag string |
The ETag response header specifies an entity tag which may be provided in an If-Match request header for PUT or PATCH operations which update the resource. |
getPhoneNumber
Code samples
# You can also use wget
curl -X GET https://api.devbank.apiture.com/users/users/{userId}/phoneNumbers/{phoneNumberId} \
-H 'Accept: application/hal+json' \
-H 'If-None-Match: string' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
GET https://api.devbank.apiture.com/users/users/{userId}/phoneNumbers/{phoneNumberId} HTTP/1.1
Host: api.devbank.apiture.com
Accept: application/hal+json
If-None-Match: string
var headers = {
'Accept':'application/hal+json',
'If-None-Match':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.devbank.apiture.com/users/users/{userId}/phoneNumbers/{phoneNumberId}',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const headers = {
'Accept':'application/hal+json',
'If-None-Match':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.devbank.apiture.com/users/users/{userId}/phoneNumbers/{phoneNumberId}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/hal+json',
'If-None-Match' => 'string',
'API-Key' => 'API_KEY',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.get 'https://api.devbank.apiture.com/users/users/{userId}/phoneNumbers/{phoneNumberId}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/hal+json',
'If-None-Match': 'string',
'API-Key': 'API_KEY',
'Authorization': 'Bearer {access-token}'
}
r = requests.get('https://api.devbank.apiture.com/users/users/{userId}/phoneNumbers/{phoneNumberId}', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.devbank.apiture.com/users/users/{userId}/phoneNumbers/{phoneNumberId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/hal+json"},
"If-None-Match": []string{"string"},
"API-Key": []string{"API_KEY"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://api.devbank.apiture.com/users/users/{userId}/phoneNumbers/{phoneNumberId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Fetch a representation of this phone number
GET /users/{userId}/phoneNumbers/{phoneNumberId}
Return a HAL representation of this phone number resource.
Parameters
Parameter | Description |
---|---|
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. |
userId (path) |
string (required) The unique identifier of the user. This is an opaque string. |
phoneNumberId (path) |
string (required) The unique identifier of this phone number. This is an opaque string. |
Try it
Fields marked with * are mandatory.
Response
Response Code:
Response Headers:
Response Body:
Click on 'Try It' to get a response.
Example responses
200 Response
{
"_id": "hp1",
"_profile": "https://api.apiture.com/schemas/users/userPhoneNumber/v1.0.0/profile.json",
"type": "home",
"number": "555-555-5555",
"state": "approved",
"_links": {
"self": {
"href": "/users/users/9b0387db-8705-469a-852c-ead8bfd872ba/phoneNumbers/hp1"
}
}
}
Responses
Status | Description |
---|---|
200 | OK |
OK | |
Schema: userPhoneNumber |
Status | Description |
---|---|
304 | Not Modified |
Not Modified. The resource has not been modified since it was last fetched. |
Status | Description |
---|---|
404 | Not Found |
Not Found. There is no such phone number resource at the specified {phoneNumberId} . The _error field in the response will contain details about the request error. | |
Schema: errorResponse |
Response Headers
Status | Description |
---|---|
200 | ETag string |
The ETag response header specifies an entity tag which may be provided in an If-Match request header for PUT or PATCH operations which update this phone number resource. |
deletePhoneNumber
Code samples
# You can also use wget
curl -X DELETE https://api.devbank.apiture.com/users/users/{userId}/phoneNumbers/{phoneNumberId} \
-H 'Accept: application/hal+json' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
DELETE https://api.devbank.apiture.com/users/users/{userId}/phoneNumbers/{phoneNumberId} HTTP/1.1
Host: api.devbank.apiture.com
Accept: application/hal+json
var headers = {
'Accept':'application/hal+json',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.devbank.apiture.com/users/users/{userId}/phoneNumbers/{phoneNumberId}',
method: 'delete',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const headers = {
'Accept':'application/hal+json',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.devbank.apiture.com/users/users/{userId}/phoneNumbers/{phoneNumberId}',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/hal+json',
'API-Key' => 'API_KEY',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.delete 'https://api.devbank.apiture.com/users/users/{userId}/phoneNumbers/{phoneNumberId}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/hal+json',
'API-Key': 'API_KEY',
'Authorization': 'Bearer {access-token}'
}
r = requests.delete('https://api.devbank.apiture.com/users/users/{userId}/phoneNumbers/{phoneNumberId}', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.devbank.apiture.com/users/users/{userId}/phoneNumbers/{phoneNumberId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/hal+json"},
"API-Key": []string{"API_KEY"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("DELETE", "https://api.devbank.apiture.com/users/users/{userId}/phoneNumbers/{phoneNumberId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Delete this phone number resource
DELETE /users/{userId}/phoneNumbers/{phoneNumberId}
Delete this phone number. The number can only be deleted if it is not the user's preferred phone number.
Parameters
Parameter | Description |
---|---|
userId (path) |
string (required) The unique identifier of the user. This is an opaque string. |
phoneNumberId (path) |
string (required) The unique identifier of this phone number. This is an opaque string. |
Try it
Fields marked with * are mandatory.
Response
Response Code:
Response Headers:
Response Body:
Click on 'Try It' to get a response.
Example responses
409 Response
{
"_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": []
}
}
}
Responses
Status | Description |
---|---|
204 | No Content |
No Content. The resource was deleted successfully. |
Status | Description |
---|---|
409 | Conflict |
Conflict. The selected phone number cannot be deleted because it is currently the user's preferred phone number. | |
Schema: errorResponse |
setPreferredPhoneNumber
Code samples
# You can also use wget
curl -X PUT https://api.devbank.apiture.com/users/users/{userId}/preferredPhoneNumber \
-H 'Accept: application/hal+json' \
-H 'Apiture-Challenge: string' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
PUT https://api.devbank.apiture.com/users/users/{userId}/preferredPhoneNumber HTTP/1.1
Host: api.devbank.apiture.com
Accept: application/hal+json
Apiture-Challenge: string
var headers = {
'Accept':'application/hal+json',
'Apiture-Challenge':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.devbank.apiture.com/users/users/{userId}/preferredPhoneNumber',
method: 'put',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const headers = {
'Accept':'application/hal+json',
'Apiture-Challenge':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.devbank.apiture.com/users/users/{userId}/preferredPhoneNumber',
{
method: 'PUT',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/hal+json',
'Apiture-Challenge' => 'string',
'API-Key' => 'API_KEY',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.put 'https://api.devbank.apiture.com/users/users/{userId}/preferredPhoneNumber',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/hal+json',
'Apiture-Challenge': 'string',
'API-Key': 'API_KEY',
'Authorization': 'Bearer {access-token}'
}
r = requests.put('https://api.devbank.apiture.com/users/users/{userId}/preferredPhoneNumber', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.devbank.apiture.com/users/users/{userId}/preferredPhoneNumber");
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{
"Accept": []string{"application/hal+json"},
"Apiture-Challenge": []string{"string"},
"API-Key": []string{"API_KEY"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("PUT", "https://api.devbank.apiture.com/users/users/{userId}/preferredPhoneNumber", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Set Preferred Phone Number
PUT /users/{userId}/preferredPhoneNumber
Set the user's preferred phone number.
The user may set their preferred phone number
to an approved number by passing its
unique _id
in the value
query parameter.
This updates the preferredPhoneNumberId
property of the user.
This operation may require the user to complete an additional
authentication challenge as described in Multi-factor
authentication challenges above. A valid
Apiture-Challenge
request header may be required.
This operation is available via the apiture:setAsPreferred
link on an phone number if that resource is eligible
to be set as the preferred phone number.
No changes are made if the specified phone number is already the preferred phone number.
Parameters
Parameter | Description |
---|---|
value (query) |
string The _id of the number to assign as the preferred phone number. If this query parameter exists, the request body, if any, is ignored. Example: ?value=pe0 |
Apiture-Challenge (header) |
string The unique identifier of a Challenge resource which demonstrates the user has recently verified their identity. See the discussion of Multi-factor authentication challenges above. The value must be the _id string of a valid, redeemable Challenge resource which matches the challenge context. |
userId (path) |
string (required) The unique identifier of the user. This is an opaque string. |
Try it
Fields marked with * are mandatory.
Response
Response Code:
Response Headers:
Response Body:
Click on 'Try It' to get a response.
Example responses
200 Response
{
"_id": "9604e5f8-da29-4197-b6fb-60a1cfecfba8",
"_profile": "https://api.apiture.com/schemas/users/user/v1.0.0/profile.json",
"username": "Johnny1733",
"firstName": "John",
"middleName": "Daniel",
"lastName": "Smith",
"preferredName": "John",
"identification": [
{
"value": "111-11-1111",
"type": "taxId",
"emailAddresses": [
{
"_id": "pe0",
"type": "personal",
"value": "johnny1733@example.com"
},
{
"_id": "we0",
"type": "work",
"value": "support@apiture.com"
}
]
}
],
"customerId": "00047294723672",
"phones": [
{
"_id": "hp0",
"type": "home",
"number": "(555) 555-5555"
},
{
"_id": "mp0",
"type": "mobile",
"number": "(999) 555-5555"
}
],
"birthdate": "1974-10-27",
"citizenship": [
{
"countryCode": "US",
"state": "citizen"
}
],
"occupation": "Software Engineer",
"addresses": [
{
"_id": "ha0",
"type": "home",
"addressLine1": "555 N Front Street",
"addressLine2": "Suite 5555",
"city": "Wilmington",
"regionCode": "NC",
"postalCode": "28401-5405",
"countryCode": "US"
},
{
"_id": "ha1",
"type": "home",
"addressLine1": "123 S 3rd Street",
"addressLine2": "Apt 42",
"city": "Wilmington",
"regionCode": "NC",
"postalCode": "28411-5405",
"countryCode": "Use"
}
],
"state": "active",
"attributes": {},
"_links": {
"self": {
"href": "/users/users/9604e5f8-da29-4197-b6fb-60a1cfecfba8"
},
"apiture:deactivate": {
"href": "/users/inactiveUsers?user=9604e5f8-da29-4197-b6fb-60a1cfecfba8"
},
"apiture:lock": {
"href": "/users/lockedUsers?user=9604e5f8-da29-4197-b6fb-60a1cfecfba8"
},
"apiture:freeze": {
"href": "/users/frozenUsers?user=9604e5f8-da29-4197-b6fb-60a1cfecfba8"
},
"apiture:remove": {
"href": "/users/removedUsers?user=9604e5f8-da29-4197-b6fb-60a1cfecfba8"
}
},
"createdAt": "2018-03-09T20:14:32Z",
"lastLoggedInAt": "2019-07-09T10:24:00Z",
"lastContactedAt": "2019-07-16T06:00:00Z"
}
Responses
Status | Description |
---|---|
200 | OK |
OK. The user's preferredPhoneNumberId is updated to the passed value. | |
Schema: user |
Status | Description |
---|---|
409 | Conflict |
Conflict. The selected profile value cannot be set as the preferred because it is still pending , or no Apiture-Challenge request header was passed when expected, or the challenge has not been verified, has expired, or has been redeemed too many times. | |
Schema: challengeErrorResponse |
Status | Description |
---|---|
422 | Unprocessable Entity |
Unprocessable Entity. The request to set a preferred profile value cannot be processed because no such profile value value exists, or the passed challenge does not exist. | |
Schema: errorResponse |
Response Headers
Status | Description |
---|---|
200 | ETag string |
The ETag response header specifies an entity tag which may be provided in an If-Match request header for PUT or PATCH operations which update this user resource. |
Configuration
getConfigurationGroups
Code samples
# You can also use wget
curl -X GET https://api.devbank.apiture.com/users/configurations/groups \
-H 'Accept: application/hal+json' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
GET https://api.devbank.apiture.com/users/configurations/groups HTTP/1.1
Host: api.devbank.apiture.com
Accept: application/hal+json
var headers = {
'Accept':'application/hal+json',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.devbank.apiture.com/users/configurations/groups',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const headers = {
'Accept':'application/hal+json',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.devbank.apiture.com/users/configurations/groups',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/hal+json',
'API-Key' => 'API_KEY',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.get 'https://api.devbank.apiture.com/users/configurations/groups',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/hal+json',
'API-Key': 'API_KEY',
'Authorization': 'Bearer {access-token}'
}
r = requests.get('https://api.devbank.apiture.com/users/configurations/groups', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.devbank.apiture.com/users/configurations/groups");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/hal+json"},
"API-Key": []string{"API_KEY"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://api.devbank.apiture.com/users/configurations/groups", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Return a collection of configuration groups
GET /configurations/groups
Return a paginated sortable filterable searchable collection of configuration groups. The links in the response include pagination links.
Parameters
Parameter | Description |
---|---|
start (query) |
integer(int64) The zero-based index of the first configuration group item to include in this page. The default 0 denotes the beginning of the collection. |
limit (query) |
integer(int32) The maximum number of configuration group representations to return in this page. |
sortBy (query) |
string Optional sort criteria. See sort criteria format, such as ?sortBy=field1,-field2 . |
filter (query) |
string Optional filter criteria. See filtering. |
q (query) |
string Optional search string. See searching. |
Try it
Fields marked with * are mandatory.
Response
Response Code:
Response Headers:
Response Body:
Click on 'Try It' to get a response.
Example responses
200 Response
{
"_profile": "http://localhost:8080/schemas/configurations/configurationGroups/v1.0.0/profile.json",
"start": 10,
"limit": 10,
"count": 67,
"name": "configurationGroups",
"_links": {
"self": {
"href": "/configurations/configurations/groups?start=10&limit=10"
},
"first": {
"href": "/configurations/configurations/groups?start=0&limit=10"
},
"next": {
"href": "/configurations/configurations/groups?start=20&limit=10"
},
"collection": {
"href": "/configurations/configurations/groups"
}
},
"_embedded": {
"items": [
{
"_profile": "https://api.apiture.com/schemas/configurations/configurationGroup/v1.0.0/profile.json",
"_links": {
"self": {
"href": "/configurations/groups/basic"
},
"apiture:configuration": {
"href": "/configurations"
}
},
"name": "basic",
"label": "Basic Settings",
"description": "The basic settings for the Transfers API"
},
{
"_profile": "https://api.apiture.com/schemas/configurations/configurationGroup/v1.0.0/profile.json",
"_links": {
"self": {
"href": "/configurations/groups/calendar"
},
"apiture:configuration": {
"href": "/configurations"
}
},
"name": "calendar",
"label": "Calendar",
"description": "A calendar that specifies which dates are valid for performing transfers (e.g., weekdays excluding federal holidays)"
}
]
}
}
Responses
Status | Description |
---|---|
200 | OK |
OK | |
Schema: configurationGroups |
Status | Description |
---|---|
400 | Bad Request |
Bad Request. The request body or one or more of the query parameters was not well formed. The _error field in the response will contain details about the request error. | |
Schema: errorResponse |
Status | Description |
---|---|
422 | Unprocessable Entity |
Unprocessable Entity. One or more of the query parameters was well formed but otherwise invalid. The _error field in the response will contain details about the request error. | |
Schema: errorResponse |
getConfigurationGroup
Code samples
# You can also use wget
curl -X GET https://api.devbank.apiture.com/users/configurations/groups/{groupName} \
-H 'Accept: application/hal+json' \
-H 'If-None-Match: string' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
GET https://api.devbank.apiture.com/users/configurations/groups/{groupName} HTTP/1.1
Host: api.devbank.apiture.com
Accept: application/hal+json
If-None-Match: string
var headers = {
'Accept':'application/hal+json',
'If-None-Match':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.devbank.apiture.com/users/configurations/groups/{groupName}',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const headers = {
'Accept':'application/hal+json',
'If-None-Match':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.devbank.apiture.com/users/configurations/groups/{groupName}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/hal+json',
'If-None-Match' => 'string',
'API-Key' => 'API_KEY',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.get 'https://api.devbank.apiture.com/users/configurations/groups/{groupName}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/hal+json',
'If-None-Match': 'string',
'API-Key': 'API_KEY',
'Authorization': 'Bearer {access-token}'
}
r = requests.get('https://api.devbank.apiture.com/users/configurations/groups/{groupName}', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.devbank.apiture.com/users/configurations/groups/{groupName}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/hal+json"},
"If-None-Match": []string{"string"},
"API-Key": []string{"API_KEY"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://api.devbank.apiture.com/users/configurations/groups/{groupName}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Fetch a representation of this configuration group
GET /configurations/groups/{groupName}
Return a HAL representation of this configuration group resource.
Parameters
Parameter | Description |
---|---|
groupName (path) |
string (required) The unique name of this configuration group. |
If-None-Match (header) |
string The entity tag that was returned in the ETag response. If the resource's current entity tag matches, the GET will return 304 (Not Modified) and no response body, else the resource representation will be returned. |
Try it
Fields marked with * are mandatory.
Response
Response Code:
Response Headers:
Response Body:
Click on 'Try It' to get a response.
Example responses
200 Response
{
"_profile": "https://api.apiture.com/schemas/configurations/configurationGroup/v1.0.0/profile.json",
"_links": {
"self": {
"href": "/configurations/groups/basic"
},
"apiture:configuration": {
"href": "/configurations"
}
},
"name": "basic",
"label": "Basic Settings",
"description": "The basic settings for the Transfers API",
"schema": {
"type": "object",
"properties": {
"dailyLimit": {
"type": "number",
"description": "The daily limit for the number of transfers"
},
"cutoffTime": {
"type": "string",
"format": "time",
"description": "The cutoff time for scheduling transfers for the current day"
}
}
},
"values": {
"dailyLimit": 5,
"cutoffTime": "17:30:00"
}
}
Responses
Status | Description |
---|---|
200 | OK |
OK | |
Schema: configurationGroup |
Status | Description |
---|---|
304 | Not Modified |
Not Modified. The resource has not been modified since it was last fetched. |
Status | Description |
---|---|
404 | Not Found |
Not Found. There is no such configuration group resource at the specified {groupName} The _error field in the response will contain details about the request error. | |
Schema: errorResponse |
Response Headers
Status | Description |
---|---|
200 | ETag string |
The ETag response header specifies an entity tag which may be provided in an If-None-Match request header for GET operations for this configuration group resource. |
getConfigurationGroupSchema
Code samples
# You can also use wget
curl -X GET https://api.devbank.apiture.com/users/configurations/groups/{groupName}/schema \
-H 'Accept: application/hal+json' \
-H 'If-None-Match: string' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
GET https://api.devbank.apiture.com/users/configurations/groups/{groupName}/schema HTTP/1.1
Host: api.devbank.apiture.com
Accept: application/hal+json
If-None-Match: string
var headers = {
'Accept':'application/hal+json',
'If-None-Match':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.devbank.apiture.com/users/configurations/groups/{groupName}/schema',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const headers = {
'Accept':'application/hal+json',
'If-None-Match':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.devbank.apiture.com/users/configurations/groups/{groupName}/schema',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/hal+json',
'If-None-Match' => 'string',
'API-Key' => 'API_KEY',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.get 'https://api.devbank.apiture.com/users/configurations/groups/{groupName}/schema',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/hal+json',
'If-None-Match': 'string',
'API-Key': 'API_KEY',
'Authorization': 'Bearer {access-token}'
}
r = requests.get('https://api.devbank.apiture.com/users/configurations/groups/{groupName}/schema', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.devbank.apiture.com/users/configurations/groups/{groupName}/schema");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/hal+json"},
"If-None-Match": []string{"string"},
"API-Key": []string{"API_KEY"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://api.devbank.apiture.com/users/configurations/groups/{groupName}/schema", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Fetch the schema for this configuration group
GET /configurations/groups/{groupName}/schema
Return a HAL representation of this configuration group schema resource.
Parameters
Parameter | Description |
---|---|
groupName (path) |
string (required) The unique name of this configuration group. |
If-None-Match (header) |
string The entity tag that was returned in the ETag response. If the resource's current entity tag matches, the GET will return 304 (Not Modified) and no response body, else the resource representation will be returned. |
Try it
Fields marked with * are mandatory.
Response
Response Code:
Response Headers:
Response Body:
Click on 'Try It' to get a response.
Example responses
200 Response
{
"type": "object",
"properties": {
"dailyLimit": {
"type": "number",
"description": "The daily limit for the number of transfers"
},
"cutoffTime": {
"type": "string",
"format": "time",
"description": "The cutoff time for scheduling transfers for the current day"
}
}
}
Responses
Status | Description |
---|---|
200 | OK |
OK | |
Schema: configurationSchema |
Status | Description |
---|---|
304 | Not Modified |
Not Modified. The resource has not been modified since it was last fetched. |
Status | Description |
---|---|
404 | Not Found |
Not Found. There is no such configuration group resource at the specified {groupName} The _error field in the response will contain details about the request error. | |
Schema: errorResponse |
Response Headers
Status | Description |
---|---|
200 | ETag string |
The ETag response header specifies an entity tag which may be provided in an If-Match request header for PUT |
getConfigurationGroupValues
Code samples
# You can also use wget
curl -X GET https://api.devbank.apiture.com/users/configurations/groups/{groupName}/values \
-H 'Accept: application/hal+json' \
-H 'If-None-Match: string' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
GET https://api.devbank.apiture.com/users/configurations/groups/{groupName}/values HTTP/1.1
Host: api.devbank.apiture.com
Accept: application/hal+json
If-None-Match: string
var headers = {
'Accept':'application/hal+json',
'If-None-Match':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.devbank.apiture.com/users/configurations/groups/{groupName}/values',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const headers = {
'Accept':'application/hal+json',
'If-None-Match':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.devbank.apiture.com/users/configurations/groups/{groupName}/values',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/hal+json',
'If-None-Match' => 'string',
'API-Key' => 'API_KEY',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.get 'https://api.devbank.apiture.com/users/configurations/groups/{groupName}/values',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/hal+json',
'If-None-Match': 'string',
'API-Key': 'API_KEY',
'Authorization': 'Bearer {access-token}'
}
r = requests.get('https://api.devbank.apiture.com/users/configurations/groups/{groupName}/values', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.devbank.apiture.com/users/configurations/groups/{groupName}/values");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/hal+json"},
"If-None-Match": []string{"string"},
"API-Key": []string{"API_KEY"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://api.devbank.apiture.com/users/configurations/groups/{groupName}/values", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Fetch the values for the specified configuration group
GET /configurations/groups/{groupName}/values
Return a representation of this configuration group values resource.
Parameters
Parameter | Description |
---|---|
groupName (path) |
string (required) The unique name of this configuration group. |
If-None-Match (header) |
string The entity tag that was returned in the ETag response. If the resource's current entity tag matches, the GET will return 304 (Not Modified) and no response body, else the resource representation will be returned. |
Try it
Fields marked with * are mandatory.
Response
Response Code:
Response Headers:
Response Body:
Click on 'Try It' to get a response.
Example responses
200 Response
{
"dailyLimit": 5,
"cutoffTime": "17:30:00"
}
Responses
Status | Description |
---|---|
200 | OK |
OK | |
Schema: configurationValues |
Status | Description |
---|---|
304 | Not Modified |
Not Modified. The resource has not been modified since it was last fetched. |
Status | Description |
---|---|
404 | Not Found |
Not Found. There is no such configuration group resource at the specified {groupName} The _error field in the response will contain details about the request error. | |
Schema: errorResponse |
Response Headers
Status | Description |
---|---|
200 | ETag string |
The ETag response header specifies an entity tag which may be provided in an If-Match request header for PUT |
updateConfigurationGroupValues
Code samples
# You can also use wget
curl -X PUT https://api.devbank.apiture.com/users/configurations/groups/{groupName}/values \
-H 'Content-Type: application/hal+json' \
-H 'Accept: application/hal+json' \
-H 'If-Match: string' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
PUT https://api.devbank.apiture.com/users/configurations/groups/{groupName}/values HTTP/1.1
Host: api.devbank.apiture.com
Content-Type: application/hal+json
Accept: application/hal+json
If-Match: string
var headers = {
'Content-Type':'application/hal+json',
'Accept':'application/hal+json',
'If-Match':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.devbank.apiture.com/users/configurations/groups/{groupName}/values',
method: 'put',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const inputBody = '{
"dailyLimit": 5,
"cutoffTime": "17:30:00"
}';
const headers = {
'Content-Type':'application/hal+json',
'Accept':'application/hal+json',
'If-Match':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.devbank.apiture.com/users/configurations/groups/{groupName}/values',
{
method: 'PUT',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/hal+json',
'Accept' => 'application/hal+json',
'If-Match' => 'string',
'API-Key' => 'API_KEY',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.put 'https://api.devbank.apiture.com/users/configurations/groups/{groupName}/values',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/hal+json',
'Accept': 'application/hal+json',
'If-Match': 'string',
'API-Key': 'API_KEY',
'Authorization': 'Bearer {access-token}'
}
r = requests.put('https://api.devbank.apiture.com/users/configurations/groups/{groupName}/values', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.devbank.apiture.com/users/configurations/groups/{groupName}/values");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PUT");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/hal+json"},
"Accept": []string{"application/hal+json"},
"If-Match": []string{"string"},
"API-Key": []string{"API_KEY"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("PUT", "https://api.devbank.apiture.com/users/configurations/groups/{groupName}/values", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Update the values for the specified configuration group
PUT /configurations/groups/{groupName}/values
Perform a complete replacement of this set of values
Body parameter
{
"dailyLimit": 5,
"cutoffTime": "17:30:00"
}
Parameters
Parameter | Description |
---|---|
groupName (path) |
string (required) The unique name of this configuration group. |
If-Match (header) |
string The entity tag that was returned in the ETag response. If used, this must match the current entity tag of the resource. |
body (body) |
configurationValues (required) |
Try it
Fields marked with * are mandatory.
Response
Response Code:
Response Headers:
Response Body:
Click on 'Try It' to get a response.
Example responses
200 Response
{
"type": "object",
"properties": {
"dailyLimit": {
"type": "number",
"description": "The daily limit for the number of transfers"
},
"cutoffTime": {
"type": "string",
"format": "time",
"description": "The cutoff time for scheduling transfers for the current day"
}
}
}
Responses
Status | Description |
---|---|
200 | OK |
OK | |
Schema: configurationSchema |
Status | Description |
---|---|
400 | Bad Request |
Bad Request. The request body or one or more of the query parameters was not well formed. The _error field in the response will contain details about the request error. | |
Schema: errorResponse |
Status | Description |
---|---|
403 | Forbidden |
Access denied. Only user allowed to update configurations is an admin. | |
Schema: errorResponse |
Status | Description |
---|---|
404 | Not Found |
Not Found. There is no such configuration group resource at the specified {groupName} The _error field in the response will contain details about the request error. | |
Schema: errorResponse |
Status | Description |
---|---|
412 | Precondition Failed |
Precondition Failed. The supplied If-Match header value does not match the most recent ETag response header value. The resource has changed in the interim. | |
Schema: errorResponse |
Response Headers
Status | Description |
---|---|
200 | ETag string |
The ETag response header specifies an entity tag which may be provided in an If-Match request header for PUT |
getConfigurationGroupValue
Code samples
# You can also use wget
curl -X GET https://api.devbank.apiture.com/users/configurations/groups/{groupName}/values/{valueName} \
-H 'Accept: application/hal+json' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
GET https://api.devbank.apiture.com/users/configurations/groups/{groupName}/values/{valueName} HTTP/1.1
Host: api.devbank.apiture.com
Accept: application/hal+json
var headers = {
'Accept':'application/hal+json',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.devbank.apiture.com/users/configurations/groups/{groupName}/values/{valueName}',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const headers = {
'Accept':'application/hal+json',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.devbank.apiture.com/users/configurations/groups/{groupName}/values/{valueName}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/hal+json',
'API-Key' => 'API_KEY',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.get 'https://api.devbank.apiture.com/users/configurations/groups/{groupName}/values/{valueName}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/hal+json',
'API-Key': 'API_KEY',
'Authorization': 'Bearer {access-token}'
}
r = requests.get('https://api.devbank.apiture.com/users/configurations/groups/{groupName}/values/{valueName}', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.devbank.apiture.com/users/configurations/groups/{groupName}/values/{valueName}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/hal+json"},
"API-Key": []string{"API_KEY"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://api.devbank.apiture.com/users/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, usePUT /users/configurations/groups/{groupName}/values/{valueName}
(operationupdateConfigurationGroupValue
).
Parameters
Parameter | Description |
---|---|
groupName (path) |
string (required) The unique name of this configuration group. |
valueName (path) |
string (required) The unique name of a value in a configuration group. This is the name of the value in the schema . A {valueName} must be a simple identifier following the pattern letter [letter | digit | '-' | '_']* |
Try it
Fields marked with * are mandatory.
Response
Response Code:
Response Headers:
Response Body:
Click on 'Try It' to get a response.
Example responses
200 Response
"string"
Responses
Status | Description |
---|---|
200 | OK |
OK. The value of the named configuration value as a JSON string, number, boolean, array, or object. | |
Schema: string |
Status | Description |
---|---|
404 | Not Found |
Not Found. There is either no such configuration group resource at the specified {groupName} or no such value at the specified {valueName} . The _error field in the response will contain details about the request error. | |
Schema: errorResponse |
Response Headers
Status | Description |
---|---|
200 | ETag string |
The ETag response header specifies an entity tag which may be provided in an If-Match request header for PUT or PATCH operations which update this configuration group resource. |
updateConfigurationGroupValue
Code samples
# You can also use wget
curl -X PUT https://api.devbank.apiture.com/users/configurations/groups/{groupName}/values/{valueName} \
-H 'Content-Type: application/hal+json' \
-H 'Accept: application/hal+json' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
PUT https://api.devbank.apiture.com/users/configurations/groups/{groupName}/values/{valueName} HTTP/1.1
Host: api.devbank.apiture.com
Content-Type: application/hal+json
Accept: application/hal+json
var headers = {
'Content-Type':'application/hal+json',
'Accept':'application/hal+json',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: 'https://api.devbank.apiture.com/users/configurations/groups/{groupName}/values/{valueName}',
method: 'put',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const inputBody = 'string';
const headers = {
'Content-Type':'application/hal+json',
'Accept':'application/hal+json',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
fetch('https://api.devbank.apiture.com/users/configurations/groups/{groupName}/values/{valueName}',
{
method: 'PUT',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/hal+json',
'Accept' => 'application/hal+json',
'API-Key' => 'API_KEY',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.put 'https://api.devbank.apiture.com/users/configurations/groups/{groupName}/values/{valueName}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/hal+json',
'Accept': 'application/hal+json',
'API-Key': 'API_KEY',
'Authorization': 'Bearer {access-token}'
}
r = requests.put('https://api.devbank.apiture.com/users/configurations/groups/{groupName}/values/{valueName}', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://api.devbank.apiture.com/users/configurations/groups/{groupName}/values/{valueName}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PUT");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/hal+json"},
"Accept": []string{"application/hal+json"},
"API-Key": []string{"API_KEY"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("PUT", "https://api.devbank.apiture.com/users/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, useGET /users/configurations/groups/{groupName}/values/{valueName}
(operationgetConfigurationGroupValue
).
Body parameter
"string"
Parameters
Parameter | Description |
---|---|
groupName (path) |
string (required) The unique name of this configuration group. |
valueName (path) |
string (required) The unique name of a value in a configuration group. This is the name of the value in the schema . A {valueName} must be a simple identifier following the pattern letter [letter | digit | '-' | '_']* |
body (body) |
string (required) The request body must a valid JSON value and should be parsable with a JSON parser. The result may be a string, number, boolean, array, or object. |
Try it
Fields marked with * are mandatory.
Response
Response Code:
Response Headers:
Response Body:
Click on 'Try It' to get a response.
Example responses
200 Response
"string"
Responses
Status | Description |
---|---|
200 | OK |
OK | |
Schema: string |
Status | Description |
---|---|
403 | Forbidden |
Access denied. Only user allowed to update configurations is an admin. | |
Schema: errorResponse |
Response Headers
Status | Description |
---|---|
200 | ETag string |
The ETag response header specifies an entity tag which may be provided in an If-Match request header for PUT or PATCH operations which update this configuration group resource. |
Schemas
userAddress
{
"_id": "ha1",
"type": "home",
"addressLine1": "555 N Front Street",
"addressLine2": "Suite 5555",
"city": "Wilmington",
"regionCode": "NC",
"postalCode": "28401-5405",
"countryCode": "US",
"state": "approved",
"_links": {
"self": {
"href": "/users/users/f2d87aa6-33c8-458c-819b-41bb00f1ec08/addresses/ha1"
}
}
}
User Address (Version v1.0.0
)
Representation of a user's address resource. The links on an address indicate allowed user operations:
delete
- Delete the address resource. This operation is only present if the user may delete this address. For example, it is not available if this address is the user's preferred mailing address. (verb:DELETE
; operation:deleteAddress
.)apiture:setAsPreferred
- Set this address as the user's preferred mailing address. This operation is only present if- the address is not already selected as preferred and
- the address'
state
isapproved
. (verb:PUT
; operation:setPreferredAddress
.)
Properties
Name | Description |
---|---|
type | string The type of this address.
|
label | string A text label, suitable for presentation to the end user. This is derived from type or from otherType if type is other
read-only
|
otherType | string The actual address type if type is other .
minLength: 4
maxLength: 32
|
addressLine1 | string The first street address line of the address, normally a house number and street name. |
addressLine2 | string The optional second street address line of the address. |
city | string The name of the city or municipality. |
regionCode | string The mailing address region code, such as state in the US, or a province in Canada. minLength: 2
maxLength: 2
|
postalCode | string The mailing address postal code, such as a US Zip or Zip+4 code, or a Canadian postal code. minLength: 5
maxLength: 10
|
countryCode | string The ISO 3166-1 country code. minLength: 2
maxLength: 2
|
_id | string An identifier for this address, so that it can be referenced uniquely. The service will assign a unique _id if the client does not provide one. The _id must be unique across all addresses within the addresses array.
minLength: 1
maxLength: 8
|
_links | links An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
|
_embedded | object An optional map of nested resources, mapping each nested resource name to a nested resource representation. |
_profile | string(uri) The URI of a resource profile which describes the representation. |
_error | error An object which describes an error. This value is omitted if the operation succeeded without error. |
state | profileItemState The state of this address. pending addresses require financial institution approval. Only approved addresses may be set as the preferred address.
|
Links
Representations using this userAddress
schema may contain the following links:
Rel | Summary | Method |
---|---|---|
delete | Delete this address resource | DELETE |
apiture:setAsPreferred | Set Preferred mailing Address | PUT |
userAddresses
{
"_profile": "https://api.apiture.com/schemas/users/userAddresses/v1.0.0/profile.json",
"items": [
{
"_id": "ha1",
"type": "home",
"addressLine1": "555 N Front Street",
"addressLine2": "Suite 5555",
"city": "Wilmington",
"regionCode": "NC",
"postalCode": "28401-5405",
"countryCode": "US",
"state": "approved",
"_links": {
"self": {
"href": "/users/users/f2d87aa6-33c8-458c-819b-41bb00f1ec08/addresses/ha1"
}
}
},
{
"_id": "wa1",
"type": "work",
"addressLine1": "123 S 3rd Street",
"addressLine2": "Apt 42",
"city": "Wilmington",
"regionCode": "NC",
"postalCode": "28411-5405",
"countryCode": "US",
"_links": {
"self": {
"href": "/users/users/f2d87aa6-33c8-458c-819b-41bb00f1ec08/addresses/wa1"
}
}
}
],
"_links": {
"self": {
"href": "/users/users/f2d87aa6-33c8-458c-819b-41bb00f1ec08/addresses"
}
}
}
User Addresses (Version v1.0.0
)
The list of the user's addresses.
Properties
Name | Description |
---|---|
_links | links An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
|
_embedded | object An optional map of nested resources, mapping each nested resource name to a nested resource representation. |
_profile | string(uri) The URI of a resource profile which describes the representation. |
_error | error An object which describes an error. This value is omitted if the operation succeeded without error. |
items | [userAddress] An array containing address items. |
userEmailAddress
{
"_id": "pe1",
"_profile": "https://api.apiture.com/schemas/users/userEmailAddress/v1.0.0/profile.json",
"type": "personal",
"number": "555-555-5555",
"state": "approved",
"_links": {
"self": {
"href": "/users/users/f2d87aa6-33c8-458c-819b-41bb00f1ec08/emailAddresses/pe1"
},
"delete": {
"href": "/users/users/f2d87aa6-33c8-458c-819b-41bb00f1ec08/emailAddresses/pe1"
},
"apiture:setAsPreferred": {
"href": "/users/users/f2d87aa6-33c8-458c-819b-41bb00f1ec08/preferredEmailAddresses?value=pe1"
}
}
}
Email Address (Version v1.0.0
)
Representation of email address resources. An email address is immutable, although users can add new email addresses. The links on an address indicate allowed user operations:
delete
- Delete the email address resource. This operation is only present if the user may delete this address. For example, it is not available if this email address is the user's preferred email address. (verb:DELETE
; operation:deleteEmailAddress
.)apiture:setAsPreferred
- Set this email address as the user's preferred email address. This operation is only present if- the email address is not already selected as preferred and
- the address'
state
isapproved
. (verb:PUT
; operation:setPreferredEmailAddress
.)
Properties
Name | Description |
---|---|
value | string(email) The email address, such as JohnBankCustomer@example.com
minLength: 8
maxLength: 120
|
type | string The kind of email address this is.
|
_id | string An identifier for this email address, so that it can be referenced uniquely. The service will assign a unique _id if the client does not provide one. The _id must be unique across all email addresses within the emailAddresses array.
minLength: 1
maxLength: 8
|
_links | links An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
|
_embedded | object An optional map of nested resources, mapping each nested resource name to a nested resource representation. |
_profile | string(uri) The URI of a resource profile which describes the representation. |
_error | error An object which describes an error. This value is omitted if the operation succeeded without error. |
state | profileItemState The state of this email address. pending email addresses require financial institution approval. Only approved numbers may be set as the preferred email address.
|
Links
Representations using this userEmailAddress
schema may contain the following links:
Rel | Summary | Method |
---|---|---|
delete | Delete this email address resource | DELETE |
apiture:setAsPreferred | Set Preferred Email Address | PUT |
preferredResource
"pe0"
Preferred Resource (Version v1.0.0
)
The _id
of an address, email address, or phone number resource to set as the user's preferred item. The _id
is represented as a JSON string. (Note: the value must be quoted.)
Properties
userEmailAddresses
{
"_profile": "https://api.apiture.com/schemas/users/userEmailAddresses/v1.0.0/profile.json",
"items": [
{
"_id": "pe0",
"type": "personal",
"label": "Personal",
"number": "user7838@example.com",
"state": "approved",
"_profile": "https://api.apiture.com/schemas/users/userEmailAddress/v1.0.0/profile.json",
"_links": {
"self": {
"href": "/users/users/f2d87aa6-33c8-458c-819b-41bb00f1ec08/emailAddresses/pe0"
}
}
},
{
"_id": "pe2",
"type": "personal",
"label": "Personal",
"value": "John.Smith@example.com",
"state": "approved",
"_profile": "https://api.apiture.com/schemas/users/userEmailAddress/v1.0.0/profile.json",
"_links": {
"self": {
"href": "/users/users/f2d87aa6-33c8-458c-819b-41bb00f1ec08/userEmailAddresses/pe2"
}
}
}
],
"_links": {
"self": {
"href": "/users/users/f2d87aa6-33c8-458c-819b-41bb00f1ec08/emailAddresses"
}
}
}
The user's email addresses (Version v1.0.0
)
The list of the user's email addresses.
Properties
Name | Description |
---|---|
_links | links An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
|
_embedded | object An optional map of nested resources, mapping each nested resource name to a nested resource representation. |
_profile | string(uri) The URI of a resource profile which describes the representation. |
_error | error An object which describes an error. This value is omitted if the operation succeeded without error. |
items | [userEmailAddress] An array containing email address items. |
userPhoneNumber
{
"_id": "hp1",
"_profile": "https://api.apiture.com/schemas/users/userPhoneNumber/v1.0.0/profile.json",
"type": "home",
"number": "555-555-5555",
"state": "approved",
"_links": {
"self": {
"href": "/users/users/9b0387db-8705-469a-852c-ead8bfd872ba/phoneNumbers/hp1"
}
}
}
Phone Number (Version v1.0.0
)
Representation of phone number resources. The links on an phone number indicate allowed user operations:
delete
- Delete the phone number resource. This operation is only present if the user may delete this phone number. For example, it is not available if this phone number is the user's preferred phone number. (verb:DELETE
; operation:deletePhoneNumber
.)apiture:setAsPreferred
- Set this phone number as the user's preferred phone number. This operation is only present if- the phone number is not already selected as preferred and
- the phone number's
state
isapproved
. (verb:PUT
; operation:setPreferredPhoneNumber
.)
Properties
Name | Description |
---|---|
type | string The type or role of this phone number.
|
number | string The phone number, as a string. |
label | string A text label, suitable for presentation to the end user. This is also used if type is other .
|
_id | string An identifier for this phone number, so that it can be referenced uniquely. The service will assign a unique _id if the client does not provide one. The _id must be unique across all phone numbers within the phones array.
minLength: 1
maxLength: 8
|
_links | links An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
|
_embedded | object An optional map of nested resources, mapping each nested resource name to a nested resource representation. |
_profile | string(uri) The URI of a resource profile which describes the representation. |
_error | error An object which describes an error. This value is omitted if the operation succeeded without error. |
state | profileItemState The state of this phone number. pending numbers require financial institution approval. Only approved numbers may be set as the preferred phone number.
|
Links
Representations using this userPhoneNumber
schema may contain the following links:
Rel | Summary | Method |
---|---|---|
delete | Delete this phone number resource | DELETE |
apiture:setAsPreferred | Set Preferred Phone Number | PUT |
userPhoneNumbers
{
"_profile": "https://api.apiture.com/schemas/users/userPhoneNumbers/v1.0.0/profile.json",
"items": [
{
"_id": "mp0",
"type": "mobile",
"label": "Mobile",
"number": "555-555-5555",
"state": "approved",
"_profile": "https://api.apiture.com/schemas/users/userPhoneNumber/v1.0.0/profile.json",
"_links": {
"self": {
"href": "/users/users/9b0387db-8705-469a-852c-ead8bfd872ba/phoneNumbers/mp0"
}
}
},
{
"_id": "mp2",
"type": "home",
"label": "Home",
"number": "555-444-4444",
"state": "approved",
"_profile": "https://api.apiture.com/schemas/users/userPhoneNumber/v1.0.0/profile.json",
"_links": {
"self": {
"href": "/users/users/9b0387db-8705-469a-852c-ead8bfd872ba/phoneNumbers/mp2"
}
}
}
],
"_links": {
"self": {
"href": "/users/users/9b0387db-8705-469a-852c-ead8bfd872ba/phoneNumbers"
}
}
}
The user's phone numbers (Version v1.0.0
)
The list of the user's phone numbers.
Properties
Name | Description |
---|---|
_links | links An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
|
_embedded | object An optional map of nested resources, mapping each nested resource name to a nested resource representation. |
_profile | string(uri) The URI of a resource profile which describes the representation. |
_error | error An object which describes an error. This value is omitted if the operation succeeded without error. |
items | [userPhoneNumber] An array containing phone number items. |
profileItemState
"approved"
User Profile Item State (Version v1.0.0
)
The state of an item (address, email address, or phone number) within the user's profile. New addresses, email addresses, or phone numbers start with the state pending
, which means approval by the financial institution is pending. After they have been verified, the state becomes approved
. Some normalizing or sanitizing of the value may occur when this happens (for example, a ZIP code may change to ZIP+4 format). pending
items may not be assigned as the preferred item.
Type: string
Enumerated values: pending
approved
userVerificationFields
{
"kycAnswers": {
"foreignPoliticalFigure": false,
"foreignPoliticalFigureCountry": "st",
"foreignPoliticalFigureAssociation": "unknown"
},
"identityVerification": {
"provider": "string",
"sessionId": "string",
"scoredAt": "2019-09-13T06:11:01.375Z",
"score": "passed",
"state": "verified"
}
}
User Verification Fields (Version v1.0.0
)
Fields for recording the status of user verification for a financial institution's Customer Identification Program (CIP). (This fragment schema is used to build other schemas.)
Properties
Name | Description |
---|---|
kycAnswers | kycAnswers This user's answers Know Your Customer (KYC) questions. read-only
|
identityVerification | identityVerification The identity verification data for this person. These fields are derived from the results of any identity verification processes executed against the personally identifiable information (PII) contained in this record. read-only
|
kycAnswers
{
"foreignPoliticalFigure": false,
"foreignPoliticalFigureCountry": "st",
"foreignPoliticalFigureAssociation": "unknown"
}
Know Your Customer Answers (Version v1.0.0
)
Answers to 'Know Your Customer' questions which allow financial institutions to conform to a customer identification program.
Properties
Name | Description |
---|---|
foreignPoliticalFigure | boolean true if the person is a foreign senior political figure.
|
foreignPoliticalFigureCountry | string If the person is a foreign senior political figure, this is the foreign country ISO 3166-1 country code. This field is omitted if foreignPoliticalFigure is false .
maxLength: 2
|
foreignPoliticalFigureAssociation | foreignPoliticalFigureAssociation The type of association to a foreign political figure. |
foreignPoliticalFigureAssociation
"unknown"
foreign Political Figure Association (Version v1.0.0
)
The type of association to a foreign political figure. This eumeration is described by the foreignPoliticalFigureAssociation value from the getLabels
operation.
Type: string
Enumerated values: unknown
closeAssociate
familyMember
none
other
notApplicable
identityVerification
{
"provider": "string",
"sessionId": "string",
"scoredAt": "2019-09-13T06:11:01.375Z",
"score": "passed",
"state": "verified"
}
Identity Verification Data (Version v1.0.0
)
Data points on the identity verification process that tells if a user has passed, failed or expired the identity check.
Properties
Name | Description |
---|---|
provider | string The name of the identity verification provider. |
sessionId | string The unique id for a session of the identity verification process. |
scoredAt | string(date-time) The date-time when the provider ran identity verification. This is an RFC 3339 time stamp. |
score | string The indication if the user has passed or failed the identity verification process.
|
state | string The identity verification status for this person. This field is read-only and is derived from the results of any identity verification processes executed against the personally identifiable information (PII) contained in this record. read-only
|
createUser
{
"_links": {
"property1": {
"href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
"title": "Applicant"
},
"property2": {
"href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
"title": "Applicant"
}
},
"_embedded": {},
"_profile": "http://example.com",
"_error": {
"_id": "2eae46e1575c0a7b0115a4b3",
"message": "Descriptive error message...",
"statusCode": 422,
"type": "errorType1",
"remediation": "Remediation string...",
"occurredAt": "2018-01-25T05:50:52.375Z",
"errors": [
{
"_id": "ccdbe2c5c938a230667b3827",
"message": "An optional embedded error"
},
{
"_id": "dbe9088dcfe2460f229338a3",
"message": "Another optional embedded error"
}
],
"_links": {
"describedby": {
"href": "https://developer.apiture.com/errors/errorType1"
}
}
},
"firstName": "string",
"middleName": "string",
"lastName": "string",
"addresses": [
{
"_id": "ha1",
"type": "home",
"addressLine1": "555 N Front Street",
"addressLine2": "Suite 5555",
"city": "Wilmington",
"regionCode": "NC",
"postalCode": "28401-5405",
"countryCode": "US",
"state": "approved",
"_links": {
"self": {
"href": "/users/users/f2d87aa6-33c8-458c-819b-41bb00f1ec08/addresses/ha1"
}
}
}
],
"preferredMailingAddressId": "stri",
"emailAddresses": [
{
"_id": "pe1",
"_profile": "https://api.apiture.com/schemas/users/userEmailAddress/v1.0.0/profile.json",
"type": "personal",
"number": "555-555-5555",
"state": "approved",
"_links": {
"self": {
"href": "/users/users/f2d87aa6-33c8-458c-819b-41bb00f1ec08/emailAddresses/pe1"
},
"delete": {
"href": "/users/users/f2d87aa6-33c8-458c-819b-41bb00f1ec08/emailAddresses/pe1"
},
"apiture:setAsPreferred": {
"href": "/users/users/f2d87aa6-33c8-458c-819b-41bb00f1ec08/preferredEmailAddresses?value=pe1"
}
}
}
],
"preferredEmailAddressId": "stri",
"phones": [
{
"_id": "hp1",
"type": "home",
"number": "555-555-5555"
}
],
"preferredPhoneId": "stri",
"prefix": "string",
"suffix": "string",
"preferredName": "string",
"identification": [
{
"type": "taxId",
"value": "111-11-1111",
"expiration": {}
}
],
"birthdate": "2020-01-27",
"citizenship": [
{
"countryCode": "US",
"state": "citizen"
}
],
"occupation": "unknown",
"otherOccupation": "string",
"kycAnswers": {
"foreignPoliticalFigure": false,
"foreignPoliticalFigureCountry": "st",
"foreignPoliticalFigureAssociation": "unknown"
},
"identityVerification": {
"provider": "string",
"sessionId": "string",
"scoredAt": "2019-09-13T06:11:01.375Z",
"score": "passed",
"state": "verified"
},
"username": "string",
"state": "active",
"phoneNumbers": [
{
"_id": "hp1",
"_profile": "https://api.apiture.com/schemas/users/userPhoneNumber/v1.0.0/profile.json",
"type": "home",
"number": "555-555-5555",
"state": "approved",
"_links": {
"self": {
"href": "/users/users/9b0387db-8705-469a-852c-ead8bfd872ba/phoneNumbers/hp1"
}
}
}
]
}
Create User (Version v1.0.0
)
Representation used to create a new user.
Properties
Name | Description |
---|---|
_links | links An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
|
_embedded | object An optional map of nested resources, mapping each nested resource name to a nested resource representation. |
_profile | string(uri) The URI of a resource profile which describes the representation. |
_error | error An object which describes an error. This value is omitted if the operation succeeded without error. |
firstName | string (required) The person's first name (or given name). |
middleName | string The person's middle name. |
lastName | string (required) The person's last name (or surname). |
addresses | [userAddress] An array of postal/mailing addresses. Add or delete addresses with the createAddress and deleteAddress operations.
read-only
|
preferredMailingAddressId | string The preferred mailing address. This string is the _id of an address in the addresses array. This value is set with the setPreferredMailingAddress operation.
read-only
minLength: 1
maxLength: 4
|
emailAddresses | [userEmailAddress] An array of email addresses. Add or delete email addresses with the createEmailAddress and deleteEmailAddress operations.
read-only
|
preferredEmailAddressId | string The preferred email address. This string is the _id of an email address in the emailAddresses array. This value is set with the setPreferredEmailAddress operation.
read-only
minLength: 1
maxLength: 4
|
phones | [phoneNumber] An array of phone numbers. |
preferredPhoneId | string The ID of preferred phone number. This string is the _id of a phone number in the phones array. This value is set with the setPreferredPhoneNumber operation.
read-only
minLength: 1
maxLength: 4
|
prefix | string A title or honorific prefix such as Dr. or Fr. maxLength: 20
|
suffix | string A title or honorific suffix such as PhD or DDS. maxLength: 20
|
preferredName | string The contact's preferred name. This is how the contact's name is presented to the user in the interface. The default is the contact's firstName .
|
identification | [identification] (required) A collection of official identifying information associated with the contact. |
birthdate | string(date) (required) The contact's birth date in YYYY-MM-DD format.
|
citizenship | citizenship This individual's citizenship or nationality status. |
occupation | occupation The occupation of this individual. |
otherOccupation | string The actual occupation of this individual if their occupation is other . This is ignored if occupation is not other .
minLength: 4
maxLength: 32
|
kycAnswers | kycAnswers This user's answers Know Your Customer (KYC) questions. read-only
|
identityVerification | identityVerification The identity verification data for this person. These fields are derived from the results of any identity verification processes executed against the personally identifiable information (PII) contained in this record. read-only
|
username | string (required) The unique username for the user. |
state | string The state of this user record. The default is
|
phoneNumbers | [userPhoneNumber] An array of phone numbers. Add or delete phoneNumbers with the createPhoneNumber and deletePhoneNumber operations.
read-only
|
summaryUser
{
"firstName": "string",
"middleName": "string",
"lastName": "string",
"addresses": [
{
"_id": "ha1",
"type": "home",
"addressLine1": "555 N Front Street",
"addressLine2": "Suite 5555",
"city": "Wilmington",
"regionCode": "NC",
"postalCode": "28401-5405",
"countryCode": "US",
"state": "approved",
"_links": {
"self": {
"href": "/users/users/f2d87aa6-33c8-458c-819b-41bb00f1ec08/addresses/ha1"
}
}
}
],
"preferredMailingAddressId": "stri",
"emailAddresses": [
{
"_id": "pe1",
"_profile": "https://api.apiture.com/schemas/users/userEmailAddress/v1.0.0/profile.json",
"type": "personal",
"number": "555-555-5555",
"state": "approved",
"_links": {
"self": {
"href": "/users/users/f2d87aa6-33c8-458c-819b-41bb00f1ec08/emailAddresses/pe1"
},
"delete": {
"href": "/users/users/f2d87aa6-33c8-458c-819b-41bb00f1ec08/emailAddresses/pe1"
},
"apiture:setAsPreferred": {
"href": "/users/users/f2d87aa6-33c8-458c-819b-41bb00f1ec08/preferredEmailAddresses?value=pe1"
}
}
}
],
"preferredEmailAddressId": "stri",
"phones": [
{
"_id": "hp1",
"type": "home",
"number": "555-555-5555"
}
],
"preferredPhoneId": "stri",
"prefix": "string",
"suffix": "string",
"preferredName": "string",
"identification": [
{
"type": "taxId",
"value": "111-11-1111",
"expiration": {}
}
],
"birthdate": "2020-01-27",
"citizenship": [
{
"countryCode": "US",
"state": "citizen"
}
],
"occupation": "unknown",
"otherOccupation": "string",
"kycAnswers": {
"foreignPoliticalFigure": false,
"foreignPoliticalFigureCountry": "st",
"foreignPoliticalFigureAssociation": "unknown"
},
"identityVerification": {
"provider": "string",
"sessionId": "string",
"scoredAt": "2019-09-13T06:11:01.375Z",
"score": "passed",
"state": "verified"
},
"username": "string",
"state": "active",
"phoneNumbers": [
{
"_id": "hp1",
"_profile": "https://api.apiture.com/schemas/users/userPhoneNumber/v1.0.0/profile.json",
"type": "home",
"number": "555-555-5555",
"state": "approved",
"_links": {
"self": {
"href": "/users/users/9b0387db-8705-469a-852c-ead8bfd872ba/phoneNumbers/hp1"
}
}
}
],
"_links": {
"property1": {
"href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
"title": "Applicant"
},
"property2": {
"href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
"title": "Applicant"
}
},
"_embedded": {},
"_profile": "http://example.com",
"_error": {
"_id": "2eae46e1575c0a7b0115a4b3",
"message": "Descriptive error message...",
"statusCode": 422,
"type": "errorType1",
"remediation": "Remediation string...",
"occurredAt": "2018-01-25T05:50:52.375Z",
"errors": [
{
"_id": "ccdbe2c5c938a230667b3827",
"message": "An optional embedded error"
},
{
"_id": "dbe9088dcfe2460f229338a3",
"message": "Another optional embedded error"
}
],
"_links": {
"describedby": {
"href": "https://developer.apiture.com/errors/errorType1"
}
}
},
"_id": "string",
"customerId": "00047294723672"
}
Summary User (Version v1.0.0
)
Summary representation of a user resource in user 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 |
---|---|
firstName | string The person's first name (or given name). |
middleName | string The person's middle name. |
lastName | string The person's last name (or surname). |
addresses | [userAddress] An array of postal/mailing addresses. Add or delete addresses with the createAddress and deleteAddress operations.
read-only
|
preferredMailingAddressId | string The preferred mailing address. This string is the _id of an address in the addresses array. This value is set with the setPreferredMailingAddress operation.
read-only
minLength: 1
maxLength: 4
|
emailAddresses | [userEmailAddress] An array of email addresses. Add or delete email addresses with the createEmailAddress and deleteEmailAddress operations.
read-only
|
preferredEmailAddressId | string The preferred email address. This string is the _id of an email address in the emailAddresses array. This value is set with the setPreferredEmailAddress operation.
read-only
minLength: 1
maxLength: 4
|
phones | [phoneNumber] An array of phone numbers. |
preferredPhoneId | string The ID of preferred phone number. This string is the _id of a phone number in the phones array. This value is set with the setPreferredPhoneNumber operation.
read-only
minLength: 1
maxLength: 4
|
prefix | string A title or honorific prefix such as Dr. or Fr. maxLength: 20
|
suffix | string A title or honorific suffix such as PhD or DDS. maxLength: 20
|
preferredName | string The contact's preferred name. This is how the contact's name is presented to the user in the interface. The default is the contact's firstName .
|
identification | [identification] A collection of official identifying information associated with the contact. |
birthdate | string(date) The contact's birth date in YYYY-MM-DD format.
|
citizenship | citizenship This individual's citizenship or nationality status. |
occupation | occupation The occupation of this individual. |
otherOccupation | string The actual occupation of this individual if their occupation is other . This is ignored if occupation is not other .
minLength: 4
maxLength: 32
|
kycAnswers | kycAnswers This user's answers Know Your Customer (KYC) questions. read-only
|
identityVerification | identityVerification The identity verification data for this person. These fields are derived from the results of any identity verification processes executed against the personally identifiable information (PII) contained in this record. read-only
|
username | string The unique username for the user. |
state | string The state of this user record. The default is
|
phoneNumbers | [userPhoneNumber] An array of phone numbers. Add or delete phoneNumbers with the createPhoneNumber and deletePhoneNumber operations.
read-only
|
_links | links An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
|
_embedded | object An optional map of nested resources, mapping each nested resource name to a nested resource representation. |
_profile | string(uri) The URI of a resource profile which describes the representation. |
_error | error An object which describes an error. This value is omitted if the operation succeeded without error. |
_id | string The unique identifier for this user resource. This is an opaque string. |
customerId | string The unique customer number, also known as the Customer Identification File number or CIF number. This derived value is assigned to the user in the banking core. The customerId differs from the _id (which is the ID of the resource in the Users API).
read-only
minLength: 1
maxLength: 32
|
mergeUsers
{
"_links": {
"apiture:master": {
"href": "/users/users/5150d4f2-0d94-4602-8ca8-f68d00815f63"
}
},
"items": [
{
"_id": "9604e5f8-da29-4197-b6fb-60a1cfecfba8",
"_profile": "https://api.apiture.com/schemas/users/user/v1.0.0/profile.json",
"_links": {
"self": {
"href": "/users/users/9604e5f8-da29-4197-b6fb-60a1cfecfba8"
}
},
"username": "Johnny1733",
"firstName": "John",
"middleName": "Daniel",
"lastName": "Smith",
"preferredName": "John",
"identification": [
{
"value": "111-11-1111",
"type": "taxId"
}
],
"emailAddresses": [
{
"_id": "pe0",
"type": "personal",
"value": "johnny1733@example.com"
},
{
"_id": "we0",
"type": "work",
"value": "support@apiture.com"
}
],
"phones": [
{
"_id": "hp0",
"type": "home",
"number": "(555) 555-5555"
},
{
"_id": "mp0",
"type": "mobile",
"number": "(999) 555-5555"
}
],
"birthdate": "1974-10-27",
"citizenship": [
{
"countryCode": "US",
"state": "citizen"
}
],
"occupation": "Software Engineer",
"addresses": [
{
"_id": "ha0",
"type": "home",
"addressLine1": "555 N Front Street",
"addressLine2": "Suite 5555",
"city": "Wilmington",
"regionCode": "NC",
"postalCode": "28401-5405",
"countryCode": "US"
},
{
"_id": "ha1",
"type": "home",
"addressLine1": "123 S 3rd Street",
"addressLine2": "Apt 42",
"city": "Wilmington",
"regionCode": "NC",
"postalCode": "28411-5405",
"countryCode": "US"
}
],
"state": "active"
},
{
"_id": "d1fabf13-31d1-4351-89ad-877ac4d1220a",
"_profile": "https://api.apiture.com/schemas/users/user/v1.0.0/profile.json",
"_links": {
"self": {
"href": "/users/users/d1fabf13-31d1-4351-89ad-877ac4d1220a"
}
},
"username": "LAS15",
"firstName": "Johnathan",
"middleName": "Daniel",
"lastName": "Smith",
"preferredName": "John",
"identification": [
{
"value": "111-11-1111",
"type": "taxId"
}
],
"emailAddresses": [
{
"_id": "pe0",
"type": "personal",
"value": "johnny1733@example.com"
},
{
"_id": "we0",
"type": "work",
"value": "support@apiture.com"
}
],
"phones": [
{
"_id": "hp0",
"type": "home",
"number": "(555) 555-5555"
},
{
"_id": "mp0",
"type": "mobile",
"number": "(999) 555-5555"
}
],
"birthdate": "1974-10-27",
"citizenship": [
{
"countryCode": "US",
"state": "citizen"
}
],
"occupation": "Software Engineer",
"addresses": [
{
"_id": "ha0",
"type": "home",
"addressLine1": "555 N Front Street",
"addressLine2": "Suite 5555",
"city": "Wilmington",
"regionCode": "NC",
"postalCode": "28401-5405",
"countryCode": "US"
},
{
"_id": "ha1",
"type": "home",
"addressLine1": "123 S 3rd Street",
"addressLine2": "Apt 42",
"city": "Wilmington",
"regionCode": "NC",
"postalCode": "28411-5405",
"countryCode": "US"
}
],
"state": "active"
}
]
}
Merge Users (Version v1.0.0
)
Representation used to merge a set of users into a master user.
Properties
Name | Description |
---|---|
items | [user] Array of users to merge. |
_links | links An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
|
user
{
"_id": "9604e5f8-da29-4197-b6fb-60a1cfecfba8",
"_profile": "https://api.apiture.com/schemas/users/user/v1.0.0/profile.json",
"username": "Johnny1733",
"firstName": "John",
"middleName": "Daniel",
"lastName": "Smith",
"preferredName": "John",
"identification": [
{
"value": "111-11-1111",
"type": "taxId",
"emailAddresses": [
{
"_id": "pe0",
"type": "personal",
"value": "johnny1733@example.com"
},
{
"_id": "we0",
"type": "work",
"value": "support@apiture.com"
}
]
}
],
"customerId": "00047294723672",
"phones": [
{
"_id": "hp0",
"type": "home",
"number": "(555) 555-5555"
},
{
"_id": "mp0",
"type": "mobile",
"number": "(999) 555-5555"
}
],
"birthdate": "1974-10-27",
"citizenship": [
{
"countryCode": "US",
"state": "citizen"
}
],
"occupation": "Software Engineer",
"addresses": [
{
"_id": "ha0",
"type": "home",
"addressLine1": "555 N Front Street",
"addressLine2": "Suite 5555",
"city": "Wilmington",
"regionCode": "NC",
"postalCode": "28401-5405",
"countryCode": "US"
},
{
"_id": "ha1",
"type": "home",
"addressLine1": "123 S 3rd Street",
"addressLine2": "Apt 42",
"city": "Wilmington",
"regionCode": "NC",
"postalCode": "28411-5405",
"countryCode": "Use"
}
],
"state": "active",
"attributes": {},
"_links": {
"self": {
"href": "/users/users/9604e5f8-da29-4197-b6fb-60a1cfecfba8"
},
"apiture:deactivate": {
"href": "/users/inactiveUsers?user=9604e5f8-da29-4197-b6fb-60a1cfecfba8"
},
"apiture:lock": {
"href": "/users/lockedUsers?user=9604e5f8-da29-4197-b6fb-60a1cfecfba8"
},
"apiture:freeze": {
"href": "/users/frozenUsers?user=9604e5f8-da29-4197-b6fb-60a1cfecfba8"
},
"apiture:remove": {
"href": "/users/removedUsers?user=9604e5f8-da29-4197-b6fb-60a1cfecfba8"
}
},
"createdAt": "2018-03-09T20:14:32Z",
"lastLoggedInAt": "2019-07-09T10:24:00Z",
"lastContactedAt": "2019-07-16T06:00:00Z"
}
User (Version v1.0.0
)
Representation of a user resource. A user may have the following links:
self
: A link to the user resource.apiture:remove
: A link to remove the current user (viaPOST
). This link only exists if the user resource is notremoved
and if the caller is authorized to remove users.apiture:activate
: A link to activate the current user (viaPOST
). This link only exists if the user resource isinactive
,locked
, orfrozen
and the caller is authorized to activate users.apiture:deactivate
: A link to deactivate the current user (viaPOST
). This link only exists if the user resource isactive
orlocked
and the caller is authorized to deactivate users.apiture:lock
: A link to lock the current user (viaPOST
). This link only exists if the user resource isactive
orinactive
and the caller is authorized to lock users.apiture:freeze
: A link to freeze the current user (viaPOST
). This link only exists if the user resource isactive
,inactive
orlocked
and the caller is authorized to freeze users.apiture:merge
: A link to merge the current user (or a collection of users) with a specified master user (viaPOST
). This link only exists if the user resource isactive
,inactive
, orlocked
and the caller is authorized to merge users.
Properties
Name | Description |
---|---|
firstName | string The person's first name (or given name). |
middleName | string The person's middle name. |
lastName | string The person's last name (or surname). |
addresses | [userAddress] An array of postal/mailing addresses. Add or delete addresses with the createAddress and deleteAddress operations.
read-only
|
preferredMailingAddressId | string The preferred mailing address. This string is the _id of an address in the addresses array. This value is set with the setPreferredMailingAddress operation.
read-only
minLength: 1
maxLength: 4
|
emailAddresses | [userEmailAddress] An array of email addresses. Add or delete email addresses with the createEmailAddress and deleteEmailAddress operations.
read-only
|
preferredEmailAddressId | string The preferred email address. This string is the _id of an email address in the emailAddresses array. This value is set with the setPreferredEmailAddress operation.
read-only
minLength: 1
maxLength: 4
|
phones | [phoneNumber] An array of phone numbers. |
preferredPhoneId | string The ID of preferred phone number. This string is the _id of a phone number in the phones array. This value is set with the setPreferredPhoneNumber operation.
read-only
minLength: 1
maxLength: 4
|
prefix | string A title or honorific prefix such as Dr. or Fr. maxLength: 20
|
suffix | string A title or honorific suffix such as PhD or DDS. maxLength: 20
|
preferredName | string The contact's preferred name. This is how the contact's name is presented to the user in the interface. The default is the contact's firstName .
|
identification | [identification] A collection of official identifying information associated with the contact. |
birthdate | string(date) The contact's birth date in YYYY-MM-DD format.
|
citizenship | citizenship This individual's citizenship or nationality status. |
occupation | occupation The occupation of this individual. |
otherOccupation | string The actual occupation of this individual if their occupation is other . This is ignored if occupation is not other .
minLength: 4
maxLength: 32
|
kycAnswers | kycAnswers This user's answers Know Your Customer (KYC) questions. read-only
|
identityVerification | identityVerification The identity verification data for this person. These fields are derived from the results of any identity verification processes executed against the personally identifiable information (PII) contained in this record. read-only
|
username | string The unique username for the user. |
state | string The state of this user record. The default is
|
phoneNumbers | [userPhoneNumber] An array of phone numbers. Add or delete phoneNumbers with the createPhoneNumber and deletePhoneNumber operations.
read-only
|
_links | links An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
|
_embedded | object An optional map of nested resources, mapping each nested resource name to a nested resource representation. |
_profile | string(uri) The URI of a resource profile which describes the representation. |
_error | error An object which describes an error. This value is omitted if the operation succeeded without error. |
_id | string The unique identifier for this user resource. This is an opaque string. |
customerId | string The unique customer number, also known as the Customer Identification File number or CIF number. This derived value is assigned to the user in the banking core. The customerId differs from the _id (which is the ID of the resource in the Users API).
read-only
minLength: 1
maxLength: 32
|
createdAt | string(date-time) The date-time when the user was created. read-only
|
lastContactedAt | string(date-time) The date-time when the user was last contacted. This is a computed, read-only field and will be ignored if specified as part of the request body. This is in RFC 3396 format: YYYY-MM-DDThh:mm:ss.sssZ
|
lastLoggedInAt | string(date-time) The date-time when the user last logged in. This is a computed, read-only field and will be ignored if specified as part of the request body. This is in RFC 3396 format: YYYY-MM-DDThh:mm:ss.sssZ
|
attributes | attributes Additional unstructured application metadata about the user. |
users
{
"_profile": "https://api.apiture.com/schemas/users/users/v1.0.0/profile.json",
"start": 0,
"limit": 10,
"count": 2,
"name": "users",
"_links": {
"self": {
"href": "/users?start=0&limit=10"
},
"first": {
"href": "/users?start=10&limit=10"
},
"next": {
"href": "/users?start=10&limit=10"
},
"collection": {
"href": "/users"
}
},
"_embedded": {
"items": [
{
"_id": "9604e5f8-da29-4197-b6fb-60a1cfecfba8",
"_profile": "https://api.apiture.com/schemas/users/user/v1.0.0/profile.json",
"_links": {
"self": {
"href": "/users/users/9604e5f8-da29-4197-b6fb-60a1cfecfba8"
},
"apiture:deactivate": {
"href": "/users/inactiveUsers?user=9604e5f8-da29-4197-b6fb-60a1cfecfba8"
},
"apiture:lock": {
"href": "/users/lockedUsers?user=9604e5f8-da29-4197-b6fb-60a1cfecfba8"
},
"apiture:freeze": {
"href": "/users/frozenUsers?user=9604e5f8-da29-4197-b6fb-60a1cfecfba8"
},
"apiture:remove": {
"href": "/users/removedUsers?user=9604e5f8-da29-4197-b6fb-60a1cfecfba8"
},
"apiture:merge": {
"href": "/users/mergedUsers"
}
},
"username": "Johnny1733",
"firstName": "John",
"middleName": "Daniel",
"lastName": "Smith",
"preferredName": "John",
"identification": [
{
"value": "111-11-1111",
"type": "taxId"
}
],
"customerId": "00047294723672",
"emailAddresses": [
{
"_id": "pe0",
"type": "personal",
"value": "johnny1733@example.com"
},
{
"_id": "we0",
"type": "work",
"value": "support@apiture.com"
}
],
"phones": [
{
"_id": "hp0",
"type": "home",
"number": "(555) 555-5555"
},
{
"_id": "mp0",
"type": "mobile",
"number": "(999) 555-5555"
}
],
"birthdate": "1974-10-27",
"citizenship": [
{
"countryCode": "US",
"state": "citizen"
}
],
"occupation": "Software Engineer",
"addresses": [
{
"type": "home",
"addressLine1": "555 N Front Street",
"addressLine2": "Suite 5555",
"city": "Wilmington",
"regionCode": "NC",
"postalCode": "28401-5405",
"countryCode": "US"
},
{
"type": "home",
"addressLine1": "123 S 3rd Street",
"addressLine2": "Apt 42",
"city": "Wilmington",
"regionCode": "NC",
"postalCode": "28411-5405",
"countryCode": "US"
}
],
"lastContactedAt": "2018-07-29T11:13:54Z",
"lastLoggedInAt": "2017-12-29T15:19:41Z",
"state": "active",
"createdAt": "2018-03-09T20:14:32Z"
},
{
"_id": "d1fabf13-31d1-4351-89ad-877ac4d1220a",
"_profile": "https://api.apiture.com/schemas/users/user/v1.0.0/profile.json",
"_links": {
"self": {
"href": "/users/users/d1fabf13-31d1-4351-89ad-877ac4d1220a"
},
"apiture:deactivate": {
"href": "/users/inactiveUsers?user=d1fabf13-31d1-4351-89ad-877ac4d1220a"
},
"apiture:lock": {
"href": "/users/lockedUsers?user=d1fabf13-31d1-4351-89ad-877ac4d1220a"
},
"apiture:freeze": {
"href": "/users/frozenUsers?user=d1fabf13-31d1-4351-89ad-877ac4d1220a"
},
"apiture:remove": {
"href": "/users/removedUsers?user=d1fabf13-31d1-4351-89ad-877ac4d1220a"
},
"apiture:merge": {
"href": "/users/mergedUsers"
}
},
"username": "LAS15",
"firstName": "Laura",
"middleName": "Eileen",
"lastName": "Smith",
"preferredName": "Laura",
"identification": [
{
"value": "111-11-1111",
"type": "taxId"
}
],
"emailAddresses": [
{
"_id": "pe0",
"type": "personal",
"value": "johnny1733@example.com"
},
{
"_id": "we0",
"type": "work",
"value": "support@apiture.com"
}
],
"phones": [
{
"_id": "hp0",
"type": "home",
"number": "(555) 555-5555"
},
{
"_id": "mp0",
"type": "mobile",
"number": "(999) 555-5555"
}
],
"birthdate": "1974-10-27",
"citizenship": [
{
"countryCode": "US",
"state": "citizen"
}
],
"occupation": "Software Engineer",
"addresses": [
{
"type": "home",
"addressLine1": "555 N Front Street",
"addressLine2": "Suite 5555",
"city": "Wilmington",
"regionCode": "NC",
"postalCode": "28401-5405",
"countryCode": "US"
},
{
"type": "home",
"addressLine1": "123 S 3rd Street",
"addressLine2": "Apt 42",
"city": "Wilmington",
"regionCode": "NC",
"postalCode": "28411-5405",
"countryCode": "US"
}
],
"lastContactedAt": "2018-07-29T11:13:54Z",
"lastLoggedInAt": "2017-12-29T15:19:41Z",
"state": "active",
"createdAt": "2018-07-29T11:13:54Z"
}
]
}
}
Users collection (Version v1.0.0
)
Collection of users. The items in the collection are ordered in the _embedded
object with name items
. The top-level _links
object may contain pagination links (self
, next
, prev
, first
, last
, collection
).
Properties
Name | Description |
---|---|
_links | links An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
|
_embedded | object Embedded objects. |
ยป items | [summaryUser] [Summary representation of a user resource in user 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.]
|
_profile | string(uri) The URI of a resource profile which describes the representation. |
_error | error An object which describes an error. This value is omitted if the operation succeeded without error. |
count | integer The number of items in the collection. This value is optional and is omitted if the count is not computable efficiently. If a filter is applied to the collection (either implicitly or explicitly), the count, if present, indicates the number of items that satisfy the filter. |
start | integer The 0-based start index of this page of items. |
limit | integer The maximum number of items per page. |
name | string A name for the items in collection. |
constraints
{
"_links": {
"property1": {
"href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
"title": "Applicant"
},
"property2": {
"href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
"title": "Applicant"
}
},
"_embedded": {},
"_profile": "http://example.com",
"_error": {
"_id": "2eae46e1575c0a7b0115a4b3",
"message": "Descriptive error message...",
"statusCode": 422,
"type": "errorType1",
"remediation": "Remediation string...",
"occurredAt": "2018-01-25T05:50:52.375Z",
"errors": [
{
"_id": "ccdbe2c5c938a230667b3827",
"message": "An optional embedded error"
},
{
"_id": "dbe9088dcfe2460f229338a3",
"message": "Another optional embedded error"
}
],
"_links": {
"describedby": {
"href": "https://developer.apiture.com/errors/errorType1"
}
}
},
"transfers": {
"singleCreditLimit": "20000.00",
"singleDebitLimit": "20000.00",
"dailyCreditLimit": "500000.00",
"dailyDebitLimit": "500000.00"
},
"checkDeposits": {
"enabled": true,
"monthlyTotalAmountLimit": "30000.00",
"monthlyTotalChecksLimit": 200
}
}
Constraints (Version v1.0.0
)
An Constraints description. The attributes
field a required map of name/value pairs which provide structured data about the constraint.
Properties
Name | Description |
---|---|
_links | links An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
|
_embedded | object An optional map of nested resources, mapping each nested resource name to a nested resource representation. |
_profile | string(uri) The URI of a resource profile which describes the representation. |
_error | error An object which describes an error. This value is omitted if the operation succeeded without error. |
transfers | transferConstraints Constraints on the user's money transfers. |
checkDeposits | checkDepositConstraints Constraints on the user's remote check deposits. |
updateConstraints
{
"transfers": {
"singleCreditLimit": "20000.00",
"singleDebitLimit": "20000.00",
"dailyCreditLimit": "500000.00",
"dailyDebitLimit": "500000.00"
},
"checkDeposits": {
"enabled": true,
"monthlyTotalAmountLimit": "30000.00",
"monthlyTotalChecksLimit": 200
}
}
Update user's constraints (Version v1.0.0
)
Representation used to update or patch a user's constraints.
Properties
Name | Description |
---|---|
transfers | transferConstraints Constraints on the user's money transfers. |
checkDeposits | checkDepositConstraints Constraints on the user's remote check deposits. |
transferConstraints
{
"singleCreditLimit": "20000.00",
"singleDebitLimit": "20000.00",
"dailyCreditLimit": "500000.00",
"dailyDebitLimit": "500000.00"
}
User's constraints for transfers (Version v1.0.0
)
Representation used to describe the limits for transfers.
Properties
Name | Description |
---|---|
singleCreditLimit | string The string representation of the limit on the amount of an individual credit transfer for a related user. |
singleDebitLimit | string The string representation of the limit on the amount of an individual debit transfer for a related user. |
dailyCreditLimit | string The string representation of the limit on the total amount of credit transfers per calendar day for a related user. |
dailyDebitLimit | string The string representation of the limit on the total amount of debit transfers per calendar day for a related user. |
checkDepositConstraints
{
"enabled": true,
"monthlyTotalAmountLimit": "30000.00",
"monthlyTotalChecksLimit": 200
}
User's constraints for check deposits (Version v1.0.0
)
Representation used to describe the limits for check deposits.
Properties
Name | Description |
---|---|
enabled | boolean Indicates that the check deposit feature is enabled for the user. |
monthlyTotalAmountLimit | string The string representation of the limit on the total amount of a check deposit per calendar month for a related user. The default is โ50000.00โ, although the default may be configurable by the financial institution. |
monthlyTotalChecksLimit | number(integer) The string representation of the limit on the total number of a check per calendar month for a related user. The default is 1000, although the default may be configurable by the financial institution. |
root
{
"id": "apiName",
"name": "API name",
"apiVersion": "1.0.0",
"_profile": "http://localhost:8080/schemas/common/root/v1.0.0/profile.json",
"_links": {}
}
API Root (Version v1.0.0
)
A HAL response, with hypermedia _links
for the top-level resources and operations in API.
Properties
Name | Description |
---|---|
_links | links An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
|
_embedded | object An optional map of nested resources, mapping each nested resource name to a nested resource representation. |
_profile | string(uri) The URI of a resource profile which describes the representation. |
_error | error An object which describes an error. This value is omitted if the operation succeeded without error. |
_id | string This API's unique ID. |
name | string This API's name. |
apiVersion | string This API's version. |
configurationGroups
{
"_profile": "http://localhost:8080/schemas/configurations/configurationGroups/v1.0.0/profile.json",
"start": 10,
"limit": 10,
"count": 67,
"name": "configurationGroups",
"_links": {
"self": {
"href": "/configurations/configurations/groups?start=10&limit=10"
},
"first": {
"href": "/configurations/configurations/groups?start=0&limit=10"
},
"next": {
"href": "/configurations/configurations/groups?start=20&limit=10"
},
"collection": {
"href": "/configurations/configurations/groups"
}
},
"_embedded": {
"items": [
{
"_profile": "https://api.apiture.com/schemas/configurations/configurationGroup/v1.0.0/profile.json",
"_links": {
"self": {
"href": "/configurations/groups/basic"
},
"apiture:configuration": {
"href": "/configurations"
}
},
"name": "basic",
"label": "Basic Settings",
"description": "The basic settings for the Transfers API"
},
{
"_profile": "https://api.apiture.com/schemas/configurations/configurationGroup/v1.0.0/profile.json",
"_links": {
"self": {
"href": "/configurations/groups/calendar"
},
"apiture:configuration": {
"href": "/configurations"
}
},
"name": "calendar",
"label": "Calendar",
"description": "A calendar that specifies which dates are valid for performing transfers (e.g., weekdays excluding federal holidays)"
}
]
}
}
Configuration Group Collection (Version v1.0.0
)
Collection of configuration groups. The items in the collection are ordered in the _embedded
object with name items
. The top-level _links
object may contain pagination links (self
, next
, prev
, first
, last
, collection
).
Properties
Name | Description |
---|---|
_links | links An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
|
_embedded | object Embedded objects. |
ยป items | [configurationGroupSummary] An array containing a page of configuration group items. |
_profile | string(uri) The URI of a resource profile which describes the representation. |
_error | error An object which describes an error. This value is omitted if the operation succeeded without error. |
count | integer The number of items in the collection. This value is optional and is omitted if the count is not computable efficiently. If a filter is applied to the collection (either implicitly or explicitly), the count, if present, indicates the number of items that satisfy the filter. |
start | integer The 0-based start index of this page of items. |
limit | integer The maximum number of items per page. |
name | string A name for the items in collection. |
configurationGroup
{
"_profile": "https://api.apiture.com/schemas/configurations/configurationGroup/v1.0.0/profile.json",
"_links": {
"self": {
"href": "/configurations/groups/basic"
},
"apiture:configuration": {
"href": "/configurations"
}
},
"name": "basic",
"label": "Basic Settings",
"description": "The basic settings for the Transfers API",
"schema": {
"type": "object",
"properties": {
"dailyLimit": {
"type": "number",
"description": "The daily limit for the number of transfers"
},
"cutoffTime": {
"type": "string",
"format": "time",
"description": "The cutoff time for scheduling transfers for the current day"
}
}
},
"values": {
"dailyLimit": 5,
"cutoffTime": "17:30:00"
}
}
Configuration Group (Version v1.0.0
)
Represents a configuration group.
Properties
Name | Description |
---|---|
_links | links An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
|
_embedded | object An optional map of nested resources, mapping each nested resource name to a nested resource representation. |
_profile | string(uri) The URI of a resource profile which describes the representation. |
_error | error An object which describes an error. This value is omitted if the operation succeeded without error. |
name | string The name of this configuration group, must be unique within the set of all resources of this type. minLength: 1
maxLength: 48
pattern: [a-zA-Z][-\w_]*
|
label | string The text label for this resource, suitable for presentation to the client. minLength: 1
maxLength: 128
|
description | string The full description for this resource, suitable for presentation to the client. minLength: 1
maxLength: 4096
|
schema | configurationSchema The schema which defines the name and types of the variables that are part of this configuration definition. Property names must be simple identifiers consisting of alphanumeric characters, - , _ following the pattern letter [letter | digit | '-' | '_']* This is implicitly a schema for The |
values | configurationValues The data values associated with this configuration group: the group's variable names and values. These values must conform to this item's schema . Note: the For example, multiple configurations may use the same schema that defines values |
configurationSchema
{
"type": "object",
"properties": {
"dailyLimit": {
"type": "number",
"description": "The daily limit for the number of transfers"
},
"cutoffTime": {
"type": "string",
"format": "time",
"description": "The cutoff time for scheduling transfers for the current day"
}
}
}
Configuration Schema (Version v1.0.0
)
The schema which defines the name and types of the variables that are part of this configuration definition. Property names must be simple identifiers consisting of alphanumeric characters, -
, following the pattern
letter [letter | digit | '-' | '
']*
This is implicitly a schema for type: object
and contains the properties.
The values
in a configuration conform to the schema. The names and types are described with a subset of JSON Schema Core and JSON Schema Validation similar to that used to define schemas in OpenAPI Specification 2.0.
Properties
configurationValues
{
"dailyLimit": 5,
"cutoffTime": "17:30:00"
}
Configuration Values (Version v1.0.0
)
The data values associated with this configuration group: the group's variable names and values. These values must conform to this item's schema
.
Note: the schema
may also contain default
values which, if present, are used if a value is not set in the definition's values
.
For example, multiple configurations may use the same schema that defines values a
, b
, and c
, but each configuration may have their own unique values for a
, b
, and c
which is separate from the schema.
Properties
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 (Version v2.0.0
)
Describes an error response, typically returned on 4xx or 5xx errors from API operations. The _error
object contains the error details.
Properties
Name | Description |
---|---|
_links | links An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
|
_embedded | object An optional map of nested resources, mapping each nested resource name to a nested resource representation. |
_profile | string(uri) The URI of a resource profile which describes the representation. |
_error | error An object which describes an error. This value is omitted if the operation succeeded without error. |
challengeErrorResponse
{
"_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": {
"message": "string",
"_id": "string",
"statusCode": 422,
"type": "string",
"occurredAt": "2018-02-02T03:37:15.375Z",
"attributes": {
"property1": {},
"property2": {}
},
"remediation": "string",
"errors": [
{
"_id": "2eae46e1575c0a7b0115a4b3",
"message": "Descriptive error message...",
"statusCode": 422,
"type": "errorType1",
"remediation": "Remediation string...",
"occurredAt": "2018-01-25T05:50:52.375Z",
"errors": [
{
"_id": "ccdbe2c5c938a230667b3827",
"message": "An optional embedded error"
},
{
"_id": "dbe9088dcfe2460f229338a3",
"message": "Another optional embedded error"
}
],
"_links": {
"describedby": {
"href": "https://developer.apiture.com/errors/errorType1"
}
}
}
],
"_links": {
"property1": {
"href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
"title": "Applicant"
},
"property2": {
"href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
"title": "Applicant"
}
},
"_embedded": {
"challenge": {
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"_profile": "https://api.apiture.com/schemas/challenges/challenge/v1.0.0/profile.json",
"reason": "Transfer amount much higher than normal",
"contextUri": "https://fi.apiture.com/users/50b9df19-d6bf-4ac0-b5f4-3e6448b7dacd/addresses/ha1",
"minimumAuthenticatorCount": 1,
"authenticators": [
{
"_id": "7fadd35b-6f6b-4901-b1ba-d3b91c9dcee3",
"_profile": "https://api.apiture.com/schemas/challenges/authenticator/v1.0.0/profile.json",
"userId": "b2720469-3497-4b82-8b85-30f2155aa66d",
"state": "started",
"type": {
"name": "sms",
"label": "SMS Code",
"description": "Enter a code sent via SMS to the user's preferred mobile device.",
"category": "device",
"schema": {
"title": "SMS attributes",
"description": "Schema for an authenticator's `attributes` when the authenticator type is `sms`.",
"type": "object",
"required": [
"code",
"length"
],
"properties": {
"code": {
"type": "string",
"description": "A code that was sent to the user's mobile device via SMS. The user should enter the code in the app, then sets `attributes.code` to that. The length of the code (the number of characters or digits) is must equal the `length'.",
"minLength": 3,
"maxLength": 10
},
"length": {
"description": "The number of digits/characters that are sent to the user via SMS.",
"type": "number",
"format": "integer",
"minimum": 3,
"maximum": 10,
"example": 6
}
}
}
},
"maximumRetries": 3,
"retryCount": 1,
"createdAt": "2019-08-23T12:42:50.375Z",
"expiresAt": "2019-08-23T13:12:50.375Z",
"_links": {
"self": {
"href": "/auth/challenges/0399abed-fd3d-4830-a88b-30f38b8a365c/authenticators/7fadd35b-6f6b-4901-b1ba-d3b91c9dcee3"
},
"apiture:challenge": {
"href": "/auth/challenges/0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:retry": {
"href": "/auth/challenges/retriedAuthenticators?authenticator=7fadd35b-6f6b-4901-b1ba-d3b91c9dcee3"
},
"apiture:verify": {
"href": "/auth/challenges/verifiedAuthenticators"
}
}
}
],
"maximumRedemptionCount": 1,
"redemptionCount": 0,
"state": "pending",
"createdAt": "2019-08-23T11:37:55.375Z",
"expiresAt": "2019-08-23T12:37:55.375Z",
"_links": {
"self": {
"href": "/auth/challenges/5d63053d-435c-4455-a0b5-6f88ab729d1a"
},
"apiture:redeem": {
"href": "/auth/redeemedChallenges?challenge=5d63053d-435c-4455-a0b5-6f88ab729d1a"
}
}
}
}
}
}
Challenge Error Response (Version v1.0.0
)
When an operation requires an additional identity verification challenge, it returns a 401 Unauthorized response status code and an error response with a challenge resource embedded in the _error._embedded.challenge
. This informs the caller that they should verify the challenge via one or more of its authenticators
, then retry the operation with the Apiture-Challenge
header that references the challenge's _id
.
Properties
Name | Description |
---|---|
_links | links An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
|
_embedded | object An optional map of nested resources, mapping each nested resource name to a nested resource representation. |
_profile | string(uri) The URI of a resource profile which describes the representation. |
_error | challengeError The description of the error. |
address
{
"_id": "ha5",
"type": "home",
"addressLine1": "555 N Front Street",
"addressLine2": "Suite 5555",
"city": "Wilmington",
"regionCode": "NC",
"postalCode": "28401-5405",
"countryCode": "US"
}
Address (Version v1.0.0
)
A postal address.
Properties
Name | Description |
---|---|
type | string (required) The type of this address.
|
label | string A text label, suitable for presentation to the end user. This is derived from type or from otherType if type is other
read-only
|
otherType | string The actual address type if type is other .
minLength: 4
maxLength: 32
|
addressLine1 | string The first street address line of the address, normally a house number and street name. |
addressLine2 | string The optional second street address line of the address. |
city | string The name of the city or municipality. |
regionCode | string The mailing address region code, such as state in the US, or a province in Canada. minLength: 2
maxLength: 2
|
postalCode | string The mailing address postal code, such as a US Zip or Zip+4 code, or a Canadian postal code. minLength: 5
maxLength: 10
|
countryCode | string The ISO 3166-1 country code. minLength: 2
maxLength: 2
|
_id | string An identifier for this address, so that it can be referenced uniquely. The service will assign a unique _id if the client does not provide one. The _id must be unique across all addresses within the addresses array.
minLength: 1
maxLength: 8
|
abstractResource
{
"_profile": "{uri of resource profile.json}",
"_links": {
"self": {
"href": "{uri of current resource}"
}
}
}
Abstract Resource (Version v2.0.0
)
An abstract schema used to define other schemas for request and response bodies. This is a HAL resource representation. This model contains hypermedia _links
, and either optional domain object data with _profile
and optional _embedded
objects, or an _error
object. In responses, if the operation was successful, this object will not include the _error
, but if the operation was a 4xx or 5xx error, this object will not include _embedded
or any data fields, only _error
and optionally _links
.
Properties
Name | Description |
---|---|
_links | links An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
|
_embedded | object An optional map of nested resources, mapping each nested resource name to a nested resource representation. |
_profile | string(uri) The URI of a resource profile which describes the representation. |
_error | error An object which describes an error. This value is omitted if the operation succeeded without error. |
typedEmailAddress
{
"value": "JohnBankCustomer@example.com",
"type": "unknown",
"_id": "ha3"
}
Email Address (Version v1.0.0
)
An email address and the email address type.
Properties
Name | Description |
---|---|
value | string(email) The email address, such as JohnBankCustomer@example.com
minLength: 8
maxLength: 120
|
type | string The kind of email address this is.
|
_id | string An identifier for this email address, so that it can be referenced uniquely. The service will assign a unique _id if the client does not provide one. The _id must be unique across all email addresses within the emailAddresses array.
minLength: 1
maxLength: 8
|
phoneNumber
{
"_id": "hp1",
"type": "home",
"number": "555-555-5555"
}
Phone Number (Version v1.0.0
)
A phone number and its role.
Properties
Name | Description |
---|---|
type | string (required) The type or role of this phone number.
|
number | string (required) The phone number, as a string. |
label | string A text label, suitable for presentation to the end user. This is also used if type is other .
|
_id | string An identifier for this phone number, so that it can be referenced uniquely. The service will assign a unique _id if the client does not provide one. The _id must be unique across all phone numbers within the phones array.
minLength: 1
maxLength: 8
|
links
{
"property1": {
"href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
"title": "Applicant"
},
"property2": {
"href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
"title": "Applicant"
}
}
Links (Version v1.0.0
)
An optional map of links, mapping each link relation to a link object. This model defines the _links
object of HAL representations.
Properties
Name | Description |
---|---|
additionalProperties | link Describes a hypermedia link within a _links object in HAL representations. In Apiture APIs, links are HAL links, but Apiture APIs do not use the name or hreflang properties of HAL. Apiture links may include a method property.
|
attributes
{
"property1": {},
"property2": {}
}
Attributes (Version v2.0.0
)
An optional map of name/value pairs which contains additional dynamic data about the resource.
Properties
Name | Description |
---|---|
additionalProperties | attributeValue The data associated with this attribute. |
configurationGroupSummary
{
"_links": {
"property1": {
"href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
"title": "Applicant"
},
"property2": {
"href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
"title": "Applicant"
}
},
"_embedded": {},
"_profile": "http://example.com",
"_error": {
"_id": "2eae46e1575c0a7b0115a4b3",
"message": "Descriptive error message...",
"statusCode": 422,
"type": "errorType1",
"remediation": "Remediation string...",
"occurredAt": "2018-01-25T05:50:52.375Z",
"errors": [
{
"_id": "ccdbe2c5c938a230667b3827",
"message": "An optional embedded error"
},
{
"_id": "dbe9088dcfe2460f229338a3",
"message": "Another optional embedded error"
}
],
"_links": {
"describedby": {
"href": "https://developer.apiture.com/errors/errorType1"
}
}
},
"name": "transfers",
"label": "Transfers Configuration",
"description": "The configuration for the Transfers API."
}
Configuration Group Summary (Version v1.0.0
)
A summary of the data contained within a configuration group resource.
Properties
Name | Description |
---|---|
_links | links An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
|
_embedded | object An optional map of nested resources, mapping each nested resource name to a nested resource representation. |
_profile | string(uri) The URI of a resource profile which describes the representation. |
_error | error An object which describes an error. This value is omitted if the operation succeeded without error. |
name | string The name of this configuration group, must be unique within the set of all resources of this type. minLength: 1
maxLength: 48
pattern: [a-zA-Z][-\w_]*
|
label | string The text label for this resource, suitable for presentation to the client. minLength: 1
maxLength: 128
|
description | string The full description for this resource, suitable for presentation to the client. minLength: 1
maxLength: 4096
|
challengeError
{
"message": "string",
"_id": "string",
"statusCode": 422,
"type": "string",
"occurredAt": "2018-02-02T03:37:15.375Z",
"attributes": {
"property1": {},
"property2": {}
},
"remediation": "string",
"errors": [
{
"_id": "2eae46e1575c0a7b0115a4b3",
"message": "Descriptive error message...",
"statusCode": 422,
"type": "errorType1",
"remediation": "Remediation string...",
"occurredAt": "2018-01-25T05:50:52.375Z",
"errors": [
{
"_id": "ccdbe2c5c938a230667b3827",
"message": "An optional embedded error"
},
{
"_id": "dbe9088dcfe2460f229338a3",
"message": "Another optional embedded error"
}
],
"_links": {
"describedby": {
"href": "https://developer.apiture.com/errors/errorType1"
}
}
}
],
"_links": {
"property1": {
"href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
"title": "Applicant"
},
"property2": {
"href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
"title": "Applicant"
}
},
"_embedded": {
"challenge": {
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"_profile": "https://api.apiture.com/schemas/challenges/challenge/v1.0.0/profile.json",
"reason": "Transfer amount much higher than normal",
"contextUri": "https://fi.apiture.com/users/50b9df19-d6bf-4ac0-b5f4-3e6448b7dacd/addresses/ha1",
"minimumAuthenticatorCount": 1,
"authenticators": [
{
"_id": "7fadd35b-6f6b-4901-b1ba-d3b91c9dcee3",
"_profile": "https://api.apiture.com/schemas/challenges/authenticator/v1.0.0/profile.json",
"userId": "b2720469-3497-4b82-8b85-30f2155aa66d",
"state": "started",
"type": {
"name": "sms",
"label": "SMS Code",
"description": "Enter a code sent via SMS to the user's preferred mobile device.",
"category": "device",
"schema": {
"title": "SMS attributes",
"description": "Schema for an authenticator's `attributes` when the authenticator type is `sms`.",
"type": "object",
"required": [
"code",
"length"
],
"properties": {
"code": {
"type": "string",
"description": "A code that was sent to the user's mobile device via SMS. The user should enter the code in the app, then sets `attributes.code` to that. The length of the code (the number of characters or digits) is must equal the `length'.",
"minLength": 3,
"maxLength": 10
},
"length": {
"description": "The number of digits/characters that are sent to the user via SMS.",
"type": "number",
"format": "integer",
"minimum": 3,
"maximum": 10,
"example": 6
}
}
}
},
"maximumRetries": 3,
"retryCount": 1,
"createdAt": "2019-08-23T12:42:50.375Z",
"expiresAt": "2019-08-23T13:12:50.375Z",
"_links": {
"self": {
"href": "/auth/challenges/0399abed-fd3d-4830-a88b-30f38b8a365c/authenticators/7fadd35b-6f6b-4901-b1ba-d3b91c9dcee3"
},
"apiture:challenge": {
"href": "/auth/challenges/0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:retry": {
"href": "/auth/challenges/retriedAuthenticators?authenticator=7fadd35b-6f6b-4901-b1ba-d3b91c9dcee3"
},
"apiture:verify": {
"href": "/auth/challenges/verifiedAuthenticators"
}
}
}
],
"maximumRedemptionCount": 1,
"redemptionCount": 0,
"state": "pending",
"createdAt": "2019-08-23T11:37:55.375Z",
"expiresAt": "2019-08-23T12:37:55.375Z",
"_links": {
"self": {
"href": "/auth/challenges/5d63053d-435c-4455-a0b5-6f88ab729d1a"
},
"apiture:redeem": {
"href": "/auth/redeemedChallenges?challenge=5d63053d-435c-4455-a0b5-6f88ab729d1a"
}
}
}
}
}
Challenge Error (Version v1.0.0
)
The operation error description with an embedded identity challenge.
Properties
Name | Description |
---|---|
message | string 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 |
ยป challenge | challenge The details of the identity verification challenge. |
link
{
"href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
"title": "Applicant"
}
Link (Version v1.0.0
)
Describes a hypermedia link within a _links
object in HAL representations. In Apiture APIs, links are HAL links, but Apiture APIs do not use the name
or hreflang
properties of HAL. Apiture links may include a method
property.
Properties
Name | Description |
---|---|
href | string(uri) (required) The URI or URI template for the resource/operation this link refers to. |
type | string The media type for the resource. |
templated | boolean If true, the link's href is a URI template. |
title | string An optional human-readable localized title for the link. |
deprecation | string(uri) If present, the containing link is deprecated and the value is a URI which provides human-readable text information about the deprecation. |
profile | string(uri) The URI of a profile document, a JSON document which describes the target resource/operation. |
error
{
"_id": "2eae46e1575c0a7b0115a4b3",
"message": "Descriptive error message...",
"statusCode": 422,
"type": "errorType1",
"remediation": "Remediation string...",
"occurredAt": "2018-01-25T05:50:52.375Z",
"errors": [
{
"_id": "ccdbe2c5c938a230667b3827",
"message": "An optional embedded error"
},
{
"_id": "dbe9088dcfe2460f229338a3",
"message": "Another optional embedded error"
}
],
"_links": {
"describedby": {
"href": "https://developer.apiture.com/errors/errorType1"
}
}
}
Error (Version v2.0.0
)
Describes an error in an API request or in a service called via the API.
Properties
Name | Description |
---|---|
message | string (required) A localized message string describing the error condition. |
_id | string A unique identifier for this error instance. This may be used as a correlation ID with the root cause error (i.e. this ID may be logged at the source of the error). This is is an opaque string. |
statusCode | integer The HTTP status code associate with this error. minimum: 100
maximum: 599
|
type | string An error identifier which indicates the category of error and associate it with API support documentation or which the UI tier can use to render an appropriate message or hint. This provides a finer level of granularity than the statusCode . For example, instead of just 400 Bad Request, the type may be much more specific. such as integerValueNotInAllowedRange or numericValueExceedsMaximum or stringValueNotInAllowedSet .
|
occurredAt | string(date-time) An RFC 3339 UTC time stamp indicating when the error occurred. |
attributes | attributes Informative values or constraints which describe the error. For example, for a value out of range error, the attributes may specify the minimum and maximum values. This allows clients to present error messages as they see fit (the API does not assume the client/presentation tier). The set of attributes varies by error type .
|
remediation | string An optional localized string which provides hints for how the user or client can resolve the error. |
errors | [error] An optional array of nested error objects. This property is not always present. |
_links | links An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
|
simpleContact
{
"firstName": "John",
"middleName": "Daniel",
"lastName": "Smith",
"preferredName": "John",
"suffix": "MD",
"identification": [
{
"type": "taxId",
"value": "111-11-1111"
}
],
"addresses": [
{
"_id": "ha1",
"type": "home",
"addressLine1": "555 N Front Street",
"addressLine2": "Suite 5555",
"city": "Wilmington",
"regionCode": "NC",
"postalCode": "28401-5405",
"countryCode": "US"
}
],
"preferredMailingAddressId": "ha1",
"emailAddresses": [
{
"id": "pe0",
"value": "api@apiture.com",
"type": "personal"
},
{
"id": "wp1",
"value": "support@apiture.com",
"type": "work"
}
],
"preferredEmailAddressId": "pe0",
"phones": [
{
"_id": "hp1",
"type": "home",
"number": "(555) 555-5555"
},
{
"_id": "mp1",
"type": "mobile",
"number": "(999) 555-5555"
}
],
"preferredPhoneId": "hp1"
}
Simple Contact (Version v1.0.0
)
Basic contact and identification information for a person, consisting of the name, mailing address, phone numbers, email addresses, and government identification.
Properties
Name | Description |
---|---|
firstName | string The person's first name (or given name). |
middleName | string The person's middle name. |
lastName | string The person's last name (or surname). |
addresses | [address] An array of postal/mailing addresses. |
preferredMailingAddressId | string The preferred mailing address. This string is the _id of an address in the addresses array.
minLength: 1
maxLength: 4
|
emailAddresses | [typedEmailAddress] An array of email addresses. |
preferredEmailAddressId | string The preferred email address. This string is the _id of an email address in the emailAddresses array.
minLength: 1
maxLength: 4
|
phones | [phoneNumber] An array of phone numbers. |
preferredPhoneId | string The ID of preferred phone number. This string is the _id of a phone number in the phones array.
minLength: 1
maxLength: 4
|
prefix | string A title or honorific prefix such as Dr. or Fr. maxLength: 20
|
suffix | string A title or honorific suffix such as PhD or DDS. maxLength: 20
|
preferredName | string The contact's preferred name. This is how the contact's name is presented to the user in the interface. The default is the contact's firstName .
|
identification | [identification] A collection of official identifying information associated with the contact. |
identification
{
"type": "taxId",
"value": "111-11-1111",
"expiration": {}
}
Identification (Version v1.0.0
)
Official identifying information associated with the contact.
Properties
Name | Description |
---|---|
value | string (required) The value of this form of identification (the tax ID as a string, for example) |
type | string (required) The type of this form of identification.
|
expiration | string(date) The date when the form of identification expires, in RFC 3339 YYYY-MM-DD format.
|
challenge
{
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"_profile": "https://api.apiture.com/schemas/challenges/challenge/v1.0.0/profile.json",
"reason": "Transfer amount much higher than normal",
"contextUri": "https://fi.apiture.com/users/50b9df19-d6bf-4ac0-b5f4-3e6448b7dacd/addresses/ha1",
"minimumAuthenticatorCount": 1,
"authenticators": [
{
"_id": "7fadd35b-6f6b-4901-b1ba-d3b91c9dcee3",
"_profile": "https://api.apiture.com/schemas/challenges/authenticator/v1.0.0/profile.json",
"userId": "b2720469-3497-4b82-8b85-30f2155aa66d",
"state": "started",
"type": {
"name": "sms",
"label": "SMS Code",
"description": "Enter a code sent via SMS to the user's preferred mobile device.",
"category": "device",
"schema": {
"title": "SMS attributes",
"description": "Schema for an authenticator's `attributes` when the authenticator type is `sms`.",
"type": "object",
"required": [
"code",
"length"
],
"properties": {
"code": {
"type": "string",
"description": "A code that was sent to the user's mobile device via SMS. The user should enter the code in the app, then sets `attributes.code` to that. The length of the code (the number of characters or digits) is must equal the `length'.",
"minLength": 3,
"maxLength": 10
},
"length": {
"description": "The number of digits/characters that are sent to the user via SMS.",
"type": "number",
"format": "integer",
"minimum": 3,
"maximum": 10,
"example": 6
}
}
}
},
"maximumRetries": 3,
"retryCount": 1,
"createdAt": "2019-08-23T12:42:50.375Z",
"expiresAt": "2019-08-23T13:12:50.375Z",
"_links": {
"self": {
"href": "/auth/challenges/0399abed-fd3d-4830-a88b-30f38b8a365c/authenticators/7fadd35b-6f6b-4901-b1ba-d3b91c9dcee3"
},
"apiture:challenge": {
"href": "/auth/challenges/0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:retry": {
"href": "/auth/challenges/retriedAuthenticators?authenticator=7fadd35b-6f6b-4901-b1ba-d3b91c9dcee3"
},
"apiture:verify": {
"href": "/auth/challenges/verifiedAuthenticators"
}
}
}
],
"maximumRedemptionCount": 1,
"redemptionCount": 0,
"state": "pending",
"createdAt": "2019-08-23T11:37:55.375Z",
"expiresAt": "2019-08-23T12:37:55.375Z",
"_links": {
"self": {
"href": "/auth/challenges/5d63053d-435c-4455-a0b5-6f88ab729d1a"
},
"apiture:redeem": {
"href": "/auth/redeemedChallenges?challenge=5d63053d-435c-4455-a0b5-6f88ab729d1a"
}
}
}
Challenge (Version v1.0.0
)
A resource which represents an identity verification challenge to a user. The user must verify one or more of the authentication methods defined in this challenge in order to proceed with a banking operation (such as scheduling a larger than normal transfer, adding a joint owner or authorized signer to an account, or changing their mailing address or mobile phone number).
A challenge may have the following links:
apiture:redeem
- a service or operation uses this when it redeems or applies the challenge to verify the user's identity. This is done when a valid challenge is passed to a service via theApiture-Challenge
request header.
Properties
Name | Description |
---|---|
_links | links An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
|
_embedded | object An optional map of nested resources, mapping each nested resource name to a nested resource representation. |
_profile | string(uri) The URI of a resource profile which describes the representation. |
_error | error An object which describes an error. This value is omitted if the operation succeeded without error. |
reason | string The reason the application or service has issued a challenge requesting the user verify their identity. This is for labeling or informational purposes. |
contextUri | string(url) The URI of a resource that establishes the context in which the user is asked to authenticate their identity. For example, for this may be for a pending transfer, a user's mailing address, or an account if adding a joint owner. |
userId | string The user ID of the user who is requested to verify their identity. The default is the userID of the authenticated person creating the challenge. |
minimumAuthenticatorCount | number(integer) The minimum number of different authenticators the user must verify in order to satisfy the identity challenge. The default is 1. maximum: 4
|
maximumRedemptionCount | number(integer) The maximum number of times the challenge may be used or redeemed. The default is 1. minimum: 1
|
_id | string The unique identifier for this challenge resource. This is an immutable opaque string assigned upon creation. read-only
|
redemptionCount | number(integer) How many times the challenge has been redeemed. read-only
|
state | challengeState The state of this authenticator. read-only
|
createdAt | string(date-time) The time stamp when challenge was created, in RFC 3339 UTC date-time format ( YYYY-MM-DDThh:mm:ss.sssZ ).
read-only
|
authenticators | [authenticator] An array of authenticators with which the user can verify their identity. This is derived; the array and the authenticators are constructed in the createChallenge operation.
read-only
|
redeemable | boolean true if and only if the challenge may be redeemed. This is derived from the states of the challenge's authenticators; if the number of verified authenticators meets or exceeds the minimumAuthenticatorCount , the challenge becomes verified and may be redeemed via a POST to href in the challenge's apiture:redeem link.
read-only
|
verifiedAt | string(date-time) The time stamp when challenge was verified in RFC 3339 UTC date-time format ( YYYY-MM-DDThh:mm:ss.sssZ ).
read-only
|
failedAt | string(date-time) The time stamp when the user failed to verify their identity verification (authentication) for this challenge, in RFC 3339 UTC date-time format ( YYYY-MM-DDThh:mm:ss.sssZ ).
read-only
|
expiresAt | string(date-time) The time stamp when the this challenge expires, in RFC 3339 UTC date-time format ( YYYY-MM-DDThh:mm:ss.sssZ ).
read-only
|
redemptionHistory | [string] The time stamps when a service or operation redeemed this challenge, in RFC 3339 UTC date-time format ( YYYY-MM-DDThh:mm:ss.sssZ ). Item 0 is the time stamp the challenge was first redeemed, item 1 is the time stamp of the next redemption, and so on.
read-only
|
See the definition of the challenge
schema in auth
API for definition of the links on this schema.
citizenship
[
{
"countryCode": "US",
"state": "citizen"
}
]
Citizenship (Version v1.0.0
)
Citizenship or nationality status.
citizenship
is an array schema.
Array Elements
Name | Description |
---|---|
countryCode | string (required) The ISO 3166-1 country code for the individual's citizenship. minLength: 2
maxLength: 2
|
state | string (required) The individual's citizenship status.
|
occupation
"unknown"
Occupation (Version v1.0.0
)
The person's occupation.
Type: string
Enumerated values: unknown
academia
architecture
artsDesign
buildingServices
businessAndFinancialOperations
childCare
communityAndSocialServices
computer
construction
education
energy
engineering
entertainment
farming
fishing
foodService
forestry
healthcare
hospitality
installationMaintenanceRepair
legal
localGovernment
management
media
military
nationalGovernment
nonProfit
officeAndAdministrationSupport
personalCare
production
protectiveServices
research
sales
sciences
sports
stateGovernment
technology
tourism
trade
transportation
notApplicable
unemployed
other
summaryChallenge
{
"_links": {
"property1": {
"href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
"title": "Applicant"
},
"property2": {
"href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
"title": "Applicant"
}
},
"_embedded": {},
"_profile": "http://example.com",
"_error": {
"_id": "2eae46e1575c0a7b0115a4b3",
"message": "Descriptive error message...",
"statusCode": 422,
"type": "errorType1",
"remediation": "Remediation string...",
"occurredAt": "2018-01-25T05:50:52.375Z",
"errors": [
{
"_id": "ccdbe2c5c938a230667b3827",
"message": "An optional embedded error"
},
{
"_id": "dbe9088dcfe2460f229338a3",
"message": "Another optional embedded error"
}
],
"_links": {
"describedby": {
"href": "https://developer.apiture.com/errors/errorType1"
}
}
},
"reason": "string",
"contextUri": "string",
"userId": "string",
"minimumAuthenticatorCount": 0,
"maximumRedemptionCount": 1,
"_id": "string",
"redemptionCount": 0,
"state": "pending",
"createdAt": "2020-01-27T15:36:53Z"
}
Summary Challenge (Version v1.0.0
)
Summary representation of a challenge, used in the challenge collection.
Properties
Name | Description |
---|---|
_links | links An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
|
_embedded | object An optional map of nested resources, mapping each nested resource name to a nested resource representation. |
_profile | string(uri) The URI of a resource profile which describes the representation. |
_error | error An object which describes an error. This value is omitted if the operation succeeded without error. |
reason | string The reason the application or service has issued a challenge requesting the user verify their identity. This is for labeling or informational purposes. |
contextUri | string(url) The URI of a resource that establishes the context in which the user is asked to authenticate their identity. For example, for this may be for a pending transfer, a user's mailing address, or an account if adding a joint owner. |
userId | string The user ID of the user who is requested to verify their identity. The default is the userID of the authenticated person creating the challenge. |
minimumAuthenticatorCount | number(integer) The minimum number of different authenticators the user must verify in order to satisfy the identity challenge. The default is 1. maximum: 4
|
maximumRedemptionCount | number(integer) The maximum number of times the challenge may be used or redeemed. The default is 1. minimum: 1
|
_id | string The unique identifier for this challenge resource. This is an immutable opaque string assigned upon creation. read-only
|
redemptionCount | number(integer) How many times the challenge has been redeemed. read-only
|
state | challengeState The state of this authenticator. read-only
|
createdAt | string(date-time) The time stamp when challenge was created, in RFC 3339 UTC date-time format ( YYYY-MM-DDThh:mm:ss.sssZ ).
read-only
|
authenticator
{
"_id": "7fadd35b-6f6b-4901-b1ba-d3b91c9dcee3",
"_profile": "https://api.apiture.com/schemas/challenges/authenticator/v1.0.0/profile.json",
"userId": "b2720469-3497-4b82-8b85-30f2155aa66d",
"state": "started",
"type": {
"name": "sms",
"label": "SMS Code",
"description": "Enter a code sent via SMS to the user's preferred mobile device.",
"category": "device",
"schema": {
"title": "SMS attributes",
"description": "Schema for an authenticator's `attributes` when the authenticator type is `sms`.",
"type": "object",
"required": [
"code",
"length"
],
"properties": {
"code": {
"type": "string",
"description": "A code that was sent to the user's mobile device via SMS. The user should enter the code in the app, then sets `attributes.code` to that. The length of the code (the number of characters or digits) is must equal the `length'.",
"minLength": 3,
"maxLength": 10
},
"length": {
"description": "The number of digits/characters that are sent to the user via SMS.",
"type": "number",
"format": "integer",
"minimum": 3,
"maximum": 10,
"example": 6
}
}
}
},
"maximumRetries": 3,
"retryCount": 1,
"createdAt": "2019-08-23T12:42:50.375Z",
"expiresAt": "2019-08-23T13:12:50.375Z",
"_links": {
"self": {
"href": "/auth/challenges/2e61e506-1568-4f1a-a93e-4d0a48a06d0e/authenticators/7fadd35b-6f6b-4901-b1ba-d3b91c9dcee3"
},
"apiture:challenge": {
"href": "/auth/challenges/challenges/b59438cd-5efb-4915-916b-0600bb2a4e1e"
},
"apiture:retry": {
"href": "/auth/challenges/retriedAuthenticators?authenticator=7fadd35b-6f6b-4901-b1ba-d3b91c9dcee3"
},
"apiture:verify": {
"href": "/auth/challenges/verifiedAuthenticators"
}
}
}
Authenticator (Version v1.0.0
)
Representation of authenticators which verify a user's identity. An authenticator has the following links:
apiture:challenge
- the challenge that contains this authenticator.apiture:start
- Start an authenticator to initiate the identity verification. For example, forsms
, this will send a code to the user via SMS. A started authenticator should then be verified, usually after user interaction or input.apiture:retry
- Restart or retry afailed
orstarted
authenticator (for example, if the authentication process failed or if the user never received confirmation).apiture:verify
- Verify an authenticator by passing the authenticator as the request body, validating any data in the authenticator'sattributes
. If the data is valid, this changes thestate
property of the authenticator toverified
, else the state is changed tofailed
. This operation is available if and only if the authenticator is eligible for this operation. The response is the updated representation of the authenticator or an error.
Properties
Name | Description |
---|---|
_links | links An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
|
_embedded | object An optional map of nested resources, mapping each nested resource name to a nested resource representation. |
_profile | string(uri) The URI of a resource profile which describes the representation. |
_error | error An object which describes an error. This value is omitted if the operation succeeded without error. |
type | authenticatorType The type of this authenticator. This must be one of the items in the /authenticatorTypes resource.
|
maximumRetries | number(integer) The maximum number of times the user may retry this authenticator. If 0 , the user must authenticate correctly on the first try. When an authenticator is retried, the client should POST to the apiture:retry link on the authenticators; absence of the link means the user cannot retry the authenticator. The default is 3 .
maximum: 10
|
_id | string The unique identifier for this authenticator resource. This is an immutable opaque string assigned upon creation. read-only
|
userId | string The user ID of the user who is requested to verify their identity. |
state | authenticatorState The state of this authenticator. This is derived and read-only. read-only
|
retryCount | number(integer) The actual number of times a user has retried this authenticator. read-only
maximum: 10
|
attributes | object Data collected from the user that is used to verify this authenticator. This data conforms to the schema defined in the type . For example, for sms , the attributes must contains a code .
|
createdAt | string(date-time) The time stamp when authenticator was created, in RFC 3339 UTC date-time format ( YYYY-MM-DDThh:mm:ss.sssZ ).
read-only
|
verifiedAt | string(date-time) The time stamp when authenticator was verified in RFC 3339 UTC date-time format ( YYYY-MM-DDThh:mm:ss.sssZ ).
read-only
|
failedAt | string(date-time) The time stamp when the user failed to verify their identity verification (authentication) for this challenge, in RFC 3339 UTC date-time format ( YYYY-MM-DDThh:mm:ss.sssZ ).
read-only
|
expiresAt | string(date-time) The time stamp when the this challenge expires, in RFC 3339 UTC date-time format ( YYYY-MM-DDThh:mm:ss.sssZ ).
read-only
|
See the definition of the authenticator
schema in auth
API for definition of the links on this schema.
challengeState
"pending"
Challenge States (Version v1.0.0
)
The state of an identity challenge resource. This is derived based on the state of the challenge's authenticators.
Type: string
Enumerated values: pending
started
verified
failed
redeemed
expired
authenticatorState
"pending"
Authenticator State (Version v1.0.0
)
The state of a challenge authenticator resource.
- The
startAuthenticator
operation (linkapiture:start
) changes the state frompending
tostarted
. - The
retryAuthenticator
operation (linkapiture:retry
) changes the state tostarted
and is only allowed if the authenticator has more retries available. - The
verifyAuthenticator
operation (linkapiture:verify
) validates theattributes
and changes the state toverified
if valid or tofailed
if invalid.
Type: string
Enumerated values: pending
started
verified
failed
expired
abstractRequest
{
"_profile": "{uri of resource profile.json}",
"_links": {
"self": {
"href": "{uri of current resource}"
}
}
}
Abstract Request (Version v2.0.0
)
An abstract schema used to define other request-only schemas. This is a HAL resource representation, minus the _error
defined in abstractResource
.
Properties
Name | Description |
---|---|
_links | links An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
|
_embedded | object An optional map of nested resources, mapping each nested resource name to a nested resource representation. |
_profile | string(uri) The URI of a resource profile which describes the representation. |
authenticatorType
{
"name": "sms",
"label": "SMS code",
"description": "Enter a code sent via SMS to the user's preferred mobile device.",
"category": "device",
"schema": {
"title": "SMS attributes",
"description": "Schema for an authenticator's `attributes` when the authenticator type is `sms`.",
"type": "object",
"required": [
"code",
"length"
],
"properties": {
"code": {
"type": "string",
"description": "A code that was sent to the user's mobile device via SMS. The user should enter the code in the app, then sets `attributes.code` to that. The length of the code (the number of characters or digits) is must equal the `length'.",
"minLength": 3,
"maxLength": 10
},
"length": {
"description": "The number of digits/characters that are sent to the user via SMS.",
"type": "number",
"format": "integer",
"minimum": 3,
"maximum": 10,
"example": 6
}
}
}
}
Authenticator Type (Version v1.0.0
)
An authenticator type description.
Properties
Name | Description |
---|---|
name | string The name of this authenticator; also the key in the authenticatorTypes object.
|
label | string A localized label or title which may be used labels or other UI controls which present a value. |
description | string A more detailed localized description of an authenticator type. |
language | string The actual natural language tag to which this authentication type description is associated, as per RFC 7231. If omitted, this serves as the default. |
category | authenticatorCategory The authentication category. |
schema | object The JSON schema which describe the attibutes object for all authenticators of this type. For example, for sms , the schema defines a required code string.
|
attributeValue
{}
Attribute Value (Version v2.0.0
)
The data associated with this attribute.
Properties
authenticatorCategory
"knowledge"
authenticatorCategory (Version v1.0.0
)
Categories which help classify and organize different authenticator types:
knowledge
- Something you know, such as a password or answers to personal questions.biometric
- Something you are, such as facial recognition or fingerprints.device
- Something you have, such as a mobile phone (for confirmation via a code sent via text message) or an electronic key.
Type: string
Enumerated values: knowledge
biometric
device