Skip to main content

RFI Forms

RFI Forms are secure, Nium-hosted forms that let your customers or operations teams respond to Requests for Information (RFIs) instantly — without requiring you to build or maintain a custom data collection interface.

RFIs are raised by Nium's compliance team when additional information is needed to progress an onboarding application or clear a transaction. This form is helpful for clients that:

  • Want to resolve RFIs faster without building custom UI flows
  • Operate both customer-facing portals and internal operations dashboards
  • Need a single integration that handles both onboarding and transaction RFIs
  • Want Nium to manage form hosting, compliance updates, and data transmission

Overview

To collect RFI responses using RFI Forms, clients:

  1. Receive a callback from Nium when a new RFI is raised.
  2. Create a session using the Session API, providing the customer and RFI context.
  3. Surface the session link to the customer or operations team.
  4. The customer or ops team opens the Nium-hosted RFI Form and submits the required information.
  5. Nium processes the submission and updates the case or transaction status automatically.

Key features

RFI Forms dynamically display the fields and document types required for each specific RFI — no configuration needed on your end. Nium handles validation, submission, and audit logging.

Other benefits of using RFI Forms include:

  • No frontend build required — Nium hosts and maintains the form.
  • Supports both embedded (in-portal) and standalone (new tab) integration modes.
  • Works for onboarding RFIs and transaction monitoring RFIs from a single integration.
  • Secure, time-bound session access — each session is configurable with an expiry and inactivity timeout.
  • Full audit trail for every RFI raised and resolved, maintained by Nium.

Responsibilities

FeatureClientNium
RFI callback listenerX
Session creationX
Link delivery to customer or ops teamX
Form experience and field displayX
Input validation and document handlingX
Data submission to Nium systemsX
Case and transaction status updatesX

RFI types

RFI Forms support two types of RFIs. Set the featureType field in the session request to match the RFI type.

RFI typefeatureType valueWhen it's raisedAdditional fields required
Onboarding RFIcustomer_onboarding_rfiDuring KYC/KYB review of a customer onboarding applicationNone
Transaction RFItransaction_rfiDuring monitoring of a specific transactionwalletHashId, authCode

For transaction RFIs, authCode is the systemReferenceNumber returned in the response to the Transfer Money, Fund Wallet v2, or Wallet to Wallet Transfer requests.

Branding

You can add your organization's logo to the RFI Form for a consistent customer experience.

Your logo appears at the top left corner of the form, replacing the Nium logo shown in the default view. Provide your logo to your Nium account manager during initial setup.

Prerequisites

Before integrating RFI Forms:

  • Your client account must be onboarded in Nium. You need your clientHashId and API key.
  • Customer records must exist with valid customerHashId values.
  • For transaction RFIs, the relevant walletHashId and transaction systemReferenceNumber must be available.
  • Hosted Components must be enabled for your account. Contact your Nium account manager or Nium Support to enable and configure this feature.

Create an RFI Form session

Step 1: Request access

Contact your Nium account manager or Nium Support to enable RFI Forms for your account. During setup, provide your logo — it appears at the top left corner of the form.

Step 2: Set up callbacks

Integrate with Nium's callbacks to receive notifications when RFIs are raised. Use these callbacks to:

  • Alert customers or your operations team immediately.
  • Display RFI status and links in your portal, app, or CRM.

Step 3: Create a session

When a customer or ops team member needs to respond to an RFI, use the Create a Session request to generate a sessionId.

Request example — onboarding RFI

curl --location --globoff 'https://gateway.nium.com/api/v1/client/{clientHashId}/sessions' \
--header 'Content-Type: application/json' \
--header 'x-api-key: {x-api-key}' \
--data '{
"featureType": "customer_onboarding_rfi",
"customerHashId": "{customerHashId}",
"integrationType": "standalone",
"expiry": "2026-12-31T23:59:59+00:00",
"rollingDurationMinutes": 30
}'

Request example — transaction RFI

curl --location --globoff 'https://gateway.nium.com/api/v1/client/{clientHashId}/sessions' \
--header 'Content-Type: application/json' \
--header 'x-api-key: {x-api-key}' \
--data '{
"featureType": "transaction_rfi",
"customerHashId": "{customerHashId}",
"walletHashId": "{walletHashId}",
"authCode": "{systemReferenceNumber}",
"integrationType": "standalone",
"expiry": "2026-12-31T23:59:59+00:00",
"rollingDurationMinutes": 30
}'
FieldTypeRequiredDescription
featureTypeStringRequiredcustomer_onboarding_rfi for onboarding RFIs. transaction_rfi for transaction monitoring RFIs.
customerHashIdStringRequiredUnique identifier of the customer the RFI is raised against.
walletHashIdStringConditionalRequired when featureType is transaction_rfi. The wallet linked to the transaction.
authCodeStringConditionalRequired when featureType is transaction_rfi. The systemReferenceNumber of the transaction.
integrationTypeStringRequiredembedded to display the form inside your portal. standalone to open in a new browser tab.
expiryStringOptionalDate and time the session expires. Format: yyyy-MM-dd'T'HH:mm:ssXXX. Defaults to 1 hour from session creation.
rollingDurationMinutesIntegerOptionalMinutes of inactivity before the session expires. Minimum: 1. Defaults to 30 minutes.
domainStringConditionalRequired when integrationType is embedded. The domain where the form is embedded — must match the session domain.

Successful response

{
"sessionId": "e40e8072-7654-474b-ae31-c21a39c206ec",
"featureType": "customer_onboarding_rfi",
"metadata": {
"customerHashId": "string",
"authCode": "string",
"integrationType": "standalone",
"walletHashId": "string",
"clientHashId": "string"
},
"status": "active"
}
FieldDescription
sessionIdUnique session identifier. Pass this to the hosted form URL.
featureTypeThe type of RFI form generated.
metadataSession context including customer and transaction identifiers.
statusStatus of the session. active means the session is ready to use.

Step 4: Open the form

Pass the sessionId to the static RFI Form URL:

  • Production: https://nformify.nium.com/rfi?sessionId=
  • Sandbox: https://nformify-sandbox.nium.com/rfi?sessionId=

The form loads automatically with the relevant RFI fields — no additional requests or setup required. Surface this link by:

  • Embedding the form in your customer portal or internal ops dashboard (integrationType: "embedded")
  • Sending the link directly to the customer via email or in-app notification (integrationType: "standalone")
  • Sharing the link through your back-office tooling for operations-led RFI workflows

Security

  • Time-bound sessions: Each session has a configurable expiry and inactivity timeout. Generate a new session if the link expires before the customer or ops team uses it.
  • Use HTTPS: All requests to Nium APIs must use HTTPS in production environments.
  • Authenticate before sharing: For customer-facing RFI links, ensure customers are authenticated in your portal before the session link is generated or surfaced.
  • Audit trail: All RFI submissions are logged and stored by Nium for regulatory compliance — no action required from your team.

Next steps

After a customer submits an RFI Form, Nium processes the submission and updates the relevant case or transaction status automatically. You can: