Shell HTTP JavaScript Node.JS Ruby Python Java Go

Identity v0.3.2

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:

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 the PII associated with an individual. The report will contain a state indicating the result of the operation as well as an optional list of fraud risk factors associated with that identity. A passed state indicates that the provided PII was located and contains no risk factors. A passedWithRiskFactors state means that the provided PII matches an identity but contains risk factors. A failed state means that the provided PII does not match any identity records. 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:

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:

Terms of service

Email: Apiture Web: Apiture

Authentication

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 https://api.devbank.apiture.com/identity/ \
  -H 'Accept: application/hal+json' \
  -H 'API-Key: API_KEY'

GET https://api.devbank.apiture.com/identity/ HTTP/1.1
Host: api.devbank.apiture.com
Accept: application/hal+json

var headers = {
  'Accept':'application/hal+json',
  'API-Key':'API_KEY'

};

$.ajax({
  url: 'https://api.devbank.apiture.com/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('https://api.devbank.apiture.com/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 'https://api.devbank.apiture.com/identity/',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/hal+json',
  'API-Key': 'API_KEY'
}

r = requests.get('https://api.devbank.apiture.com/identity/', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.devbank.apiture.com/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", "https://api.devbank.apiture.com/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

StatusDescription
200 OK
OK
Schema: root

getApiDoc

Code samples

# You can also use wget
curl -X GET https://api.devbank.apiture.com/identity/apiDoc \
  -H 'Accept: application/json' \
  -H 'API-Key: API_KEY'

GET https://api.devbank.apiture.com/identity/apiDoc HTTP/1.1
Host: api.devbank.apiture.com
Accept: application/json

var headers = {
  'Accept':'application/json',
  'API-Key':'API_KEY'

};

$.ajax({
  url: 'https://api.devbank.apiture.com/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('https://api.devbank.apiture.com/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 'https://api.devbank.apiture.com/identity/apiDoc',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/json',
  'API-Key': 'API_KEY'
}

r = requests.get('https://api.devbank.apiture.com/identity/apiDoc', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.devbank.apiture.com/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", "https://api.devbank.apiture.com/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

StatusDescription
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 https://api.devbank.apiture.com/identity/fraudRiskReports \
  -H 'Accept: application/hal+json' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

GET https://api.devbank.apiture.com/identity/fraudRiskReports HTTP/1.1
Host: api.devbank.apiture.com
Accept: application/hal+json

var headers = {
  'Accept':'application/hal+json',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.devbank.apiture.com/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('https://api.devbank.apiture.com/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 'https://api.devbank.apiture.com/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('https://api.devbank.apiture.com/identity/fraudRiskReports', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.devbank.apiture.com/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", "https://api.devbank.apiture.com/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": {
          "state": "passedWithRiskFactors",
          "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

StatusDescription
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 https://api.devbank.apiture.com/identity/fraudRiskReports \
  -H 'Content-Type: application/hal+json' \
  -H 'Accept: application/hal+json' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

POST https://api.devbank.apiture.com/identity/fraudRiskReports HTTP/1.1
Host: api.devbank.apiture.com
Content-Type: application/hal+json
Accept: application/hal+json

var headers = {
  'Content-Type':'application/hal+json',
  'Accept':'application/hal+json',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.devbank.apiture.com/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('https://api.devbank.apiture.com/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 'https://api.devbank.apiture.com/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('https://api.devbank.apiture.com/identity/fraudRiskReports', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.devbank.apiture.com/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", "https://api.devbank.apiture.com/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:

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": {
    "state": "passedWithRiskFactors",
    "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

StatusDescription
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

StatusDescription
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 https://api.devbank.apiture.com/identity/fraudRiskReports/{fraudRiskReportId} \
  -H 'Accept: application/hal+json' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

GET https://api.devbank.apiture.com/identity/fraudRiskReports/{fraudRiskReportId} HTTP/1.1
Host: api.devbank.apiture.com
Accept: application/hal+json

var headers = {
  'Accept':'application/hal+json',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.devbank.apiture.com/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('https://api.devbank.apiture.com/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 'https://api.devbank.apiture.com/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('https://api.devbank.apiture.com/identity/fraudRiskReports/{fraudRiskReportId}', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.devbank.apiture.com/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", "https://api.devbank.apiture.com/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:

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": {
    "state": "passedWithRiskFactors",
    "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

StatusDescription
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 https://api.devbank.apiture.com/identity/quizzes \
  -H 'Accept: application/hal+json' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

GET https://api.devbank.apiture.com/identity/quizzes HTTP/1.1
Host: api.devbank.apiture.com
Accept: application/hal+json

var headers = {
  'Accept':'application/hal+json',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.devbank.apiture.com/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('https://api.devbank.apiture.com/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 'https://api.devbank.apiture.com/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('https://api.devbank.apiture.com/identity/quizzes', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.devbank.apiture.com/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", "https://api.devbank.apiture.com/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

StatusDescription
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 https://api.devbank.apiture.com/identity/quizzes \
  -H 'Content-Type: application/hal+json' \
  -H 'Accept: application/hal+json' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

POST https://api.devbank.apiture.com/identity/quizzes HTTP/1.1
Host: api.devbank.apiture.com
Content-Type: application/hal+json
Accept: application/hal+json

var headers = {
  'Content-Type':'application/hal+json',
  'Accept':'application/hal+json',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.devbank.apiture.com/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('https://api.devbank.apiture.com/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 'https://api.devbank.apiture.com/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('https://api.devbank.apiture.com/identity/quizzes', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.devbank.apiture.com/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", "https://api.devbank.apiture.com/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:

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

StatusDescription
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

StatusDescription
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 https://api.devbank.apiture.com/identity/quizzes/{quizId} \
  -H 'Accept: application/hal+json' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

GET https://api.devbank.apiture.com/identity/quizzes/{quizId} HTTP/1.1
Host: api.devbank.apiture.com
Accept: application/hal+json

var headers = {
  'Accept':'application/hal+json',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.devbank.apiture.com/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('https://api.devbank.apiture.com/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 'https://api.devbank.apiture.com/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('https://api.devbank.apiture.com/identity/quizzes/{quizId}', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.devbank.apiture.com/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", "https://api.devbank.apiture.com/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:

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

StatusDescription
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 https://api.devbank.apiture.com/identity/quizzes/{quizId}/questions \
  -H 'Accept: application/hal+json' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

POST https://api.devbank.apiture.com/identity/quizzes/{quizId}/questions HTTP/1.1
Host: api.devbank.apiture.com
Accept: application/hal+json

var headers = {
  'Accept':'application/hal+json',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.devbank.apiture.com/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('https://api.devbank.apiture.com/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 'https://api.devbank.apiture.com/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('https://api.devbank.apiture.com/identity/quizzes/{quizId}/questions', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.devbank.apiture.com/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", "https://api.devbank.apiture.com/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:

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

StatusDescription
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 https://api.devbank.apiture.com/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 https://api.devbank.apiture.com/identity/quizzes/{quizId}/answers HTTP/1.1
Host: api.devbank.apiture.com
Content-Type: application/hal+json
Accept: application/hal+json

var headers = {
  'Content-Type':'application/hal+json',
  'Accept':'application/hal+json',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.devbank.apiture.com/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('https://api.devbank.apiture.com/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 'https://api.devbank.apiture.com/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('https://api.devbank.apiture.com/identity/quizzes/{quizId}/answers', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.devbank.apiture.com/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", "https://api.devbank.apiture.com/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:

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

StatusDescription
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 https://api.devbank.apiture.com/identity/contactVerification?contactUri=string \
  -H 'Accept: application/hal+json' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

GET https://api.devbank.apiture.com/identity/contactVerification?contactUri=string HTTP/1.1
Host: api.devbank.apiture.com
Accept: application/hal+json

var headers = {
  'Accept':'application/hal+json',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.devbank.apiture.com/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('https://api.devbank.apiture.com/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 'https://api.devbank.apiture.com/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('https://api.devbank.apiture.com/identity/contactVerification', params={
  'contactUri': 'string'
}, headers = headers)

print r.json()

URL obj = new URL("https://api.devbank.apiture.com/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", "https://api.devbank.apiture.com/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:

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

StatusDescription
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 https://api.devbank.apiture.com/identity/approvals?contactUri=string \
  -H 'Accept: application/hal+json' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

POST https://api.devbank.apiture.com/identity/approvals?contactUri=string HTTP/1.1
Host: api.devbank.apiture.com
Accept: application/hal+json

var headers = {
  'Accept':'application/hal+json',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.devbank.apiture.com/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('https://api.devbank.apiture.com/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 'https://api.devbank.apiture.com/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('https://api.devbank.apiture.com/identity/approvals', params={
  'contactUri': 'string'
}, headers = headers)

print r.json()

URL obj = new URL("https://api.devbank.apiture.com/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", "https://api.devbank.apiture.com/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:

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

StatusDescription
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

StatusDescription
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 https://api.devbank.apiture.com/identity/approvals/{approvalId} \
  -H 'Accept: application/hal+json' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

GET https://api.devbank.apiture.com/identity/approvals/{approvalId} HTTP/1.1
Host: api.devbank.apiture.com
Accept: application/hal+json

var headers = {
  'Accept':'application/hal+json',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

$.ajax({
  url: 'https://api.devbank.apiture.com/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('https://api.devbank.apiture.com/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 'https://api.devbank.apiture.com/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('https://api.devbank.apiture.com/identity/approvals/{approvalId}', params={

}, headers = headers)

print r.json()

URL obj = new URL("https://api.devbank.apiture.com/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", "https://api.devbank.apiture.com/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:

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

StatusDescription
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

NameDescription
_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": {
          "state": "passedWithRiskFactors",
          "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

NameDescription
_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": {
    "state": "passedWithRiskFactors",
    "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

NameDescription
_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


Enumerated values:
fraudRiskReport
quiz
adminApproval

_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

NameDescription
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

Type: string
Enumerated values:
ipRestricted
identityOnGovernmentWatchlist
identityOnAlertList
addressIsPOBoxOrNonApproved
addressIsHighRisk
ageRestricted
nonStandardTaxId
personalInfoDoesNotMatch
emailRestricted

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

NameDescription
_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

NameDescription
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

NameDescription
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

NameDescription
_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

NameDescription
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

NameDescription
_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


Enumerated values:
passed
failed

» 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

NameDescription
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

NameDescription
_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

NameDescription
_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


Enumerated values:
fraudRiskReport
quiz
adminApproval

_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

NameDescription
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

NameDescription
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

NameDescription
answers [coreAnswer]
[An answer to a quiz question]

coreAnswer

{
  "questionId": "1",
  "answer": "Honda Accord"
}

Quiz Answer

An answer to a quiz question

Properties

NameDescription
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

NameDescription
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

quizOutputs

{
  "token": "string",
  "state": "pending"
}

Quiz Outputs

The outputs of a quiz. Used for workflow

Properties

NameDescription
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


Enumerated values:
pending
failedGetQuestions
asked
scoring
passed
failed
expired

fraudRiskReportOutputs

{
  "token": "string",
  "state": "passed",
  "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

NameDescription
token string
An opaque string that conveys the state of the contact's identity verification.
state string
The state of a fraud report. passed indicates that the provided PII was located and contains no risk factors. passedWithRiskFactors means that the provided PII matches an identity but contains risk factors. failed means that the provided PII does not match any identity records.


Enumerated values:
passed
passedWithRiskFactors
failed

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

NameDescription
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

NameDescription
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-09-09T17:04:52Z",
  "expiresAt": "2019-09-09T17:04:52Z"
}

Identity Verification Resource

The core representation of an identity verification resource

Properties

NameDescription
_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


Enumerated values:
fraudRiskReport
quiz
adminApproval

_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

NameDescription
type string


Enumerated values:
fraudRiskReport
quiz
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

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

NameDescription
_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


Enumerated values:
fraudRiskReport
quiz
adminApproval

_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

NameDescription
_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

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

NameDescription
_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

NameDescription
_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

NameDescription
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.

{
  "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

NameDescription
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.

{
  "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

NameDescription
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.