Home

Instant Network Transfers

Overview

Highnote Instant Network Transfer (INT) is a specific payment rail within Highnote's instant payments suite that enables your cardholders to make near real-time domestic money movements between cards, both personal and business.

The INT payment rail facilitates card-to-card transfers from Highnote-issued payment cards to eligible external debit and prepaid cards, operating through Visa Direct and Mastercard Send (a Mastercard Move platform).

Instant Network Transfers are implemented through Highnote's Unified Funds Transfer (UFT) framework, using the UnifiedFundsTransfer API object to handle the technical processing of these card-to-card transactions.

Notification events

The Highnote platform sends notification events for the Unified Funds Transfer and its associated Instant Network Transfer. See the Events Reference (scroll to the bottom of the page if not taken there).

Creating an instant payment

Creating an instant payment requires the following steps:

Step 1. Generate single-use Payment Method Token

The single-use PaymentMethodToken is valid for 3 hours.

Use the Highnote Secure Inputs SDK or Checkout SDK to tokenize a customer's card data as a single-use PaymentMethodToken.

Integrate either SDK in your application on the page where the customer enters their card and saves their payment method. When initializing the SDK, configure the submitButton text to be "Submit" instead of "Pay":

After the customer enters their credit card and clicks "Submit", you will get a callback to onTokenizeSuccess. This callback is a PaymentMethodToken representing the customer's card data.

spacer

Summary of the SDK token flow

  1. Fetch client token with generatePaymentMethodTokenizationClientToken: Your server gets a client token from Highnote for authentication.
  2. Initialize SDK: You pass the client token to renderCheckout() (with other configurations).
  3. Customer presses "Submit" button: This triggers an onTokenizeSuccess callback whereby the SDK tokenizes the card data and returns a PaymentMethodToken.
  4. Pass PaymentMethodToken to your server: Your server can securely authenticate with Highnote's API to complete the payment process.

Step 2. Associate Payment Method Token with customer ID

You only need to create a reusable payment method token once per customer.

In this step, you associate the single-use PaymentMethodToken from Step 1 with the customer's ID, thereby making it a reusable token.

Use the mutation createReusablePaymentMethodToken and set paymentMethodTokenId to the single-use PaymentMethodToken (e.g., "tkpmc_single_use_1"). The response returns a checkoutToken (e.g., "tkpmc_1").

Note: The reusable PaymentMethodToken is only effective if capabilities status returns as ENABLED. See Capabilities status below for details.

Verification checks

With the mutation createReusablePaymentMethodToken (Step 2), the Highnote platform submits a verification request to the issuer through the card network.

This verification includes checks for:

  • Account Name Inquiry (ANI)
  • Address Verification System (AVS)
  • Card Verification Value (CVV)

The combined results determine the capabilities status of the payment card. The verification must be approved to achieve ENABLED or REQUIRES_REVIEW status.

Capabilities status

The createReusablePaymentMethodToken mutation triggers the capability status enum which has 3 values:

StatusIssuer VerificationName Matching
ENABLEDApprovedFull name match (first AND last), OR ANI not performed
REQUIRES_REVIEWApprovedPartial name match (first OR last)
DISABLEDApprovedNo name match (neither first NOR last)
DISABLEDDeclinedAny result

spacer

Simulating capabilities status

You can simulate these values with the following card data. Currently, only Visa cards support simulating capabilities.

Card NetworkPANCVV/CVCExpirationNameAddress
Visa4000 0000 0000 0010111Any future dateJohn Doe1234 Visa St, Visa, CA 12345

Polling capabilities status changes

To detect changes to the capabilities status after initial tokenization (e.g., from REQUIRES_REVIEWENABLED), poll for the Customer object with the list of reusable payment methods (each will have a list of capabilities and their latest status). You can remove the checkoutToken object from the query.

The following query demonstrates polling on the Customer object:

FindCustomer

Step 3. Get single-use Scoped Payment Method Token

Ensure that your reusable payment methods token has capabilities status = ENABLED.

You can get a unique single-use ScopedPaymentMethodToken by querying the Customer object with the reusable payment method token. Set token to the reusable PaymentMethodToken (e.g., "tkpmc_1").

Step 4. Create Unified Funds Transfer Quote for fees

Quotes are valid for 30 minutes. Once a quote has expired, you must generate a new one.

Before you can initiate a card-to-card Unified Funds Transfer, you must first request a quote for the fees to present to the user. All fees come out of the subscriber's financial account.

To create a quote for fees, set the following inputs:

  • Set source.id as the ID of a Highnote FinancialAccount owned by user.
  • Set source.amount as the amount to send.
  • Set destination.id as the ScopedPaymentMethodToken.

Each UnifiedFundsTransferQuote has an expiresAt value indicating how long the quote is valid. Reference that timestamp to ensure the quote is still valid when offering it to the user.

You are now ready to use the following mutation to create a UnifiedFundsTransferQuote in a quote state. You may get back multiple quotes depending on the fee and time estimate.

Step 5. Initiate Unified Funds Transfer

Once the user has chosen a quote, you can initiate the transfer. Use a UnifiedFundsTransferQuote.quoteIdentifier that has not expired to start the transfer.

Query existing Unified Funds Transfer

To look up an existing Instant Network Transfer, use the following query:

Provide Feedback

Was this content helpful?