Skip to main content

Understanding the Virtual Card CSV columns

CSV columns, virtual card CSV fields, merchant slug, mcc code, spend limit CSV, funding source CSV, cash balance ID, brand locked, lock date, share card CSV, role level

Written by Faith Grady

This article covers what each column in the Virtual Card CSV template does and what values it accepts.

To create and upload your file, see Creating multiple Virtual Cards with a CSV file.

Which columns are required?

Four, out of twenty:

Column

What it is

Example

street_address_line_1

The billing address on the card, used for address verification at the merchant

123 Main St

city

The city on the card

Los Angeles

state

2-letter U.S. state code, in capitals

CA

postal_code

ZIP code, 5-digit or ZIP+4

90001 or 10001-1234

If any of these are empty, the import is blocked and no cards are created.

Every other column is optional — but optional doesn't mean nothing happens. Most columns have a default that applies when you leave them blank, and for the true/false columns you have to actively enter false to turn something off. The defaults are listed against every column below.

Are the values case-sensitive?

Mostly not, with one important exception:

  • state must be in capitals. tx passes the preview and is then rejected when you submit — this is the most common way a file gets through review and still fails.

  • limit_type accepts lowercase, so monthly works as well as MONTHLY.

  • True/false columns accept any capitalisation, but only the words true and false. yes, no, 1, 0, Y, and N aren't accepted.

Which columns should I use to get what I want?

Goal

Columns to use

Cap how much the card can spend

limit_type + limit_amount

Restrict the card to one merchant

brand_locked = true + merchant_slug

Restrict the card to a category of merchants

mcc_code

Fund the card from a specific Spend Account

user_cash_balance_id

Fund the card from a linked bank account

bank_account_id

Fund the card from a bank account plus your Fluz balance

bank_account_id + use_default_cash_balance = true

Stop the card using your rewards balance

use_rewards = false

Stop the card using your prepayment balance

use_prepayment = false

Auto-lock the card on a certain date

lock_date

Make the card single-use

lock_card_next_use = true

Share the card with a teammate

email_address (+ role_level)

Give the card a name you'll recognize

card_nickname

How do I set a spending limit?

Use limit_type and limit_amount together — fill in both or neither. One without the other blocks the import.

limit_type accepts DAILY, WEEKLY, MONTHLY, ANNUAL, or LIFETIME. limit_amount is a plain positive number in dollars, with at most two decimal places — 100 or 99.99. No currency symbols, no thousands separators. Keep the figure under 13 characters.

For example, limit_type = MONTHLY and limit_amount = 500 creates a card that can spend up to $500 per month.

If you leave both blank, the card is created with a lifetime limit of $720,000 — the maximum the card issuer allows, so in practice there's no spending cap.

How do I restrict a card to one merchant or one category?

Use one or the other — not both.

To restrict to one merchant, set brand_locked = true and merchant_slug. These two always travel together: a brand-locked row with no merchant is blocked, and a merchant on a row that isn't brand-locked is blocked too.

To restrict to a category, use mcc_code on its own. It doesn't need brand_locked.

Examples:

  • brand_locked = true + merchant_slug = saks-fifth-avenue → the card can only be used at Saks Fifth Avenue

  • mcc_code = 5411 → the card can only be used at grocery stores

Don't set both merchant_slug and mcc_code on the same card. Pick the restriction you want and leave the other column empty.

Leave all three blank and the card has no merchant restriction.

Where do I find a merchant slug?

  1. On the Fluz website, go to Stores.

  2. Search for the merchant you want.

  3. Select the merchant to open its store page.

  4. Look at the URL — it will look like https://fluz.app/store/saks-fifth-avenue.

  5. The value after /store/ is the merchant slug.

Copy it exactly: lowercase, hyphenated, no spaces. Saks Fifth Avenue won't work — saks-fifth-avenue will. Don't include /store/.

Fluz tip: Some merchants have similar names. Open the store page and confirm it's the right one before copying the slug.

Where do I find an MCC code?

MCC (Merchant Category Code) is an industry standard, not specific to Fluz. Find the code for a category using any public MCC lookup tool — 5411 is grocery stores, for example. It has to be exactly four digits.

If your spreadsheet drops a leading zero, format the column as text before saving.

How does card funding work?

There are two funding sources: your Fluz balance and a linked bank account.

Your Fluz balance funds the card when you leave bank_account_id blank, when you give a user_cash_balance_id, or when you set use_default_cash_balance = true. Otherwise the named bank account funds it.

Column

What it does

If you leave it blank

user_cash_balance_id

Funds the card from a specific Spend Account

Not set

bank_account_id

Funds the card from a linked bank account

The card is funded from your Fluz balance

use_default_cash_balance

Spends your Fluz balance alongside the bank account. Requires bank_account_id on the same row.

false — your Fluz balance isn't added

use_rewards

Spends available rewards toward the card

true — rewards are used. Enter false to stop that.

use_prepayment

Uses your prepayment balance toward the card

true — prepayment is used. Enter false to stop that.

use_rewards and use_prepayment are on by default. If you don't want a card drawing on those balances, you have to put false in the cell — leaving it empty isn't the same thing.

Neither user_cash_balance_id nor bank_account_id is checked for format during the import, so a wrong value won't be caught at review. The row fails later, while the card is being created.

Where do I find my Spend Account ID (user_cash_balance_id)?

  1. On the Fluz website, go to Manage Money.

  2. Scroll down to Spend account overview.

  3. Select the spend account you want to use — not your Rewards or Prepayment balance.

  4. The URL will update to something like https://fluz.app/manage-money/spend-accounts/abc123?tab=OVERVIEW

  5. The value between /spend-accounts/ and ?tab= is your ID — here, abc123.

Paste it into user_cash_balance_id without /spend-accounts/ or ?tab=OVERVIEW.

Each spend account has its own ID. If you need a new one, use Create spend account, then open it to get its ID.

Where do I find a bank account ID (bank_account_id)?

Bank account IDs aren't shown in your Fluz account today. Contact support and we'll send you the bank_account_id for each of your linked accounts. Paste the value exactly as we provide it.

Leave the column blank and your cards are funded from your Fluz balance instead.

How do I make a card stop working after a date, or after one use?

  • lock_date — the date the card automatically locks, written YYYY-MM-DD. It has to be a real calendar date in the future. Leave it blank and the card doesn't auto-lock.

  • lock_card_next_use — enter true to make the card single-use, so it locks after the next transaction. Defaults to false.

Spreadsheets reformat dates silently, so set the column to text if 2026-12-31 keeps turning into something else.

You can unlock a card from the card details page. See Freezing/unfreezing your Virtual Card.

Can I share the cards with my team as I create them?

Yes, if your template includes the sharing columns.

  • email_address — the teammate to share the card with. They have to already be on your account, either active or invited. A stranger's email fails the import.

  • role_level — what they can do with the card: VIEWER, SPENDER, MANAGER, or ADMIN. Leave it blank and it defaults to SPENDER.

role_level needs email_address — a role with nobody to give it to blocks the import. An email with no role is fine.

role_level has nothing to do with who can run an import. It's the access level for the teammate receiving that card.

Can I name my cards?

Yes. Use card_nickname, up to 50 characters.

Nicknames have to be unique within your file. Capitalisation and surrounding spaces are ignored when comparing, so Travel Card and travel card count as the same. Every row sharing a nickname is flagged, not just the later ones.

A nickname that already exists on your account doesn't block the import — that row is skipped during creation instead, so no duplicate card is made.

Leave it blank and the card is created with no nickname.

Can I add a second address line?

Yes. Use street_address_line_2 for an apartment, suite, or floor, like Apt 4B.

Full column reference

#

Column

Required?

Accepted values

What happens if you leave it blank

1

card_nickname

Optional

Up to 50 characters, unique within the file

No nickname

2

street_address_line_1

Required

Any street address

Import blocked

3

street_address_line_2

Optional

Apartment, suite, floor

Omitted from the address

4

city

Required

Any city name

Import blocked

5

state

Required

2-letter code, in capitals

Import blocked

6

postal_code

Required

5-digit ZIP or ZIP+4

Import blocked

7

limit_type

Pairs with limit_amount

DAILY, WEEKLY, MONTHLY, ANNUAL, LIFETIME

LIFETIME

8

limit_amount

Pairs with limit_type

Positive number, max 2 decimals, under 13 characters

$720,000

9

brand_locked

Pairs with merchant_slug

true, false

false — no brand lock

10

merchant_slug

Pairs with brand_locked

Lowercase-hyphenated slug, e.g. saks-fifth-avenue

No merchant lock

11

mcc_code

Optional, works alone

4-digit MCC code

No category restriction

12

use_rewards

Optional

true, false

true — rewards are used

13

use_prepayment

Optional

true, false

true — prepayment is used

14

user_cash_balance_id

Optional

Spend Account ID

Not set

15

bank_account_id

Optional

Bank account ID from support

Card funded from your Fluz balance

16

use_default_cash_balance

Requires bank_account_id

true, false

false

17

lock_date

Optional

Future date, YYYY-MM-DD

No auto-lock date

18

lock_card_next_use

Optional

true, false

false — the card can be used more than once

19

email_address

Optional

Email of a teammate on your account

The card isn't shared

20

role_level

Requires email_address

VIEWER, SPENDER, MANAGER, ADMIN

SPENDER

Columns 19 and 20 appear only in the sharing version of the template.

Which columns depend on each other?

The following columns depend on each other.

  1. limit_type and limit_amount — fill in both or neither.

  2. brand_locked = true and merchant_slug — set both or neither.

  3. use_default_cash_balance needs bank_account_id.

  4. role_level needs email_address.

  5. mcc_code stands alone — but don't combine it with merchant_slug.

Note: an invalid combination of these columns blocks the whole import if you get it wrong.

Related articles

More questions? Feel free to call our Customer Hotline at +1 888 960 0526. You can also use the Chat option at the bottom of your screen, or if you're on the app, go to Help and chat with us.

Fluz is a financial technology company, not a bank. Banking services provided by partner banks, members FDIC.

Did this answer your question?