Bank transfer integration
Overview
Bank transfer payouts allow vendors to register their banking details directly in Garnet. The marketplace operator then sends the transfers from their own bank: after each payout, Garnet emails them the list of transfers to send, with every vendor's bank details in an attached CSV.

Unlike Stripe or PayPal, bank transfer does not automate the payment — it provides a structured way for vendors to submit their banking information per region (SEPA, ACH, SWIFT, etc.).
Setup
- Go to
Admin Panel > Finance > Payout methods > Bank transfer - Toggle
Enable bank transfer payout - Select the bank regions you want to make available to your vendors (e.g. Eurozone SEPA, United States, International)
- Click
Save
Vendor experience
Once enabled, vendors will see Bank transfer as a payout method option in their Settings > Payouts page.

They will be asked to:
- Select their country/region
- Choose a transfer method (if multiple are available for that region)
- Fill in their banking details (IBAN, account number, routing number, etc.)
Processing payouts
The marketplace admin pays vendors from Orders > Payouts, or lets automated payouts do it on schedule. For each vendor paid by bank transfer, Garnet records the payout as paid right away and gives it a reference, such as Payout 008a3761. The vendor sees that reference on their payout.
The bank transfers email
Right after the payout, Garnet emails the marketplace a Bank transfers to send message:
- a table with each transfer: the vendor, the amount, the reference and the method (e.g.
ACH (US)), - the total to send,
- a CSV file with every vendor's bank details, named
bank-transfers-YYYY-MM-DD.csv.
This email is always sent, even when other notifications are turned off or sent through Klaviyo, as it is the only place the transfers are listed. Send each transfer from your bank with its reference, so the vendor can match it to their payout.
The CSV file
The CSV holds one row per transfer, and a column per piece of information:
| Column | Content |
|---|---|
Vendor | The vendor's name |
Amount | The amount to send, with two decimals and no currency symbol (e.g. 90.32) |
Currency | The marketplace's currency (e.g. EUR) |
Reference | The reference to write on the transfer (e.g. Payout 008a3761) |
Orders | The orders paid by this transfer, separated by spaces (e.g. #1041 #1045) |
Region | The region of the vendor's bank details (e.g. US, EU) |
Method | The transfer method the vendor chose (e.g. ACH, SEPA) |
| Bank details | One column per field the vendor filled in, such as Account holder name, Iban or Routing number |
The bank details columns depend on each vendor's region and method: a SEPA vendor has an Iban column, an ACH vendor a Routing number and an Account number. When vendors use different methods, the file holds every column, and a vendor's row is empty in the columns their method does not use.
csv
Vendor,Amount,Currency,Reference,Orders,Region,Method,Account holder name,Account type,Routing number,Account number
Fruit Emporium,90.32,EUR,Payout 008a3761,#1041 #1045,US,ACH,Fruit Emporium LLC,checking,021000021,123456789Keep the CSV private: it holds your vendors' bank details in clear.
Security
Vendor banking details contain sensitive information (account numbers, IBAN, routing numbers, etc.). Garnet takes the following measures to protect this data:
- Encryption at rest — All sensitive banking fields are encrypted using a unique secret key per marketplace. This ensures that even in the event of a data breach, banking details cannot be read without the marketplace's encryption key.
- Field-level sensitivity — Only fields marked as sensitive (account numbers, routing numbers, IBAN, etc.) are encrypted. Non-sensitive fields like account holder name and bank name are stored in plain text for display purposes.
- Access control — Banking details are only visible to the vendor who submitted them and to marketplace admins when processing payouts. They only leave Garnet in the CSV attached to the bank transfers email, sent to the marketplace's email address.
- No historical data — For compliance, Garnet does not store past banking details. When a vendor updates their banking information, the previous record is overwritten. This minimizes exposure in case of a data breach.
- Regulatory compliance — Per-marketplace encryption keys and the absence of historical banking data help comply with local data protection regulations (GDPR, PCI DSS guidelines for non-card payment data).
Available regions
| Code | Region | Methods |
|---|---|---|
| US | United States | ACH, Wire Transfer |
| CA | Canada | Electronic Funds Transfer (EFT) |
| GB | United Kingdom | Faster Payments / BACS |
| EU | Eurozone | SEPA Credit Transfer |
| CH | Switzerland | SEPA Transfer |
| AU | Australia | BECS Direct Entry |
| JP | Japan | Domestic Bank Transfer (Zengin) |
| SG | Singapore | FAST / GIRO |
| IN | India | NEFT / IMPS |
| GLOBAL | International | SWIFT Wire |