> ## Documentation Index
> Fetch the complete documentation index at: https://docs.standalonetech.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Bulk Importer

> Import thousands of TeraWallet credit and debit transactions from a CSV file, with batch processing, per-row currency and expiry, and error logs.

The Bulk Importer loads credit and debit transactions for many users at once from a CSV file — ideal
for migrations, mass corrections, or seeding balances.

## Opening the importer

The importer is available from either:

* **Tools → Import → WooCommerce Wallet**, or
* the **Import** action on the TeraWallet users/balances screen.

It runs as a modern admin screen and requires the `manage_options` capability.

## CSV format

Headers are matched **case- and whitespace-insensitively**.

| Column | Required | Description |
| - | - | - |
| `email` | ✅ | The user's account email. |
| `amount` | ✅ | The transaction amount. |
| `type` | ✅ | `credit` or `debit`. |
| `details` | — | A description stored on the ledger entry. |
| `expire_date` | — | Optional expiry for a credit row (works with [Credit Expiry](/terawallet-pro/wallet-expiry)). |
| `currency` | — | ISO 4217 code; validated against the store's WooCommerce currencies. |

A `sample.csv` is included with the plugin to use as a template. Missing required columns are
reported explicitly before processing starts.

## Processing & error handling

* **Batch processing** — large files are processed in batches in the background, so imports don't
  time out. Developers can tune the batch size with the `woo_wallet_import_batch_size` filter.
* **Per-row currency** — each row's `currency` is forwarded to the ledger; core's currency manager
  handles conversion or per-currency storage transparently.
* **Per-row expiry** — when `expire_date` is supplied on a credit row, it is applied to that exact
  transaction (and takes precedence over the global Credit Expiry default).
* **Error reporting** — rows that fail (for example, a non-existent user email) are listed in a
  detailed log so you can fix and re-import them.

<Warning>
  Imports move real money in the ledger. Test with a small CSV first, and double-check the `type`
  column — `debit` rows reduce balances.
</Warning>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.