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

ParameterTypeDescription
msg_idstringUnique message ID for this notification, typically the transaction ID.
enterprise_idstringEnterprise ID assigned by REL-ID admin (from Gateway Manager).
user_idstringREL-ID user ID to whom the notification should be sent.
expires_inintValidity period (in seconds) for this notification. Must be β‰₯ 15.
msgarray of objectsTransactional messages in various languages, each with: lng, subject, message, and label.
notification_msgobjectMessage shown in device tray via FCM/APNS. Avoid sensitive content.
actionsarray of objectsList of action buttons with their label, action text, and authlevel .

🧩 Optional Parameters

Parameter

Type

Description

user_type

string

Type of user identifier. Options: userId (default), mobile, loginId.

callback_url

string

Webhook URL to receive async status update from REL-ID.

ds_required

boolean

Enable/disable digital signing of user response (default: true).

controls

object

Define OTP and workflow behavior (e.g. JWT generation).

msg_type

string

Message mode. Values: TWO-WAY (default) or OTP.

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": [
  {
    "lng": "English",
    "subject": "Login Attempt",
    "message": "You are attempting to login to Netbanking Retail",
    "label": {
      "Accept": "Approve",
      "Reject": "Disapprove"
    }
  }
]

πŸ“ label in msg

The 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 label values defined in the actions array.
  • The keys in msg.label must exactly match the label fields in the actions array.
  • The values are the display names for each action in the selected language.
πŸ“Œ

The number of label entries in each language must match the number of defined actions.


πŸ”˜ Structure: actions

"actions": [
  {
    "label": "Accept",
    "action": "Approved",
    "authlevel": "1"
  },
  {
    "label": "Reject",
    "action": "Disapproved",
    "authlevel": "0"
  }
]
  • label: Internal identifier used for mapping with msg.label
  • action: Response text sent back in action_response
  • authlevel: 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": {
  "message": "You have a login attempt to review",
  "subject": "Login Notification"
}
FieldTypeDescription
messagestringThe main text to be shown in the push notification tray (e.g., "You have a login notification").
subjectstringThe title or header of the notification shown above the message. Also appears in the tray (e.g., "Login Notification").

πŸ’‘ Best Practices

  • Keep both message and subject short 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 this notification_msg.


βš™οΈ controls (OTP & Workflow Config)

OTP Controls

Secure Token Generation


🧩

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

HeaderValueRequired
AuthorizationBasic / Bearer Tokenβœ…
Content-Typeapplication/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"
    }
  }
}