Funding Sources Overview

A funding source (also called a payment method) is how users pay for transactions on Fluz — gift card purchases, virtual card top-ups, wallet deposits, and more.

Before any transaction can be completed, a user must have at least one funding source on file. A bank card must always be added as a backup payment method, even when the user intends to pay with their bank account or another method.


Supported Funding Sources

Fluz supports four funding source types:

TypeAdd via APIAdd via App / WebFeesBest Cashback
Bank Account (ACH)None✓ Full rate
Bank Card (debit/credit/prepaid)Debit: –1% · Credit/PayPal: –3%Debit > Credit
PayPal / Apple Pay / Google Pay–3%Lower
Fluz BalanceNoneStandard
💡

Bank accounts carry no processing fees and earn the highest cashback rate. Debit cards are the next best option. Credit cards, PayPal, Apple Pay, and Google Pay all carry a processing fee that reduces the effective cashback rate.


Cashback Rate by Funding Source

Using a 4% merchant cashback rate as an example on a $200 gift card purchase:

ACH / Bank Account    → 4.0%  →  $8.00
Debit Card            → 3.0%  →  $6.00  (–1% processing fee)
Credit Card           → 1.0%  →  $2.00  (–3% processing fee)
PayPal / Apple Pay    → 1.0%  →  $2.00  (–3% processing fee)

What Can Be Done via API vs. App / Web

flowchart LR
    subgraph API["🔌 API"]
        A1[Add Bank Card\naddBankCard mutation]
        A2[Update Bank Card\nnickname / MCC]
        A3[Delete Bank Card]
        A4[Read all funding sources\ngetWallet query]
    end

    subgraph Web["🌐 App / Web Portal Only"]
        W1[Add Bank Account\nvia Plaid Link]
        W2[Remove Bank Account]
        W3[Add PayPal]
        W4[Add Apple Pay / Google Pay]
        W5[Set primary / preferred /\nbackup payment method]
    end
🚧

Bank cards are the only funding source addable via the API. All other funding source management — bank accounts, PayPal, Apple Pay, Google Pay, and payment method preferences — must be done through the Fluz app or web portal.


Bank Account

Bank accounts are linked via Plaid, and settle via ACH. They carry no fees and earn the full merchant cashback rate.

Added via: App or web portal only.

Adding a bank account on the Fluz app

To add: Menu → Funding Sources → Add New → Bank Account → follow Plaid prompts.

💡

All accounts under a linked bank login are connected, including savings accounts. Users should remove savings accounts after linking — most banks do not permit payments from savings.


Bank Card

Bank cards (debit, credit, or prepaid) can be added via the API or through the app and web portal.

Added via: addBankCard mutation (API) or app / web portal.

Adding a bank card on the Fluz app

To add on web: Menu → Accounts and Cards → Bank Cards → Add New → enter card details and billing address.

Bank cards support the following operations through the API:

  • AddaddBankCard (requires MANAGE_PAYMENT scope)
  • Update nicknameupdateBankCardNickname
  • Update preferred MCCupdateBankCardPreferredMerchantCategoryCode
  • DeletedeleteBankCard (sets status to INACTIVE)
❗️

A bank card must be added as a backup payment method before any transaction can complete. When a user pays via ACH, a temporary hold may be placed on the backup card for the transaction amount. If the ACH payment clears, the hold releases within 1–7 business days. If it does not clear, the backup card is charged instead.


PayPal / Apple Pay / Google Pay

Digital wallets can be added through the app or web portal only. They carry a –3% processing fee applied to the effective cashback rate — the same as credit cards.

Added via: App or web portal only. Not available via API.

💡

Some merchants restrict which payment methods they accept. A merchant may accept ACH and debit only, and block credit cards and digital wallets. This is reflected in the blockedPaymentTypes field returned by getWallet.


Reading Funding Sources via API

The getWallet query returns all funding sources linked to a user's account, their current statuses, and any blocked payment types.

query getWallet {
  getWallet {
    bankCards { bankCardId cardType lastFourDigits cardStatus }
    bankAccounts { bankAccountId type status lastFour }
    paypalAccounts { paypalVaultId status email }
    blockedPaymentTypes
    balances {
      rewardsBalance { availableBalance }
      cashBalance { availableBalance }
    }
  }
}

See View Funding Sources for the full field reference.