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

# Match bank and card transactions

> Import bank and card statements, add transactions by hand, see which payments have no document, and edit transactions.

**Transactions** lists every payment from your bank and card statements, across all accounts, next to the document that belongs to it. Billpal does not keep balances or post bookings.

Every workspace member can import, edit, match, hide, and delete transactions. Members can add an account during this work. Only admins can edit or delete accounts and manage transaction rules.

## Import a statement

**1. Open Transactions**

Select **Transactions** in the navigation.

**2. Upload the file**

Select **Add new**, then **Upload statement**, and select **Continue**. Choose a file and choose the account. Billpal fills it in only when the statement proves the account, for example by its IBAN. A file with several statements, such as EUR and USD, has one account choice per statement. Supported formats are PDF, CSV, Excel, CAMT.053, MT940, and OFX, up to 50 MB.

**3. Check the result**

A message shows how many transactions were added, to which account, and how many were already there.

You can also send a statement on WhatsApp. Billpal first resolves the workspace, then asks you to choose the account, with **New account** at the end of the list. If the workspace has no account yet, Billpal opens a form to add one and then continues the import. If you do not reply, nothing is imported.

Email import accepts PDF credit-card statements only when Billpal can identify the issuer, card brand, and last four digits. In ChatGPT and Claude, a statement is imported on a card: attach the file in the chat, or drop it on the card. Billpal reads the account from the file. When it cannot tell, the card asks which account. If you have no account yet, ChatGPT or Claude asks for the bank and the card's last four digits or the IBAN and adds it first.

A file that is not a bank or card statement is refused. Upload invoices and receipts under **Documents**.

## Add a transaction by hand

Use this for a cash payment, or for a payment that is missing from a statement.

**1. Open the form**

Select **Add new**, then **Add manually**, and select **Continue**.

**2. Enter the payment**

Choose the account, **Money out** or **Money in**, the **Booking date**, **Amount**, and **Currency**. **Payee** and **Description** are optional. To record a cash payment, choose **Cash**. Billpal creates the **Cash** account the first time.

**3. Save**

Select **Add transaction**. The transaction opens in its details and appears under **Activity**.

A transaction added by hand starts as **Unmatched**. Match its document later, or set **No document** if none will come. You can edit everything about it, including the amount and date, at any time.

When you later upload a receipt paid in cash, Billpal matches it to an unmatched **Business** transaction on **Cash** with the same amount and currency and a date up to 3 days apart. If there is none, it adds a new cash transaction.

### Duplicates

Uploading the same period twice, for example once as PDF and once as CSV, does not add transactions twice. Billpal compares each transaction with the ones the account already has. A hidden transaction is not added again either. A deleted transaction comes back when you upload its statement again.

A transaction you added by hand is not added again when its statement arrives. If the statement has a transaction on the same account with the same amount and currency and a date up to 3 days apart, Billpal keeps your transaction and takes the date from the statement. Your tags, documents, and edits stay. If Billpal is not sure, it adds the statement's transaction, and you can delete the one you do not need.

An imported bank fee becomes a separate transaction. The supplier payment excludes the fee, and the fee has the status **No document**.

### Account

Billpal identifies the account from the statement header: the IBAN, account number, or the card's last four digits. They must match exactly one of your accounts. Having one account at the same bank is not enough. Only an emailed credit-card statement can add a new account on its own.

If the account cannot be determined, choose an account or add one before the import continues. Until then, a notice on the **Transactions** page shows the waiting import. No generic account is used.

* Select **Choose account** in the notice to pick the account. Billpal then adds the transactions.
* If you do not want to import the file, select **Choose account**, then **Delete statement**. The file is deleted. No transactions were added yet.
* A statement that waits for 7 days is deleted. If you upload the same file again, the waiting copy is replaced.

Admins manage accounts under **Settings > Bank accounts**. They can add, rename, edit, and delete bank and card accounts. Deleting an account also deletes all of its transactions and matches. A connected account must be disconnected first.

## Status and type

The tabs **All**, **Matched**, **Unmatched**, and **No document** filter by status. Next to the search, **All types** filters by type. The account filter is in **Filters** when the workspace has two or more accounts.

| Status | Use for |
| - | - |
| **Unmatched** | A transaction that still needs a document. |
| **Matched** | A transaction whose matched documents cover its amount. |
| **No document** | A transaction that is done without a document, such as rent, insurance, or a bank fee. |

A transaction is **Matched** only when its documents cover the full amount. In the same currency they must cover it to the cent. Documents in another currency may differ by up to 5%. Documents worth more than the payment also cover it. A partly covered transaction stays **Unmatched** and shows a line under the status, for example "Attached documents only cover €39.90 of €120.00. Please attach the missing ones." Hover the line to read all of it.

If the rest of the amount needs no document, set **No document**. The matches stay and the transaction counts as **Matched**. **No document** never removes a match.

**No document** is a decision you make. New transactions, including the ones you add by hand, start as **Unmatched**.

Type is separate from status:

* **Business:** A business transaction.
* **Private:** A private transaction. An existing or manual document match is retained, but automatic matching skips it.
* **Transfer:** Money moving between your own accounts. Transfers have no document or category. When Billpal has paired both sides, the transaction shows the other side under **Paired transaction**.

Billpal never splits an amount. For a payment that is partly business, such as rent for a home office, set **Business** and change the description to something like "Rent, 20% business". A rule can set the same description every month.

## Matching

Billpal matches a transaction to an invoice, receipt, or credit note when the amount fits and the date, direction, and supplier or customer fit. An amount alone is never a match. Discounts, part payments, and one payment for several documents are matched by hand.

To match by hand, open the transaction and select **Add document**. Documents close in amount and date are listed first. You can also match a transaction from the **Payment** card on a document.

## Payment services such as Stripe

A payment service such as Stripe or PayPal collects your customer's payment, keeps its fee, and pays out the rest to your bank. The payout on your bank statement is therefore smaller than the invoice, and matched to the invoice it covers only part of it.

To match invoices at their full amount, add the service as its own account and import its balance reports there. The service is then treated like a bank account:

* Each customer payment arrives at its full amount and matches the invoice.
* The fee taken from each payment becomes its own transaction with the status **No document**.
* The payout leaves the service's account and arrives on your bank account. Billpal sets both as a **Transfer** when the amount is the same and the dates are at most 5 days apart.

**1. Add the account**

Under **Settings > Bank accounts**, select **Add account**, choose **Bank account**, and choose Stripe as **Institution**. Stripe has no IBAN, so leave **Account numbers** empty.

**2. Export the reports from Stripe**

In the Stripe Dashboard, download two itemized CSV reports from the Balance report for the same period: **Balance change from activity** (the file name starts with `Itemized_balance_change_from_activity`) and **Payouts** (`Itemized_payouts`). Before you download the activity report, add the column `customer_name` or `customer_email`. Billpal only matches an invoice when the transaction and the document share a name, IBAN, or document number. Without the column, the amounts are correct but you match each invoice by hand.

**3. Upload both files to the Stripe account**

Upload the files like any statement and choose the Stripe account. Stripe creates one report per currency. Upload the USD reports to the same account.

If you matched a payout on your bank account to an invoice before, remove that match before you import the Stripe reports. Billpal only pairs transfers when new transactions arrive, and it skips transactions that are already matched. Otherwise, set the payout's type to **Transfer** yourself.

Stripe also charges fees that are not taken from a single payment, for example daily billing and tax fees. They arrive as small transactions on the Stripe account. Stripe lists all fees of a month on one invoice, which Billpal does not match to these transactions automatically. A transaction rule marks them as done:

* **Rules > Transactions**, **Money out**
* **Account** is the Stripe account
* **Bank text** contains `fee`
* **Status**: **No document**

After saving, apply the rule to existing transactions. Stripe's monthly fee invoice stays a supplier invoice in **Documents** and is exported like any other. No transaction pays it, because Stripe takes the fees from your balance.

## Edit a transaction

Select a row to open the transaction details. A link to a single transaction opens the same details.

| Field | What you can do |
| - | - |
| **Account** | Move the transaction to another account, or select **New account** to add one. Only a transaction added by hand can move to **Cash**. |
| **Status** | Set **Unmatched** or **No document**. **Matched** comes from document links. **Unmatched** removes the matches. |
| **Type** | Set **Business**, **Private**, or **Transfer**. |
| **Category** | Set the account from your chart of accounts. A matched document sets the category, and transfers have none. |
| **Tags** | Add or remove workspace tags. A matched transaction and its documents share their tags. |
| **Documents** | Select **Add document**, or remove a match. |
| **Hide transaction** | Hide or show the transaction. |

Select **Save** to apply changes or **Cancel** to discard them.

### Correct what the statement says

If the statement was read wrong, or you want a clearer text, select **Edit transaction** (the pencil next to the close button). You can change:

* **Payee** and **Description**. Leave a field empty to clear it.
* **Booking date** and **Value date**. The value date can be removed.
* **Amount**. Use a minus sign for money out. The amount cannot be 0.
* **Currency**.

Select **Save**. The changes appear in the list, in downloads, and in exports. Search finds both the new and the original text.

Billpal keeps the values from the file. Uploading the same statement again therefore does not add the edited transaction a second time.

Matches stay when you edit. If you lower the amount of a matched transaction, the matched documents count only the new amount as paid. Some changes are refused with a message on the field:

* The currency, or the sign of the amount, of a matched transaction. Remove the match first.
* The booking date, amount, or currency of a transfer that is paired with the transaction on your other account. Change the type first.
* A value someone else changed in the meantime. Check the new value and select **Save** again.

Billpal does not match again or run rules after an edit. To undo an edit, select **Undo edit** on its entry under **Activity**. A transaction that was changed again since then stays as it is.

A cash payment created from a document follows the document and has no **Edit transaction** button. Cash transactions you added by hand can be edited like any other.

### Move transactions from a statement to another account

When a transaction came from a statement, changing **Account** moves every transaction from that statement that is on the same account. A confirmation such as "Move all 42 transactions from kontoauszug\_09.pdf to Visa •••• 1234?" appears first. Later statements with the same account number go to the new account.

To move selected transactions instead, select them in the list and use **Change account**.

### Edit several transactions

Select rows in the list to change the account, status, type, category, or tags. You can also download, hide, show, or delete selected transactions. The action bar menu has **Change status**, **Change type**, and **Add a tag**.

**Change status** sets **Unmatched** or **No document**. **Unmatched** is available only when every selected transaction is **Business**. **No document** keeps existing matches, and a partly covered transaction still shows **Matched**. Cash payments created from a document are left out. When every selected transaction is one, **Change status** is unavailable.

**Change type** sets **Business**, **Private**, or **Transfer**. **Transfer** removes matches, clears the category, and sets the status to **No document**. When every selected transaction is a cash payment, **Transfer** can be selected, but **Change type** stays off. When the selection also includes other transactions, those become transfers and the cash payments stay as they are.

**Edit** also sets the same **Payee** or **Description** on every selected transaction. An empty field stays unchanged. To clear a payee or description, edit the transaction on its own. **Add a tag** adds tags and keeps the ones already there.

## Statement files

The **File name** column shows the statement each transaction came from. Select the file name to preview it, then select **Download** to save it. The import entry under **Activity** opens the same preview.

## Hide and delete

Use **Hide** for payments that do not belong in Billpal, for example private payments from an account you also use for business.

* **Hide** removes a transaction from the list, the tabs, the counts, and matching. Billpal does not suggest it for any document. Matches, type, and status stay as they are. To see hidden transactions, set **Hidden** to **Yes** under **Filters**. The list then shows only those transactions. Select **Show** to bring one back.
* **Delete** removes the transaction and frees its match. The document goes back to open. Upload the statement again to bring the transaction back.

A hidden transaction stays hidden when you upload its statement again.

A transactions download for a date range leaves hidden transactions out and says how many it skipped. Hidden transactions you select yourself, with **Hidden** set to **Yes**, are included. A document matched to a hidden transaction still shows that payment in the documents export.

## Undo an import

Under **Activity**, the entry for an import shows how many transactions were added, with the statement file below it. When matching is done, a second entry from **Billpal** shows how many were matched to documents. Select the count to see only that import's transactions. Select **Undo import** on the import entry to delete all transactions from that file together with the file. Matches are removed. A card account that the import added from an email is removed too, unless it was edited or is used elsewhere. Afterwards, you can upload the file again.

## Cash payments

A document with the payment method **Cash** gets a matched transaction on the **Cash** account, unless it matches a cash transaction you added by hand (see [Add a transaction by hand](#add-a-transaction-by-hand)).

A cash transaction created from a document follows the document. Amount, date, and currency come from the document. Change them there. To remove the transaction, change the payment method or delete the document. On the transaction itself you can change:

* **Tags**
* **Type**: **Business** or **Private**
* **Hide transaction**

Account, status, category, and the match cannot be changed on the transaction.

## Shared tags

A matched transaction and its documents show the same tags. A tag you add on the transaction also appears on the document, and the other way around. Removing a shared tag removes it from both. When a match is removed, each side keeps only the tags that were added on it.

## Private payments and legal form

A private transaction takes the owner's account from your chart of accounts. Which account depends on the **Legal form** in the company details of the workspace:

* **Taxed as owner** (sole trader, partnership): Owner's draw for money out, Owner's contribution for money in.
* **Company** (GmbH, Ltd, corporation): Shareholder account.

These accounts appear under **Settings > Accounting > Accounts** like any other account. They are offered for transactions only, never for documents. See [Owner accounts](https://help.billpal.io/en/chart.md#owner-accounts).

## Transaction rules

Under **Rules > Transactions**, name the rule and choose **Money out** or **Money in**. Then add at least one condition. A transaction must match every condition.

| Condition | Matches when |
| - | - |
| **Bank text** | The payee, the description, or the bank's category contains any, all, or none of the keywords. Billpal searches the values from the file and the ones you typed yourself, never text a rule set. |
| **Account** | The transaction **is** or **is not** on the chosen account, or **is any of** or **is not any of** several accounts. Offered when the workspace has two or more accounts. |
| **Amount** | The amount equals, is greater than, is less than, or is between the values you enter. |

Add at least one action. Each condition and each action can be used once per rule.

| Action | Result |
| - | - |
| **Category** | Sets the category. Not available together with the type **Transfer**. |
| **Type** | Sets **Business**, **Private**, or **Transfer**. |
| **Status** | Sets **Unmatched** or **No document**. **Unmatched** is not available together with the type **Private** or **Transfer**. |
| **Set payee** | Replaces the payee from the bank. |
| **Set description** | Replaces the description from the bank. |
| **Tags** | Adds one or more tags. |
| **Hide transaction** | Hides matching transactions. |

**Create rule** in a transaction's menu or details starts a rule with that transaction's direction and payee, and its account when the workspace has two or more accounts. After saving, you can apply the rule to existing transactions. Rules do not overwrite values set by hand, including a payee or description you edited.

## Activity

Every change to a transaction appears under **Activity**, with who made it. Changes made automatically show **Billpal**. Changes made through ChatGPT or Claude show the person, followed by "via ChatGPT" or "via Claude". A change to several transactions is one entry with the count.

## Related pages

> [card] [Rules](https://help.billpal.io/en/rules.md)
>
> Automate documents with rules.

> [card] [Chart of accounts](https://help.billpal.io/en/chart.md)
>
> Manage the accounts used for categories.


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