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 Result
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.
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 | accountTransfer | mainApplication | regNumber | string | 64 | Application unique identifier | ||||
creationType | string | 32 | Additional application creation type code. {API_ASYNC, API_SYNC, FILE, SCREEN} for {Online API with delayed processing, Online API with instant processing, Batch file, Screen}. | |||||||
responseCode | string | 9 | Error code | |||||||
responseClass | string | 32 | Information, Warning, Error, Fatal Erro | |||||||
responseMessage | string | 255 | Status description | |||||||
sourceAppCode | string | 32 | Account Role | |||||||
sourceAppName | string | 32 | Respective parameter passed when the application was submitted from API/Batch | |||||||
externalUserId | string | 32 | Respective parameter passed when the application was submitted from API/Batch | |||||||
account | id | value | string | 32 | CONTRACT_NUMBER value | |||||
type | string | 20 | accountNumber fixed value | |||||||
role | string | 20 | Account Role | |||||||
cbsNumber | string | 64 | Respective field of the contract record. Normally used for referring the account related to this contract in the core banking system. | |||||||
productCode | string | 32 | Code of the product assigned to the contract. Values depend on the Way4 configuration | |||||||
productGroup | string | 32 | Product group. Values depend on the Way4 configuration | |||||||
cards | applicationregNumber | string | 100 | This is a unique identifier for the request | ||||||
role | string | 50 | Creation type, for example the request was created from screen | |||||||
clientId | string | 10 | Response code where 0 is successful | |||||||
new | maskedCardNumber | string | 64 | PAN. Is masked when PAN masking is requested | ||||||
externalCardId | string | 20 | EXID | |||||||
productCode | string | 32 | New product code | |||||||
old | maskedCardNumber | string | 64 | PAN. Is masked when PAN masking is requested | ||||||
externalCardId | string | 20 | EXID | |||||||
productCode | string | 32 | Old product code |
{
"id": "b876d568-8411-4638-bdef-a1a188a4773b",
"type": "AccountTransferResult",
"timestamp": "2020-07-20T06:49:02.366Z",
"details": {
"accountTransfer": {
"mainApplication": {
"regNumber": "50165654023572",
"creationType": "SCREEN",
"responseCode": "0",
"responseClass": "Information",
"responseMessage": "Adv Application Accept action completed successfully",
"sourceAppCode": "src_app_code",
"sourceAppName": "src_app_name",
"externalUserId": "ext_user_id"
},
"account": {
"id": {
"value": "0009998410098839208",
"type": "accountNumber"
},
"role": "ACC_MAIN",
"cbsNumber": "7980876890876789",
"productCode": "982_AED_017_A",
"productGroup": "ISSCREDIT"
},
"cards": [
{
"applicationregNumber": "356364128929",
"role": "MAIN_CARD",
"clientId": "112233135637995299",
"new": {
"maskedCardNumber": "999851******6844",
"externalCardId": "99985101174564327927",
"productCode": "982_AED_017_P"
},
"old": {
"maskedCardNumber": "999851******6844",
"externalCardId": "99985101174564327927",
"productCode": "982_AED_016_P"
}
}
]
}
}
}
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": "AccountTransferResult",
"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 |