Narmi Application Framework (NAF)

Video: Unlocking the Narmi Application Framework for Faster Innovation

The Narmi Application Framework (NAF) is a developer-facing application layer that gives your financial institution a method for building integrations. With the NAF, you can embed applications directly within the Narmi Online Banking experience. These embedded applications are developed, hosted, and maintained by a financial institution, a development agency, and/or a third party vendor. 

Note: the NAF works with our Online Banking product only, not our Digital Account Opening product or our Admin Platform.

NAF Application Layer

The NAF application layer allows you to earn revenue while delivering a seamless third party experience for your Online Banking users. By employing the Narmi Design System, you can provide a user interface that is visually consistent with the rest of the Narmi platform. The application layer has access to minimal user data—the Narmi user ID and core banking system user ID (or for business users, the Narmi organization/business ID and the core banking system organization/business ID).

This is an example of an embedded app using the NAF application layer only. This example goes to an example website in an iFrame, but your integration could open any site you specify directly.

NAF Application Layer + APIs

You can choose to integrate the Application Layer only, or provide a more robust experience by implementing Narmi APIs along with the Application Layer. Use Narmi APIs to create, read, update, or delete objects in the Narmi system. By leveraging our APIs, you can access more user data—accounts, transactions, contact information, etc. The APIs are designed, hosted, and maintained by Narmi.

For example, using the Application Layer + API, you can embed a third party home insurance application to earn revenue when your users sign up for home insurance. The insurance app opens as an iframe within the Online Banking web app or in a webview in the mobile app. The user's enrollment information is automatically pre-populated, saving them time.

To get started with the NAF, go to our Quick Start Guide.

Working with the NAF Iframe

Use v4  of iframe-resizer to communicate with the parent frame.

Resizing and Scrolling (Web Only)

You may control the size, scrolling, and other properties of the iframe by using the iframe resizer API.

Scrollbars (Web Only)

You may enable or disable the scrolling of both the application frame and the parent frame. Using the sendMessage  method of iframe-resizer, you can send messages to the parent frame to trigger changes to scrolling behavior:

if ('parentIFrame' in window) {     window.parentIFrame.sendMessage({ data }); }<br>

Message Data (Web Only)

  • { allowIframeScroll: true }  Enable scrolling in the application frame
  • { allowIframeScroll: false }  Disable scrolling in the application frame
  • { allowParentScroll: true }  Enable scrolling in the parent frame
  • { allowParentScroll: false }  Disable scrolling in the parent frame

Localization Support

If your application supports multiple languages, you may listen to messages from the parent frame to select a language.

Use the onMessage  event handler of iframe-resizer to detect the message with this data: { lang: '<ISO locale code>' } .This message is initially sent with the currently set language, and will fire every time the user changes languages.For example, if the user changes their language to Simplified Chinese, your application frame would receive a message with the data { lang: 'zh-Hans' } .

Session Inactivity

You may use the onMessage  event handler of iframe-resizer to list for session heartbeat messages.These messages are posted to your application frame at an interval of 1 second. These messages are sent with the data { isSessionActive: true } .

If the user becomes inactive, the heartbeat messages will cease. If the user extends their session, the heartbeat messages will resume.

Back to Get Started

Did this answer your question? Thanks for the feedback There was a problem submitting your feedback. Please try again later.

Still need help? Contact Us Contact Us