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
Account Transfer Status
Status:
Production
Version:
V2
Product:
Webhook Solutions
Overview
This webbook serves to instantly inform your system whenever an account transfer [product transfer] has been processed.
How It Works
The account transfer (product transfer) API request operates in asynchronous mode, meaning the request is submitted but processed later by a back-end scheduler. To keep your system informed of the transfer status, this webhook is set up to provide updates on the request status.
Account Transfer Status
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 | 20 | Unique identifer for the request | |||||||
type | string | 32 | Type of the webhook | |||||||
timestamp | string | 30 | Timestamp of the request - Format YYYY-MM-DDtHH:MM:SS.SSS+04:00 | |||||||
details | status | account | id | value | string | 32 | CONTRACT_NUMBER value | |||
type | string | 20 | accountNumber fixed value | |||||||
role | string | 20 | Account Role | |||||||
application | regNumber | string | 100 | This is a unique identifier for the request | ||||||
creationType | string | 50 | Creation type, for example the request was created from screen | |||||||
responseCode | string | 10 | Response code where 0 is successful | |||||||
responseClass | string | 30 | Response Class | |||||||
responseMessage | string | 255 | Response message which will describe the response in case of successful or failing request |
{
"id": "b876d568-8411-4638-bdef-a1a188a4773b",
"type": "AccountTransferStatus",
"timestamp": "2020-07-20T06:49:02.366Z",
"details": {
"status": {
"account": {
"id": {
"value": "123456789",
"type": "accountNumber"
},
"role": "ACC_MAIN"
},
"application": {
"regNumber": "50165654023572",
"creationType": "SCREEN",
"responseCode": "0",
"responseClass": "Information",
"responseMessage": "Adv Application Accept action completed successfully"
}
}
}
}
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 | Type of the webhook | |||||||
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": "AccountTransferSatus",
"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 |