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
ThreeDS Webhook
Status:
Production
Version:
V2
Product:
Webhook Solutions
Overview
This webbook serves to instantly inform your system whenever an OTP message needs to be sent to the cardholder, this webhook is used when you need to send the OTP message from your side to the cardholder.
How It Works
When an OTP message needs to be sent to the cardholder, we will instantly send you a POST request to a specified endpoint, ensuring secure delivery of the OTP.
It communicates necessary details such as transaction amount, currency, masked pan, externalCardId
and mobile. Number. This mechanism ensures that the cardholder receives a timely and secure OTP for completing their transaction.
Once you receive this request you can send the message to the cardholder, so they can use the OTP.
ThreeDS Webhook
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 | 12 | Unique identifer for the request | |||||||
type | string | 10 | Type of the webhook | |||||||
timestamp | string | 30 | Timestamp of the request - Format YYYY-MM-DDtHH:MM:SS.SSS+04:00 | |||||||
details | transaction | amount | string | 18 | Transaction Amount | |||||
currency | string | 3 | Amount Currency | |||||||
merchantName | string | 100 | Merchant Name | |||||||
date | string | 30 | Request Timestamp - Format YYYY-MM-DDtHH:MM:SS.SSS+04:00 | |||||||
time | string | 30 | Request Timestamp - Format YYYY-MM-DDtHH:MM:SS.SSS+04:00 | |||||||
recipient | maskedCardNumber | string | 19 | Masked Card Number | ||||||
externalCardId | string | 20 | External Card ID | |||||||
clientId | string | 21 | Client ID | |||||||
mobilePhone | string | 32 | Mobile Phone | |||||||
string | 255 | |||||||||
language | string | 3 | Language Indicator | |||||||
OTP | string | 8 | OTP Value | |||||||
referenceNumber | string | 12 | Reference Number | |||||||
textMessage | string | 255 | Text Message |
{
"id": "688385602509",
"type": "3DSOTP",
"timestamp": "2023-10-05T08:03:41.283Z",
"details": {
"transaction": {
"amount": "657.45",
"currency": "AED",
"merchantName": "Etisalat q",
"date": "2023-10-05T08:03:41.280Z",
"time": "2023-10-05T08:03:41.280Z",
"recipient": {
"maskedCardNumber": "433366XXXXXX89416714",
"externalCardId": "43336612345605100000",
"clientId": "1234625",
"mobilePhone": "971553456789",
"email": "vikas.mane@gmail.com",
"language": "E"
}
},
"OTP": "575866",
"referenceNumber": "688385602509",
"textMessage": "657.45 , 575866 , Etisalat q , AED"
}
}
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": "SMS",
"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 |