Generate Notification Request
📥 Generate Notification Request API – Request Parameters
The generateRVN API expects a JSON request body with the following structure and attributes.
Refer to this section while forming your API call.
🔗 Endpoint
POST https://REL-ID-VERIFY-SERVER:VERIFY-PORT/generateRVN.htm
🔐 Authentication
Use one of the following in the request headers:
- Basic Auth:
Authorization: Basic <base64-encoded-credentials> - OAuth2 Token:
Authorization: Bearer <access_token>
🔑 Mandatory Parameters
| Parameter | Type | Description |
|---|---|---|
msg_id | string | Unique message ID for this notification, typically the transaction ID. |
enterprise_id | string | Enterprise ID assigned by REL-ID admin (from Gateway Manager). |
user_id | string | REL-ID user ID to whom the notification should be sent. |
expires_in | int | Validity period (in seconds) for this notification. Must be ≥ 15. |
msg | array of objects | Transactional messages in various languages, each with: lng, subject, message, and label. |
notification_msg | object | Message shown in device tray via FCM/APNS. Avoid sensitive content. |
actions | array of objects | List of action buttons with their label, action text, and authlevel . |
🧩 Optional Parameters
Parameter | Type | Description |
|---|---|---|
| string | Type of user identifier. Options: |
| string | Webhook URL to receive async status update from REL-ID. |
| boolean | Enable/disable digital signing of user response (default: true). |
object | Define OTP and workflow behavior (e.g. JWT generation). | |
| string | Message mode. Values: In case of OTP, REL-ID server generates the OTP, replaces the OTP value in the$$OTP$$ placeholder in the msg.message and sends the REL-ID notification toUser.In case of TWO-WAY, the provided content is sent in the notification as is to user. |
🧠 Structure: msg (Multilingual Content)
msg (Multilingual Content)"msg": [
{
"lng": "English",
"subject": "Login Attempt",
"message": "You are attempting to login to Netbanking Retail",
"label": {
"Accept": "Approve",
"Reject": "Disapprove"
}
}
]📝 label in msg
label in msgThe label object inside msg defines the localized button labels that the user sees for each action in that language.
- It must have a one-to-one mapping with the
labelvalues defined in theactionsarray. - The keys in
msg.labelmust exactly match thelabelfields in theactionsarray. - The values are the display names for each action in the selected language.
The number oflabelentries in each language must match the number of definedactions.
🔘 Structure: actions
actions"actions": [
{
"label": "Accept",
"action": "Approved",
"authlevel": "1"
},
{
"label": "Reject",
"action": "Disapproved",
"authlevel": "0"
}
]label: Internal identifier used for mapping withmsg.labelaction: Response text sent back inaction_responseauthlevel: Level of authentication required (0–4)--0: No auth--1: Password--3: Device LDA--4: Server Biometric- Stepup Authentication for Actions
📬 Structure: notification_msg
notification_msg"notification_msg": {
"message": "You have a login attempt to review",
"subject": "Login Notification"
}| Field | Type | Description |
|---|---|---|
message | string | The main text to be shown in the push notification tray (e.g., "You have a login notification"). |
subject | string | The title or header of the notification shown above the message. Also appears in the tray (e.g., "Login Notification"). |
💡 Best Practices
- Keep both
messageandsubjectshort and meaningful. - Do not include user identifiers, transaction amounts, or account numbers.
- Think of this as a "doorbell" to get the user's attention, not the full message.
The actual transaction details will be securely fetched and shown inside the REL-ID app, not in thisnotification_msg.
⚙️ controls (OTP & Workflow Config)
controls (OTP & Workflow Config)
These parameters define exactly how your notification behaves, looks, and how the user interacts with it.
🔐 Generate Notification Request Samples
This guide provides sample request bodies for generating two types of REL-IDverify push notifications:
- ✅ Approve/Reject Login Request
- 🔢 OTP-based Transaction Approval
🔗 Endpoint
POST https://REL-ID-VERIFY-SERVER:VERIFY-PORT/generateRVN.htm
📤 Request Headers
| Header | Value | Required |
|---|---|---|
| Authorization | Basic / Bearer Token | ✅ |
| Content-Type | application/json | ✅ |
🔽 Approve/Reject Login Request
Click to expand sample JSON
{
"msg_id": "txn-login-20250515",
"enterprise_id": "YOUR_ENTERPRISE_ID",
"user_id": "testuser",
"expires_in": 180,
"notification_msg": {
"message": "Login attempt detected",
"subject": "Login Verification"
},
"msg": [
{
"lng": "English",
"subject": "Login Attempt",
"message": "You are attempting to login to your account. Do you approve?",
"label": {
"Approve": "Approve",
"Reject": "Reject"
}
}
],
"actions": [
{
"label": "Approve",
"action": "Approved",
"authlevel": "1"
},
{
"label": "Reject",
"action": "Rejected",
"authlevel": "0"
}
]
}🔽 OTP-based Transaction Approval Request
Click to expand sample JSON
{
"msg_id": "txn-otp-20250515",
"enterprise_id": "YOUR_ENTERPRISE_ID",
"user_id": "testuser",
"msg_type": "OTP",
"expires_in": 180,
"notification_msg": {
"message": "Transaction requires your approval",
"subject": "Approve Transaction"
},
"msg": [
{
"lng": "English",
"subject": "Approve Transaction",
"message": "Use OTP $$OTP$$ to approve your transaction of ₹5,000",
"label": {
"Submit": "Submit"
}
}
],
"actions": [
{
"label": "Submit",
"action": "OTP_SUBMITTED",
"authlevel": "0"
}
],
"controls": {
"otp": {
"attempts": 3,
"hash_spec": "sha256",
"otp_spec": "N-6"
}
}
}Updated 6 months ago
