Notifications v0.10.1
Scroll down for code samples, example requests and responses. Select a language for code samples from the tabs above or the mobile navigation menu.
The Notifications API supports in-app notifications for Apiture digital banking clients. Using this API, services can generate notifications and clients can pull notifications for different contexts, such as users or accounts or a global context. These notifications are not related to operating system or devices notifications.
This API manages two types of resources:
- Notification definitions
- Notification instances
(Unless explicitly stated, the term "notification" in this document refers to a notification instance. When discussing notification definitions, we use the term "notification definition" or "definition".)
Services or administrative applications create notification definitions which act as templates for individual notification instances. A definition defines the context name for the notifications, the notification type, its message text, etc. Definitions are not associated with specific users.
After creating a definition, services call createNotifications
to create
instances from that definition. Instances contain contexts (usually the URI of a specific resource such as
an account or transfer, etc), a user, and optional expiration timestamp. Instances also derive the
notification message from their definition.
The client applications fetch notification instances for an authenticated
user in order to render an in-application message. Users may dismiss a notification and that is tracked with
the notification instance (they are exclude on the next getActiveNotifications
call).
Users can only view their own notifications and notifications definitions. End users do not have access to create or mofify definitions, create notification instances, expire or delete definitions, or expire or delete notification instances. Those operations are reserved for administrators and services.
Download OpenAPI Definition (YAML)
Base URLs:
Authentication
- API Key (
apiKey
)- header parameter: API-Key
- API Key based authentication. Each client application must pass its private, unique API key, allocated in the developer portal, via the
API-Key: {api-key}
request header.
- OAuth2 authentication (
accessToken
)- OAuth2 client access token authentication. The client authenticates against the server at
authorizationUrl
, passing the client's privateclientId
(and optional andclientSecret
) as part of this flow. The client obtains an access token from the server attokenUrl
. It then passes the received access token via theAuthorization: Bearer {access-token}
header in subsequent API calls. The authorization process also returns a refresh token which the client should use to renew the access token before it expires. - Flow:
authorizationCode
- Authorization URL = /auth/oauth2/authorize
- Token URL = /auth/oauth2/token
- OAuth2 client access token authentication. The client authenticates against the server at
Scope | Scope Description |
---|---|
data/read |
Read access to non-account, non-profile data. |
data/write |
Write (update) access to non-account, non-profile data. |
admin/write |
Admin write (update) access to non-account, non-profile data. |
admin/read |
Admin Read access to non-account, non-profile data. |
admin/delete |
Admin access to non-account, non-profile data. |
admin/full |
Full admin access to non-account, non-profile data. |
Notification Definitions
Definitions of In-app Notifications
getDefinitions
Code samples
# You can also use wget
curl -X GET /notifications/definitions \
-H 'Accept: application/hal+json' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
GET /notifications/definitions HTTP/1.1
Accept: application/hal+json
var headers = {
'Accept':'application/hal+json',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: '/notifications/definitions',
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('/notifications/definitions',
{
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 '/notifications/definitions',
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('/notifications/definitions', params={
}, headers = headers)
print r.json()
URL obj = new URL("/notifications/definitions");
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", "/notifications/definitions", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Return a collection of notification definitions
GET /definitions
Return a paginated sortable filterable searchable collection of notification definitions. The links in the response include pagination links.
Parameters
Parameter | Description |
---|---|
start (query) |
integer(int64) The zero-based index of the first definition item to include in this page. The default 0 denotes the beginning of the collection. |
limit (query) |
integer(int32) The maximum number of definition representations to return in this page. Default: 100 |
sortBy (query) |
string Optional sort criteria. See sort criteria format, such as ?sortBy=field1,-field2 . |
expired (query) |
boolean Filter definitions whose expired property matches the given value. |
type (query) |
array[string] Return only notification definitions whose type matches the one of query parameter values. The array item delimiter is the | pipe character. Examples: ?type=cdMaturingSoon ?type=cdMaturingSoon|cdInGracePeriod |
contextName (query) |
array[string] Return only notification definitions whose contextName matches the one of query parameter values. The array item delimiter is the | pipe character. Examples: ?contextName=account ?contextName=user|global |
filter (query) |
string Optional filter criteria. See filtering. |
q (query) |
string Optional search string. See searching. |
Try It
Example responses
200 Response
{
"_profile": "https://api.apiture.com/schemas/notifications/notificationDefinitions/v1.0.0/profile.json",
"name": "definitions",
"start": 10,
"limit": 10,
"count": 67,
"_links": {
"self": {
"href": "/notifications/definitions?start=10&limit=10"
},
"first": {
"href": "/notifications/definitions?start=0&limit=10"
},
"next": {
"href": "/notifications/definitions?start=20&limit=10"
},
"collection": {
"href": "/notifications/definitions"
}
},
"_embedded": {
"items": {
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"_profile": "https://api.apiture.com/schemas/notifications/summaryNotificationDefinition/v1.0.0/profile.json",
"type": "cdMaturingSoon",
"contextName": "account",
"indicator": true,
"notDismissible": false,
"priority": "medium",
"message": {
"text": "This CD account is maturing on {maturityDate}. Now is a good time to review your account maturity settings.",
"imageUri": "https://cdn.assets.3rdpartybank.com/icons/en/notifications/cdMaturingSoon.png"
},
"values": {
"maturityDate": "2020-04-09"
},
"_links": {
"self": {
"href": "/notifications/definitions/0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:expire": {
"href": "/expiredDefinitions?definition=0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:createNotifications": {
"href": "/notifications/definitions/0399abed-fd3d-4830-a88b-30f38b8a365c/notifications"
}
}
}
}
}
Responses
Status | Description |
---|---|
200 | OK |
OK | |
Schema: notificationDefinitions |
Status | Description |
---|---|
400 | Bad Request |
Bad Request. The request body or one or more of the query parameters was not well formed. The _error field in the response will contain details about the request error. | |
Schema: errorResponse |
Status | Description |
---|---|
422 | Unprocessable Entity |
Unprocessable Entity. The request body or 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 |
createDefinition
Code samples
# You can also use wget
curl -X POST /notifications/definitions \
-H 'Content-Type: application/hal+json' \
-H 'Accept: application/hal+json' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
POST /notifications/definitions 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: '/notifications/definitions',
method: 'post',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const inputBody = '{
"_profile": "https://api.apiture.com/schemas/notifications/createNotificationDefinition/v1.0.0/profile.json",
"type": "cdMaturingSoon",
"contextName": "account",
"indicator": true,
"priority": "medium",
"message": {
"text": "We have increased the rate of your CD from {oldApy}% to {newApy}%.",
"imageUri": "https://cdn.assets.3rdpartybank.com/icons/es/notifications/cdRateIncreased.png",
"variants": {
"es": {
"text": "Hemos aumentado la velocidad de su CD de {oldApy}% a {newApy}%.",
"imageUri": "https://cdn.assets.3rdpartybank.com/icons/es/notifications/cdRateIncreased.png"
},
"fr": {
"text": "Nous avons augment\\u00e9 le taux de votre CD de {oldApy}% \\00e0 {newApy}%.",
"imageUri": "https://cdn.assets.3rdpartybank.com/icons/fr/notifications/cdRateIncreased.png"
}
}
},
"values": {
"oldApy": "1.750",
"newApy": "1.8.0"
}
}';
const headers = {
'Content-Type':'application/hal+json',
'Accept':'application/hal+json',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
fetch('/notifications/definitions',
{
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 '/notifications/definitions',
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('/notifications/definitions', params={
}, headers = headers)
print r.json()
URL obj = new URL("/notifications/definitions");
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", "/notifications/definitions", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Create a new notification definition
POST /definitions
Create a new notification definition that specifies the notification type and message. After creating a notification, create notification instances for specific users and contexts.
Note: To add a global notification, use createGlobalDefinition
instead.
Body parameter
{
"_profile": "https://api.apiture.com/schemas/notifications/createNotificationDefinition/v1.0.0/profile.json",
"type": "cdMaturingSoon",
"contextName": "account",
"indicator": true,
"priority": "medium",
"message": {
"text": "We have increased the rate of your CD from {oldApy}% to {newApy}%.",
"imageUri": "https://cdn.assets.3rdpartybank.com/icons/es/notifications/cdRateIncreased.png",
"variants": {
"es": {
"text": "Hemos aumentado la velocidad de su CD de {oldApy}% a {newApy}%.",
"imageUri": "https://cdn.assets.3rdpartybank.com/icons/es/notifications/cdRateIncreased.png"
},
"fr": {
"text": "Nous avons augment\\u00e9 le taux de votre CD de {oldApy}% \\00e0 {newApy}%.",
"imageUri": "https://cdn.assets.3rdpartybank.com/icons/fr/notifications/cdRateIncreased.png"
}
}
},
"values": {
"oldApy": "1.750",
"newApy": "1.8.0"
}
}
Parameters
Parameter | Description |
---|---|
body (body) |
createNotificationDefinition (required) The data necessary to create a new notification definition. |
Try It
Example responses
201 Response
{
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"_profile": "https://api.apiture.com/schemas/notifications/notificationDefinition/v1.0.0/profile.json",
"type": "cdMaturingSoon",
"contextName": "account",
"indicator": true,
"notDismissible": false,
"priority": "medium",
"expired": false,
"expiresAt": "2020-04-18T12:26:36.375Z",
"updatedAt": "2020-04-16T12:00:22.100Z",
"message": {
"text": "This CD account is maturing on {maturityDate}. Now is a good time to review your account maturity settings.",
"imageUri": "https://cdn.assets.3rdpartybank.com/icons/en/notifications/cdMaturingSoon.png"
},
"values": {
"maturityDate": "2020-04-09"
},
"_links": {
"self": {
"href": "/notifications/definitions/0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:expire": {
"href": "/expiredDefinitions?definition=0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:createNotifications": {
"href": "/notifications/definitions/0399abed-fd3d-4830-a88b-30f38b8a365c/notifications"
}
}
}
Responses
Status | Description |
---|---|
201 | Created |
Created | |
Schema: notificationDefinition |
Status | Description |
---|---|
400 | Bad Request |
Bad Request. The request body or one or more of the query parameters was not well formed. The _error field in the response will contain details about the request error. | |
Schema: errorResponse |
Status | Description |
---|---|
422 | Unprocessable Entity |
Unprocessable Entity. The request body or one or more of the query parameters was well formed but otherwise invalid. The _error field in the response will contain details about the request error. | |
Schema: errorResponse |
Response Headers
Status | Description |
---|---|
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 |
An entity tag which may be passed in the If-Match request header for PUT or PATCH operations which update the resource. |
createGlobalDefinition
Code samples
# You can also use wget
curl -X POST /notifications/globalDefinitions \
-H 'Content-Type: application/hal+json' \
-H 'Accept: application/hal+json' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
POST /notifications/globalDefinitions 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: '/notifications/globalDefinitions',
method: 'post',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const inputBody = '{
"_profile": "https://api.apiture.com/schemas/notifications/createGlobalNotificationDefinition/v1.0.0/profile.json",
"priority": "high",
"message": {
"text": "The bank branch at {address} will be closed until September 17 due to Hurricane Heathcliff. See [our announcement](http://www.3rdpartybank.com/announcements/heathcliff) for more information.",
"imageUri": "https://cdn.assets.3rdpartybank.com/icons/en/hurricane-flag.png",
"variants": {
"es": {
"text": "La sucursal bancaria en {address} estar\\u00e1 cerrada hasta el 17 de septiembre debido al hurac\\u00e1n Heathcliff. Consulte [nuestro anuncio](http://www.3rdpartybank.com/announcements/heathcliff) para obtener m\\u00e1s informaci\\u00f3n.",
"imageUri": "https://cdn.assets.3rdpartybank.com/icons/es/hurricane-flag.png"
}
}
},
"values": {
"address": "123 N. Main St. Wilmington"
}
}';
const headers = {
'Content-Type':'application/hal+json',
'Accept':'application/hal+json',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
fetch('/notifications/globalDefinitions',
{
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 '/notifications/globalDefinitions',
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('/notifications/globalDefinitions', params={
}, headers = headers)
print r.json()
URL obj = new URL("/notifications/globalDefinitions");
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", "/notifications/globalDefinitions", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Create a new global notification definition
POST /globalDefinitions
Create a new global notification definition with a message. A global notification definition is one whose contextName
is global
. This is used for announcements targeted to all financial institution customers. The new definition is available in the getDefinitions
collection. Clients should request active global notifications for users via getActiveNotifications
and ?context=global
(or ?context=global|user
). The services does not create Instances of a global notification for each user until a client requests them.
To add a non-global notification, use createDefinition
instead.
Body parameter
{
"_profile": "https://api.apiture.com/schemas/notifications/createGlobalNotificationDefinition/v1.0.0/profile.json",
"priority": "high",
"message": {
"text": "The bank branch at {address} will be closed until September 17 due to Hurricane Heathcliff. See [our announcement](http://www.3rdpartybank.com/announcements/heathcliff) for more information.",
"imageUri": "https://cdn.assets.3rdpartybank.com/icons/en/hurricane-flag.png",
"variants": {
"es": {
"text": "La sucursal bancaria en {address} estar\\u00e1 cerrada hasta el 17 de septiembre debido al hurac\\u00e1n Heathcliff. Consulte [nuestro anuncio](http://www.3rdpartybank.com/announcements/heathcliff) para obtener m\\u00e1s informaci\\u00f3n.",
"imageUri": "https://cdn.assets.3rdpartybank.com/icons/es/hurricane-flag.png"
}
}
},
"values": {
"address": "123 N. Main St. Wilmington"
}
}
Parameters
Parameter | Description |
---|---|
body (body) |
createGlobalNotificationDefinition (required) The data necessary to create a new global notification definition. |
Try It
Example responses
201 Response
{
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"_profile": "https://api.apiture.com/schemas/notifications/notificationDefinition/v1.0.0/profile.json",
"type": "cdMaturingSoon",
"contextName": "account",
"indicator": true,
"notDismissible": false,
"priority": "medium",
"expired": false,
"expiresAt": "2020-04-18T12:26:36.375Z",
"updatedAt": "2020-04-16T12:00:22.100Z",
"message": {
"text": "This CD account is maturing on {maturityDate}. Now is a good time to review your account maturity settings.",
"imageUri": "https://cdn.assets.3rdpartybank.com/icons/en/notifications/cdMaturingSoon.png"
},
"values": {
"maturityDate": "2020-04-09"
},
"_links": {
"self": {
"href": "/notifications/definitions/0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:expire": {
"href": "/expiredDefinitions?definition=0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:createNotifications": {
"href": "/notifications/definitions/0399abed-fd3d-4830-a88b-30f38b8a365c/notifications"
}
}
}
Responses
Status | Description |
---|---|
201 | Created |
Created | |
Schema: notificationDefinition |
Status | Description |
---|---|
400 | Bad Request |
Bad Request. The request body or one or more of the query parameters was not well formed. The _error field in the response will contain details about the request error. | |
Schema: errorResponse |
Status | Description |
---|---|
422 | Unprocessable Entity |
Unprocessable Entity. The request body or one or more of the query parameters was well formed but otherwise invalid. The _error field in the response will contain details about the request error. | |
Schema: errorResponse |
Response Headers
Status | Description |
---|---|
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 |
An entity tag which may be passed in the If-Match request header for PUT or PATCH operations which update the resource. |
getDefinition
Code samples
# You can also use wget
curl -X GET /notifications/definitions/{definitionId} \
-H 'Accept: application/hal+json' \
-H 'If-None-Match: string' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
GET /notifications/definitions/{definitionId} 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: '/notifications/definitions/{definitionId}',
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('/notifications/definitions/{definitionId}',
{
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 '/notifications/definitions/{definitionId}',
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('/notifications/definitions/{definitionId}', params={
}, headers = headers)
print r.json()
URL obj = new URL("/notifications/definitions/{definitionId}");
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", "/notifications/definitions/{definitionId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Fetch a representation of this notification definition
GET /definitions/{definitionId}
Return a HAL representation of this notification definition resource.
Parameters
Parameter | Description |
---|---|
definitionId (path) |
string (required) The unique identifier of this definition. This is an opaque string. |
If-None-Match (header) |
string The entity tag that was returned in the ETag response. If the resource's current entity tag matches, the GET will return 304 (Not Modified) and no response body, else the resource representation will be returned. |
Try It
Example responses
200 Response
{
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"_profile": "https://api.apiture.com/schemas/notifications/notificationDefinition/v1.0.0/profile.json",
"type": "cdMaturingSoon",
"contextName": "account",
"indicator": true,
"notDismissible": false,
"priority": "medium",
"expired": false,
"expiresAt": "2020-04-18T12:26:36.375Z",
"updatedAt": "2020-04-16T12:00:22.100Z",
"message": {
"text": "This CD account is maturing on {maturityDate}. Now is a good time to review your account maturity settings.",
"imageUri": "https://cdn.assets.3rdpartybank.com/icons/en/notifications/cdMaturingSoon.png"
},
"values": {
"maturityDate": "2020-04-09"
},
"_links": {
"self": {
"href": "/notifications/definitions/0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:expire": {
"href": "/expiredDefinitions?definition=0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:createNotifications": {
"href": "/notifications/definitions/0399abed-fd3d-4830-a88b-30f38b8a365c/notifications"
}
}
}
Responses
Status | Description |
---|---|
200 | OK |
OK | |
Schema: notificationDefinition |
Status | Description |
---|---|
304 | Not Modified |
Not Modified. The resource has not been modified since it was last fetched. |
Status | Description |
---|---|
404 | Not Found |
Not Found. There is no such definition resource at the specified {definitionId} . The _error field in the response will contain details about the request error. | |
Schema: errorResponse |
Response Headers
Status | Description |
---|---|
200 | ETag string |
The ETag response header specifies an entity tag which may be provided in an If-Match request header for PUT or PATCH operations which update this definition resource. |
updateDefinition
Code samples
# You can also use wget
curl -X PUT /notifications/definitions/{definitionId} \
-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 /notifications/definitions/{definitionId} 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: '/notifications/definitions/{definitionId}',
method: 'put',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const inputBody = '{
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"_profile": "https://api.apiture.com/schemas/notifications/notificationDefinition/v1.0.0/profile.json",
"type": "cdMaturingSoon",
"contextName": "account",
"indicator": true,
"notDismissible": false,
"priority": "medium",
"expired": false,
"expiresAt": "2020-04-18T12:26:36.375Z",
"updatedAt": "2020-04-16T12:00:22.100Z",
"message": {
"text": "This CD account is maturing on {maturityDate}. Now is a good time to review your account maturity settings.",
"imageUri": "https://cdn.assets.3rdpartybank.com/icons/en/notifications/cdMaturingSoon.png"
},
"values": {
"maturityDate": "2020-04-09"
},
"_links": {
"self": {
"href": "/notifications/definitions/0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:expire": {
"href": "/expiredDefinitions?definition=0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:createNotifications": {
"href": "/notifications/definitions/0399abed-fd3d-4830-a88b-30f38b8a365c/notifications"
}
}
}';
const headers = {
'Content-Type':'application/hal+json',
'Accept':'application/hal+json',
'If-Match':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
fetch('/notifications/definitions/{definitionId}',
{
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 '/notifications/definitions/{definitionId}',
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('/notifications/definitions/{definitionId}', params={
}, headers = headers)
print r.json()
URL obj = new URL("/notifications/definitions/{definitionId}");
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", "/notifications/definitions/{definitionId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Update this definition
PUT /definitions/{definitionId}
Perform a complete replacement of this definition.
Body parameter
{
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"_profile": "https://api.apiture.com/schemas/notifications/notificationDefinition/v1.0.0/profile.json",
"type": "cdMaturingSoon",
"contextName": "account",
"indicator": true,
"notDismissible": false,
"priority": "medium",
"expired": false,
"expiresAt": "2020-04-18T12:26:36.375Z",
"updatedAt": "2020-04-16T12:00:22.100Z",
"message": {
"text": "This CD account is maturing on {maturityDate}. Now is a good time to review your account maturity settings.",
"imageUri": "https://cdn.assets.3rdpartybank.com/icons/en/notifications/cdMaturingSoon.png"
},
"values": {
"maturityDate": "2020-04-09"
},
"_links": {
"self": {
"href": "/notifications/definitions/0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:expire": {
"href": "/expiredDefinitions?definition=0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:createNotifications": {
"href": "/notifications/definitions/0399abed-fd3d-4830-a88b-30f38b8a365c/notifications"
}
}
}
Parameters
Parameter | Description |
---|---|
definitionId (path) |
string (required) The unique identifier of this definition. This is an opaque string. |
If-Match (header) |
string The entity tag that was returned in the ETag response. If passed, this must match the current entity tag of the resource. |
body (body) |
notificationDefinition (required) |
Try It
Example responses
200 Response
{
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"_profile": "https://api.apiture.com/schemas/notifications/notificationDefinition/v1.0.0/profile.json",
"type": "cdMaturingSoon",
"contextName": "account",
"indicator": true,
"notDismissible": false,
"priority": "medium",
"expired": false,
"expiresAt": "2020-04-18T12:26:36.375Z",
"updatedAt": "2020-04-16T12:00:22.100Z",
"message": {
"text": "This CD account is maturing on {maturityDate}. Now is a good time to review your account maturity settings.",
"imageUri": "https://cdn.assets.3rdpartybank.com/icons/en/notifications/cdMaturingSoon.png"
},
"values": {
"maturityDate": "2020-04-09"
},
"_links": {
"self": {
"href": "/notifications/definitions/0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:expire": {
"href": "/expiredDefinitions?definition=0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:createNotifications": {
"href": "/notifications/definitions/0399abed-fd3d-4830-a88b-30f38b8a365c/notifications"
}
}
}
Responses
Status | Description |
---|---|
200 | OK |
OK | |
Schema: notificationDefinition |
Status | Description |
---|---|
400 | Bad Request |
Bad Request. The request body or one or more of the query parameters was not well formed. The _error field in the response will contain details about the request error. | |
Schema: errorResponse |
Status | Description |
---|---|
404 | Not Found |
Not Found. There is no such definition resource at the specified {definitionId} . The _error field in the response will contain details about the request error. | |
Schema: errorResponse |
Status | Description |
---|---|
412 | Precondition Failed |
Precondition Failed. The supplied If-Match header value does not match the most recent ETag response header value. The resource has changed in the interim. | |
Schema: errorResponse |
Status | Description |
---|---|
422 | Unprocessable Entity |
Unprocessable Entity. The request body or one or more of the query parameters was well formed but otherwise invalid. The _error field in the response will contain details about the request error. | |
Schema: errorResponse |
Response Headers
Status | Description |
---|---|
200 | ETag string |
The ETag response header specifies an entity tag which may be provided in an If-Match request header for PUT or PATCH operations which update this definition resource. |
patchDefinition
Code samples
# You can also use wget
curl -X PATCH /notifications/definitions/{definitionId} \
-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 /notifications/definitions/{definitionId} 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: '/notifications/definitions/{definitionId}',
method: 'patch',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const inputBody = '{
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"_profile": "https://api.apiture.com/schemas/notifications/notificationDefinition/v1.0.0/profile.json",
"type": "cdMaturingSoon",
"contextName": "account",
"indicator": true,
"notDismissible": false,
"priority": "medium",
"expired": false,
"expiresAt": "2020-04-18T12:26:36.375Z",
"updatedAt": "2020-04-16T12:00:22.100Z",
"message": {
"text": "This CD account is maturing on {maturityDate}. Now is a good time to review your account maturity settings.",
"imageUri": "https://cdn.assets.3rdpartybank.com/icons/en/notifications/cdMaturingSoon.png"
},
"values": {
"maturityDate": "2020-04-09"
},
"_links": {
"self": {
"href": "/notifications/definitions/0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:expire": {
"href": "/expiredDefinitions?definition=0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:createNotifications": {
"href": "/notifications/definitions/0399abed-fd3d-4830-a88b-30f38b8a365c/notifications"
}
}
}';
const headers = {
'Content-Type':'application/hal+json',
'Accept':'application/hal+json',
'If-Match':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
fetch('/notifications/definitions/{definitionId}',
{
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 '/notifications/definitions/{definitionId}',
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('/notifications/definitions/{definitionId}', params={
}, headers = headers)
print r.json()
URL obj = new URL("/notifications/definitions/{definitionId}");
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", "/notifications/definitions/{definitionId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Update this definition
PATCH /definitions/{definitionId}
Perform a partial update of this definition. Fields which are omitted are not updated. Nested _embedded
and _links
are ignored if included.
Body parameter
{
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"_profile": "https://api.apiture.com/schemas/notifications/notificationDefinition/v1.0.0/profile.json",
"type": "cdMaturingSoon",
"contextName": "account",
"indicator": true,
"notDismissible": false,
"priority": "medium",
"expired": false,
"expiresAt": "2020-04-18T12:26:36.375Z",
"updatedAt": "2020-04-16T12:00:22.100Z",
"message": {
"text": "This CD account is maturing on {maturityDate}. Now is a good time to review your account maturity settings.",
"imageUri": "https://cdn.assets.3rdpartybank.com/icons/en/notifications/cdMaturingSoon.png"
},
"values": {
"maturityDate": "2020-04-09"
},
"_links": {
"self": {
"href": "/notifications/definitions/0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:expire": {
"href": "/expiredDefinitions?definition=0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:createNotifications": {
"href": "/notifications/definitions/0399abed-fd3d-4830-a88b-30f38b8a365c/notifications"
}
}
}
Parameters
Parameter | Description |
---|---|
definitionId (path) |
string (required) The unique identifier of this definition. This is an opaque string. |
If-Match (header) |
string The entity tag that was returned in the ETag response. If passed, this must match the current entity tag of the resource. |
body (body) |
notificationDefinition (required) |
Try It
Example responses
200 Response
{
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"_profile": "https://api.apiture.com/schemas/notifications/notificationDefinition/v1.0.0/profile.json",
"type": "cdMaturingSoon",
"contextName": "account",
"indicator": true,
"notDismissible": false,
"priority": "medium",
"expired": false,
"expiresAt": "2020-04-18T12:26:36.375Z",
"updatedAt": "2020-04-16T12:00:22.100Z",
"message": {
"text": "This CD account is maturing on {maturityDate}. Now is a good time to review your account maturity settings.",
"imageUri": "https://cdn.assets.3rdpartybank.com/icons/en/notifications/cdMaturingSoon.png"
},
"values": {
"maturityDate": "2020-04-09"
},
"_links": {
"self": {
"href": "/notifications/definitions/0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:expire": {
"href": "/expiredDefinitions?definition=0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:createNotifications": {
"href": "/notifications/definitions/0399abed-fd3d-4830-a88b-30f38b8a365c/notifications"
}
}
}
Responses
Status | Description |
---|---|
200 | OK |
OK | |
Schema: notificationDefinition |
Status | Description |
---|---|
400 | Bad Request |
Bad Request. The request body or one or more of the query parameters was not well formed. The _error field in the response will contain details about the request error. | |
Schema: errorResponse |
Status | Description |
---|---|
404 | Not Found |
Not Found. There is no such definition resource at the specified {definitionId} . The _error field in the response will contain details about the request error. | |
Schema: errorResponse |
Status | Description |
---|---|
412 | Precondition Failed |
Precondition Failed. The supplied If-Match header value does not match the most recent ETag response header value. The resource has changed in the interim. | |
Schema: errorResponse |
Status | Description |
---|---|
422 | Unprocessable Entity |
Unprocessable Entity. The request body or one or more of the query parameters was well formed but otherwise invalid. The _error field in the response will contain details about the request error. | |
Schema: errorResponse |
Response Headers
Status | Description |
---|---|
200 | ETag string |
The ETag response header specifies an entity tag which may be provided in an If-Match request header for PUT or PATCH operations which update this definition resource. |
deleteDefinition
Code samples
# You can also use wget
curl -X DELETE /notifications/definitions/{definitionId} \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
DELETE /notifications/definitions/{definitionId} HTTP/1.1
var headers = {
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: '/notifications/definitions/{definitionId}',
method: 'delete',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const headers = {
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
fetch('/notifications/definitions/{definitionId}',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'API-Key' => 'API_KEY',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.delete '/notifications/definitions/{definitionId}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'API-Key': 'API_KEY',
'Authorization': 'Bearer {access-token}'
}
r = requests.delete('/notifications/definitions/{definitionId}', params={
}, headers = headers)
print r.json()
URL obj = new URL("/notifications/definitions/{definitionId}");
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{
"API-Key": []string{"API_KEY"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("DELETE", "/notifications/definitions/{definitionId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Delete this notification definition resource
DELETE /definitions/{definitionId}
Delete this notification definition resource and any notification instances that are defined by it. Normally, the service deletes definitions some time after they have expired.
Parameters
Parameter | Description |
---|---|
definitionId (path) |
string (required) The unique identifier of this definition. This is an opaque string. |
Try It
Responses
Status | Description |
---|---|
204 | No Content |
No Content. The resource was deleted successfully. |
Notifications
In-app Notifications
createNotifications
Code samples
# You can also use wget
curl -X POST /notifications/definitions/{definitionId}/notifications \
-H 'Content-Type: application/hal+json' \
-H 'Accept: application/hal+json' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
POST /notifications/definitions/{definitionId}/notifications 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: '/notifications/definitions/{definitionId}/notifications',
method: 'post',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const inputBody = '{
"_profile": "https://api.apiture.com/schemas/notifications/instances/v1.0.0/profile.json",
"contextUriTemplate": "/accounts/accounts/{id}",
"instances": [
{
"contextId": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"userIds": [
"82535922-335f-4c95-8000-c663a50aec9c",
"7131b08f-2c47-4c23-a4ad-fb31d895acb3",
"9cdbae90-a120-4a71-8314-d0f6051c86fa"
],
"expiresAt": "2020-05-08T14:00:00.00Z"
},
{
"contextId": "4c1e7436-14cb-4434-a46e-9d7b4e3f02ea",
"userIds": [
"1cbdd896-0730-4a7d-af68-1834de0cfe84",
"c433df56-b9ef-44ed-bcb8-52bbfb4df5f8"
],
"expiresAt": "2020-05-10T14:00:00.00Z",
"values": {
"oldApy": "1.750",
"newApy": "1.8.0"
}
}
]
}';
const headers = {
'Content-Type':'application/hal+json',
'Accept':'application/hal+json',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
fetch('/notifications/definitions/{definitionId}/notifications',
{
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 '/notifications/definitions/{definitionId}/notifications',
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('/notifications/definitions/{definitionId}/notifications', params={
}, headers = headers)
print r.json()
URL obj = new URL("/notifications/definitions/{definitionId}/notifications");
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", "/notifications/definitions/{definitionId}/notifications", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Create notifications from a notification definition.
POST /definitions/{definitionId}/notifications
Create notification instances from a notification definition.
Body parameter
{
"_profile": "https://api.apiture.com/schemas/notifications/instances/v1.0.0/profile.json",
"contextUriTemplate": "/accounts/accounts/{id}",
"instances": [
{
"contextId": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"userIds": [
"82535922-335f-4c95-8000-c663a50aec9c",
"7131b08f-2c47-4c23-a4ad-fb31d895acb3",
"9cdbae90-a120-4a71-8314-d0f6051c86fa"
],
"expiresAt": "2020-05-08T14:00:00.00Z"
},
{
"contextId": "4c1e7436-14cb-4434-a46e-9d7b4e3f02ea",
"userIds": [
"1cbdd896-0730-4a7d-af68-1834de0cfe84",
"c433df56-b9ef-44ed-bcb8-52bbfb4df5f8"
],
"expiresAt": "2020-05-10T14:00:00.00Z",
"values": {
"oldApy": "1.750",
"newApy": "1.8.0"
}
}
]
}
Parameters
Parameter | Description |
---|---|
body (body) |
instances (required) The data necessary to create new notification instances from this definition. |
definitionId (path) |
string (required) The unique identifier of this definition. This is an opaque string. |
Try It
Example responses
200 Response
{
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"_profile": "https://api.apiture.com/schemas/notifications/notificationDefinition/v1.0.0/profile.json",
"type": "cdMaturingSoon",
"contextName": "account",
"indicator": true,
"notDismissible": false,
"priority": "medium",
"expired": false,
"expiresAt": "2020-04-18T12:26:36.375Z",
"updatedAt": "2020-04-16T12:00:22.100Z",
"message": {
"text": "This CD account is maturing on {maturityDate}. Now is a good time to review your account maturity settings.",
"imageUri": "https://cdn.assets.3rdpartybank.com/icons/en/notifications/cdMaturingSoon.png"
},
"values": {
"maturityDate": "2020-04-09"
},
"_links": {
"self": {
"href": "/notifications/definitions/0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:expire": {
"href": "/expiredDefinitions?definition=0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:createNotifications": {
"href": "/notifications/definitions/0399abed-fd3d-4830-a88b-30f38b8a365c/notifications"
}
}
}
Responses
Status | Description |
---|---|
200 | OK |
OK. The instances have been created for this notification definition. | |
Schema: notificationDefinition |
Status | Description |
---|---|
400 | Bad Request |
Bad Request. The request body or one or more of the query parameters was not well formed. The _error field in the response will contain details about the request error. | |
Schema: errorResponse |
Status | Description |
---|---|
409 | Conflict |
Conflict. The definition has expired, or the createNotifications request uses a contextUriTemplate that does not match the notification definition's existing contextUriTemplate , or instances contain only a contextId and the request or definition has no contextUriTemplate , or a request was made to create notification instance for a global notification definition. | |
Schema: errorResponse |
Response Headers
Status | Description |
---|---|
200 | ETag string |
An entity tag which may be passed in the If-Match request header for PUT or PATCH operations which update the resource. |
getActiveNotifications
Code samples
# You can also use wget
curl -X GET /notifications/activeNotifications?context=string \
-H 'Accept: application/hal+json' \
-H 'Accept-Language: string' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
GET /notifications/activeNotifications?context=string HTTP/1.1
Accept: application/hal+json
Accept-Language: string
var headers = {
'Accept':'application/hal+json',
'Accept-Language':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: '/notifications/activeNotifications',
method: 'get',
data: '?context=string',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const headers = {
'Accept':'application/hal+json',
'Accept-Language':'string',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
fetch('/notifications/activeNotifications?context=string',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/hal+json',
'Accept-Language' => 'string',
'API-Key' => 'API_KEY',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.get '/notifications/activeNotifications',
params: {
'context' => 'array[string]'
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/hal+json',
'Accept-Language': 'string',
'API-Key': 'API_KEY',
'Authorization': 'Bearer {access-token}'
}
r = requests.get('/notifications/activeNotifications', params={
'context': [
"string"
]
}, headers = headers)
print r.json()
URL obj = new URL("/notifications/activeNotifications?context=string");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/hal+json"},
"Accept-Language": []string{"string"},
"API-Key": []string{"API_KEY"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "/notifications/activeNotifications", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Return active notifications
GET /activeNotifications
Return a list of active notifications for a user which match a context by name or URI. The response excludes dismissed or expired notifications.
This is the primary operation clients used to fetch (a.k.a. pull) notifications
for a user for a given context, client type (web
or mobile
),
and user language preferences. Each active notification in the response
_embedded.items
contains the details of the notification in its _embedded.definition
This operation returns the preferred text and image (based on the client type and languages) in
each active notification's message
property.
The message
in each instance in the response is the best match from the
notification definition's message
, webMessage
and mobileMessage
, as determined by
the ?clientType=
and ?languages=
query parameters.
The service also resolves any {variableName}
variables in the message text with the values
from
the instance or definition.
The client should display the
notifications in the user interface. Notifications defined with indicator: true
should be displayed with the message.imageUri
icon, although the client may use
the rendered message.text
as a hover tip. This acts as a "badge".
Clients should display other (non-indicator) notifications as text notifications, with optional icon,
and with a Dismiss or OK or other control to dismiss the notification.
The client should convert the
Markdown
text to rich text before displaying it.
When the user dismisses a notification, the client should
POST
to that notification's apiture:dismiss
link so the
service can exclude the notification from the response the next time the
client calls this operation for this context.
Parameters
Parameter | Description |
---|---|
context (query) |
array[string] (required) A string which uniquely identifies a notification context resource by context name or context URI. The array item delimiter is the | pipe character. Examples: ?context=/accounts/accounts/c6082333-be32-4171-b0c5-d161bcdbd6db ?context=account ?context=global|user |
clientType (query) |
string If ?clientType=web , the notifications' message is derived from the webMessage in the corresponding notification definition, ignoring the the definition's mobileMessage . If no webMessage is defined for the requested 'languages', the notifications' message is derived from the definitions message . ?clientType=mobile is handled analogously, using mobileMessage . The default uses the definition's message if it is defined, else webMessage . Enumerated values: web mobile |
languages (query) |
array[string] Return message variants that match the user's language preference. The array is ordered by highest to lowest preference language tag(s). For example, for ?languages=es,en , the response will include message variants based on the following search priority: es ⇒ en ⇒ ⇒ (default) Items are RFC 3066 language identifiers. If used, Accept-Language header is ignored. Language codes are case insensitive. minItems: 1 maxItems: 6 |
replace (query) |
boolean If false , the operation does not replace the variable references in the message.text of each active notification with the corresponding value from the notification's values . The client should perform the replacement before displaying the message. Default: true |
Accept-Language (header) |
string An HTTP Accept-Language request header which specifies one or more languages with weights. The response will include one string for each combination of group name and string name. This is ignored if ?languages= query parameter is used. Accept-Language is processed in a similar way as the language query parameter. |
Try It
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": {
"items": [
{
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"_profile": "https://api.apiture.com/schemas/notifications/activeNotification/v1.0.0/profile.json",
"dismissed": false,
"dismissedAt": "2020-04-02T11:01:31.375Z",
"expired": false,
"expiresAt": "2020-04-T21:00:00.000",
"message": {
"text": "This CD account is maturing on {maturityDate}. Now is a good time to review your account maturity settings.",
"imageUri": "https://cdn.assets.3rdpartybank.com/icons/en/notifications/cdMaturingSoon.png"
},
"_links": {
"self": {
"href": "/notifications/notifications/0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:dismiss": {
"href": "/dismissedNotifications?notification=0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:definition": {
"href": "/notifications/definitions/00b68bc7-497c-4ce5-b8bd-47c6a8f33c22"
}
},
"_embedded": {
"definition": {
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"_profile": "https://api.apiture.com/schemas/notifications/notificationDefinition/v1.0.0/profile.json",
"type": "cdMaturingSoon",
"contextName": "account",
"indicator": true,
"priority": "medium",
"message": {
"text": "This CD account is maturing on 2020-04-09. Now is a good time to review your account maturity settings.",
"imageUri": "https://cdn.assets.3rdpartybank.com/icons/en/notifications/cdMaturingSoon.png"
},
"values": {
"maturityDate": "2020-04-09"
},
"_links": {
"self": {
"href": "/notifications/definitions/0399abed-fd3d-4830-a88b-30f38b8a365c"
}
}
}
}
}
]
},
"_profile": "http://example.com",
"_error": {
"_id": "2eae46e1575c0a7b0115a4b3",
"message": "Descriptive error message...",
"statusCode": 422,
"type": "errorType1",
"remediation": "Remediation string...",
"occurredAt": "2018-01-25T05:50:52.375Z",
"errors": [
{
"_id": "ccdbe2c5c938a230667b3827",
"message": "An optional embedded error"
},
{
"_id": "dbe9088dcfe2460f229338a3",
"message": "Another optional embedded error"
}
],
"_links": {
"describedby": {
"href": "https://developer.apiture.com/errors/errorType1"
}
}
}
}
Responses
Status | Description |
---|---|
200 | OK |
OK. | |
Schema: activeNotifications |
Status | Description |
---|---|
400 | Bad Request |
Bad Request. The request body or one or more of the query parameters was not well formed. The _error field in the response will contain details about the request error. | |
Schema: errorResponse |
Status | Description |
---|---|
422 | Unprocessable Entity |
Unprocessable Entity. The request body or 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 |
getNotifications
Code samples
# You can also use wget
curl -X GET /notifications/notifications \
-H 'Accept: application/hal+json' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
GET /notifications/notifications HTTP/1.1
Accept: application/hal+json
var headers = {
'Accept':'application/hal+json',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: '/notifications/notifications',
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('/notifications/notifications',
{
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 '/notifications/notifications',
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('/notifications/notifications', params={
}, headers = headers)
print r.json()
URL obj = new URL("/notifications/notifications");
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", "/notifications/notifications", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Return a collection of notifications
GET /notifications
Return a paginated sortable filterable searchable collection of notifications. The links in the response include pagination links.
Parameters
Parameter | Description |
---|---|
start (query) |
integer(int64) The zero-based index of the first notification item to include in this page. The default 0 denotes the beginning of the collection. |
limit (query) |
integer(int32) The maximum number of notification representations to return in this page. Default: 100 |
sortBy (query) |
string Optional sort criteria. See sort criteria format, such as ?sortBy=field1,-field2 . |
expired (query) |
boolean Filter definitions whose expired property matches the given value. |
dismissed (query) |
boolean Filter definitions whose dismissed property matches the given value. |
type (query) |
array[string] Return only notifications whose type matches the one of query parameter values. The array item delimiter is the | pipe character. Examples: ?type=cdMaturingSoon ?type=cdMaturingSoon|cdInGracePeriod |
contextName (query) |
array[string] Return only notifications whose contextName matches the one of query parameter values. The array item delimiter is the | pipe character. Examples: ?contextName=account ?contextName=user|global |
contextUri (query) |
string Return only notifications whose contextUri matches the query parameter value. If the value begins with / , only the path portion of the URi is matched. Examples: ?contextUri=/accounts/accounts/c6082333-be32-4171-b0c5-d161bcdbd6db |
filter (query) |
string Optional filter criteria. See filtering. |
q (query) |
string Optional search string. See searching. |
Try It
Example responses
200 Response
{
"_profile": "https://api.apiture.com/schemas/notifications/notifications/v1.0.0/profile.json",
"name": "notifications",
"start": 10,
"limit": 10,
"count": 67,
"_links": {
"self": {
"href": "/notifications/notifications?start=10&limit=10"
},
"first": {
"href": "/notifications/notifications?start=0&limit=10"
},
"next": {
"href": "/notifications/notifications?start=20&limit=10"
},
"collection": {
"href": "/notifications/notifications"
}
},
"_embedded": {
"items": {
"anyOf": [
{
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"_profile": "https://api.apiture.com/schemas/notifications/summaryNotification/v1.0.0/profile.json",
"_links": {
"self": {
"href": "/notifications/notifications/0399abed-fd3d-4830-a88b-30f38b8a365c"
}
}
},
{
"_id": "d62c0701-0d74-4836-83f9-ebf3709442ea",
"_profile": "https://api.apiture.com/schemas/notifications/summaryNotification/v1.0.0/profile.json",
"_links": {
"self": {
"href": "/notifications/notifications/d62c0701-0d74-4836-83f9-ebf3709442ea"
}
}
}
]
}
}
}
Responses
Status | Description |
---|---|
200 | OK |
OK | |
Schema: notifications |
Status | Description |
---|---|
400 | Bad Request |
Bad Request. The request body or one or more of the query parameters was not well formed. The _error field in the response will contain details about the request error. | |
Schema: errorResponse |
Status | Description |
---|---|
422 | Unprocessable Entity |
Unprocessable Entity. The request body or 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 |
createNotification
Code samples
# You can also use wget
curl -X POST /notifications/notifications \
-H 'Content-Type: application/hal+json' \
-H 'Accept: application/hal+json' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
POST /notifications/notifications 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: '/notifications/notifications',
method: 'post',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const inputBody = '{
"_profile": "https://api.apiture.com/schemas/notifications/createNotification/v1.0.0/profile.json",
"definitionId": "41cf829b-879d-4334-9085-7ac18333ce47",
"userId": "80ebfabf-7a26-48a9-96c2-86f4dca8706f",
"contextUri": "/accounts/account/ba611f3a-ab1b-4ad7-aaf6-56a240123818"
}';
const headers = {
'Content-Type':'application/hal+json',
'Accept':'application/hal+json',
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
fetch('/notifications/notifications',
{
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 '/notifications/notifications',
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('/notifications/notifications', params={
}, headers = headers)
print r.json()
URL obj = new URL("/notifications/notifications");
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", "/notifications/notifications", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Create a new notification
POST /notifications
Create a new notification in the notifications collection.
Body parameter
{
"_profile": "https://api.apiture.com/schemas/notifications/createNotification/v1.0.0/profile.json",
"definitionId": "41cf829b-879d-4334-9085-7ac18333ce47",
"userId": "80ebfabf-7a26-48a9-96c2-86f4dca8706f",
"contextUri": "/accounts/account/ba611f3a-ab1b-4ad7-aaf6-56a240123818"
}
Parameters
Parameter | Description |
---|---|
body (body) |
createNotification (required) The data necessary to create a new notification. |
Try It
Example responses
201 Response
{
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"_profile": "https://api.apiture.com/schemas/notifications/notification/v1.0.0/profile.json",
"dismissed": true,
"dismissedAt": "2020-04-02T11:01:31.375Z",
"expired": false,
"expiresAt": "2020-04-T21:00:00.000",
"_links": {
"self": {
"href": "/notifications/notifications/0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:dismiss": {
"href": "/dismissedNotifications?notification=0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:expire": {
"href": "/expiredNotifications?notification=0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:definition": {
"href": "/notifications/definitions/00b68bc7-497c-4ce5-b8bd-47c6a8f33c22"
}
},
"_embedded": {
"definition": {
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"_profile": "https://api.apiture.com/schemas/notifications/notificationDefinition/v1.0.0/profile.json",
"type": "cdMaturingSoon",
"contextName": "account",
"indicator": true,
"priority": "medium",
"message": {
"text": "This CD account is maturing on {maturityDate}. Now is a good time to review your account maturity settings.",
"imageUri": "https://cdn.assets.3rdpartybank.com/icons/en/notifications/cdMaturingSoon.png"
},
"values": {
"maturityDate": "2020-04-09"
},
"_links": {
"self": {
"href": "/notifications/definitions/0399abed-fd3d-4830-a88b-30f38b8a365c"
}
}
}
}
}
Responses
Status | Description |
---|---|
201 | Created |
Created | |
Schema: notification |
Status | Description |
---|---|
400 | Bad Request |
Bad Request. The request body or one or more of the query parameters was not well formed. The _error field in the response will contain details about the request error. | |
Schema: errorResponse |
Response Headers
Status | Description |
---|---|
201 | Location string uri |
The URI of the new resource. If the URI begins with / it is relative to the API root context. Else, it is a full URI starting with scheme ://host | |
201 | ETag string |
An entity tag which may be passed in the If-Match request header for PUT or PATCH operations which update the resource. |
getNotification
Code samples
# You can also use wget
curl -X GET /notifications/notifications/{notificationId} \
-H 'Accept: application/hal+json' \
-H 'If-None-Match: string' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
GET /notifications/notifications/{notificationId} 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: '/notifications/notifications/{notificationId}',
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('/notifications/notifications/{notificationId}',
{
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 '/notifications/notifications/{notificationId}',
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('/notifications/notifications/{notificationId}', params={
}, headers = headers)
print r.json()
URL obj = new URL("/notifications/notifications/{notificationId}");
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", "/notifications/notifications/{notificationId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Fetch a representation of this notification
GET /notifications/{notificationId}
Return a HAL representation of this notification resource.
Parameters
Parameter | Description |
---|---|
notificationId (path) |
string (required) The unique identifier of this notification. This is an opaque string. |
If-None-Match (header) |
string The entity tag that was returned in the ETag response. If the resource's current entity tag matches, the GET will return 304 (Not Modified) and no response body, else the resource representation will be returned. |
Try It
Example responses
200 Response
{
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"_profile": "https://api.apiture.com/schemas/notifications/notification/v1.0.0/profile.json",
"dismissed": true,
"dismissedAt": "2020-04-02T11:01:31.375Z",
"expired": false,
"expiresAt": "2020-04-T21:00:00.000",
"_links": {
"self": {
"href": "/notifications/notifications/0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:dismiss": {
"href": "/dismissedNotifications?notification=0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:expire": {
"href": "/expiredNotifications?notification=0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:definition": {
"href": "/notifications/definitions/00b68bc7-497c-4ce5-b8bd-47c6a8f33c22"
}
},
"_embedded": {
"definition": {
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"_profile": "https://api.apiture.com/schemas/notifications/notificationDefinition/v1.0.0/profile.json",
"type": "cdMaturingSoon",
"contextName": "account",
"indicator": true,
"priority": "medium",
"message": {
"text": "This CD account is maturing on {maturityDate}. Now is a good time to review your account maturity settings.",
"imageUri": "https://cdn.assets.3rdpartybank.com/icons/en/notifications/cdMaturingSoon.png"
},
"values": {
"maturityDate": "2020-04-09"
},
"_links": {
"self": {
"href": "/notifications/definitions/0399abed-fd3d-4830-a88b-30f38b8a365c"
}
}
}
}
}
Responses
Status | Description |
---|---|
200 | OK |
OK | |
Schema: notification |
Status | Description |
---|---|
304 | Not Modified |
Not Modified. The resource has not been modified since it was last fetched. |
Status | Description |
---|---|
404 | Not Found |
Not Found. There is no such notification resource at the specified {notificationId} . The _error field in the response will contain details about the request error. | |
Schema: errorResponse |
Response Headers
Status | Description |
---|---|
200 | ETag string |
The ETag response header specifies an entity tag which may be provided in an If-Match request header for PUT or PATCH operations which update this notification resource. |
deleteNotification
Code samples
# You can also use wget
curl -X DELETE /notifications/notifications/{notificationId} \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
DELETE /notifications/notifications/{notificationId} HTTP/1.1
var headers = {
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
$.ajax({
url: '/notifications/notifications/{notificationId}',
method: 'delete',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const headers = {
'API-Key':'API_KEY',
'Authorization':'Bearer {access-token}'
};
fetch('/notifications/notifications/{notificationId}',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'API-Key' => 'API_KEY',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.delete '/notifications/notifications/{notificationId}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'API-Key': 'API_KEY',
'Authorization': 'Bearer {access-token}'
}
r = requests.delete('/notifications/notifications/{notificationId}', params={
}, headers = headers)
print r.json()
URL obj = new URL("/notifications/notifications/{notificationId}");
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{
"API-Key": []string{"API_KEY"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("DELETE", "/notifications/notifications/{notificationId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Delete this notification resource
DELETE /notifications/{notificationId}
Delete this notification resource and any resources that are owned by it.
Parameters
Parameter | Description |
---|---|
notificationId (path) |
string (required) The unique identifier of this notification. This is an opaque string. |
Try It
Responses
Status | Description |
---|---|
204 | No Content |
No Content. The resource was deleted successfully. |
API
The Notifications API
getApi
Code samples
# You can also use wget
curl -X GET /notifications/ \
-H 'Accept: application/hal+json' \
-H 'API-Key: API_KEY'
GET /notifications/ HTTP/1.1
Accept: application/hal+json
var headers = {
'Accept':'application/hal+json',
'API-Key':'API_KEY'
};
$.ajax({
url: '/notifications/',
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('/notifications/',
{
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 '/notifications/',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/hal+json',
'API-Key': 'API_KEY'
}
r = requests.get('/notifications/', params={
}, headers = headers)
print r.json()
URL obj = new URL("/notifications/");
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", "/notifications/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Top-level resources and operations in this API
GET /
Return links to the top-level resources and operations in this API.
Try It
Example responses
200 Response
{
"id": "apiName",
"name": "API name",
"apiVersion": "1.0.0",
"_profile": "https://production.api.apiture.com/schemas/common/root/v2.0.0/profile.json",
"_links": {}
}
Responses
getApiDoc
Code samples
# You can also use wget
curl -X GET /notifications/apiDoc \
-H 'Accept: application/json' \
-H 'API-Key: API_KEY'
GET /notifications/apiDoc HTTP/1.1
Accept: application/json
var headers = {
'Accept':'application/json',
'API-Key':'API_KEY'
};
$.ajax({
url: '/notifications/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('/notifications/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 '/notifications/apiDoc',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'API-Key': 'API_KEY'
}
r = requests.get('/notifications/apiDoc', params={
}, headers = headers)
print r.json()
URL obj = new URL("/notifications/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", "/notifications/apiDoc", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Return API definition document
GET /apiDoc
Return the OpenAPI document that describes this API.
Try It
Example responses
200 Response
{}
Responses
Status | Description |
---|---|
200 | OK |
OK | |
Schema: Inline |
Response Schema
Definition Actions
expireDefinition
Code samples
# You can also use wget
curl -X POST /notifications/expiredDefinitions?definition=string \
-H 'Accept: application/hal+json' \
-H 'If-Match: string' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
POST /notifications/expiredDefinitions?definition=string 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: '/notifications/expiredDefinitions',
method: 'post',
data: '?definition=string',
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('/notifications/expiredDefinitions?definition=string',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/hal+json',
'If-Match' => 'string',
'API-Key' => 'API_KEY',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.post '/notifications/expiredDefinitions',
params: {
'definition' => 'string'
}, 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('/notifications/expiredDefinitions', params={
'definition': 'string'
}, headers = headers)
print r.json()
URL obj = new URL("/notifications/expiredDefinitions?definition=string");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/hal+json"},
"If-Match": []string{"string"},
"API-Key": []string{"API_KEY"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "/notifications/expiredDefinitions", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Expire a notification definition
POST /expiredDefinitions
Expire a notification definition. This changes the expired
property of the definition to true
. This operation is available via the apiture:expire
link on the definition resource, if the current time is past the definition's expiresAt
date-time value. This operation may be invoked before the expiresAt
time to expire it earlier.
This operation also expires all active
notification instances defined by this definition. This operation does nothing if the definition has already expired. this definition.
The response is the updated representation of the definition. The If-Match
request header value, if passed, must match the current entity tag value of the definition.
Parameters
Parameter | Description |
---|---|
definition (query) |
string (required) A string which uniquely identifies a definition which is to added to the selected definitions resource set. This may be the unique definitionId or the URI of the definition. |
If-Match (header) |
string The entity tag that was returned in the ETag response. If passed, this must match the current entity tag of the resource. |
Try It
Example responses
200 Response
{
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"_profile": "https://api.apiture.com/schemas/notifications/notificationDefinition/v1.0.0/profile.json",
"type": "cdMaturingSoon",
"contextName": "account",
"indicator": true,
"notDismissible": false,
"priority": "medium",
"expired": false,
"expiresAt": "2020-04-18T12:26:36.375Z",
"updatedAt": "2020-04-16T12:00:22.100Z",
"message": {
"text": "This CD account is maturing on {maturityDate}. Now is a good time to review your account maturity settings.",
"imageUri": "https://cdn.assets.3rdpartybank.com/icons/en/notifications/cdMaturingSoon.png"
},
"values": {
"maturityDate": "2020-04-09"
},
"_links": {
"self": {
"href": "/notifications/definitions/0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:expire": {
"href": "/expiredDefinitions?definition=0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:createNotifications": {
"href": "/notifications/definitions/0399abed-fd3d-4830-a88b-30f38b8a365c/notifications"
}
}
}
Responses
Status | Description |
---|---|
200 | OK |
OK. The operation succeeded. | |
Schema: notificationDefinition |
Status | Description |
---|---|
400 | Bad Request |
Bad Request. The definition parameter was malformed or does not refer to an existing or accessible definition. | |
Schema: errorResponse |
Status | Description |
---|---|
412 | Precondition Failed |
Precondition Failed. The supplied If-Match header value does not match the most recent ETag response header value. The resource has changed in the interim. | |
Schema: errorResponse |
Response Headers
Status | Description |
---|---|
200 | ETag string |
The ETag response header specifies an entity tag which may be provided in an If-Match request header for PUT or PATCH operations which update the resource to perform conditional updates. |
Notification Actions
dismissNotification
Code samples
# You can also use wget
curl -X POST /notifications/dismissedNotifications?notification=string \
-H 'Accept: application/hal+json' \
-H 'If-Match: string' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
POST /notifications/dismissedNotifications?notification=string 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: '/notifications/dismissedNotifications',
method: 'post',
data: '?notification=string',
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('/notifications/dismissedNotifications?notification=string',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/hal+json',
'If-Match' => 'string',
'API-Key' => 'API_KEY',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.post '/notifications/dismissedNotifications',
params: {
'notification' => 'string'
}, 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('/notifications/dismissedNotifications', params={
'notification': 'string'
}, headers = headers)
print r.json()
URL obj = new URL("/notifications/dismissedNotifications?notification=string");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/hal+json"},
"If-Match": []string{"string"},
"API-Key": []string{"API_KEY"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "/notifications/dismissedNotifications", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Dismiss a notification
POST /dismissedNotifications
Dismiss a notification. This changes the dismissed
property of a notification to true
and records the dismissedAt
timestamp. This operation is available via the apiture:dismiss
link on the notification resource if both expired
and dismissed
are false
. Dismissing an expired notification is allowed. Dismissing a previously dismissed notification is allowed, but does not change the state of the instance. The response is the updated representation of the notification. The If-Match
request header value, if passed, must match the current entity tag value of the notification.
Parameters
Parameter | Description |
---|---|
notification (query) |
string (required) A string which uniquely identifies a notification. This may be the unique notificationId or the URI of the notification. |
If-Match (header) |
string The entity tag that was returned in the ETag response. If passed, this must match the current entity tag of the resource. |
Try It
Example responses
200 Response
{
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"_profile": "https://api.apiture.com/schemas/notifications/notification/v1.0.0/profile.json",
"dismissed": true,
"dismissedAt": "2020-04-02T11:01:31.375Z",
"expired": false,
"expiresAt": "2020-04-T21:00:00.000",
"_links": {
"self": {
"href": "/notifications/notifications/0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:dismiss": {
"href": "/dismissedNotifications?notification=0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:expire": {
"href": "/expiredNotifications?notification=0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:definition": {
"href": "/notifications/definitions/00b68bc7-497c-4ce5-b8bd-47c6a8f33c22"
}
},
"_embedded": {
"definition": {
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"_profile": "https://api.apiture.com/schemas/notifications/notificationDefinition/v1.0.0/profile.json",
"type": "cdMaturingSoon",
"contextName": "account",
"indicator": true,
"priority": "medium",
"message": {
"text": "This CD account is maturing on {maturityDate}. Now is a good time to review your account maturity settings.",
"imageUri": "https://cdn.assets.3rdpartybank.com/icons/en/notifications/cdMaturingSoon.png"
},
"values": {
"maturityDate": "2020-04-09"
},
"_links": {
"self": {
"href": "/notifications/definitions/0399abed-fd3d-4830-a88b-30f38b8a365c"
}
}
}
}
}
Responses
Status | Description |
---|---|
200 | OK |
OK. The operation succeeded. | |
Schema: notification |
Status | Description |
---|---|
400 | Bad Request |
Bad Request. The notification parameter was malformed or does not refer to an existing or accessible notification. | |
Schema: errorResponse |
Status | Description |
---|---|
409 | Conflict |
Conflict. The request to dismiss the notification is not allowed. The _error field in the response will contain details about the request error. | |
Schema: errorResponse |
Status | Description |
---|---|
412 | Precondition Failed |
Precondition Failed. The supplied If-Match header value does not match the most recent ETag response header value. The resource has changed in the interim. | |
Schema: errorResponse |
Response Headers
Status | Description |
---|---|
200 | ETag string |
The ETag response header specifies an entity tag which may be provided in an If-Match request header for PUT or PATCH operations which update the resource to perform conditional updates. |
expireNotification
Code samples
# You can also use wget
curl -X POST /notifications/expiredNotifications?notification=string \
-H 'Accept: application/hal+json' \
-H 'If-Match: string' \
-H 'API-Key: API_KEY' \
-H 'Authorization: Bearer {access-token}'
POST /notifications/expiredNotifications?notification=string 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: '/notifications/expiredNotifications',
method: 'post',
data: '?notification=string',
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('/notifications/expiredNotifications?notification=string',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/hal+json',
'If-Match' => 'string',
'API-Key' => 'API_KEY',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.post '/notifications/expiredNotifications',
params: {
'notification' => 'string'
}, 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('/notifications/expiredNotifications', params={
'notification': 'string'
}, headers = headers)
print r.json()
URL obj = new URL("/notifications/expiredNotifications?notification=string");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/hal+json"},
"If-Match": []string{"string"},
"API-Key": []string{"API_KEY"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "/notifications/expiredNotifications", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
Expire a notification
POST /expiredNotifications
Expire a notification instance. This changes the expired
property of the notification to true
. This operation is available via the apiture:expire
link on the notification resource if both dismissed
and expired
are false. Expiring a dismissed notification is allowed. Expiring a previously expired notification is allowed, but does not change the state of the instance.
Expiring a definition invokes this operation on all instances derived from that definition.
The response is the updated representation of the notification. The If-Match
request header value, if passed, must match the current entity tag value of the notification.
Parameters
Parameter | Description |
---|---|
notification (query) |
string (required) A string which uniquely identifies a notification. This may be the unique notificationId or the URI of the notification. |
If-Match (header) |
string The entity tag that was returned in the ETag response. If passed, this must match the current entity tag of the resource. |
Try It
Example responses
200 Response
{
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"_profile": "https://api.apiture.com/schemas/notifications/notification/v1.0.0/profile.json",
"dismissed": true,
"dismissedAt": "2020-04-02T11:01:31.375Z",
"expired": false,
"expiresAt": "2020-04-T21:00:00.000",
"_links": {
"self": {
"href": "/notifications/notifications/0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:dismiss": {
"href": "/dismissedNotifications?notification=0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:expire": {
"href": "/expiredNotifications?notification=0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:definition": {
"href": "/notifications/definitions/00b68bc7-497c-4ce5-b8bd-47c6a8f33c22"
}
},
"_embedded": {
"definition": {
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"_profile": "https://api.apiture.com/schemas/notifications/notificationDefinition/v1.0.0/profile.json",
"type": "cdMaturingSoon",
"contextName": "account",
"indicator": true,
"priority": "medium",
"message": {
"text": "This CD account is maturing on {maturityDate}. Now is a good time to review your account maturity settings.",
"imageUri": "https://cdn.assets.3rdpartybank.com/icons/en/notifications/cdMaturingSoon.png"
},
"values": {
"maturityDate": "2020-04-09"
},
"_links": {
"self": {
"href": "/notifications/definitions/0399abed-fd3d-4830-a88b-30f38b8a365c"
}
}
}
}
}
Responses
Status | Description |
---|---|
200 | OK |
OK. The operation succeeded. | |
Schema: notification |
Status | Description |
---|---|
400 | Bad Request |
Bad Request. The notification parameter was malformed or does not refer to an existing or accessible notification. | |
Schema: errorResponse |
Status | Description |
---|---|
409 | Conflict |
Conflict. The request to expire the notification is not allowed. The _error field in the response will contain details about the request error. | |
Schema: errorResponse |
Status | Description |
---|---|
412 | Precondition Failed |
Precondition Failed. The supplied If-Match header value does not match the most recent ETag response header value. The resource has changed in the interim. | |
Schema: errorResponse |
Response Headers
Status | Description |
---|---|
200 | ETag string |
The ETag response header specifies an entity tag which may be provided in an If-Match request header for PUT or PATCH operations which update the resource to perform conditional updates. |
Schemas
abstractRequest
{
"_profile": "{uri of resource profile.json}",
"_links": {
"self": {
"href": "{uri of current resource}"
}
}
}
Abstract Request (v2.0.0)
An abstract schema used to define other request-only schemas. This is a HAL resource representation, minus the _error
defined in abstractResource
.
Properties
Name | Description |
---|---|
_links | links An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
|
_embedded | object An optional map of nested resources, mapping each nested resource name to a nested resource representation. |
_profile | string(uri) The URI of a resource profile which describes the representation. |
abstractResource
{
"_profile": "{uri of resource profile.json}",
"_links": {
"self": {
"href": "{uri of current resource}"
}
}
}
Abstract Resource (v2.0.0)
An abstract schema used to define other schemas for request and response bodies. This is a HAL resource representation. This model contains hypermedia _links
, and either optional domain object data with _profile
and optional _embedded
objects, or an _error
object. In responses, if the operation was successful, this object will not include the _error
, but if the operation was a 4xx or 5xx error, this object will not include _embedded
or any data fields, only _error
and optionally _links
.
Properties
Name | Description |
---|---|
_links | links An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
|
_embedded | object An optional map of nested resources, mapping each nested resource name to a nested resource representation. |
_profile | string(uri) The URI of a resource profile which describes the representation. |
_error | error An object which describes an error. This value is omitted if the operation succeeded without error. |
activeNotification
{
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"_profile": "https://api.apiture.com/schemas/notifications/activeNotification/v1.0.0/profile.json",
"dismissed": false,
"dismissedAt": "2020-04-02T11:01:31.375Z",
"expired": false,
"expiresAt": "2020-04-T21:00:00.000",
"message": {
"text": "This CD account is maturing on {maturityDate}. Now is a good time to review your account maturity settings.",
"imageUri": "https://cdn.assets.3rdpartybank.com/icons/en/notifications/cdMaturingSoon.png"
},
"_links": {
"self": {
"href": "/notifications/notifications/0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:dismiss": {
"href": "/dismissedNotifications?notification=0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:definition": {
"href": "/notifications/definitions/00b68bc7-497c-4ce5-b8bd-47c6a8f33c22"
}
},
"_embedded": {
"definition": {
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"_profile": "https://api.apiture.com/schemas/notifications/notificationDefinition/v1.0.0/profile.json",
"type": "cdMaturingSoon",
"contextName": "account",
"indicator": true,
"priority": "medium",
"message": {
"text": "This CD account is maturing on 2020-04-09. Now is a good time to review your account maturity settings.",
"imageUri": "https://cdn.assets.3rdpartybank.com/icons/en/notifications/cdMaturingSoon.png"
},
"values": {
"maturityDate": "2020-04-09"
},
"_links": {
"self": {
"href": "/notifications/definitions/0399abed-fd3d-4830-a88b-30f38b8a365c"
}
}
}
}
}
Active Notification
Representation of an active notification resource for a client type (web or mobile) and user language(s) preference.
Properties
Name | Description |
---|---|
_links | links An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
|
_embedded | notificationEmbeddedObjects 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. |
contextUri | string(uri) The URI of a resource that defines the content of this notification, such as an account, a user, or the global resource URI, https://api.apiture.com/domains/notifications/global . The URI need not have the https://hostname portion but must either start with https://{hostname}/ or be the full resource path starting with a / .
maxLength: 2048
|
_id | string The unique identifier for this notification resource. This is an immutable opaque string. read-only
maxLength: 48
|
dismissed | boolean true if this the user has dismissed this notification.
read-only
|
notDismissible | boolean true if this the notification definition is notDismissible .
read-only
|
expired | boolean true if this notification's expiration date-time has passed.
read-only
|
message | notificationMessage The message text for this notification, derived from the notification definition's message or webMessage or mobileMessage , as per the clientType and languages query parameter on getActiveNotifications . The getActiveNotifications operation also replaces variables in the message text template with the values in the values object.
read-only
|
activeNotifications
{
"_links": {
"property1": {
"href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
"title": "Applicant"
},
"property2": {
"href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
"title": "Applicant"
}
},
"_embedded": {
"items": [
{
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"_profile": "https://api.apiture.com/schemas/notifications/activeNotification/v1.0.0/profile.json",
"dismissed": false,
"dismissedAt": "2020-04-02T11:01:31.375Z",
"expired": false,
"expiresAt": "2020-04-T21:00:00.000",
"message": {
"text": "This CD account is maturing on {maturityDate}. Now is a good time to review your account maturity settings.",
"imageUri": "https://cdn.assets.3rdpartybank.com/icons/en/notifications/cdMaturingSoon.png"
},
"_links": {
"self": {
"href": "/notifications/notifications/0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:dismiss": {
"href": "/dismissedNotifications?notification=0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:definition": {
"href": "/notifications/definitions/00b68bc7-497c-4ce5-b8bd-47c6a8f33c22"
}
},
"_embedded": {
"definition": {
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"_profile": "https://api.apiture.com/schemas/notifications/notificationDefinition/v1.0.0/profile.json",
"type": "cdMaturingSoon",
"contextName": "account",
"indicator": true,
"priority": "medium",
"message": {
"text": "This CD account is maturing on 2020-04-09. Now is a good time to review your account maturity settings.",
"imageUri": "https://cdn.assets.3rdpartybank.com/icons/en/notifications/cdMaturingSoon.png"
},
"values": {
"maturityDate": "2020-04-09"
},
"_links": {
"self": {
"href": "/notifications/definitions/0399abed-fd3d-4830-a88b-30f38b8a365c"
}
}
}
}
}
]
},
"_profile": "http://example.com",
"_error": {
"_id": "2eae46e1575c0a7b0115a4b3",
"message": "Descriptive error message...",
"statusCode": 422,
"type": "errorType1",
"remediation": "Remediation string...",
"occurredAt": "2018-01-25T05:50:52.375Z",
"errors": [
{
"_id": "ccdbe2c5c938a230667b3827",
"message": "An optional embedded error"
},
{
"_id": "dbe9088dcfe2460f229338a3",
"message": "Another optional embedded error"
}
],
"_links": {
"describedby": {
"href": "https://developer.apiture.com/errors/errorType1"
}
}
}
}
Active Notifications
A list of active notifications for a user, in high to low priority order. These are notifications for a context, a client type (web, mobile), and one or more language preferences.
Properties
Name | Description |
---|---|
_links | links An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
|
_embedded | embeddedActiveNotifications 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. |
attributeValue
{}
Attribute Value (v2.0.0)
The data associated with this attribute.
Properties
attributes
{
"property1": {},
"property2": {}
}
Attributes (v2.0.0)
An optional map of name/value pairs which contains additional dynamic data about the resource.
Properties
Name | Description |
---|---|
additionalProperties | attributeValue The data associated with this attribute. |
collection
{
"_links": {
"property1": {
"href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
"title": "Applicant"
},
"property2": {
"href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
"title": "Applicant"
}
},
"_embedded": {},
"_profile": "http://example.com",
"_error": {
"_id": "2eae46e1575c0a7b0115a4b3",
"message": "Descriptive error message...",
"statusCode": 422,
"type": "errorType1",
"remediation": "Remediation string...",
"occurredAt": "2018-01-25T05:50:52.375Z",
"errors": [
{
"_id": "ccdbe2c5c938a230667b3827",
"message": "An optional embedded error"
},
{
"_id": "dbe9088dcfe2460f229338a3",
"message": "Another optional embedded error"
}
],
"_links": {
"describedby": {
"href": "https://developer.apiture.com/errors/errorType1"
}
}
},
"count": 0,
"start": 0,
"limit": 0,
"name": "string"
}
Collection (v2.0.0)
A collection of resources. This is an abstract model schema which is extended to define specific resource collections.
Properties
Name | Description |
---|---|
_links | links An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
|
_embedded | object An optional map of nested resources, mapping each nested resource name to a nested resource representation. |
_profile | string(uri) The URI of a resource profile which describes the representation. |
_error | error An object which describes an error. This value is omitted if the operation succeeded without error. |
count | integer The number of items in the collection. This value is optional and may 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. |
createGlobalNotificationDefinition
{
"_profile": "https://api.apiture.com/schemas/notifications/createGlobalNotificationDefinition/v1.0.0/profile.json",
"priority": "high",
"message": {
"text": "The bank branch at {address} will be closed until September 17 due to Hurricane Heathcliff. See [our announcement](http://www.3rdpartybank.com/announcements/heathcliff) for more information.",
"imageUri": "https://cdn.assets.3rdpartybank.com/icons/en/hurricane-flag.png",
"variants": {
"es": {
"text": "La sucursal bancaria en {address} estar\\u00e1 cerrada hasta el 17 de septiembre debido al hurac\\u00e1n Heathcliff. Consulte [nuestro anuncio](http://www.3rdpartybank.com/announcements/heathcliff) para obtener m\\u00e1s informaci\\u00f3n.",
"imageUri": "https://cdn.assets.3rdpartybank.com/icons/es/hurricane-flag.png"
}
}
},
"values": {
"address": "123 N. Main St. Wilmington"
}
}
Create Global Notification Definition
Representation used to create a new global notification definition. The message
property must be defined or both webMessage
or mobileMessage
properties must be defined.
Properties
Name | Description |
---|---|
_links | links An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
|
_embedded | object An optional map of nested resources, mapping each nested resource name to a nested resource representation. |
_profile | string(uri) The URI of a resource profile which describes the representation. |
type | string A programmatic name for the kind of notification this defines, such as cdMaturingSoon or cdInGracePeriod . Clients may elect to respond differently or specially to different well-known notification types.
Default: "announcement"
maxLength: 32
pattern: ^[a-z][a-zA-Z0-9_$]{1,31}$
|
message | notificationMessage The default message text template for notification instances. This may be overridden for web or mobile client types with the webMessage or mobileMessage properties. A definition must defined either the message property or both webMessage or mobileMessage properties.
|
webMessage | notificationMessage The message text template for this notification for web application clients, when using [ GET /activeNotifications?clientType=web ](#op-activeNotifications. If this is not defined, notifications use message .
|
mobileMessage | notificationMessage The message text template for this notification for mobile application clients, when using [ GET /activeNotifications?clientType=mobile ](#op-activeNotifications. If this is not defined, notifications use message .
|
values | object An optional map of name/value variables to insert into the formatted message. For example, the for message text We have increased the rate of your CD from {oldApy}% to {newApy}%. , the values should define oldApy and newApy :{ "oldApy": "1.750", "newApy": "1.800"} . These values are defaults for instances which do not override values .
|
» additionalProperties | attributeValue The data associated with this attribute. |
priority | notificationPriority The priority of this notification. Default: "medium"
|
indicator | boolean If true , each notification instantiated from this definition is a visual indicator (a.k.a. badge) rather than a dismissible visual message, and the dismissNotification operation is not allowed. This may not be true if notDismissible is true.
Default: false
|
notDismissible | boolean If true , each notification instantiated from this definition does not have a UI control to dismiss it, and the dismissNotification operation is not allowed. This may not be true if indicator is true.
|
expiresAt | string(date-time) The notification definition's expiration timestamp in RFC 3339 UTF format: YYYY-MM-DDThh:mm:ss.sssZ . When the definition expires, all active notifications also expire.
|
createNotification
{
"_profile": "https://api.apiture.com/schemas/notifications/createNotification/v1.0.0/profile.json",
"definitionId": "41cf829b-879d-4334-9085-7ac18333ce47",
"userId": "80ebfabf-7a26-48a9-96c2-86f4dca8706f",
"contextUri": "/accounts/account/ba611f3a-ab1b-4ad7-aaf6-56a240123818"
}
Create Notification
Representation used to create a new notification for a user from a notification definition and a specific notification context.
Properties
Name | Description |
---|---|
_links | links An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
|
_embedded | object An optional map of nested resources, mapping each nested resource name to a nested resource representation. |
_profile | string(uri) The URI of a resource profile which describes the representation. |
contextUri | string(uri) (required) The URI of a resource that defines the content of this notification, such as an account, a user, or the global resource URI, https://api.apiture.com/domains/notifications/global . The URI need not have the https://hostname portion but must either start with https://{hostname}/ or be the full resource path starting with a / .
maxLength: 2048
|
definitionId | string (required) The _id of an active notification definition. The properties of the definition will be used to set some of the properties of this new notification.
maxLength: 48
|
userId | string (required) The ID of a digital banking user who owns and can view and dismiss this notification. maxLength: 48
|
createNotificationDefinition
{
"_profile": "https://api.apiture.com/schemas/notifications/createNotificationDefinition/v1.0.0/profile.json",
"type": "cdMaturingSoon",
"contextName": "account",
"indicator": true,
"priority": "medium",
"message": {
"text": "We have increased the rate of your CD from {oldApy}% to {newApy}%.",
"imageUri": "https://cdn.assets.3rdpartybank.com/icons/es/notifications/cdRateIncreased.png",
"variants": {
"es": {
"text": "Hemos aumentado la velocidad de su CD de {oldApy}% a {newApy}%.",
"imageUri": "https://cdn.assets.3rdpartybank.com/icons/es/notifications/cdRateIncreased.png"
},
"fr": {
"text": "Nous avons augment\\u00e9 le taux de votre CD de {oldApy}% \\00e0 {newApy}%.",
"imageUri": "https://cdn.assets.3rdpartybank.com/icons/fr/notifications/cdRateIncreased.png"
}
}
},
"values": {
"oldApy": "1.750",
"newApy": "1.8.0"
}
}
Create Notification Definition
Representation used to create a new notification definition. The message
property must be defined or both webMessage
or mobileMessage
properties must be defined.
Properties
Name | Description |
---|---|
_links | links An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
|
_embedded | object An optional map of nested resources, mapping each nested resource name to a nested resource representation. |
_profile | string(uri) The URI of a resource profile which describes the representation. |
type | string A programmatic name for the kind of notification this defines, such as cdMaturingSoon or cdInGracePeriod . Clients may elect to respond differently or specially to different well-known notification types.
Default: "announcement"
maxLength: 32
pattern: ^[a-z][a-zA-Z0-9_$]{1,31}$
|
message | notificationMessage The default message text template for notification instances. This may be overridden for web or mobile client types with the webMessage or mobileMessage properties. A definition must defined either the message property or both webMessage or mobileMessage properties.
|
webMessage | notificationMessage The message text template for this notification for web application clients, when using [ GET /activeNotifications?clientType=web ](#op-activeNotifications. If this is not defined, notifications use message .
|
mobileMessage | notificationMessage The message text template for this notification for mobile application clients, when using [ GET /activeNotifications?clientType=mobile ](#op-activeNotifications. If this is not defined, notifications use message .
|
values | object An optional map of name/value variables to insert into the formatted message. For example, the for message text We have increased the rate of your CD from {oldApy}% to {newApy}%. , the values should define oldApy and newApy :{ "oldApy": "1.750", "newApy": "1.800"} . These values are defaults for instances which do not override values .
|
» additionalProperties | attributeValue The data associated with this attribute. |
priority | notificationPriority The priority of this notification. Default: "medium"
|
indicator | boolean If true , each notification instantiated from this definition is a visual indicator (a.k.a. badge) rather than a dismissible visual message, and the dismissNotification operation is not allowed. This may not be true if notDismissible is true.
Default: false
|
notDismissible | boolean If true , each notification instantiated from this definition does not have a UI control to dismiss it, and the dismissNotification operation is not allowed. This may not be true if indicator is true.
|
expiresAt | string(date-time) The notification definition's expiration timestamp in RFC 3339 UTF format: YYYY-MM-DDThh:mm:ss.sssZ . When the definition expires, all active notifications also expire.
|
contextName | string (required) A programmatic name of the context for this notification. This could be global for a global notification directed at all users, or an account if the notification applies to a banking account, or user if the notification applies to a user.
maxLength: 32
pattern: ^[a-z][a-zA-Z0-9_$]{1,31}$
|
contextUriTemplate | string An optional URI template for expanding simple identifiers in contexts to full URIs. For example, the value /accounts/accounts/{id} will convert the simple id value 30f38b8a365c to the URI /accounts/accounts/30f38b8a365c . This string must have the substring {id} in it.
maxLength: 2048
|
contextUri | string(uri) The URI of a resource that defines the content of this notification, such as the global resource URI, https://api.apiture.com/domains/notifications/global . For non-global notifications, instances supply their own contextUri explicitly or by injecting a contextId into the definition's contextUriTemplate .
maxLength: 2048
|
embeddedActiveNotifications
{
"items": [
{
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"_profile": "https://api.apiture.com/schemas/notifications/activeNotification/v1.0.0/profile.json",
"dismissed": false,
"dismissedAt": "2020-04-02T11:01:31.375Z",
"expired": false,
"expiresAt": "2020-04-T21:00:00.000",
"message": {
"text": "This CD account is maturing on {maturityDate}. Now is a good time to review your account maturity settings.",
"imageUri": "https://cdn.assets.3rdpartybank.com/icons/en/notifications/cdMaturingSoon.png"
},
"_links": {
"self": {
"href": "/notifications/notifications/0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:dismiss": {
"href": "/dismissedNotifications?notification=0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:definition": {
"href": "/notifications/definitions/00b68bc7-497c-4ce5-b8bd-47c6a8f33c22"
}
},
"_embedded": {
"definition": {
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"_profile": "https://api.apiture.com/schemas/notifications/notificationDefinition/v1.0.0/profile.json",
"type": "cdMaturingSoon",
"contextName": "account",
"indicator": true,
"priority": "medium",
"message": {
"text": "This CD account is maturing on 2020-04-09. Now is a good time to review your account maturity settings.",
"imageUri": "https://cdn.assets.3rdpartybank.com/icons/en/notifications/cdMaturingSoon.png"
},
"values": {
"maturityDate": "2020-04-09"
},
"_links": {
"self": {
"href": "/notifications/definitions/0399abed-fd3d-4830-a88b-30f38b8a365c"
}
}
}
}
}
]
}
Embedded Active Notifications
The list of active notifications for a user's context.
Properties
Name | Description |
---|---|
items | [activeNotification] An array of active notifications, in high to low priority order. |
error
{
"_id": "2eae46e1575c0a7b0115a4b3",
"message": "Descriptive error message...",
"statusCode": 422,
"type": "errorType1",
"remediation": "Remediation string...",
"occurredAt": "2018-01-25T05:50:52.375Z",
"errors": [
{
"_id": "ccdbe2c5c938a230667b3827",
"message": "An optional embedded error"
},
{
"_id": "dbe9088dcfe2460f229338a3",
"message": "Another optional embedded error"
}
],
"_links": {
"describedby": {
"href": "https://developer.apiture.com/errors/errorType1"
}
}
}
Error (v2.0.0)
Describes an error in an API request or in a service called via the API.
Properties
Name | Description |
---|---|
message | string (required) A localized message string describing the error condition. |
_id | string A unique identifier for this error instance. This may be used as a correlation ID with the root cause error (i.e. this ID may be logged at the source of the error). This is is an opaque string. read-only
|
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.
|
errorResponse
{
"_profile": "https://api.apiture.com/schemas/common/errorResponse/v2.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 (v2.0.0)
Describes an error response, typically returned on 4xx or 5xx errors from API operations. The _error
object contains the error details.
Properties
Name | Description |
---|---|
_links | links An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
|
_embedded | object An optional map of nested resources, mapping each nested resource name to a nested resource representation. |
_profile | string(uri) The URI of a resource profile which describes the representation. |
_error | error An object which describes an error. This value is omitted if the operation succeeded without error. |
instance
{
"contextId": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"contextUri": "/accounts/account/17434982-0419-4047-9855-389dac6970f7",
"userIds": [
"82535922-335f-4c95-8000-c663a50aec9c",
"191c5118-b6d5-4cc7-92bd-3eede737513e"
]
}
Notification Instance
Values for creating notification instances for a definition. Each instance must contain either a contextId
or a contextUri
. Using userIds
, one instance
item create multiple notification instances.
Properties
Name | Description |
---|---|
contextId | string The _id of a resource, such as the ID of an account. The containing instances resource must define the contextUriTemplate .
maxLength: 48
|
contextUri | string(uri) The URI of a resource. This may be a partial URI or a full URI. maxLength: 2048
|
userIds | [string] (required) A notification is created for each user identified by these userIds . Each unique item is the _id of a User resource.
minLength: 1
uniqueItems: true
|
values | object An optional map of name/value variables to insert into the formatted message. For example, the for message tex We have increased the rate of your CD from {oldApy}% to {newApy}%. , the values should define oldApy and newApy :{ "oldApy": "1.750", "newApy": "1.800"} . If omitted, the instance uses the values of the notification definition.
|
» additionalProperties | attributeValue The data associated with this attribute. |
expiresAt | string(date-time) The notification's expiration timestamp in RFC 3339 UTF format: YYYY-MM-DDThh:mm:ss.sssZ . If omitted, the instance uses the expiresAt of the notification definition.
|
instances
{
"_profile": "https://api.apiture.com/schemas/notifications/instances/v1.0.0/profile.json",
"contextUriTemplate": "/accounts/accounts/{id}",
"instances": [
{
"contextId": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"userIds": [
"82535922-335f-4c95-8000-c663a50aec9c",
"7131b08f-2c47-4c23-a4ad-fb31d895acb3",
"9cdbae90-a120-4a71-8314-d0f6051c86fa"
],
"expiresAt": "2020-05-08T14:00:00.00Z"
},
{
"contextId": "4c1e7436-14cb-4434-a46e-9d7b4e3f02ea",
"userIds": [
"1cbdd896-0730-4a7d-af68-1834de0cfe84",
"c433df56-b9ef-44ed-bcb8-52bbfb4df5f8"
],
"expiresAt": "2020-05-10T14:00:00.00Z",
"values": {
"oldApy": "1.750",
"newApy": "1.8.0"
}
}
]
}
Notification Instances
Collection of instances to create and add to a notification definition. Each instance contains properties to create an notification instance from this definition, each with their own context, user, and optional expiration date-time and optional values to inject into the message
The request also contains a contextUriTemplate
to map a context ID to a URI, so that thousands of contexts can be expressed in a more concise notation, consisting of just the IDs instead of thousands of URIs. Thus, the caller does not have to build full URIs.
Message bodies are limited to 20,000 instances per call. If a caller need to create more notifications, it should send multiple requests.
Properties
Name | Description |
---|---|
_links | links An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
|
_embedded | object An optional map of nested resources, mapping each nested resource name to a nested resource representation. |
_profile | string(uri) The URI of a resource profile which describes the representation. |
contextUriTemplate | string An optional URI template for expanding simple contextId in each of the instances items to URIs. If used, this string must have the substring {id} in it, It can be just a partial URI path or a compete URI. For example, for the template https://api.3rdparty.bank/accounts/accounts/{id} the 'contextId' value 30f38b8a365c maps to the URI https://api.3rdparty.bank/accounts/accounts/30f38b8a365c .
maxLength: 2048
pattern: .*{id}.*
|
instances | [instance] (required) An array containing a page of notification instance items. Due to request body size limits, call this multiple times to create more than 20,000 notification instances. minItems: undefined
maxItems: 20000
|
link
{
"href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
"title": "Applicant"
}
Link (v1.0.0)
Describes a hypermedia link within a _links
object in HAL representations. In Apiture APIs, links are HAL links, but Apiture APIs do not use the name
or hreflang
properties of HAL. Apiture links may include a method
property.
Properties
Name | Description |
---|---|
href | string(uri) (required) The URI or URI template for the resource/operation this link refers to. |
type | string The media type for the resource. |
templated | boolean If true, the link's href is a URI template. |
title | string An optional human-readable localized title for the link. |
deprecation | string(uri) If present, the containing link is deprecated and the value is a URI which provides human-readable text information about the deprecation. |
profile | string(uri) The URI of a profile document, a JSON document which describes the target resource/operation. |
links
{
"property1": {
"href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
"title": "Applicant"
},
"property2": {
"href": "/contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f",
"title": "Applicant"
}
}
Links (v1.0.0)
An optional map of links, mapping each link relation to a link object. This model defines the _links
object of HAL representations.
Properties
Name | Description |
---|---|
additionalProperties | link Describes a hypermedia link within a _links object in HAL representations. In Apiture APIs, links are HAL links, but Apiture APIs do not use the name or hreflang properties of HAL. Apiture links may include a method property.
|
notification
{
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"_profile": "https://api.apiture.com/schemas/notifications/notification/v1.0.0/profile.json",
"dismissed": true,
"dismissedAt": "2020-04-02T11:01:31.375Z",
"expired": false,
"expiresAt": "2020-04-T21:00:00.000",
"_links": {
"self": {
"href": "/notifications/notifications/0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:dismiss": {
"href": "/dismissedNotifications?notification=0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:expire": {
"href": "/expiredNotifications?notification=0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:definition": {
"href": "/notifications/definitions/00b68bc7-497c-4ce5-b8bd-47c6a8f33c22"
}
},
"_embedded": {
"definition": {
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"_profile": "https://api.apiture.com/schemas/notifications/notificationDefinition/v1.0.0/profile.json",
"type": "cdMaturingSoon",
"contextName": "account",
"indicator": true,
"priority": "medium",
"message": {
"text": "This CD account is maturing on {maturityDate}. Now is a good time to review your account maturity settings.",
"imageUri": "https://cdn.assets.3rdpartybank.com/icons/en/notifications/cdMaturingSoon.png"
},
"values": {
"maturityDate": "2020-04-09"
},
"_links": {
"self": {
"href": "/notifications/definitions/0399abed-fd3d-4830-a88b-30f38b8a365c"
}
}
}
}
}
Notification
Representation of a notification resource. The embedded _embedded.definition
notification definition contains the notification's type
, contextName
, priority
and other properties (these properties are shared with all notifications defined by that definition.) The _embedded.definition
is always included in the getNotification
response as well as in the notifications in the getActiveNotifications
response.
Note: This representation does not contain the message
property; use getActiveNotifications
to obtain renderable active notifications.
Properties
Name | Description |
---|---|
_links | links An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
|
_embedded | notificationEmbeddedObjects Embedded objects read-only
|
_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. |
contextUri | string(uri) The URI of a resource that defines the content of this notification, such as an account, a user, or the global resource URI, https://api.apiture.com/domains/notifications/global . The URI need not have the https://hostname portion but must either start with https://{hostname}/ or be the full resource path starting with a / .
maxLength: 2048
|
_id | string The unique identifier for this notification resource. This is an immutable opaque string. read-only
maxLength: 48
|
dismissed | boolean true if this the user has dismissed this notification.
read-only
|
notDismissible | boolean true if this the notification definition is notDismissible .
read-only
|
expired | boolean true if this notification's expiration date-time has passed.
read-only
|
values | object An optional map of name/value variables to insert into the formatted message. For example, the for message tex We have increased the rate of your CD from {oldApy}% to {newApy}%. , the values should define oldApy and newApy :{ "oldApy": "1.750", "newApy": "1.800"} . If omitted, the instance uses the values of the notification definition.
read-only
|
» additionalProperties | attributeValue The data associated with this attribute. |
expiresAt | string(date-time) The notification's expiration timestamp1 in RFC 3339 UTF format: YYYY-MM-DDThh:mm:ss.sssZ . If omitted, the instance uses the expiresAt of the notification definition.
read-only
|
dismissedAt | string(date-time) The date/time the user dismissed this notification. read-only
|
notificationDefinition
{
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"_profile": "https://api.apiture.com/schemas/notifications/notificationDefinition/v1.0.0/profile.json",
"type": "cdMaturingSoon",
"contextName": "account",
"indicator": true,
"notDismissible": false,
"priority": "medium",
"expired": false,
"expiresAt": "2020-04-18T12:26:36.375Z",
"updatedAt": "2020-04-16T12:00:22.100Z",
"message": {
"text": "This CD account is maturing on {maturityDate}. Now is a good time to review your account maturity settings.",
"imageUri": "https://cdn.assets.3rdpartybank.com/icons/en/notifications/cdMaturingSoon.png"
},
"values": {
"maturityDate": "2020-04-09"
},
"_links": {
"self": {
"href": "/notifications/definitions/0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:expire": {
"href": "/expiredDefinitions?definition=0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:createNotifications": {
"href": "/notifications/definitions/0399abed-fd3d-4830-a88b-30f38b8a365c/notifications"
}
}
}
Notification Definition
Representation of a notification definition resource.
Properties
Name | Description |
---|---|
_links | links An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
|
_embedded | object An optional map of nested resources, mapping each nested resource name to a nested resource representation. |
_profile | string(uri) The URI of a resource profile which describes the representation. |
_error | error An object which describes an error. This value is omitted if the operation succeeded without error. |
type | string A programmatic name for the kind of notification this defines, such as cdMaturingSoon or cdInGracePeriod . Clients may elect to respond differently or specially to different well-known notification types.
Default: "announcement"
maxLength: 32
pattern: ^[a-z][a-zA-Z0-9_$]{1,31}$
|
message | notificationMessage The default message text template for notification instances. This may be overridden for web or mobile client types with the webMessage or mobileMessage properties. A definition must defined either the message property or both webMessage or mobileMessage properties.
|
webMessage | notificationMessage The message text template for this notification for web application clients, when using [ GET /activeNotifications?clientType=web ](#op-activeNotifications. If this is not defined, notifications use message .
|
mobileMessage | notificationMessage The message text template for this notification for mobile application clients, when using [ GET /activeNotifications?clientType=mobile ](#op-activeNotifications. If this is not defined, notifications use message .
|
values | object An optional map of name/value variables to insert into the formatted message. For example, the for message text We have increased the rate of your CD from {oldApy}% to {newApy}%. , the values should define oldApy and newApy :{ "oldApy": "1.750", "newApy": "1.800"} . These values are defaults for instances which do not override values .
|
» additionalProperties | attributeValue The data associated with this attribute. |
priority | notificationPriority The priority of this notification. Default: "medium"
|
indicator | boolean If true , each notification instantiated from this definition is a visual indicator (a.k.a. badge) rather than a dismissible visual message, and the dismissNotification operation is not allowed. This may not be true if notDismissible is true.
Default: false
|
notDismissible | boolean If true , each notification instantiated from this definition does not have a UI control to dismiss it, and the dismissNotification operation is not allowed. This may not be true if indicator is true.
|
expiresAt | string(date-time) The notification definition's expiration timestamp in RFC 3339 UTF format: YYYY-MM-DDThh:mm:ss.sssZ . When the definition expires, all active notifications also expire.
|
contextName | string A programmatic name of the context for this notification. This could be global for a global notification directed at all users, or an account if the notification applies to a banking account, or user if the notification applies to a user.
maxLength: 32
pattern: ^[a-z][a-zA-Z0-9_$]{1,31}$
|
contextUriTemplate | string An optional URI template for expanding simple identifiers in contexts to full URIs. For example, the value /accounts/accounts/{id} will convert the simple id value 30f38b8a365c to the URI /accounts/accounts/30f38b8a365c . This string must have the substring {id} in it.
maxLength: 2048
|
contextUri | string(uri) The URI of a resource that defines the content of this notification, such as the global resource URI, https://api.apiture.com/domains/notifications/global . For non-global notifications, instances supply their own contextUri explicitly or by injecting a contextId into the definition's contextUriTemplate .
maxLength: 2048
|
_id | string The unique identifier for this notification definition resource. This is an immutable opaque string. read-only
maxLength: 128
|
expired | boolean true if this notification definition's expiration date-time has passed.
read-only
|
createdAt | string(date-time) The the notification definition's creation date-time. This is an RFC 3369 formatted date-time string, YYYY-MM-DDThh:mm:ss.sssZ . This is a derived field and is immutable.
read-only
|
updatedAt | string(date-time) The notification definition's last update date-time. This is an RFC 3369 formatted date-time string, YYYY-MM-DDThh:mm:ss.sssZ . This is a derived field and is immutable.
read-only
|
notificationDefinitions
{
"_profile": "https://api.apiture.com/schemas/notifications/notificationDefinitions/v1.0.0/profile.json",
"name": "definitions",
"start": 10,
"limit": 10,
"count": 67,
"_links": {
"self": {
"href": "/notifications/definitions?start=10&limit=10"
},
"first": {
"href": "/notifications/definitions?start=0&limit=10"
},
"next": {
"href": "/notifications/definitions?start=20&limit=10"
},
"collection": {
"href": "/notifications/definitions"
}
},
"_embedded": {
"items": {
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"_profile": "https://api.apiture.com/schemas/notifications/summaryNotificationDefinition/v1.0.0/profile.json",
"type": "cdMaturingSoon",
"contextName": "account",
"indicator": true,
"notDismissible": false,
"priority": "medium",
"message": {
"text": "This CD account is maturing on {maturityDate}. Now is a good time to review your account maturity settings.",
"imageUri": "https://cdn.assets.3rdpartybank.com/icons/en/notifications/cdMaturingSoon.png"
},
"values": {
"maturityDate": "2020-04-09"
},
"_links": {
"self": {
"href": "/notifications/definitions/0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:expire": {
"href": "/expiredDefinitions?definition=0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:createNotifications": {
"href": "/notifications/definitions/0399abed-fd3d-4830-a88b-30f38b8a365c/notifications"
}
}
}
}
}
Notification Definition Collection
Collection of notification definitions. The items in the collection are ordered in the _embedded.items
array; the name
is definitions
. The top-level _links
object may contain pagination links (self
, next
, prev
, first
, last
, collection
).
Properties
Name | Description |
---|---|
_links | links An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
|
_embedded | object Embedded objects. |
» items | [summaryNotificationDefinition] An array containing a page of definition 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 may 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. |
notificationEmbeddedObjects
{
"definition": {
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"_profile": "https://api.apiture.com/schemas/notifications/notificationDefinition/v1.0.0/profile.json",
"type": "cdMaturingSoon",
"contextName": "account",
"indicator": true,
"notDismissible": false,
"priority": "medium",
"expired": false,
"expiresAt": "2020-04-18T12:26:36.375Z",
"updatedAt": "2020-04-16T12:00:22.100Z",
"message": {
"text": "This CD account is maturing on {maturityDate}. Now is a good time to review your account maturity settings.",
"imageUri": "https://cdn.assets.3rdpartybank.com/icons/en/notifications/cdMaturingSoon.png"
},
"values": {
"maturityDate": "2020-04-09"
},
"_links": {
"self": {
"href": "/notifications/definitions/0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:expire": {
"href": "/expiredDefinitions?definition=0399abed-fd3d-4830-a88b-30f38b8a365c"
},
"apiture:createNotifications": {
"href": "/notifications/definitions/0399abed-fd3d-4830-a88b-30f38b8a365c/notifications"
}
}
}
}
Notification Embedded Objects
Nested objects for a notification instance.
Properties
Name | Description |
---|---|
definition | notificationDefinition The notification definition for this notification. |
notificationMessage
{
"text": "We have increased the rate of your CD from {oldApy}% to {newApy}%.",
"imageUri": "https://cdn.assets.3rdpartybank.com/icons/en/notifications/cdRateIncreased.png",
"variants": {
"es": {
"text": "Hemos aumentado la velocidad de su CD de {oldApy}% a {newApy}%.",
"imageUri": "https://cdn.assets.3rdpartybank.com/icons/es/notifications/cdRateIncreased.png"
},
"fr": {
"text": "Nous avons augment\\u00e9 le taux de votre CD de {oldApy}% \\00e0 {newApy}%.",
"imageUri": "https://cdn.assets.3rdpartybank.com/icons/fr/notifications/cdRateIncreased.png"
}
}
}
Notification Message
The presentation elements of a notification message: the text, image icon URL, and language variants for the text and image.
Properties
Name | Description |
---|---|
text | string(markdown) (required) A notification message in Github Flavored Markdown. The text may contain variable references (identifiers in braces such as {oldApy}) which are replaced by corresponding values from the notification instance or definition. In the example, the values must define the variables oldApy and newApy .
minLength: 1
maxLength: 4096
|
imageUri | string(uri) The URL of an icon or visual representation of this notification or notification definition. maxLength: 2048
|
variants | object The language-specific variants of this message text. The keys in this object are RFC 7231 language codes. |
» additionalProperties | simpleMessage The message and optional image (icon) URI for a notification message. |
notificationPriority
"low"
Notification Priority
The priority of a notification.
Type: string
Enumerated values: low
medium
high
notifications
{
"_profile": "https://api.apiture.com/schemas/notifications/notifications/v1.0.0/profile.json",
"name": "notifications",
"start": 10,
"limit": 10,
"count": 67,
"_links": {
"self": {
"href": "/notifications/notifications?start=10&limit=10"
},
"first": {
"href": "/notifications/notifications?start=0&limit=10"
},
"next": {
"href": "/notifications/notifications?start=20&limit=10"
},
"collection": {
"href": "/notifications/notifications"
}
},
"_embedded": {
"items": {
"anyOf": [
{
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"_profile": "https://api.apiture.com/schemas/notifications/summaryNotification/v1.0.0/profile.json",
"_links": {
"self": {
"href": "/notifications/notifications/0399abed-fd3d-4830-a88b-30f38b8a365c"
}
}
},
{
"_id": "d62c0701-0d74-4836-83f9-ebf3709442ea",
"_profile": "https://api.apiture.com/schemas/notifications/summaryNotification/v1.0.0/profile.json",
"_links": {
"self": {
"href": "/notifications/notifications/d62c0701-0d74-4836-83f9-ebf3709442ea"
}
}
}
]
}
}
}
Notification Collection
Collection of notifications. The items in the collection are ordered in the _embedded.items
array; the name
is notifications
. The top-level _links
object may contain pagination links (self
, next
, prev
, first
, last
, collection
).
Properties
Name | Description |
---|---|
_links | links An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
|
_embedded | object Embedded objects. |
» items | [summaryNotification] An array containing a page of notification 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 may 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. |
root
{
"id": "apiName",
"name": "API name",
"apiVersion": "1.0.0",
"_profile": "https://production.api.apiture.com/schemas/common/root/v2.0.0/profile.json",
"_links": {}
}
API Root (v2.0.0)
A HAL response, with hypermedia _links
for the top-level resources and operations in API.
Properties
Name | Description |
---|---|
_links | links An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
|
_embedded | object An optional map of nested resources, mapping each nested resource name to a nested resource representation. |
_profile | string(uri) The URI of a resource profile which describes the representation. |
_error | error An object which describes an error. This value is omitted if the operation succeeded without error. |
_id | string This API's unique ID. read-only
|
name | string This API's name. |
apiVersion | string This API's version. |
simpleMessage
{
"text": "We have increased the rate of your CD from {oldApy}% to {newApy}%.",
"imageUri": "https://cdn.assets.3rdpartybank.com/icons/en/notifications/cdRateIncreased.png"
}
Notification Message
The message and optional image (icon) URI for a notification message.
Properties
Name | Description |
---|---|
text | string(markdown) (required) A notification message in Github Flavored Markdown. The text may contain variable references (identifiers in braces such as {oldApy}) which are replaced by corresponding values from the notification instance or definition. In the example, the values must define the variables oldApy and newApy .
minLength: 1
maxLength: 4096
|
imageUri | string(uri) The URL of an icon or visual representation of this notification or notification definition. maxLength: 2048
|
summaryNotification
{
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"_profile": "https://api.apiture.com/schemas/notifications/summaryNotification/v1.0.0/profile.jsons",
"dismissed": false,
"expired": false,
"dismissedAt": "2020-04-02T11:01:31.375Z",
"expiresAt": "2020-04-18T12:15:21.375Z",
"_links": {
"self": {
"href": "/notifications/notifications/0399abed-fd3d-4830-a88b-30f38b8a365c"
}
}
}
Notification Summary
Summary representation of a notification resource in notifications collections. This representation normally does not contain any _embedded
objects. If needed, call the GET
operation on the item's self
link to get _embedded
objects.
Properties
Name | Description |
---|---|
_links | links An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
|
_embedded | object An optional map of nested resources, mapping each nested resource name to a nested resource representation. |
_profile | string(uri) The URI of a resource profile which describes the representation. |
_error | error An object which describes an error. This value is omitted if the operation succeeded without error. |
contextUri | string(uri) The URI of a resource that defines the content of this notification, such as an account, a user, or the global resource URI, https://api.apiture.com/domains/notifications/global . The URI need not have the https://hostname portion but must either start with https://{hostname}/ or be the full resource path starting with a / .
maxLength: 2048
|
_id | string The unique identifier for this notification resource. This is an immutable opaque string. read-only
maxLength: 48
|
dismissed | boolean true if this the user has dismissed this notification.
read-only
|
notDismissible | boolean true if this the notification definition is notDismissible .
read-only
|
expired | boolean true if this notification's expiration date-time has passed.
read-only
|
summaryNotificationDefinition
{
"_id": "0399abed-fd3d-4830-a88b-30f38b8a365c",
"_profile": "https://api.apiture.com/schemas/notifications/summaryNotificationDefinition/v1.0.0/profile.json",
"type": "cdMaturingSoon",
"contextName": "account",
"indicator": true,
"notDismissible": false,
"expired": false,
"expiresAt": "2020-04-18T12:15:21.375Z",
"message": {
"text": "This CD account is maturing on {maturityDate}. Now is a good time to review your account maturity settings.",
"imageUri": "https://cdn.assets.3rdpartybank.com/icons/en/notifications/cdMaturingSoon.png"
},
"values": {
"maturityDate": "2020-04-09"
},
"_links": {
"self": {
"href": "/notifications/definitions/0399abed-fd3d-4830-a88b-30f38b8a365c"
}
}
}
Notification Definition Summary
Summary representation of a definition resource in notification definitions collections. This representation normally does not contain any _embedded
objects. If needed, call the GET
operation on the item's self
link to get _embedded
objects.
Properties
Name | Description |
---|---|
_links | links An optional map of links, mapping each link relation to a link object. This model defines the _links object of HAL representations.
|
_embedded | object An optional map of nested resources, mapping each nested resource name to a nested resource representation. |
_profile | string(uri) The URI of a resource profile which describes the representation. |
_error | error An object which describes an error. This value is omitted if the operation succeeded without error. |
type | string A programmatic name for the kind of notification this defines, such as cdMaturingSoon or cdInGracePeriod . Clients may elect to respond differently or specially to different well-known notification types.
Default: "announcement"
maxLength: 32
pattern: ^[a-z][a-zA-Z0-9_$]{1,31}$
|
message | notificationMessage The default message text template for notification instances. This may be overridden for web or mobile client types with the webMessage or mobileMessage properties. A definition must defined either the message property or both webMessage or mobileMessage properties.
|
webMessage | notificationMessage The message text template for this notification for web application clients, when using [ GET /activeNotifications?clientType=web ](#op-activeNotifications. If this is not defined, notifications use message .
|
mobileMessage | notificationMessage The message text template for this notification for mobile application clients, when using [ GET /activeNotifications?clientType=mobile ](#op-activeNotifications. If this is not defined, notifications use message .
|
values | object An optional map of name/value variables to insert into the formatted message. For example, the for message text We have increased the rate of your CD from {oldApy}% to {newApy}%. , the values should define oldApy and newApy :{ "oldApy": "1.750", "newApy": "1.800"} . These values are defaults for instances which do not override values .
|
» additionalProperties | attributeValue The data associated with this attribute. |
priority | notificationPriority The priority of this notification. Default: "medium"
|
indicator | boolean If true , each notification instantiated from this definition is a visual indicator (a.k.a. badge) rather than a dismissible visual message, and the dismissNotification operation is not allowed. This may not be true if notDismissible is true.
Default: false
|
notDismissible | boolean If true , each notification instantiated from this definition does not have a UI control to dismiss it, and the dismissNotification operation is not allowed. This may not be true if indicator is true.
|
expiresAt | string(date-time) The notification definition's expiration timestamp in RFC 3339 UTF format: YYYY-MM-DDThh:mm:ss.sssZ . When the definition expires, all active notifications also expire.
|
contextName | string A programmatic name of the context for this notification. This could be global for a global notification directed at all users, or an account if the notification applies to a banking account, or user if the notification applies to a user.
maxLength: 32
pattern: ^[a-z][a-zA-Z0-9_$]{1,31}$
|
contextUriTemplate | string An optional URI template for expanding simple identifiers in contexts to full URIs. For example, the value /accounts/accounts/{id} will convert the simple id value 30f38b8a365c to the URI /accounts/accounts/30f38b8a365c . This string must have the substring {id} in it.
maxLength: 2048
|
contextUri | string(uri) The URI of a resource that defines the content of this notification, such as the global resource URI, https://api.apiture.com/domains/notifications/global . For non-global notifications, instances supply their own contextUri explicitly or by injecting a contextId into the definition's contextUriTemplate .
maxLength: 2048
|
_id | string The unique identifier for this notification definition resource. This is an immutable opaque string. read-only
maxLength: 128
|
expired | boolean true if this notification definition's expiration date-time has passed.
read-only
|