Shell HTTP JavaScript Node.JS Ruby Python Java Go

Users v0.12.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.

The Users API provides operations to create and maintain online customers for the financial institution. A user represents a person who has registered for online digital banking. Each user resource contains contact information about them (their name, addresses, phone numbers, email addresses) as well as birthdate, government identification, citizenship, and other information that allows the financial institution to conform to regulations related to customers. Every user is uniquely identifiable by a system-generated unique identifier. Users can be created (never deleted) and the state of a user can be modified by authorized financial institution administrators. This API also maintains other banking information about a user, such as their funds transfer limits or other constraints. In addition to the basic operations to create and modify users, there are several actions supported for users. API links for these actions are described in the user schema.

Multi-factor authentication challenges

To prevent account takeover attacks, some operations to update the user's profile require multi-factor authentication (MFA). An MFA challenge is a process to verify the user's identity through one or more additional authentication steps.

Some examples are the operations which change the user's preferred phone number:

  1. setPreferredPhoneNumber operation
  2. createPhoneNumber operation when the ?replaceId names the current preferred phone number.

Both require an MFA challenge. When the client tries the operation without a valid redeemable Apiture-Challenge request header, the operation may fail with a 409 Conflict. The response body, defined by the challengeErrorResponse schema, contains a challenge resource which includes one or more authenticators. The client should start at least one of the authenticators, optionally allowing the user choose which ones to use, depending on how many authenticators are required.

When changing the user's preferred phone number, for example, the challenge may include an authenticator that sends a verification code to the user's email account. The user completes the authentication by entering the code in the client application. Once the authentication step has completed successfully, the client must pass the resource ID of the challenge resource in the Apiture-Challenge request header in order for the operation to update the user's profile information. Thus, these operations often require two tries: the first (without the Apiture-Challenge header), which fails with a 409 status but returns the challenge object, then after completing the challenges' authenticators, a second try, passing in the Apiture-Challenge header.

Download OpenAPI Definition (YAML)

Base URLs:

Terms of service

Email: Apiture Web: Apiture

License: Pending.

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/readPii Read access to personally identifiable information such as tax ID numbers, phone numbers, email and postal addresses. This must be granted in addition to the profiles/read scope in order to read such data, but is included in the profiles/full scope.
profiles/full Full access to user and contact related resources.
admin/read Read access to system configuration.
admin/write Write (update) access to user and contact related resources just for administrative roles.
admin/delete Delete access to system configuration.
admin/full Full access to system configuration.

API

Endpoints which describe this API

getApi

Code samples

# You can also use wget
curl -X GET /users/ \
  -H 'Accept: application/hal+json' \
  -H 'API-Key: API_KEY'

GET /users/ HTTP/1.1

Accept: application/hal+json

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

};

$.ajax({
  url: '/users/',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

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

};

fetch('/users/',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

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

result = RestClient.get '/users/',
  params: {
  }, headers: headers

p JSON.parse(result)

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

r = requests.get('/users/', params={

}, headers = headers)

print r.json()

URL obj = new URL("/users/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/hal+json"},
        "API-Key": []string{"API_KEY"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/users/", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

Top-level resources and operations in this API

GET /

Return links to the top-level resources and operations in this API. Links in the root response may include:

Example responses

200 Response

{
  "id": "apiName",
  "name": "API name",
  "apiVersion": "1.0.0",
  "_profile": "https://api.apiture.com/schemas/common/root/v1.0.0/profile.json",
  "_links": {}
}

Responses

StatusDescription
200 OK
OK
Schema: root

getApiDoc

Code samples

# You can also use wget
curl -X GET /users/apiDoc \
  -H 'Accept: application/json' \
  -H 'API-Key: API_KEY'

GET /users/apiDoc HTTP/1.1

Accept: application/json

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

};

$.ajax({
  url: '/users/apiDoc',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

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

};

fetch('/users/apiDoc',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'API-Key' => 'API_KEY'
}

result = RestClient.get '/users/apiDoc',
  params: {
  }, headers: headers

p JSON.parse(result)

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

r = requests.get('/users/apiDoc', params={

}, headers = headers)

print r.json()

URL obj = new URL("/users/apiDoc");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "API-Key": []string{"API_KEY"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/users/apiDoc", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

Return API definition document

GET /apiDoc

Return the OpenAPI document that describes this API.

Example responses

200 Response

{}

Responses

StatusDescription
200 OK
OK
Schema: Inline

Response Schema

User

Endpoints to manage users

getUsers

Code samples

# You can also use wget
curl -X GET /users/users \
  -H 'Accept: application/hal+json' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

GET /users/users HTTP/1.1

Accept: application/hal+json

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

};

$.ajax({
  url: '/users/users',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

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

};

fetch('/users/users',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

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

result = RestClient.get '/users/users',
  params: {
  }, headers: headers

p JSON.parse(result)

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

r = requests.get('/users/users', params={

}, headers = headers)

print r.json()

URL obj = new URL("/users/users");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/hal+json"},
        "API-Key": []string{"API_KEY"},
        "Authorization": []string{"Bearer {access-token}"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/users/users", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

Return a collection of users

GET /users

Use this endpoint to retrieve a paginated, sortable, filterable, searchable collection of users. The links in the response include pagination links. This representation will contain links in each user in the embedded items array:

Parameters

Parameter Description
start
(query)
integer(int64)
The zero-based index of the first user in this page. The default, 0, represents the first page of the collection.
limit
(query)
integer(int32)
The maximum number of user representations to return in this page.
sortBy
(query)
string
Optional sort criteria. See sort criteria format, such as ?sortBy=field1,-field2.
filter
(query)
string
Optional filter criteria. See filtering.
q
(query)
string
Optional search string. See searching.
state
(query)
string
Subset the users collection to those whose state matches this value. Use | to separate multiple values. For example, ?state=pending will match only items whose state is pending; ?state=removed|inactive will match items whose state is removed or inactive. This is combined with an implicit and with other filters if they are used. See filtering.
Enumerated values:
locked
frozen
merged
active
inactive
removed
customerId
(query)
string
Subset the users collection to those whose customerId matches this value. This is combined with an implicit and with other filters if they are used. See filtering.
occupation
(query)
string
Subset the users collection to those with this name value. Use | to separate multiple values. For example, ?occupation=education will match only items whose occupation is education; ?occupation=education|farming will match items whose occupation is education or farming. This is combined with an implicit and with other filters if they are used. See filtering.

Example responses

200 Response

{
  "_profile": "https://api.apiture.com/schemas/users/users/v1.0.0/profile.json",
  "start": 0,
  "limit": 10,
  "count": 2,
  "name": "users",
  "_links": {
    "self": {
      "href": "/users?start=0&limit=10"
    },
    "first": {
      "href": "/users?start=10&limit=10"
    },
    "next": {
      "href": "/users?start=10&limit=10"
    },
    "collection": {
      "href": "/users"
    }
  },
  "_embedded": {
    "items": [
      {
        "_id": "9604e5f8-da29-4197-b6fb-60a1cfecfba8",
        "_profile": "https://api.apiture.com/schemas/users/user/v1.0.0/profile.json",
        "_links": {
          "self": {
            "href": "/users/users/9604e5f8-da29-4197-b6fb-60a1cfecfba8"
          },
          "apiture:deactivate": {
            "href": "/users/inactiveUsers?user=9604e5f8-da29-4197-b6fb-60a1cfecfba8"
          },
          "apiture:lock": {
            "href": "/users/lockedUsers?user=9604e5f8-da29-4197-b6fb-60a1cfecfba8"
          },
          "apiture:freeze": {
            "href": "/users/frozenUsers?user=9604e5f8-da29-4197-b6fb-60a1cfecfba8"
          },
          "apiture:remove": {
            "href": "/users/removedUsers?user=9604e5f8-da29-4197-b6fb-60a1cfecfba8"
          },
          "apiture:merge": {
            "href": "/users/mergedUsers"
          }
        },
        "username": "Johnny1733",
        "firstName": "John",
        "middleName": "Daniel",
        "lastName": "Smith",
        "preferredName": "John",
        "identification": [
          {
            "value": "111-11-1111",
            "type": "taxId"
          }
        ],
        "customerId": "00047294723672",
        "emailAddresses": [
          {
            "_id": "pe0",
            "type": "personal",
            "value": "johnny1733@example.com"
          },
          {
            "_id": "we0",
            "type": "work",
            "value": "support@apiture.com"
          }
        ],
        "phones": [
          {
            "_id": "hp0",
            "type": "home",
            "number": "(555) 555-5555"
          },
          {
            "_id": "mp0",
            "type": "mobile",
            "number": "(999) 555-5555"
          }
        ],
        "birthdate": "1974-10-27",
        "citizenship": [
          {
            "countryCode": "US",
            "state": "citizen"
          }
        ],
        "occupation": "Software Engineer",
        "addresses": [
          {
            "type": "home",
            "addressLine1": "555 N Front Street",
            "addressLine2": "Suite 5555",
            "city": "Wilmington",
            "regionCode": "NC",
            "postalCode": "28401-5405",
            "countryCode": "US"
          },
          {
            "type": "home",
            "addressLine1": "123 S 3rd Street",
            "addressLine2": "Apt 42",
            "city": "Wilmington",
            "regionCode": "NC",
            "postalCode": "28411-5405",
            "countryCode": "US"
          }
        ],
        "lastContactedAt": "2018-07-29T11:13:54Z",
        "lastLoggedInAt": "2017-12-29T15:19:41Z",
        "state": "active",
        "createdAt": "2018-03-09T20:14:32Z"
      },
      {
        "_id": "d1fabf13-31d1-4351-89ad-877ac4d1220a",
        "_profile": "https://api.apiture.com/schemas/users/user/v1.0.0/profile.json",
        "_links": {
          "self": {
            "href": "/users/users/d1fabf13-31d1-4351-89ad-877ac4d1220a"
          },
          "apiture:deactivate": {
            "href": "/users/inactiveUsers?user=d1fabf13-31d1-4351-89ad-877ac4d1220a"
          },
          "apiture:lock": {
            "href": "/users/lockedUsers?user=d1fabf13-31d1-4351-89ad-877ac4d1220a"
          },
          "apiture:freeze": {
            "href": "/users/frozenUsers?user=d1fabf13-31d1-4351-89ad-877ac4d1220a"
          },
          "apiture:remove": {
            "href": "/users/removedUsers?user=d1fabf13-31d1-4351-89ad-877ac4d1220a"
          },
          "apiture:merge": {
            "href": "/users/mergedUsers"
          }
        },
        "username": "LAS15",
        "firstName": "Laura",
        "middleName": "Eileen",
        "lastName": "Smith",
        "preferredName": "Laura",
        "identification": [
          {
            "value": "111-11-1111",
            "type": "taxId"
          }
        ],
        "emailAddresses": [
          {
            "_id": "pe0",
            "type": "personal",
            "value": "johnny1733@example.com"
          },
          {
            "_id": "we0",
            "type": "work",
            "value": "support@apiture.com"
          }
        ],
        "phones": [
          {
            "_id": "hp0",
            "type": "home",
            "number": "(555) 555-5555"
          },
          {
            "_id": "mp0",
            "type": "mobile",
            "number": "(999) 555-5555"
          }
        ],
        "birthdate": "1974-10-27",
        "citizenship": [
          {
            "countryCode": "US",
            "state": "citizen"
          }
        ],
        "occupation": "Software Engineer",
        "addresses": [
          {
            "type": "home",
            "addressLine1": "555 N Front Street",
            "addressLine2": "Suite 5555",
            "city": "Wilmington",
            "regionCode": "NC",
            "postalCode": "28401-5405",
            "countryCode": "US"
          },
          {
            "type": "home",
            "addressLine1": "123 S 3rd Street",
            "addressLine2": "Apt 42",
            "city": "Wilmington",
            "regionCode": "NC",
            "postalCode": "28411-5405",
            "countryCode": "US"
          }
        ],
        "lastContactedAt": "2018-07-29T11:13:54Z",
        "lastLoggedInAt": "2017-12-29T15:19:41Z",
        "state": "active",
        "createdAt": "2018-07-29T11:13:54Z"
      }
    ]
  }
}

Responses

StatusDescription
200 OK
OK
Schema: users
400 Bad Request
Bad Request. The request body or one or more of the query parameters was not well formed. The _error field in the response will contain details about the request error.
Schema: errorResponse
422 Unprocessable Entity
Unprocessable Entity. One or more of the query parameters was well formed but otherwise invalid. The _error field in the response will contain details about the request error.
Schema: errorResponse

createUser

Code samples

# You can also use wget
curl -X POST /users/users \
  -H 'Content-Type: application/hal+json' \
  -H 'Accept: application/hal+json' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

POST /users/users HTTP/1.1

Content-Type: application/hal+json
Accept: application/hal+json

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

};

$.ajax({
  url: '/users/users',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');
const inputBody = '{
  "_links": {
    "property1": {
      "href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
      "title": "Applicant"
    },
    "property2": {
      "href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
      "title": "Applicant"
    }
  },
  "_embedded": {},
  "_profile": "http://example.com",
  "_error": {
    "_id": "2eae46e1-575c-4d69-8a8f-0a7b0115a4b3",
    "message": "The value for deposit must be greater than 0.",
    "statusCode": 422,
    "type": "positiveNumberRequired",
    "attributes": {
      "value": -125.5
    },
    "remediation": "Provide a value which is greater than 0",
    "occurredAt": "2018-01-25T05:50:52.375Z",
    "_links": {
      "describedby": {
        "href": "https://developer.apiture.com/errors/positiveNumberRequired"
      }
    },
    "_embedded": {
      "errors": []
    }
  },
  "firstName": "string",
  "middleName": "string",
  "lastName": "string",
  "phones": [
    {
      "_id": "hp1",
      "type": "home",
      "number": "555-555-5555"
    }
  ],
  "prefix": "string",
  "suffix": "string",
  "preferredName": "string",
  "identification": [
    {
      "type": "taxId",
      "value": "111-11-1111",
      "expiration": {}
    }
  ],
  "birthdate": "2019-10-29",
  "citizenship": [
    {
      "countryCode": "US",
      "state": "citizen"
    }
  ],
  "occupation": "unknown",
  "otherOccupation": "string",
  "username": "string",
  "state": "active"
}';
const headers = {
  'Content-Type':'application/hal+json',
  'Accept':'application/hal+json',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

fetch('/users/users',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

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

result = RestClient.post '/users/users',
  params: {
  }, headers: headers

p JSON.parse(result)

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

r = requests.post('/users/users', params={

}, headers = headers)

print r.json()

URL obj = new URL("/users/users");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/hal+json"},
        "Accept": []string{"application/hal+json"},
        "API-Key": []string{"API_KEY"},
        "Authorization": []string{"Bearer {access-token}"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/users/users", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

Create a new user

POST /users

Body parameter

{
  "_links": {
    "property1": {
      "href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
      "title": "Applicant"
    },
    "property2": {
      "href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
      "title": "Applicant"
    }
  },
  "_embedded": {},
  "_profile": "http://example.com",
  "_error": {
    "_id": "2eae46e1-575c-4d69-8a8f-0a7b0115a4b3",
    "message": "The value for deposit must be greater than 0.",
    "statusCode": 422,
    "type": "positiveNumberRequired",
    "attributes": {
      "value": -125.5
    },
    "remediation": "Provide a value which is greater than 0",
    "occurredAt": "2018-01-25T05:50:52.375Z",
    "_links": {
      "describedby": {
        "href": "https://developer.apiture.com/errors/positiveNumberRequired"
      }
    },
    "_embedded": {
      "errors": []
    }
  },
  "firstName": "string",
  "middleName": "string",
  "lastName": "string",
  "phones": [
    {
      "_id": "hp1",
      "type": "home",
      "number": "555-555-5555"
    }
  ],
  "prefix": "string",
  "suffix": "string",
  "preferredName": "string",
  "identification": [
    {
      "type": "taxId",
      "value": "111-11-1111",
      "expiration": {}
    }
  ],
  "birthdate": "2019-10-29",
  "citizenship": [
    {
      "countryCode": "US",
      "state": "citizen"
    }
  ],
  "occupation": "unknown",
  "otherOccupation": "string",
  "username": "string",
  "state": "active"
}

Parameters

Parameter Description
body
(body)
createUser (required)
The data necessary to create a new user.

Example responses

201 Response

{
  "_id": "9604e5f8-da29-4197-b6fb-60a1cfecfba8",
  "_profile": "https://api.apiture.com/schemas/users/user/v1.0.0/profile.json",
  "username": "Johnny1733",
  "firstName": "John",
  "middleName": "Daniel",
  "lastName": "Smith",
  "preferredName": "John",
  "identification": [
    {
      "value": "111-11-1111",
      "type": "taxId",
      "emailAddresses": [
        {
          "_id": "pe0",
          "type": "personal",
          "value": "johnny1733@example.com"
        },
        {
          "_id": "we0",
          "type": "work",
          "value": "support@apiture.com"
        }
      ]
    }
  ],
  "customerId": "00047294723672",
  "phones": [
    {
      "_id": "hp0",
      "type": "home",
      "number": "(555) 555-5555"
    },
    {
      "_id": "mp0",
      "type": "mobile",
      "number": "(999) 555-5555"
    }
  ],
  "birthdate": "1974-10-27",
  "citizenship": [
    {
      "countryCode": "US",
      "state": "citizen"
    }
  ],
  "occupation": "Software Engineer",
  "addresses": [
    {
      "_id": "ha0",
      "type": "home",
      "addressLine1": "555 N Front Street",
      "addressLine2": "Suite 5555",
      "city": "Wilmington",
      "regionCode": "NC",
      "postalCode": "28401-5405",
      "countryCode": "US"
    },
    {
      "_id": "ha1",
      "type": "home",
      "addressLine1": "123 S 3rd Street",
      "addressLine2": "Apt 42",
      "city": "Wilmington",
      "regionCode": "NC",
      "postalCode": "28411-5405",
      "countryCode": "Use"
    }
  ],
  "state": "active",
  "attributes": {},
  "_links": {
    "self": {
      "href": "/users/users/9604e5f8-da29-4197-b6fb-60a1cfecfba8"
    },
    "apiture:deactivate": {
      "href": "/users/inactiveUsers?user=9604e5f8-da29-4197-b6fb-60a1cfecfba8"
    },
    "apiture:lock": {
      "href": "/users/lockedUsers?user=9604e5f8-da29-4197-b6fb-60a1cfecfba8"
    },
    "apiture:freeze": {
      "href": "/users/frozenUsers?user=9604e5f8-da29-4197-b6fb-60a1cfecfba8"
    },
    "apiture:remove": {
      "href": "/users/removedUsers?user=9604e5f8-da29-4197-b6fb-60a1cfecfba8"
    }
  },
  "createdAt": "2018-03-09T20:14:32Z",
  "lastLoggedInAt": "2019-07-09T10:24:00Z",
  "lastContactedAt": "2019-07-16T06:00:00Z"
}

Responses

StatusDescription
201 Created
Created
Schema: user
202 Accepted
Accepted
Schema: user

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
201 ETag string
The ETag response header specifies an entity tag which may be provided in an If-Match request header for PUT or PATCH operations which update the resource.
202 Location string uri
The URI of the new resource. If the URI begins with / it is relative to the API root context. Else, it is a full URI starting with schema://host
202 ETag string
The ETag response header specifies an entity tag which may be provided in an If-Match request header for PUT or PATCH operations which update the resource.

getUser

Code samples

# You can also use wget
curl -X GET /users/users/{userId} \
  -H 'Accept: application/hal+json' \
  -H 'If-None-Match: string' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

GET /users/users/{userId} HTTP/1.1

Accept: application/hal+json
If-None-Match: string

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

};

$.ajax({
  url: '/users/users/{userId}',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/hal+json',
  'If-None-Match':'string',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

fetch('/users/users/{userId}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/hal+json',
  'If-None-Match' => 'string',
  'API-Key' => 'API_KEY',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get '/users/users/{userId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/hal+json',
  'If-None-Match': 'string',
  'API-Key': 'API_KEY',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('/users/users/{userId}', params={

}, headers = headers)

print r.json()

URL obj = new URL("/users/users/{userId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/hal+json"},
        "If-None-Match": []string{"string"},
        "API-Key": []string{"API_KEY"},
        "Authorization": []string{"Bearer {access-token}"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/users/users/{userId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

Fetch a representation of this user

GET /users/{userId}

Return a HAL representation of this user resource.

This representation will contain links related to the current user:

Parameters

Parameter Description
userId
(path)
string (required)
The unique identifier of the user. This is an opaque string.
If-None-Match
(header)
string
The entity tag that was returned in the ETag response. If the resource's current entity tag matches, the GET will return 304 (Not Modified) and no response body, else the resource representation will be returned.

Example responses

200 Response

{
  "_id": "9604e5f8-da29-4197-b6fb-60a1cfecfba8",
  "_profile": "https://api.apiture.com/schemas/users/user/v1.0.0/profile.json",
  "username": "Johnny1733",
  "firstName": "John",
  "middleName": "Daniel",
  "lastName": "Smith",
  "preferredName": "John",
  "identification": [
    {
      "value": "111-11-1111",
      "type": "taxId",
      "emailAddresses": [
        {
          "_id": "pe0",
          "type": "personal",
          "value": "johnny1733@example.com"
        },
        {
          "_id": "we0",
          "type": "work",
          "value": "support@apiture.com"
        }
      ]
    }
  ],
  "customerId": "00047294723672",
  "phones": [
    {
      "_id": "hp0",
      "type": "home",
      "number": "(555) 555-5555"
    },
    {
      "_id": "mp0",
      "type": "mobile",
      "number": "(999) 555-5555"
    }
  ],
  "birthdate": "1974-10-27",
  "citizenship": [
    {
      "countryCode": "US",
      "state": "citizen"
    }
  ],
  "occupation": "Software Engineer",
  "addresses": [
    {
      "_id": "ha0",
      "type": "home",
      "addressLine1": "555 N Front Street",
      "addressLine2": "Suite 5555",
      "city": "Wilmington",
      "regionCode": "NC",
      "postalCode": "28401-5405",
      "countryCode": "US"
    },
    {
      "_id": "ha1",
      "type": "home",
      "addressLine1": "123 S 3rd Street",
      "addressLine2": "Apt 42",
      "city": "Wilmington",
      "regionCode": "NC",
      "postalCode": "28411-5405",
      "countryCode": "Use"
    }
  ],
  "state": "active",
  "attributes": {},
  "_links": {
    "self": {
      "href": "/users/users/9604e5f8-da29-4197-b6fb-60a1cfecfba8"
    },
    "apiture:deactivate": {
      "href": "/users/inactiveUsers?user=9604e5f8-da29-4197-b6fb-60a1cfecfba8"
    },
    "apiture:lock": {
      "href": "/users/lockedUsers?user=9604e5f8-da29-4197-b6fb-60a1cfecfba8"
    },
    "apiture:freeze": {
      "href": "/users/frozenUsers?user=9604e5f8-da29-4197-b6fb-60a1cfecfba8"
    },
    "apiture:remove": {
      "href": "/users/removedUsers?user=9604e5f8-da29-4197-b6fb-60a1cfecfba8"
    }
  },
  "createdAt": "2018-03-09T20:14:32Z",
  "lastLoggedInAt": "2019-07-09T10:24:00Z",
  "lastContactedAt": "2019-07-16T06:00:00Z"
}

Responses

StatusDescription
200 OK
OK
Schema: user
302 Found
Redirect. The specified user has a state of merged and will be redirected to the master user resource.
Schema: errorResponse
404 Not Found
Not Found. There is no such user resource at the specified {userId} The _error field in the response will contain details about the request error.
Schema: errorResponse

Response Headers

StatusDescription
200 ETag string
The ETag response header specifies an entity tag which may be provided in an If-Match request header for PUT or PATCH operations which update this user resource.

updateUser

Code samples

# You can also use wget
curl -X PUT /users/users/{userId} \
  -H 'Content-Type: application/hal+json' \
  -H 'Accept: application/hal+json' \
  -H 'If-Match: string' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

PUT /users/users/{userId} HTTP/1.1

Content-Type: application/hal+json
Accept: application/hal+json
If-Match: string

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

};

$.ajax({
  url: '/users/users/{userId}',
  method: 'put',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');
const inputBody = '{
  "_id": "9604e5f8-da29-4197-b6fb-60a1cfecfba8",
  "_profile": "https://api.apiture.com/schemas/users/user/v1.0.0/profile.json",
  "username": "Johnny1733",
  "firstName": "John",
  "middleName": "Daniel",
  "lastName": "Smith",
  "preferredName": "John",
  "identification": [
    {
      "value": "111-11-1111",
      "type": "taxId",
      "emailAddresses": [
        {
          "_id": "pe0",
          "type": "personal",
          "value": "johnny1733@example.com"
        },
        {
          "_id": "we0",
          "type": "work",
          "value": "support@apiture.com"
        }
      ]
    }
  ],
  "customerId": "00047294723672",
  "phones": [
    {
      "_id": "hp0",
      "type": "home",
      "number": "(555) 555-5555"
    },
    {
      "_id": "mp0",
      "type": "mobile",
      "number": "(999) 555-5555"
    }
  ],
  "birthdate": "1974-10-27",
  "citizenship": [
    {
      "countryCode": "US",
      "state": "citizen"
    }
  ],
  "occupation": "Software Engineer",
  "addresses": [
    {
      "_id": "ha0",
      "type": "home",
      "addressLine1": "555 N Front Street",
      "addressLine2": "Suite 5555",
      "city": "Wilmington",
      "regionCode": "NC",
      "postalCode": "28401-5405",
      "countryCode": "US"
    },
    {
      "_id": "ha1",
      "type": "home",
      "addressLine1": "123 S 3rd Street",
      "addressLine2": "Apt 42",
      "city": "Wilmington",
      "regionCode": "NC",
      "postalCode": "28411-5405",
      "countryCode": "Use"
    }
  ],
  "state": "active",
  "attributes": {},
  "_links": {
    "self": {
      "href": "/users/users/9604e5f8-da29-4197-b6fb-60a1cfecfba8"
    },
    "apiture:deactivate": {
      "href": "/users/inactiveUsers?user=9604e5f8-da29-4197-b6fb-60a1cfecfba8"
    },
    "apiture:lock": {
      "href": "/users/lockedUsers?user=9604e5f8-da29-4197-b6fb-60a1cfecfba8"
    },
    "apiture:freeze": {
      "href": "/users/frozenUsers?user=9604e5f8-da29-4197-b6fb-60a1cfecfba8"
    },
    "apiture:remove": {
      "href": "/users/removedUsers?user=9604e5f8-da29-4197-b6fb-60a1cfecfba8"
    }
  },
  "createdAt": "2018-03-09T20:14:32Z",
  "lastLoggedInAt": "2019-07-09T10:24:00Z",
  "lastContactedAt": "2019-07-16T06:00:00Z"
}';
const headers = {
  'Content-Type':'application/hal+json',
  'Accept':'application/hal+json',
  'If-Match':'string',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

fetch('/users/users/{userId}',
{
  method: 'PUT',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/hal+json',
  'Accept' => 'application/hal+json',
  'If-Match' => 'string',
  'API-Key' => 'API_KEY',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.put '/users/users/{userId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/hal+json',
  'Accept': 'application/hal+json',
  'If-Match': 'string',
  'API-Key': 'API_KEY',
  'Authorization': 'Bearer {access-token}'
}

r = requests.put('/users/users/{userId}', params={

}, headers = headers)

print r.json()

URL obj = new URL("/users/users/{userId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PUT");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/hal+json"},
        "Accept": []string{"application/hal+json"},
        "If-Match": []string{"string"},
        "API-Key": []string{"API_KEY"},
        "Authorization": []string{"Bearer {access-token}"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PUT", "/users/users/{userId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

Update this user

PUT /users/{userId}

Perform a complete replacement of this user.

Body parameter

{
  "_id": "9604e5f8-da29-4197-b6fb-60a1cfecfba8",
  "_profile": "https://api.apiture.com/schemas/users/user/v1.0.0/profile.json",
  "username": "Johnny1733",
  "firstName": "John",
  "middleName": "Daniel",
  "lastName": "Smith",
  "preferredName": "John",
  "identification": [
    {
      "value": "111-11-1111",
      "type": "taxId",
      "emailAddresses": [
        {
          "_id": "pe0",
          "type": "personal",
          "value": "johnny1733@example.com"
        },
        {
          "_id": "we0",
          "type": "work",
          "value": "support@apiture.com"
        }
      ]
    }
  ],
  "customerId": "00047294723672",
  "phones": [
    {
      "_id": "hp0",
      "type": "home",
      "number": "(555) 555-5555"
    },
    {
      "_id": "mp0",
      "type": "mobile",
      "number": "(999) 555-5555"
    }
  ],
  "birthdate": "1974-10-27",
  "citizenship": [
    {
      "countryCode": "US",
      "state": "citizen"
    }
  ],
  "occupation": "Software Engineer",
  "addresses": [
    {
      "_id": "ha0",
      "type": "home",
      "addressLine1": "555 N Front Street",
      "addressLine2": "Suite 5555",
      "city": "Wilmington",
      "regionCode": "NC",
      "postalCode": "28401-5405",
      "countryCode": "US"
    },
    {
      "_id": "ha1",
      "type": "home",
      "addressLine1": "123 S 3rd Street",
      "addressLine2": "Apt 42",
      "city": "Wilmington",
      "regionCode": "NC",
      "postalCode": "28411-5405",
      "countryCode": "Use"
    }
  ],
  "state": "active",
  "attributes": {},
  "_links": {
    "self": {
      "href": "/users/users/9604e5f8-da29-4197-b6fb-60a1cfecfba8"
    },
    "apiture:deactivate": {
      "href": "/users/inactiveUsers?user=9604e5f8-da29-4197-b6fb-60a1cfecfba8"
    },
    "apiture:lock": {
      "href": "/users/lockedUsers?user=9604e5f8-da29-4197-b6fb-60a1cfecfba8"
    },
    "apiture:freeze": {
      "href": "/users/frozenUsers?user=9604e5f8-da29-4197-b6fb-60a1cfecfba8"
    },
    "apiture:remove": {
      "href": "/users/removedUsers?user=9604e5f8-da29-4197-b6fb-60a1cfecfba8"
    }
  },
  "createdAt": "2018-03-09T20:14:32Z",
  "lastLoggedInAt": "2019-07-09T10:24:00Z",
  "lastContactedAt": "2019-07-16T06:00:00Z"
}

Parameters

Parameter Description
userId
(path)
string (required)
The unique identifier of the user. This is an opaque string.
If-Match
(header)
string
The entity tag that was returned in the ETag response. If used, this must match the current entity tag of the resource.
body
(body)
user (required)

Example responses

200 Response

{
  "_id": "9604e5f8-da29-4197-b6fb-60a1cfecfba8",
  "_profile": "https://api.apiture.com/schemas/users/user/v1.0.0/profile.json",
  "username": "Johnny1733",
  "firstName": "John",
  "middleName": "Daniel",
  "lastName": "Smith",
  "preferredName": "John",
  "identification": [
    {
      "value": "111-11-1111",
      "type": "taxId",
      "emailAddresses": [
        {
          "_id": "pe0",
          "type": "personal",
          "value": "johnny1733@example.com"
        },
        {
          "_id": "we0",
          "type": "work",
          "value": "support@apiture.com"
        }
      ]
    }
  ],
  "customerId": "00047294723672",
  "phones": [
    {
      "_id": "hp0",
      "type": "home",
      "number": "(555) 555-5555"
    },
    {
      "_id": "mp0",
      "type": "mobile",
      "number": "(999) 555-5555"
    }
  ],
  "birthdate": "1974-10-27",
  "citizenship": [
    {
      "countryCode": "US",
      "state": "citizen"
    }
  ],
  "occupation": "Software Engineer",
  "addresses": [
    {
      "_id": "ha0",
      "type": "home",
      "addressLine1": "555 N Front Street",
      "addressLine2": "Suite 5555",
      "city": "Wilmington",
      "regionCode": "NC",
      "postalCode": "28401-5405",
      "countryCode": "US"
    },
    {
      "_id": "ha1",
      "type": "home",
      "addressLine1": "123 S 3rd Street",
      "addressLine2": "Apt 42",
      "city": "Wilmington",
      "regionCode": "NC",
      "postalCode": "28411-5405",
      "countryCode": "Use"
    }
  ],
  "state": "active",
  "attributes": {},
  "_links": {
    "self": {
      "href": "/users/users/9604e5f8-da29-4197-b6fb-60a1cfecfba8"
    },
    "apiture:deactivate": {
      "href": "/users/inactiveUsers?user=9604e5f8-da29-4197-b6fb-60a1cfecfba8"
    },
    "apiture:lock": {
      "href": "/users/lockedUsers?user=9604e5f8-da29-4197-b6fb-60a1cfecfba8"
    },
    "apiture:freeze": {
      "href": "/users/frozenUsers?user=9604e5f8-da29-4197-b6fb-60a1cfecfba8"
    },
    "apiture:remove": {
      "href": "/users/removedUsers?user=9604e5f8-da29-4197-b6fb-60a1cfecfba8"
    }
  },
  "createdAt": "2018-03-09T20:14:32Z",
  "lastLoggedInAt": "2019-07-09T10:24:00Z",
  "lastContactedAt": "2019-07-16T06:00:00Z"
}

Responses

StatusDescription
200 OK
OK
Schema: user
400 Bad Request
Bad Request. The request body or one or more of the query parameters was not well formed. The _error field in the response will contain details about the request error.
Schema: errorResponse
404 Not Found
Not Found. There is no such user resource at the specified {userId} The _error field in the response will contain details about the request error.
Schema: errorResponse
409 Conflict

Conflict. There is a conflict between the request and the current state of the resource. It may be one of the following:

  • The state of a removed user may not be changed.
  • The state of a merged user may not be changed.
  • The state cannot be updated via a PUT or POST request. Please use the appropriate endpoint to change the state.
  • Some key fields of the user record may not be changed or removed, such as their government id
Schema: errorResponse
412 Precondition Failed
Precondition Failed. The supplied If-Match header value does not match the most recent ETag response header value. The resource has changed in the interim.
Schema: errorResponse
422 Unprocessable Entity
Unprocessable Entity. One or more of the query parameters was well formed but otherwise invalid. The _error field in the response will contain details about the request error.
Schema: errorResponse

Response Headers

StatusDescription
200 ETag string
The ETag response header specifies an entity tag which may be provided in an If-Match request header for PUT or PATCH operations which update this user resource.

patchUser

Code samples

# You can also use wget
curl -X PATCH /users/users/{userId} \
  -H 'Content-Type: application/hal+json' \
  -H 'Accept: application/hal+json' \
  -H 'If-Match: string' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

PATCH /users/users/{userId} HTTP/1.1

Content-Type: application/hal+json
Accept: application/hal+json
If-Match: string

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

};

$.ajax({
  url: '/users/users/{userId}',
  method: 'patch',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');
const inputBody = '{
  "_id": "9604e5f8-da29-4197-b6fb-60a1cfecfba8",
  "_profile": "https://api.apiture.com/schemas/users/user/v1.0.0/profile.json",
  "username": "Johnny1733",
  "firstName": "John",
  "middleName": "Daniel",
  "lastName": "Smith",
  "preferredName": "John",
  "identification": [
    {
      "value": "111-11-1111",
      "type": "taxId",
      "emailAddresses": [
        {
          "_id": "pe0",
          "type": "personal",
          "value": "johnny1733@example.com"
        },
        {
          "_id": "we0",
          "type": "work",
          "value": "support@apiture.com"
        }
      ]
    }
  ],
  "customerId": "00047294723672",
  "phones": [
    {
      "_id": "hp0",
      "type": "home",
      "number": "(555) 555-5555"
    },
    {
      "_id": "mp0",
      "type": "mobile",
      "number": "(999) 555-5555"
    }
  ],
  "birthdate": "1974-10-27",
  "citizenship": [
    {
      "countryCode": "US",
      "state": "citizen"
    }
  ],
  "occupation": "Software Engineer",
  "addresses": [
    {
      "_id": "ha0",
      "type": "home",
      "addressLine1": "555 N Front Street",
      "addressLine2": "Suite 5555",
      "city": "Wilmington",
      "regionCode": "NC",
      "postalCode": "28401-5405",
      "countryCode": "US"
    },
    {
      "_id": "ha1",
      "type": "home",
      "addressLine1": "123 S 3rd Street",
      "addressLine2": "Apt 42",
      "city": "Wilmington",
      "regionCode": "NC",
      "postalCode": "28411-5405",
      "countryCode": "Use"
    }
  ],
  "state": "active",
  "attributes": {},
  "_links": {
    "self": {
      "href": "/users/users/9604e5f8-da29-4197-b6fb-60a1cfecfba8"
    },
    "apiture:deactivate": {
      "href": "/users/inactiveUsers?user=9604e5f8-da29-4197-b6fb-60a1cfecfba8"
    },
    "apiture:lock": {
      "href": "/users/lockedUsers?user=9604e5f8-da29-4197-b6fb-60a1cfecfba8"
    },
    "apiture:freeze": {
      "href": "/users/frozenUsers?user=9604e5f8-da29-4197-b6fb-60a1cfecfba8"
    },
    "apiture:remove": {
      "href": "/users/removedUsers?user=9604e5f8-da29-4197-b6fb-60a1cfecfba8"
    }
  },
  "createdAt": "2018-03-09T20:14:32Z",
  "lastLoggedInAt": "2019-07-09T10:24:00Z",
  "lastContactedAt": "2019-07-16T06:00:00Z"
}';
const headers = {
  'Content-Type':'application/hal+json',
  'Accept':'application/hal+json',
  'If-Match':'string',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

fetch('/users/users/{userId}',
{
  method: 'PATCH',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/hal+json',
  'Accept' => 'application/hal+json',
  'If-Match' => 'string',
  'API-Key' => 'API_KEY',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.patch '/users/users/{userId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/hal+json',
  'Accept': 'application/hal+json',
  'If-Match': 'string',
  'API-Key': 'API_KEY',
  'Authorization': 'Bearer {access-token}'
}

r = requests.patch('/users/users/{userId}', params={

}, headers = headers)

print r.json()

URL obj = new URL("/users/users/{userId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PATCH");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/hal+json"},
        "Accept": []string{"application/hal+json"},
        "If-Match": []string{"string"},
        "API-Key": []string{"API_KEY"},
        "Authorization": []string{"Bearer {access-token}"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PATCH", "/users/users/{userId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

Update this user

PATCH /users/{userId}

Perform a partial update of this user. Fields which are omitted are not updated.

Body parameter

{
  "_id": "9604e5f8-da29-4197-b6fb-60a1cfecfba8",
  "_profile": "https://api.apiture.com/schemas/users/user/v1.0.0/profile.json",
  "username": "Johnny1733",
  "firstName": "John",
  "middleName": "Daniel",
  "lastName": "Smith",
  "preferredName": "John",
  "identification": [
    {
      "value": "111-11-1111",
      "type": "taxId",
      "emailAddresses": [
        {
          "_id": "pe0",
          "type": "personal",
          "value": "johnny1733@example.com"
        },
        {
          "_id": "we0",
          "type": "work",
          "value": "support@apiture.com"
        }
      ]
    }
  ],
  "customerId": "00047294723672",
  "phones": [
    {
      "_id": "hp0",
      "type": "home",
      "number": "(555) 555-5555"
    },
    {
      "_id": "mp0",
      "type": "mobile",
      "number": "(999) 555-5555"
    }
  ],
  "birthdate": "1974-10-27",
  "citizenship": [
    {
      "countryCode": "US",
      "state": "citizen"
    }
  ],
  "occupation": "Software Engineer",
  "addresses": [
    {
      "_id": "ha0",
      "type": "home",
      "addressLine1": "555 N Front Street",
      "addressLine2": "Suite 5555",
      "city": "Wilmington",
      "regionCode": "NC",
      "postalCode": "28401-5405",
      "countryCode": "US"
    },
    {
      "_id": "ha1",
      "type": "home",
      "addressLine1": "123 S 3rd Street",
      "addressLine2": "Apt 42",
      "city": "Wilmington",
      "regionCode": "NC",
      "postalCode": "28411-5405",
      "countryCode": "Use"
    }
  ],
  "state": "active",
  "attributes": {},
  "_links": {
    "self": {
      "href": "/users/users/9604e5f8-da29-4197-b6fb-60a1cfecfba8"
    },
    "apiture:deactivate": {
      "href": "/users/inactiveUsers?user=9604e5f8-da29-4197-b6fb-60a1cfecfba8"
    },
    "apiture:lock": {
      "href": "/users/lockedUsers?user=9604e5f8-da29-4197-b6fb-60a1cfecfba8"
    },
    "apiture:freeze": {
      "href": "/users/frozenUsers?user=9604e5f8-da29-4197-b6fb-60a1cfecfba8"
    },
    "apiture:remove": {
      "href": "/users/removedUsers?user=9604e5f8-da29-4197-b6fb-60a1cfecfba8"
    }
  },
  "createdAt": "2018-03-09T20:14:32Z",
  "lastLoggedInAt": "2019-07-09T10:24:00Z",
  "lastContactedAt": "2019-07-16T06:00:00Z"
}

Parameters

Parameter Description
userId
(path)
string (required)
The unique identifier of the user. This is an opaque string.
If-Match
(header)
string
The entity tag that was returned in the ETag response. If used, this must match the current entity tag of the resource.
body
(body)
user (required)

Example responses

200 Response

{
  "_id": "9604e5f8-da29-4197-b6fb-60a1cfecfba8",
  "_profile": "https://api.apiture.com/schemas/users/user/v1.0.0/profile.json",
  "username": "Johnny1733",
  "firstName": "John",
  "middleName": "Daniel",
  "lastName": "Smith",
  "preferredName": "John",
  "identification": [
    {
      "value": "111-11-1111",
      "type": "taxId",
      "emailAddresses": [
        {
          "_id": "pe0",
          "type": "personal",
          "value": "johnny1733@example.com"
        },
        {
          "_id": "we0",
          "type": "work",
          "value": "support@apiture.com"
        }
      ]
    }
  ],
  "customerId": "00047294723672",
  "phones": [
    {
      "_id": "hp0",
      "type": "home",
      "number": "(555) 555-5555"
    },
    {
      "_id": "mp0",
      "type": "mobile",
      "number": "(999) 555-5555"
    }
  ],
  "birthdate": "1974-10-27",
  "citizenship": [
    {
      "countryCode": "US",
      "state": "citizen"
    }
  ],
  "occupation": "Software Engineer",
  "addresses": [
    {
      "_id": "ha0",
      "type": "home",
      "addressLine1": "555 N Front Street",
      "addressLine2": "Suite 5555",
      "city": "Wilmington",
      "regionCode": "NC",
      "postalCode": "28401-5405",
      "countryCode": "US"
    },
    {
      "_id": "ha1",
      "type": "home",
      "addressLine1": "123 S 3rd Street",
      "addressLine2": "Apt 42",
      "city": "Wilmington",
      "regionCode": "NC",
      "postalCode": "28411-5405",
      "countryCode": "Use"
    }
  ],
  "state": "active",
  "attributes": {},
  "_links": {
    "self": {
      "href": "/users/users/9604e5f8-da29-4197-b6fb-60a1cfecfba8"
    },
    "apiture:deactivate": {
      "href": "/users/inactiveUsers?user=9604e5f8-da29-4197-b6fb-60a1cfecfba8"
    },
    "apiture:lock": {
      "href": "/users/lockedUsers?user=9604e5f8-da29-4197-b6fb-60a1cfecfba8"
    },
    "apiture:freeze": {
      "href": "/users/frozenUsers?user=9604e5f8-da29-4197-b6fb-60a1cfecfba8"
    },
    "apiture:remove": {
      "href": "/users/removedUsers?user=9604e5f8-da29-4197-b6fb-60a1cfecfba8"
    }
  },
  "createdAt": "2018-03-09T20:14:32Z",
  "lastLoggedInAt": "2019-07-09T10:24:00Z",
  "lastContactedAt": "2019-07-16T06:00:00Z"
}

Responses

StatusDescription
200 OK
OK
Schema: user
400 Bad Request
Bad Request. The request body or one or more of the query parameters was not well formed. The _error field in the response will contain details about the request error.
Schema: errorResponse
404 Not Found
Not Found. There is no such user resource at the specified {userId} The _error field in the response will contain details about the request error.
Schema: errorResponse
409 Conflict

Conflict. There is a conflict between the request and the current state of the resource. It may be one of the following:

  • The state of a removed user may not be changed.
  • The state of a merged user may not be changed.
  • The state cannot be updated via a PUT or POST request. Please use the appropriate endpoint to change the state.
  • Some key fields of the user record may not be changed or removed, such as their government id
Schema: errorResponse
412 Precondition Failed
Precondition Failed. The supplied If-Match header value does not match the most recent ETag response header value. The resource has changed in the interim.
Schema: errorResponse
422 Unprocessable Entity
Unprocessable Entity. One or more of the query parameters was well formed but otherwise invalid. The _error field in the response will contain details about the request error.
Schema: errorResponse

Response Headers

StatusDescription
200 ETag string
The ETag response header specifies an entity tag which may be provided in an If-Match request header for PUT or PATCH operations which update this user resource.

getUserConstraints

Code samples

# You can also use wget
curl -X GET /users/users/{userId}/constraints \
  -H 'Accept: application/hal+json' \
  -H 'If-None-Match: string' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

GET /users/users/{userId}/constraints HTTP/1.1

Accept: application/hal+json
If-None-Match: string

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

};

$.ajax({
  url: '/users/users/{userId}/constraints',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/hal+json',
  'If-None-Match':'string',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

fetch('/users/users/{userId}/constraints',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/hal+json',
  'If-None-Match' => 'string',
  'API-Key' => 'API_KEY',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get '/users/users/{userId}/constraints',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/hal+json',
  'If-None-Match': 'string',
  'API-Key': 'API_KEY',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('/users/users/{userId}/constraints', params={

}, headers = headers)

print r.json()

URL obj = new URL("/users/users/{userId}/constraints");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/hal+json"},
        "If-None-Match": []string{"string"},
        "API-Key": []string{"API_KEY"},
        "Authorization": []string{"Bearer {access-token}"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/users/users/{userId}/constraints", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

Fetch a representation of this user's constraints

GET /users/{userId}/constraints

Return a HAL representation of this user's constraints resource. Constraints are limits and other values established for the user, such as single or daily transfer limits.

Parameters

Parameter Description
userId
(path)
string (required)
The unique identifier of the user. This is an opaque string.
If-None-Match
(header)
string
The entity tag that was returned in the ETag response. If the resource's current entity tag matches, the GET will return 304 (Not Modified) and no response body, else the resource representation will be returned.

Example responses

200 Response

{
  "_links": {
    "property1": {
      "href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
      "title": "Applicant"
    },
    "property2": {
      "href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
      "title": "Applicant"
    }
  },
  "_embedded": {},
  "_profile": "http://example.com",
  "_error": {
    "_id": "2eae46e1-575c-4d69-8a8f-0a7b0115a4b3",
    "message": "The value for deposit must be greater than 0.",
    "statusCode": 422,
    "type": "positiveNumberRequired",
    "attributes": {
      "value": -125.5
    },
    "remediation": "Provide a value which is greater than 0",
    "occurredAt": "2018-01-25T05:50:52.375Z",
    "_links": {
      "describedby": {
        "href": "https://developer.apiture.com/errors/positiveNumberRequired"
      }
    },
    "_embedded": {
      "errors": []
    }
  },
  "transfers": {
    "singleCreditLimit": "20000.00",
    "singleDebitLimit": "20000.00",
    "dailyCreditLimit": "500000.00",
    "dailyDebitLimit": "500000.00"
  },
  "checkDeposits": {
    "enabled": true,
    "monthlyTotalAmountLimit": "30000.00",
    "monthlyTotalChecksLimit": 200
  }
}

Responses

StatusDescription
200 OK
OK
Schema: constraints
404 Not Found
Not Found. There is no such user resource at the specified {userId} The _error field in the response will contain details about the request error.
Schema: errorResponse

Response Headers

StatusDescription
200 ETag string
The ETag response header specifies an entity tag which may be provided in an If-Match request header for PUT or PATCH operations which update this user resource.

updateUserConstraints

Code samples

# You can also use wget
curl -X PUT /users/users/{userId}/constraints \
  -H 'Content-Type: application/hal+json' \
  -H 'Accept: application/hal+json' \
  -H 'If-Match: string' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

PUT /users/users/{userId}/constraints HTTP/1.1

Content-Type: application/hal+json
Accept: application/hal+json
If-Match: string

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

};

$.ajax({
  url: '/users/users/{userId}/constraints',
  method: 'put',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');
const inputBody = '{
  "transfers": {
    "singleCreditLimit": "20000.00",
    "singleDebitLimit": "20000.00",
    "dailyCreditLimit": "500000.00",
    "dailyDebitLimit": "500000.00"
  },
  "checkDeposits": {
    "enabled": true,
    "monthlyTotalAmountLimit": "30000.00",
    "monthlyTotalChecksLimit": 200
  }
}';
const headers = {
  'Content-Type':'application/hal+json',
  'Accept':'application/hal+json',
  'If-Match':'string',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

fetch('/users/users/{userId}/constraints',
{
  method: 'PUT',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/hal+json',
  'Accept' => 'application/hal+json',
  'If-Match' => 'string',
  'API-Key' => 'API_KEY',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.put '/users/users/{userId}/constraints',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/hal+json',
  'Accept': 'application/hal+json',
  'If-Match': 'string',
  'API-Key': 'API_KEY',
  'Authorization': 'Bearer {access-token}'
}

r = requests.put('/users/users/{userId}/constraints', params={

}, headers = headers)

print r.json()

URL obj = new URL("/users/users/{userId}/constraints");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PUT");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/hal+json"},
        "Accept": []string{"application/hal+json"},
        "If-Match": []string{"string"},
        "API-Key": []string{"API_KEY"},
        "Authorization": []string{"Bearer {access-token}"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PUT", "/users/users/{userId}/constraints", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

Update this user's constraints

PUT /users/{userId}/constraints

Perform a complete replacement of this user's constraints. This operation is performed by an admin. A user cannot change their own limits.

Body parameter

{
  "transfers": {
    "singleCreditLimit": "20000.00",
    "singleDebitLimit": "20000.00",
    "dailyCreditLimit": "500000.00",
    "dailyDebitLimit": "500000.00"
  },
  "checkDeposits": {
    "enabled": true,
    "monthlyTotalAmountLimit": "30000.00",
    "monthlyTotalChecksLimit": 200
  }
}

Parameters

Parameter Description
userId
(path)
string (required)
The unique identifier of the user. This is an opaque string.
If-Match
(header)
string
The entity tag that was returned in the ETag response. If used, this must match the current entity tag of the resource.
body
(body)
updateConstraints (required)

Example responses

200 Response

{
  "_links": {
    "property1": {
      "href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
      "title": "Applicant"
    },
    "property2": {
      "href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
      "title": "Applicant"
    }
  },
  "_embedded": {},
  "_profile": "http://example.com",
  "_error": {
    "_id": "2eae46e1-575c-4d69-8a8f-0a7b0115a4b3",
    "message": "The value for deposit must be greater than 0.",
    "statusCode": 422,
    "type": "positiveNumberRequired",
    "attributes": {
      "value": -125.5
    },
    "remediation": "Provide a value which is greater than 0",
    "occurredAt": "2018-01-25T05:50:52.375Z",
    "_links": {
      "describedby": {
        "href": "https://developer.apiture.com/errors/positiveNumberRequired"
      }
    },
    "_embedded": {
      "errors": []
    }
  },
  "transfers": {
    "singleCreditLimit": "20000.00",
    "singleDebitLimit": "20000.00",
    "dailyCreditLimit": "500000.00",
    "dailyDebitLimit": "500000.00"
  },
  "checkDeposits": {
    "enabled": true,
    "monthlyTotalAmountLimit": "30000.00",
    "monthlyTotalChecksLimit": 200
  }
}

Responses

StatusDescription
200 OK
OK
Schema: constraints
404 Not Found
Not Found. There is no such user resource at the specified {userId} The _error field in the response will contain details about the request error.
Schema: errorResponse
412 Precondition Failed
Precondition Failed. The supplied If-Match header value does not match the most recent ETag response header value. The resource has changed in the interim.
Schema: errorResponse
422 Unprocessable Entity
Unprocessable Entity. One or more of the query parameters was well formed but otherwise invalid. The _error field in the response will contain details about the request error.
Schema: errorResponse

Response Headers

StatusDescription
200 ETag string
The ETag response header specifies an entity tag which may be provided in an If-Match request header for PUT or PATCH operations which update this user resource.

patchUserConstraints

Code samples

# You can also use wget
curl -X PATCH /users/users/{userId}/constraints \
  -H 'Content-Type: application/hal+json' \
  -H 'Accept: application/hal+json' \
  -H 'If-Match: string' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

PATCH /users/users/{userId}/constraints HTTP/1.1

Content-Type: application/hal+json
Accept: application/hal+json
If-Match: string

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

};

$.ajax({
  url: '/users/users/{userId}/constraints',
  method: 'patch',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');
const inputBody = '{
  "transfers": {
    "singleCreditLimit": "20000.00",
    "singleDebitLimit": "20000.00",
    "dailyCreditLimit": "500000.00",
    "dailyDebitLimit": "500000.00"
  },
  "checkDeposits": {
    "enabled": true,
    "monthlyTotalAmountLimit": "30000.00",
    "monthlyTotalChecksLimit": 200
  }
}';
const headers = {
  'Content-Type':'application/hal+json',
  'Accept':'application/hal+json',
  'If-Match':'string',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

fetch('/users/users/{userId}/constraints',
{
  method: 'PATCH',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/hal+json',
  'Accept' => 'application/hal+json',
  'If-Match' => 'string',
  'API-Key' => 'API_KEY',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.patch '/users/users/{userId}/constraints',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/hal+json',
  'Accept': 'application/hal+json',
  'If-Match': 'string',
  'API-Key': 'API_KEY',
  'Authorization': 'Bearer {access-token}'
}

r = requests.patch('/users/users/{userId}/constraints', params={

}, headers = headers)

print r.json()

URL obj = new URL("/users/users/{userId}/constraints");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PATCH");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/hal+json"},
        "Accept": []string{"application/hal+json"},
        "If-Match": []string{"string"},
        "API-Key": []string{"API_KEY"},
        "Authorization": []string{"Bearer {access-token}"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PATCH", "/users/users/{userId}/constraints", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

Update this user's constraints

PATCH /users/{userId}/constraints

Perform a partial update of this user's constraints, a user should not be able to change their own limits. Fields which are omitted are not updated.

Body parameter

{
  "transfers": {
    "singleCreditLimit": "20000.00",
    "singleDebitLimit": "20000.00",
    "dailyCreditLimit": "500000.00",
    "dailyDebitLimit": "500000.00"
  },
  "checkDeposits": {
    "enabled": true,
    "monthlyTotalAmountLimit": "30000.00",
    "monthlyTotalChecksLimit": 200
  }
}

Parameters

Parameter Description
userId
(path)
string (required)
The unique identifier of the user. This is an opaque string.
If-Match
(header)
string
The entity tag that was returned in the ETag response. If used, this must match the current entity tag of the resource.
body
(body)
updateConstraints (required)

Example responses

200 Response

{
  "_links": {
    "property1": {
      "href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
      "title": "Applicant"
    },
    "property2": {
      "href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
      "title": "Applicant"
    }
  },
  "_embedded": {},
  "_profile": "http://example.com",
  "_error": {
    "_id": "2eae46e1-575c-4d69-8a8f-0a7b0115a4b3",
    "message": "The value for deposit must be greater than 0.",
    "statusCode": 422,
    "type": "positiveNumberRequired",
    "attributes": {
      "value": -125.5
    },
    "remediation": "Provide a value which is greater than 0",
    "occurredAt": "2018-01-25T05:50:52.375Z",
    "_links": {
      "describedby": {
        "href": "https://developer.apiture.com/errors/positiveNumberRequired"
      }
    },
    "_embedded": {
      "errors": []
    }
  },
  "transfers": {
    "singleCreditLimit": "20000.00",
    "singleDebitLimit": "20000.00",
    "dailyCreditLimit": "500000.00",
    "dailyDebitLimit": "500000.00"
  },
  "checkDeposits": {
    "enabled": true,
    "monthlyTotalAmountLimit": "30000.00",
    "monthlyTotalChecksLimit": 200
  }
}

Responses

StatusDescription
200 OK
OK
Schema: constraints
404 Not Found
Not Found. There is no such user resource at the specified {userId} The _error field in the response will contain details about the request error.
Schema: errorResponse
412 Precondition Failed
Precondition Failed. The supplied If-Match header value does not match the most recent ETag response header value. The resource has changed in the interim.
Schema: errorResponse
422 Unprocessable Entity
Unprocessable Entity. One or more of the query parameters was well formed but otherwise invalid. The _error field in the response will contain details about the request error.
Schema: errorResponse

Response Headers

StatusDescription
200 ETag string
The ETag response header specifies an entity tag which may be provided in an If-Match request header for PUT or PATCH operations which update this user resource.

User Actions

Actions on users

removeUser

Code samples

# You can also use wget
curl -X POST /users/removedUsers \
  -H 'Accept: application/hal+json' \
  -H 'If-Match: string' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

POST /users/removedUsers HTTP/1.1

Accept: application/hal+json
If-Match: string

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

};

$.ajax({
  url: '/users/removedUsers',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

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

};

fetch('/users/removedUsers',
{
  method: 'POST',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/hal+json',
  'If-Match' => 'string',
  'API-Key' => 'API_KEY',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post '/users/removedUsers',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/hal+json',
  'If-Match': 'string',
  'API-Key': 'API_KEY',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('/users/removedUsers', params={

}, headers = headers)

print r.json()

URL obj = new URL("/users/removedUsers");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/hal+json"},
        "If-Match": []string{"string"},
        "API-Key": []string{"API_KEY"},
        "Authorization": []string{"Bearer {access-token}"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/users/removedUsers", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

Remove a user

POST /removedUsers

Remove a user from active use.

This operation is invoked from the apiture:remove link on a user resource when that user is eligible to be removed.

This changes the state to removed.

Parameters

Parameter Description
user
(query)
string
The ID or URI of an existing user which is eligible to be removed.
If-Match
(header)
string
The entity tag that was returned in the ETag response. If used, this must match the current entity tag of the resource.

Example responses

200 Response

{
  "_id": "9604e5f8-da29-4197-b6fb-60a1cfecfba8",
  "_profile": "https://api.apiture.com/schemas/users/user/v1.0.0/profile.json",
  "username": "Johnny1733",
  "firstName": "John",
  "middleName": "Daniel",
  "lastName": "Smith",
  "preferredName": "John",
  "identification": [
    {
      "value": "111-11-1111",
      "type": "taxId",
      "emailAddresses": [
        {
          "_id": "pe0",
          "type": "personal",
          "value": "johnny1733@example.com"
        },
        {
          "_id": "we0",
          "type": "work",
          "value": "support@apiture.com"
        }
      ]
    }
  ],
  "customerId": "00047294723672",
  "phones": [
    {
      "_id": "hp0",
      "type": "home",
      "number": "(555) 555-5555"
    },
    {
      "_id": "mp0",
      "type": "mobile",
      "number": "(999) 555-5555"
    }
  ],
  "birthdate": "1974-10-27",
  "citizenship": [
    {
      "countryCode": "US",
      "state": "citizen"
    }
  ],
  "occupation": "Software Engineer",
  "addresses": [
    {
      "_id": "ha0",
      "type": "home",
      "addressLine1": "555 N Front Street",
      "addressLine2": "Suite 5555",
      "city": "Wilmington",
      "regionCode": "NC",
      "postalCode": "28401-5405",
      "countryCode": "US"
    },
    {
      "_id": "ha1",
      "type": "home",
      "addressLine1": "123 S 3rd Street",
      "addressLine2": "Apt 42",
      "city": "Wilmington",
      "regionCode": "NC",
      "postalCode": "28411-5405",
      "countryCode": "Use"
    }
  ],
  "state": "active",
  "attributes": {},
  "_links": {
    "self": {
      "href": "/users/users/9604e5f8-da29-4197-b6fb-60a1cfecfba8"
    },
    "apiture:deactivate": {
      "href": "/users/inactiveUsers?user=9604e5f8-da29-4197-b6fb-60a1cfecfba8"
    },
    "apiture:lock": {
      "href": "/users/lockedUsers?user=9604e5f8-da29-4197-b6fb-60a1cfecfba8"
    },
    "apiture:freeze": {
      "href": "/users/frozenUsers?user=9604e5f8-da29-4197-b6fb-60a1cfecfba8"
    },
    "apiture:remove": {
      "href": "/users/removedUsers?user=9604e5f8-da29-4197-b6fb-60a1cfecfba8"
    }
  },
  "createdAt": "2018-03-09T20:14:32Z",
  "lastLoggedInAt": "2019-07-09T10:24:00Z",
  "lastContactedAt": "2019-07-16T06:00:00Z"
}

Responses

StatusDescription
200 OK
OK
Schema: user
400 Bad Request
Bad Request. The user was malformed or does not refer to a user.
409 Conflict

Conflict. There is a conflict between the request and the current state of the resource. It may be one of the following:

  • The state of a removed user may not be changed.
  • The state of a merged user may not be changed.
  • The state cannot be updated via a PUT or POST request. Please use the appropriate endpoint to change the state.
  • Some key fields of the user record may not be changed or removed, such as their government id
Schema: errorResponse
412 Precondition Failed
Precondition Failed. The supplied If-Match header value does not match the most recent ETag response header value. The resource has changed in the interim.
Schema: errorResponse
422 Unprocessable Entity
Unprocessable Entity. One or more of the query parameters was well formed but otherwise invalid. The _error field in the response will contain details about the request error.
Schema: errorResponse

Response Headers

StatusDescription
200 ETag string
The ETag response header specifies an entity tag which may be provided in an If-Match request header for PUT or PATCH operations which update this user resource.

activateUser

Code samples

# You can also use wget
curl -X POST /users/activeUsers \
  -H 'Accept: application/hal+json' \
  -H 'If-Match: string' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

POST /users/activeUsers HTTP/1.1

Accept: application/hal+json
If-Match: string

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

};

$.ajax({
  url: '/users/activeUsers',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

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

};

fetch('/users/activeUsers',
{
  method: 'POST',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/hal+json',
  'If-Match' => 'string',
  'API-Key' => 'API_KEY',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post '/users/activeUsers',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/hal+json',
  'If-Match': 'string',
  'API-Key': 'API_KEY',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('/users/activeUsers', params={

}, headers = headers)

print r.json()

URL obj = new URL("/users/activeUsers");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/hal+json"},
        "If-Match": []string{"string"},
        "API-Key": []string{"API_KEY"},
        "Authorization": []string{"Bearer {access-token}"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/users/activeUsers", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

Activate a user

POST /activeUsers

Activate a user from an inactive state.

This operation is invoked from the apiture:activate link on a user resource when that user is eligible to be activated. This operation will fail if the user is frozen or locked unless an FI admin is invoking the operation.

This changes the state to active.

Parameters

Parameter Description
user
(query)
string
The ID or URI of an existing user which is eligible to be removed.
If-Match
(header)
string
The entity tag that was returned in the ETag response. If used, this must match the current entity tag of the resource.

Example responses

200 Response

{
  "_id": "9604e5f8-da29-4197-b6fb-60a1cfecfba8",
  "_profile": "https://api.apiture.com/schemas/users/user/v1.0.0/profile.json",
  "username": "Johnny1733",
  "firstName": "John",
  "middleName": "Daniel",
  "lastName": "Smith",
  "preferredName": "John",
  "identification": [
    {
      "value": "111-11-1111",
      "type": "taxId",
      "emailAddresses": [
        {
          "_id": "pe0",
          "type": "personal",
          "value": "johnny1733@example.com"
        },
        {
          "_id": "we0",
          "type": "work",
          "value": "support@apiture.com"
        }
      ]
    }
  ],
  "customerId": "00047294723672",
  "phones": [
    {
      "_id": "hp0",
      "type": "home",
      "number": "(555) 555-5555"
    },
    {
      "_id": "mp0",
      "type": "mobile",
      "number": "(999) 555-5555"
    }
  ],
  "birthdate": "1974-10-27",
  "citizenship": [
    {
      "countryCode": "US",
      "state": "citizen"
    }
  ],
  "occupation": "Software Engineer",
  "addresses": [
    {
      "_id": "ha0",
      "type": "home",
      "addressLine1": "555 N Front Street",
      "addressLine2": "Suite 5555",
      "city": "Wilmington",
      "regionCode": "NC",
      "postalCode": "28401-5405",
      "countryCode": "US"
    },
    {
      "_id": "ha1",
      "type": "home",
      "addressLine1": "123 S 3rd Street",
      "addressLine2": "Apt 42",
      "city": "Wilmington",
      "regionCode": "NC",
      "postalCode": "28411-5405",
      "countryCode": "Use"
    }
  ],
  "state": "active",
  "attributes": {},
  "_links": {
    "self": {
      "href": "/users/users/9604e5f8-da29-4197-b6fb-60a1cfecfba8"
    },
    "apiture:deactivate": {
      "href": "/users/inactiveUsers?user=9604e5f8-da29-4197-b6fb-60a1cfecfba8"
    },
    "apiture:lock": {
      "href": "/users/lockedUsers?user=9604e5f8-da29-4197-b6fb-60a1cfecfba8"
    },
    "apiture:freeze": {
      "href": "/users/frozenUsers?user=9604e5f8-da29-4197-b6fb-60a1cfecfba8"
    },
    "apiture:remove": {
      "href": "/users/removedUsers?user=9604e5f8-da29-4197-b6fb-60a1cfecfba8"
    }
  },
  "createdAt": "2018-03-09T20:14:32Z",
  "lastLoggedInAt": "2019-07-09T10:24:00Z",
  "lastContactedAt": "2019-07-16T06:00:00Z"
}

Responses

StatusDescription
200 OK
OK
Schema: user
400 Bad Request
Bad Request. The user was malformed or does not refer to a user.
409 Conflict

Conflict. There is a conflict between the request and the current state of the resource. It may be one of the following:

  • The state of a removed user may not be changed.
  • The state of a merged user may not be changed.
  • The state cannot be updated via a PUT or POST request. Please use the appropriate endpoint to change the state.
  • Some key fields of the user record may not be changed or removed, such as their government id
Schema: errorResponse
412 Precondition Failed
Precondition Failed. The supplied If-Match header value does not match the most recent ETag response header value. The resource has changed in the interim.
Schema: errorResponse
422 Unprocessable Entity
Unprocessable Entity. One or more of the query parameters was well formed but otherwise invalid. The _error field in the response will contain details about the request error.
Schema: errorResponse

Response Headers

StatusDescription
200 ETag string
The ETag response header specifies an entity tag which may be provided in an If-Match request header for PUT or PATCH operations which update this user resource.

deactivateUser

Code samples

# You can also use wget
curl -X POST /users/inactiveUsers \
  -H 'Accept: application/hal+json' \
  -H 'If-Match: string' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

POST /users/inactiveUsers HTTP/1.1

Accept: application/hal+json
If-Match: string

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

};

$.ajax({
  url: '/users/inactiveUsers',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

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

};

fetch('/users/inactiveUsers',
{
  method: 'POST',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/hal+json',
  'If-Match' => 'string',
  'API-Key' => 'API_KEY',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post '/users/inactiveUsers',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/hal+json',
  'If-Match': 'string',
  'API-Key': 'API_KEY',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('/users/inactiveUsers', params={

}, headers = headers)

print r.json()

URL obj = new URL("/users/inactiveUsers");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/hal+json"},
        "If-Match": []string{"string"},
        "API-Key": []string{"API_KEY"},
        "Authorization": []string{"Bearer {access-token}"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/users/inactiveUsers", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

Deactivate a user

POST /inactiveUsers

Deactivate a user from an active state.

This operation is invoked from the apiture:deactivate link on a user resource when that user is eligible to be deactivated.

This changes the state to inactive.

Parameters

Parameter Description
user
(query)
string
The ID or URI of an existing user which is eligible to be removed.
If-Match
(header)
string
The entity tag that was returned in the ETag response. If used, this must match the current entity tag of the resource.

Example responses

200 Response

{
  "_id": "9604e5f8-da29-4197-b6fb-60a1cfecfba8",
  "_profile": "https://api.apiture.com/schemas/users/user/v1.0.0/profile.json",
  "username": "Johnny1733",
  "firstName": "John",
  "middleName": "Daniel",
  "lastName": "Smith",
  "preferredName": "John",
  "identification": [
    {
      "value": "111-11-1111",
      "type": "taxId",
      "emailAddresses": [
        {
          "_id": "pe0",
          "type": "personal",
          "value": "johnny1733@example.com"
        },
        {
          "_id": "we0",
          "type": "work",
          "value": "support@apiture.com"
        }
      ]
    }
  ],
  "customerId": "00047294723672",
  "phones": [
    {
      "_id": "hp0",
      "type": "home",
      "number": "(555) 555-5555"
    },
    {
      "_id": "mp0",
      "type": "mobile",
      "number": "(999) 555-5555"
    }
  ],
  "birthdate": "1974-10-27",
  "citizenship": [
    {
      "countryCode": "US",
      "state": "citizen"
    }
  ],
  "occupation": "Software Engineer",
  "addresses": [
    {
      "_id": "ha0",
      "type": "home",
      "addressLine1": "555 N Front Street",
      "addressLine2": "Suite 5555",
      "city": "Wilmington",
      "regionCode": "NC",
      "postalCode": "28401-5405",
      "countryCode": "US"
    },
    {
      "_id": "ha1",
      "type": "home",
      "addressLine1": "123 S 3rd Street",
      "addressLine2": "Apt 42",
      "city": "Wilmington",
      "regionCode": "NC",
      "postalCode": "28411-5405",
      "countryCode": "Use"
    }
  ],
  "state": "active",
  "attributes": {},
  "_links": {
    "self": {
      "href": "/users/users/9604e5f8-da29-4197-b6fb-60a1cfecfba8"
    },
    "apiture:deactivate": {
      "href": "/users/inactiveUsers?user=9604e5f8-da29-4197-b6fb-60a1cfecfba8"
    },
    "apiture:lock": {
      "href": "/users/lockedUsers?user=9604e5f8-da29-4197-b6fb-60a1cfecfba8"
    },
    "apiture:freeze": {
      "href": "/users/frozenUsers?user=9604e5f8-da29-4197-b6fb-60a1cfecfba8"
    },
    "apiture:remove": {
      "href": "/users/removedUsers?user=9604e5f8-da29-4197-b6fb-60a1cfecfba8"
    }
  },
  "createdAt": "2018-03-09T20:14:32Z",
  "lastLoggedInAt": "2019-07-09T10:24:00Z",
  "lastContactedAt": "2019-07-16T06:00:00Z"
}

Responses

StatusDescription
200 OK
OK
Schema: user
400 Bad Request
Bad Request. The user was malformed or does not refer to a user.
409 Conflict

Conflict. There is a conflict between the request and the current state of the resource. It may be one of the following:

  • The state of a removed user may not be changed.
  • The state of a merged user may not be changed.
  • The state cannot be updated via a PUT or POST request. Please use the appropriate endpoint to change the state.
  • Some key fields of the user record may not be changed or removed, such as their government id
Schema: errorResponse
412 Precondition Failed
Precondition Failed. The supplied If-Match header value does not match the most recent ETag response header value. The resource has changed in the interim.
Schema: errorResponse
422 Unprocessable Entity
Unprocessable Entity. One or more of the query parameters was well formed but otherwise invalid. The _error field in the response will contain details about the request error.
Schema: errorResponse

Response Headers

StatusDescription
200 ETag string
The ETag response header specifies an entity tag which may be provided in an If-Match request header for PUT or PATCH operations which update this user resource.

lockUser

Code samples

# You can also use wget
curl -X POST /users/lockedUsers \
  -H 'Accept: application/hal+json' \
  -H 'If-Match: string' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

POST /users/lockedUsers HTTP/1.1

Accept: application/hal+json
If-Match: string

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

};

$.ajax({
  url: '/users/lockedUsers',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

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

};

fetch('/users/lockedUsers',
{
  method: 'POST',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/hal+json',
  'If-Match' => 'string',
  'API-Key' => 'API_KEY',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post '/users/lockedUsers',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/hal+json',
  'If-Match': 'string',
  'API-Key': 'API_KEY',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('/users/lockedUsers', params={

}, headers = headers)

print r.json()

URL obj = new URL("/users/lockedUsers");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/hal+json"},
        "If-Match": []string{"string"},
        "API-Key": []string{"API_KEY"},
        "Authorization": []string{"Bearer {access-token}"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/users/lockedUsers", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

Lock a user

POST /lockedUsers

Lock a user from an active or inactive state.

This operation is invoked from the apiture:lock link on a user resource when that user is eligible to be lock.

This changes the state to locked.

Parameters

Parameter Description
user
(query)
string
The ID or URI of an existing user which is eligible to be removed.
If-Match
(header)
string
The entity tag that was returned in the ETag response. If used, this must match the current entity tag of the resource.

Example responses

200 Response

{
  "_id": "9604e5f8-da29-4197-b6fb-60a1cfecfba8",
  "_profile": "https://api.apiture.com/schemas/users/user/v1.0.0/profile.json",
  "username": "Johnny1733",
  "firstName": "John",
  "middleName": "Daniel",
  "lastName": "Smith",
  "preferredName": "John",
  "identification": [
    {
      "value": "111-11-1111",
      "type": "taxId",
      "emailAddresses": [
        {
          "_id": "pe0",
          "type": "personal",
          "value": "johnny1733@example.com"
        },
        {
          "_id": "we0",
          "type": "work",
          "value": "support@apiture.com"
        }
      ]
    }
  ],
  "customerId": "00047294723672",
  "phones": [
    {
      "_id": "hp0",
      "type": "home",
      "number": "(555) 555-5555"
    },
    {
      "_id": "mp0",
      "type": "mobile",
      "number": "(999) 555-5555"
    }
  ],
  "birthdate": "1974-10-27",
  "citizenship": [
    {
      "countryCode": "US",
      "state": "citizen"
    }
  ],
  "occupation": "Software Engineer",
  "addresses": [
    {
      "_id": "ha0",
      "type": "home",
      "addressLine1": "555 N Front Street",
      "addressLine2": "Suite 5555",
      "city": "Wilmington",
      "regionCode": "NC",
      "postalCode": "28401-5405",
      "countryCode": "US"
    },
    {
      "_id": "ha1",
      "type": "home",
      "addressLine1": "123 S 3rd Street",
      "addressLine2": "Apt 42",
      "city": "Wilmington",
      "regionCode": "NC",
      "postalCode": "28411-5405",
      "countryCode": "Use"
    }
  ],
  "state": "active",
  "attributes": {},
  "_links": {
    "self": {
      "href": "/users/users/9604e5f8-da29-4197-b6fb-60a1cfecfba8"
    },
    "apiture:deactivate": {
      "href": "/users/inactiveUsers?user=9604e5f8-da29-4197-b6fb-60a1cfecfba8"
    },
    "apiture:lock": {
      "href": "/users/lockedUsers?user=9604e5f8-da29-4197-b6fb-60a1cfecfba8"
    },
    "apiture:freeze": {
      "href": "/users/frozenUsers?user=9604e5f8-da29-4197-b6fb-60a1cfecfba8"
    },
    "apiture:remove": {
      "href": "/users/removedUsers?user=9604e5f8-da29-4197-b6fb-60a1cfecfba8"
    }
  },
  "createdAt": "2018-03-09T20:14:32Z",
  "lastLoggedInAt": "2019-07-09T10:24:00Z",
  "lastContactedAt": "2019-07-16T06:00:00Z"
}

Responses

StatusDescription
200 OK
OK
Schema: user
400 Bad Request
Bad Request. The user was malformed or does not refer to a user.
409 Conflict

Conflict. There is a conflict between the request and the current state of the resource. It may be one of the following:

  • The state of a removed user may not be changed.
  • The state of a merged user may not be changed.
  • The state cannot be updated via a PUT or POST request. Please use the appropriate endpoint to change the state.
  • Some key fields of the user record may not be changed or removed, such as their government id
Schema: errorResponse
412 Precondition Failed
Precondition Failed. The supplied If-Match header value does not match the most recent ETag response header value. The resource has changed in the interim.
Schema: errorResponse
422 Unprocessable Entity
Unprocessable Entity. One or more of the query parameters was well formed but otherwise invalid. The _error field in the response will contain details about the request error.
Schema: errorResponse

Response Headers

StatusDescription
200 ETag string
The ETag response header specifies an entity tag which may be provided in an If-Match request header for PUT or PATCH operations which update this user resource.

freezeUser

Code samples

# You can also use wget
curl -X POST /users/frozenUsers \
  -H 'Accept: application/hal+json' \
  -H 'If-Match: string' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

POST /users/frozenUsers HTTP/1.1

Accept: application/hal+json
If-Match: string

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

};

$.ajax({
  url: '/users/frozenUsers',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

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

};

fetch('/users/frozenUsers',
{
  method: 'POST',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/hal+json',
  'If-Match' => 'string',
  'API-Key' => 'API_KEY',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post '/users/frozenUsers',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/hal+json',
  'If-Match': 'string',
  'API-Key': 'API_KEY',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('/users/frozenUsers', params={

}, headers = headers)

print r.json()

URL obj = new URL("/users/frozenUsers");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/hal+json"},
        "If-Match": []string{"string"},
        "API-Key": []string{"API_KEY"},
        "Authorization": []string{"Bearer {access-token}"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/users/frozenUsers", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

Freeze a user

POST /frozenUsers

Freeze a user from an active, inactive or locked state. A state of frozen indicates that an admin has a concern of fraud.

This operation is invoked from the apiture:freeze link on a user resource when an admin user has suspicion of fraud. Only admin has access to freeze a user.

This changes the state to frozen.

Parameters

Parameter Description
user
(query)
string
The ID or URI of an existing user which is eligible to be frozen.
If-Match
(header)
string
The entity tag that was returned in the ETag response. If used, this must match the current entity tag of the resource.

Example responses

200 Response

{
  "_id": "9604e5f8-da29-4197-b6fb-60a1cfecfba8",
  "_profile": "https://api.apiture.com/schemas/users/user/v1.0.0/profile.json",
  "username": "Johnny1733",
  "firstName": "John",
  "middleName": "Daniel",
  "lastName": "Smith",
  "preferredName": "John",
  "identification": [
    {
      "value": "111-11-1111",
      "type": "taxId",
      "emailAddresses": [
        {
          "_id": "pe0",
          "type": "personal",
          "value": "johnny1733@example.com"
        },
        {
          "_id": "we0",
          "type": "work",
          "value": "support@apiture.com"
        }
      ]
    }
  ],
  "customerId": "00047294723672",
  "phones": [
    {
      "_id": "hp0",
      "type": "home",
      "number": "(555) 555-5555"
    },
    {
      "_id": "mp0",
      "type": "mobile",
      "number": "(999) 555-5555"
    }
  ],
  "birthdate": "1974-10-27",
  "citizenship": [
    {
      "countryCode": "US",
      "state": "citizen"
    }
  ],
  "occupation": "Software Engineer",
  "addresses": [
    {
      "_id": "ha0",
      "type": "home",
      "addressLine1": "555 N Front Street",
      "addressLine2": "Suite 5555",
      "city": "Wilmington",
      "regionCode": "NC",
      "postalCode": "28401-5405",
      "countryCode": "US"
    },
    {
      "_id": "ha1",
      "type": "home",
      "addressLine1": "123 S 3rd Street",
      "addressLine2": "Apt 42",
      "city": "Wilmington",
      "regionCode": "NC",
      "postalCode": "28411-5405",
      "countryCode": "Use"
    }
  ],
  "state": "active",
  "attributes": {},
  "_links": {
    "self": {
      "href": "/users/users/9604e5f8-da29-4197-b6fb-60a1cfecfba8"
    },
    "apiture:deactivate": {
      "href": "/users/inactiveUsers?user=9604e5f8-da29-4197-b6fb-60a1cfecfba8"
    },
    "apiture:lock": {
      "href": "/users/lockedUsers?user=9604e5f8-da29-4197-b6fb-60a1cfecfba8"
    },
    "apiture:freeze": {
      "href": "/users/frozenUsers?user=9604e5f8-da29-4197-b6fb-60a1cfecfba8"
    },
    "apiture:remove": {
      "href": "/users/removedUsers?user=9604e5f8-da29-4197-b6fb-60a1cfecfba8"
    }
  },
  "createdAt": "2018-03-09T20:14:32Z",
  "lastLoggedInAt": "2019-07-09T10:24:00Z",
  "lastContactedAt": "2019-07-16T06:00:00Z"
}

Responses

StatusDescription
200 OK
OK
Schema: user
400 Bad Request
Bad Request. The user was malformed or does not refer to a user.
409 Conflict

Conflict. There is a conflict between the request and the current state of the resource. It may be one of the following:

  • The state of a removed user may not be changed.
  • The state of a merged user may not be changed.
  • The state cannot be updated via a PUT or POST request. Please use the appropriate endpoint to change the state.
  • Some key fields of the user record may not be changed or removed, such as their government id
Schema: errorResponse
412 Precondition Failed
Precondition Failed. The supplied If-Match header value does not match the most recent ETag response header value. The resource has changed in the interim.
Schema: errorResponse
422 Unprocessable Entity
Unprocessable Entity. One or more of the query parameters was well formed but otherwise invalid. The _error field in the response will contain details about the request error.
Schema: errorResponse

Response Headers

StatusDescription
200 ETag string
The ETag response header specifies an entity tag which may be provided in an If-Match request header for PUT or PATCH operations which update this user resource.

mergeUsers

Code samples

# You can also use wget
curl -X POST /users/mergedUsers \
  -H 'Content-Type: application/hal+json' \
  -H 'Accept: application/hal+json' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

POST /users/mergedUsers HTTP/1.1

Content-Type: application/hal+json
Accept: application/hal+json

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

};

$.ajax({
  url: '/users/mergedUsers',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');
const inputBody = '{
  "_links": {
    "apiture:master": {
      "href": "/users/users/5150d4f2-0d94-4602-8ca8-f68d00815f63"
    }
  },
  "items": [
    {
      "_id": "9604e5f8-da29-4197-b6fb-60a1cfecfba8",
      "_profile": "https://api.apiture.com/schemas/users/user/v1.0.0/profile.json",
      "_links": {
        "self": {
          "href": "/users/users/9604e5f8-da29-4197-b6fb-60a1cfecfba8"
        }
      },
      "username": "Johnny1733",
      "firstName": "John",
      "middleName": "Daniel",
      "lastName": "Smith",
      "preferredName": "John",
      "identification": [
        {
          "value": "111-11-1111",
          "type": "taxId"
        }
      ],
      "emailAddresses": [
        {
          "_id": "pe0",
          "type": "personal",
          "value": "johnny1733@example.com"
        },
        {
          "_id": "we0",
          "type": "work",
          "value": "support@apiture.com"
        }
      ],
      "phones": [
        {
          "_id": "hp0",
          "type": "home",
          "number": "(555) 555-5555"
        },
        {
          "_id": "mp0",
          "type": "mobile",
          "number": "(999) 555-5555"
        }
      ],
      "birthdate": "1974-10-27",
      "citizenship": [
        {
          "countryCode": "US",
          "state": "citizen"
        }
      ],
      "occupation": "Software Engineer",
      "addresses": [
        {
          "_id": "ha0",
          "type": "home",
          "addressLine1": "555 N Front Street",
          "addressLine2": "Suite 5555",
          "city": "Wilmington",
          "regionCode": "NC",
          "postalCode": "28401-5405",
          "countryCode": "US"
        },
        {
          "_id": "ha1",
          "type": "home",
          "addressLine1": "123 S 3rd Street",
          "addressLine2": "Apt 42",
          "city": "Wilmington",
          "regionCode": "NC",
          "postalCode": "28411-5405",
          "countryCode": "US"
        }
      ],
      "state": "active"
    },
    {
      "_id": "d1fabf13-31d1-4351-89ad-877ac4d1220a",
      "_profile": "https://api.apiture.com/schemas/users/user/v1.0.0/profile.json",
      "_links": {
        "self": {
          "href": "/users/users/d1fabf13-31d1-4351-89ad-877ac4d1220a"
        }
      },
      "username": "LAS15",
      "firstName": "Johnathan",
      "middleName": "Daniel",
      "lastName": "Smith",
      "preferredName": "John",
      "identification": [
        {
          "value": "111-11-1111",
          "type": "taxId"
        }
      ],
      "emailAddresses": [
        {
          "_id": "pe0",
          "type": "personal",
          "value": "johnny1733@example.com"
        },
        {
          "_id": "we0",
          "type": "work",
          "value": "support@apiture.com"
        }
      ],
      "phones": [
        {
          "_id": "hp0",
          "type": "home",
          "number": "(555) 555-5555"
        },
        {
          "_id": "mp0",
          "type": "mobile",
          "number": "(999) 555-5555"
        }
      ],
      "birthdate": "1974-10-27",
      "citizenship": [
        {
          "countryCode": "US",
          "state": "citizen"
        }
      ],
      "occupation": "Software Engineer",
      "addresses": [
        {
          "_id": "ha0",
          "type": "home",
          "addressLine1": "555 N Front Street",
          "addressLine2": "Suite 5555",
          "city": "Wilmington",
          "regionCode": "NC",
          "postalCode": "28401-5405",
          "countryCode": "US"
        },
        {
          "_id": "ha1",
          "type": "home",
          "addressLine1": "123 S 3rd Street",
          "addressLine2": "Apt 42",
          "city": "Wilmington",
          "regionCode": "NC",
          "postalCode": "28411-5405",
          "countryCode": "US"
        }
      ],
      "state": "active"
    }
  ]
}';
const headers = {
  'Content-Type':'application/hal+json',
  'Accept':'application/hal+json',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

fetch('/users/mergedUsers',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

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

result = RestClient.post '/users/mergedUsers',
  params: {
  }, headers: headers

p JSON.parse(result)

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

r = requests.post('/users/mergedUsers', params={

}, headers = headers)

print r.json()

URL obj = new URL("/users/mergedUsers");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/hal+json"},
        "Accept": []string{"application/hal+json"},
        "API-Key": []string{"API_KEY"},
        "Authorization": []string{"Bearer {access-token}"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/users/mergedUsers", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

Merge a set of users

POST /mergedUsers

Merge a collection of users from an active, inactive or locked state into the user specified via the apiture:master link.

This operation is invoked from the apiture:merge link on a user resource when that user is eligible to be merged.

This changes the state to merged.

Body parameter

{
  "_links": {
    "apiture:master": {
      "href": "/users/users/5150d4f2-0d94-4602-8ca8-f68d00815f63"
    }
  },
  "items": [
    {
      "_id": "9604e5f8-da29-4197-b6fb-60a1cfecfba8",
      "_profile": "https://api.apiture.com/schemas/users/user/v1.0.0/profile.json",
      "_links": {
        "self": {
          "href": "/users/users/9604e5f8-da29-4197-b6fb-60a1cfecfba8"
        }
      },
      "username": "Johnny1733",
      "firstName": "John",
      "middleName": "Daniel",
      "lastName": "Smith",
      "preferredName": "John",
      "identification": [
        {
          "value": "111-11-1111",
          "type": "taxId"
        }
      ],
      "emailAddresses": [
        {
          "_id": "pe0",
          "type": "personal",
          "value": "johnny1733@example.com"
        },
        {
          "_id": "we0",
          "type": "work",
          "value": "support@apiture.com"
        }
      ],
      "phones": [
        {
          "_id": "hp0",
          "type": "home",
          "number": "(555) 555-5555"
        },
        {
          "_id": "mp0",
          "type": "mobile",
          "number": "(999) 555-5555"
        }
      ],
      "birthdate": "1974-10-27",
      "citizenship": [
        {
          "countryCode": "US",
          "state": "citizen"
        }
      ],
      "occupation": "Software Engineer",
      "addresses": [
        {
          "_id": "ha0",
          "type": "home",
          "addressLine1": "555 N Front Street",
          "addressLine2": "Suite 5555",
          "city": "Wilmington",
          "regionCode": "NC",
          "postalCode": "28401-5405",
          "countryCode": "US"
        },
        {
          "_id": "ha1",
          "type": "home",
          "addressLine1": "123 S 3rd Street",
          "addressLine2": "Apt 42",
          "city": "Wilmington",
          "regionCode": "NC",
          "postalCode": "28411-5405",
          "countryCode": "US"
        }
      ],
      "state": "active"
    },
    {
      "_id": "d1fabf13-31d1-4351-89ad-877ac4d1220a",
      "_profile": "https://api.apiture.com/schemas/users/user/v1.0.0/profile.json",
      "_links": {
        "self": {
          "href": "/users/users/d1fabf13-31d1-4351-89ad-877ac4d1220a"
        }
      },
      "username": "LAS15",
      "firstName": "Johnathan",
      "middleName": "Daniel",
      "lastName": "Smith",
      "preferredName": "John",
      "identification": [
        {
          "value": "111-11-1111",
          "type": "taxId"
        }
      ],
      "emailAddresses": [
        {
          "_id": "pe0",
          "type": "personal",
          "value": "johnny1733@example.com"
        },
        {
          "_id": "we0",
          "type": "work",
          "value": "support@apiture.com"
        }
      ],
      "phones": [
        {
          "_id": "hp0",
          "type": "home",
          "number": "(555) 555-5555"
        },
        {
          "_id": "mp0",
          "type": "mobile",
          "number": "(999) 555-5555"
        }
      ],
      "birthdate": "1974-10-27",
      "citizenship": [
        {
          "countryCode": "US",
          "state": "citizen"
        }
      ],
      "occupation": "Software Engineer",
      "addresses": [
        {
          "_id": "ha0",
          "type": "home",
          "addressLine1": "555 N Front Street",
          "addressLine2": "Suite 5555",
          "city": "Wilmington",
          "regionCode": "NC",
          "postalCode": "28401-5405",
          "countryCode": "US"
        },
        {
          "_id": "ha1",
          "type": "home",
          "addressLine1": "123 S 3rd Street",
          "addressLine2": "Apt 42",
          "city": "Wilmington",
          "regionCode": "NC",
          "postalCode": "28411-5405",
          "countryCode": "US"
        }
      ],
      "state": "active"
    }
  ]
}

Parameters

Parameter Description
body
(body)
mergeUsers (required)
The data necessary to merge users.

Example responses

200 Response

{
  "_id": "9604e5f8-da29-4197-b6fb-60a1cfecfba8",
  "_profile": "https://api.apiture.com/schemas/users/user/v1.0.0/profile.json",
  "username": "Johnny1733",
  "firstName": "John",
  "middleName": "Daniel",
  "lastName": "Smith",
  "preferredName": "John",
  "identification": [
    {
      "value": "111-11-1111",
      "type": "taxId",
      "emailAddresses": [
        {
          "_id": "pe0",
          "type": "personal",
          "value": "johnny1733@example.com"
        },
        {
          "_id": "we0",
          "type": "work",
          "value": "support@apiture.com"
        }
      ]
    }
  ],
  "customerId": "00047294723672",
  "phones": [
    {
      "_id": "hp0",
      "type": "home",
      "number": "(555) 555-5555"
    },
    {
      "_id": "mp0",
      "type": "mobile",
      "number": "(999) 555-5555"
    }
  ],
  "birthdate": "1974-10-27",
  "citizenship": [
    {
      "countryCode": "US",
      "state": "citizen"
    }
  ],
  "occupation": "Software Engineer",
  "addresses": [
    {
      "_id": "ha0",
      "type": "home",
      "addressLine1": "555 N Front Street",
      "addressLine2": "Suite 5555",
      "city": "Wilmington",
      "regionCode": "NC",
      "postalCode": "28401-5405",
      "countryCode": "US"
    },
    {
      "_id": "ha1",
      "type": "home",
      "addressLine1": "123 S 3rd Street",
      "addressLine2": "Apt 42",
      "city": "Wilmington",
      "regionCode": "NC",
      "postalCode": "28411-5405",
      "countryCode": "Use"
    }
  ],
  "state": "active",
  "attributes": {},
  "_links": {
    "self": {
      "href": "/users/users/9604e5f8-da29-4197-b6fb-60a1cfecfba8"
    },
    "apiture:deactivate": {
      "href": "/users/inactiveUsers?user=9604e5f8-da29-4197-b6fb-60a1cfecfba8"
    },
    "apiture:lock": {
      "href": "/users/lockedUsers?user=9604e5f8-da29-4197-b6fb-60a1cfecfba8"
    },
    "apiture:freeze": {
      "href": "/users/frozenUsers?user=9604e5f8-da29-4197-b6fb-60a1cfecfba8"
    },
    "apiture:remove": {
      "href": "/users/removedUsers?user=9604e5f8-da29-4197-b6fb-60a1cfecfba8"
    }
  },
  "createdAt": "2018-03-09T20:14:32Z",
  "lastLoggedInAt": "2019-07-09T10:24:00Z",
  "lastContactedAt": "2019-07-16T06:00:00Z"
}

Responses

StatusDescription
200 OK
OK
Schema: user
409 Conflict

Conflict. There is a conflict between the request and the current state of the resource. It may be one of the following:

  • The state of a removed user may not be changed.
  • The state of a merged user may not be changed.
  • The state cannot be updated via a PUT or POST request. Please use the appropriate endpoint to change the state.
  • Some key fields of the user record may not be changed or removed, such as their government id
Schema: errorResponse
412 Precondition Failed
Precondition Failed. The supplied If-Match header value does not match the most recent ETag response header value. The resource has changed in the interim.
Schema: errorResponse
422 Unprocessable Entity
Unprocessable Entity. One or more of the query parameters was well formed but otherwise invalid. The _error field in the response will contain details about the request error.
Schema: errorResponse

Response Headers

StatusDescription
200 ETag string
The ETag response header specifies an entity tag which may be provided in an If-Match request header for PUT or PATCH operations which update this user resource.

Address

getAddresses

Code samples

# You can also use wget
curl -X GET /users/users/{userId}/addresses \
  -H 'Accept: application/hal+json' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

GET /users/users/{userId}/addresses HTTP/1.1

Accept: application/hal+json

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

};

$.ajax({
  url: '/users/users/{userId}/addresses',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

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

};

fetch('/users/users/{userId}/addresses',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

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

result = RestClient.get '/users/users/{userId}/addresses',
  params: {
  }, headers: headers

p JSON.parse(result)

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

r = requests.get('/users/users/{userId}/addresses', params={

}, headers = headers)

print r.json()

URL obj = new URL("/users/users/{userId}/addresses");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/hal+json"},
        "API-Key": []string{"API_KEY"},
        "Authorization": []string{"Bearer {access-token}"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/users/users/{userId}/addresses", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

Get user's addresses

GET /users/{userId}/addresses

Return the list of the user's addresses.

Parameters

Parameter Description
userId
(path)
string (required)
The unique identifier of the user. This is an opaque string.

Example responses

200 Response

{
  "_profile": "https://api.apiture.com/schemas/users/userAddresses/v1.0.0/profile.json",
  "items": [
    {
      "_id": "ha1",
      "type": "home",
      "addressLine1": "555 N Front Street",
      "addressLine2": "Suite 5555",
      "city": "Wilmington",
      "regionCode": "NC",
      "postalCode": "28401-5405",
      "countryCode": "US",
      "state": "approved",
      "_links": {
        "self": {
          "href": "/users/users/f2d87aa6-33c8-458c-819b-41bb00f1ec08/addresses/ha1"
        }
      }
    },
    {
      "_id": "wa1",
      "type": "work",
      "addressLine1": "123 S 3rd Street",
      "addressLine2": "Apt 42",
      "city": "Wilmington",
      "regionCode": "NC",
      "postalCode": "28411-5405",
      "countryCode": "US",
      "_links": {
        "self": {
          "href": "/users/users/f2d87aa6-33c8-458c-819b-41bb00f1ec08/addresses/wa1"
        }
      }
    }
  ],
  "_links": {
    "self": {
      "href": "/users/users/f2d87aa6-33c8-458c-819b-41bb00f1ec08/addresses"
    }
  }
}

Responses

StatusDescription
200 OK
OK
Schema: userAddresses
400 Bad Request
Bad Request. The request body or one or more of the query parameters was not well formed. The _error field in the response will contain details about the request error.
Schema: errorResponse
422 Unprocessable Entity
Unprocessable Entity. One or more of the query parameters was well formed but otherwise invalid. The _error field in the response will contain details about the request error.
Schema: errorResponse

createAddress

Code samples

# You can also use wget
curl -X POST /users/users/{userId}/addresses \
  -H 'Content-Type: application/hal+json' \
  -H 'Accept: application/hal+json' \
  -H 'Apiture-Challenge: string' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

POST /users/users/{userId}/addresses HTTP/1.1

Content-Type: application/hal+json
Accept: application/hal+json
Apiture-Challenge: string

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

};

$.ajax({
  url: '/users/users/{userId}/addresses',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');
const inputBody = '{
  "_id": "ha1",
  "type": "home",
  "addressLine1": "555 N Front Street",
  "addressLine2": "Suite 5555",
  "city": "Wilmington",
  "regionCode": "NC",
  "postalCode": "28401-5405",
  "countryCode": "US",
  "state": "approved",
  "_links": {
    "self": {
      "href": "/users/users/f2d87aa6-33c8-458c-819b-41bb00f1ec08/addresses/ha1"
    }
  }
}';
const headers = {
  'Content-Type':'application/hal+json',
  'Accept':'application/hal+json',
  'Apiture-Challenge':'string',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

fetch('/users/users/{userId}/addresses',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/hal+json',
  'Accept' => 'application/hal+json',
  'Apiture-Challenge' => 'string',
  'API-Key' => 'API_KEY',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post '/users/users/{userId}/addresses',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/hal+json',
  'Accept': 'application/hal+json',
  'Apiture-Challenge': 'string',
  'API-Key': 'API_KEY',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('/users/users/{userId}/addresses', params={

}, headers = headers)

print r.json()

URL obj = new URL("/users/users/{userId}/addresses");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/hal+json"},
        "Accept": []string{"application/hal+json"},
        "Apiture-Challenge": []string{"string"},
        "API-Key": []string{"API_KEY"},
        "Authorization": []string{"Bearer {access-token}"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/users/users/{userId}/addresses", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

Create a new address

POST /users/{userId}/addresses

Add an address to the list of the user's addresses. The new address will be pending until the financial institution has reviewed and approved it, after which it will become approved.

This operation may require the user to complete an additional authentication challenge as described in Multi-factor authentication challenges above. A valid Apiture-Challenge request header may be required if the ?replaceId parameter is used and the profile item being replaced is the preferred mailing address. See Multi-factor authentication challenges above.

Body parameter

{
  "_id": "ha1",
  "type": "home",
  "addressLine1": "555 N Front Street",
  "addressLine2": "Suite 5555",
  "city": "Wilmington",
  "regionCode": "NC",
  "postalCode": "28401-5405",
  "countryCode": "US",
  "state": "approved",
  "_links": {
    "self": {
      "href": "/users/users/f2d87aa6-33c8-458c-819b-41bb00f1ec08/addresses/ha1"
    }
  }
}

Parameters

Parameter Description
replaceId
(query)
string
An optional _id of an existing address to be replaced with this new address instead of adding a new address, once it has been approved. If replaceId matches the _id of the preferred mailing address the preferredMailingAddressId will also be updated to the value of replaceId once approved (the Apiture-Challenge header may be required also). If no existing address matches replaceId, the new address is added to the list of addresses. Example: ?replaceId=ha1
Apiture-Challenge
(header)
string
The unique identifier of a Challenge resource which demonstrates the user has recently verified their identity. See the discussion of Multi-factor authentication challenges above. The value must be the _id string of a valid, redeamable Challenge resource which matches the challenge context.
body
(body)
userAddress (required)
The data necessary to create a new address.
userId
(path)
string (required)
The unique identifier of the user. This is an opaque string.

Example responses

201 Response

{
  "_id": "ha1",
  "type": "home",
  "addressLine1": "555 N Front Street",
  "addressLine2": "Suite 5555",
  "city": "Wilmington",
  "regionCode": "NC",
  "postalCode": "28401-5405",
  "countryCode": "US",
  "state": "approved",
  "_links": {
    "self": {
      "href": "/users/users/f2d87aa6-33c8-458c-819b-41bb00f1ec08/addresses/ha1"
    }
  }
}

Responses

StatusDescription
201 Created
Created
Schema: userAddress
400 Bad Request
Bad Request. The request body or one or more of the query parameters was not well formed. The _error field in the response will contain details about the request error.
Schema: errorResponse
409 Conflict
Conflict. The selected profile value cannot be set as the preferred because it is still pending, or no Apiture-Challenge request header was passed when expected, or the challenge has not been verified, has expired, or has been redeemed too many times.
Schema: challengeErrorResponse

Response Headers

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 scheme://host
201 ETag string
The ETag response header specifies an entity tag which may be provided in an If-Match request header for PUT or PATCH operations which update the resource.

getAddress

Code samples

# You can also use wget
curl -X GET /users/users/{userId}/addresses/{addressId} \
  -H 'Accept: application/hal+json' \
  -H 'If-None-Match: string' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

GET /users/users/{userId}/addresses/{addressId} HTTP/1.1

Accept: application/hal+json
If-None-Match: string

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

};

$.ajax({
  url: '/users/users/{userId}/addresses/{addressId}',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/hal+json',
  'If-None-Match':'string',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

fetch('/users/users/{userId}/addresses/{addressId}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/hal+json',
  'If-None-Match' => 'string',
  'API-Key' => 'API_KEY',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get '/users/users/{userId}/addresses/{addressId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/hal+json',
  'If-None-Match': 'string',
  'API-Key': 'API_KEY',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('/users/users/{userId}/addresses/{addressId}', params={

}, headers = headers)

print r.json()

URL obj = new URL("/users/users/{userId}/addresses/{addressId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/hal+json"},
        "If-None-Match": []string{"string"},
        "API-Key": []string{"API_KEY"},
        "Authorization": []string{"Bearer {access-token}"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/users/users/{userId}/addresses/{addressId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

Fetch a representation of this address

GET /users/{userId}/addresses/{addressId}

Return a HAL representation of this address resource.

Parameters

Parameter Description
If-None-Match
(header)
string
The entity tag that was returned in the ETag response. If the resource's current entity tag matches, the GET will return 304 (Not Modified) and no response body, else the resource representation will be returned.
userId
(path)
string (required)
The unique identifier of the user. This is an opaque string.
addressId
(path)
string (required)
The unique identifier of this address. This is an opaque string.

Example responses

200 Response

{
  "_id": "ha1",
  "type": "home",
  "addressLine1": "555 N Front Street",
  "addressLine2": "Suite 5555",
  "city": "Wilmington",
  "regionCode": "NC",
  "postalCode": "28401-5405",
  "countryCode": "US",
  "state": "approved",
  "_links": {
    "self": {
      "href": "/users/users/f2d87aa6-33c8-458c-819b-41bb00f1ec08/addresses/ha1"
    }
  }
}

Responses

StatusDescription
200 OK
OK
Schema: userAddress
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 address resource at the specified {addressId}. The _error field in the response will contain details about the request error.
Schema: errorResponse

Response Headers

StatusDescription
200 ETag string
The ETag response header specifies an entity tag which may be provided in an If-Match request header for PUT or PATCH operations which update this address resource.

deleteAddress

Code samples

# You can also use wget
curl -X DELETE /users/users/{userId}/addresses/{addressId} \
  -H 'Accept: application/hal+json' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

DELETE /users/users/{userId}/addresses/{addressId} HTTP/1.1

Accept: application/hal+json

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

};

$.ajax({
  url: '/users/users/{userId}/addresses/{addressId}',
  method: 'delete',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

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

};

fetch('/users/users/{userId}/addresses/{addressId}',
{
  method: 'DELETE',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

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

result = RestClient.delete '/users/users/{userId}/addresses/{addressId}',
  params: {
  }, headers: headers

p JSON.parse(result)

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

r = requests.delete('/users/users/{userId}/addresses/{addressId}', params={

}, headers = headers)

print r.json()

URL obj = new URL("/users/users/{userId}/addresses/{addressId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/hal+json"},
        "API-Key": []string{"API_KEY"},
        "Authorization": []string{"Bearer {access-token}"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("DELETE", "/users/users/{userId}/addresses/{addressId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

Delete this address resource

DELETE /users/{userId}/addresses/{addressId}

Delete this address. The address can only be deleted if it is not the user's preferred address.

Parameters

Parameter Description
userId
(path)
string (required)
The unique identifier of the user. This is an opaque string.
addressId
(path)
string (required)
The unique identifier of this address. This is an opaque string.

Example responses

409 Response

{
  "_profile": "https://api.apiture.com/schemas/common/errorResponse/v1.0.0/profile.json",
  "_error": {
    "_id": "2eae46e1-575c-4d69-8a8f-0a7b0115a4b3",
    "message": "The value for deposit must be greater than 0.",
    "statusCode": 422,
    "type": "positiveNumberRequired",
    "attributes": {
      "value": -125.5
    },
    "remediation": "Provide a value which is greater than 0",
    "occurredAt": "2018-01-25T05:50:52.375Z",
    "_links": {
      "describedby": {
        "href": "https://api.apiture.com/errors/positiveNumberRequired"
      }
    },
    "_embedded": {
      "errors": []
    }
  }
}

Responses

StatusDescription
204 No Content
No Content. The resource was deleted successfully.
409 Conflict
Conflict. The selected address cannot be deleted because it is currently the user's preferred address.
Schema: errorResponse

setPreferredAddress

Code samples

# You can also use wget
curl -X PUT /users/users/{userId}/preferredAddress \
  -H 'Accept: application/hal+json' \
  -H 'Apiture-Challenge: string' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

PUT /users/users/{userId}/preferredAddress HTTP/1.1

Accept: application/hal+json
Apiture-Challenge: string

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

};

$.ajax({
  url: '/users/users/{userId}/preferredAddress',
  method: 'put',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

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

};

fetch('/users/users/{userId}/preferredAddress',
{
  method: 'PUT',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/hal+json',
  'Apiture-Challenge' => 'string',
  'API-Key' => 'API_KEY',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.put '/users/users/{userId}/preferredAddress',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/hal+json',
  'Apiture-Challenge': 'string',
  'API-Key': 'API_KEY',
  'Authorization': 'Bearer {access-token}'
}

r = requests.put('/users/users/{userId}/preferredAddress', params={

}, headers = headers)

print r.json()

URL obj = new URL("/users/users/{userId}/preferredAddress");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PUT");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/hal+json"},
        "Apiture-Challenge": []string{"string"},
        "API-Key": []string{"API_KEY"},
        "Authorization": []string{"Bearer {access-token}"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PUT", "/users/users/{userId}/preferredAddress", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

Set Preferred mailing Address

PUT /users/{userId}/preferredAddress

Set the user's preferred mailing address. The user may set their preferred address to an approved address by passing its unique _id in the value query parameter. This updates the preferredAddressId property of the user.

This operation may require the user to complete an additional authentication challenge as described in Multi-factor authentication challenges above. A valid Apiture-Challenge request header may be required.

This operation is available via the apiture:setAsPreferred link on an address if that resource is eligible to be set as the preferred address.

No changes are made if the specified address is already the preferred address.

Parameters

Parameter Description
value
(query)
string
The _id of the address to assign as the preferred address. If this query parameter exists, the request body, if any, is ignored. Example: ?value=ha1
Apiture-Challenge
(header)
string
The unique identifier of a Challenge resource which demonstrates the user has recently verified their identity. See the discussion of Multi-factor authentication challenges above. The value must be the _id string of a valid, redeamable Challenge resource which matches the challenge context.
userId
(path)
string (required)
The unique identifier of the user. This is an opaque string.

Example responses

200 Response

{
  "_id": "9604e5f8-da29-4197-b6fb-60a1cfecfba8",
  "_profile": "https://api.apiture.com/schemas/users/user/v1.0.0/profile.json",
  "username": "Johnny1733",
  "firstName": "John",
  "middleName": "Daniel",
  "lastName": "Smith",
  "preferredName": "John",
  "identification": [
    {
      "value": "111-11-1111",
      "type": "taxId",
      "emailAddresses": [
        {
          "_id": "pe0",
          "type": "personal",
          "value": "johnny1733@example.com"
        },
        {
          "_id": "we0",
          "type": "work",
          "value": "support@apiture.com"
        }
      ]
    }
  ],
  "customerId": "00047294723672",
  "phones": [
    {
      "_id": "hp0",
      "type": "home",
      "number": "(555) 555-5555"
    },
    {
      "_id": "mp0",
      "type": "mobile",
      "number": "(999) 555-5555"
    }
  ],
  "birthdate": "1974-10-27",
  "citizenship": [
    {
      "countryCode": "US",
      "state": "citizen"
    }
  ],
  "occupation": "Software Engineer",
  "addresses": [
    {
      "_id": "ha0",
      "type": "home",
      "addressLine1": "555 N Front Street",
      "addressLine2": "Suite 5555",
      "city": "Wilmington",
      "regionCode": "NC",
      "postalCode": "28401-5405",
      "countryCode": "US"
    },
    {
      "_id": "ha1",
      "type": "home",
      "addressLine1": "123 S 3rd Street",
      "addressLine2": "Apt 42",
      "city": "Wilmington",
      "regionCode": "NC",
      "postalCode": "28411-5405",
      "countryCode": "Use"
    }
  ],
  "state": "active",
  "attributes": {},
  "_links": {
    "self": {
      "href": "/users/users/9604e5f8-da29-4197-b6fb-60a1cfecfba8"
    },
    "apiture:deactivate": {
      "href": "/users/inactiveUsers?user=9604e5f8-da29-4197-b6fb-60a1cfecfba8"
    },
    "apiture:lock": {
      "href": "/users/lockedUsers?user=9604e5f8-da29-4197-b6fb-60a1cfecfba8"
    },
    "apiture:freeze": {
      "href": "/users/frozenUsers?user=9604e5f8-da29-4197-b6fb-60a1cfecfba8"
    },
    "apiture:remove": {
      "href": "/users/removedUsers?user=9604e5f8-da29-4197-b6fb-60a1cfecfba8"
    }
  },
  "createdAt": "2018-03-09T20:14:32Z",
  "lastLoggedInAt": "2019-07-09T10:24:00Z",
  "lastContactedAt": "2019-07-16T06:00:00Z"
}

Responses

StatusDescription
200 OK
OK. The user's preferredAddressId is updated to the passed value.
Schema: user
409 Conflict
Conflict. The selected profile value cannot be set as the preferred because it is still pending, or no Apiture-Challenge request header was passed when expected, or the challenge has not been verified, has expired, or has been redeemed too many times.
Schema: challengeErrorResponse
422 Unprocessable Entity
Unprocessable Entity. The request to set a preferred profile value cannot be processed because no such profile value value exists, or the passed challenge does not exist.
Schema: errorResponse

Response Headers

StatusDescription
200 ETag string
The ETag response header specifies an entity tag which may be provided in an If-Match request header for PUT or PATCH operations which update this user resource.

Email Address

getEmailAddresses

Code samples

# You can also use wget
curl -X GET /users/users/{userId}/emailAddresses \
  -H 'Accept: application/hal+json' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

GET /users/users/{userId}/emailAddresses HTTP/1.1

Accept: application/hal+json

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

};

$.ajax({
  url: '/users/users/{userId}/emailAddresses',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

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

};

fetch('/users/users/{userId}/emailAddresses',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

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

result = RestClient.get '/users/users/{userId}/emailAddresses',
  params: {
  }, headers: headers

p JSON.parse(result)

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

r = requests.get('/users/users/{userId}/emailAddresses', params={

}, headers = headers)

print r.json()

URL obj = new URL("/users/users/{userId}/emailAddresses");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/hal+json"},
        "API-Key": []string{"API_KEY"},
        "Authorization": []string{"Bearer {access-token}"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/users/users/{userId}/emailAddresses", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

Get user's email addresses

GET /users/{userId}/emailAddresses

Return the list of the user's email addresses.

Parameters

Parameter Description
userId
(path)
string (required)
The unique identifier of the user. This is an opaque string.

Example responses

200 Response

{
  "_profile": "https://api.apiture.com/schemas/users/userEmailAddresses/v1.0.0/profile.json",
  "items": [
    {
      "_id": "pe0",
      "type": "personal",
      "label": "Personal",
      "number": "user7838@example.com",
      "state": "approved",
      "_profile": "https://api.apiture.com/schemas/users/userEmailAddress/v1.0.0/profile.json",
      "_links": {
        "self": {
          "href": "/users/users/f2d87aa6-33c8-458c-819b-41bb00f1ec08/emailAddresses/pe0"
        }
      }
    },
    {
      "_id": "pe2",
      "type": "personal",
      "label": "Personal",
      "value": "John.Smith@example.com",
      "state": "approved",
      "_profile": "https://api.apiture.com/schemas/users/userEmailAddress/v1.0.0/profile.json",
      "_links": {
        "self": {
          "href": "/users/users/f2d87aa6-33c8-458c-819b-41bb00f1ec08/userEmailAddresses/pe2"
        }
      }
    }
  ],
  "_links": {
    "self": {
      "href": "/users/users/f2d87aa6-33c8-458c-819b-41bb00f1ec08/emailAddresses"
    }
  }
}

Responses

StatusDescription
200 OK
OK
Schema: userEmailAddresses
400 Bad Request
Bad Request. The request body or one or more of the query parameters was not well formed. The _error field in the response will contain details about the request error.
Schema: errorResponse
422 Unprocessable Entity
Unprocessable Entity. One or more of the query parameters was well formed but otherwise invalid. The _error field in the response will contain details about the request error.
Schema: errorResponse

createEmailAddress

Code samples

# You can also use wget
curl -X POST /users/users/{userId}/emailAddresses \
  -H 'Content-Type: application/hal+json' \
  -H 'Accept: application/hal+json' \
  -H 'Apiture-Challenge: string' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

POST /users/users/{userId}/emailAddresses HTTP/1.1

Content-Type: application/hal+json
Accept: application/hal+json
Apiture-Challenge: string

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

};

$.ajax({
  url: '/users/users/{userId}/emailAddresses',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');
const inputBody = '{
  "_id": "pe1",
  "_profile": "https://api.apiture.com/schemas/users/userEmailAddress/v1.0.0/profile.json",
  "type": "personal",
  "number": "555-555-5555",
  "state": "approved",
  "_links": {
    "self": {
      "href": "/users/users/f2d87aa6-33c8-458c-819b-41bb00f1ec08/emailAddresses/pe1"
    },
    "delete": {
      "href": "/users/users/f2d87aa6-33c8-458c-819b-41bb00f1ec08/emailAddresses/pe1"
    },
    "apiture:setAsPreferred": {
      "href": "/users/users/f2d87aa6-33c8-458c-819b-41bb00f1ec08/preferredEmailAddresses?value=pe1"
    }
  }
}';
const headers = {
  'Content-Type':'application/hal+json',
  'Accept':'application/hal+json',
  'Apiture-Challenge':'string',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

fetch('/users/users/{userId}/emailAddresses',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/hal+json',
  'Accept' => 'application/hal+json',
  'Apiture-Challenge' => 'string',
  'API-Key' => 'API_KEY',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post '/users/users/{userId}/emailAddresses',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/hal+json',
  'Accept': 'application/hal+json',
  'Apiture-Challenge': 'string',
  'API-Key': 'API_KEY',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('/users/users/{userId}/emailAddresses', params={

}, headers = headers)

print r.json()

URL obj = new URL("/users/users/{userId}/emailAddresses");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/hal+json"},
        "Accept": []string{"application/hal+json"},
        "Apiture-Challenge": []string{"string"},
        "API-Key": []string{"API_KEY"},
        "Authorization": []string{"Bearer {access-token}"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/users/users/{userId}/emailAddresses", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

Create a new email address

POST /users/{userId}/emailAddresses

Add an email address to the list of the user's email addresses. The new email address will be pending until the financial institution has reviewed and approved it, after which it will become approved.

This operation may require the user to complete an additional authentication challenge as described in Multi-factor authentication challenges above. A valid Apiture-Challenge request header may be required if the ?replaceId parameter is used and the profile item being replaced is the preferred email address. See Multi-factor authentication challenges above.

Body parameter

{
  "_id": "pe1",
  "_profile": "https://api.apiture.com/schemas/users/userEmailAddress/v1.0.0/profile.json",
  "type": "personal",
  "number": "555-555-5555",
  "state": "approved",
  "_links": {
    "self": {
      "href": "/users/users/f2d87aa6-33c8-458c-819b-41bb00f1ec08/emailAddresses/pe1"
    },
    "delete": {
      "href": "/users/users/f2d87aa6-33c8-458c-819b-41bb00f1ec08/emailAddresses/pe1"
    },
    "apiture:setAsPreferred": {
      "href": "/users/users/f2d87aa6-33c8-458c-819b-41bb00f1ec08/preferredEmailAddresses?value=pe1"
    }
  }
}

Parameters

Parameter Description
replaceId
(query)
string
An optional _id of an existing email address to be replaced with this new email address instead of adding a new email address, once it has been approved. If replaceId matches the _id of the preferred email address the preferredEmailAddressId will also be updated to the value of replaceId once approved (the Apiture-Challenge header may be required also). If no existing email address matches replaceId, the new email address is added to the list of email addresses. Example: ?replaceId=e1
Apiture-Challenge
(header)
string
The unique identifier of a Challenge resource which demonstrates the user has recently verified their identity. See the discussion of Multi-factor authentication challenges above. The value must be the _id string of a valid, redeamable Challenge resource which matches the challenge context.
body
(body)
userEmailAddress (required)
The data necessary to create a new email address.
userId
(path)
string (required)
The unique identifier of the user. This is an opaque string.

Example responses

201 Response

{
  "_id": "pe1",
  "_profile": "https://api.apiture.com/schemas/users/userEmailAddress/v1.0.0/profile.json",
  "type": "personal",
  "number": "555-555-5555",
  "state": "approved",
  "_links": {
    "self": {
      "href": "/users/users/f2d87aa6-33c8-458c-819b-41bb00f1ec08/emailAddresses/pe1"
    },
    "delete": {
      "href": "/users/users/f2d87aa6-33c8-458c-819b-41bb00f1ec08/emailAddresses/pe1"
    },
    "apiture:setAsPreferred": {
      "href": "/users/users/f2d87aa6-33c8-458c-819b-41bb00f1ec08/preferredEmailAddresses?value=pe1"
    }
  }
}

Responses

StatusDescription
201 Created
Created
Schema: userEmailAddress
400 Bad Request
Bad Request. The request body or one or more of the query parameters was not well formed. The _error field in the response will contain details about the request error.
Schema: errorResponse
409 Conflict
Conflict. The selected profile value cannot be set as the preferred because it is still pending, or no Apiture-Challenge request header was passed when expected, or the challenge has not been verified, has expired, or has been redeemed too many times.
Schema: challengeErrorResponse

Response Headers

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 scheme://host
201 ETag string
The ETag response header specifies an entity tag which may be provided in an If-Match request header for PUT or PATCH operations which update the resource.

getEmailAddress

Code samples

# You can also use wget
curl -X GET /users/users/{userId}/emailAddresses/{emailAddressId} \
  -H 'Accept: application/hal+json' \
  -H 'If-None-Match: string' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

GET /users/users/{userId}/emailAddresses/{emailAddressId} HTTP/1.1

Accept: application/hal+json
If-None-Match: string

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

};

$.ajax({
  url: '/users/users/{userId}/emailAddresses/{emailAddressId}',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/hal+json',
  'If-None-Match':'string',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

fetch('/users/users/{userId}/emailAddresses/{emailAddressId}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/hal+json',
  'If-None-Match' => 'string',
  'API-Key' => 'API_KEY',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get '/users/users/{userId}/emailAddresses/{emailAddressId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/hal+json',
  'If-None-Match': 'string',
  'API-Key': 'API_KEY',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('/users/users/{userId}/emailAddresses/{emailAddressId}', params={

}, headers = headers)

print r.json()

URL obj = new URL("/users/users/{userId}/emailAddresses/{emailAddressId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/hal+json"},
        "If-None-Match": []string{"string"},
        "API-Key": []string{"API_KEY"},
        "Authorization": []string{"Bearer {access-token}"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/users/users/{userId}/emailAddresses/{emailAddressId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

Fetch a representation of this email address

GET /users/{userId}/emailAddresses/{emailAddressId}

Return a HAL representation of this email address resource.

Parameters

Parameter Description
If-None-Match
(header)
string
The entity tag that was returned in the ETag response. If the resource's current entity tag matches, the GET will return 304 (Not Modified) and no response body, else the resource representation will be returned.
userId
(path)
string (required)
The unique identifier of the user. This is an opaque string.
emailAddressId
(path)
string (required)
The unique identifier of this email address. This is an opaque string.

Example responses

200 Response

{
  "_id": "pe1",
  "_profile": "https://api.apiture.com/schemas/users/userEmailAddress/v1.0.0/profile.json",
  "type": "personal",
  "number": "555-555-5555",
  "state": "approved",
  "_links": {
    "self": {
      "href": "/users/users/f2d87aa6-33c8-458c-819b-41bb00f1ec08/emailAddresses/pe1"
    },
    "delete": {
      "href": "/users/users/f2d87aa6-33c8-458c-819b-41bb00f1ec08/emailAddresses/pe1"
    },
    "apiture:setAsPreferred": {
      "href": "/users/users/f2d87aa6-33c8-458c-819b-41bb00f1ec08/preferredEmailAddresses?value=pe1"
    }
  }
}

Responses

StatusDescription
200 OK
OK
Schema: userEmailAddress
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 email address resource at the specified {emailAddressId}. The _error field in the response will contain details about the request error.
Schema: errorResponse

Response Headers

StatusDescription
200 ETag string
The ETag response header specifies an entity tag which may be provided in an If-Match request header for PUT or PATCH operations which update this email address resource.

deleteEmailAddress

Code samples

# You can also use wget
curl -X DELETE /users/users/{userId}/emailAddresses/{emailAddressId} \
  -H 'Accept: application/hal+json' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

DELETE /users/users/{userId}/emailAddresses/{emailAddressId} HTTP/1.1

Accept: application/hal+json

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

};

$.ajax({
  url: '/users/users/{userId}/emailAddresses/{emailAddressId}',
  method: 'delete',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

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

};

fetch('/users/users/{userId}/emailAddresses/{emailAddressId}',
{
  method: 'DELETE',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

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

result = RestClient.delete '/users/users/{userId}/emailAddresses/{emailAddressId}',
  params: {
  }, headers: headers

p JSON.parse(result)

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

r = requests.delete('/users/users/{userId}/emailAddresses/{emailAddressId}', params={

}, headers = headers)

print r.json()

URL obj = new URL("/users/users/{userId}/emailAddresses/{emailAddressId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/hal+json"},
        "API-Key": []string{"API_KEY"},
        "Authorization": []string{"Bearer {access-token}"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("DELETE", "/users/users/{userId}/emailAddresses/{emailAddressId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

Delete this email address resource

DELETE /users/{userId}/emailAddresses/{emailAddressId}

Delete this email address. The email address can only be deleted if it is not the user's preferred email address.

Parameters

Parameter Description
userId
(path)
string (required)
The unique identifier of the user. This is an opaque string.
emailAddressId
(path)
string (required)
The unique identifier of this email address. This is an opaque string.

Example responses

409 Response

{
  "_profile": "https://api.apiture.com/schemas/common/errorResponse/v1.0.0/profile.json",
  "_error": {
    "_id": "2eae46e1-575c-4d69-8a8f-0a7b0115a4b3",
    "message": "The value for deposit must be greater than 0.",
    "statusCode": 422,
    "type": "positiveNumberRequired",
    "attributes": {
      "value": -125.5
    },
    "remediation": "Provide a value which is greater than 0",
    "occurredAt": "2018-01-25T05:50:52.375Z",
    "_links": {
      "describedby": {
        "href": "https://api.apiture.com/errors/positiveNumberRequired"
      }
    },
    "_embedded": {
      "errors": []
    }
  }
}

Responses

StatusDescription
204 No Content
No Content. The resource was deleted successfully.
409 Conflict
Conflict. The selected email address cannot be deleted because it is currently the user's preferred email address.
Schema: errorResponse

setPreferredEmailAddress

Code samples

# You can also use wget
curl -X PUT /users/users/{userId}/preferredEmailAddress \
  -H 'Accept: application/hal+json' \
  -H 'Apiture-Challenge: string' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

PUT /users/users/{userId}/preferredEmailAddress HTTP/1.1

Accept: application/hal+json
Apiture-Challenge: string

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

};

$.ajax({
  url: '/users/users/{userId}/preferredEmailAddress',
  method: 'put',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

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

};

fetch('/users/users/{userId}/preferredEmailAddress',
{
  method: 'PUT',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/hal+json',
  'Apiture-Challenge' => 'string',
  'API-Key' => 'API_KEY',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.put '/users/users/{userId}/preferredEmailAddress',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/hal+json',
  'Apiture-Challenge': 'string',
  'API-Key': 'API_KEY',
  'Authorization': 'Bearer {access-token}'
}

r = requests.put('/users/users/{userId}/preferredEmailAddress', params={

}, headers = headers)

print r.json()

URL obj = new URL("/users/users/{userId}/preferredEmailAddress");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PUT");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/hal+json"},
        "Apiture-Challenge": []string{"string"},
        "API-Key": []string{"API_KEY"},
        "Authorization": []string{"Bearer {access-token}"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PUT", "/users/users/{userId}/preferredEmailAddress", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

Set Preferred Email Address

PUT /users/{userId}/preferredEmailAddress

Set the user's preferred email address. The user may set their preferred email address to an approved address by passing its unique _id in the value query parameter. This updates the preferredEmailAddressId property of the user.

This operation may require the user to complete an additional authentication challenge as described in Multi-factor authentication challenges above. A valid Apiture-Challenge request header may be required.

This operation is available via the apiture:setAsPreferred link on an email address if that resource is eligible to be set as the preferred email address.

No changes are made if the specified email address is already the preferred email address.

Parameters

Parameter Description
value
(query)
string
The _id of the email address to assign as the preferred email address. If this query parameter exists, the request body, if any, is ignored. Example: ?value=pe0
Apiture-Challenge
(header)
string
The unique identifier of a Challenge resource which demonstrates the user has recently verified their identity. See the discussion of Multi-factor authentication challenges above. The value must be the _id string of a valid, redeamable Challenge resource which matches the challenge context.
userId
(path)
string (required)
The unique identifier of the user. This is an opaque string.

Example responses

200 Response

{
  "_id": "9604e5f8-da29-4197-b6fb-60a1cfecfba8",
  "_profile": "https://api.apiture.com/schemas/users/user/v1.0.0/profile.json",
  "username": "Johnny1733",
  "firstName": "John",
  "middleName": "Daniel",
  "lastName": "Smith",
  "preferredName": "John",
  "identification": [
    {
      "value": "111-11-1111",
      "type": "taxId",
      "emailAddresses": [
        {
          "_id": "pe0",
          "type": "personal",
          "value": "johnny1733@example.com"
        },
        {
          "_id": "we0",
          "type": "work",
          "value": "support@apiture.com"
        }
      ]
    }
  ],
  "customerId": "00047294723672",
  "phones": [
    {
      "_id": "hp0",
      "type": "home",
      "number": "(555) 555-5555"
    },
    {
      "_id": "mp0",
      "type": "mobile",
      "number": "(999) 555-5555"
    }
  ],
  "birthdate": "1974-10-27",
  "citizenship": [
    {
      "countryCode": "US",
      "state": "citizen"
    }
  ],
  "occupation": "Software Engineer",
  "addresses": [
    {
      "_id": "ha0",
      "type": "home",
      "addressLine1": "555 N Front Street",
      "addressLine2": "Suite 5555",
      "city": "Wilmington",
      "regionCode": "NC",
      "postalCode": "28401-5405",
      "countryCode": "US"
    },
    {
      "_id": "ha1",
      "type": "home",
      "addressLine1": "123 S 3rd Street",
      "addressLine2": "Apt 42",
      "city": "Wilmington",
      "regionCode": "NC",
      "postalCode": "28411-5405",
      "countryCode": "Use"
    }
  ],
  "state": "active",
  "attributes": {},
  "_links": {
    "self": {
      "href": "/users/users/9604e5f8-da29-4197-b6fb-60a1cfecfba8"
    },
    "apiture:deactivate": {
      "href": "/users/inactiveUsers?user=9604e5f8-da29-4197-b6fb-60a1cfecfba8"
    },
    "apiture:lock": {
      "href": "/users/lockedUsers?user=9604e5f8-da29-4197-b6fb-60a1cfecfba8"
    },
    "apiture:freeze": {
      "href": "/users/frozenUsers?user=9604e5f8-da29-4197-b6fb-60a1cfecfba8"
    },
    "apiture:remove": {
      "href": "/users/removedUsers?user=9604e5f8-da29-4197-b6fb-60a1cfecfba8"
    }
  },
  "createdAt": "2018-03-09T20:14:32Z",
  "lastLoggedInAt": "2019-07-09T10:24:00Z",
  "lastContactedAt": "2019-07-16T06:00:00Z"
}

Responses

StatusDescription
200 OK
OK. The user's preferredEmailAddressId is updated to the passed value.
Schema: user
409 Conflict
Conflict. The selected profile value cannot be set as the preferred because it is still pending, or no Apiture-Challenge request header was passed when expected, or the challenge has not been verified, has expired, or has been redeemed too many times.
Schema: challengeErrorResponse
422 Unprocessable Entity
Unprocessable Entity. The request to set a preferred profile value cannot be processed because no such profile value value exists, or the passed challenge does not exist.
Schema: errorResponse

Response Headers

StatusDescription
200 ETag string
The ETag response header specifies an entity tag which may be provided in an If-Match request header for PUT or PATCH operations which update this user resource.

Phone Number

getPhoneNumbers

Code samples

# You can also use wget
curl -X GET /users/users/{userId}/phoneNumbers \
  -H 'Accept: application/hal+json' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

GET /users/users/{userId}/phoneNumbers HTTP/1.1

Accept: application/hal+json

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

};

$.ajax({
  url: '/users/users/{userId}/phoneNumbers',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

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

};

fetch('/users/users/{userId}/phoneNumbers',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

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

result = RestClient.get '/users/users/{userId}/phoneNumbers',
  params: {
  }, headers: headers

p JSON.parse(result)

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

r = requests.get('/users/users/{userId}/phoneNumbers', params={

}, headers = headers)

print r.json()

URL obj = new URL("/users/users/{userId}/phoneNumbers");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/hal+json"},
        "API-Key": []string{"API_KEY"},
        "Authorization": []string{"Bearer {access-token}"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/users/users/{userId}/phoneNumbers", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

Get user's phone numbers

GET /users/{userId}/phoneNumbers

Return the list of the user's phone numbers

Parameters

Parameter Description
userId
(path)
string (required)
The unique identifier of the user. This is an opaque string.

Example responses

200 Response

{
  "_profile": "https://api.apiture.com/schemas/users/userPhoneNumbers/v1.0.0/profile.json",
  "items": [
    {
      "_id": "mp0",
      "type": "mobile",
      "label": "Mobile",
      "number": "555-555-5555",
      "state": "approved",
      "_profile": "https://api.apiture.com/schemas/users/userPhoneNumber/v1.0.0/profile.json",
      "_links": {
        "self": {
          "href": "/users/users/9b0387db-8705-469a-852c-ead8bfd872ba/phoneNumbers/mp0"
        }
      }
    },
    {
      "_id": "mp2",
      "type": "home",
      "label": "Home",
      "number": "555-444-4444",
      "state": "approved",
      "_profile": "https://api.apiture.com/schemas/users/userPhoneNumber/v1.0.0/profile.json",
      "_links": {
        "self": {
          "href": "/users/users/9b0387db-8705-469a-852c-ead8bfd872ba/phoneNumbers/mp2"
        }
      }
    }
  ],
  "_links": {
    "self": {
      "href": "/users/users/9b0387db-8705-469a-852c-ead8bfd872ba/phoneNumbers"
    }
  }
}

Responses

StatusDescription
200 OK
OK
Schema: userPhoneNumbers
400 Bad Request
Bad Request. The request body or one or more of the query parameters was not well formed. The _error field in the response will contain details about the request error.
Schema: errorResponse
422 Unprocessable Entity
Unprocessable Entity. One or more of the query parameters was well formed but otherwise invalid. The _error field in the response will contain details about the request error.
Schema: errorResponse

createPhoneNumber

Code samples

# You can also use wget
curl -X POST /users/users/{userId}/phoneNumbers \
  -H 'Content-Type: application/hal+json' \
  -H 'Accept: application/hal+json' \
  -H 'Apiture-Challenge: string' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

POST /users/users/{userId}/phoneNumbers HTTP/1.1

Content-Type: application/hal+json
Accept: application/hal+json
Apiture-Challenge: string

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

};

$.ajax({
  url: '/users/users/{userId}/phoneNumbers',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');
const inputBody = '{
  "_id": "hp1",
  "_profile": "https://api.apiture.com/schemas/users/userPhoneNumber/v1.0.0/profile.json",
  "type": "home",
  "number": "555-555-5555",
  "state": "approved",
  "_links": {
    "self": {
      "href": "/users/users/9b0387db-8705-469a-852c-ead8bfd872ba/phoneNumbers/hp1"
    }
  }
}';
const headers = {
  'Content-Type':'application/hal+json',
  'Accept':'application/hal+json',
  'Apiture-Challenge':'string',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

fetch('/users/users/{userId}/phoneNumbers',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/hal+json',
  'Accept' => 'application/hal+json',
  'Apiture-Challenge' => 'string',
  'API-Key' => 'API_KEY',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.post '/users/users/{userId}/phoneNumbers',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/hal+json',
  'Accept': 'application/hal+json',
  'Apiture-Challenge': 'string',
  'API-Key': 'API_KEY',
  'Authorization': 'Bearer {access-token}'
}

r = requests.post('/users/users/{userId}/phoneNumbers', params={

}, headers = headers)

print r.json()

URL obj = new URL("/users/users/{userId}/phoneNumbers");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/hal+json"},
        "Accept": []string{"application/hal+json"},
        "Apiture-Challenge": []string{"string"},
        "API-Key": []string{"API_KEY"},
        "Authorization": []string{"Bearer {access-token}"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("POST", "/users/users/{userId}/phoneNumbers", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

Create a new phone number

POST /users/{userId}/phoneNumbers

Add a phone number to the list of the user's phone numbers. The new number will be pending until the financial institution has reviewed and approved it, after which it will become approved.

This operation may require the user to complete an additional authentication challenge as described in Multi-factor authentication challenges above. A valid Apiture-Challenge request header may be required if the ?replaceId parameter is used and the profile item being replaced is the preferred phone number. See Multi-factor authentication challenges above.

Body parameter

{
  "_id": "hp1",
  "_profile": "https://api.apiture.com/schemas/users/userPhoneNumber/v1.0.0/profile.json",
  "type": "home",
  "number": "555-555-5555",
  "state": "approved",
  "_links": {
    "self": {
      "href": "/users/users/9b0387db-8705-469a-852c-ead8bfd872ba/phoneNumbers/hp1"
    }
  }
}

Parameters

Parameter Description
replaceId
(query)
string
An optional _id of an existing phone number to be replaced with this new phone number instead of adding a new phone number, once it has been approved. If replaceId matches the _id of the preferred phone number the preferredPhoneNumberId will also be updated to the value of replaceId once approved (the Apiture-Challenge header may be required also). If no existing phone number matches replaceId, the new phone number is added to the list of phone numbers. Example: ?replaceId=p1
Apiture-Challenge
(header)
string
The unique identifier of a Challenge resource which demonstrates the user has recently verified their identity. See the discussion of Multi-factor authentication challenges above. The value must be the _id string of a valid, redeamable Challenge resource which matches the challenge context.
body
(body)
userPhoneNumber (required)
The data necessary to create a new phone number.
userId
(path)
string (required)
The unique identifier of the user. This is an opaque string.

Example responses

201 Response

{
  "_id": "hp1",
  "_profile": "https://api.apiture.com/schemas/users/userPhoneNumber/v1.0.0/profile.json",
  "type": "home",
  "number": "555-555-5555",
  "state": "approved",
  "_links": {
    "self": {
      "href": "/users/users/9b0387db-8705-469a-852c-ead8bfd872ba/phoneNumbers/hp1"
    }
  }
}

Responses

StatusDescription
201 Created
Created
Schema: userPhoneNumber
400 Bad Request
Bad Request. The request body or one or more of the query parameters was not well formed. The _error field in the response will contain details about the request error.
Schema: errorResponse
409 Conflict
Conflict. The selected profile value cannot be set as the preferred because it is still pending, or no Apiture-Challenge request header was passed when expected, or the challenge has not been verified, has expired, or has been redeemed too many times.
Schema: challengeErrorResponse

Response Headers

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 scheme://host
201 ETag string
The ETag response header specifies an entity tag which may be provided in an If-Match request header for PUT or PATCH operations which update the resource.

getPhoneNumber

Code samples

# You can also use wget
curl -X GET /users/users/{userId}/phoneNumbers/{phoneNumberId} \
  -H 'Accept: application/hal+json' \
  -H 'If-None-Match: string' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

GET /users/users/{userId}/phoneNumbers/{phoneNumberId} HTTP/1.1

Accept: application/hal+json
If-None-Match: string

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

};

$.ajax({
  url: '/users/users/{userId}/phoneNumbers/{phoneNumberId}',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/hal+json',
  'If-None-Match':'string',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

fetch('/users/users/{userId}/phoneNumbers/{phoneNumberId}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/hal+json',
  'If-None-Match' => 'string',
  'API-Key' => 'API_KEY',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get '/users/users/{userId}/phoneNumbers/{phoneNumberId}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/hal+json',
  'If-None-Match': 'string',
  'API-Key': 'API_KEY',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('/users/users/{userId}/phoneNumbers/{phoneNumberId}', params={

}, headers = headers)

print r.json()

URL obj = new URL("/users/users/{userId}/phoneNumbers/{phoneNumberId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/hal+json"},
        "If-None-Match": []string{"string"},
        "API-Key": []string{"API_KEY"},
        "Authorization": []string{"Bearer {access-token}"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/users/users/{userId}/phoneNumbers/{phoneNumberId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

Fetch a representation of this phone number

GET /users/{userId}/phoneNumbers/{phoneNumberId}

Return a HAL representation of this phone number resource.

Parameters

Parameter Description
If-None-Match
(header)
string
The entity tag that was returned in the ETag response. If the resource's current entity tag matches, the GET will return 304 (Not Modified) and no response body, else the resource representation will be returned.
userId
(path)
string (required)
The unique identifier of the user. This is an opaque string.
phoneNumberId
(path)
string (required)
The unique identifier of this phone number. This is an opaque string.

Example responses

200 Response

{
  "_id": "hp1",
  "_profile": "https://api.apiture.com/schemas/users/userPhoneNumber/v1.0.0/profile.json",
  "type": "home",
  "number": "555-555-5555",
  "state": "approved",
  "_links": {
    "self": {
      "href": "/users/users/9b0387db-8705-469a-852c-ead8bfd872ba/phoneNumbers/hp1"
    }
  }
}

Responses

StatusDescription
200 OK
OK
Schema: userPhoneNumber
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 phone number resource at the specified {phoneNumberId}. The _error field in the response will contain details about the request error.
Schema: errorResponse

Response Headers

StatusDescription
200 ETag string
The ETag response header specifies an entity tag which may be provided in an If-Match request header for PUT or PATCH operations which update this phone number resource.

deletePhoneNumber

Code samples

# You can also use wget
curl -X DELETE /users/users/{userId}/phoneNumbers/{phoneNumberId} \
  -H 'Accept: application/hal+json' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

DELETE /users/users/{userId}/phoneNumbers/{phoneNumberId} HTTP/1.1

Accept: application/hal+json

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

};

$.ajax({
  url: '/users/users/{userId}/phoneNumbers/{phoneNumberId}',
  method: 'delete',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

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

};

fetch('/users/users/{userId}/phoneNumbers/{phoneNumberId}',
{
  method: 'DELETE',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

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

result = RestClient.delete '/users/users/{userId}/phoneNumbers/{phoneNumberId}',
  params: {
  }, headers: headers

p JSON.parse(result)

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

r = requests.delete('/users/users/{userId}/phoneNumbers/{phoneNumberId}', params={

}, headers = headers)

print r.json()

URL obj = new URL("/users/users/{userId}/phoneNumbers/{phoneNumberId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/hal+json"},
        "API-Key": []string{"API_KEY"},
        "Authorization": []string{"Bearer {access-token}"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("DELETE", "/users/users/{userId}/phoneNumbers/{phoneNumberId}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

Delete this phone number resource

DELETE /users/{userId}/phoneNumbers/{phoneNumberId}

Delete this phone number. The number can only be deleted if it is not the user's preferred phone number.

Parameters

Parameter Description
userId
(path)
string (required)
The unique identifier of the user. This is an opaque string.
phoneNumberId
(path)
string (required)
The unique identifier of this phone number. This is an opaque string.

Example responses

409 Response

{
  "_profile": "https://api.apiture.com/schemas/common/errorResponse/v1.0.0/profile.json",
  "_error": {
    "_id": "2eae46e1-575c-4d69-8a8f-0a7b0115a4b3",
    "message": "The value for deposit must be greater than 0.",
    "statusCode": 422,
    "type": "positiveNumberRequired",
    "attributes": {
      "value": -125.5
    },
    "remediation": "Provide a value which is greater than 0",
    "occurredAt": "2018-01-25T05:50:52.375Z",
    "_links": {
      "describedby": {
        "href": "https://api.apiture.com/errors/positiveNumberRequired"
      }
    },
    "_embedded": {
      "errors": []
    }
  }
}

Responses

StatusDescription
204 No Content
No Content. The resource was deleted successfully.
409 Conflict
Conflict. The selected phone number cannot be deleted because it is currently the user's preferred phone number.
Schema: errorResponse

setPreferredPhoneNumber

Code samples

# You can also use wget
curl -X PUT /users/users/{userId}/preferredPhoneNumber \
  -H 'Accept: application/hal+json' \
  -H 'Apiture-Challenge: string' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

PUT /users/users/{userId}/preferredPhoneNumber HTTP/1.1

Accept: application/hal+json
Apiture-Challenge: string

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

};

$.ajax({
  url: '/users/users/{userId}/preferredPhoneNumber',
  method: 'put',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

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

};

fetch('/users/users/{userId}/preferredPhoneNumber',
{
  method: 'PUT',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/hal+json',
  'Apiture-Challenge' => 'string',
  'API-Key' => 'API_KEY',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.put '/users/users/{userId}/preferredPhoneNumber',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/hal+json',
  'Apiture-Challenge': 'string',
  'API-Key': 'API_KEY',
  'Authorization': 'Bearer {access-token}'
}

r = requests.put('/users/users/{userId}/preferredPhoneNumber', params={

}, headers = headers)

print r.json()

URL obj = new URL("/users/users/{userId}/preferredPhoneNumber");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PUT");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/hal+json"},
        "Apiture-Challenge": []string{"string"},
        "API-Key": []string{"API_KEY"},
        "Authorization": []string{"Bearer {access-token}"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PUT", "/users/users/{userId}/preferredPhoneNumber", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

Set Preferred Phone Number

PUT /users/{userId}/preferredPhoneNumber

Set the user's preferred phone number. The user may set their preferred phone number to an approved number by passing its unique _id in the value query parameter. This updates the preferredPhoneNumberId property of the user.

This operation may require the user to complete an additional authentication challenge as described in Multi-factor authentication challenges above. A valid Apiture-Challenge request header may be required.

This operation is available via the apiture:setAsPreferred link on an phone number if that resource is eligible to be set as the preferred phone number.

No changes are made if the specified phone number is already the preferred phone number.

Parameters

Parameter Description
value
(query)
string
The _id of the number to assign as the preferred phone number. If this query parameter exists, the request body, if any, is ignored. Example: ?value=pe0
Apiture-Challenge
(header)
string
The unique identifier of a Challenge resource which demonstrates the user has recently verified their identity. See the discussion of Multi-factor authentication challenges above. The value must be the _id string of a valid, redeamable Challenge resource which matches the challenge context.
userId
(path)
string (required)
The unique identifier of the user. This is an opaque string.

Example responses

200 Response

{
  "_id": "9604e5f8-da29-4197-b6fb-60a1cfecfba8",
  "_profile": "https://api.apiture.com/schemas/users/user/v1.0.0/profile.json",
  "username": "Johnny1733",
  "firstName": "John",
  "middleName": "Daniel",
  "lastName": "Smith",
  "preferredName": "John",
  "identification": [
    {
      "value": "111-11-1111",
      "type": "taxId",
      "emailAddresses": [
        {
          "_id": "pe0",
          "type": "personal",
          "value": "johnny1733@example.com"
        },
        {
          "_id": "we0",
          "type": "work",
          "value": "support@apiture.com"
        }
      ]
    }
  ],
  "customerId": "00047294723672",
  "phones": [
    {
      "_id": "hp0",
      "type": "home",
      "number": "(555) 555-5555"
    },
    {
      "_id": "mp0",
      "type": "mobile",
      "number": "(999) 555-5555"
    }
  ],
  "birthdate": "1974-10-27",
  "citizenship": [
    {
      "countryCode": "US",
      "state": "citizen"
    }
  ],
  "occupation": "Software Engineer",
  "addresses": [
    {
      "_id": "ha0",
      "type": "home",
      "addressLine1": "555 N Front Street",
      "addressLine2": "Suite 5555",
      "city": "Wilmington",
      "regionCode": "NC",
      "postalCode": "28401-5405",
      "countryCode": "US"
    },
    {
      "_id": "ha1",
      "type": "home",
      "addressLine1": "123 S 3rd Street",
      "addressLine2": "Apt 42",
      "city": "Wilmington",
      "regionCode": "NC",
      "postalCode": "28411-5405",
      "countryCode": "Use"
    }
  ],
  "state": "active",
  "attributes": {},
  "_links": {
    "self": {
      "href": "/users/users/9604e5f8-da29-4197-b6fb-60a1cfecfba8"
    },
    "apiture:deactivate": {
      "href": "/users/inactiveUsers?user=9604e5f8-da29-4197-b6fb-60a1cfecfba8"
    },
    "apiture:lock": {
      "href": "/users/lockedUsers?user=9604e5f8-da29-4197-b6fb-60a1cfecfba8"
    },
    "apiture:freeze": {
      "href": "/users/frozenUsers?user=9604e5f8-da29-4197-b6fb-60a1cfecfba8"
    },
    "apiture:remove": {
      "href": "/users/removedUsers?user=9604e5f8-da29-4197-b6fb-60a1cfecfba8"
    }
  },
  "createdAt": "2018-03-09T20:14:32Z",
  "lastLoggedInAt": "2019-07-09T10:24:00Z",
  "lastContactedAt": "2019-07-16T06:00:00Z"
}

Responses

StatusDescription
200 OK
OK. The user's preferredPhoneNumberId is updated to the passed value.
Schema: user
409 Conflict
Conflict. The selected profile value cannot be set as the preferred because it is still pending, or no Apiture-Challenge request header was passed when expected, or the challenge has not been verified, has expired, or has been redeemed too many times.
Schema: challengeErrorResponse
422 Unprocessable Entity
Unprocessable Entity. The request to set a preferred profile value cannot be processed because no such profile value value exists, or the passed challenge does not exist.
Schema: errorResponse

Response Headers

StatusDescription
200 ETag string
The ETag response header specifies an entity tag which may be provided in an If-Match request header for PUT or PATCH operations which update this user resource.

Configuration

getConfigurationGroups

Code samples

# You can also use wget
curl -X GET /users/configurations/groups \
  -H 'Accept: application/hal+json' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

GET /users/configurations/groups HTTP/1.1

Accept: application/hal+json

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

};

$.ajax({
  url: '/users/configurations/groups',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

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

};

fetch('/users/configurations/groups',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

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

result = RestClient.get '/users/configurations/groups',
  params: {
  }, headers: headers

p JSON.parse(result)

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

r = requests.get('/users/configurations/groups', params={

}, headers = headers)

print r.json()

URL obj = new URL("/users/configurations/groups");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/hal+json"},
        "API-Key": []string{"API_KEY"},
        "Authorization": []string{"Bearer {access-token}"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/users/configurations/groups", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

Return a collection of configuration groups

GET /configurations/groups

Return a paginated sortable filterable searchable collection of configuration groups. The links in the response include pagination links.

Parameters

Parameter Description
start
(query)
integer(int64)
The zero-based index of the first configuration group item to include in this page. The default 0 denotes the beginning of the collection.
limit
(query)
integer(int32)
The maximum number of configuration group representations to return in this page.
sortBy
(query)
string
Optional sort criteria. See sort criteria format, such as ?sortBy=field1,-field2.
filter
(query)
string
Optional filter criteria. See filtering.
q
(query)
string
Optional search string. See searching.

Example responses

200 Response

{
  "_profile": "http://localhost:8080/schemas/configurations/configurationGroups/v1.0.0/profile.json",
  "start": 10,
  "limit": 10,
  "count": 67,
  "name": "configurationGroups",
  "_links": {
    "self": {
      "href": "/configurations/configurations/groups?start=10&limit=10"
    },
    "first": {
      "href": "/configurations/configurations/groups?start=0&limit=10"
    },
    "next": {
      "href": "/configurations/configurations/groups?start=20&limit=10"
    },
    "collection": {
      "href": "/configurations/configurations/groups"
    }
  },
  "_embedded": {
    "items": [
      {
        "_profile": "https://api.apiture.com/schemas/configurations/configurationGroup/v1.0.0/profile.json",
        "_links": {
          "self": {
            "href": "/configurations/groups/basic"
          },
          "apiture:configuration": {
            "href": "/configurations"
          }
        },
        "name": "basic",
        "label": "Basic Settings",
        "description": "The basic settings for the Transfers API"
      },
      {
        "_profile": "https://api.apiture.com/schemas/configurations/configurationGroup/v1.0.0/profile.json",
        "_links": {
          "self": {
            "href": "/configurations/groups/calendar"
          },
          "apiture:configuration": {
            "href": "/configurations"
          }
        },
        "name": "calendar",
        "label": "Calendar",
        "description": "A calendar that specifies which dates are valid for performing transfers (e.g., weekdays excluding federal holidays)"
      }
    ]
  }
}

Responses

StatusDescription
200 OK
OK
Schema: configurationGroups
400 Bad Request
Bad Request. The request body or one or more of the query parameters was not well formed. The _error field in the response will contain details about the request error.
Schema: errorResponse
422 Unprocessable Entity
Unprocessable Entity. One or more of the query parameters was well formed but otherwise invalid. The _error field in the response will contain details about the request error.
Schema: errorResponse

getConfigurationGroup

Code samples

# You can also use wget
curl -X GET /users/configurations/groups/{groupName} \
  -H 'Accept: application/hal+json' \
  -H 'If-None-Match: string' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

GET /users/configurations/groups/{groupName} HTTP/1.1

Accept: application/hal+json
If-None-Match: string

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

};

$.ajax({
  url: '/users/configurations/groups/{groupName}',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/hal+json',
  'If-None-Match':'string',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

fetch('/users/configurations/groups/{groupName}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/hal+json',
  'If-None-Match' => 'string',
  'API-Key' => 'API_KEY',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get '/users/configurations/groups/{groupName}',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/hal+json',
  'If-None-Match': 'string',
  'API-Key': 'API_KEY',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('/users/configurations/groups/{groupName}', params={

}, headers = headers)

print r.json()

URL obj = new URL("/users/configurations/groups/{groupName}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/hal+json"},
        "If-None-Match": []string{"string"},
        "API-Key": []string{"API_KEY"},
        "Authorization": []string{"Bearer {access-token}"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/users/configurations/groups/{groupName}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

Fetch a representation of this configuration group

GET /configurations/groups/{groupName}

Return a HAL representation of this configuration group resource.

Parameters

Parameter Description
groupName
(path)
string (required)
The unique name of this configuration group.
If-None-Match
(header)
string
The entity tag that was returned in the ETag response. If the resource's current entity tag matches, the GET will return 304 (Not Modified) and no response body, else the resource representation will be returned.

Example responses

200 Response

{
  "_profile": "https://api.apiture.com/schemas/configurations/configurationGroup/v1.0.0/profile.json",
  "_links": {
    "self": {
      "href": "/configurations/groups/basic"
    },
    "apiture:configuration": {
      "href": "/configurations"
    }
  },
  "name": "basic",
  "label": "Basic Settings",
  "description": "The basic settings for the Transfers API",
  "schema": {
    "type": "object",
    "properties": {
      "dailyLimit": {
        "type": "number",
        "description": "The daily limit for the number of transfers"
      },
      "cutoffTime": {
        "type": "string",
        "format": "time",
        "description": "The cutoff time for scheduling transfers for the current day"
      }
    }
  },
  "values": {
    "dailyLimit": 5,
    "cutoffTime": "17:30:00"
  }
}

Responses

StatusDescription
200 OK
OK
Schema: configurationGroup
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 configuration group resource at the specified {groupName} The _error field in the response will contain details about the request error.
Schema: errorResponse

Response Headers

StatusDescription
200 ETag string
The ETag response header specifies an entity tag which may be provided in an If-None-Match request header for GET operations for this configuration group resource.

getConfigurationGroupSchema

Code samples

# You can also use wget
curl -X GET /users/configurations/groups/{groupName}/schema \
  -H 'Accept: application/hal+json' \
  -H 'If-None-Match: string' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

GET /users/configurations/groups/{groupName}/schema HTTP/1.1

Accept: application/hal+json
If-None-Match: string

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

};

$.ajax({
  url: '/users/configurations/groups/{groupName}/schema',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/hal+json',
  'If-None-Match':'string',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

fetch('/users/configurations/groups/{groupName}/schema',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/hal+json',
  'If-None-Match' => 'string',
  'API-Key' => 'API_KEY',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get '/users/configurations/groups/{groupName}/schema',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/hal+json',
  'If-None-Match': 'string',
  'API-Key': 'API_KEY',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('/users/configurations/groups/{groupName}/schema', params={

}, headers = headers)

print r.json()

URL obj = new URL("/users/configurations/groups/{groupName}/schema");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/hal+json"},
        "If-None-Match": []string{"string"},
        "API-Key": []string{"API_KEY"},
        "Authorization": []string{"Bearer {access-token}"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/users/configurations/groups/{groupName}/schema", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

Fetch the schema for this configuration group

GET /configurations/groups/{groupName}/schema

Return a HAL representation of this configuration group schema resource.

Parameters

Parameter Description
groupName
(path)
string (required)
The unique name of this configuration group.
If-None-Match
(header)
string
The entity tag that was returned in the ETag response. If the resource's current entity tag matches, the GET will return 304 (Not Modified) and no response body, else the resource representation will be returned.

Example responses

200 Response

{
  "type": "object",
  "properties": {
    "dailyLimit": {
      "type": "number",
      "description": "The daily limit for the number of transfers"
    },
    "cutoffTime": {
      "type": "string",
      "format": "time",
      "description": "The cutoff time for scheduling transfers for the current day"
    }
  }
}

Responses

StatusDescription
200 OK
OK
Schema: configurationSchema
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 configuration group resource at the specified {groupName} The _error field in the response will contain details about the request error.
Schema: errorResponse

Response Headers

StatusDescription
200 ETag string
The ETag response header specifies an entity tag which may be provided in an If-Match request header for PUT

getConfigurationGroupValues

Code samples

# You can also use wget
curl -X GET /users/configurations/groups/{groupName}/values \
  -H 'Accept: application/hal+json' \
  -H 'If-None-Match: string' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

GET /users/configurations/groups/{groupName}/values HTTP/1.1

Accept: application/hal+json
If-None-Match: string

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

};

$.ajax({
  url: '/users/configurations/groups/{groupName}/values',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/hal+json',
  'If-None-Match':'string',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

fetch('/users/configurations/groups/{groupName}/values',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/hal+json',
  'If-None-Match' => 'string',
  'API-Key' => 'API_KEY',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.get '/users/configurations/groups/{groupName}/values',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Accept': 'application/hal+json',
  'If-None-Match': 'string',
  'API-Key': 'API_KEY',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('/users/configurations/groups/{groupName}/values', params={

}, headers = headers)

print r.json()

URL obj = new URL("/users/configurations/groups/{groupName}/values");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/hal+json"},
        "If-None-Match": []string{"string"},
        "API-Key": []string{"API_KEY"},
        "Authorization": []string{"Bearer {access-token}"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/users/configurations/groups/{groupName}/values", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

Fetch the values for the specified configuration group

GET /configurations/groups/{groupName}/values

Return a representation of this configuration group values resource.

Parameters

Parameter Description
groupName
(path)
string (required)
The unique name of this configuration group.
If-None-Match
(header)
string
The entity tag that was returned in the ETag response. If the resource's current entity tag matches, the GET will return 304 (Not Modified) and no response body, else the resource representation will be returned.

Example responses

200 Response

{
  "dailyLimit": 5,
  "cutoffTime": "17:30:00"
}

Responses

StatusDescription
200 OK
OK
Schema: configurationValues
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 configuration group resource at the specified {groupName} The _error field in the response will contain details about the request error.
Schema: errorResponse

Response Headers

StatusDescription
200 ETag string
The ETag response header specifies an entity tag which may be provided in an If-Match request header for PUT

updateConfigurationGroupValues

Code samples

# You can also use wget
curl -X PUT /users/configurations/groups/{groupName}/values \
  -H 'Content-Type: application/hal+json' \
  -H 'Accept: application/hal+json' \
  -H 'If-Match: string' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

PUT /users/configurations/groups/{groupName}/values HTTP/1.1

Content-Type: application/hal+json
Accept: application/hal+json
If-Match: string

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

};

$.ajax({
  url: '/users/configurations/groups/{groupName}/values',
  method: 'put',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');
const inputBody = '{
  "dailyLimit": 5,
  "cutoffTime": "17:30:00"
}';
const headers = {
  'Content-Type':'application/hal+json',
  'Accept':'application/hal+json',
  'If-Match':'string',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

fetch('/users/configurations/groups/{groupName}/values',
{
  method: 'PUT',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

headers = {
  'Content-Type' => 'application/hal+json',
  'Accept' => 'application/hal+json',
  'If-Match' => 'string',
  'API-Key' => 'API_KEY',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.put '/users/configurations/groups/{groupName}/values',
  params: {
  }, headers: headers

p JSON.parse(result)

import requests
headers = {
  'Content-Type': 'application/hal+json',
  'Accept': 'application/hal+json',
  'If-Match': 'string',
  'API-Key': 'API_KEY',
  'Authorization': 'Bearer {access-token}'
}

r = requests.put('/users/configurations/groups/{groupName}/values', params={

}, headers = headers)

print r.json()

URL obj = new URL("/users/configurations/groups/{groupName}/values");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PUT");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/hal+json"},
        "Accept": []string{"application/hal+json"},
        "If-Match": []string{"string"},
        "API-Key": []string{"API_KEY"},
        "Authorization": []string{"Bearer {access-token}"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PUT", "/users/configurations/groups/{groupName}/values", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

Update the values for the specified configuration group

PUT /configurations/groups/{groupName}/values

Perform a complete replacement of this set of values

Body parameter

{
  "dailyLimit": 5,
  "cutoffTime": "17:30:00"
}

Parameters

Parameter Description
groupName
(path)
string (required)
The unique name of this configuration group.
If-Match
(header)
string
The entity tag that was returned in the ETag response. If used, this must match the current entity tag of the resource.
body
(body)
configurationValues (required)

Example responses

200 Response

{
  "type": "object",
  "properties": {
    "dailyLimit": {
      "type": "number",
      "description": "The daily limit for the number of transfers"
    },
    "cutoffTime": {
      "type": "string",
      "format": "time",
      "description": "The cutoff time for scheduling transfers for the current day"
    }
  }
}

Responses

StatusDescription
200 OK
OK
Schema: configurationSchema
400 Bad Request
Bad Request. The request body or one or more of the query parameters was not well formed. The _error field in the response will contain details about the request error.
Schema: errorResponse
403 Forbidden
Access denied. Only user allowed to update configurations is an admin.
Schema: errorResponse
404 Not Found
Not Found. There is no such configuration group resource at the specified {groupName} The _error field in the response will contain details about the request error.
Schema: errorResponse
412 Precondition Failed
Precondition Failed. The supplied If-Match header value does not match the most recent ETag response header value. The resource has changed in the interim.
Schema: errorResponse

Response Headers

StatusDescription
200 ETag string
The ETag response header specifies an entity tag which may be provided in an If-Match request header for PUT

getConfigurationGroupValue

Code samples

# You can also use wget
curl -X GET /users/configurations/groups/{groupName}/values/{valueName} \
  -H 'Accept: application/hal+json' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

GET /users/configurations/groups/{groupName}/values/{valueName} HTTP/1.1

Accept: application/hal+json

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

};

$.ajax({
  url: '/users/configurations/groups/{groupName}/values/{valueName}',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

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

};

fetch('/users/configurations/groups/{groupName}/values/{valueName}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

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

result = RestClient.get '/users/configurations/groups/{groupName}/values/{valueName}',
  params: {
  }, headers: headers

p JSON.parse(result)

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

r = requests.get('/users/configurations/groups/{groupName}/values/{valueName}', params={

}, headers = headers)

print r.json()

URL obj = new URL("/users/configurations/groups/{groupName}/values/{valueName}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/hal+json"},
        "API-Key": []string{"API_KEY"},
        "Authorization": []string{"Bearer {access-token}"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("GET", "/users/configurations/groups/{groupName}/values/{valueName}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

Fetch a single value associated with the specified configuration group

GET /configurations/groups/{groupName}/values/{valueName}

Fetch a single value associated with this configuration group. This provides convenient access to individual values of the configuration group. The response is always a JSON value which can be parsed with a strict JSON parser. The response may be

Parameters

Parameter Description
groupName
(path)
string (required)
The unique name of this configuration group.
valueName
(path)
string (required)
The unique name of a value in a configuration group. This is the name of the value in the schema. A {valueName} must be a simple identifier following the pattern letter [letter | digit | '-' | '_']*

Example responses

200 Response

"string"

Responses

StatusDescription
200 OK
OK. The value of the named configuration value as a JSON string, number, boolean, array, or object.
Schema: string
404 Not Found
Not Found. There is either no such configuration group resource at the specified {groupName} or no such value at the specified {valueName}. The _error field in the response will contain details about the request error.
Schema: errorResponse

Response Headers

StatusDescription
200 ETag string
The ETag response header specifies an entity tag which may be provided in an If-Match request header for PUT or PATCH operations which update this configuration group resource.

updateConfigurationGroupValue

Code samples

# You can also use wget
curl -X PUT /users/configurations/groups/{groupName}/values/{valueName} \
  -H 'Content-Type: application/hal+json' \
  -H 'Accept: application/hal+json' \
  -H 'API-Key: API_KEY' \
  -H 'Authorization: Bearer {access-token}'

PUT /users/configurations/groups/{groupName}/values/{valueName} HTTP/1.1

Content-Type: application/hal+json
Accept: application/hal+json

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

};

$.ajax({
  url: '/users/configurations/groups/{groupName}/values/{valueName}',
  method: 'put',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');
const inputBody = 'string';
const headers = {
  'Content-Type':'application/hal+json',
  'Accept':'application/hal+json',
  'API-Key':'API_KEY',
  'Authorization':'Bearer {access-token}'

};

fetch('/users/configurations/groups/{groupName}/values/{valueName}',
{
  method: 'PUT',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

require 'rest-client'
require 'json'

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

result = RestClient.put '/users/configurations/groups/{groupName}/values/{valueName}',
  params: {
  }, headers: headers

p JSON.parse(result)

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

r = requests.put('/users/configurations/groups/{groupName}/values/{valueName}', params={

}, headers = headers)

print r.json()

URL obj = new URL("/users/configurations/groups/{groupName}/values/{valueName}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PUT");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());

package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Content-Type": []string{"application/hal+json"},
        "Accept": []string{"application/hal+json"},
        "API-Key": []string{"API_KEY"},
        "Authorization": []string{"Bearer {access-token}"},
        
    }

    data := bytes.NewBuffer([]byte{jsonReq})
    req, err := http.NewRequest("PUT", "/users/configurations/groups/{groupName}/values/{valueName}", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}

Update a single value associated with the specified configuration group

PUT /configurations/groups/{groupName}/values/{valueName}

Update a single value associated with this configuration group. This provides convenient access to individual values of the configuration group as defined in the configuration group's schema. The request body must conform to the configuration group's schema for the named {valueName}. This operation is idempotent. The request body must be a JSON value which can be parsed with a strict JSON parser. The response may be

Body parameter

"string"

Parameters

Parameter Description
groupName
(path)
string (required)
The unique name of this configuration group.
valueName
(path)
string (required)
The unique name of a value in a configuration group. This is the name of the value in the schema. A {valueName} must be a simple identifier following the pattern letter [letter | digit | '-' | '_']*
body
(body)
string (required)
The request body must a valid JSON value and should be parsable with a JSON parser. The result may be a string, number, boolean, array, or object.

Example responses

200 Response

"string"

Responses

StatusDescription
200 OK
OK
Schema: string
403 Forbidden
Access denied. Only user allowed to update configurations is an admin.
Schema: errorResponse

Response Headers

StatusDescription
200 ETag string
The ETag response header specifies an entity tag which may be provided in an If-Match request header for PUT or PATCH operations which update this configuration group resource.

Schemas

userAddress

{
  "_id": "ha1",
  "type": "home",
  "addressLine1": "555 N Front Street",
  "addressLine2": "Suite 5555",
  "city": "Wilmington",
  "regionCode": "NC",
  "postalCode": "28401-5405",
  "countryCode": "US",
  "state": "approved",
  "_links": {
    "self": {
      "href": "/users/users/f2d87aa6-33c8-458c-819b-41bb00f1ec08/addresses/ha1"
    }
  }
}

User Address

Representation of a user's address resource. The links on an address indicate allowed user operations:

Properties

NameDescription
type string
The type of this address.


Enumerated values:
unknown
home
work
school
postOffice
vacation
shipping
billing
headquarters
commercial
property
other
notApplicable

label string
A text label, suitable for presentation to the end user. This is derived from type or from otherType if type is other
read-only
otherType string
The actual address type if type is other.
minLength: 4
maxLength: 32
addressLine1 string
The first street address line of the address, normally a house number and street name.
addressLine2 string
The optional second street address line of the address.
city string
The name of the city or municipality.
regionCode string
The mailing address region code, such as state in the US, or a province in Canada.
minLength: 2
maxLength: 2
postalCode string
The mailing address postal code, such as a US Zip or Zip+4 code, or a Canadian postal code.
minLength: 5
maxLength: 10
countryCode string
The ISO 3166-1 country code.
minLength: 2
maxLength: 2
_id string
An identifier for this address, so that it can be referenced uniquely. The service will assign a unique _id if the client does not provide one. The _id must be unique across all addresses within the addresses array.
minLength: 1
maxLength: 8
_links object
An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
» additionalProperties link
Describes a hypermedia link within a _links object in HAL representations. In Apiture APIs, links are HAL links, but Apiture APIs do not use the name or hreflang properties of HAL. Apiture links may include a method property.
_embedded object
An optional map of nested resources, mapping each nested resource name to a nested resource representation.
_profile string(uri)
The URI of a resource profile which describes the representation.
_error error
An object which describes an error. This value is omitted if the operation succeeded without error.
state profileItemState
The state of this address. pending addresses require financial institution approval. Only approved addresses may be set as the preferred address.

userAddresses

{
  "_profile": "https://api.apiture.com/schemas/users/userAddresses/v1.0.0/profile.json",
  "items": [
    {
      "_id": "ha1",
      "type": "home",
      "addressLine1": "555 N Front Street",
      "addressLine2": "Suite 5555",
      "city": "Wilmington",
      "regionCode": "NC",
      "postalCode": "28401-5405",
      "countryCode": "US",
      "state": "approved",
      "_links": {
        "self": {
          "href": "/users/users/f2d87aa6-33c8-458c-819b-41bb00f1ec08/addresses/ha1"
        }
      }
    },
    {
      "_id": "wa1",
      "type": "work",
      "addressLine1": "123 S 3rd Street",
      "addressLine2": "Apt 42",
      "city": "Wilmington",
      "regionCode": "NC",
      "postalCode": "28411-5405",
      "countryCode": "US",
      "_links": {
        "self": {
          "href": "/users/users/f2d87aa6-33c8-458c-819b-41bb00f1ec08/addresses/wa1"
        }
      }
    }
  ],
  "_links": {
    "self": {
      "href": "/users/users/f2d87aa6-33c8-458c-819b-41bb00f1ec08/addresses"
    }
  }
}

User Addresses

The list of the user's addresses.

Properties

NameDescription
_links object
An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
» additionalProperties link
Describes a hypermedia link within a _links object in HAL representations. In Apiture APIs, links are HAL links, but Apiture APIs do not use the name or hreflang properties of HAL. Apiture links may include a method property.
_embedded object
An optional map of nested resources, mapping each nested resource name to a nested resource representation.
_profile string(uri)
The URI of a resource profile which describes the representation.
_error error
An object which describes an error. This value is omitted if the operation succeeded without error.
items [userAddress]
An array containing address items.

userEmailAddress

{
  "_id": "pe1",
  "_profile": "https://api.apiture.com/schemas/users/userEmailAddress/v1.0.0/profile.json",
  "type": "personal",
  "number": "555-555-5555",
  "state": "approved",
  "_links": {
    "self": {
      "href": "/users/users/f2d87aa6-33c8-458c-819b-41bb00f1ec08/emailAddresses/pe1"
    },
    "delete": {
      "href": "/users/users/f2d87aa6-33c8-458c-819b-41bb00f1ec08/emailAddresses/pe1"
    },
    "apiture:setAsPreferred": {
      "href": "/users/users/f2d87aa6-33c8-458c-819b-41bb00f1ec08/preferredEmailAddresses?value=pe1"
    }
  }
}

Email Address

Representation of email address resources. An email address is immutable, although users can add new email addresses. The links on an address indicate allowed user operations:

Properties

NameDescription
value string(email)
The email address, such as JohnBankCustomer@example.com
minLength: 8
maxLength: 120
type string
The kind of email address this is.


Enumerated values:
unknown
personal
work
school
other
notApplicable

_id string
An identifier for this email address, so that it can be referenced uniquely. The service will assign a unique _id if the client does not provide one. The _id must be unique across all email addresses within the emailAddresses array.
minLength: 1
maxLength: 8
_links object
An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
» additionalProperties link
Describes a hypermedia link within a _links object in HAL representations. In Apiture APIs, links are HAL links, but Apiture APIs do not use the name or hreflang properties of HAL. Apiture links may include a method property.
_embedded object
An optional map of nested resources, mapping each nested resource name to a nested resource representation.
_profile string(uri)
The URI of a resource profile which describes the representation.
_error error
An object which describes an error. This value is omitted if the operation succeeded without error.
state profileItemState
The state of this email address. pending email addresses require financial institution approval. Only approved numbers may be set as the preferred email address.

preferredResource

"pe0"

Preferred Resource

The _id of an address, email address, or phone number resource to set as the user's preferred item. The _id is represented as a JSON string. (Note: the value must be quoted.)

Properties

userEmailAddresses

{
  "_profile": "https://api.apiture.com/schemas/users/userEmailAddresses/v1.0.0/profile.json",
  "items": [
    {
      "_id": "pe0",
      "type": "personal",
      "label": "Personal",
      "number": "user7838@example.com",
      "state": "approved",
      "_profile": "https://api.apiture.com/schemas/users/userEmailAddress/v1.0.0/profile.json",
      "_links": {
        "self": {
          "href": "/users/users/f2d87aa6-33c8-458c-819b-41bb00f1ec08/emailAddresses/pe0"
        }
      }
    },
    {
      "_id": "pe2",
      "type": "personal",
      "label": "Personal",
      "value": "John.Smith@example.com",
      "state": "approved",
      "_profile": "https://api.apiture.com/schemas/users/userEmailAddress/v1.0.0/profile.json",
      "_links": {
        "self": {
          "href": "/users/users/f2d87aa6-33c8-458c-819b-41bb00f1ec08/userEmailAddresses/pe2"
        }
      }
    }
  ],
  "_links": {
    "self": {
      "href": "/users/users/f2d87aa6-33c8-458c-819b-41bb00f1ec08/emailAddresses"
    }
  }
}

The user's email addresses

The list of the user's email addresses.

Properties

NameDescription
_links object
An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
» additionalProperties link
Describes a hypermedia link within a _links object in HAL representations. In Apiture APIs, links are HAL links, but Apiture APIs do not use the name or hreflang properties of HAL. Apiture links may include a method property.
_embedded object
An optional map of nested resources, mapping each nested resource name to a nested resource representation.
_profile string(uri)
The URI of a resource profile which describes the representation.
_error error
An object which describes an error. This value is omitted if the operation succeeded without error.
items [userEmailAddress]
An array containing email address items.

userPhoneNumber

{
  "_id": "hp1",
  "_profile": "https://api.apiture.com/schemas/users/userPhoneNumber/v1.0.0/profile.json",
  "type": "home",
  "number": "555-555-5555",
  "state": "approved",
  "_links": {
    "self": {
      "href": "/users/users/9b0387db-8705-469a-852c-ead8bfd872ba/phoneNumbers/hp1"
    }
  }
}

Phone Number

Representation of phone number resources. The links on an phone number indicate allowed user operations:

Properties

NameDescription
type string
The type or role of this phone number.


Enumerated values:
unknown
home
work
mobile
fax
other

number string
The phone number, as a string.
label string
A text label, suitable for presentation to the end user. This is also used if type is other.
_id string
An identifier for this phone number, so that it can be referenced uniquely. The service will assign a unique _id if the client does not provide one. The _id must be unique across all phone numbers within the phones array.
minLength: 1
maxLength: 8
_links object
An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
» additionalProperties link
Describes a hypermedia link within a _links object in HAL representations. In Apiture APIs, links are HAL links, but Apiture APIs do not use the name or hreflang properties of HAL. Apiture links may include a method property.
_embedded object
An optional map of nested resources, mapping each nested resource name to a nested resource representation.
_profile string(uri)
The URI of a resource profile which describes the representation.
_error error
An object which describes an error. This value is omitted if the operation succeeded without error.
state profileItemState
The state of this phone number. pending numbers require financial institution approval. Only approved numbers may be set as the preferred phone number.

userPhoneNumbers

{
  "_profile": "https://api.apiture.com/schemas/users/userPhoneNumbers/v1.0.0/profile.json",
  "items": [
    {
      "_id": "mp0",
      "type": "mobile",
      "label": "Mobile",
      "number": "555-555-5555",
      "state": "approved",
      "_profile": "https://api.apiture.com/schemas/users/userPhoneNumber/v1.0.0/profile.json",
      "_links": {
        "self": {
          "href": "/users/users/9b0387db-8705-469a-852c-ead8bfd872ba/phoneNumbers/mp0"
        }
      }
    },
    {
      "_id": "mp2",
      "type": "home",
      "label": "Home",
      "number": "555-444-4444",
      "state": "approved",
      "_profile": "https://api.apiture.com/schemas/users/userPhoneNumber/v1.0.0/profile.json",
      "_links": {
        "self": {
          "href": "/users/users/9b0387db-8705-469a-852c-ead8bfd872ba/phoneNumbers/mp2"
        }
      }
    }
  ],
  "_links": {
    "self": {
      "href": "/users/users/9b0387db-8705-469a-852c-ead8bfd872ba/phoneNumbers"
    }
  }
}

The user's phone numbers

The list of the user's phone numbers.

Properties

NameDescription
_links object
An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
» additionalProperties link
Describes a hypermedia link within a _links object in HAL representations. In Apiture APIs, links are HAL links, but Apiture APIs do not use the name or hreflang properties of HAL. Apiture links may include a method property.
_embedded object
An optional map of nested resources, mapping each nested resource name to a nested resource representation.
_profile string(uri)
The URI of a resource profile which describes the representation.
_error error
An object which describes an error. This value is omitted if the operation succeeded without error.
items [userPhoneNumber]
An array containing phone number items.

profileItemState

"approved"

User Profile Item State

The state of an item (address, email address, or phone number) within the user's profile. New addresses, email addresses, or phone numbers start with the state pending, which means approval by the financial institution is pending. After they have been verified, the state becomes approved. Some normalizing or sanitizing of the value may occur when this happens (for example, a ZIP code may change to ZIP+4 format). pending items may not be assigned as the preferred item.

Type: string
Enumerated values:
pending
approved

createUser

{
  "_links": {
    "property1": {
      "href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
      "title": "Applicant"
    },
    "property2": {
      "href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
      "title": "Applicant"
    }
  },
  "_embedded": {},
  "_profile": "http://example.com",
  "_error": {
    "_id": "2eae46e1-575c-4d69-8a8f-0a7b0115a4b3",
    "message": "The value for deposit must be greater than 0.",
    "statusCode": 422,
    "type": "positiveNumberRequired",
    "attributes": {
      "value": -125.5
    },
    "remediation": "Provide a value which is greater than 0",
    "occurredAt": "2018-01-25T05:50:52.375Z",
    "_links": {
      "describedby": {
        "href": "https://developer.apiture.com/errors/positiveNumberRequired"
      }
    },
    "_embedded": {
      "errors": []
    }
  },
  "firstName": "string",
  "middleName": "string",
  "lastName": "string",
  "addresses": [
    {
      "_id": "ha1",
      "type": "home",
      "addressLine1": "555 N Front Street",
      "addressLine2": "Suite 5555",
      "city": "Wilmington",
      "regionCode": "NC",
      "postalCode": "28401-5405",
      "countryCode": "US",
      "state": "approved",
      "_links": {
        "self": {
          "href": "/users/users/f2d87aa6-33c8-458c-819b-41bb00f1ec08/addresses/ha1"
        }
      }
    }
  ],
  "preferredMailingAddressId": "stri",
  "emailAddresses": [
    {
      "_id": "pe1",
      "_profile": "https://api.apiture.com/schemas/users/userEmailAddress/v1.0.0/profile.json",
      "type": "personal",
      "number": "555-555-5555",
      "state": "approved",
      "_links": {
        "self": {
          "href": "/users/users/f2d87aa6-33c8-458c-819b-41bb00f1ec08/emailAddresses/pe1"
        },
        "delete": {
          "href": "/users/users/f2d87aa6-33c8-458c-819b-41bb00f1ec08/emailAddresses/pe1"
        },
        "apiture:setAsPreferred": {
          "href": "/users/users/f2d87aa6-33c8-458c-819b-41bb00f1ec08/preferredEmailAddresses?value=pe1"
        }
      }
    }
  ],
  "preferredEmailAddressId": "stri",
  "phones": [
    {
      "_id": "hp1",
      "type": "home",
      "number": "555-555-5555"
    }
  ],
  "preferredPhoneId": "stri",
  "prefix": "string",
  "suffix": "string",
  "preferredName": "string",
  "identification": [
    {
      "type": "taxId",
      "value": "111-11-1111",
      "expiration": {}
    }
  ],
  "birthdate": "2019-10-29",
  "citizenship": [
    {
      "countryCode": "US",
      "state": "citizen"
    }
  ],
  "occupation": "unknown",
  "otherOccupation": "string",
  "username": "string",
  "state": "active",
  "phoneNumbers": [
    {
      "_id": "hp1",
      "_profile": "https://api.apiture.com/schemas/users/userPhoneNumber/v1.0.0/profile.json",
      "type": "home",
      "number": "555-555-5555",
      "state": "approved",
      "_links": {
        "self": {
          "href": "/users/users/9b0387db-8705-469a-852c-ead8bfd872ba/phoneNumbers/hp1"
        }
      }
    }
  ]
}

Create User

Representation used to create a new user.

Properties

NameDescription
_links object
An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
» additionalProperties link
Describes a hypermedia link within a _links object in HAL representations. In Apiture APIs, links are HAL links, but Apiture APIs do not use the name or hreflang properties of HAL. Apiture links may include a method property.
_embedded object
An optional map of nested resources, mapping each nested resource name to a nested resource representation.
_profile string(uri)
The URI of a resource profile which describes the representation.
_error error
An object which describes an error. This value is omitted if the operation succeeded without error.
firstName string (required)
The person's first name (or given name).
middleName string
The person's middle name.
lastName string (required)
The person's last name (or surname).
addresses [userAddress]
An array of postal/mailing addresses. Add or delete addresses with the createAddress and deleteAddress operations.
read-only
preferredMailingAddressId string
The preferred mailing address. This string is the _id of an address in the addresses array. This value is set with the setPreferredMailingAddress operation.
read-only
minLength: 1
maxLength: 4
emailAddresses [userEmailAddress]
An array of email addresses. Add or delete email addresses with the createEmailAddress and deleteEmailAddress operations.
read-only
preferredEmailAddressId string
The preferred email address. This string is the _id of an email address in the emailAddresses array. This value is set with the setPreferredEmailAddress operation.
read-only
minLength: 1
maxLength: 4
phones [phoneNumber]
An array of phone numbers.
preferredPhoneId string
The ID of preferred phone number. This string is the _id of a phone number in the phones array. This value is set with the setPreferredPhoneNumber operation.
read-only
minLength: 1
maxLength: 4
prefix string
A title or honorific prefix such as Dr. or Fr.
maxLength: 20
suffix string
A title or honorific suffix such as PhD or DDS.
maxLength: 20
preferredName string
The contact's preferred name. This is how the contact's name is presented to the user in the interface. The default is the contact's firstName.
identification [identification] (required)
A collection of official identifying information associated with the contact.
birthdate string(date) (required)
The contact's birth date in YYYY-MM-DD format.
citizenship citizenship
This individual's citizenship or nationality status.
occupation occupation
The occupation of this individual.
otherOccupation string
The actual occupation of this individual if their occupation is other. This is ignored if occupation is not other.
minLength: 4
maxLength: 32
username string (required)
The unique username for the user.
state string

The state of this user record. The default is active.

  • Users may not be deleted, but Users with a state of active, inactive or locked may be removed by POSTing to the /removedUsers endpoint via the apiture:remove endpoint. Removed users may not be reactivated.
  • Users with a state of active or locked may be deactivated by POSTing to the /inactiveUsers endpoint via the apiture:deactivate endpoint.
  • Users with a state of inactive or locked may be activated by POSTing to the /activeUsers endpoint via the apiture:activate endpoint.
  • Users with a state of active or inactive may be locked by POSTing to the /lockedUsers endpoint via the apiture:lock endpoint. A state of locked indicates a user has entered the password incorrectly too many times.
  • Users with a state of active, inactive or locked may be frozen by POSTing to the /frozenUsers endpoint via the apiture:freeze endpoint. A state of frozen indicates a user can no longer access online banking until admin approval.
  • Users with a state of active, inactive, or locked may be merged by POSTing to the /mergedUsers endpoint via the apiture:merge endpoint. Merged users may not have their state changed.


Enumerated values:
active
inactive
locked
frozen
merged
removed

phoneNumbers [userPhoneNumber]
An array of phone numbers. Add or delete phoneNumbers with the createPhoneNumber and deletePhoneNumber operations.
read-only

summaryUser

{
  "firstName": "string",
  "middleName": "string",
  "lastName": "string",
  "addresses": [
    {
      "_id": "ha1",
      "type": "home",
      "addressLine1": "555 N Front Street",
      "addressLine2": "Suite 5555",
      "city": "Wilmington",
      "regionCode": "NC",
      "postalCode": "28401-5405",
      "countryCode": "US",
      "state": "approved",
      "_links": {
        "self": {
          "href": "/users/users/f2d87aa6-33c8-458c-819b-41bb00f1ec08/addresses/ha1"
        }
      }
    }
  ],
  "preferredMailingAddressId": "stri",
  "emailAddresses": [
    {
      "_id": "pe1",
      "_profile": "https://api.apiture.com/schemas/users/userEmailAddress/v1.0.0/profile.json",
      "type": "personal",
      "number": "555-555-5555",
      "state": "approved",
      "_links": {
        "self": {
          "href": "/users/users/f2d87aa6-33c8-458c-819b-41bb00f1ec08/emailAddresses/pe1"
        },
        "delete": {
          "href": "/users/users/f2d87aa6-33c8-458c-819b-41bb00f1ec08/emailAddresses/pe1"
        },
        "apiture:setAsPreferred": {
          "href": "/users/users/f2d87aa6-33c8-458c-819b-41bb00f1ec08/preferredEmailAddresses?value=pe1"
        }
      }
    }
  ],
  "preferredEmailAddressId": "stri",
  "phones": [
    {
      "_id": "hp1",
      "type": "home",
      "number": "555-555-5555"
    }
  ],
  "preferredPhoneId": "stri",
  "prefix": "string",
  "suffix": "string",
  "preferredName": "string",
  "identification": [
    {
      "type": "taxId",
      "value": "111-11-1111",
      "expiration": {}
    }
  ],
  "birthdate": "2019-10-29",
  "citizenship": [
    {
      "countryCode": "US",
      "state": "citizen"
    }
  ],
  "occupation": "unknown",
  "otherOccupation": "string",
  "username": "string",
  "state": "active",
  "phoneNumbers": [
    {
      "_id": "hp1",
      "_profile": "https://api.apiture.com/schemas/users/userPhoneNumber/v1.0.0/profile.json",
      "type": "home",
      "number": "555-555-5555",
      "state": "approved",
      "_links": {
        "self": {
          "href": "/users/users/9b0387db-8705-469a-852c-ead8bfd872ba/phoneNumbers/hp1"
        }
      }
    }
  ],
  "_links": {
    "property1": {
      "href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
      "title": "Applicant"
    },
    "property2": {
      "href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
      "title": "Applicant"
    }
  },
  "_embedded": {},
  "_profile": "http://example.com",
  "_error": {
    "_id": "2eae46e1-575c-4d69-8a8f-0a7b0115a4b3",
    "message": "The value for deposit must be greater than 0.",
    "statusCode": 422,
    "type": "positiveNumberRequired",
    "attributes": {
      "value": -125.5
    },
    "remediation": "Provide a value which is greater than 0",
    "occurredAt": "2018-01-25T05:50:52.375Z",
    "_links": {
      "describedby": {
        "href": "https://developer.apiture.com/errors/positiveNumberRequired"
      }
    },
    "_embedded": {
      "errors": []
    }
  },
  "_id": "string",
  "customerId": "00047294723672"
}

Summary User

Summary representation of a user resource in user collections. This representation normally does not contain any _embedded objects. If needed, call the GET operation on the item's self link to get _embedded objects.

Properties

NameDescription
firstName string
The person's first name (or given name).
middleName string
The person's middle name.
lastName string
The person's last name (or surname).
addresses [userAddress]
An array of postal/mailing addresses. Add or delete addresses with the createAddress and deleteAddress operations.
read-only
preferredMailingAddressId string
The preferred mailing address. This string is the _id of an address in the addresses array. This value is set with the setPreferredMailingAddress operation.
read-only
minLength: 1
maxLength: 4
emailAddresses [userEmailAddress]
An array of email addresses. Add or delete email addresses with the createEmailAddress and deleteEmailAddress operations.
read-only
preferredEmailAddressId string
The preferred email address. This string is the _id of an email address in the emailAddresses array. This value is set with the setPreferredEmailAddress operation.
read-only
minLength: 1
maxLength: 4
phones [phoneNumber]
An array of phone numbers.
preferredPhoneId string
The ID of preferred phone number. This string is the _id of a phone number in the phones array. This value is set with the setPreferredPhoneNumber operation.
read-only
minLength: 1
maxLength: 4
prefix string
A title or honorific prefix such as Dr. or Fr.
maxLength: 20
suffix string
A title or honorific suffix such as PhD or DDS.
maxLength: 20
preferredName string
The contact's preferred name. This is how the contact's name is presented to the user in the interface. The default is the contact's firstName.
identification [identification]
A collection of official identifying information associated with the contact.
birthdate string(date)
The contact's birth date in YYYY-MM-DD format.
citizenship citizenship
This individual's citizenship or nationality status.
occupation occupation
The occupation of this individual.
otherOccupation string
The actual occupation of this individual if their occupation is other. This is ignored if occupation is not other.
minLength: 4
maxLength: 32
username string
The unique username for the user.
state string

The state of this user record. The default is active.

  • Users may not be deleted, but Users with a state of active, inactive or locked may be removed by POSTing to the /removedUsers endpoint via the apiture:remove endpoint. Removed users may not be reactivated.
  • Users with a state of active or locked may be deactivated by POSTing to the /inactiveUsers endpoint via the apiture:deactivate endpoint.
  • Users with a state of inactive or locked may be activated by POSTing to the /activeUsers endpoint via the apiture:activate endpoint.
  • Users with a state of active or inactive may be locked by POSTing to the /lockedUsers endpoint via the apiture:lock endpoint. A state of locked indicates a user has entered the password incorrectly too many times.
  • Users with a state of active, inactive or locked may be frozen by POSTing to the /frozenUsers endpoint via the apiture:freeze endpoint. A state of frozen indicates a user can no longer access online banking until admin approval.
  • Users with a state of active, inactive, or locked may be merged by POSTing to the /mergedUsers endpoint via the apiture:merge endpoint. Merged users may not have their state changed.


Enumerated values:
active
inactive
locked
frozen
merged
removed

phoneNumbers [userPhoneNumber]
An array of phone numbers. Add or delete phoneNumbers with the createPhoneNumber and deletePhoneNumber operations.
read-only
_links object
An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
» additionalProperties link
Describes a hypermedia link within a _links object in HAL representations. In Apiture APIs, links are HAL links, but Apiture APIs do not use the name or hreflang properties of HAL. Apiture links may include a method property.
_embedded object
An optional map of nested resources, mapping each nested resource name to a nested resource representation.
_profile string(uri)
The URI of a resource profile which describes the representation.
_error error
An object which describes an error. This value is omitted if the operation succeeded without error.
_id string
The unique identifier for this user resource. This is an opaque string.
customerId string
The unique customer number, also known as the Customer Identification File number or CIF number. This derived value is assigned to the user in the banking core. The customerId differs from the _id (which is the ID of the resource in the Users API).
read-only
minLength: 4
maxLength: 32

mergeUsers

{
  "_links": {
    "apiture:master": {
      "href": "/users/users/5150d4f2-0d94-4602-8ca8-f68d00815f63"
    }
  },
  "items": [
    {
      "_id": "9604e5f8-da29-4197-b6fb-60a1cfecfba8",
      "_profile": "https://api.apiture.com/schemas/users/user/v1.0.0/profile.json",
      "_links": {
        "self": {
          "href": "/users/users/9604e5f8-da29-4197-b6fb-60a1cfecfba8"
        }
      },
      "username": "Johnny1733",
      "firstName": "John",
      "middleName": "Daniel",
      "lastName": "Smith",
      "preferredName": "John",
      "identification": [
        {
          "value": "111-11-1111",
          "type": "taxId"
        }
      ],
      "emailAddresses": [
        {
          "_id": "pe0",
          "type": "personal",
          "value": "johnny1733@example.com"
        },
        {
          "_id": "we0",
          "type": "work",
          "value": "support@apiture.com"
        }
      ],
      "phones": [
        {
          "_id": "hp0",
          "type": "home",
          "number": "(555) 555-5555"
        },
        {
          "_id": "mp0",
          "type": "mobile",
          "number": "(999) 555-5555"
        }
      ],
      "birthdate": "1974-10-27",
      "citizenship": [
        {
          "countryCode": "US",
          "state": "citizen"
        }
      ],
      "occupation": "Software Engineer",
      "addresses": [
        {
          "_id": "ha0",
          "type": "home",
          "addressLine1": "555 N Front Street",
          "addressLine2": "Suite 5555",
          "city": "Wilmington",
          "regionCode": "NC",
          "postalCode": "28401-5405",
          "countryCode": "US"
        },
        {
          "_id": "ha1",
          "type": "home",
          "addressLine1": "123 S 3rd Street",
          "addressLine2": "Apt 42",
          "city": "Wilmington",
          "regionCode": "NC",
          "postalCode": "28411-5405",
          "countryCode": "US"
        }
      ],
      "state": "active"
    },
    {
      "_id": "d1fabf13-31d1-4351-89ad-877ac4d1220a",
      "_profile": "https://api.apiture.com/schemas/users/user/v1.0.0/profile.json",
      "_links": {
        "self": {
          "href": "/users/users/d1fabf13-31d1-4351-89ad-877ac4d1220a"
        }
      },
      "username": "LAS15",
      "firstName": "Johnathan",
      "middleName": "Daniel",
      "lastName": "Smith",
      "preferredName": "John",
      "identification": [
        {
          "value": "111-11-1111",
          "type": "taxId"
        }
      ],
      "emailAddresses": [
        {
          "_id": "pe0",
          "type": "personal",
          "value": "johnny1733@example.com"
        },
        {
          "_id": "we0",
          "type": "work",
          "value": "support@apiture.com"
        }
      ],
      "phones": [
        {
          "_id": "hp0",
          "type": "home",
          "number": "(555) 555-5555"
        },
        {
          "_id": "mp0",
          "type": "mobile",
          "number": "(999) 555-5555"
        }
      ],
      "birthdate": "1974-10-27",
      "citizenship": [
        {
          "countryCode": "US",
          "state": "citizen"
        }
      ],
      "occupation": "Software Engineer",
      "addresses": [
        {
          "_id": "ha0",
          "type": "home",
          "addressLine1": "555 N Front Street",
          "addressLine2": "Suite 5555",
          "city": "Wilmington",
          "regionCode": "NC",
          "postalCode": "28401-5405",
          "countryCode": "US"
        },
        {
          "_id": "ha1",
          "type": "home",
          "addressLine1": "123 S 3rd Street",
          "addressLine2": "Apt 42",
          "city": "Wilmington",
          "regionCode": "NC",
          "postalCode": "28411-5405",
          "countryCode": "US"
        }
      ],
      "state": "active"
    }
  ]
}

Merge Users

Representation used to merge a set of users into a master user.

Properties

NameDescription
items [user]
Array of users to merge.
_links links
An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.

user

{
  "_id": "9604e5f8-da29-4197-b6fb-60a1cfecfba8",
  "_profile": "https://api.apiture.com/schemas/users/user/v1.0.0/profile.json",
  "username": "Johnny1733",
  "firstName": "John",
  "middleName": "Daniel",
  "lastName": "Smith",
  "preferredName": "John",
  "identification": [
    {
      "value": "111-11-1111",
      "type": "taxId",
      "emailAddresses": [
        {
          "_id": "pe0",
          "type": "personal",
          "value": "johnny1733@example.com"
        },
        {
          "_id": "we0",
          "type": "work",
          "value": "support@apiture.com"
        }
      ]
    }
  ],
  "customerId": "00047294723672",
  "phones": [
    {
      "_id": "hp0",
      "type": "home",
      "number": "(555) 555-5555"
    },
    {
      "_id": "mp0",
      "type": "mobile",
      "number": "(999) 555-5555"
    }
  ],
  "birthdate": "1974-10-27",
  "citizenship": [
    {
      "countryCode": "US",
      "state": "citizen"
    }
  ],
  "occupation": "Software Engineer",
  "addresses": [
    {
      "_id": "ha0",
      "type": "home",
      "addressLine1": "555 N Front Street",
      "addressLine2": "Suite 5555",
      "city": "Wilmington",
      "regionCode": "NC",
      "postalCode": "28401-5405",
      "countryCode": "US"
    },
    {
      "_id": "ha1",
      "type": "home",
      "addressLine1": "123 S 3rd Street",
      "addressLine2": "Apt 42",
      "city": "Wilmington",
      "regionCode": "NC",
      "postalCode": "28411-5405",
      "countryCode": "Use"
    }
  ],
  "state": "active",
  "attributes": {},
  "_links": {
    "self": {
      "href": "/users/users/9604e5f8-da29-4197-b6fb-60a1cfecfba8"
    },
    "apiture:deactivate": {
      "href": "/users/inactiveUsers?user=9604e5f8-da29-4197-b6fb-60a1cfecfba8"
    },
    "apiture:lock": {
      "href": "/users/lockedUsers?user=9604e5f8-da29-4197-b6fb-60a1cfecfba8"
    },
    "apiture:freeze": {
      "href": "/users/frozenUsers?user=9604e5f8-da29-4197-b6fb-60a1cfecfba8"
    },
    "apiture:remove": {
      "href": "/users/removedUsers?user=9604e5f8-da29-4197-b6fb-60a1cfecfba8"
    }
  },
  "createdAt": "2018-03-09T20:14:32Z",
  "lastLoggedInAt": "2019-07-09T10:24:00Z",
  "lastContactedAt": "2019-07-16T06:00:00Z"
}

User

Representation of a user resource. A user may have the following links:

Properties

NameDescription
firstName string
The person's first name (or given name).
middleName string
The person's middle name.
lastName string
The person's last name (or surname).
addresses [userAddress]
An array of postal/mailing addresses. Add or delete addresses with the createAddress and deleteAddress operations.
read-only
preferredMailingAddressId string
The preferred mailing address. This string is the _id of an address in the addresses array. This value is set with the setPreferredMailingAddress operation.
read-only
minLength: 1
maxLength: 4
emailAddresses [userEmailAddress]
An array of email addresses. Add or delete email addresses with the createEmailAddress and deleteEmailAddress operations.
read-only
preferredEmailAddressId string
The preferred email address. This string is the _id of an email address in the emailAddresses array. This value is set with the setPreferredEmailAddress operation.
read-only
minLength: 1
maxLength: 4
phones [phoneNumber]
An array of phone numbers.
preferredPhoneId string
The ID of preferred phone number. This string is the _id of a phone number in the phones array. This value is set with the setPreferredPhoneNumber operation.
read-only
minLength: 1
maxLength: 4
prefix string
A title or honorific prefix such as Dr. or Fr.
maxLength: 20
suffix string
A title or honorific suffix such as PhD or DDS.
maxLength: 20
preferredName string
The contact's preferred name. This is how the contact's name is presented to the user in the interface. The default is the contact's firstName.
identification [identification]
A collection of official identifying information associated with the contact.
birthdate string(date)
The contact's birth date in YYYY-MM-DD format.
citizenship citizenship
This individual's citizenship or nationality status.
occupation occupation
The occupation of this individual.
otherOccupation string
The actual occupation of this individual if their occupation is other. This is ignored if occupation is not other.
minLength: 4
maxLength: 32
username string
The unique username for the user.
state string

The state of this user record. The default is active.

  • Users may not be deleted, but Users with a state of active, inactive or locked may be removed by POSTing to the /removedUsers endpoint via the apiture:remove endpoint. Removed users may not be reactivated.
  • Users with a state of active or locked may be deactivated by POSTing to the /inactiveUsers endpoint via the apiture:deactivate endpoint.
  • Users with a state of inactive or locked may be activated by POSTing to the /activeUsers endpoint via the apiture:activate endpoint.
  • Users with a state of active or inactive may be locked by POSTing to the /lockedUsers endpoint via the apiture:lock endpoint. A state of locked indicates a user has entered the password incorrectly too many times.
  • Users with a state of active, inactive or locked may be frozen by POSTing to the /frozenUsers endpoint via the apiture:freeze endpoint. A state of frozen indicates a user can no longer access online banking until admin approval.
  • Users with a state of active, inactive, or locked may be merged by POSTing to the /mergedUsers endpoint via the apiture:merge endpoint. Merged users may not have their state changed.


Enumerated values:
active
inactive
locked
frozen
merged
removed

phoneNumbers [userPhoneNumber]
An array of phone numbers. Add or delete phoneNumbers with the createPhoneNumber and deletePhoneNumber operations.
read-only
_links object
An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
» additionalProperties link
Describes a hypermedia link within a _links object in HAL representations. In Apiture APIs, links are HAL links, but Apiture APIs do not use the name or hreflang properties of HAL. Apiture links may include a method property.
_embedded object
An optional map of nested resources, mapping each nested resource name to a nested resource representation.
_profile string(uri)
The URI of a resource profile which describes the representation.
_error error
An object which describes an error. This value is omitted if the operation succeeded without error.
_id string
The unique identifier for this user resource. This is an opaque string.
customerId string
The unique customer number, also known as the Customer Identification File number or CIF number. This derived value is assigned to the user in the banking core. The customerId differs from the _id (which is the ID of the resource in the Users API).
read-only
minLength: 4
maxLength: 32
createdAt string(date-time)
The date-time when the user was created.
read-only
lastContactedAt string(date-time)
The date-time when the user was last contacted. This is a computed, read-only field and will be ignored if specified as part of the request body. This is in RFC 3396 format: YYYY-MM-DDThh:mm:ss.sssZ
lastLoggedInAt string(date-time)
The date-time when the user last logged in. This is a computed, read-only field and will be ignored if specified as part of the request body. This is in RFC 3396 format: YYYY-MM-DDThh:mm:ss.sssZ
attributes attributes
Additional unstructured application metadata about the user.

users

{
  "_profile": "https://api.apiture.com/schemas/users/users/v1.0.0/profile.json",
  "start": 0,
  "limit": 10,
  "count": 2,
  "name": "users",
  "_links": {
    "self": {
      "href": "/users?start=0&limit=10"
    },
    "first": {
      "href": "/users?start=10&limit=10"
    },
    "next": {
      "href": "/users?start=10&limit=10"
    },
    "collection": {
      "href": "/users"
    }
  },
  "_embedded": {
    "items": [
      {
        "_id": "9604e5f8-da29-4197-b6fb-60a1cfecfba8",
        "_profile": "https://api.apiture.com/schemas/users/user/v1.0.0/profile.json",
        "_links": {
          "self": {
            "href": "/users/users/9604e5f8-da29-4197-b6fb-60a1cfecfba8"
          },
          "apiture:deactivate": {
            "href": "/users/inactiveUsers?user=9604e5f8-da29-4197-b6fb-60a1cfecfba8"
          },
          "apiture:lock": {
            "href": "/users/lockedUsers?user=9604e5f8-da29-4197-b6fb-60a1cfecfba8"
          },
          "apiture:freeze": {
            "href": "/users/frozenUsers?user=9604e5f8-da29-4197-b6fb-60a1cfecfba8"
          },
          "apiture:remove": {
            "href": "/users/removedUsers?user=9604e5f8-da29-4197-b6fb-60a1cfecfba8"
          },
          "apiture:merge": {
            "href": "/users/mergedUsers"
          }
        },
        "username": "Johnny1733",
        "firstName": "John",
        "middleName": "Daniel",
        "lastName": "Smith",
        "preferredName": "John",
        "identification": [
          {
            "value": "111-11-1111",
            "type": "taxId"
          }
        ],
        "customerId": "00047294723672",
        "emailAddresses": [
          {
            "_id": "pe0",
            "type": "personal",
            "value": "johnny1733@example.com"
          },
          {
            "_id": "we0",
            "type": "work",
            "value": "support@apiture.com"
          }
        ],
        "phones": [
          {
            "_id": "hp0",
            "type": "home",
            "number": "(555) 555-5555"
          },
          {
            "_id": "mp0",
            "type": "mobile",
            "number": "(999) 555-5555"
          }
        ],
        "birthdate": "1974-10-27",
        "citizenship": [
          {
            "countryCode": "US",
            "state": "citizen"
          }
        ],
        "occupation": "Software Engineer",
        "addresses": [
          {
            "type": "home",
            "addressLine1": "555 N Front Street",
            "addressLine2": "Suite 5555",
            "city": "Wilmington",
            "regionCode": "NC",
            "postalCode": "28401-5405",
            "countryCode": "US"
          },
          {
            "type": "home",
            "addressLine1": "123 S 3rd Street",
            "addressLine2": "Apt 42",
            "city": "Wilmington",
            "regionCode": "NC",
            "postalCode": "28411-5405",
            "countryCode": "US"
          }
        ],
        "lastContactedAt": "2018-07-29T11:13:54Z",
        "lastLoggedInAt": "2017-12-29T15:19:41Z",
        "state": "active",
        "createdAt": "2018-03-09T20:14:32Z"
      },
      {
        "_id": "d1fabf13-31d1-4351-89ad-877ac4d1220a",
        "_profile": "https://api.apiture.com/schemas/users/user/v1.0.0/profile.json",
        "_links": {
          "self": {
            "href": "/users/users/d1fabf13-31d1-4351-89ad-877ac4d1220a"
          },
          "apiture:deactivate": {
            "href": "/users/inactiveUsers?user=d1fabf13-31d1-4351-89ad-877ac4d1220a"
          },
          "apiture:lock": {
            "href": "/users/lockedUsers?user=d1fabf13-31d1-4351-89ad-877ac4d1220a"
          },
          "apiture:freeze": {
            "href": "/users/frozenUsers?user=d1fabf13-31d1-4351-89ad-877ac4d1220a"
          },
          "apiture:remove": {
            "href": "/users/removedUsers?user=d1fabf13-31d1-4351-89ad-877ac4d1220a"
          },
          "apiture:merge": {
            "href": "/users/mergedUsers"
          }
        },
        "username": "LAS15",
        "firstName": "Laura",
        "middleName": "Eileen",
        "lastName": "Smith",
        "preferredName": "Laura",
        "identification": [
          {
            "value": "111-11-1111",
            "type": "taxId"
          }
        ],
        "emailAddresses": [
          {
            "_id": "pe0",
            "type": "personal",
            "value": "johnny1733@example.com"
          },
          {
            "_id": "we0",
            "type": "work",
            "value": "support@apiture.com"
          }
        ],
        "phones": [
          {
            "_id": "hp0",
            "type": "home",
            "number": "(555) 555-5555"
          },
          {
            "_id": "mp0",
            "type": "mobile",
            "number": "(999) 555-5555"
          }
        ],
        "birthdate": "1974-10-27",
        "citizenship": [
          {
            "countryCode": "US",
            "state": "citizen"
          }
        ],
        "occupation": "Software Engineer",
        "addresses": [
          {
            "type": "home",
            "addressLine1": "555 N Front Street",
            "addressLine2": "Suite 5555",
            "city": "Wilmington",
            "regionCode": "NC",
            "postalCode": "28401-5405",
            "countryCode": "US"
          },
          {
            "type": "home",
            "addressLine1": "123 S 3rd Street",
            "addressLine2": "Apt 42",
            "city": "Wilmington",
            "regionCode": "NC",
            "postalCode": "28411-5405",
            "countryCode": "US"
          }
        ],
        "lastContactedAt": "2018-07-29T11:13:54Z",
        "lastLoggedInAt": "2017-12-29T15:19:41Z",
        "state": "active",
        "createdAt": "2018-07-29T11:13:54Z"
      }
    ]
  }
}

Users collection

Collection of users. The items in the collection are ordered in the _embedded object with name items. The top-level _links object may contain pagination links (self, next, prev, first, last, collection).

Properties

NameDescription
_links object
An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
» additionalProperties link
Describes a hypermedia link within a _links object in HAL representations. In Apiture APIs, links are HAL links, but Apiture APIs do not use the name or hreflang properties of HAL. Apiture links may include a method property.
_embedded object
Embedded objects.
» items [summaryUser]
[Summary representation of a user resource in user collections. This representation normally does not contain any _embedded objects. If needed, call the GET operation on the item's self link to get _embedded objects.]
_profile string(uri)
The URI of a resource profile which describes the representation.
_error error
An object which describes an error. This value is omitted if the operation succeeded without error.
count integer
The number of items in the collection. This value is optional and my be omitted if the count is not computable efficiently. If a filter is applied to the collection (either implicitly or explicitly), the count, if present, indicates the number of items that satisfy the filter.
start integer
The start index of this page of items.
limit integer
The maximum number of items per page.
name string
The name of the collection.

constraints

{
  "_links": {
    "property1": {
      "href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
      "title": "Applicant"
    },
    "property2": {
      "href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
      "title": "Applicant"
    }
  },
  "_embedded": {},
  "_profile": "http://example.com",
  "_error": {
    "_id": "2eae46e1-575c-4d69-8a8f-0a7b0115a4b3",
    "message": "The value for deposit must be greater than 0.",
    "statusCode": 422,
    "type": "positiveNumberRequired",
    "attributes": {
      "value": -125.5
    },
    "remediation": "Provide a value which is greater than 0",
    "occurredAt": "2018-01-25T05:50:52.375Z",
    "_links": {
      "describedby": {
        "href": "https://developer.apiture.com/errors/positiveNumberRequired"
      }
    },
    "_embedded": {
      "errors": []
    }
  },
  "transfers": {
    "singleCreditLimit": "20000.00",
    "singleDebitLimit": "20000.00",
    "dailyCreditLimit": "500000.00",
    "dailyDebitLimit": "500000.00"
  },
  "checkDeposits": {
    "enabled": true,
    "monthlyTotalAmountLimit": "30000.00",
    "monthlyTotalChecksLimit": 200
  }
}

Constraints

An Constraints description. The attributes field a required map of name/value pairs which provide structured data about the constraint.

Properties

NameDescription
_links object
An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
» additionalProperties link
Describes a hypermedia link within a _links object in HAL representations. In Apiture APIs, links are HAL links, but Apiture APIs do not use the name or hreflang properties of HAL. Apiture links may include a method property.
_embedded object
An optional map of nested resources, mapping each nested resource name to a nested resource representation.
_profile string(uri)
The URI of a resource profile which describes the representation.
_error error
An object which describes an error. This value is omitted if the operation succeeded without error.
transfers transferConstraints
Constraints on the user's money transfers.
checkDeposits checkDepositConstraints
Constraints on the user's remote check deposits.

updateConstraints

{
  "transfers": {
    "singleCreditLimit": "20000.00",
    "singleDebitLimit": "20000.00",
    "dailyCreditLimit": "500000.00",
    "dailyDebitLimit": "500000.00"
  },
  "checkDeposits": {
    "enabled": true,
    "monthlyTotalAmountLimit": "30000.00",
    "monthlyTotalChecksLimit": 200
  }
}

Update user's constraints

Representation used to update or patch a user's constraints.

Properties

NameDescription
transfers transferConstraints
Constraints on the user's money transfers.
checkDeposits checkDepositConstraints
Constraints on the user's remote check deposits.

transferConstraints

{
  "singleCreditLimit": "20000.00",
  "singleDebitLimit": "20000.00",
  "dailyCreditLimit": "500000.00",
  "dailyDebitLimit": "500000.00"
}

User's constraints for transfers

Representation used to describe the limits for transfers.

Properties

NameDescription
singleCreditLimit string
The string representation of the limit on the amount of an individual credit transfer for a related user.
singleDebitLimit string
The string representation of the limit on the amount of an individual debit transfer for a related user.
dailyCreditLimit string
The string representation of the limit on the total amount of credit transfers per calendar day for a related user.
dailyDebitLimit string
The string representation of the limit on the total amount of debit transfers per calendar day for a related user.

checkDepositConstraints

{
  "enabled": true,
  "monthlyTotalAmountLimit": "30000.00",
  "monthlyTotalChecksLimit": 200
}

User's constraints for check deposits

Representation used to describe the limits for check deposits.

Properties

NameDescription
enabled boolean
Indicates that the check deposit feature is enabled for the user.
monthlyTotalAmountLimit string
The string representation of the limit on the total amount of a check deposit per calendar month for a related user. The default is “50000.00”, although the default may be configurable by the financial institution.
monthlyTotalChecksLimit number(integer)
The string representation of the limit on the total number of a check per calendar month for a related user. The default is 1000, although the default may be configurable by the financial institution.

root

{
  "id": "apiName",
  "name": "API name",
  "apiVersion": "1.0.0",
  "_profile": "https://api.apiture.com/schemas/common/root/v1.0.0/profile.json",
  "_links": {}
}

API Root

A HAL response, with hypermedia _links for the top-level resources and operations in API.

Properties

NameDescription
_links object
An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
» additionalProperties link
Describes a hypermedia link within a _links object in HAL representations. In Apiture APIs, links are HAL links, but Apiture APIs do not use the name or hreflang properties of HAL. Apiture links may include a method property.
_embedded object
An optional map of nested resources, mapping each nested resource name to a nested resource representation.
_profile string(uri)
The URI of a resource profile which describes the representation.
_error error
An object which describes an error. This value is omitted if the operation succeeded without error.
_id string
This API's unique ID.
name string
This API's name.
apiVersion string
This API's version.

configurationGroups

{
  "_profile": "http://localhost:8080/schemas/configurations/configurationGroups/v1.0.0/profile.json",
  "start": 10,
  "limit": 10,
  "count": 67,
  "name": "configurationGroups",
  "_links": {
    "self": {
      "href": "/configurations/configurations/groups?start=10&limit=10"
    },
    "first": {
      "href": "/configurations/configurations/groups?start=0&limit=10"
    },
    "next": {
      "href": "/configurations/configurations/groups?start=20&limit=10"
    },
    "collection": {
      "href": "/configurations/configurations/groups"
    }
  },
  "_embedded": {
    "items": [
      {
        "_profile": "https://api.apiture.com/schemas/configurations/configurationGroup/v1.0.0/profile.json",
        "_links": {
          "self": {
            "href": "/configurations/groups/basic"
          },
          "apiture:configuration": {
            "href": "/configurations"
          }
        },
        "name": "basic",
        "label": "Basic Settings",
        "description": "The basic settings for the Transfers API"
      },
      {
        "_profile": "https://api.apiture.com/schemas/configurations/configurationGroup/v1.0.0/profile.json",
        "_links": {
          "self": {
            "href": "/configurations/groups/calendar"
          },
          "apiture:configuration": {
            "href": "/configurations"
          }
        },
        "name": "calendar",
        "label": "Calendar",
        "description": "A calendar that specifies which dates are valid for performing transfers (e.g., weekdays excluding federal holidays)"
      }
    ]
  }
}

Configuration Group Collection

Collection of configuration groups. The items in the collection are ordered in the _embedded object with name items. The top-level _links object may contain pagination links (self, next, prev, first, last, collection).

Properties

NameDescription
_links object
An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
» additionalProperties link
Describes a hypermedia link within a _links object in HAL representations. In Apiture APIs, links are HAL links, but Apiture APIs do not use the name or hreflang properties of HAL. Apiture links may include a method property.
_embedded object
Embedded objects.
» items [configurationGroupSummary]
An array containing a page of configuration group items.
_profile string(uri)
The URI of a resource profile which describes the representation.
_error error
An object which describes an error. This value is omitted if the operation succeeded without error.
count integer
The number of items in the collection. This value is optional and my be omitted if the count is not computable efficiently. If a filter is applied to the collection (either implicitly or explicitly), the count, if present, indicates the number of items that satisfy the filter.
start integer
The start index of this page of items.
limit integer
The maximum number of items per page.
name string
The name of the collection.

configurationGroup

{
  "_profile": "https://api.apiture.com/schemas/configurations/configurationGroup/v1.0.0/profile.json",
  "_links": {
    "self": {
      "href": "/configurations/groups/basic"
    },
    "apiture:configuration": {
      "href": "/configurations"
    }
  },
  "name": "basic",
  "label": "Basic Settings",
  "description": "The basic settings for the Transfers API",
  "schema": {
    "type": "object",
    "properties": {
      "dailyLimit": {
        "type": "number",
        "description": "The daily limit for the number of transfers"
      },
      "cutoffTime": {
        "type": "string",
        "format": "time",
        "description": "The cutoff time for scheduling transfers for the current day"
      }
    }
  },
  "values": {
    "dailyLimit": 5,
    "cutoffTime": "17:30:00"
  }
}

Configuration Group

Represents a configuration group.

Properties

NameDescription
_links object
An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
» additionalProperties link
Describes a hypermedia link within a _links object in HAL representations. In Apiture APIs, links are HAL links, but Apiture APIs do not use the name or hreflang properties of HAL. Apiture links may include a method property.
_embedded object
An optional map of nested resources, mapping each nested resource name to a nested resource representation.
_profile string(uri)
The URI of a resource profile which describes the representation.
_error error
An object which describes an error. This value is omitted if the operation succeeded without error.
name string
The name of this configuration group, must be unique within the set of all resources of this type.
minLength: 1
maxLength: 48
pattern: [a-zA-Z][-\w_]*
label string
The text label for this resource, suitable for presentation to the client.
minLength: 1
maxLength: 128
description string
The full description for this resource, suitable for presentation to the client.
minLength: 1
maxLength: 4096
schema configurationSchema
The schema which defines the name and types of the variables that are part of this configuration definition. Property names must be simple identifiers consisting of alphanumeric characters, -, _ following the pattern letter [letter | digit | '-' | '_']*

This is implicitly a schema for type: object and contains the properties.

The values in a configuration conform to the schema. The names and types are described with a subset of JSON Schema Core and JSON Schema Validation similar to that used to define schemas in OpenAPI Specification 2.0.

values configurationValues
The data values associated with this configuration group: the group's variable names and values. These values must conform to this item's schema.

Note: the schema may also contain default values which, if present, are used if a value is not set in the definition's values.

For example, multiple configurations may use the same schema that defines values a, b, and c, but each configuration may have their own unique values for a, b, and c which is separate from the schema.

configurationSchema

{
  "type": "object",
  "properties": {
    "dailyLimit": {
      "type": "number",
      "description": "The daily limit for the number of transfers"
    },
    "cutoffTime": {
      "type": "string",
      "format": "time",
      "description": "The cutoff time for scheduling transfers for the current day"
    }
  }
}

Configuration Schema

The schema which defines the name and types of the variables that are part of this configuration definition. Property names must be simple identifiers consisting of alphanumeric characters, -, following the pattern letter [letter | digit | '-' | '']*

This is implicitly a schema for type: object and contains the properties.

The values in a configuration conform to the schema. The names and types are described with a subset of JSON Schema Core and JSON Schema Validation similar to that used to define schemas in OpenAPI Specification 2.0.

Properties

configurationValues

{
  "dailyLimit": 5,
  "cutoffTime": "17:30:00"
}

Configuration Values

The data values associated with this configuration group: the group's variable names and values. These values must conform to this item's schema.

Note: the schema may also contain default values which, if present, are used if a value is not set in the definition's values.

For example, multiple configurations may use the same schema that defines values a, b, and c, but each configuration may have their own unique values for a, b, and c which is separate from the schema.

Properties

errorResponse

{
  "_profile": "https://api.apiture.com/schemas/common/errorResponse/v1.0.0/profile.json",
  "_error": {
    "_id": "2eae46e1-575c-4d69-8a8f-0a7b0115a4b3",
    "message": "The value for deposit must be greater than 0.",
    "statusCode": 422,
    "type": "positiveNumberRequired",
    "attributes": {
      "value": -125.5
    },
    "remediation": "Provide a value which is greater than 0",
    "occurredAt": "2018-01-25T05:50:52.375Z",
    "_links": {
      "describedby": {
        "href": "https://api.apiture.com/errors/positiveNumberRequired"
      }
    },
    "_embedded": {
      "errors": []
    }
  }
}

Error Response

Describes an error response, typically returned on 4xx or 5xx errors from API operations. The _error object contains the error details.

Properties

NameDescription
_links object
An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
» additionalProperties link
Describes a hypermedia link within a _links object in HAL representations. In Apiture APIs, links are HAL links, but Apiture APIs do not use the name or hreflang properties of HAL. Apiture links may include a method property.
_embedded object
An optional map of nested resources, mapping each nested resource name to a nested resource representation.
_profile string(uri)
The URI of a resource profile which describes the representation.
_error error
An object which describes an error. This value is omitted if the operation succeeded without error.

challengeErrorResponse

{
  "_links": {
    "property1": {
      "href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
      "title": "Applicant"
    },
    "property2": {
      "href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
      "title": "Applicant"
    }
  },
  "_embedded": {},
  "_profile": "http://example.com",
  "_error": {
    "message": "string",
    "_id": "string",
    "statusCode": 422,
    "type": "string",
    "occurredAt": "2018-02-02T03:37:15.375Z",
    "attributes": {},
    "remediation": "string",
    "errors": [
      {
        "_id": "2eae46e1-575c-4d69-8a8f-0a7b0115a4b3",
        "message": "The value for deposit must be greater than 0.",
        "statusCode": 422,
        "type": "positiveNumberRequired",
        "attributes": {
          "value": -125.5
        },
        "remediation": "Provide a value which is greater than 0",
        "occurredAt": "2018-01-25T05:50:52.375Z",
        "_links": {
          "describedby": {
            "href": "https://developer.apiture.com/errors/positiveNumberRequired"
          }
        },
        "_embedded": {
          "errors": []
        }
      }
    ],
    "_links": {
      "property1": {
        "href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
        "title": "Applicant"
      },
      "property2": {
        "href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
        "title": "Applicant"
      }
    },
    "_embedded": {
      "challenge": {
        "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
        "_profile": "https://api.apiture.com/schemas/challenges/challenge/v1.0.0/profile.json",
        "reason": "Transfer amount much higher than normal",
        "contextUri": "https://fi.apiture.com/users/50b9df19-d6bf-4ac0-b5f4-3e6448b7dacd/addresses/ha1",
        "minimumAuthenticatorCount": 1,
        "authenticators": [
          {
            "_id": "7fadd35b-6f6b-4901-b1ba-d3b91c9dcee3",
            "_profile": "https://api.apiture.com/schemas/challenges/authenticator/v1.0.0/profile.json",
            "userId": "b2720469-3497-4b82-8b85-30f2155aa66d",
            "state": "started",
            "type": {
              "name": "sms",
              "label": "SMS Code",
              "description": "Enter a code sent via SMS to the user's preferred mobile device.",
              "category": "device",
              "schema": {
                "title": "SMS attributes",
                "description": "Schema for an authenticator's `attributes` when the authenticator type is `sms`.",
                "type": "object",
                "required": [
                  "code",
                  "length"
                ],
                "properties": {
                  "code": {
                    "type": "string",
                    "description": "A code that was sent to the user's mobile device via SMS. The user should enter the code in the app, then sets `attributes.code` to that. The length of the code (the number of characters or digits) is must equal the `length'.",
                    "minLength": 3,
                    "maxLength": 10
                  },
                  "length": {
                    "description": "The number of digits/characters that are sent to the user via SMS.",
                    "type": "number",
                    "format": "integer",
                    "minimum": 3,
                    "maximum": 10,
                    "example": 6
                  }
                }
              }
            },
            "maximumRetries": 3,
            "retryCount": 1,
            "createdAt": "2019-08-23T12:42:50.375Z",
            "expiresAt": "2019-08-23T13:12:50.375Z",
            "_links": {
              "self": {
                "href": "/auth/challenges/0399abed-fd3d-4830-a88b-30f38b8a365c/authenticators/7fadd35b-6f6b-4901-b1ba-d3b91c9dcee3"
              },
              "apiture:challenge": {
                "href": "/auth/challenges/0399abed-fd3d-4830-a88b-30f38b8a365c"
              },
              "apiture:retry": {
                "href": "/auth/challenges/retriedAuthenticators?authenticator=7fadd35b-6f6b-4901-b1ba-d3b91c9dcee3"
              },
              "apiture:verify": {
                "href": "/auth/challenges/verifiedAuthenticators"
              }
            }
          }
        ],
        "maximumRedemptionCount": 1,
        "redemptionCount": 0,
        "state": "pending",
        "createdAt": "2019-08-23T11:37:55.375Z",
        "expiresAt": "2019-08-23T12:37:55.375Z",
        "_links": {
          "self": {
            "href": "/auth/challenges/5d63053d-435c-4455-a0b5-6f88ab729d1a"
          },
          "apiture:redeem": {
            "href": "/auth/redeemedChallenges?challenge=5d63053d-435c-4455-a0b5-6f88ab729d1a"
          },
          "apiture:restart": {
            "href": "/auth/restartedChallenges?challenge=5d63053d-435c-4455-a0b5-6f88ab729d1a"
          }
        }
      }
    }
  }
}

Challenge Error Response

When an operation requires an additional identity verification challenge, it returns a 401 Unauthorized response status code and an error response with a challenge resource embedded in the _error._embedded.challenge. This informs the caller that they should verify the challenge via one or more of its authenticators, then retry the operation with the Apiture-Challenge header that references the challenge's _id.

Properties

NameDescription
_links object
An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
» additionalProperties link
Describes a hypermedia link within a _links object in HAL representations. In Apiture APIs, links are HAL links, but Apiture APIs do not use the name or hreflang properties of HAL. Apiture links may include a method property.
_embedded object
An optional map of nested resources, mapping each nested resource name to a nested resource representation.
_profile string(uri)
The URI of a resource profile which describes the representation.
_error challengeError
The description of the error.

address

{
  "_id": "ha5",
  "type": "home",
  "addressLine1": "555 N Front Street",
  "addressLine2": "Suite 5555",
  "city": "Wilmington",
  "regionCode": "NC",
  "postalCode": "28401-5405",
  "countryCode": "US"
}

Address

A postal address.

Properties

NameDescription
type string (required)
The type of this address.


Enumerated values:
unknown
home
work
school
postOffice
vacation
shipping
billing
headquarters
commercial
property
other
notApplicable

label string
A text label, suitable for presentation to the end user. This is derived from type or from otherType if type is other
read-only
otherType string
The actual address type if type is other.
minLength: 4
maxLength: 32
addressLine1 string
The first street address line of the address, normally a house number and street name.
addressLine2 string
The optional second street address line of the address.
city string
The name of the city or municipality.
regionCode string
The mailing address region code, such as state in the US, or a province in Canada.
minLength: 2
maxLength: 2
postalCode string
The mailing address postal code, such as a US Zip or Zip+4 code, or a Canadian postal code.
minLength: 5
maxLength: 10
countryCode string
The ISO 3166-1 country code.
minLength: 2
maxLength: 2
_id string
An identifier for this address, so that it can be referenced uniquely. The service will assign a unique _id if the client does not provide one. The _id must be unique across all addresses within the addresses array.
minLength: 1
maxLength: 8

typedEmailAddress

{
  "value": "JohnBankCustomer@example.com",
  "type": "unknown",
  "_id": "ha3"
}

Email Address

An email address and the email address type.

Properties

NameDescription
value string(email)
The email address, such as JohnBankCustomer@example.com
minLength: 8
maxLength: 120
type string
The kind of email address this is.


Enumerated values:
unknown
personal
work
school
other
notApplicable

_id string
An identifier for this email address, so that it can be referenced uniquely. The service will assign a unique _id if the client does not provide one. The _id must be unique across all email addresses within the emailAddresses array.
minLength: 1
maxLength: 8

phoneNumber

{
  "_id": "hp1",
  "type": "home",
  "number": "555-555-5555"
}

Phone Number

A phone number and its role.

Properties

NameDescription
type string (required)
The type or role of this phone number.


Enumerated values:
unknown
home
work
mobile
fax
other

number string (required)
The phone number, as a string.
label string
A text label, suitable for presentation to the end user. This is also used if type is other.
_id string
An identifier for this phone number, so that it can be referenced uniquely. The service will assign a unique _id if the client does not provide one. The _id must be unique across all phone numbers within the phones array.
minLength: 1
maxLength: 8

{
  "property1": {
    "href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
    "title": "Applicant"
  },
  "property2": {
    "href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
    "title": "Applicant"
  }
}

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 within a _links object in HAL representations. In Apiture APIs, links are HAL links, but Apiture APIs do not use the name or hreflang properties of HAL. Apiture links may include a method property.

attributes

{}

Attributes

An optional map of name/value pairs which contains additional dynamic data about the resource.

Properties

configurationGroupSummary

{
  "_links": {
    "property1": {
      "href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
      "title": "Applicant"
    },
    "property2": {
      "href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
      "title": "Applicant"
    }
  },
  "_embedded": {},
  "_profile": "http://example.com",
  "_error": {
    "_id": "2eae46e1-575c-4d69-8a8f-0a7b0115a4b3",
    "message": "The value for deposit must be greater than 0.",
    "statusCode": 422,
    "type": "positiveNumberRequired",
    "attributes": {
      "value": -125.5
    },
    "remediation": "Provide a value which is greater than 0",
    "occurredAt": "2018-01-25T05:50:52.375Z",
    "_links": {
      "describedby": {
        "href": "https://developer.apiture.com/errors/positiveNumberRequired"
      }
    },
    "_embedded": {
      "errors": []
    }
  },
  "name": "transfers",
  "label": "Transfers Configuration",
  "description": "The configuration for the Transfers API."
}

Configuration Group Summary

A summary of the data contained within a configuration group resource.

Properties

NameDescription
_links object
An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
» additionalProperties link
Describes a hypermedia link within a _links object in HAL representations. In Apiture APIs, links are HAL links, but Apiture APIs do not use the name or hreflang properties of HAL. Apiture links may include a method property.
_embedded object
An optional map of nested resources, mapping each nested resource name to a nested resource representation.
_profile string(uri)
The URI of a resource profile which describes the representation.
_error error
An object which describes an error. This value is omitted if the operation succeeded without error.
name string
The name of this configuration group, must be unique within the set of all resources of this type.
minLength: 1
maxLength: 48
pattern: [a-zA-Z][-\w_]*
label string
The text label for this resource, suitable for presentation to the client.
minLength: 1
maxLength: 128
description string
The full description for this resource, suitable for presentation to the client.
minLength: 1
maxLength: 4096

{
  "href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
  "title": "Applicant"
}

Link

Describes a hypermedia link within a _links object in HAL representations. In Apiture APIs, links are HAL links, but Apiture APIs do not use the name or hreflang properties of HAL. Apiture links may include a method property.

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.

error

{
  "_id": "2eae46e1-575c-4d69-8a8f-0a7b0115a4b3",
  "message": "The value for deposit must be greater than 0.",
  "statusCode": 422,
  "type": "positiveNumberRequired",
  "attributes": {
    "value": -125.5
  },
  "remediation": "Provide a value which is greater than 0",
  "occurredAt": "2018-01-25T05:50:52.375Z",
  "_links": {
    "describedby": {
      "href": "https://developer.apiture.com/errors/positiveNumberRequired"
    }
  },
  "_embedded": {
    "errors": []
  }
}

Error

Describes an error in an API request or in a service called via the API.

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 RFC 3339 UTC time stamp indicating when the error occurred.
attributes attributes
Informative values or constraints which describe the error. For example, for a value out of range error, the attributes may specify the minimum and maximum values. This allows clients to present error messages as they see fit (the API does not assume the client/presentation tier). The set of attributes varies by error type.
remediation string
An optional localized string which provides hints for how the user or client can resolve the error.
errors [error]
An optional array of nested error objects. This property is not always present.
_links links
An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
_embedded object
Embedded objects. An error object may contain nested errors. For example, an API which validates its request body may find multiple errors in the request, which are returned with an error response with nested errors. These are held in an items array of errorResponse objects. _embedded or _embedded.items may not exist if the error does not have nested errors. This property is deprecated; use see error.errors instead.
» items [errorResponse]
An array of error objects.

simpleContact

{
  "firstName": "John",
  "middleName": "Daniel",
  "lastName": "Smith",
  "preferredName": "John",
  "suffix": "MD",
  "identification": [
    {
      "type": "taxId",
      "value": "111-11-1111"
    }
  ],
  "addresses": [
    {
      "_id": "ha1",
      "type": "home",
      "addressLine1": "555 N Front Street",
      "addressLine2": "Suite 5555",
      "city": "Wilmington",
      "regionCode": "NC",
      "postalCode": "28401-5405",
      "countryCode": "US"
    }
  ],
  "preferredMailingAddressId": "ha1",
  "emailAddresses": [
    {
      "id": "pe0",
      "value": "api@apiture.com",
      "type": "personal"
    },
    {
      "id": "wp1",
      "value": "support@apiture.com",
      "type": "work"
    }
  ],
  "preferredEmailAddressId": "pe0",
  "phones": [
    {
      "_id": "hp1",
      "type": "home",
      "number": "(555) 555-5555"
    },
    {
      "_id": "mp1",
      "type": "mobile",
      "number": "(999) 555-5555"
    }
  ],
  "preferredPhoneId": "hp1"
}

Simple Contact

Basic contact and identification information for a person, consisting of the name, mailing address, phone numbers, email addresses, and government identification.

Properties

NameDescription
firstName string
The person's first name (or given name).
middleName string
The person's middle name.
lastName string
The person's last name (or surname).
addresses [address]
An array of postal/mailing addresses.
preferredMailingAddressId string
The preferred mailing address. This string is the _id of an address in the addresses array.
minLength: 1
maxLength: 4
emailAddresses [typedEmailAddress]
An array of email addresses.
preferredEmailAddressId string
The preferred email address. This string is the _id of an email address in the emailAddresses array.
minLength: 1
maxLength: 4
phones [phoneNumber]
An array of phone numbers.
preferredPhoneId string
The ID of preferred phone number. This string is the _id of a phone number in the phones array.
minLength: 1
maxLength: 4
prefix string
A title or honorific prefix such as Dr. or Fr.
maxLength: 20
suffix string
A title or honorific suffix such as PhD or DDS.
maxLength: 20
preferredName string
The contact's preferred name. This is how the contact's name is presented to the user in the interface. The default is the contact's firstName.
identification [identification]
A collection of official identifying information associated with the contact.

identification

{
  "type": "taxId",
  "value": "111-11-1111",
  "expiration": {}
}

Identification

Official identifying information associated with the contact.

Properties

NameDescription
value string (required)
The value of this form of identification (the tax ID as a string, for example)
type string (required)
The type of this form of identification.


Enumerated values:
taxId
passportNumber

expiration string(date)
The date when the form of identification expires, in RFC 3339 YYYY-MM-DD format.

challengeError

{
  "message": "string",
  "_id": "string",
  "statusCode": 422,
  "type": "string",
  "occurredAt": "2018-02-02T03:37:15.375Z",
  "attributes": {},
  "remediation": "string",
  "errors": [
    {
      "_id": "2eae46e1-575c-4d69-8a8f-0a7b0115a4b3",
      "message": "The value for deposit must be greater than 0.",
      "statusCode": 422,
      "type": "positiveNumberRequired",
      "attributes": {
        "value": -125.5
      },
      "remediation": "Provide a value which is greater than 0",
      "occurredAt": "2018-01-25T05:50:52.375Z",
      "_links": {
        "describedby": {
          "href": "https://developer.apiture.com/errors/positiveNumberRequired"
        }
      },
      "_embedded": {
        "errors": []
      }
    }
  ],
  "_links": {
    "property1": {
      "href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
      "title": "Applicant"
    },
    "property2": {
      "href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
      "title": "Applicant"
    }
  },
  "_embedded": {
    "challenge": {
      "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
      "_profile": "https://api.apiture.com/schemas/challenges/challenge/v1.0.0/profile.json",
      "reason": "Transfer amount much higher than normal",
      "contextUri": "https://fi.apiture.com/users/50b9df19-d6bf-4ac0-b5f4-3e6448b7dacd/addresses/ha1",
      "minimumAuthenticatorCount": 1,
      "authenticators": [
        {
          "_id": "7fadd35b-6f6b-4901-b1ba-d3b91c9dcee3",
          "_profile": "https://api.apiture.com/schemas/challenges/authenticator/v1.0.0/profile.json",
          "userId": "b2720469-3497-4b82-8b85-30f2155aa66d",
          "state": "started",
          "type": {
            "name": "sms",
            "label": "SMS Code",
            "description": "Enter a code sent via SMS to the user's preferred mobile device.",
            "category": "device",
            "schema": {
              "title": "SMS attributes",
              "description": "Schema for an authenticator's `attributes` when the authenticator type is `sms`.",
              "type": "object",
              "required": [
                "code",
                "length"
              ],
              "properties": {
                "code": {
                  "type": "string",
                  "description": "A code that was sent to the user's mobile device via SMS. The user should enter the code in the app, then sets `attributes.code` to that. The length of the code (the number of characters or digits) is must equal the `length'.",
                  "minLength": 3,
                  "maxLength": 10
                },
                "length": {
                  "description": "The number of digits/characters that are sent to the user via SMS.",
                  "type": "number",
                  "format": "integer",
                  "minimum": 3,
                  "maximum": 10,
                  "example": 6
                }
              }
            }
          },
          "maximumRetries": 3,
          "retryCount": 1,
          "createdAt": "2019-08-23T12:42:50.375Z",
          "expiresAt": "2019-08-23T13:12:50.375Z",
          "_links": {
            "self": {
              "href": "/auth/challenges/0399abed-fd3d-4830-a88b-30f38b8a365c/authenticators/7fadd35b-6f6b-4901-b1ba-d3b91c9dcee3"
            },
            "apiture:challenge": {
              "href": "/auth/challenges/0399abed-fd3d-4830-a88b-30f38b8a365c"
            },
            "apiture:retry": {
              "href": "/auth/challenges/retriedAuthenticators?authenticator=7fadd35b-6f6b-4901-b1ba-d3b91c9dcee3"
            },
            "apiture:verify": {
              "href": "/auth/challenges/verifiedAuthenticators"
            }
          }
        }
      ],
      "maximumRedemptionCount": 1,
      "redemptionCount": 0,
      "state": "pending",
      "createdAt": "2019-08-23T11:37:55.375Z",
      "expiresAt": "2019-08-23T12:37:55.375Z",
      "_links": {
        "self": {
          "href": "/auth/challenges/5d63053d-435c-4455-a0b5-6f88ab729d1a"
        },
        "apiture:redeem": {
          "href": "/auth/redeemedChallenges?challenge=5d63053d-435c-4455-a0b5-6f88ab729d1a"
        },
        "apiture:restart": {
          "href": "/auth/restartedChallenges?challenge=5d63053d-435c-4455-a0b5-6f88ab729d1a"
        }
      }
    }
  }
}

Challenge Error

The operation error description with an embedded identity challenge.

Properties

NameDescription
message string
A localized message string describing the error condition.
_id string
A unique identifier for this error instance. This may be used as a correlation ID with the root cause error (i.e. this ID may be logged at the source of the error). This is is an opaque string.
statusCode integer
The HTTP status code associate with this error.
minimum: 100
maximum: 599
type string
An error identifier which indicates the category of error and associate it with API support documentation or which the UI tier can use to render an appropriate message or hint. This provides a finer level of granularity than the statusCode. For example, instead of just 400 Bad Request, the type may be much more specific. such as integerValueNotInAllowedRange or numericValueExceedsMaximum or stringValueNotInAllowedSet.
occurredAt string(date-time)
An RFC 3339 UTC time stamp indicating when the error occurred.
attributes attributes
Informative values or constraints which describe the error. For example, for a value out of range error, the attributes may specify the minimum and maximum values. This allows clients to present error messages as they see fit (the API does not assume the client/presentation tier). The set of attributes varies by error type.
remediation string
An optional localized string which provides hints for how the user or client can resolve the error.
errors [error]
An optional array of nested error objects. This property is not always present.
_links links
An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
_embedded object
Embedded objects
» challenge challenge
The details of the identity verification challenge.

citizenship

[
  {
    "countryCode": "US",
    "state": "citizen"
  }
]

Citizenship

Citizenship or nationality status.

Properties

NameDescription
countryCode string (required)
The ISO 3166-1 country code for the individual's citizenship.
minLength: 2
maxLength: 2
state string (required)
The individual's citizenship status.


Enumerated values:
citizen
other

occupation

"unknown"

Occupation

The person's occupation.

Type: string
Enumerated values:
unknown
academia
architecture
artsDesign
buildingServices
businessAndFinancialOperations
childCare
communityAndSocialServices
computer
construction
education
energy
engineering
entertainment
farming
fishing
foodService
forestry
healthcare
hospitality
installationMaintenanceRepair
legal
localGovernment
management
media
military
nationalGovernment
nonProfit
officeAndAdministrationSupport
personalCare
production
protectiveServices
research
sales
sciences
sports
stateGovernment
technology
tourism
trade
transportation
notApplicable
unemployed
other

challenge

{
  "_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
  "_profile": "https://api.apiture.com/schemas/challenges/challenge/v1.0.0/profile.json",
  "reason": "Transfer amount much higher than normal",
  "contextUri": "https://fi.apiture.com/users/50b9df19-d6bf-4ac0-b5f4-3e6448b7dacd/addresses/ha1",
  "minimumAuthenticatorCount": 1,
  "authenticators": [
    {
      "_id": "7fadd35b-6f6b-4901-b1ba-d3b91c9dcee3",
      "_profile": "https://api.apiture.com/schemas/challenges/authenticator/v1.0.0/profile.json",
      "userId": "b2720469-3497-4b82-8b85-30f2155aa66d",
      "state": "started",
      "type": {
        "name": "sms",
        "label": "SMS Code",
        "description": "Enter a code sent via SMS to the user's preferred mobile device.",
        "category": "device",
        "schema": {
          "title": "SMS attributes",
          "description": "Schema for an authenticator's `attributes` when the authenticator type is `sms`.",
          "type": "object",
          "required": [
            "code",
            "length"
          ],
          "properties": {
            "code": {
              "type": "string",
              "description": "A code that was sent to the user's mobile device via SMS. The user should enter the code in the app, then sets `attributes.code` to that. The length of the code (the number of characters or digits) is must equal the `length'.",
              "minLength": 3,
              "maxLength": 10
            },
            "length": {
              "description": "The number of digits/characters that are sent to the user via SMS.",
              "type": "number",
              "format": "integer",
              "minimum": 3,
              "maximum": 10,
              "example": 6
            }
          }
        }
      },
      "maximumRetries": 3,
      "retryCount": 1,
      "createdAt": "2019-08-23T12:42:50.375Z",
      "expiresAt": "2019-08-23T13:12:50.375Z",
      "_links": {
        "self": {
          "href": "/auth/challenges/0399abed-fd3d-4830-a88b-30f38b8a365c/authenticators/7fadd35b-6f6b-4901-b1ba-d3b91c9dcee3"
        },
        "apiture:challenge": {
          "href": "/auth/challenges/0399abed-fd3d-4830-a88b-30f38b8a365c"
        },
        "apiture:retry": {
          "href": "/auth/challenges/retriedAuthenticators?authenticator=7fadd35b-6f6b-4901-b1ba-d3b91c9dcee3"
        },
        "apiture:verify": {
          "href": "/auth/challenges/verifiedAuthenticators"
        }
      }
    }
  ],
  "maximumRedemptionCount": 1,
  "redemptionCount": 0,
  "state": "pending",
  "createdAt": "2019-08-23T11:37:55.375Z",
  "expiresAt": "2019-08-23T12:37:55.375Z",
  "_links": {
    "self": {
      "href": "/auth/challenges/5d63053d-435c-4455-a0b5-6f88ab729d1a"
    },
    "apiture:redeem": {
      "href": "/auth/redeemedChallenges?challenge=5d63053d-435c-4455-a0b5-6f88ab729d1a"
    },
    "apiture:restart": {
      "href": "/auth/restartedChallenges?challenge=5d63053d-435c-4455-a0b5-6f88ab729d1a"
    }
  }
}

Challenge

A resource which represents an identity verification challenge to a user. The user must verify one or more of the authentication methods defined in this challenge in order to proceed with a banking operation (such as scheduling a larger than normal transfer, adding a joint owner or authorized signer to an account, or changing their mailing address or mobile phone number).

A challenge may have the following links:

Properties

NameDescription
_links object
An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
» additionalProperties link
Describes a hypermedia link within a _links object in HAL representations. In Apiture APIs, links are HAL links, but Apiture APIs do not use the name or hreflang properties of HAL. Apiture links may include a method property.
_embedded object
An optional map of nested resources, mapping each nested resource name to a nested resource representation.
_profile string(uri)
The URI of a resource profile which describes the representation.
_error error
An object which describes an error. This value is omitted if the operation succeeded without error.
reason string
The reason the application or service has issued a challenge requesting the user verify their identity. This is for labeling or informational purposes.
contextUri string(url)
The URI of a resource that establishes the context in which the user is asked to authenticate their identity. For example, for this may be for a pending transfer, a user's mailing address, or an account if adding a joint owner.
userId string
The user ID of the user who is requested to verify their identity. The default is the userID of the authenticated person creating the challenge.
minimumAuthenticatorCount number(integer)
The minimum number of different authenticators the user must verify in order to satisfy the identity challenge. The default is 1.
maximum: 4
maximumRedemptionCount number(integer)
The maximum number of times the challenge may be used or redeemed. The default is 1.
minimum: 1
_id string
The unique identifier for this challenge resource. This is an immutable opaque string assigned upon creation.
read-only
redemptionCount number(integer)
How many times the challenge has been redeemed.
read-only
state challengeState
The state of this authenticator.
read-only
createdAt string(date-time)
The time stamp when challenge was created, in RFC 3339 UTC date-time format (YYYY-MM-DDThh:mm:ss.sssZ).
read-only
authenticators [authenticator]
An array of authenticators with which the user can verify their identity. This is derived; the array and the authenticators are constructed in the createChallenge operation.
read-only
redeemable boolean
true if and only if the challenge may be redeemed. This is derived from the states of the challenge's authenticators; if the number of verified authenticators meets or exceeds the minimumAuthenticatorCount, the challenge becomes verified and may be redeemed via a POST to href in the challenge's apiture:redeem link.
read-only
verifiedAt string(date-time)
The time stamp when challenge was verified in RFC 3339 UTC date-time format (YYYY-MM-DDThh:mm:ss.sssZ).
read-only
failedAt string(date-time)
The time stamp when the user failed to verify their identity verification (authentication) for this challenge, in RFC 3339 UTC date-time format (YYYY-MM-DDThh:mm:ss.sssZ).
read-only
expiresAt string(date-time)
The time stamp when the this challenge expires, in RFC 3339 UTC date-time format (YYYY-MM-DDThh:mm:ss.sssZ).
read-only
redemptionHistory [string]
The time stamps when a service or operation redeemed this challenge, in RFC 3339 UTC date-time format (YYYY-MM-DDThh:mm:ss.sssZ). Item 0 is the time stamp the challenge was first redeemed, item 1 is the time stamp of the next redemption, and so on.
read-only

summaryChallenge

{
  "_links": {
    "property1": {
      "href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
      "title": "Applicant"
    },
    "property2": {
      "href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
      "title": "Applicant"
    }
  },
  "_embedded": {},
  "_profile": "http://example.com",
  "_error": {
    "_id": "2eae46e1-575c-4d69-8a8f-0a7b0115a4b3",
    "message": "The value for deposit must be greater than 0.",
    "statusCode": 422,
    "type": "positiveNumberRequired",
    "attributes": {
      "value": -125.5
    },
    "remediation": "Provide a value which is greater than 0",
    "occurredAt": "2018-01-25T05:50:52.375Z",
    "_links": {
      "describedby": {
        "href": "https://developer.apiture.com/errors/positiveNumberRequired"
      }
    },
    "_embedded": {
      "errors": []
    }
  },
  "reason": "string",
  "contextUri": "string",
  "userId": "string",
  "minimumAuthenticatorCount": 0,
  "maximumRedemptionCount": 1,
  "_id": "string",
  "redemptionCount": 0,
  "state": "pending",
  "createdAt": "2019-10-29T18:22:19Z"
}

Summary Challenge

Summary representation of a challenge, used in the challenge collection.

Properties

NameDescription
_links object
An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
» additionalProperties link
Describes a hypermedia link within a _links object in HAL representations. In Apiture APIs, links are HAL links, but Apiture APIs do not use the name or hreflang properties of HAL. Apiture links may include a method property.
_embedded object
An optional map of nested resources, mapping each nested resource name to a nested resource representation.
_profile string(uri)
The URI of a resource profile which describes the representation.
_error error
An object which describes an error. This value is omitted if the operation succeeded without error.
reason string
The reason the application or service has issued a challenge requesting the user verify their identity. This is for labeling or informational purposes.
contextUri string(url)
The URI of a resource that establishes the context in which the user is asked to authenticate their identity. For example, for this may be for a pending transfer, a user's mailing address, or an account if adding a joint owner.
userId string
The user ID of the user who is requested to verify their identity. The default is the userID of the authenticated person creating the challenge.
minimumAuthenticatorCount number(integer)
The minimum number of different authenticators the user must verify in order to satisfy the identity challenge. The default is 1.
maximum: 4
maximumRedemptionCount number(integer)
The maximum number of times the challenge may be used or redeemed. The default is 1.
minimum: 1
_id string
The unique identifier for this challenge resource. This is an immutable opaque string assigned upon creation.
read-only
redemptionCount number(integer)
How many times the challenge has been redeemed.
read-only
state challengeState
The state of this authenticator.
read-only
createdAt string(date-time)
The time stamp when challenge was created, in RFC 3339 UTC date-time format (YYYY-MM-DDThh:mm:ss.sssZ).
read-only

authenticator

{
  "_id": "7fadd35b-6f6b-4901-b1ba-d3b91c9dcee3",
  "_profile": "https://api.apiture.com/schemas/challenges/authenticator/v1.0.0/profile.json",
  "userId": "b2720469-3497-4b82-8b85-30f2155aa66d",
  "state": "started",
  "type": {
    "name": "sms",
    "label": "SMS Code",
    "description": "Enter a code sent via SMS to the user's preferred mobile device.",
    "category": "device",
    "schema": {
      "title": "SMS attributes",
      "description": "Schema for an authenticator's `attributes` when the authenticator type is `sms`.",
      "type": "object",
      "required": [
        "code",
        "length"
      ],
      "properties": {
        "code": {
          "type": "string",
          "description": "A code that was sent to the user's mobile device via SMS. The user should enter the code in the app, then sets `attributes.code` to that. The length of the code (the number of characters or digits) is must equal the `length'.",
          "minLength": 3,
          "maxLength": 10
        },
        "length": {
          "description": "The number of digits/characters that are sent to the user via SMS.",
          "type": "number",
          "format": "integer",
          "minimum": 3,
          "maximum": 10,
          "example": 6
        }
      }
    }
  },
  "maximumRetries": 3,
  "retryCount": 1,
  "createdAt": "2019-08-23T12:42:50.375Z",
  "expiresAt": "2019-08-23T13:12:50.375Z",
  "_links": {
    "self": {
      "href": "/auth/challenges/2e61e506-1568-4f1a-a93e-4d0a48a06d0e/authenticators/7fadd35b-6f6b-4901-b1ba-d3b91c9dcee3"
    },
    "apiture:challenge": {
      "href": "/auth/challenges/challenges/b59438cd-5efb-4915-916b-0600bb2a4e1e"
    },
    "apiture:retry": {
      "href": "/auth/challenges/retriedAuthenticators?authenticator=7fadd35b-6f6b-4901-b1ba-d3b91c9dcee3"
    },
    "apiture:verify": {
      "href": "/auth/challenges/verifiedAuthenticators"
    }
  }
}

Authenticator

Representation of authenticators which verify a user's identity. An authenticator has the following links:

Properties

NameDescription
_links object
An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
» additionalProperties link
Describes a hypermedia link within a _links object in HAL representations. In Apiture APIs, links are HAL links, but Apiture APIs do not use the name or hreflang properties of HAL. Apiture links may include a method property.
_embedded object
An optional map of nested resources, mapping each nested resource name to a nested resource representation.
_profile string(uri)
The URI of a resource profile which describes the representation.
_error error
An object which describes an error. This value is omitted if the operation succeeded without error.
type authenticatorType
The type of this authenticator. This must be one of the items in the /authenticatorTypes resource.
maximumRetries number(integer)
The maximum number of times the user may retry this authenticator. If 0, the user must authenticate correctly on the first try. When an authenticator is retried, the client should POST to the apiture:retry link on the authenticators; absence of the link means the user cannot retry the authenticator. The default is 3.
maximum: 10
userId string
The user ID of the user who is requested to verify their identity.
state authenticatorState
The state of this authenticator. This is derived and read-only.
read-only
retryCount number(integer)
The actual number of times a user has retried this authenticator.
read-only
maximum: 10
attributes object
Data collected from the user that is used to verify this authenticator. This data conforms to the schema defined in the type. For example, for sms, the attributes must contains a code.
createdAt string(date-time)
The time stamp when authenticator was created, in RFC 3339 UTC date-time format (YYYY-MM-DDThh:mm:ss.sssZ).
read-only
verifiedAt string(date-time)
The time stamp when authenticator was verified in RFC 3339 UTC date-time format (YYYY-MM-DDThh:mm:ss.sssZ).
read-only
failedAt string(date-time)
The time stamp when the user failed to verify their identity verification (authentication) for this challenge, in RFC 3339 UTC date-time format (YYYY-MM-DDThh:mm:ss.sssZ).
read-only
expiresAt string(date-time)
The time stamp when the this challenge expires, in RFC 3339 UTC date-time format (YYYY-MM-DDThh:mm:ss.sssZ).
read-only

authenticatorState

"pending"

Authenticator State

The state of a challenge authenticator resource.

Type: string
Enumerated values:
pending
started
verified
failed
expired

challengeState

"pending"

Challenge States

The state of an identity challenge resource. This is derived based on the state of the challenge's authenticators.

Type: string
Enumerated values:
pending
started
verified
failed
redeemed
expired

authenticatorType

{
  "name": "sms",
  "label": "SMS code",
  "description": "Enter a code sent via SMS to the user's preferred mobile device.",
  "category": "device",
  "schema": {
    "title": "SMS attributes",
    "description": "Schema for an authenticator's `attributes` when the authenticator type is `sms`.",
    "type": "object",
    "required": [
      "code",
      "length"
    ],
    "properties": {
      "code": {
        "type": "string",
        "description": "A code that was sent to the user's mobile device via SMS. The user should enter the code in the app, then sets `attributes.code` to that. The length of the code (the number of characters or digits) is must equal the `length'.",
        "minLength": 3,
        "maxLength": 10
      },
      "length": {
        "description": "The number of digits/characters that are sent to the user via SMS.",
        "type": "number",
        "format": "integer",
        "minimum": 3,
        "maximum": 10,
        "example": 6
      }
    }
  }
}

Authenticator Type

An authenticator type description.

Properties

NameDescription
name string
The name of this authenticator; also the key in the authenticatorTypes object.
label string
A localized label or title which may be used labels or other UI controls which present a value.
description string
A more detailed localized description of an authenticator type.
language string
The actual natural language tag to which this authentication type description is associated, as per RFC 7231. If omitted, this serves as the default.
category authenticatorCategory
The authentication category.
schema object
The JSON schema which describe the attibutes object for all authenticators of this type. For example, for sms, the schema defines a required code string.

authenticatorCategory

"knowledge"

authenticatorCategory

Categories which help classify and organize different authenticator types:

Type: string
Enumerated values:
knowledge
biometric
device