Identity v0.1.0
Scroll down for code samples, example requests and responses. Select a language for code samples from the tabs above or the mobile navigation menu.
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:
API
Endpoints which describe this API.
getApi
Code samples
# You can also use wget
curl -X GET /identity/ \
-H 'Accept: application/hal+json'
GET /identity/ HTTP/1.1
Accept: application/hal+json
var headers = {
'Accept':'application/hal+json'
};
$.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'
};
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'
}
result = RestClient.get '/identity/',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/hal+json'
}
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"},
}
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.
Try it
Fields marked with * are mandatory.
Response
Response Code:
Response Headers:
Response Body:
Click on 'Try It' to get a response.
Example responses
OK
{
"id": "identity",
"name": "Identity",
"apiVersion": "0.1.0",
"_profile": "https://api.apiture.com/schemas/apiRoot/v.0.1.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/apiRoot/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'
GET /identity/apiDoc HTTP/1.1
Accept: application/json
var headers = {
'Accept':'application/json'
};
$.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'
};
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'
}
result = RestClient.get '/identity/apiDoc',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
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"},
}
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.
Try it
Fields marked with * are mandatory.
Response
Response Code:
Response Headers:
Response Body:
Click on 'Try It' to get a response.
Example responses
200 Response
{}
Responses
Status | Description |
---|---|
200 | OK |
OK | |
Schema: Inline |
Response Schema
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'
GET /identity/fraudRiskReports HTTP/1.1
Accept: application/hal+json
var headers = {
'Accept':'application/hal+json'
};
$.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'
};
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'
}
result = RestClient.get '/identity/fraudRiskReports',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/hal+json'
}
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"},
}
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. |
Try it
Fields marked with * are mandatory.
Response
Response Code:
Response Headers:
Response Body:
Click on 'Try It' to get a response.
Example responses
200 Response
{
"_profile": "https://api.apiture.com/schemas/collection/identity/fraudRiskReport/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'
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'
};
$.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'
};
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'
}
result = RestClient.post '/identity/fraudRiskReports',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/hal+json',
'Accept': 'application/hal+json'
}
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"},
}
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 |
Try it
Fields marked with * are mandatory.
Response
Response Code:
Response Headers:
Response Body:
Click on 'Try It' to get a response.
Example responses
201 Response
{
"_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'
GET /identity/fraudRiskReports/{fraudRiskReportId} HTTP/1.1
Accept: application/hal+json
var headers = {
'Accept':'application/hal+json'
};
$.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'
};
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'
}
result = RestClient.get '/identity/fraudRiskReports/{fraudRiskReportId}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/hal+json'
}
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"},
}
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. |
Try it
Fields marked with * are mandatory.
Response
Response Code:
Response Headers:
Response Body:
Click on 'Try It' to get a response.
Example responses
200 Response
{
"_profile": "https://api.apiture.com/schemas/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'
GET /identity/quizzes HTTP/1.1
Accept: application/hal+json
var headers = {
'Accept':'application/hal+json'
};
$.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'
};
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'
}
result = RestClient.get '/identity/quizzes',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/hal+json'
}
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"},
}
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. |
Try it
Fields marked with * are mandatory.
Response
Response Code:
Response Headers:
Response Body:
Click on 'Try It' to get a response.
Example responses
200 Response
{
"_profile": "https://api.apiture.com/schemas/collection/identity/quiz/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'
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'
};
$.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'
};
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'
}
result = RestClient.post '/identity/quizzes',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/hal+json',
'Accept': 'application/hal+json'
}
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"},
}
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 |
Try it
Fields marked with * are mandatory.
Response
Response Code:
Response Headers:
Response Body:
Click on 'Try It' to get a response.
Example responses
201 Response
{
"_id": "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'
GET /identity/quizzes/{quizId} HTTP/1.1
Accept: application/hal+json
var headers = {
'Accept':'application/hal+json'
};
$.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'
};
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'
}
result = RestClient.get '/identity/quizzes/{quizId}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/hal+json'
}
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"},
}
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. |
Try it
Fields marked with * are mandatory.
Response
Response Code:
Response Headers:
Response Body:
Click on 'Try It' to get a response.
Example responses
200 Response
{
"_id": "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'
POST /identity/quizzes/{quizId}/questions HTTP/1.1
Accept: application/hal+json
var headers = {
'Accept':'application/hal+json'
};
$.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'
};
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'
}
result = RestClient.post '/identity/quizzes/{quizId}/questions',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/hal+json'
}
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"},
}
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. |
Try it
Fields marked with * are mandatory.
Response
Response Code:
Response Headers:
Response Body:
Click on 'Try It' to get a response.
Example responses
201 Response
{
"_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'
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'
};
$.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'
};
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'
}
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'
}
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"},
}
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 |
Try it
Fields marked with * are mandatory.
Response
Response Code:
Response Headers:
Response Body:
Click on 'Try It' to get a response.
Example responses
201 Response
{
"_id": "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'
GET /identity/contactVerification?contactUri=string HTTP/1.1
Accept: application/hal+json
var headers = {
'Accept':'application/hal+json'
};
$.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'
};
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'
}
result = RestClient.get '/identity/contactVerification',
params: {
'contactUri' => 'string'
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/hal+json'
}
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"},
}
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 . |
Try it
Fields marked with * are mandatory.
Response
Response Code:
Response Headers:
Response Body:
Click on 'Try It' to get a response.
Example responses
200 Response
{
"_links": {
"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'
POST /identity/approvals?contactUri=string HTTP/1.1
Accept: application/hal+json
var headers = {
'Accept':'application/hal+json'
};
$.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'
};
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'
}
result = RestClient.post '/identity/approvals',
params: {
'contactUri' => 'string'
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/hal+json'
}
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"},
}
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 . |
Try it
Fields marked with * are mandatory.
Response
Response Code:
Response Headers:
Response Body:
Click on 'Try It' to get a response.
Example responses
201 Response
{
"_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'
GET /identity/approvals/{approvalId} HTTP/1.1
Accept: application/hal+json
var headers = {
'Accept':'application/hal+json'
};
$.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'
};
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'
}
result = RestClient.get '/identity/approvals/{approvalId}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/hal+json'
}
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"},
}
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. |
Try it
Fields marked with * are mandatory.
Response
Response Code:
Response Headers:
Response Body:
Click on 'Try It' to get a response.
Example responses
200 Response
{
"_profile": "https://api.apiture.com/schemas/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
{
"_profile": "https://api.apiture.com/schemas/example/v.0.1.0/profile.json",
"_links": {
"self": {
"href": "<uri of current resource>"
}
},
"count": 0,
"start": 0,
"limit": 0,
"name": "string"
}
A collection of resources.
Properties
Schema Name | Description |
---|---|
A collection of resources. | any A collection of resources. |
allOf
Schema Name | Description |
---|---|
anonymous | abstractResource 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 . |
and
Schema Name | Description |
---|---|
anonymous | object undefined |
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/collection/identity/fraudRiskReport/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"
}
]
}
}
]
}
}
Collection of fraud-risk reports.
Properties
Schema Name | Description |
---|---|
Collection of fraud-risk reports. | any 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 .) |
allOf
Schema Name | Description |
---|---|
anonymous | collection A collection of resources. |
and
Schema Name | Description |
---|---|
anonymous | object undefined |
_embedded | object undefined |
items | [fraudRiskReport] An array containg a page of fraud-risk analysis reports |
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
Schema Name | Description |
---|---|
Fraud-risk Report | any undefined |
allOf
Schema Name | Description |
---|---|
anonymous | abstractResource 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 . |
and
Schema Name | Description |
---|---|
anonymous | identityVerification The core representation of an identity verification resource |
and
Schema Name | Description |
---|---|
anonymous | object undefined |
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
Properties
Schema Name | Description |
---|---|
type | fraudRiskCategoryType Represents the possible types of fraud-risk |
description | string The description of the fraud. |
fraudRiskCategoryType
"ipRestricted"
Fraud Risk Category Type
Properties
Schema Name | Description |
---|---|
Fraud Risk Category Type | string Represents the possible types of fraud-risk |
Enumerated Values
Property | Value |
---|---|
Fraud Risk Category Type | ipRestricted |
Fraud Risk Category Type | identityOnGovernmentWatchlist |
Fraud Risk Category Type | identityOnAlertList |
Fraud Risk Category Type | addressIsPOBoxOrNonApproved |
Fraud Risk Category Type | addressIsHighRisk |
Fraud Risk Category Type | ageRestricted |
Fraud Risk Category Type | nonStandardTaxId |
Fraud Risk Category Type | personalInfoDoesNotMatch |
Fraud Risk Category Type | emailRestricted |
createFraudRiskReport
{
"_links": {
"apiture:contact": {
"href": "/contacts/contacts/6da5ccc7-727a-4256-bdd4-74023ae349c3"
}
}
}
Create Fraud Risk Report
Properties
Schema Name | Description |
---|---|
Create Fraud Risk Report | any Representation used to create a new fraud-risk analysis report |
allOf
Schema Name | Description |
---|---|
anonymous | abstractResource 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 . |
and
Schema Name | Description |
---|---|
anonymous | identity Information that describes the identity |
createQuiz
{
"_links": {
"apiture:contact": {
"href": "/contacts/contacts/6da5ccc7-727a-4256-bdd4-74023ae349c3"
}
}
}
Create Quiz
Properties
Schema Name | Description |
---|---|
Create Quiz | any Representation used to create a new quiz |
allOf
Schema Name | Description |
---|---|
anonymous | identity Information that describes the identity |
and
Schema Name | Description |
---|---|
anonymous | abstractResource 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 . |
scoreQuizAnswers
null
Score Quiz Answers
Properties
Schema Name | Description |
---|---|
Score Quiz Answers | coreQuizAnswers Representation used to provide answers to a quiz |
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
Properties
Schema Name | Description |
---|---|
Create Questions | any Representation used to create a new set of questions |
allOf
Schema Name | Description |
---|---|
anonymous | abstractResource 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 . |
and
Schema Name | Description |
---|---|
anonymous | coreQuizQuestions The questions of a quiz |
and
Schema Name | Description |
---|---|
anonymous | verificationToken The token used to validate and track a contact for identity verification purposes. |
verificationToken
{
"token": "string"
}
Verification Token
Properties
Schema 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
Properties
Schema Name | Description |
---|---|
Verification | any Representation used to verify a contact. May contain a link to apiture:contact . |
allOf
Schema Name | Description |
---|---|
anonymous | abstractResource 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 . |
and
Schema Name | Description |
---|---|
anonymous | object undefined |
verifications | [any] undefined |
_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 undefined |
verifiedAt | string(date-time) The date-time when the verification occurred. |
Enumerated Values
Property | Value |
---|---|
state | passed |
state | failed |
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
Properties
Schema 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/collection/identity/quiz/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
Properties
Schema Name | Description |
---|---|
Quizzes | any Collection of quizzes |
allOf
Schema Name | Description |
---|---|
anonymous | collection A collection of resources. |
and
Schema Name | Description |
---|---|
anonymous | object undefined |
_embedded | object undefined |
items | [quiz] An array containg a page of quizzes |
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
Properties
Schema Name | Description |
---|---|
Quiz | any 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. |
allOf
Schema Name | Description |
---|---|
anonymous | abstractResource 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 . |
and
Schema Name | Description |
---|---|
anonymous | identityVerification The core representation of an identity verification resource |
and
Schema Name | Description |
---|---|
anonymous | object undefined |
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
Properties
Schema 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
Properties
Schema 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 |
quizAnswers
{
"answers": [
{
"questionId": "1",
"answer": "Honda Accord"
},
{
"questionId": "2",
"answer": "Missouri"
}
]
}
Quiz Answers
Properties
Schema Name | Description |
---|---|
Quiz Answers | coreQuizAnswers A collection of answers to a quiz |
coreQuizAnswers
{
"answers": [
{
"questionId": "1",
"answer": "Honda Accord"
},
{
"questionId": "2",
"answer": "Missouri"
}
]
}
Quiz Answers
Properties
Schema Name | Description |
---|---|
answers | [coreAnswer] [An answer to a quiz question] |
coreAnswer
{
"questionId": "1",
"answer": "Honda Accord"
}
Quiz Answer
Properties
Schema 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
Properties
Schema Name | Description |
---|---|
Outputs | verificationToken Base model schema for identity verification operations outputs |
inputs
null
Inputs
Properties
Schema Name | Description |
---|---|
Inputs | any Base model schema for identity verification operations inputs |
quizOutputs
{
"token": "string",
"state": "pending"
}
Quiz Outputs
Properties
Schema Name | Description |
---|---|
Quiz Outputs | any The outputs of a quiz. Used for workflow |
allOf
Schema Name | Description |
---|---|
anonymous | outputs Base model schema for identity verification operations outputs |
and
Schema Name | Description |
---|---|
anonymous | object undefined |
state | string The state of the quiz. Can be pending , failedGetQuestions , asked , scoring , passed , failed or expired |
Enumerated Values
Property | Value |
---|---|
state | pending |
state | failedGetQuestions |
state | asked |
state | scoring |
state | passed |
state | failed |
state | expired |
fraudRiskReportOutputs
{
"token": "string",
"fraudRiskCategories": [
{
"type": "addressIsPOBoxOrNonApproved",
"description": "The provided address is a PO Box or other non-approved address"
}
]
}
Fraud-risk Report Outputs
Properties
Schema Name | Description |
---|---|
Fraud-risk Report Outputs | any The outputs of a fraud-risk report. Used for workflow |
allOf
Schema Name | Description |
---|---|
anonymous | outputs Base model schema for identity verification operations outputs |
and
Schema Name | Description |
---|---|
anonymous | object undefined |
fraudRiskCategories | [fraudRiskCategory] [Representation of a fraud-risk category] |
quizInputs
null
Quiz Inputs.
Properties
Schema Name | Description |
---|---|
Quiz Inputs. | any The inputs of a quiz. Used for workflow |
allOf
Schema Name | Description |
---|---|
anonymous | inputs Base model schema for identity verification operations inputs |
and
Schema Name | Description |
---|---|
anonymous | object undefined |
identity | identity Information that describes the identity |
fraudRiskReportInputs
null
Fraud-risk Report Inputs
Properties
Schema Name | Description |
---|---|
Fraud-risk Report Inputs | any The inputs of a fraud-risk report. Used for workflow |
allOf
Schema Name | Description |
---|---|
anonymous | inputs Base model schema for identity verification operations inputs |
and
Schema Name | Description |
---|---|
anonymous | object undefined |
identity | identity Information that describes the identity |
identityVerification
{
"_profile": "https://api.apiture.com/schemas/example/v.0.1.0/profile.json",
"_links": {
"self": {
"href": "<uri of current resource>"
}
},
"type": "fraudRiskReport",
"_id": "string",
"createdAt": "2019-01-31T13:31:43Z",
"expiresAt": "2019-01-31T13:31:43Z"
}
Identity Verification Resource
Properties
Schema Name | Description |
---|---|
Identity Verification Resource | any The core representation of an identity verification resource |
allOf
Schema Name | Description |
---|---|
anonymous | abstractResource 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 . |
and
Schema Name | Description |
---|---|
anonymous | identityVerificationType Represents the possible types of identity verification |
and
Schema Name | Description |
---|---|
anonymous | object undefined |
_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
Properties
Schema Name | Description |
---|---|
type | string undefined |
Enumerated Values
Property | Value |
---|---|
type | fraudRiskReport |
type | quiz |
type | adminApproval |
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
Properties
Schema Name | Description |
---|---|
Approval | any 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. |
allOf
Schema Name | Description |
---|---|
anonymous | abstractResource 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 . |
and
Schema Name | Description |
---|---|
anonymous | identityVerification The core representation of an identity verification resource |
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
Properties
Schema 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
Properties
No properties
root
{
"id": "apiName",
"name": "API name",
"apiVersion": "0.0.1-SNAPSHOT",
"_profile": "https://api.apiture.com/schemas/apiRoot/v1.0.0/profile.json",
"_links": null
}
The root of this API
Properties
Schema Name | Description |
---|---|
The root of this API | any A HAL response, with hypermedia _links for the top-level resources and operations in API. |
allOf
Schema Name | Description |
---|---|
anonymous | abstractResource 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 . |
and
Schema Name | Description |
---|---|
anonymous | object undefined |
_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/error/v1.0.0/.json",
"_error": {
"_id": "2eae46e1-575c-4d69-8a8f-0a7b0115a4b3",
"_profile": "https://api.apiture.com/schemas/error/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": "2019-01-31T13:31:40.622Z",
"_links": {
"describedby": {
"href": "http://doc.apiture.com/errors/positiveNumberRequired"
}
},
"_embedded": {
"errors": []
}
}
}
Error Response
Properties
Schema Name | Description |
---|---|
Error Response | abstractResource Describes an error response, typically returned on 4xx or 5xx errors from API operations. The _error object contains the error details. |
error
{
"_id": "2eae46e1-575c-4d69-8a8f-0a7b0115a4b3",
"_profile": "https://api.apiture.com/schemas/error/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
Properties
Schema 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
Properties
Schema 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
Properties
Schema 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. |