Identity v0.2.1
Scroll down for code samples, example requests and responses. Select a language for code samples from the tabs above or the mobile navigation menu.
This API manages the set of actions that allow financial institutions to verify the identity of their customers and applicants. 'Identity' is defined as a set of personally identifiable information (PII) that can potentially identify a specific individual.
PII consists of the following attributes:
taxId
The identity's tax or government IDfirstName
The identity's first namelastName
The identity's last nameaddress1
Line 1 of the identity's street addressaddress2
Line 2 of the identity's street addresscity
The identity's cityregion
The identity's regionpostalCode
The identity's postal codephone
The identity's phonebirthdate
The identity's birth date inyyyy-mm-dd
format.email
The identity's email addressipAddress
The identity's IP address
There are two major steps to the identity verification process - fraud-risk analysis and knowledge-base authentication (KBA) quizzes.
A fraud-risk report can be generated by specifying PII associated with an individual. Each report may contain a list of fraud-risk attributes with a type and description describing the types of fraud that have been associated with the supplied PII.
In order to generate a report, submit the PII via POST
to /fraudRiskReports
. This will return a 201
response containing a new fraudRiskReport
resource which includes a set outputs with a collection of fraudRiskCategories
. These categories are:
personalInfoDoesNotMatch
The retrieved identity does not match the provided PII.addressIsPOBoxOrNonApproved
The provided address is a PO Box or other non-approved addressaddressIsHighRisk
The provided address is considered high-riskidentityOnGovernmentWatchlist
The provided identity is located on one or more government watchlistsidentityOnAlertList
The provided identity is located on one or more alert listsipRestricted
The provided IP address is restrictedemailRestricted
The provided email address is restrictedageRestricted
The provided identity does not meet the required age. Example: US COPPA laws forbid conducting e-commerce with people under 14 years of age.nonStandardTaxId
The provided taxId is non-standard. Example: The provided SSN is an ITIN (Individual Taxpayer Identification Number)
A quiz containing a list of questions and their possible answers can be generated with a set of PII. This information can be used to assist in the verification of the identity, by presenting the customer or applicant with the questions and prompting them to choose the appropriate answers. These answers can then be submitted to verify their correctness, confirming the identity.
In order to generate a quiz, submit the PII via POST
to /quizzes
. This will return a 201
response containing a new quiz
resource with a state of pending
. You can then POST
to /quizzes/{quizId}/questions
by following the apiture:getQuestions
link to generate one-time-use (transient) set of questions. When you have collected the answers to these questions you can submit them to /quizzes/{quizId}/answers
via POST
by following the apiture:score
link. This will return the quiz resource with an updated state, either passed
, failed
or expired
.
Download OpenAPI Definition (YAML)
Base URLs:
Authentication
- API Key (
apiKey
)- header parameter: API-Key
- API Key based authentication. Each client application must pass its private, unique API key, allocated in the developer portal, via the
API-Key: {api-key}
request header.
- OAuth2 authentication (
accessToken
)- OAuth2 client access token authentication. The client authenticates against the server at
authorizationUrl
, passing the client's privateclientId
(and optionalclientSecret
) as part of this flow. The client obtains an access token from the server attokenUrl
. It then passes the received access token via theAuthorization: Bearer {access-token}
header in subsequent API calls. The authorization process also returns a refresh token which the client should use to renew the access token before it expires. - Flow:
authorizationCode
- Authorization URL = https://auth.apiture.com/oauth2/authorize
- Token URL = http://auth.apiture.com/auth/oauth2/token
- OAuth2 client access token authentication. The client authenticates against the server at
Scope | Scope Description |
---|---|
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/full |
Full access to user and contact related resources. |
API
Endpoints which describe this API.
getApi
Code samples
# You can also use wget
curl -X GET /identity/ \
-H 'Accept: application/hal+json' \
-H 'API-Key: API_KEY'
GET /identity/ HTTP/1.1
Accept: application/hal+json
var headers = {
'Accept':'application/hal+json',
'API-Key':'API_KEY'
};
$.ajax({
url: '/identity/',
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('/identity/',
{
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 '/identity/',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/hal+json',
'API-Key': 'API_KEY'
}
r = requests.get('/identity/', params={
}, headers = headers)
print r.json()
URL obj = new URL("/identity/");
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", "/identity/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Top-level resources and operations in this API
GET /
Return links to the top-level resources and operations in this API.
Example responses
OK
{
"id": "identity",
"name": "Identity",
"apiVersion": "0.1.0",
"_profile": "https://api.apiture.com/schemas/common/root/v1.0.0/profile.json",
"_links": {
"apiture:fraudRiskReports": {
"href": "/identity/fraudRiskReports"
},
"apiture:quizzes": {
"href": "/identity/quizzes"
}
}
}
200 Response
{
"id": "apiName",
"name": "API name",
"apiVersion": "0.0.1-SNAPSHOT",
"_profile": "https://api.apiture.com/schemas/common/root/v1.0.0/profile.json",
"_links": null
}
Responses
Status | Description |
---|---|
200 | OK |
OK | |
Schema: root |
getApiDoc
Code samples
# You can also use wget
curl -X GET /identity/apiDoc \
-H 'Accept: application/json' \
-H 'API-Key: API_KEY'
GET /identity/apiDoc HTTP/1.1
Accept: application/json
var headers = {
'Accept':'application/json',
'API-Key':'API_KEY'
};
$.ajax({
url: '/identity/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('/identity/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 '/identity/apiDoc',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'API-Key': 'API_KEY'
}
r = requests.get('/identity/apiDoc', params={
}, headers = headers)
print r.json()
URL obj = new URL("/identity/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", "/identity/apiDoc", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Return API definition document
GET /apiDoc
Return the OpenAPI document that describes this API.
Example responses
200 Response
{}
Responses
Status | Description |
---|---|
200 | OK |
OK | |
Schema: Inline |
Response Schema
Fraud-Risk Reports
Identity Fraud-Risk Reports
getFraudRiskReports
Code samples
# You can also use wget
curl -X GET /identity/fraudRiskReports \
-H 'Accept: application/hal+json' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
GET /identity/fraudRiskReports HTTP/1.1
Accept: application/hal+json
var headers = {
'Accept':'application/hal+json',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: '/identity/fraudRiskReports',
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('/identity/fraudRiskReports',
{
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 '/identity/fraudRiskReports',
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('/identity/fraudRiskReports', params={
}, headers = headers)
print r.json()
URL obj = new URL("/identity/fraudRiskReports");
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", "/identity/fraudRiskReports", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Returns a collection of fraud-risk analysis results
GET /fraudRiskReports
Return a paginated sortable filterable searchable collection of fraud-risk analysis reports.The links in the response include pagination links.
Parameters
Parameter | Description |
---|---|
start (query) |
integer(int64) The zero-based index of the first fraud-risk analysis report in this page. The default, 0, represents the first report in the collection. |
limit (query) |
integer(int32) The maximum number of fraud-risk analysis report 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. |
type (query) |
string Subset the accounts or external accounts collection to those with this exact type value. Use |
Example responses
200 Response
{
"_profile": "https://api.apiture.com/schemas/identity/fraudRiskReports/v1.0.0/profile.json",
"start": 0,
"limit": 1,
"count": 1,
"name": "fraudRiskReports",
"_links": {
"self": {
"href": "/identity/fraudRiskReports?start=0&limit=1"
},
"first": {
"href": "/identity/fraudRiskReports?start=0&limit=1"
},
"next": {
"href": "/identity/fraudRiskReports?start=1&limit=1"
},
"collection": {
"href": "/identity/fraudRiskReports"
}
},
"_embedded": {
"_profile": "https://api.apiture.com/schemas/identity/fraudRiskReport/v1.0.0/profile.json",
"_error": null,
"items": [
{
"_profile": "https://api.apiture.com/schemas/identity/fraudRiskReport/v1.0.0/profile.json",
"_links": {
"self": {
"href": "/identity/fraudRiskReports/c6dbc32f-e0eb-4947-9819-c691bb9164a5"
},
"apiture:contact": {
"href": "/contacts/contacts/6da5ccc7-727a-4256-bdd4-74023ae349c3"
}
},
"_id": "c6dbc32f-e0eb-4947-9819-c691bb9164a5",
"type": "fraudRiskReport",
"inputs": {
"identity": {
"_profile": "https://api.apiture.com/schemas/identity/identity/v1.0.0/profile.json",
"taxId": "555-55-5555",
"firstName": "John",
"lastName": "Smith",
"address1": "1741 Tiburon Dr",
"city": "Wilmington",
"region": "NC",
"postalCode": "28403",
"phone": "555-555-5555",
"birthdate": "1940-10-15",
"email": "api@apiture.com",
"ipAddress": "127.0.0.1"
}
},
"outputs": {
"fraudRiskCategories": [
{
"type": "personalInfoDoesNotMatch",
"description": "The retrieved identity does not match the provided PII."
},
{
"type": "addressIsPOBoxOrNonApproved",
"description": "The provided address is a PO Box or other non-approved address"
},
{
"type": "identityOnGovernmentWatchlist",
"description": "The provided identity is located on one or more government watchlists"
},
{
"type": "identityOnAlertList",
"description": "The provided identity is located on one or more alert lists"
},
{
"type": "ipRestricted",
"description": "The provided IP address is restricted"
},
{
"type": "emailRestricted",
"description": "The provided email address is restricted"
}
]
}
}
]
}
}
Responses
Status | Description |
---|---|
200 | OK |
OK | |
Schema: fraudRiskReports | |
400 | Bad Request |
Bad Request. One or more of the query parameters was not well formed. The _error field in the response will contain details about the request error. | |
Schema: errorResponse | |
422 | Unprocessable Entity |
Unprocessable Entity. One or more of the query parameters was well formed but otherwise invalid. The _error field in the response will contain details about the request error. | |
Schema: errorResponse |
createFraudRiskReport
Code samples
# You can also use wget
curl -X POST /identity/fraudRiskReports \
-H 'Content-Type: application/hal+json' \
-H 'Accept: application/hal+json' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
POST /identity/fraudRiskReports HTTP/1.1
Content-Type: application/hal+json
Accept: application/hal+json
var headers = {
'Content-Type':'application/hal+json',
'Accept':'application/hal+json',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: '/identity/fraudRiskReports',
method: 'post',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const inputBody = '{
"_links": {
"apiture:contact": {
"href": "/contacts/contacts/6da5ccc7-727a-4256-bdd4-74023ae349c3"
}
}
}';
const headers = {
'Content-Type':'application/hal+json',
'Accept':'application/hal+json',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
fetch('/identity/fraudRiskReports',
{
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 '/identity/fraudRiskReports',
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('/identity/fraudRiskReports', params={
}, headers = headers)
print r.json()
URL obj = new URL("/identity/fraudRiskReports");
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", "/identity/fraudRiskReports", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Create a new fraud-risk analysis report
POST /fraudRiskReports
Create a new fraud-risk analysis report in the fraud-risk analysis reports collection.
If an apiture:contact
link is specified in the request a verification token will be returned in the response.
If an apiture:contact
link is invalid a 400 Bad Request response will be returned.
The following links will be included in a successful response under the _links
property:
self
: URI of the created fraud-risk report resource -/fraudRiskReports/{fraudRiskReportId}
apiture:contact
: If the resource was created with anapiture:contact
a link to the specified resource will be present
Body parameter
{
"_links": {
"apiture:contact": {
"href": "/contacts/contacts/6da5ccc7-727a-4256-bdd4-74023ae349c3"
}
}
}
Parameters
Parameter | Description |
---|---|
body (body) |
createFraudRiskReport (required) The identity |
Example responses
201 Response
{
"_profile": "https://api.apiture.com/schemas/identity/fraudRiskReport/v1.0.0/profile.json",
"_links": {
"self": {
"href": "/identity/fraudRiskReports/c6dbc32f-e0eb-4947-9819-c691bb9164a5"
},
"apiture:contact": {
"href": "/contacts/contacts/6da5ccc7-727a-4256-bdd4-74023ae349c3"
}
},
"_id": "c6dbc32f-e0eb-4947-9819-c691bb9164a5",
"type": "fraudRiskReport",
"inputs": {
"identity": {
"_profile": "https://api.apiture.com/schemas/identity/identity/v1.0.0/profile.json",
"taxId": "555-55-5555",
"firstName": "John",
"lastName": "Smith",
"address1": "1741 Tiburon Dr",
"city": "Wilmington",
"region": "NC",
"postalCode": "28403",
"phone": "555-555-5555",
"birthdate": "1940-10-15",
"email": "api@apiture.com",
"ipAddress": "127.0.0.1"
}
},
"outputs": {
"fraudRiskCategories": [
{
"type": "personalInfoDoesNotMatch",
"description": "The retrieved identity does not match the provided PII."
},
{
"type": "addressIsHighRisk",
"description": "The provided address is considered high-risk"
},
{
"type": "addressIsPOBoxOrNonApproved",
"description": "The provided address is a PO Box or other non-approved address"
},
{
"type": "identityOnGovernmentWatchlist",
"description": "The provided identity is located on one or more watchlists"
},
{
"type": "ipRestricted",
"description": "The provided IP address is restricted"
},
{
"type": "emailRestricted",
"description": "The provided email address is restricted"
},
{
"type": "nonStandardTaxId",
"description": "The provided taxId is non-standard. Example: The provided SSN is an ITIN (Individual Taxpayer Identification Number)"
},
{
"type": "ageRestricted",
"description": "The provided identity does not meet the required age. Example: US COPPA laws forbid conducting e-commerce with people under 14 years of age."
}
],
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.XbPfbIHMI6arZ3Y922BhjWgQzWXcXNrz0ogtVhfEd2o"
}
}
Responses
Status | Description |
---|---|
201 | Created |
Created | |
Schema: fraudRiskReport | |
400 | Bad Request |
Bad Request. One or more of the query parameters was not well formed. The _error field in the response will contain details about the request error. | |
Schema: errorResponse |
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 |
getFraudRiskReport
Code samples
# You can also use wget
curl -X GET /identity/fraudRiskReports/{fraudRiskReportId} \
-H 'Accept: application/hal+json' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
GET /identity/fraudRiskReports/{fraudRiskReportId} HTTP/1.1
Accept: application/hal+json
var headers = {
'Accept':'application/hal+json',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: '/identity/fraudRiskReports/{fraudRiskReportId}',
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('/identity/fraudRiskReports/{fraudRiskReportId}',
{
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 '/identity/fraudRiskReports/{fraudRiskReportId}',
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('/identity/fraudRiskReports/{fraudRiskReportId}', params={
}, headers = headers)
print r.json()
URL obj = new URL("/identity/fraudRiskReports/{fraudRiskReportId}");
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", "/identity/fraudRiskReports/{fraudRiskReportId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Fetch a representation of this fraud-risk report
GET /fraudRiskReports/{fraudRiskReportId}
Return a HAL representation of this fraud-risk analysis report resource.
The following links will be included in a successful response under the _links
property:
self
: URI of the this fraud-risk report resource -/fraudRiskReports/{fraudRiskReportId}
apiture:contact
: If the resource was created with anapiture:contact
a link to the specified resource will be present
Parameters
Parameter | Description |
---|---|
fraudRiskReportId (path) |
string (required) The unique identifier of this fraud-risk report. This is an opaque string. |
Example responses
200 Response
{
"_profile": "https://api.apiture.com/schemas/identity/fraudRiskReport/v1.0.0/profile.json",
"_links": {
"self": {
"href": "/identity/fraudRiskReports/c6dbc32f-e0eb-4947-9819-c691bb9164a5"
},
"apiture:contact": {
"href": "/contacts/contacts/6da5ccc7-727a-4256-bdd4-74023ae349c3"
}
},
"_id": "c6dbc32f-e0eb-4947-9819-c691bb9164a5",
"type": "fraudRiskReport",
"inputs": {
"identity": {
"_profile": "https://api.apiture.com/schemas/identity/identity/v1.0.0/profile.json",
"taxId": "555-55-5555",
"firstName": "John",
"lastName": "Smith",
"address1": "1741 Tiburon Dr",
"city": "Wilmington",
"region": "NC",
"postalCode": "28403",
"phone": "555-555-5555",
"birthdate": "1940-10-15",
"email": "api@apiture.com",
"ipAddress": "127.0.0.1"
}
},
"outputs": {
"fraudRiskCategories": [
{
"type": "personalInfoDoesNotMatch",
"description": "The retrieved identity does not match the provided PII."
},
{
"type": "addressIsHighRisk",
"description": "The provided address is considered high-risk"
},
{
"type": "addressIsPOBoxOrNonApproved",
"description": "The provided address is a PO Box or other non-approved address"
},
{
"type": "identityOnGovernmentWatchlist",
"description": "The provided identity is located on one or more watchlists"
},
{
"type": "ipRestricted",
"description": "The provided IP address is restricted"
},
{
"type": "emailRestricted",
"description": "The provided email address is restricted"
},
{
"type": "nonStandardTaxId",
"description": "The provided taxId is non-standard. Example: The provided SSN is an ITIN (Individual Taxpayer Identification Number)"
},
{
"type": "ageRestricted",
"description": "The provided identity does not meet the required age. Example: US COPPA laws forbid conducting e-commerce with people under 14 years of age."
}
],
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.XbPfbIHMI6arZ3Y922BhjWgQzWXcXNrz0ogtVhfEd2o"
}
}
Responses
Status | Description |
---|---|
200 | OK |
OK | |
Schema: fraudRiskReport | |
304 | Not Modified |
Not Modified. The resource has not been modified since it was last fetched. | |
404 | Not Found |
Not Found. There is no such fraud-risk report resource at the specified {fraudRiskReportId} The _error field in the response will contain details about the request error. | |
Schema: errorResponse |
Quizzes
Identity Verification Quizzes
getQuizzes
Code samples
# You can also use wget
curl -X GET /identity/quizzes \
-H 'Accept: application/hal+json' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
GET /identity/quizzes HTTP/1.1
Accept: application/hal+json
var headers = {
'Accept':'application/hal+json',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: '/identity/quizzes',
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('/identity/quizzes',
{
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 '/identity/quizzes',
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('/identity/quizzes', params={
}, headers = headers)
print r.json()
URL obj = new URL("/identity/quizzes");
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", "/identity/quizzes", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Returns a collection of quizzes
GET /quizzes
Return a paginated sortable filterable searchable collection of quizzes. The links in the response include pagination links.
Parameters
Parameter | Description |
---|---|
start (query) |
integer(int64) The zero-based index of the first quiz in this page. |
The default, 0, represents the first report in the collection. | |
limit (query) |
integer(int32) The maximum number of quiz 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. |
createdAt (query) |
string(date-time) Subset the accounts or external accounts collection to those with this createdAt value. Use |
expiredAt (query) |
string(date-time) Subset the accounts or external accounts collection to those with this expiredAt value. Use |
Example responses
200 Response
{
"_profile": "https://api.apiture.com/schemas/identity/quizzes/v1.0.0/profile.json",
"start": 0,
"limit": 1,
"count": 1,
"name": "quizzes",
"_links": {
"self": {
"href": "/identity/quizzes?start=0&limit=1"
},
"first": {
"href": "/identity/quizzes?start=0&limit=1"
},
"next": {
"href": "/identity/quizzes?start=1&limit=1"
},
"collection": {
"href": "/identity/quizzes"
}
},
"_embedded": {
"_profile": "https://api.apiture.com/schemas/identity/quiz/v1.0.0/profile.json",
"_error": null,
"items": [
{
"createdAt": "2018-01-12T10:15:17Z",
"expiresAt": "2018-01-12T10:30:17Z",
"_links": {
"self": {
"href": "/identity/quizzes/73be83af-9e64-4214-8e90-76da43610b31"
},
"apiture:score": {
"href": "/identity/quizzes/73be83af-9e64-4214-8e90-76da43610b31/answers"
},
"apiture:contacts": {
"href": "/contacts/contacts/6da5ccc7-727a-4256-bdd4-74023ae349c3"
}
},
"inputs": {
"identity": {
"_profile": "https://api.apiture.com/schemas/identity/identity/v1.0.0/profile.json",
"taxId": "555-55-5555",
"firstName": "John",
"lastName": "Smith",
"address1": "1741 Tiburon Dr",
"city": "Wilmington",
"region": "NC",
"postalCode": "28403",
"phone": "555-555-5555",
"birthdate": "1940-10-15",
"email": "api@apiture.com",
"ipAddress": "127.0.0.1"
}
},
"outputs": {
"state": "failed",
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.XbPfbIHMI6arZ3Y922BhjWgQzWXcXNrz0ogtVhfEd2o"
}
},
{
"createdAt": "2018-01-02T12:11:47Z",
"expiresAt": "2018-01-02T12:26:47Z",
"_links": {
"self": {
"href": "/identity/quizzes/a71c3843-32c2-4054-b7b2-fcf11a84532f"
}
},
"inputs": {
"identity": {
"_profile": "https://api.apiture.com/schemas/identity/identity/v1.0.0/profile.json",
"taxId": "111-11-1111",
"firstName": "Mary",
"lastName": "Williams",
"address1": "1741 Tiburon Dr",
"city": "Wilmington",
"region": "NC",
"postalCode": "28403",
"phone": "555-555-5555",
"birthdate": "1960-03-05",
"email": "api@apiture.com",
"ipAddress": "127.0.0.1"
}
},
"outputs": {
"state": "passed",
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.XbPfbIHMI6arZ3Y922BhjWgQzWXcXNrz0ogtVhfEd2o"
}
}
]
}
}
Responses
Status | Description |
---|---|
200 | OK |
OK | |
Schema: quizzes | |
400 | Bad Request |
Bad Request. One or more of the query parameters was not well formed. The _error field in the response will contain details about the request error. | |
Schema: errorResponse | |
422 | Unprocessable Entity |
Unprocessable Entity. One or more of the query parameters was well formed but otherwise invalid. The _error field in the response will contain details about the request error. | |
Schema: errorResponse |
createQuiz
Code samples
# You can also use wget
curl -X POST /identity/quizzes \
-H 'Content-Type: application/hal+json' \
-H 'Accept: application/hal+json' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
POST /identity/quizzes HTTP/1.1
Content-Type: application/hal+json
Accept: application/hal+json
var headers = {
'Content-Type':'application/hal+json',
'Accept':'application/hal+json',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: '/identity/quizzes',
method: 'post',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const inputBody = '{
"_links": {
"apiture:contact": {
"href": "/contacts/contacts/6da5ccc7-727a-4256-bdd4-74023ae349c3"
}
}
}';
const headers = {
'Content-Type':'application/hal+json',
'Accept':'application/hal+json',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
fetch('/identity/quizzes',
{
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 '/identity/quizzes',
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('/identity/quizzes', params={
}, headers = headers)
print r.json()
URL obj = new URL("/identity/quizzes");
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", "/identity/quizzes", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Create a new quiz
POST /quizzes
Create a new quiz in the quizzes collection for the specified identity. state
defaults to pending
If the apiture:contactlink is invalid a 400 Bad Request response will be returned. The following links will be included in a successful response under the
_links` property:
self
: URI of the created quiz resource -/quizzes/{quizId}
apiture:contact
: If the resource was created with anapiture:contact
a link to the specified resource will be present
Body parameter
{
"_links": {
"apiture:contact": {
"href": "/contacts/contacts/6da5ccc7-727a-4256-bdd4-74023ae349c3"
}
}
}
Parameters
Parameter | Description |
---|---|
body (body) |
createQuiz (required) The identity |
Example responses
201 Response
{
"_id": "73be83af-9e64-4214-8e90-76da43610b31",
"type": "quiz",
"createdAt": "2018-01-12T10:15:17Z",
"expiresAt": "2018-01-12T10:30:17Z",
"_profile": "https://api.apiture.com/schemas/identity/quiz/v1.00/profile.json",
"_links": {
"self": {
"href": "/identity/quizzes/73be83af-9e64-4214-8e90-76da43610b31"
},
"apiture:score": {
"href": "/identity/quizzes/73be83af-9e64-4214-8e90-76da43610b31/answers"
},
"apiture:getQuestions": {
"href": "/identity/quizzes/73be83af-9e64-4214-8e90-76da43610b31/questions"
},
"apiture:contact": {
"href": "/contacts/contacts/6da5ccc7-727a-4256-bdd4-74023ae349c3"
}
},
"inputs": {
"identity": {
"_profile": "https://api.apiture.com/schemas/identity/identity/v1.0.0/profile.json",
"taxId": "555-55-5555",
"firstName": "John",
"lastName": "Smith",
"address1": "1741 Tiburon Dr",
"city": "Wilmington",
"region": "NC",
"postalCode": "28403",
"phone": "555-555-5555",
"birthdate": "1940-10-15",
"email": "api@apiture.com",
"ipAddress": "127.0.0.1"
}
},
"outputs": {
"state": "passed",
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.XbPfbIHMI6arZ3Y922BhjWgQzWXcXNrz0ogtVhfEd2o"
}
}
Responses
Status | Description |
---|---|
201 | Created |
Created | |
Schema: quiz | |
400 | Bad Request |
Bad Request. One or more of the query parameters was not well formed. The _error field in the response will contain details about the request error. | |
Schema: errorResponse |
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 |
getQuiz
Code samples
# You can also use wget
curl -X GET /identity/quizzes/{quizId} \
-H 'Accept: application/hal+json' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
GET /identity/quizzes/{quizId} HTTP/1.1
Accept: application/hal+json
var headers = {
'Accept':'application/hal+json',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: '/identity/quizzes/{quizId}',
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('/identity/quizzes/{quizId}',
{
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 '/identity/quizzes/{quizId}',
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('/identity/quizzes/{quizId}', params={
}, headers = headers)
print r.json()
URL obj = new URL("/identity/quizzes/{quizId}");
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", "/identity/quizzes/{quizId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Fetch a representation of this quiz
GET /quizzes/{quizId}
Return a HAL representation of this quiz resource.
The following links will be included in a successful response under the _links
property:
self
: URI of the this quiz resource -/quizzes/{quizId}
apiture:contact
: If the resource was created with anapiture:contact
a link to the specified resource will be present
Parameters
Parameter | Description |
---|---|
quizId (path) |
string (required) The unique identifier of this quiz. This is an opaque string. |
Example responses
200 Response
{
"_id": "73be83af-9e64-4214-8e90-76da43610b31",
"type": "quiz",
"createdAt": "2018-01-12T10:15:17Z",
"expiresAt": "2018-01-12T10:30:17Z",
"_profile": "https://api.apiture.com/schemas/identity/quiz/v1.00/profile.json",
"_links": {
"self": {
"href": "/identity/quizzes/73be83af-9e64-4214-8e90-76da43610b31"
},
"apiture:score": {
"href": "/identity/quizzes/73be83af-9e64-4214-8e90-76da43610b31/answers"
},
"apiture:getQuestions": {
"href": "/identity/quizzes/73be83af-9e64-4214-8e90-76da43610b31/questions"
},
"apiture:contact": {
"href": "/contacts/contacts/6da5ccc7-727a-4256-bdd4-74023ae349c3"
}
},
"inputs": {
"identity": {
"_profile": "https://api.apiture.com/schemas/identity/identity/v1.0.0/profile.json",
"taxId": "555-55-5555",
"firstName": "John",
"lastName": "Smith",
"address1": "1741 Tiburon Dr",
"city": "Wilmington",
"region": "NC",
"postalCode": "28403",
"phone": "555-555-5555",
"birthdate": "1940-10-15",
"email": "api@apiture.com",
"ipAddress": "127.0.0.1"
}
},
"outputs": {
"state": "passed",
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.XbPfbIHMI6arZ3Y922BhjWgQzWXcXNrz0ogtVhfEd2o"
}
}
Responses
Status | Description |
---|---|
200 | OK |
OK | |
Schema: quiz | |
304 | Not Modified |
Not Modified. The resource has not been modified since it was last fetched. | |
404 | Not Found |
Not Found. There is no such quiz resource at the specified {quizId} The _error field in the response will contain details about the request error. | |
Schema: errorResponse |
createQuizQuestions
Code samples
# You can also use wget
curl -X POST /identity/quizzes/{quizId}/questions \
-H 'Accept: application/hal+json' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
POST /identity/quizzes/{quizId}/questions HTTP/1.1
Accept: application/hal+json
var headers = {
'Accept':'application/hal+json',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: '/identity/quizzes/{quizId}/questions',
method: 'post',
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('/identity/quizzes/{quizId}/questions',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/hal+json',
'API-Key' => 'API_KEY',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.post '/identity/quizzes/{quizId}/questions',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/hal+json',
'API-Key': 'API_KEY',
'Authorization': 'Bearer {access-token}'
}
r = requests.post('/identity/quizzes/{quizId}/questions', params={
}, headers = headers)
print r.json()
URL obj = new URL("/identity/quizzes/{quizId}/questions");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/hal+json"},
"API-Key": []string{"API_KEY"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "/identity/quizzes/{quizId}/questions", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Generate the questions for a quiz
POST /quizzes/{quizId}/questions
Generates the a set of questions for the quiz. Questions can only be generated if the state of the resource is pending
.
The following links will be included in a successful response under the _links
property:
up
: URI of the quiz resource -/quizzes/{quizId}
apiture:score
: URI of the/quizzes/{quizId}/answers
endpointapiture:contact
: If the resource was created with aapiture:contact
a link to the specified resource will be present
Parameters
Parameter | Description |
---|---|
quizId (path) |
string (required) The unique identifier of this quiz. This is an opaque string. |
Example responses
201 Response
{
"_links": {
"up": {
"href": "/identity/quizzes/73be83af-9e64-4214-8e90-76da43610b31"
},
"apiture:score": {
"href": "/identity/quizzes/73be83af-9e64-4214-8e90-76da43610b31/answers"
}
},
"questions": [
{
"id": "1",
"question": "Who have you lived with?",
"choices": [
"Mary",
"Caleb",
"Angela",
"Elliott"
]
},
{
"id": "2",
"question": "What's your mother's maiden name?",
"choices": [
"Clark",
"Morris",
"Niffle",
"Bennett"
]
}
],
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.XbPfbIHMI6arZ3Y922BhjWgQzWXcXNrz0ogtVhfEd2o"
}
Responses
Status | Description |
---|---|
201 | Created |
Created | |
Schema: quizQuestions | |
400 | Bad Request |
Bad Request. One or more of the query parameters was not well formed. The _error field in the response will contain details about the request error. | |
Schema: errorResponse | |
409 | Conflict |
Conflict. Questions may only be retrieved if the current state of the resource is pending . | |
Schema: errorResponse |
scoreQuiz
Code samples
# You can also use wget
curl -X POST /identity/quizzes/{quizId}/answers \
-H 'Content-Type: application/hal+json' \
-H 'Accept: application/hal+json' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
POST /identity/quizzes/{quizId}/answers HTTP/1.1
Content-Type: application/hal+json
Accept: application/hal+json
var headers = {
'Content-Type':'application/hal+json',
'Accept':'application/hal+json',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: '/identity/quizzes/{quizId}/answers',
method: 'post',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const inputBody = 'null';
const headers = {
'Content-Type':'application/hal+json',
'Accept':'application/hal+json',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
fetch('/identity/quizzes/{quizId}/answers',
{
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 '/identity/quizzes/{quizId}/answers',
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('/identity/quizzes/{quizId}/answers', params={
}, headers = headers)
print r.json()
URL obj = new URL("/identity/quizzes/{quizId}/answers");
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", "/identity/quizzes/{quizId}/answers", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Submit the answers to a quiz
POST /quizzes/{quizId}/answers
Submits the answers for scoring and returns the quiz with a state of passed
, failed
, scoring
or expired
. Can only be processed if state is asked
.
The following links will be included in a successful response under the _links
property:
up
: URI of the quiz resource -/quizzes/{quizId}
apiture:contact
: If the resource was created with aapiture:contact
a link to the specified resource will be present
Body parameter
null
Parameters
Parameter | Description |
---|---|
quizId (path) |
string (required) The unique identifier of this quiz. This is an opaque string. |
body (body) |
scoreQuizAnswers (required) The identity |
Example responses
201 Response
{
"_id": "73be83af-9e64-4214-8e90-76da43610b31",
"type": "quiz",
"createdAt": "2018-01-12T10:15:17Z",
"expiresAt": "2018-01-12T10:30:17Z",
"_profile": "https://api.apiture.com/schemas/identity/quiz/v1.00/profile.json",
"_links": {
"self": {
"href": "/identity/quizzes/73be83af-9e64-4214-8e90-76da43610b31"
},
"apiture:score": {
"href": "/identity/quizzes/73be83af-9e64-4214-8e90-76da43610b31/answers"
},
"apiture:getQuestions": {
"href": "/identity/quizzes/73be83af-9e64-4214-8e90-76da43610b31/questions"
},
"apiture:contact": {
"href": "/contacts/contacts/6da5ccc7-727a-4256-bdd4-74023ae349c3"
}
},
"inputs": {
"identity": {
"_profile": "https://api.apiture.com/schemas/identity/identity/v1.0.0/profile.json",
"taxId": "555-55-5555",
"firstName": "John",
"lastName": "Smith",
"address1": "1741 Tiburon Dr",
"city": "Wilmington",
"region": "NC",
"postalCode": "28403",
"phone": "555-555-5555",
"birthdate": "1940-10-15",
"email": "api@apiture.com",
"ipAddress": "127.0.0.1"
}
},
"outputs": {
"state": "passed",
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.XbPfbIHMI6arZ3Y922BhjWgQzWXcXNrz0ogtVhfEd2o"
}
}
Responses
Status | Description |
---|---|
201 | Created |
Created | |
Schema: quiz | |
400 | Bad Request |
Bad Request. One or more of the query parameters was not well formed. The _error field in the response will contain details about the request error. | |
Schema: errorResponse | |
409 | Conflict |
Conflict. Answers may only be submitted if the current state of the resource is asked . | |
Schema: errorResponse |
Verify
getContactVerification
Code samples
# You can also use wget
curl -X GET /identity/contactVerification?contactUri=string \
-H 'Accept: application/hal+json' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
GET /identity/contactVerification?contactUri=string HTTP/1.1
Accept: application/hal+json
var headers = {
'Accept':'application/hal+json',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: '/identity/contactVerification',
method: 'get',
data: '?contactUri=string',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const headers = {
'Accept':'application/hal+json',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
fetch('/identity/contactVerification?contactUri=string',
{
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 '/identity/contactVerification',
params: {
'contactUri' => 'string'
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/hal+json',
'API-Key': 'API_KEY',
'Authorization': 'Bearer {access-token}'
}
r = requests.get('/identity/contactVerification', params={
'contactUri': 'string'
}, headers = headers)
print r.json()
URL obj = new URL("/identity/contactVerification?contactUri=string");
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", "/identity/contactVerification", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Retrieves contact verification resource.
GET /contactVerification
Retrieves the contact verification status. If the contactUri
link is invalid a 400 Bad Request response will be returned.
The following links will be included in a successful response under the _links property:
apiture:contact
: If the specified contactUri param refers to a Contact resource a link to it will be present
Parameters
Parameter | Description |
---|---|
contactUri (query) |
string (required) The apiture:contact URI. |
type (query) |
string The identity method type. Possible values are fraudRiskReport , quiz or adminApproval . |
Example responses
200 Response
{
"_links": {
"apiture:contact": {
"href": "/contacts/contacts/6da5ccc7-727a-4256-bdd4-74023ae349c3"
}
},
"verifications": [
{
"type": "fraudRiskReport",
"_links": {
"self": {
"href": "/identity/fraudRiskReports/c6dbc32f-e0eb-4947-9819-c691bb9164a5"
}
},
"state": "passed",
"verifiedAt": "2018-01-12T10:15:17Z"
},
{
"type": "quiz",
"_links": {
"self": {
"href": "/identity/quizzes/73be83af-9e64-4214-8e90-76da43610b31"
}
},
"state": "passed",
"verifiedAt": "2018-01-12T10:19:41Z"
}
]
}
Responses
Status | Description |
---|---|
200 | OK |
OK | |
Schema: contactVerification | |
400 | Bad Request |
Bad Request. One or more of the query parameters was not well formed. The _error field in the response will contain details about the request error. | |
Schema: errorResponse |
Approvals
createApproval
Code samples
# You can also use wget
curl -X POST /identity/approvals?contactUri=string \
-H 'Accept: application/hal+json' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
POST /identity/approvals?contactUri=string HTTP/1.1
Accept: application/hal+json
var headers = {
'Accept':'application/hal+json',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: '/identity/approvals',
method: 'post',
data: '?contactUri=string',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const headers = {
'Accept':'application/hal+json',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
fetch('/identity/approvals?contactUri=string',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/hal+json',
'API-Key' => 'API_KEY',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.post '/identity/approvals',
params: {
'contactUri' => 'string'
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/hal+json',
'API-Key': 'API_KEY',
'Authorization': 'Bearer {access-token}'
}
r = requests.post('/identity/approvals', params={
'contactUri': 'string'
}, headers = headers)
print r.json()
URL obj = new URL("/identity/approvals?contactUri=string");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/hal+json"},
"API-Key": []string{"API_KEY"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "/identity/approvals", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Create a new approval resource
POST /approvals
Create a new approval resource for the specified Contact.
The following links may be included in a successful response under the _links
property:
self
: URI of the created approval resource -/approvals/{approvalId}
apiture:contact
: If the specified contactUri param refers to a Contact resource a link to it will be present
Parameters
Parameter | Description |
---|---|
contactUri (query) |
string (required) The apiture:contact URI. |
type (query) |
string The identity method type. Possible values are fraudRiskReport , quiz or adminApproval . |
Example responses
201 Response
{
"_profile": "https://api.apiture.com/schemas/identity/approval/v1.0.0/profile.json",
"_links": {
"self": {
"href": "/identity/approval/a42234d9-b16a-439d-b464-55296a0b229a"
},
"apiture:contact": {
"href": "/contacts/contacts/6da5ccc7-727a-4256-bdd4-74023ae349c3"
}
},
"_id": "a42234d9-b16a-439d-b464-55296a0b229a",
"type": "adminApproval",
"createdAt": "2018-01-12T10:15:17Z"
}
Responses
Status | Description |
---|---|
201 | Created |
Created | |
Schema: approval | |
400 | Bad Request |
Bad Request. The {contactUri} query parameter was not well formed. The _error field in the response will contain details about the request error. | |
Schema: errorResponse | |
422 | Unprocessable Entity |
Unprocessable Entity. The {contactUri} parameter 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 |
---|---|
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 |
getApproval
Code samples
# You can also use wget
curl -X GET /identity/approvals/{approvalId} \
-H 'Accept: application/hal+json' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
GET /identity/approvals/{approvalId} HTTP/1.1
Accept: application/hal+json
var headers = {
'Accept':'application/hal+json',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: '/identity/approvals/{approvalId}',
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('/identity/approvals/{approvalId}',
{
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 '/identity/approvals/{approvalId}',
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('/identity/approvals/{approvalId}', params={
}, headers = headers)
print r.json()
URL obj = new URL("/identity/approvals/{approvalId}");
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", "/identity/approvals/{approvalId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Fetch a representation of this approval
GET /approvals/{approvalId}
Return a HAL representation of this approval resource.
The following links will be included in a successful response under the _links
property:
self
: URI of the this fraud-risk report resource -/approvals/{approvalId}
apiture:contact
: If the specified contactUri param refers to a Contact resource a link to it will be present
Parameters
Parameter | Description |
---|---|
approvalId (path) |
string (required) The unique identifier of this approval. This is an opaque string. |
Example responses
200 Response
{
"_profile": "https://api.apiture.com/schemas/identity/approval/v1.0.0/profile.json",
"_links": {
"self": {
"href": "/identity/approval/a42234d9-b16a-439d-b464-55296a0b229a"
},
"apiture:contact": {
"href": "/contacts/contacts/6da5ccc7-727a-4256-bdd4-74023ae349c3"
}
},
"_id": "a42234d9-b16a-439d-b464-55296a0b229a",
"type": "adminApproval",
"createdAt": "2018-01-12T10:15:17Z"
}
Responses
Status | Description |
---|---|
200 | OK |
OK | |
Schema: approval | |
304 | Not Modified |
Not Modified. The resource has not been modified since it was last fetched. | |
404 | Not Found |
Not Found. There is no such approval at the specified {fraudRiskReportId} The _error field in the response will contain details about the request error. | |
Schema: errorResponse |
Schemas
collection
{
"_links": {
"property1": {
"href": "http://example.com",
"type": "string",
"templated": true,
"title": "string",
"deprecation": "http://example.com",
"profile": "http://example.com"
},
"property2": {
"href": "http://example.com",
"type": "string",
"templated": true,
"title": "string",
"deprecation": "http://example.com",
"profile": "http://example.com"
}
},
"_embedded": {},
"_profile": "http://example.com",
"_error": {
"_id": "2eae46e1-575c-4d69-8a8f-0a7b0115a4b3",
"_profile": "https://api.apiture.com/schemas/common/errorResponse/v1.0.0/profile.json",
"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": "http://doc.apiture.com/errors/positiveNumberRequired"
}
},
"_embedded": {
"errors": []
}
},
"count": 0,
"start": 0,
"limit": 0,
"name": "string"
}
Collection
A collection of resources.
Properties
Name | Description |
---|---|
_links | links An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
|
_embedded | object An optional map of nested resources, mapping each nested resource name to a nested resource representation. |
_profile | string(uri) The URI of a resource profile which describes the representation. |
_error | error An object which describes an error. This value is omitted if the operation succeeded without error. |
count | integer The number of items |
start | integer The start index of this page of items. |
limit | integer The maximum number of items per page. |
name | string The name of the collection. |
fraudRiskReports
{
"_profile": "https://api.apiture.com/schemas/identity/fraudRiskReports/v1.0.0/profile.json",
"start": 0,
"limit": 1,
"count": 1,
"name": "fraudRiskReports",
"_links": {
"self": {
"href": "/identity/fraudRiskReports?start=0&limit=1"
},
"first": {
"href": "/identity/fraudRiskReports?start=0&limit=1"
},
"next": {
"href": "/identity/fraudRiskReports?start=1&limit=1"
},
"collection": {
"href": "/identity/fraudRiskReports"
}
},
"_embedded": {
"_profile": "https://api.apiture.com/schemas/identity/fraudRiskReport/v1.0.0/profile.json",
"_error": null,
"items": [
{
"_profile": "https://api.apiture.com/schemas/identity/fraudRiskReport/v1.0.0/profile.json",
"_links": {
"self": {
"href": "/identity/fraudRiskReports/c6dbc32f-e0eb-4947-9819-c691bb9164a5"
},
"apiture:contact": {
"href": "/contacts/contacts/6da5ccc7-727a-4256-bdd4-74023ae349c3"
}
},
"_id": "c6dbc32f-e0eb-4947-9819-c691bb9164a5",
"type": "fraudRiskReport",
"inputs": {
"identity": {
"_profile": "https://api.apiture.com/schemas/identity/identity/v1.0.0/profile.json",
"taxId": "555-55-5555",
"firstName": "John",
"lastName": "Smith",
"address1": "1741 Tiburon Dr",
"city": "Wilmington",
"region": "NC",
"postalCode": "28403",
"phone": "555-555-5555",
"birthdate": "1940-10-15",
"email": "api@apiture.com",
"ipAddress": "127.0.0.1"
}
},
"outputs": {
"fraudRiskCategories": [
{
"type": "personalInfoDoesNotMatch",
"description": "The retrieved identity does not match the provided PII."
},
{
"type": "addressIsPOBoxOrNonApproved",
"description": "The provided address is a PO Box or other non-approved address"
},
{
"type": "identityOnGovernmentWatchlist",
"description": "The provided identity is located on one or more government watchlists"
},
{
"type": "identityOnAlertList",
"description": "The provided identity is located on one or more alert lists"
},
{
"type": "ipRestricted",
"description": "The provided IP address is restricted"
},
{
"type": "emailRestricted",
"description": "The provided email address is restricted"
}
]
}
}
]
}
}
Fraud Risk Reports
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 |
» items | [fraudRiskReport] An array containg a page of fraud-risk analysis reports |
_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 |
start | integer The start index of this page of items. |
limit | integer The maximum number of items per page. |
name | string The name of the collection. |
fraudRiskReport
{
"_profile": "https://api.apiture.com/schemas/identity/fraudRiskReport/v1.0.0/profile.json",
"_links": {
"self": {
"href": "/identity/fraudRiskReports/c6dbc32f-e0eb-4947-9819-c691bb9164a5"
},
"apiture:contact": {
"href": "/contacts/contacts/6da5ccc7-727a-4256-bdd4-74023ae349c3"
}
},
"_id": "c6dbc32f-e0eb-4947-9819-c691bb9164a5",
"type": "fraudRiskReport",
"inputs": {
"identity": {
"_profile": "https://api.apiture.com/schemas/identity/identity/v1.0.0/profile.json",
"taxId": "555-55-5555",
"firstName": "John",
"lastName": "Smith",
"address1": "1741 Tiburon Dr",
"city": "Wilmington",
"region": "NC",
"postalCode": "28403",
"phone": "555-555-5555",
"birthdate": "1940-10-15",
"email": "api@apiture.com",
"ipAddress": "127.0.0.1"
}
},
"outputs": {
"fraudRiskCategories": [
{
"type": "personalInfoDoesNotMatch",
"description": "The retrieved identity does not match the provided PII."
},
{
"type": "addressIsHighRisk",
"description": "The provided address is considered high-risk"
},
{
"type": "addressIsPOBoxOrNonApproved",
"description": "The provided address is a PO Box or other non-approved address"
},
{
"type": "identityOnGovernmentWatchlist",
"description": "The provided identity is located on one or more watchlists"
},
{
"type": "ipRestricted",
"description": "The provided IP address is restricted"
},
{
"type": "emailRestricted",
"description": "The provided email address is restricted"
},
{
"type": "nonStandardTaxId",
"description": "The provided taxId is non-standard. Example: The provided SSN is an ITIN (Individual Taxpayer Identification Number)"
},
{
"type": "ageRestricted",
"description": "The provided identity does not meet the required age. Example: US COPPA laws forbid conducting e-commerce with people under 14 years of age."
}
],
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.XbPfbIHMI6arZ3Y922BhjWgQzWXcXNrz0ogtVhfEd2o"
}
}
Fraud-risk Report
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 | string
|
_id | string A unique identifier for this resource instance. This is is an opaque string. |
createdAt | string(date-time) The date-time when the resource was created. |
expiresAt | string(date-time) The date-time when the resource expires. |
inputs | fraudRiskReportInputs The inputs of a fraud-risk report. Used for workflow |
outputs | fraudRiskReportOutputs The outputs of a fraud-risk report. Used for workflow |
fraudRiskCategory
{
"type": "addressIsPOBoxOrNonApproved",
"description": "The provided address is a PO Box or other non-approved address"
}
Fraud-risk Category
Representation of a fraud-risk category
Properties
Name | Description |
---|---|
type | fraudRiskCategoryType Represents the possible types of fraud-risk |
description | string The description of the fraud. |
fraudRiskCategoryType
"ipRestricted"
Fraud Risk Category Type
Represents the possible types of fraud-risk
Properties
No properties
createFraudRiskReport
{
"_links": {
"apiture:contact": {
"href": "/contacts/contacts/6da5ccc7-727a-4256-bdd4-74023ae349c3"
}
}
}
Create Fraud Risk Report
Representation used to create a new fraud-risk analysis report
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. |
taxId | string The identity's tax or government ID minLength: 1
maxLength: 128
|
firstName | string The identity's first name. minLength: 1
maxLength: 128
|
lastName | string The identity's last name. minLength: 1
maxLength: 128
|
address1 | string Line 1 of the identity's street address. minLength: 1
maxLength: 512
|
address2 | string Line 2 of the identity's street address. minLength: 1
maxLength: 512
|
city | string The identity's city. minLength: 1
maxLength: 64
|
region | string The identity's region. minLength: 1
maxLength: 128
|
postalCode | string The identity's postal code. minLength: 1
maxLength: 32
|
phone | string The identity's phone. minLength: 1
maxLength: 32
|
birthdate | string(date) The identity's birth date in yyyy-mm-dd format.
minLength: 10
maxLength: 10
pattern: ^([12]\d{3}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01]))$
|
email | string(email) The identity's email address maxLength: 256
|
ipAddress | string(ipv4) The identity's IP address |
createQuiz
{
"_links": {
"apiture:contact": {
"href": "/contacts/contacts/6da5ccc7-727a-4256-bdd4-74023ae349c3"
}
}
}
Create Quiz
Representation used to create a new quiz
Properties
Name | Description |
---|---|
taxId | string The identity's tax or government ID minLength: 1
maxLength: 128
|
firstName | string The identity's first name. minLength: 1
maxLength: 128
|
lastName | string The identity's last name. minLength: 1
maxLength: 128
|
address1 | string Line 1 of the identity's street address. minLength: 1
maxLength: 512
|
address2 | string Line 2 of the identity's street address. minLength: 1
maxLength: 512
|
city | string The identity's city. minLength: 1
maxLength: 64
|
region | string The identity's region. minLength: 1
maxLength: 128
|
postalCode | string The identity's postal code. minLength: 1
maxLength: 32
|
phone | string The identity's phone. minLength: 1
maxLength: 32
|
birthdate | string(date) The identity's birth date in yyyy-mm-dd format.
minLength: 10
maxLength: 10
pattern: ^([12]\d{3}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01]))$
|
email | string(email) The identity's email address maxLength: 256
|
ipAddress | string(ipv4) The identity's IP address |
_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. |
scoreQuizAnswers
null
Score Quiz Answers
Representation used to provide answers to a quiz
Properties
Name | Description |
---|---|
answers | [coreAnswer] [An answer to a quiz question] |
quizQuestions
{
"_links": {
"up": {
"href": "/identity/quizzes/73be83af-9e64-4214-8e90-76da43610b31"
},
"apiture:score": {
"href": "/identity/quizzes/73be83af-9e64-4214-8e90-76da43610b31/answers"
}
},
"questions": [
{
"id": "1",
"question": "Who have you lived with?",
"choices": [
"Mary",
"Caleb",
"Angela",
"Elliott"
]
},
{
"id": "2",
"question": "What's your mother's maiden name?",
"choices": [
"Clark",
"Morris",
"Niffle",
"Bennett"
]
}
],
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.XbPfbIHMI6arZ3Y922BhjWgQzWXcXNrz0ogtVhfEd2o"
}
Create Questions
Representation used to create a new set of questions
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. |
questions | [coreQuizQuestion] An array containing a page of quiz question items |
token | string An opaque string that conveys the state of the contact's identity verification. |
verificationToken
{
"token": "string"
}
Verification Token
The token used to validate and track a contact for identity verification purposes.
Properties
Name | Description |
---|---|
token | string An opaque string that conveys the state of the contact's identity verification. |
contactVerification
{
"_links": {
"apiture:contact": {
"href": "/contacts/contacts/6da5ccc7-727a-4256-bdd4-74023ae349c3"
}
},
"verifications": [
{
"type": "fraudRiskReport",
"_links": {
"self": {
"href": "/identity/fraudRiskReports/c6dbc32f-e0eb-4947-9819-c691bb9164a5"
}
},
"state": "passed",
"verifiedAt": "2018-01-12T10:15:17Z"
},
{
"type": "quiz",
"_links": {
"self": {
"href": "/identity/quizzes/73be83af-9e64-4214-8e90-76da43610b31"
}
},
"state": "passed",
"verifiedAt": "2018-01-12T10:19:41Z"
}
]
}
Verification
Representation used to verify a contact. May contain a link to apiture:contact
.
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. |
verifications | [any] |
» _links | links An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
|
» state | string
|
» verifiedAt | string(date-time) The date-time when the verification occurred. |
identity
{
"taxId": "555-55-5555",
"firstName": "John",
"lastName": "Smith",
"address1": "1741 Tiburon Dr",
"city": "Wilmington",
"region": "NC",
"postalCode": "28403",
"phone": "555-555-5555",
"birthdate": "1940-10-15",
"email": "api@apiture.com",
"ipAddress": "127.0.0.1"
}
Identity
Information that describes the identity
Properties
Name | Description |
---|---|
taxId | string (required) The identity's tax or government ID minLength: 1
maxLength: 128
|
firstName | string (required) The identity's first name. minLength: 1
maxLength: 128
|
lastName | string (required) The identity's last name. minLength: 1
maxLength: 128
|
address1 | string (required) Line 1 of the identity's street address. minLength: 1
maxLength: 512
|
address2 | string Line 2 of the identity's street address. minLength: 1
maxLength: 512
|
city | string (required) The identity's city. minLength: 1
maxLength: 64
|
region | string (required) The identity's region. minLength: 1
maxLength: 128
|
postalCode | string (required) The identity's postal code. minLength: 1
maxLength: 32
|
phone | string (required) The identity's phone. minLength: 1
maxLength: 32
|
birthdate | string(date) (required) The identity's birth date in yyyy-mm-dd format.
minLength: 10
maxLength: 10
pattern: ^([12]\d{3}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01]))$
|
email | string(email) The identity's email address maxLength: 256
|
ipAddress | string(ipv4) The identity's IP address |
quizzes
{
"_profile": "https://api.apiture.com/schemas/identity/quizzes/v1.0.0/profile.json",
"start": 0,
"limit": 1,
"count": 1,
"name": "quizzes",
"_links": {
"self": {
"href": "/identity/quizzes?start=0&limit=1"
},
"first": {
"href": "/identity/quizzes?start=0&limit=1"
},
"next": {
"href": "/identity/quizzes?start=1&limit=1"
},
"collection": {
"href": "/identity/quizzes"
}
},
"_embedded": {
"_profile": "https://api.apiture.com/schemas/identity/quiz/v1.0.0/profile.json",
"_error": null,
"items": [
{
"createdAt": "2018-01-12T10:15:17Z",
"expiresAt": "2018-01-12T10:30:17Z",
"_links": {
"self": {
"href": "/identity/quizzes/73be83af-9e64-4214-8e90-76da43610b31"
},
"apiture:score": {
"href": "/identity/quizzes/73be83af-9e64-4214-8e90-76da43610b31/answers"
},
"apiture:contacts": {
"href": "/contacts/contacts/6da5ccc7-727a-4256-bdd4-74023ae349c3"
}
},
"inputs": {
"identity": {
"_profile": "https://api.apiture.com/schemas/identity/identity/v1.0.0/profile.json",
"taxId": "555-55-5555",
"firstName": "John",
"lastName": "Smith",
"address1": "1741 Tiburon Dr",
"city": "Wilmington",
"region": "NC",
"postalCode": "28403",
"phone": "555-555-5555",
"birthdate": "1940-10-15",
"email": "api@apiture.com",
"ipAddress": "127.0.0.1"
}
},
"outputs": {
"state": "failed",
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.XbPfbIHMI6arZ3Y922BhjWgQzWXcXNrz0ogtVhfEd2o"
}
},
{
"createdAt": "2018-01-02T12:11:47Z",
"expiresAt": "2018-01-02T12:26:47Z",
"_links": {
"self": {
"href": "/identity/quizzes/a71c3843-32c2-4054-b7b2-fcf11a84532f"
}
},
"inputs": {
"identity": {
"_profile": "https://api.apiture.com/schemas/identity/identity/v1.0.0/profile.json",
"taxId": "111-11-1111",
"firstName": "Mary",
"lastName": "Williams",
"address1": "1741 Tiburon Dr",
"city": "Wilmington",
"region": "NC",
"postalCode": "28403",
"phone": "555-555-5555",
"birthdate": "1960-03-05",
"email": "api@apiture.com",
"ipAddress": "127.0.0.1"
}
},
"outputs": {
"state": "passed",
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.XbPfbIHMI6arZ3Y922BhjWgQzWXcXNrz0ogtVhfEd2o"
}
}
]
}
}
Quizzes
Collection of quizzes
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 |
» items | [quiz] An array containg a page of quizzes |
_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 |
start | integer The start index of this page of items. |
limit | integer The maximum number of items per page. |
name | string The name of the collection. |
quiz
{
"_id": "73be83af-9e64-4214-8e90-76da43610b31",
"type": "quiz",
"createdAt": "2018-01-12T10:15:17Z",
"expiresAt": "2018-01-12T10:30:17Z",
"_profile": "https://api.apiture.com/schemas/identity/quiz/v1.00/profile.json",
"_links": {
"self": {
"href": "/identity/quizzes/73be83af-9e64-4214-8e90-76da43610b31"
},
"apiture:score": {
"href": "/identity/quizzes/73be83af-9e64-4214-8e90-76da43610b31/answers"
},
"apiture:getQuestions": {
"href": "/identity/quizzes/73be83af-9e64-4214-8e90-76da43610b31/questions"
},
"apiture:contact": {
"href": "/contacts/contacts/6da5ccc7-727a-4256-bdd4-74023ae349c3"
}
},
"inputs": {
"identity": {
"_profile": "https://api.apiture.com/schemas/identity/identity/v1.0.0/profile.json",
"taxId": "555-55-5555",
"firstName": "John",
"lastName": "Smith",
"address1": "1741 Tiburon Dr",
"city": "Wilmington",
"region": "NC",
"postalCode": "28403",
"phone": "555-555-5555",
"birthdate": "1940-10-15",
"email": "api@apiture.com",
"ipAddress": "127.0.0.1"
}
},
"outputs": {
"state": "passed",
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.XbPfbIHMI6arZ3Y922BhjWgQzWXcXNrz0ogtVhfEd2o"
}
}
Quiz
A quiz containing a collection of questions and their possible answers. These questions can be used to present a multiple-choice quiz in order to verify the identity.
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 | string
|
_id | string A unique identifier for this resource instance. This is is an opaque string. |
createdAt | string(date-time) The date-time when the resource was created. |
expiresAt | string(date-time) The date-time when the resource expires. |
inputs | quizInputs The inputs of a quiz. Used for workflow |
outputs | quizOutputs The outputs of a quiz. Used for workflow |
coreQuizQuestions
{
"questions": [
{
"id": "1",
"question": "Who have you lived with?",
"choices": [
"Mary",
"Caleb",
"Angela",
"Elliott"
]
},
{
"id": "2",
"question": "What's your mother's maiden name?",
"choices": [
"Clark",
"Morris",
"Niffle",
"Bennett"
]
}
]
}
Quiz Questions
The questions of a quiz
Properties
Name | Description |
---|---|
questions | [coreQuizQuestion] An array containing a page of quiz question items |
coreQuizQuestion
{
"id": "1",
"question": "Who have you lived with?",
"choices": [
"Mary",
"Caleb",
"Angela",
"Elliott"
]
}
Quiz Question
A question of a quiz
Properties
Name | Description |
---|---|
id | string (required) The identifier for this question. A quiz answer is associated with the question via the questionId .
|
question | string (required) The question text |
choices | [string] An array containing a page of quiz question choice items |
coreQuizAnswers
{
"answers": [
{
"questionId": "1",
"answer": "Honda Accord"
},
{
"questionId": "2",
"answer": "Missouri"
}
]
}
Quiz Answers
A collection of answers to a quiz
Properties
Name | Description |
---|---|
answers | [coreAnswer] [An answer to a quiz question] |
coreAnswer
{
"questionId": "1",
"answer": "Honda Accord"
}
Quiz Answer
An answer to a quiz question
Properties
Name | Description |
---|---|
questionId | string (required) The ID corresponding to the question in the quiz minLength: 1
maxLength: 256
|
answer | string (required) The answer to the question minLength: 1
maxLength: 256
|
outputs
{
"token": "string"
}
Outputs
Base model schema for identity verification operations outputs
Properties
Name | Description |
---|---|
token | string An opaque string that conveys the state of the contact's identity verification. |
inputs
{}
Inputs
Base model schema for identity verification operations inputs
Properties
No properties
quizOutputs
{
"token": "string",
"state": "pending"
}
Quiz Outputs
The outputs of a quiz. Used for workflow
Properties
Name | Description |
---|---|
token | string An opaque string that conveys the state of the contact's identity verification. |
state | string The state of the quiz. Can be pending , failedGetQuestions , asked , scoring , passed , failed or expired
|
fraudRiskReportOutputs
{
"token": "string",
"fraudRiskCategories": [
{
"type": "addressIsPOBoxOrNonApproved",
"description": "The provided address is a PO Box or other non-approved address"
}
]
}
Fraud-risk Report Outputs
The outputs of a fraud-risk report. Used for workflow
Properties
Name | Description |
---|---|
token | string An opaque string that conveys the state of the contact's identity verification. |
fraudRiskCategories | [fraudRiskCategory] [Representation of a fraud-risk category] |
quizInputs
{
"identity": {
"taxId": "555-55-5555",
"firstName": "John",
"lastName": "Smith",
"address1": "1741 Tiburon Dr",
"city": "Wilmington",
"region": "NC",
"postalCode": "28403",
"phone": "555-555-5555",
"birthdate": "1940-10-15",
"email": "api@apiture.com",
"ipAddress": "127.0.0.1"
}
}
Quiz Inputs
The inputs of a quiz. Used for workflow
Properties
Name | Description |
---|---|
identity | identity Information that describes the identity |
fraudRiskReportInputs
{
"identity": {
"taxId": "555-55-5555",
"firstName": "John",
"lastName": "Smith",
"address1": "1741 Tiburon Dr",
"city": "Wilmington",
"region": "NC",
"postalCode": "28403",
"phone": "555-555-5555",
"birthdate": "1940-10-15",
"email": "api@apiture.com",
"ipAddress": "127.0.0.1"
}
}
Fraud-risk Report Inputs
The inputs of a fraud-risk report. Used for workflow
Properties
Name | Description |
---|---|
identity | identity Information that describes the identity |
identityVerification
{
"_links": {
"property1": {
"href": "http://example.com",
"type": "string",
"templated": true,
"title": "string",
"deprecation": "http://example.com",
"profile": "http://example.com"
},
"property2": {
"href": "http://example.com",
"type": "string",
"templated": true,
"title": "string",
"deprecation": "http://example.com",
"profile": "http://example.com"
}
},
"_embedded": {},
"_profile": "http://example.com",
"_error": {
"_id": "2eae46e1-575c-4d69-8a8f-0a7b0115a4b3",
"_profile": "https://api.apiture.com/schemas/common/errorResponse/v1.0.0/profile.json",
"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": "http://doc.apiture.com/errors/positiveNumberRequired"
}
},
"_embedded": {
"errors": []
}
},
"type": "fraudRiskReport",
"_id": "string",
"createdAt": "2019-07-09T10:55:34Z",
"expiresAt": "2019-07-09T10:55:34Z"
}
Identity Verification Resource
The core representation of an identity verification 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. |
type | string
|
_id | string A unique identifier for this resource instance. This is is an opaque string. |
createdAt | string(date-time) The date-time when the resource was created. |
expiresAt | string(date-time) The date-time when the resource expires. |
identityVerificationType
{
"type": "fraudRiskReport"
}
Identity Verification Type
Represents the possible types of identity verification
Properties
Name | Description |
---|---|
type | string
|
approval
{
"_profile": "https://api.apiture.com/schemas/identity/approval/v1.0.0/profile.json",
"_links": {
"self": {
"href": "/identity/approval/a42234d9-b16a-439d-b464-55296a0b229a"
},
"apiture:contact": {
"href": "/contacts/contacts/6da5ccc7-727a-4256-bdd4-74023ae349c3"
}
},
"_id": "a42234d9-b16a-439d-b464-55296a0b229a",
"type": "adminApproval",
"createdAt": "2018-01-12T10:15:17Z"
}
Approval
The core representation of an Approval resource. This represents a manual approval and would typically be created by an FI admin when a Contact fails one or more steps of the identity verification workflow.
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 | string
|
_id | string A unique identifier for this resource instance. This is is an opaque string. |
createdAt | string(date-time) The date-time when the resource was created. |
expiresAt | string(date-time) The date-time when the resource expires. |
abstractResource
{
"_profile": "https://api.apiture.com/schemas/example/v.0.1.0/profile.json",
"_links": {
"self": {
"href": "<uri of current resource>"
}
}
}
Base model schema for resource representations
An augmented 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. |
attributes
{}
Dynamic attribute map
An optional map of name/value pairs which contains additional dynamic data about the resource.
Properties
No properties
root
{
"id": "apiName",
"name": "API name",
"apiVersion": "0.0.1-SNAPSHOT",
"_profile": "https://api.apiture.com/schemas/common/root/v1.0.0/profile.json",
"_links": null
}
The root of this API
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. |
errorResponse
{
"_profile": "https://api.apiture.com/schemas/common/errorResponse/v1.0.0/profile.json",
"_error": {
"_id": "2eae46e1-575c-4d69-8a8f-0a7b0115a4b3",
"_profile": "https://api.apiture.com/schemas/common/errorResponse/v1.0.0/profile.json",
"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": {},
"_links": {
"describedby": {
"href": "http://doc.apiture.com/errors/positiveNumberRequired"
}
},
"_embedded": {
"errors": []
}
}
}
Error Response
Describes an error response, typically returned on 4xx or 5xx errors from API operations. The _error
object contains the error details.
Properties
Name | Description |
---|---|
_links | links An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
|
_embedded | object An optional map of nested resources, mapping each nested resource name to a nested resource representation. |
_profile | string(uri) The URI of a resource profile which describes the representation. |
_error | error An object which describes an error. This value is omitted if the operation succeeded without error. |
error
{
"_id": "2eae46e1-575c-4d69-8a8f-0a7b0115a4b3",
"_profile": "https://api.apiture.com/schemas/common/errorResponse/v1.0.0/profile.json",
"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": "http://doc.apiture.com/errors/positiveNumberRequired"
}
},
"_embedded": {
"errors": []
}
}
Error
An error description. Nested source errors are contained in the _embedded
object with the key "errors"
; this is an array of nested error objects. For example, an API which validates its request body may find multiple errors in the request, which may be detailed here. The _links
may contain a describedby
link which refers to a web page with details about the error. The attributes
field An optional map of name/value pairs which provide structured data about the error. For example, if the error is a value out of range, the attributes may specify the range values min
and max
. This allows clients to present error messages as they see fit (the API does not assume the client/presentation tier).
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 ISO 8601 UTC time stamp indicating when the error occurred. |
attributes | attributes Data attribute associated with the error, such as values or constraints. |
remediation | string An optional localized string which provides hints for how the user or client can resolve the error. |
_embedded | object Optional embedded array of errors. This field may not exist if the error does not have nested errors. |
» items | [errorResponse] An array of error objects. |
links
{
"property1": {
"href": "http://example.com",
"type": "string",
"templated": true,
"title": "string",
"deprecation": "http://example.com",
"profile": "http://example.com"
},
"property2": {
"href": "http://example.com",
"type": "string",
"templated": true,
"title": "string",
"deprecation": "http://example.com",
"profile": "http://example.com"
}
}
A set of hypermedia links
An optional map of links, mapping each link relation to a link object. This model defines the _links
object of HAL representations.
Properties
Name | Description |
---|---|
additionalProperties | link Describes a hypermedia link withing 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.
|
link
{
"href": "http://example.com",
"type": "string",
"templated": true,
"title": "string",
"deprecation": "http://example.com",
"profile": "http://example.com"
}
A hypermedia links to a related resource or operation
Describes a hypermedia link withing 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. |