Webhook Solutions
Overview
Our webhook solution ensures that your system receives real-time notifications regarding specific events triggered within the NI system, based on your subscription to the different webhooks.
Integration
Our Webhooks solution relies on consumer defining a single API endpoint to receive all the notification types. Each message contains a common structure with:
- id: Unique message id
- type: type of notification. This is the key field to differentiate processing of the details payload
- timestamp: timestamp of the message from NI systems
- details: notification payload. Every message type will have its own payload specification and should be parsed and acted accordingly.
Security
The webhook endpoint is expected to be hosted through TLS/HTTPS to ensure secured data exchange. In addition to this, our webhook solution supports API authentication.
The preferred authentication strategy is oAuth2 where the consumer should provide NI with:
- Authentication/Token management URL endpoint
- client_id
- client_secret
Pre-requisites
Our webhook API request will be using the POST verb.
To register a Webhook endpoint with us, please contact your relationship manager with:
- Webhook URL Endpoint
- Authentication mode
- Security requirements
To support different authentication method or integration strategy with us, please contact your relationship manager
Token Notification
Status:
Production
Version:
V2
Product:
Webhook Solutions
Overview
This webhook serves to instantly inform your system whenever a tokenization event occurs.
Token Notification
Status:
Production
Version:
V2
Product:
Webhook Solutions
Node | Child Node | Type | Length | Description |
---|---|---|---|---|
Authorization | Bearer xxxx | string | Authorization Header (Bearer Token) | |
Content-Type | application/json | string | Content Type |
Node Type | Type | Length | Description | |||||||
---|---|---|---|---|---|---|---|---|---|---|
id | string | 36 | Unique identifer for the request | |||||||
type | string | 5 | AC: Activation,TC: Completion,TD: Token Events,TE: Token Resume | |||||||
timestamp | string | 30 | Timestamp of the request - Format YYYY-MM-DDtHH:MM:SS.SSS+04:00 | |||||||
details | card | id | value | string | 32 | Card Identifier | ||||
type | string | 20 | externalCardId - when this is used,cardNumber - when clear card number is used | |||||||
maskedCardNumber | string | 19 | Masked PAN number | |||||||
clientId | string | 20 | Client ID | |||||||
mobilePhone | string | 32 | Mobile Number to which the SMS should be triggered | |||||||
string | 255 | Email ID | ||||||||
language | string | 3 | Language ISO code | |||||||
cbsNumber | string | 10 | CBS Number | |||||||
textMessage | string | 255 | The content of the SMS | |||||||
token | activationPref | string | 10 | Activation Preference. Applicable for type= AC | ||||||
requestorId | string | 10 | Token Requestor ID | |||||||
requestorName | string | 30 | Wallet Name | |||||||
activationCode | string | 30 | Activation OTP. Applicable for type= AC | |||||||
deviceType | string | 10 | Device Type. Applicable for type= TC, TD, TE | |||||||
tokenEventReasonCode | string | 20 | TOKEN STATUS. Applicable for type= TD, TE | |||||||
tokenEventIndicator | string | 3 | 3:Inactive/Deactivated 4:SoftDeleted 6:Suspended 7:Active. Applicable for type= TD, TE |
{
"id": "b876d568-8411-4638-bdef-a1a188a4773b",
"type": "AC",
"timestamp": "2020-07-20T06:49:02.366Z",
"details": {
"card": {
"id": {
"value": "99984100133767425304",
"type": "externalCardId"
},
"maskedCardNumber": "999841XXXXXX7408",
"clientId": "112233677339066180",
"mobilePhone": "112211223322",
"email": "James.Robert@network.global",
"language": "ENG",
"cbsNumber": "ENG"
},
"textMessage": "Thank you for your NI Issuing Core DEMO Visa Gold credit card application. Your NI Issuing Core DEMO credit card ending 0796 was activated with 0.00 AED.",
"token": {
"activationPref": "1",
"requestorId": "50110030273",
"requestorName": "APPLE PAY",
"activationCode": "303241",
"deviceType": "21",
"tokenEventReasonCode": "Active",
"tokenEventIndicator": "3,4,6,7"
}
}
}
Node | Child Node | Type | Length | Description | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Content-Type | application/json | string | Content Type |
Node Type | Type | Length | Description | |||||||
---|---|---|---|---|---|---|---|---|---|---|
id | string | 36 | Unique identifer ID | |||||||
type | string | 10 | AC: Activation,TC: Completion,TD: Token Events,TE: Token Resume | |||||||
timestamp | string | 30 | Timestamp of the response - Format YYYY-MM-DDtHH:MM:SS.SSS+04:00 | |||||||
response | status | code | string | 5 | Status code of the response | |||||
description | string | 30 | Response Description |
{
"id": "b876d568-8411-4638-bdef-a1a188a4773b",
"type": "AC",
"timestamp": "2020-07-20T06:49:02.366Z",
"response": {
"status": {
"code": "00",
"description": "successful"
}
}
}
Code | Description |
---|---|
200 | Sample Description |
400 | Bad Request |
401 | Unauthorized |
403 | Forbidden |
500 | Internal Server Error |
502 | Bad gateway |
503 | Scheduled Maintenance |
504 | Gateway Timeout |
596 | Service Not Found |