Silkview Connect
Documentation

Excel Add-in User Guide

Step-by-step instructions for Silkview Connect — from sign-in through pull, build, and push to Xero.

✦ Excel desktop & web✦ AUD only (v1)✦ Xero + StripeUpdated May 2026
01
Get started
Open the Silkview task pane and sign in to your account

Silkview Connect is currently in beta. Access is provisioned by the Silkview team — there is no public install from the Office Store yet. Once your add-in is enabled in your Excel workbook, follow the steps below to sign in.

1
Open the Silkview Connect task pane in Excel

Launch the add-in from the Excel Insert tab. The task pane opens on the right side of Excel and shows a Sign in button.

2
Sign in or create an account

Click Sign in in the task pane. A browser window opens to silkview.org/auth/login. Sign in with your credentials, or click Create account if you are new. After sign-in, return to Excel — the task pane updates automatically.

3
Complete account setup (new users only)

New accounts are redirected to the web dashboard to name your account and create your first workspace. Once done, return to Excel. Your workspace will appear in the dropdown.

4
Select your workspace

If your account has multiple workspaces, use the Workspace dropdown at the top of the task pane to choose which one you are working in. Each workspace has its own Xero and Stripe connections.

Silkview Connect — Excel task pane
Silkview Connect task pane — Sign in screen
Figure 1 — Workspace selector with the Sign in card. Clicking Sign in opens the browser auth flow.
02
Connect Xero and Stripe
Authorise access to both platforms for your workspace
ℹ️

Connections are per workspace. Each workspace links exactly one Xero organisation and one or more Stripe accounts. If you manage multiple clients, create a separate workspace per client.

Connecting Xero

1
Click the Xero connection card

In the connections section of the task pane, click Connect to Xero. A browser dialog opens and redirects you to Xero's authorisation page.

2
Authorise Silkview Connect in Xero

Sign in to Xero if prompted, then select the organisation you want to connect and click Allow access. Silkview Connect requests read access to settings and accounts and write access to transactions only — it cannot modify your Xero settings or access unrelated data.

3
Confirm connection

Return to Excel. The Xero connection card now shows your organisation name (e.g. Demo Company (AU)), a green connected indicator, and your base currency (e.g. AUD). All pulls and builds use this currency.

Connecting Stripe

1
Click Connect Stripe

In the Stripe connection card, click Connect Stripe. A browser dialog opens and redirects you to Stripe's OAuth Connect page.

2
Select your Stripe account

Choose the Stripe account to connect and click Connect. Silkview Connect requests read-only access — it cannot move funds, create charges, or modify your Stripe account.

3
Add additional Stripe accounts (Firm plan)

On the Firm plan you can connect multiple Stripe accounts per workspace. Click + Add another account beneath the accounts list and repeat the connect flow. Each new account appears as a checkable row under Accounts for pull.

⚠️

Live vs test mode: Stripe accounts connected in test mode are labelled Test in orange. Data from test accounts is real test data only — do not push test-mode data to a live Xero organisation. Use a separate test workspace for development.

Connections — both connected
Silkview Connect task pane — Xero and Stripe connections
Figure 2 — Both connections active. Xero shows the organisation name with currency. Stripe shows individual accounts under "Accounts for pull" with live/test badges.

Managing connections from the dashboard

Connections can also be managed from the web dashboard at silkview.org. After making changes in the dashboard (reconnecting Xero, adding a Stripe account), return to Excel and click Refresh in the add-in header to reload the latest connection state without restarting Excel.

03
Prepare your workbook
Create sheets and configure your account mappings — done once per workspace

Step 1 — Set up sheets

Click Setup sheets under Quick setup in the task pane. This creates the following sheets in your workbook if they don't already exist:

Stripe_Balance_Transactions
Stripe_Payouts
Stripe_Balance_Trx_Payouts
Stripe_Charges
Xero_Journals
Xero_Bank_Transaction
Account_Mappings
SheetPurposeWritten by
Stripe_Balance_TransactionsRaw Stripe balance transaction dataPull tab (add-in)
Stripe_PayoutsStripe payout summariesPull tab (add-in)
Stripe_Balance_Trx_PayoutsBalance transactions filtered to payouts onlyPull tab (add-in)
Stripe_ChargesCharge-level detailPull tab (add-in)
Xero_JournalsManual journal rows ready to pushBuild tab (add-in) + you
Xero_Bank_TransactionBank transaction rows ready to pushBuild tab (add-in) + you
Account_MappingsYour GL account codes, tax types and bank-transfer contactYou (Xero dropdowns populated by add-in)
💡

You can rename or reorganise sheets as long as you update the Destination field in the Pull tab and the Read range field in the Push tab to match. The add-in does not hard-code sheet names — it reads whatever range you specify.

Step 2 — Refresh Xero account dropdowns

Click Refresh Xero under Quick setup. This fetches your Xero chart of accounts, tax rates, tracking categories, and contacts, then populates dropdown lists on the Account_Mappings sheet. You must do this after first connecting Xero, and again after adding new accounts, tracking options, or contacts in Xero.

Step 3 — Configure Account_Mappings

The Account_Mappings sheet has two sections — an Account Mapping block at the top and a Contact Mapping block below. Both control how Stripe transactions translate into Xero entries. Configure each cell once and the values are referenced by formula in every future Build.

Section A — Account Mapping (rows 1–7)

Account Mapping
Stripe ObjectXero Account CodeXero Tax TypeXero Tracking NameXero Tracking Option
charge200 — SalesOUTPUT2 (GST on income)(optional)(optional)
refund200 — SalesOUTPUT2 (GST on income)(optional)(optional)
fee404 — Bank ChargesNONE (no GST on bank fees)(optional)(optional)
stripe_clearing855 — Stripe ClearingNONE(optional)(optional)
stripe_payout_bank120 — Business Cheque (bank accounts only)NONE(optional)(optional)

Section B — Contact Mapping (rows 9–11)

Contact Mapping
Xero Contact
Bank Transfer ContactStripe Payments Australia Pty Ltd
⚠️

Clearing account is required. You must set up a Stripe Clearing Account in your Xero chart of accounts (a current asset account, not a bank account) and map it to the stripe_clearing row. This account temporarily holds Stripe revenue until the net payout arrives at your bank. See the Accounting treatment section for a full explanation.

💡

The stripe_payout_bank row's dropdown is filtered to bank accounts only, while every other row pulls from the journal/GL account list. The contact cell in row 11 (B11) is referenced by every bank transaction the Build step generates.

04
Pull — Stripe data
Retrieve balance transactions and other objects from Stripe into Excel
1
Go to the Pull tab

Click the Pull tab (step 1) in the task pane.

2
Select which Stripe accounts to pull from

In the Stripe connection card above the tabs, tick the accounts you want to include under Accounts for pull. When multiple accounts are selected, each is pulled separately then merged and sorted by date in the destination sheet.

3
Choose the Object type

Select the Stripe data type to pull. The available options are Payouts, Balance Transactions, Balance Transaction Payouts, and Charges. For the standard reconciliation workflow, use Balance Transactions — this includes charges, refunds, and fees in a single unified list.

4
Set the date range

Enter From and To dates. The maximum range per pull is 90 days. For month-end processing, set From to the first day of the month and To to the last day. The date filter uses the transaction created date, not the payout arrival date.

5
Confirm the destination

The Destination field defaults to <Sheet>!A1 for the selected object (for example Stripe_Payouts!A1 or Stripe_Balance_Transactions!A1). The pull overwrites from the starting cell — headers go on row 1, data from row 2. Existing data is replaced entirely on each pull.

6
Click Pull to sheet

The add-in fetches data from Stripe and writes it to Excel. The row count and destination are confirmed in a green result bar below the button. Free plan: 100 rows total per pull, capped at 90 days. Pro / Firm plans: 2,000 rows total per pull, accounts merged and sorted by date.

Currency filter. On Pro/Firm, Silkview Connect filters Stripe transactions to your Xero organisation's base currency (e.g. AUD). On Free, all Stripe currencies are returned. Multi-currency support in the push step is limited in v1.

Pull tab — Payouts
Silkview Connect task pane — Pull tab with Payouts selected
Figure 3 — Pull tab with a 1-month range. The Object dropdown defaults to Payouts; switch it to Balance Transactions for the build flow.

What gets written to the sheet

Each Pull object writes to its own sheet. The column layouts below match the live add-in (column A is the leftmost cell written by the pull).

Stripe_Balance_Transactions (13 columns, A–M)

ColHeaderNotes
AStripe Account IDSource connection (e.g. acct_1Sv…)
BStripe Account NameFriendly account label
CTransaction IDtxn_…
DCreatedUTC → local date
EAvailable OnDate the funds become payable
FAmountSigned (negative for refunds, fees, payouts)
GFeeStripe fee component
HNetAmount minus fee
ICurrencyLower-case ISO (aud, usd, …)
JTypecharge, refund, payout, stripe_fee, …
KReporting CategoryStripe's reporting bucket
LDescriptionFree-form text from the source object
MSource IDUnderlying charge, refund or payout ID

Stripe_Payouts (11 columns, A–K)

ColHeaderNotes
AStripe Account IDSource connection
BStripe Account NameFriendly account label
CPayout IDpo_…
DArrival DateDate funds hit your bank
EGross AmountTotal of charges in the payout
FFee AmountTotal Stripe fees in the payout
GNet AmountWhat lands in your bank
HCurrencyLower-case ISO
IStatuspaid, in_transit, …
JDescriptionFrom Stripe
KBank Account Last4Last 4 digits of the destination bank account
05
Build — journals and bank transactions
Generate formula-driven Xero entries from your Stripe data

The Build tab reads from Stripe_Balance_Transactions and your Account_Mappings to generate two types of Xero entries. Every account-code, tax-type and tracking value is written as an INDEX/MATCH formula against Account_Mappings, so editing a mapping flows through to all built rows on the next refresh. Bank-transaction contacts come from =Account_Mappings!$B$11.

1
Go to the Build tab and click Build journals from balance transactions

This generates rows on the Xero_Journals sheet — one signed line per Stripe object type per day (charges, refunds, fees) plus the matching clearing-line pair. Tax is applied INCLUSIVE via the Tax Type column, so no separate GST line is needed.

2
Click Build bank transactions from balance transactions

This generates rows on Xero_Bank_Transaction — one RECEIVE row per Stripe payout. The bank account references your stripe_payout_bank mapping and the offset account references stripe_clearing.

3
Review and adjust in Excel

All generated rows are plain Excel data — you can edit, reorder, add rows, or apply your own formulas. The add-in reads whatever is in the range at push time. If account codes need adjustment, update Account_Mappings — formulas recalculate automatically.

💡

Rebuilding is safe. If you rebuild after adjusting mappings, the build overwrites the generated rows. Rows that have already been pushed (marked with a Xero ID in column I for journals or column H for bank transactions) are automatically skipped — be careful not to manually overwrite pushed rows you need to keep as audit trail.

Build tab
Silkview Connect task pane — Build tab with manual journals and bank transactions
Figure 4 — Build tab. The Pull step is marked done; each build card targets a separate Xero entry type.

Xero_Journals sheet structure (10 columns, A–J)

The add-in writes formulas to columns A–H. Columns I (Xero ID) and J (Status) are populated by the Push step.

Col A — DateCol B — NarrationCol C — Account CodeCol D — DescriptionCol E — Gross AmountCol F — Tax TypeCol G — Tracking Name 1Col H — Tracking Option 1Col I — Xero IDCol J — Status
2026-05-15Stripe posting — 2026-05-15200charge12,840.00OUTPUT2
2026-05-15Stripe posting — 2026-05-15855charge clearing-12,840.00NONE
2026-05-15Stripe posting — 2026-05-15404fee372.36NONE
2026-05-15Stripe posting — 2026-05-15855fee clearing-372.36NONE
… additional date rows below …
💡

Single signed Gross Amount column. Unlike a traditional ledger, the sheet uses a single Gross Amount (column E) — positive for debits to the account in column C, negative for credits. Xero splits GST automatically when the Tax Type in column F is set and the line amount is inclusive.

Xero_Bank_Transaction sheet structure (9 columns, A–I)

The add-in writes columns A–G. Column H (Xero ID) and I (Status) are populated by the Push step.Type is always RECEIVE; Contact is the formula =Account_Mappings!$B$11.

Col A — DateCol B — TypeCol C — ContactCol D — Bank AccountCol E — ReferenceCol F — Account CodeCol G — AmountCol H — Xero IDCol I — Status
2026-05-30RECEIVEStripe Payments Australia Pty Ltd120po_3Qz185512,467.64
2026-05-23RECEIVEStripe Payments Australia Pty Ltd120po_3Qy88558,943.40
06
Push — post to Xero
Send journals and bank transactions to your Xero organisation
1
Go to the Push tab and choose what to push

Toggle between 📒 Manual journals and 🏦 Bank transactions using the segmented switch at the top of the Push tab. Push each type separately.

2
Confirm the read range

The Read range field defaults to Xero_Journals!A2:J500 for journals and Xero_Bank_Transaction!A2:I500 for bank transactions. Adjust if you renamed sheets or moved data. The value is remembered per workspace.

3
Choose Draft or Posted (journals only)

Select Draft to post journals as draft entries in Xero — you can review and approve them in Xero before they hit the ledger. Select Posted to post directly. Your workspace settings on the dashboard may restrict this to Draft only. Bank transactions are always posted as AUTHORISED Receive Money.

4
Click Push to Xero

The add-in sends each row to the Xero API. A progress indicator shows while rows are being processed. Do not close Excel during this step.

5
Check the status writeback

After a successful push, the Xero ID and Status columns are updated: I (Xero ID) and J (Status) for journals; H (Xero ID) and I (Status) for bank transactions. On any subsequent push, rows showing a Xero ID are automatically skipped — preventing duplicate entries.

🛑

Review before you push. Once a manual journal is posted (not draft) in Xero, it creates ledger entries that affect your financial reports and BAS. Always review journal rows in Excel before posting. If you push incorrect entries, you will need to void or delete them manually in Xero.

Push tab — Manual journals
Silkview Connect task pane — Push tab with Manual journals selected
Figure 5a — Push tab with the segmented switch on Manual journals. Bank transactions uses the same layout but without the Status dropdown.
Xero_Journals sheet — after push
A — DateB — NarrationC — AccountD — DescriptionE — GrossF — TaxG — Tracking NameH — Tracking OptionI — Xero IDJ — Status
2026-05-15STRIPE-05-15200charge12,840.00OUTPUT2mj_3Qz1abc✓ pushed
2026-05-15STRIPE-05-15855charge clearing-12,840.00NONEmj_3Qz1abc✓ pushed
2026-05-16STRIPE-05-16200charge4,200.00OUTPUT2pending
2026-05-16STRIPE-05-16855charge clearing-4,200.00NONEpending
Figure 5b — After push. Green rows have a Xero ID in column I and a pushed marker in column J; they are skipped on the next push.
07
Accounting treatment
How manual journals and bank transactions work together in Xero
📋

Not accounting advice. The treatment described here is a common approach for Xero-based businesses using Stripe in Australia (AUD, GST-registered). Your specific circumstances may require a different approach. Consult your accountant or registered tax agent.

The core problem Silkview Connect solves

Stripe pays out a net amount to your bank — after deducting processing fees. But in Xero you need to record:

  • Gross revenue (including GST) on the date each charge occurred
  • Stripe processing fees as a separate expense
  • GST on income split out correctly for your BAS
  • The net payout matching exactly what arrived at your bank

Silkview Connect handles this using the clearing account method — the industry standard approach recommended by Xero-certified accountants.

The clearing account method — overview

Stripe charge
occurs
Customer pays
Stripe Clearing
Account (Xero)
Current asset
balance sheet
Revenue + GST
account (Xero)
P&L recognised
on charge date
Then when the payout arrives at your bank:
Stripe payout
(net amount)
Arrives at bank
Bank account
(Xero)
DR bank account
Stripe Clearing
Account clears
CR clearing → $0
balance at period end

Step 1 — Revenue journal (per day, from Build)

For each day in your date range, Silkview Connect builds a manual journal in Xero that records gross revenue and Stripe fees. The GST is handled automatically by Xero when you set the correct Tax Type on the revenue line — you do not add a separate GST line.

📑

The illustration below uses traditional debit/credit columns for clarity. In Xero_Journals the same entries are represented as a single signed Gross Amount column — positive amounts behave like debits, negative amounts like credits.

📓
Manual Journal — 15 May 2026
Narration: Stripe posting — 2026-05-15
Account codeAccount nameDescriptionTax typeDebitCredit
855Stripe Clearing AccountGross Stripe charges — 15 MayNONE$12,840.00
200Sales RevenueStripe charges — 15 MayOUTPUT2 ← GST split by Xero$12,840.00
404Bank ChargesStripe fees — 15 MayNONE$372.36
855Stripe Clearing AccountStripe fees offsetNONE$372.36
Totals (must balance)$13,212.36$13,212.36
💡 Xero automatically posts $1,167.27 (10% of $11,672.73 net) to the GST on Income account when Tax Type = OUTPUT2 and LineAmountType = INCLUSIVE. You only specify the gross amount — Xero does the split.
ℹ️

GST treatment: Stripe charges your customers an amount that may or may not include GST, depending on your Stripe settings. Silkview Connect uses LineAmountTypes = INCLUSIVE — meaning the amount you enter is the gross (GST-inclusive) figure. Xero splits out the GST portion automatically. Verify your Stripe checkout is configured to collect GST at 10% for Australian customers.

Step 2 — Refund journal (included in daily journal if refunds exist)

Refunds reverse the revenue and adjust the clearing account. They appear on the date the refund was created in Stripe, not the original charge date.

↩️
Refund lines — included in 15 May journal
Stripe refund re_3Qx…
AccountAccount nameDescriptionTax typeDebitCredit
200Sales RevenueStripe refund — 15 MayOUTPUT2$75.00
855Stripe Clearing AccountClearing — refundNONE$75.00
💡 Stripe returns the processing fee on refunds. This is reflected as a positive fee in the balance transactions and is handled by the fee lines in the same journal.

Step 3 — Bank transaction (per payout, from Build)

When Stripe pays out to your bank, it sends the net amount — gross charges minus fees minus refunds accumulated since the last payout. Silkview Connect creates a Receive Money bank transaction in Xero for this payout. This is what reconciles against your bank feed.

🏦
Bank Transaction (Receive Money) — 30 May 2026
Payout po_3Qz1… · matches bank feed import
Bank accountReferenceContactAmountOffset accountTax
120 — Business Chequepo_3Qz1Stripe Payments Australia Pty Ltd$12,467.64855 — Stripe ClearingNONE
💡 The $12,467.64 is the net payout = $12,840 gross charges − $372.36 Stripe fees. This matches exactly what Stripe deposits to your bank, so Xero's bank feed reconciliation finds it automatically.

How the Stripe Clearing Account reconciles to zero

At the end of each month, the Stripe Clearing Account balance should equal zero (or the balance of unpaid-out charges if there are pending payouts). Here's the maths:

MovementEntry typeAccountDRCR
Gross charges (revenue journals)Manual journal855 Clearing$12,840.00
Stripe fees (revenue journals)Manual journal855 Clearing$372.36
Refunds (revenue journals)Manual journal855 Clearing$75.00
Net payout to bankBank transaction855 Clearing$12,392.64
Clearing account balance$12,840.00$12,840.00 → $0.00

If the clearing account doesn't zero: A non-zero balance usually means either (a) a payout is pending and will clear next period, or (b) there's a missing or incorrect entry. Check that all payouts in the period have corresponding bank transactions, and that refund amounts match between Stripe and your journals.

What Xero sees — end state

  • Profit & Loss: Revenue is recognised on charge date (not payout date) — correct for accrual accounting. Stripe fees appear as a separate bank charge expense line.
  • GST / BAS: GST on income is correctly recorded on charge date via the OUTPUT2 tax type on your revenue journal lines.
  • Bank reconciliation: The bank transaction (Receive Money) matches the net payout amount that arrives from Stripe, so Xero's bank feed auto-matches it.
  • Balance sheet: The Stripe Clearing Account (current asset) holds in-transit Stripe funds. It should clear to zero at month end.
08
Troubleshooting
Common issues and how to resolve them

Connection and refresh issues

  • After making changes in the dashboard (changing connections, team, or billing), click Refresh in the add-in header to reload workspace and connection state without restarting Excel.
  • Xero shows "reconnect required" — Xero OAuth tokens expire every 30 minutes (access token) but refresh automatically. If the refresh token expires (after 60 days of inactivity), you need to reconnect. Click Reconnect in the task pane or dashboard.
  • Stripe connection dropped — This can happen if you revoked access in Stripe's dashboard. Reconnect from the task pane by clicking the Stripe connection card.

Pull issues

  • No rows returned — Check that your date range contains actual transactions. Stripe returns transactions in UTC — a transaction on "1 May" in Sydney may appear on "30 April" UTC. Try extending your date range by one day on each end.
  • Free plan row limit hit — The Free plan returns a maximum of 100 rows per pull. Upgrade to Pro or Firm for 2,000 rows. Narrow your date range to stay under 100 rows on the Free plan.
  • Currency mismatch — On Pro/Firm only transactions in your Xero organisation's base currency (e.g. AUD) are returned. Multi-currency support in v1 is limited.

Build issues

  • Missing account codes in dropdowns — Click Refresh Xero in Quick setup to reload the chart of accounts, tax rates, tracking categories, and contacts from Xero. This is required after adding new accounts in Xero.
  • Journals don't balance / formulas show #N/A — Check that all five Account_Mappings rows (charge, refund, fee, stripe_clearing, stripe_payout_bank) have account codes filled in, and that the Bank Transfer Contact in row 11 is set.
  • Unexpected amounts — Stripe amounts are in cents in their API; Silkview Connect divides by 100 for display. If you see amounts that look ×100, contact support — this is a data conversion issue.

Push issues

  • "Account not found" error — The account code in your journal rows doesn't exist in your Xero organisation. Check Account_Mappings and ensure the codes match exactly (Xero account codes are case-sensitive).
  • "Tax rate not found" error — The Tax Type value in your rows must match Xero's exact tax rate code for your region (e.g. OUTPUT2 for GST on income in Australia). Refresh Xero dropdowns and re-check Account_Mappings.
  • Duplicate entries in Xero — Rows that show a Xero ID in column I (journals) or column H (bank transactions) are skipped automatically. If you see duplicates in Xero, you may have pushed the same rows from two different workbooks. Check the Xero ID column before pushing. Delete the duplicates manually in Xero.
  • Push fails partway through — The Status column shows which rows succeeded (Xero ID) and which failed (error message). Rows that failed can be pushed again — the add-in will skip already-pushed rows automatically.
  • Trial expired / billing blocked — If your trial ended or a payment failed, Xero push is disabled. A banner in the task pane links to the dashboard billing page. Update your payment details to restore push access immediately.
📣

Found a bug or have feedback? Send beta feedback (30 seconds) → A pre-filled email opens in your mail client — just describe what you were doing and what happened.

Getting help

For issues not covered here:

  • Email admin@silkview.org with your account email, workspace name, and a description of the issue
  • Sign in at silkview.org/auth/login and use the in-dashboard support chat (Firm plan)
  • Include a screenshot of any error message shown in the task pane or status column
💡

Response times: Support emails are answered within 1 business day (AEST) for Pro and Firm plans, and within 3 business days for Free accounts.