Home / Issuing / Quick Start Templates

Consumer Prepaid


Consumer prepaid card products allow consumers to manage personal expenses, shop both in-store and online, and withdraw cash from ATMs. Consumer prepaid card products have the following features:

  • Debit card capabilities
  • A predefined amount of funds
  • Funded from a designated bank account

Since these cards contain a specific amount of money, they require funding through a bank account. When additional funds are needed, a transfer is initiated to the account holder's financial account in Highnote, making the funds ready for use.

Consumer prepaid cards can be virtual cards available on your app or website; physical cards mailed to the account holder, or both.


Create a Consumer Prepaid Card Product

In the Test Environment, you can create a consumer prepaid card product from the Highnote dashboard or using the following CreateCardProduct mutation:

Create an Account Holder

Consumer cards are used by US Person Account Holders. You can create an account holder from the Highnote dashboard or with the createUSPersonAccountHolder mutation:

Open an Application

Once you have created an account holder, you can open an application to onboard them to your card product.

Opening an application triggers the Know Your Customer (KYC) or Know Your Business (KYB) identity verification processes required for your card product. Identity verification must pass to onboard the account holder. To create the application, you must have the cardProductId and primaryAuthorizedPersonId.

Upon opening an application, it will enter a PENDING state. This indicates that the application is under review and the necessary KYC or KYB checks are being conducted for the account holder. Note that you can have only one application open for a specific card product and account holder at any given time.

Capturing Consent

Prior to submitting an application, the account holder must review and accept the mandatory terms and conditions, along with any relevant disclosures for the card product (for example, the Cardholder Agreement). Consent from the account holder is required before opening an application and must include the following elements:

  • Who is consenting: primaryAuthorizedPerson
  • What they are consenting to: cardProductID
  • When they consented: consentTimestamp

To create an account holder application, use the following mutation:

Issue a Product Funding Financial Account

Product funding accounts are used to fund a card product.

To issue a product funding financial account, use the following mutation:

Display Account and Routing Number

Financial accounts with the DIRECT_DEPOSIT feature have an associated account and routing number used for funds movements originating outside of Highnote.

To display the account and routing number, you can fetch them from the API by generating a Client Token and using that token to view the restricted details.


Use the following query to view direct deposit information:

Simulate Adding Funds with Non-Originated ACH

Using a financialAccountId, you can simulate a non-originated ACH transfer from an external bank account into a Highnote financial account. These transfers do not require you to connect an external bank account, as they originate from the external bank, not the account holder's financial account.

To simulate a non-originated ACH transfer in the Test Environment, use the following mutation:

Issue Financial Account

Financial accounts hold the balance for payment cards. To create a financial account, pass the id of the account holder's approved application.

Financial accounts have an externalId variable field that allows you to tie the account to an entity in your system. If you do not pass in an externalId, Highnote will generate one.

Issue a Payment Card

After creating and funding a financial account, you can issue a payment card to the account holder. All payment cards start as virtual cards with the option of ordering them as physical cards.

For more information on issuing cards, see the Issue Cards guide.

Create Physical Card Order

You may only submit one order for a given payment card. If the order is canceled or fails, you may try again for the same card. However, if an order is successful and you need another physical card, you will need to issue a new payment card.

Once you have issued a payment card, you can create an order for a physical card. When ordering a physical card, you can ship to the account holder's address on file or specify a different shipping address.

Physical card orders require:

  • Card personalization details
  • Shipping address
  • Requested ship date
  • Shipping method and signature requirements

You can create individual physical card orders using the following mutation. To create a group card order, see Print Cards in Bulk.

Load Funds from Product Funding Account to a Financial Account

To fund an account holder's financial account, you can transfer funds from your product funding account. For input variables, use the following IDs:

  • toFinancialAccountId: Account holder's payment card financial account ID
  • fromFinancialAccountId: Product funding account ID

Use the following mutation to initiate a transfer from your product funding account:

Unload Funds from a Financial Account to Product Funding Account

To unload funds from a financial account, you can transfer funds to your product funding account balance using the following mutation. For input variables, use the following IDs:

  • toFinancialAccountId: Product funding account ID
  • fromFinancialAccountId: Account holder's payment card financial account ID

Display Payment Card Data

Selecting the number or cvv fields requires that you are PCI compliant.

Highnote recommends using the Card Viewer SDK to securely display payment card data and and reduce PCI burden.

To display an account holder's primary account number (PAN) and security code (CVV), you can use the API to fetch them using the following query:

Expand your Integration

Once you've completed the basics of setting up your card product, you can expand and test your integration further:

Provide Feedback

Was this content helpful?