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 |
| The billing address on the card, used for address verification at the merchant |
|
| The city on the card |
|
| 2-letter U.S. state code, in capitals |
|
| ZIP code, 5-digit or ZIP+4 |
|
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:
statemust be in capitals.txpasses the preview and is then rejected when you submit — this is the most common way a file gets through review and still fails.limit_typeaccepts lowercase, somonthlyworks as well asMONTHLY.True/false columns accept any capitalisation, but only the words
trueandfalse.yes,no,1,0,Y, andNaren't accepted.
Which columns should I use to get what I want?
Goal | Columns to use |
Cap how much the card can spend |
|
Restrict the card to one merchant |
|
Restrict the card to a category of merchants |
|
Fund the card from a specific Spend Account |
|
Fund the card from a linked bank account |
|
Fund the card from a bank account plus your Fluz balance |
|
Stop the card using your rewards balance |
|
Stop the card using your prepayment balance |
|
Auto-lock the card on a certain date |
|
Make the card single-use |
|
Share the card with a teammate |
|
Give the card a name you'll recognize |
|
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 Avenuemcc_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?
On the Fluz website, go to Stores.
Search for the merchant you want.
Select the merchant to open its store page.
Look at the URL — it will look like
https://fluz.app/store/saks-fifth-avenue.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 |
| Funds the card from a specific Spend Account | Not set |
| Funds the card from a linked bank account | The card is funded from your Fluz balance |
| Spends your Fluz balance alongside the bank account. Requires |
|
| Spends available rewards toward the card |
|
| Uses your prepayment balance toward the card |
|
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)?
On the Fluz website, go to Manage Money.
Scroll down to Spend account overview.
Select the spend account you want to use — not your Rewards or Prepayment balance.
The URL will update to something like
https://fluz.app/manage-money/spend-accounts/abc123?tab=OVERVIEWThe 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, writtenYYYY-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— entertrueto make the card single-use, so it locks after the next transaction. Defaults tofalse.
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, orADMIN. Leave it blank and it defaults toSPENDER.
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 |
| Optional | Up to 50 characters, unique within the file | No nickname |
2 |
| Required | Any street address | Import blocked |
3 |
| Optional | Apartment, suite, floor | Omitted from the address |
4 |
| Required | Any city name | Import blocked |
5 |
| Required | 2-letter code, in capitals | Import blocked |
6 |
| Required | 5-digit ZIP or ZIP+4 | Import blocked |
7 |
| Pairs with |
|
|
8 |
| Pairs with | Positive number, max 2 decimals, under 13 characters | $720,000 |
9 |
| Pairs with |
|
|
10 |
| Pairs with | Lowercase-hyphenated slug, e.g. | No merchant lock |
11 |
| Optional, works alone | 4-digit MCC code | No category restriction |
12 |
| Optional |
|
|
13 |
| Optional |
|
|
14 |
| Optional | Spend Account ID | Not set |
15 |
| Optional | Bank account ID from support | Card funded from your Fluz balance |
16 |
| Requires |
|
|
17 |
| Optional | Future date, | No auto-lock date |
18 |
| Optional |
|
|
19 |
| Optional | Email of a teammate on your account | The card isn't shared |
20 |
| Requires |
|
|
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.
limit_typeandlimit_amount— fill in both or neither.brand_locked = trueandmerchant_slug— set both or neither.use_default_cash_balanceneedsbank_account_id.role_levelneedsemail_address.mcc_codestands alone — but don't combine it withmerchant_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.
