Import Twint merchant exports into bexio with importly
A Twint merchant export is not a bank statement. It lists your customers’ individual payments – but at that point the money is still with Twint. Only later does Twint transfer the collected amount to your bank account, minus its commission.
That’s why you post Twint through a receivables account: every payment creates a receivable from Twint, and the payout settles that receivable again.
How Twint is posted
| When | What happens | Entry |
|---|---|---|
| Customer pays with Twint | A receivable from Twint arises | Twint receivables to revenue |
| Twint pays out to the bank account | The receivable is settled | Bank to Twint receivables |
| Twint withholds the commission | An expense arises | Commission expense to revenue |
You need these three accounts in your chart of accounts:
| Account | Purpose | Example |
|---|---|---|
| Twint receivables | The transfer account between payment and payout | 1102 |
| Revenue account | Your revenue | 3200 |
| Commission expense | The commission Twint withholds | 6941 |
The receivables account is the core: the payment date and the payout date don’t coincide, and Twint bundles several payments into one transfer. The receivables account is where you reconcile the two – at the end of a period, it has to balance.
Important: the amount column is net
The Betrag Transaktion (CHF) column contains the amount after the commission is deducted – in other words, what Twint pays out to you. What your customer paid is not in the file:
Customer pays 50.00 → transaction costs 0.65 → transaction amount 49.35
The gross revenue is therefore transaction amount + transaction costs. That’s why the commission needs an entry of its own – otherwise you understate your revenue.
Step 1: Get the export from the Twint merchant portal
- Log in to the Twint merchant portal.
- Switch to the transaction overview.
- Choose the export function and CSV as the format.
- Set the period to match your payout period and download the file.
Choose the period so that it corresponds to one payout. That way, the receivables account can be reconciled cleanly.
The export starts with a preamble: details about the selected period and a summary with the period’s totals, including the total transaction costs. You’ll need those later for the commission entry – so don’t delete the preamble.
Step 2: Create a template – once
importly doesn’t recognize Twint merchant exports on its own, because they aren’t a bank statement. You create your own template for them once; after that, it’s recognized automatically with every further export.
- Open the entries table in importly and drag the CSV file onto the page.
- Choose Create / edit template.
- First check the header row and the first data row. Because of the preamble, the column names are not at the very top. importly usually suggests the right rows itself – check it against the preview.
- Set the date format to
YYYY.MM.DDand the decimal separator to a period. - Map the fields:
| Field in importly | Setting |
|---|---|
| Date | Datum column |
| Amount | Betrag Transaktion (CHF) column |
| Description | Pattern from Typ and Bezeichnung in der Abrechnung |
| Document Number | TWINT Order ID column |
| Debit (account) | Fixed value: your receivables account, for example 1102 |
| Credit (account) | Fixed value: your revenue account, for example 3200 |
- Give the template a name, for example Twint merchant export, and save it.
If you’d rather assign the revenue through your rules, leave Credit (account) empty. The receivables account in debit, however, should stay fixed – it’s the same for every row.
Step 3: Import
- Drag the CSV file onto the entries table.
- importly shows your saved template as the detected format. If something doesn’t match, pick a different format in the Detected format field or create a new template via Create / edit template.
- Check the preview and click Import.
Because the template sets debit and credit to fixed values, importly doesn’t ask for a bank account.
What importly does with each column
| Column in the export | Field in importly |
|---|---|
| Datum | Date |
| Betrag Transaktion (CHF) | Amount, net after commission |
| Typ | Description |
| Bezeichnung in der Abrechnung | Description, can be inserted via the pattern fields |
| TWINT Order ID | Document Number |
| Transaktionskosten (CHF) | not imported, see below |
| Rabatt (CHF) | not imported |
| Vorname und Nachname | Counterparty, can be inserted via the pattern fields |
| Zeit, Status, Niederlassung, Terminal ID | not imported |
There are amount columns per currency – EUR and USD in addition to CHF.
Posting the commission
The import brings in the net amounts. So that your gross revenue is right and the expense shows up, you post the commission once per period:
Commission expense to revenue for the sum of the transaction costs
You take the sum from the summary at the top of the export. After this entry, your revenue matches what your customers actually paid, and the commission is recorded as an expense.
Discuss the VAT treatment of this entry with your fiduciary – it depends on how you tax your revenue.
Posting and reconciling the payout
The transfer from Twint appears on your bank statement as one row. You post it:
Bank to Twint receivables
The amount corresponds to the sum of the imported net amounts for the period. If the receivables account then goes to zero, everything adds up. If a balance remains, the open amounts belong to payments Twint hasn’t paid out yet – they clear with the next payout.
If something doesn’t work
The receivables account doesn’t go to zero The most common cause: the exported period doesn’t match the payout period. Check whether payments made shortly before the end of the period only arrive with the next payout. Refunds and discounts also shift the balance – the Rabatt (CHF) column is not taken into account during the import.
The revenue is too low Then the commission entry is missing. The amount column in the export is net.
The template is not recognized If Twint changes the export layout, the saved template no longer fits. Open it via Create / edit template and check the header row and the column mapping.
Rows are missing You can spot payments that aren’t completed by the Status column. In addition, an import can contain at most 5,000 rows – with many small amounts, that limit is reached sooner than you’d think.
Umlauts are displayed incorrectly Import the file exactly as you downloaded it. If it’s opened in Excel and re-saved along the way, the character encoding is often lost.