# Client invitations and request links (/docs/account/client-access)
Source reviewed: 2026-10-01 · Product documentation
A Workpapers upload invitation is tied to the recipient's email address and
the inviting firm. It does not grant access to the firm's other clients.
## For the firm [#for-the-firm]
Confirm the client record and email address before issuing an invitation.
## For the client [#for-the-client]
Sign in with the address that received the upload invitation. If you received
it at the wrong address, ask your accountant to correct the invitation.
If the link has expired or been cancelled, ask the firm for a new one.
## What deleting your account does [#what-deleting-your-account-does]
The client mobile app's **Delete account** removes your sign-in and firm
connections. Documents and messages already sent remain the firm's records.
Read [account deletion](/delete-account) and [retention and deletion](/docs/trust/retention)
before assuming that deleting a login deletes financial records.
---
# Set up your practice (/docs/account)
Source reviewed: 2026-10-02 · Product documentation
Your account identifies you; your practice membership decides whose clients
you can work with in Workpapers. A client accepting an upload invitation has a
separate client account and does not become a firm member.
## Choose your starting point [#choose-your-starting-point]
| Your situation | Start here | Confirm before continuing |
| ------------------------------------ | -------------------------------------------------------------- | -------------------------------------------------------------------------------------------- |
| A colleague invited you | Open their invitation and sign in with the invited email | You join their practice, with the intended role |
| You are setting up a new practice | Open the product you need and sign in with your own work email | The practice belongs to you and has the right name |
| You are a client uploading documents | Follow the accountant's request | Use the [client access flow](/docs/account/client-access), rather than setting up a practice |
The path is **sign in → confirm the practice → complete the setup shown → add
clients → complete a first task**. Inviting colleagues is optional for a solo user's first workpaper.
## 1. Sign in with the right account [#1-sign-in-with-the-right-account]
Open [Workpapers](https://beforemay.com.au/cases).
Use the address your colleague invited, or your own work email for a new practice.
Choose an offered provider or **Send magic link**. The email contains a link
and a six-digit code. Complete any second-factor setup or check shown before
working with practice data. [The sign-in guide](/docs/account/signing-in) explains
passkeys, authenticator apps and the temporary setup deadline some existing
members see.
**Check:** reaching the product with your account is the sign-in result. A
message saying that a code was sent does not mean you have signed in yet.
## 2. Confirm which practice you are working in [#2-confirm-which-practice-you-are-working-in]
If an invitation is offered, check the practice name and choose **Join**.
If you already belong to several practices, select the intended one. A new
account may start with a generated practice name; confirm it in setup before
using it in client-facing work.
If you expected an existing practice but cannot see it, check your sign-in
address and ask its Owner or Admin to check the invitation. If invitations
could not be loaded, reload and resolve that error before creating another
workspace. A second practice has a separate directory; it does not reconnect
you to the first one's clients.
**Check:** the correct practice name is selected and your role is appropriate.
An empty directory is expected in a new practice; it needs investigation if
you expected an existing client list.
## 3. Complete the setup steps shown [#3-complete-the-setup-steps-shown]
The wizard adapts to the practice and your permissions. Follow the steps shown
for your account; you should not expect every screen below on every visit.
| Step | What to do | What confirms this step |
| ----------------------------------------------------- | --------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- |
| Terms and disclosures, when shown | Read the documents and acknowledgements; accept using the screen's controls | The acceptance succeeds and the wizard advances |
| Practice details, for a new practice's Owner or Admin | Confirm the firm name; add a tagline and logo if needed, then continue | The save succeeds; no error remains on the step |
| Security, if not already completed at sign-in | Add and confirm a passkey, or set up and verify an authenticator app | The verification succeeds; simply displaying a QR or opening a passkey prompt is incomplete |
| Team, for an Owner or Admin | Invite the people who need access, or set up the team later | Created invitations are distinct from colleagues who have joined |
| How you heard about BeforeMay, when shown | Choose the relevant option or continue using the offered control | The wizard reaches the product's welcome |
| Product welcome | Use the final button to enter the product | You reach the product workspace after completion succeeds |
Team and some optional setup steps offer **Set up later**. Using it does not
create an invitation or complete that optional task. Practice-member security
setup requires a second factor; eligible existing members may postpone only
within the temporary grace period shown on their screen.
## 4. Add the people and clients you will work with [#4-add-the-people-and-clients-you-will-work-with]
For colleagues, use [Team](/docs/account/team). Check the accepted roster, not
only the **Waiting to join** list. Each colleague uses their own login.
Start with [your first workpaper](/docs/getting-started/first-working-paper) to
choose the client, financial year and return type, then upload the source files.
## 5. Complete one task and inspect its result [#5-complete-one-task-and-inspect-its-result]
| Product | Follow this walkthrough | Completion means |
| ---------- | ----------------------------------------------------------------------- | -------------------------------------------------------------------------------------- |
| Workpapers | [Build your first workpaper](/docs/getting-started/first-working-paper) | A delivered workbook exists; complete your own review before marking the case complete |
Before considering setup complete, confirm the right account, practice, role
and client. Confirm required security setup. Finally,
use the tutorial's result check; arriving at the product's home screen does not
establish that your first client task is finished.
Check the practice name before working: having the same account does not mean
all practices you belong to share their data.
---
# Sign in and protect your account (/docs/account/signing-in)
Source reviewed: 2026-10-20 · Product documentation
Open the product you intend to use and choose **Sign in**. Use the email address
on your team invitation so the product can resolve your practice membership.
## Email code [#email-code]
Enter your email address and we email you a six-digit code. You can paste the
whole code into the boxes.
1. Enter **Work email**, then choose **Email me a code**.
2. Check that **Enter your code** shows the address you intended.
3. Enter the code from the email. Six complete digits are submitted
automatically; the sign-in button also remains available.
4. Finish the second-factor screen when asked, then confirm your practice.
**Resend** has a 60-second cooldown. Check spam and the address you entered
before requesting another message. Use the latest message rather than trying
every older code.
## Microsoft, Xero, Google and SSO [#microsoft-xero-google-and-sso]
**Continue with Microsoft** and **Continue with Xero** are on the screen;
Google and SSO are under **More ways to sign in**. Use a provider offered on
the screen.
**The first time you sign in with Xero**, we email a six-digit code to the
address on your Xero login, to confirm it is yours. After that, Continue with
Xero takes you straight in. Signing in with Xero does not connect your
practice's Xero organisations; that is a separate step on the Integrations
page. A provider sign-in still needs to resolve
the invited account and its practice membership. For SSO, the domain of your
work email identifies the configured identity provider. If the domain is not
set up, use another offered sign-in method or contact your practice's
administrator.
**Microsoft sign-in and Outlook connection are separate.** Signing in with
Microsoft does not by itself let BeforeMay read or send your mailbox.
## Second factor [#second-factor]
Practice-member setup requires a passkey or authenticator app. If you have not
added one, follow the setup screen before entering the workspace. Eligible
existing members can see a temporary grace-period banner; use **Set it up now**
and complete setup before the deadline shown.
For a passkey, choose **Add a passkey**, complete your device's prompt, then
**Confirm with your passkey**. For an authenticator, choose **Use an authenticator
app**, scan the QR code and verify a code from that app. Displaying the QR code
or closing the device prompt does not finish setup.
On later sign-ins, use the code from your authenticator app, or **Use your
passkey** when you have registered one and the browser supports it. A passkey
prompt you close has not completed the check; open it again when ready.

The shared second-factor screen with both an authenticator and a registered passkey available. The choices depend on your account and browser; this example did not verify either factor.
Authenticator codes here come from your authenticator app, rather than the
email used in the previous step. After successful verification, the product
continues to your workspace or any setup it still needs.
The practice screen locks after 30 minutes of inactivity. Unlock it with an
offered second factor, or sign out. Repeated incorrect authenticator codes can
temporarily block code verification; follow the error's retry time rather than
continuing to guess.
Do not share login codes, passkey access or a signed-in browser with colleagues.
Invite each colleague as their own member instead.
## If you cannot get in [#if-you-cannot-get-in]
* No email: confirm the address, check spam and wait for the resend timer.
* Wrong practice: confirm which address and provider you signed in with.
* Passkey unavailable: try a supported browser or an enrolled authenticator.
* Lost all second factors: ask an authorised practice Owner or Admin, or
[contact support](/docs/help), for a recovery reset. After a reset, sign in and
set up a new factor; the old devices no longer provide access. Creating a
second practice will not recover access to the first.
For the technical session boundary, read [access controls](/docs/trust/access-control).
## Check that sign-in is finished [#check-that-sign-in-is-finished]
| What you see | Meaning | Next action |
| ---------------------------------------- | ---------------------------------------------------------------- | ---------------------------------------------------------- |
| Enter your code | The email was requested; account verification is still pending | Use the latest code or link |
| Secure your sign-in | A second factor still needs to be set up | Add and confirm a passkey, or verify an authenticator code |
| Two-factor authentication | The account still needs its enrolled second factor | Verify using an offered method |
| Setup deadline banner | An eligible account is temporarily inside its setup grace period | Set up a factor before the displayed deadline |
| Locked | The workspace is locked after inactivity | Unlock using an offered method or sign out |
| Join your practice or practice selection | Authentication succeeded; confirm the membership/workspace | Join or select the intended practice |
| Setup wizard | The product has setup or policy steps to finish | Follow [practice setup](/docs/account) |
| Product workspace | You can work in the selected practice | Confirm its name and your role before opening client data |
Next: [confirm the practice and finish setup](/docs/account).
---
# Team roles and invitations (/docs/account/team)
Source reviewed: 2026-10-01 · Product documentation
Each colleague signs in with their own account. Open your product's **Team**
settings to see the practice roster and outstanding invitations.
## The three roles [#the-three-roles]
| Role | What it permits |
| ------ | ----------------------------------------------------------------------------------------------------- |
| Owner | Full access; chooses Admins and can transfer ownership to an existing member. |
| Admin | Manages clients, practice settings, billing and the team; cannot choose Admins or transfer ownership. |
| Member | Works with the practice's clients; cannot manage settings, billing or the team. |
There is one Owner. Ownership moves through a handover to an existing member,
not an invitation to a second Owner. An Admin can remove Members; the Owner can
remove Admins and Members. The Owner cannot remove their own seat in place of
transferring ownership.
## Invite a colleague [#invite-a-colleague]
1. Open **Team** with an Owner or Admin account.
2. Enter one email or paste the addresses offered by the invite form.
3. Choose the permitted access level and review the addresses.
4. Create the invitations. The recipient opens the link and signs in using the
invited address.
5. Confirm the person appears in the roster after accepting.

The actual shared team screen, with a fictional Owner, Member and a person Waiting to join. Taylor's address is only entered in the form; no invitation was created or sent in this capture.
Read the invitation result as well as the list. An invitation can be created
even when its email could not be sent. Resolve delivery using the offered link
controls; do not assume an email error means nothing was created.
## Confirm that a colleague has joined [#confirm-that-a-colleague-has-joined]
1. Ask the colleague to open the latest invitation and sign in using the
invited address. They must accept the invitation, not only sign in.
2. Refresh the team screen and find them in the main roster with the intended
**Access** level. **Waiting to join** means they are not yet a joined member.
3. Have them select the practice in the product they need. Missing Team or
settings controls can be expected for a Member; check their role before
treating that as a broken account.
The job-title field describes their position. It does not grant permissions;
the **Access** column does. A colleague should not need your login to finish
their own setup.
If they have not joined, check the email, link expiry and selected account. The
pending row's copy control issues a **new** link and invalidates the previous
one; send the replacement and stop using the older invitation.
## Change or remove access [#change-or-remove-access]
The Owner can change an existing person's access. Revoke an outstanding invite
when it is no longer needed. Removing a colleague's membership does not erase
the practice's client records.
API keys act as the practice rather than the colleague who created them. Review
[API keys](/docs/technical/mcp) separately when someone leaves; removing their
membership is not a replacement for revoking an integration credential.
Next: [build your first workpaper](/docs/getting-started/first-working-paper), or return
to the [setup walkthrough](/docs/account).
---
# Check storage use (/docs/billing/check-storage)
Source reviewed: 2026-10-01 · Product documentation
Open **Billing → Plan & balance**. The **Document storage** meter sits below the balance. It counts the practice's stored receipts and workpapers against the plan allowance.
{/* SCREENSHOT: Plan & balance storage meter and over-allowance explanation, /cases/billing */}
If the practice is over its allowance, the same page explains **Storage over your allowance** and the current charge based on average use. Read that figure there before changing the plan or payment method; it is a usage charge, not a block of storage to buy in advance.
If the page says storage usage could not be loaded, refresh it before relying on the meter. Owners and admins can use **Payment methods** to check the card on file.
---
# Download a tax invoice (/docs/billing/tax-invoices)
Source reviewed: 2026-10-01 · Product documentation
Open **Billing → Tax invoices**. Each row shows the invoice number, date, amount and status. Choose **Invoice** on the row you need; it opens the available invoice PDF or hosted invoice.
{/* SCREENSHOT: Tax invoices list showing an Invoice link beside a paid charge, /cases/billing/invoices */}
Plan renewals, top-ups and auto top-ups appear here. If there are no rows, the page says **No invoices yet**. If billing history fails to load, refresh before assuming a charge has no invoice.
For a charge older than the most recent 24 shown here, open **Payment → Manage in Stripe**. That is also where the page sends you for a refund request. An owner or admin can access billing; members should ask one of them for the invoice.
---
# Top up your balance (/docs/billing/top-up)
Source reviewed: 2026-10-12 · Product documentation
Workpapers builds are paid from the practice balance, shown in Australian dollars. Open **Plan & balance** from the sidebar to see it. **Usage** shows what the practice spent, month by month, and every charge.
{/* SCREENSHOT: Plan & balance page with the balance, Top up and auto top-up, /cases/billing */}
To add to it, choose **Top up**. Pick an amount under **Add balance**; the button underneath shows what you'll pay. Check that figure before continuing to checkout. Top-ups **never expire**.
To stop work waiting on the balance, switch on **Auto top-up** on the same page. Choose when to refill (**When the balance falls below**), how much to **Add**, and the most it may charge (**At most each month**). It needs a card on file, which you add under **Payment**. With auto top-up off, a build that the balance can't pay waits until someone tops up.
Only the practice owner and admins can manage billing; a member should ask one of them to top up.
Before a build starts, the case shows its own price. A simple, standard or complex return costs a different amount, so read that figure rather than assuming one price for every case.
---
# Add an email to a case (/docs/cases/add-an-email)
Source reviewed: 2026-10-01 · Product documentation
Save the message as an email file, then open the case and drop it on the file area. You can also use **Browse files** to select the saved message. The case accepts .eml, .msg, .mbox and .emlx files.
The uploader opens the email and adds its covering text as a note alongside the attachments. Check **Sources** after the upload finishes; each resulting file is read through the usual case process.
{/* SCREENSHOT: Case upload area after a saved email expands into a note and attachments, /cases/c5 */}
On Windows, dragging a message directly out of Outlook may pass no file to the browser. If you see **Nothing came through in that drop**, drag the message to your desktop first, then drop the saved file into the case. Dragging an attachment out of the message also works.
Encrypted mail needs the recipient's key. Open it in your mail app and save the attachments, or ask for an unencrypted copy. The case gives a reason when it cannot open an email or an attachment.
---
# Chasing documents (/docs/cases/chasing-documents)
Source reviewed: 2026-10-01 · Product documentation
A build produces two kinds of output that people constantly merge, and should
not.
| | Review point | Chase |
| --------------- | -------------------------- | --------------------------------------- |
| What it is | A judgement the AI made | A document that is absent |
| Where it shows | Against the workpaper line | The **Awaiting** panel |
| What you do | Reply to it, or ignore it | Ask the client through Email or Message |
| Who resolves it | You | Them |
"This looks like a private-use apportionment" is a review point. "There is no
June bank statement" is a chase. Putting the second in your review queue means
sitting on a task you cannot complete.
The **Awaiting** panel is the whole list, and it keeps what has already arrived
struck through rather than deleting it — so "have we asked for this yet" has an
answer after the fact.
{/* SCREENSHOT: Awaiting card with Chase action and outstanding items, /cases/c4 */}
## How the chase list is built [#how-the-chase-list-is-built]
Not by counting files. A chase line has an identity — what kind of document,
which period, which instance — so twelve monthly BAS is not "BAS: 12 uploaded"
but a period with gaps in it. A missing quarter is a gap in a range, and that is
how it is reported.
## Sending it [#sending-it]
Choose **Chase** to open a draft under **Email**, or switch to **Message** for
the portal conversation. Check the selected documents and edit the wording
before you use **Mail app** or **Copy**. See [Request missing documents](/docs/cases/request-documents).
You can build a workpaper with documents outstanding, and often should —
the result tells you what the gaps actually cost. What you cannot do is treat
that build as final.
---
# Mark a case complete (/docs/cases/complete-a-case)
Source reviewed: 2026-10-01 · Product documentation
Open the case after reviewing its workpaper and outstanding documents. Choose **Mark complete** in the case header. The dialog lets you rate the result from one to five and add an optional note under **Anything to note?**. Choose **Mark complete** again to save it.
{/* SCREENSHOT: Mark complete dialog with rating and optional note, /cases/c5 */}
The case moves to **Complete** in the case list. The header then shows **Completed · …/5**; open it to edit the rating or note with **Update**.
If you want to mark several cases at once, choose **Select** on **Cases**, select the rows, then **Mark complete**. Bulk completion does not capture a rating. Open a case to leave one.
Completion is your review decision. The [next-year roll-forward](/docs/cases/roll-forward) action appears on a completed case.
---
# Invite a client to their portal (/docs/cases/invite-a-client)
Source reviewed: 2026-10-01 · Product documentation
The invitation belongs to a case. Check the client and financial year at the top of the case before sending it.
1. Open the case and choose **Invite client** in the header.
2. Confirm the email address you want the invitation bound to. The client must sign in with that address.
3. Choose **Send invitation**. The case copies the invitation link. Paste it into your email or message to the client. If they have not accepted it and need the link again, choose **Resend invitation** and share the link it gives you.
{/* SCREENSHOT: Case invite dialog with Send invitation and the resulting link-copied notice, /cases/c5 */}
The client opens the link, signs in with the invited address and chooses **Accept invitation**. Once accepted, their uploads go into this case. The invitation page also gives them a **Decline** choice.
If they say the link opens under the wrong account, ask them to check the email shown on the invitation page. [What the client sees](/docs/client-portal/what-the-client-sees) covers the next screen.
---
# Fix a locked PDF or phone photo (/docs/cases/locked-pdfs-and-photos)
Source reviewed: 2026-10-01 · Product documentation
If a PDF asks for a password during upload, enter it in the case's password dialog. The password stays in that browser tab; the unlocked copy goes through the ordinary upload path.
{/* SCREENSHOT: Password prompt for a locked PDF during case upload, /cases/c5 */}
If the locked file is already in **Sources**, open its row and choose **Enter password**. The case replaces the stored locked file with the readable copy after it succeeds. Closing the dialog leaves the locked row in place.
An older iPhone HEIC photo may also sit in **Sources** unreadable. Open its row and choose **Convert to JPG**. If conversion fails, save the photo as JPG on the phone or computer and upload that copy.
{/* SCREENSHOT: Sources row showing Enter password or Convert to JPG repair action, /cases/c5 */}
Check the resulting document row before generating the paper. A row that is still flagged has not become usable evidence just because the file arrived.
---
# Request missing documents (/docs/cases/request-documents)
Source reviewed: 2026-10-01 · Product documentation
Open the case and find **Awaiting** in the right rail. This is the list to check before you chase a client.
## Add what is missing [#add-what-is-missing]
Choose **Add** below the list. If it is empty, use the **+** button in the **Awaiting** heading. **Add documents to request** lets you search the document list or type a one-off name. The full list opens from the expand button as **Awaiting from client**.
{/* SCREENSHOT: Awaiting card with Add and Chase controls, /cases/c5 */}
Upload the document when it arrives. The list keeps received items visible so you can see what was asked for and what came in.
## Chase the client [#chase-the-client]
Choose **Chase** on the **Awaiting** card, or **Chase up** at the bottom of **Sources**. The overlay opens on **Email**. Check the selected documents, edit the draft, then use **Copy** and paste the text into your mail app. **Message** is the portal conversation route; if the client has not joined, its invite field lets you prepare an invitation link first.
{/* SCREENSHOT: Chase-up overlay showing Email and Message tabs, /cases/c5 */}
The selection in this overlay shapes this request. It does not remove an item from **Awaiting**.
---
# Restore a deleted case (/docs/cases/restore-a-case)
Source reviewed: 2026-10-01 · Product documentation
To remove a case, open its menu, choose **Delete case…**, then confirm **Move to Trash**. The confirmation tells you that the case and its documents remain recoverable for the displayed period.
{/* SCREENSHOT: Case delete confirmation showing Move to Trash, /cases/c5 */}
Open **Trash** from the Cases navigation. Find the client and financial year, then choose **Restore** on that row. The case returns to the case list with its documents. **Back to cases** takes you there.
{/* SCREENSHOT: Trash page showing a case, recovery countdown and Restore, /cases/trash */}
**Delete now** and **Empty trash** are permanent deletion actions. Use **Restore** while the countdown is still running if the removal was a mistake.
---
# Roll a case forward (/docs/cases/roll-forward)
Source reviewed: 2026-10-01 · Product documentation
Finish this year's case and choose **Mark complete**. In the case header, choose **Roll forward to FY …**. On the **Complete** tab of **Cases**, the row offers **Roll forward FY …** as another way in.
{/* SCREENSHOT: Completed case header with Roll forward to FY action, /cases/c6 */}
The new case keeps the client and entity type, and carries forward the document chase list. Check the new financial year and its **Awaiting** list before requesting anything; last year's list is a starting point for this year's evidence.
If next year's case already exists, the header changes to **Open FY … case**. Open that case rather than creating another. Last year's workbook remains with last year's case; build this year's paper from this year's source files.
---
# The case model (/docs/cases/the-case-model)
Source reviewed: 2026-10-01 · Product documentation
**A case is one client, one financial year.** Everything — documents, review
points, the workbook, the chase list — hangs off that pair.
The constraint is deliberate. A client folder that spans years cannot answer
"what is outstanding for FY2025-26" without someone deciding which documents
belong to which year, and that decision is exactly the one people get wrong at
volume.
## Finding a case [#finding-a-case]
{/* SCREENSHOT: Cases list with current search and financial-year filters, /cases */}
The **financial year** filter is the one to reach for first: at any point in a
season you are working one year and glancing at another, and the list is sorted
by priority, not by year.
It appears once your list spans more than one year — in a firm's first season
there is nothing to choose between, and rolling last year's cases forward is
what creates the second.
{/* SCREENSHOT: Cases list with financial-year filter open, /cases */}
Search covers **cases and the documents inside them** — a client's name, a file
name, or a phrase that appeared in a statement.
## Stages are derived, not set [#stages-are-derived-not-set]
The list reflects what has happened in the case: documents arriving, a build
running and work still outstanding.
**Mark complete** is manual because finishing the review is your decision. A
completed case moves to the **Complete** tab and carries the date it was marked.
{/* SCREENSHOT: Completed case with its date and rating, /cases/c6 */}
Add a document after a build and the **Workpaper** card says **Documents
changed since the last generate.** Choose **Update** to rebuild from the
changed set before relying on the figures.
## Next year [#next-year]
On a completed case, choose **Roll forward to FY …**. The new case carries
client details and the chase list. Check that list against this year's records
before asking for files. See [Roll a case forward](/docs/cases/roll-forward).
---
# Upload a folder of files (/docs/cases/upload-a-folder)
Source reviewed: 2026-10-01 · Product documentation
Open the right case first. Under the drop area, choose **Upload folder** and select the folder of source files. You can drop files onto the case instead. If the client sent a ZIP, drop it or choose it through **Browse files**; the uploader opens the ZIP and checks each file inside separately.
{/* SCREENSHOT: Case drop area with Browse files and Upload folder, /cases/c5 */}
Watch **Uploading & analysing** until it clears, then look through **Sources**. A ZIP is a container; the files inside become the case documents. The ZIP itself is not stored as a source document.
A cloud file that exists only as a OneDrive or iCloud placeholder may need to download to your computer before it can be read. Keep the folder available while the case checks it. If a file or subfolder could not be opened, read the upload result rather than assuming the whole folder landed.
Use [What to upload](/docs/getting-started/what-to-upload) to decide whether the case has enough evidence to build.
---
# Change the portal language (/docs/client-portal/change-language)
Source reviewed: 2026-10-01 · Product documentation
On the invitation page, ask the client to look for the globe button. It is labelled **Choose language** for assistive technology. The same control stays in the portal header after they join.
{/* SCREENSHOT: Portal invitation with the language menu open and native-language options, /portal/ */}
Open it and choose the language written in its own script: **English**, **简体中文**, **繁體中文**, **Tiếng Việt**, **हिन्दी**, **Español** or **Français**. The portal changes on that device. The firm-side Workpapers case stays in English.
The client's own choice on a device takes precedence over a practice preference. If a checklist item was entered only in English, its text can still appear in English; the surrounding portal controls follow the chosen language.
---
# Help a client upload from a phone (/docs/client-portal/upload-from-a-phone)
Source reviewed: 2026-10-01 · Product documentation
Once the client has accepted the practice invitation, they can open the BeforeMay mobile app for the same practice. The work screen has **Still needed** and **Uploaded** lists.
1. Ask them to open **Still needed** and tap the document the practice requested.
2. They can choose **Take a photo**, **Choose from library** or **Choose a File**.
3. After sending it, they can check **Uploaded**. A completed checklist item shows **Done**.
{/* SCREENSHOT: Mock mobile client checklist with Still needed, Uploaded and the camera options, mobile client case */}
The app may read a photo and match it to a checklist item. If it does not match, the file can still be uploaded for the accountant to review. A client can also attach a photo or file in **Messages**.
For a blurred receipt, ask for another picture with the whole page visible. The case's **Sources** row is where you check whether the upload became readable evidence.
---
# What your client sees (/docs/client-portal/what-the-client-sees)
Source reviewed: 2026-10-01 · Product documentation
In the case, choose **Invite client**, confirm the address and choose **Send invitation**. Paste the copied link into your email or message to the client. The link opens an invitation page showing the practice name. The client signs in with the address you invited and chooses **Accept invitation**.
{/* SCREENSHOT: Client invitation page with Accept invitation and the invited address, /portal/ */}
After joining, the client sees their **Overview**, **Documents**, **Messages**, **Activity**, **Invoices** and **Profile** in the portal. The overview shows readiness and items still needed. The **Documents** area lists what they have sent; **Messages** is the conversation with the practice.
{/* SCREENSHOT: Mock client portal overview showing checklist and still-needed count, /client/ */}
An item in the case's **Awaiting** list can appear in the client's checklist. Ask the client to use the requested item when uploading so the file lands against the right request. Their uploads enter the same case you invited them from. They can also see files the practice has shared with them.
If a client reports an empty or wrong workspace, first confirm the invitation email and the signed-in account. [Inviting a client](/docs/cases/invite-a-client) covers issuing a fresh link.
---
# Build your first workpaper (/docs/getting-started/first-working-paper)
Source reviewed: 2026-10-01 · Product documentation
## Before you begin [#before-you-begin]
Have the client, financial year and return type, plus readable source documents.
Choose the correct practice. This walkthrough prepares an Excel workpaper;
it does not lodge a return.
If you have not yet confirmed your account, practice and client directory,
finish [practice setup](/docs/account) first. The same client can have several
cases for different years; choose the intended client and period together.
## Create the case [#create-the-case]
From **Cases**, choose **New case** and confirm the client, year and one of the
return kinds offered by the current form. The return kind selects the relevant
workpaper pack. If the kind you need is not offered, confirm support before
proceeding; do not substitute a different entity kind.
Use **Upload & auto-fill** for a prior return or ATO prefill, or **Enter
manually**. Individual is available to every practice; Company and Trust
require invitation access. Partnership is not offered in the new-case picker.

Example of creating a case. Confirm the client and period before continuing.
**Check:** the new case opens with the intended client and year. If you already
have a case for that work, inspect it before creating another one.
## Add evidence [#add-evidence]
Drop files on the case or use its file picker. Add the prior return and current
ATO prefill when relevant, alongside the year's actual source records.
Check the **Sources** list, analysis state and any unreadable or duplicate notice.
Wait for uploads and required reading to finish before preparing the paper.
**Check:** each intended file is in **Sources**, with any reading failure or
missing-evidence issue understood. Selecting files in a picker is not the
same as a finished upload.

Files are added to the case's evidence. The current screen may show Add in the Sources rail.
Use [what to upload](/docs/getting-started/what-to-upload) for examples by entity
and [file formats](/docs/technical/file-formats) for limits.
## Prepare the paper [#prepare-the-paper]
Choose **Prepare workpaper** from the case. Check the preflight choices,
notes, price and any incomplete-evidence warning. Independent review and
who answers AI questions can be selected where your account permits them.
AI auto-answer permission is a personal setting in **Settings → Advanced**;
read its acknowledgement before enabling it.
The action reports **Preparing workpaper…**, **Reviewing — open draft**
or **Waiting on your answer…** as the run progresses. A draft can be inspected
read-only, but is not the delivered workbook. Respond to questions using
[the question guide](/docs/review/questions).
**Check:** read the run's current state. **Waiting on your answer…** needs your
response; **Reviewing — open draft** is still in progress. Continue to your
final review only when a workbook is delivered.
## Review the result [#review-the-result]
Open **Workpaper** when output is delivered. Check the client and year,
material amounts, source references, review points and missing documents.
Resolve findings and inspect any changes the assistant makes. Delivery does
not establish that every automated check passed or your review is complete.

Example review points. Use the current panel to record answers and hand them to the assistant.
The build can deliver a rendered paper with remaining check findings. Other
conditions prevent delivery or hold the run for investigation. Read the stated
result rather than treating every available workbook as a clean outcome.
## Save, download and complete [#save-download-and-complete]
Editable non-formula cells can be corrected in the current workbook. Save and
check the resulting version and affected totals. Download the current `.xlsx`
for your records. Use **Mark complete** only after your own review is finished.
Keep the relevant source documents with the reviewed version.
Manual edits autosave; check the **saved** state before relying on a download.
**History** records edits and delivered versions. An update normally continues
from the edited paper; a fresh build starts from the source documents again.

Example delivered workbook. Formula cells remain locked in the editing flow.
## When the result is incomplete [#when-the-result-is-incomplete]
If evidence changed after preparation, use the case's Prepare/update workflow
to refresh it. If a run fails, keep its reference and the error; do not repeatedly
start new builds without understanding the cause. A failed draft remains an
inspection aid, not output to file as complete.
## Completion check [#completion-check]
| Check | What to inspect |
| ---------------------- | ------------------------------------------------------------------------------------------------- |
| Correct context | Client, entity kind and financial year on the case and workbook |
| Evidence included | The intended files are in Sources; reading failures and missing evidence are resolved or recorded |
| Delivered output | You are looking at the delivered workbook, rather than an in-progress or failed draft |
| Review finished | Material figures and source references checked; questions and remaining findings dealt with |
| Saved version retained | Reopen the current version after edits, compare affected totals and download the intended `.xlsx` |
| Case complete | Use Mark complete after your review; a completed case is not a lodged return |
Next: [check a figure against its source](/docs/tutorials/trace-a-figure).
---
# What to upload (/docs/getting-started/what-to-upload)
Source reviewed: 2026-10-01 · Product documentation
Start with readable source files in the [supported formats](/docs/technical/file-formats).
Prior-year records and current-year ATO prefill provide useful comparison
context alongside the client's actual statements and evidence.
## The two that matter most [#the-two-that-matter-most]
**Last year's return.** It provides a comparison for recurring income,
deductions and balances. Check whether a prior-year item is still relevant
and whether this year's evidence supports it.
**This year's ATO pre-filling report.** It gives the build a second source to
check against client-supplied income records. Read any disagreement it raises.
## The rest, by entity type [#the-rest-by-entity-type]
| Return type | Also worth having |
| ----------- | -------------------------------------------------------------------------- |
| Individual | Payment summaries, private-health statement, rental agent summary, logbook |
| Sole trader | Bank statements for the full year, asset purchases, home-office basis |
| Company | Trial balance, BAS for every quarter, the ATO integrated client account |
| Trust | Trial balance, the trust deed if a distribution question is likely, BAS |
## What happens when a file lands [#what-happens-when-a-file-lands]
Each file shows **Uploading & analysing** while it is read. When it settles it
carries a suggested name, the period it covers, and the role it plays — a trial
balance and a supporting receipt are routed differently, and that routing is
what puts a figure in the right schedule.
The **Sources** rail is where you see what it decided:
{/* SCREENSHOT: Current Sources rail after document classification, /cases/c5 */}
A document still being read is not part of the case. Pressing generate while
files are mid-analysis builds a workpaper from the ones that happened to
finish first.
## When a file cannot be read [#when-a-file-cannot-be-read]
Check any reading failure or flagged source row. Replace an unreadable photo
with a clearer copy or provide a readable export before relying on its figures.
{/* SCREENSHOT: Current flagged source row showing why a file could not be read, /cases/c5 */}
## The trial balance is its own page [#the-trial-balance-is-its-own-page]
For enabled company and trust cases, the trial balance has a dedicated screen.
Upload an export, or import a trial balance already in the case. Accounts are
auto-classified; correct any mapping, then choose **Save**.
{/* SCREENSHOT: Trial balance page for an enabled company case, with Upload file and Save, /cases//trial-balance */}
## Duplicates [#duplicates]
Files are hashed on content. Upload the same document twice — under a different
name, from a different folder — and the second copy is kept for the record and
excluded from the build. You do not need to delete it.
---
# Reconcile ATO pre-fill with client records (/docs/guides/ato-prefill-reconciliation)
Source reviewed: 2026-10-01 · Product documentation
The client's bank statement shows an interest credit that looks close to, but not quite the same as, the ATO pre-fill amount. Choosing one figure without recording why leaves the reviewer to repeat the search.
## Compare by payer and income type [#compare-by-payer-and-income-type]
For **2025–26**, gather the current-year ATO pre-filling report, bank and dividend statements, income statements and the prior return. Work payer by payer. Check the name, period, gross amount, withholding and any component that a bank or fund reports separately. A pre-fill can arrive after the client documents, so make sure both cover the same year and version.
For interest and dividends, keep the underlying statements with the comparison. For salary, compare the income statement as well as any payslip the client sent. A missing prior-year stream is a document chase; a current-year amount that differs from the pre-fill is a review question with two sources. Record the reason and the figure used, including a corrected statement or payer amendment when that is the answer.
## Let the case expose the disagreement [#let-the-case-expose-the-disagreement]
Upload both sets of records to the individual [Workpapers case](/docs/getting-started/what-to-upload). The build uses the pre-fill-backed income figure and raises a review point when the client document conflicts with it. Open the linked source, [reply to the finding](/docs/review/review-points), and hand the settled answers to the workpaper assistant. Inspect its proposed changes and the resulting figures. Do not erase the differing document; it explains why the question existed.
The comparison is a 2025–26 workflow. Any tax rates or thresholds needed for the finished return come from that income year's workbook rules, not a number supplied by this page.
---
# Build a company paper from a trial balance (/docs/guides/company-trial-balance)
Source reviewed: 2026-10-01 · Product documentation
The Xero closing trial balance is balanced, but the accounts still need tax adjustments and the GST control does not yet explain the unlodged quarter. A balanced export is a starting point.
## Establish the books [#establish-the-books]
For **2025–26**, collect the closing trial balance, prior-year workpaper, general-ledger detail for doubtful accounts, BAS lodgments if GST-registered, the ATO integrated client account, dividend and loan records, and supporting investment statements. Import the software trial balance as the current-year per-books position. Check account classification before looking at taxable income: revenue, expenses, assets, liabilities and equity have different paths through the workbook.
Record year-end adjustments as journals with a source for each one. Reconcile the tax provision to ATO payments and instalments, and the GST control to the unlodged BAS plus timing differences where they apply. Check the franking account against tax actually paid and dividends, and the Division 7A schedule against agreements and repayments. Do not force an out-by to nil with an unexplained journal.
## Review the linked paper [#review-the-linked-paper]
In a company [Workpapers case](/docs/getting-started/first-working-paper), use the dedicated [trial-balance screen](/docs/getting-started/what-to-upload) to upload the export and correct classifications. The delivered **T01 Trial Balance** carries the per-books figures and adjustment journals; **T10 Tax Calc**, **T50 Income Tax Rec** and **T60 BAS & GST Rec** link from it. Read the summary checks and open the source for any figure that looks wrong. The workbook can also carry a downstream journal list for posting back to Xero.
The workbook's company rate selection and other year-specific figures are taken from its **2025–26** rate book. This guide supplies no rate from memory.
---
# Work through crypto disposals from exports (/docs/guides/crypto-exchange-disposals)
Source reviewed: 2026-10-01 · Product documentation
The exchange CSV has a neat gain column. It may have no record of the coins moved in from another wallet, or the purchase that established their cost base. Begin with the transaction trail, not the summary.
## Put the exports in time order [#put-the-exports-in-time-order]
For **2025–26**, gather full transaction-history exports from each exchange and wallet used, including acquisition history brought forward. Identify sales to fiat, swaps into another asset or stablecoin, spending and gifts as disposals. A transfer between the client's own wallets is a movement to reconcile across both sides, not a disposal. Match units sold to acquisition parcels using one stated method per asset and carry exchange and network fees into the cost working.
Check AUD values against the export. When an export has no AUD amount, the 2025–26 workpaper rules use a dated RBA conversion where available; an unsupported estimate should stay outstanding. Keep staking and similar rewards separate from disposal gains as income at receipt. A balance-only statement cannot establish the acquisition cost of units later sold.
## Read what the paper can support [#read-what-the-paper-can-support]
Upload the exports to an individual [Workpapers case](/docs/getting-started/what-to-upload). The worker stages a crypto ledger before the build when it can parse the histories. The **18c CGT Other** schedule then summarises the ledger by asset and holding class, with its source and parcel method. When history or pricing is missing, the figure stays **OUTSTANDING** and the capital-gains summary is provisional. Read the source and [missing-document points](/docs/cases/chasing-documents) before using a net gain.
---
# Review a Division 7A loan schedule (/docs/guides/division-7a-loan-review)
Source reviewed: 2026-10-01 · Product documentation
The general ledger has a shareholder loan balance. That balance alone cannot show whether the agreement, interest and repayments support the year-end position.
## Build one trail per loan [#build-one-trail-per-loan]
For the **2025–26 income year**, collect the loan agreement, prior-year closing schedule, bank entries for advances and repayments, and the company trial balance. Check the borrower and agreement date, then reconcile the opening balance to last year's file. Keep each loan separate. A transfer between accounts is not automatically a repayment by the borrower.
For a complying loan, compare the year's actual repayments with the schedule's minimum yearly repayment and calculate interest using the applicable benchmark. The rate in the repo's **2025–26** rate book is **8.37%**. Check any new loan's lodgment-day position separately; a current-year advance is not made safe by copying an old schedule's terms. If the repayment falls short, identify the amount and escalate the deemed-dividend treatment for review.
## Check the company workpaper [#check-the-company-workpaper]
Upload the agreement, bank evidence and trial balance to a 2025–26 company [Workpapers case](/docs/getting-started/first-working-paper). Its **T40 Div7A Loans** sheet has a row for each loan and computes interest, minimum repayment, closing balance and shortfall from entered facts. Open the source behind the repayments, then read the [review points](/docs/review/review-points). A shortfall is raised as a high-priority point for the accountant to resolve; the workbook does not make the underlying factual decision for you.
The 8.37% figure is from `skills/company-workpaper/reference/rate-book.json` for **2025–26**. Check the income year on any file you roll forward before reusing it.
---
# Task guides (/docs/guides)
Source reviewed: 2026-10-01 · Product documentation
The job usually begins with a document that does not quite answer the question: an agent statement without the direct-paid expenses, a share sale without its purchase notes.
These guides cover the **2025–26 income year** where income-tax treatment is involved. They describe what to collect, what to reconcile and where BeforeMay helps. The accountant still checks the source and signs off the judgement.
---
# Build a rental schedule from agent statements (/docs/guides/rental-agent-statement)
Source reviewed: 2026-10-01 · Product documentation
The client sends an annual agent statement and a folder of council and strata bills. Some of those bills have already been paid by the agent. Adding both sets of amounts is the easy way to overstate the rental loss.
## Start with receipts and the agent's totals [#start-with-receipts-and-the-agents-totals]
For the **2025–26 income year**, get the agent's annual statement, bank evidence for rent paid outside the agency, loan statements, depreciation or capital-works schedule, and invoices the owner paid directly. List rent when received; do not divide the final payment around 30 June because its tenancy period crosses year end.
Use the agent statement's own rent and expense totals. Match a forwarded rates bill to the statement before putting it in a separate paid-personally column. A bill already included in agent disbursements is evidence for that statement amount, not another expense. The statement covers the period the agent managed; do not apply a second letting-period fraction to its own figures.
## Check the direct-paid side [#check-the-direct-paid-side]
Add only costs the owner paid on top of the agent statement. For a cost covering private or unavailable periods, document the period and the basis of any apportionment. Loan interest follows the use of the borrowed funds; the property offered as security does not establish that use. Borrowing expenses and capital works have their own schedules, so keep the source documents instead of dropping their full invoice amounts into other expenses.
## Check the delivered schedule [#check-the-delivered-schedule]
Upload the sources to an individual [Workpapers case](/docs/getting-started/what-to-upload). The 2025–26 workbook has a sheet per rental property and a summary feeding item 21. Compare its agent-statement and personally-paid columns with your source list. Open any disputed cell's document and resolve the [review point](/docs/review/review-points) before accepting the net figure.
---
# Work out CGT on a share sale with parcels (/docs/guides/share-sale-cgt-parcels)
Source reviewed: 2026-10-01 · Product documentation
A broker's annual summary says 300 shares were sold. The client bought them in several parcels at different prices. One average purchase figure would hide which units were sold and whether each parcel was held long enough for a discount.
## Reconstruct the parcels [#reconstruct-the-parcels]
For **2025–26**, get purchase and sale contract notes, the opening holdings register or prior workpaper, and any corporate-action records. Use the trade date for the sale and each acquisition date for its parcel. Record units, total purchase cost including brokerage, sale proceeds and the source note for both sides. Match the sale against the oldest parcel first unless the records support a specifically identified parcel; split a sale across rows when it crosses parcels.
The holding-period check belongs to each parcel's own dates. Under the repo's **2025–26** rate book, the individual CGT discount is **50%** where the parcel qualifies. Apply losses in the capital-gains summary before the discount calculation. A missing purchase cost or date is outstanding evidence; zero would assert a known nil and distort the gain.
## Review the register and summary [#review-the-register-and-summary]
Upload the notes and prior-year register to an individual [Workpapers case](/docs/getting-started/what-to-upload). The investment register records the parcels and feeds the share component of item 18 and the capital-gains summary. Check that closing units and cost agree with the holding statement, then follow a disposal row to its source. Resolve a provisional cost base through [review points](/docs/review/review-points) rather than treating the computed total as final.
The 50% figure is from `skills/individual-itr-workpaper/reference/rate-book.json` for **2025–26**; eligibility depends on the parcel facts.
---
# Prepare a trust distribution workpaper (/docs/guides/trust-distribution-working-paper)
Source reviewed: 2026-10-01 · Product documentation
The trust's accounts are close to final, but the distribution minute is still in a different folder. Put it beside the deed before you allocate a dollar to a beneficiary.
## Gather the records [#gather-the-records]
For the **2025–26 income year**, collect the prior-year workpaper, closing trial balance or cashbook, investment and fund tax statements, the deed's income clause, and the trustee resolution. Check who is named, each beneficiary's status and the percentages or specific entitlements the resolution actually records. An absent or unclear resolution is a question for the trustee, not a percentage to infer from last year.
## Separate accounting income and tax character [#separate-accounting-income-and-tax-character]
Reconcile the accounts to the income and deduction schedules first. Franked distributions, capital gains and foreign income need their character kept through the tax calculation. Compare distributable income under the deed with the accounts result and record the basis if they differ. Then allocate each character to beneficiaries under the resolution; check that the allocations and totals reconcile after rounding.
If the resolution streams a gain or franked distribution to one beneficiary, check the deed and record why that allocation is supported. Record TFN-held status, entity type and residency for each beneficiary. Missing beneficiary detail or an unallocated amount changes the review, even when the total income figure ties.
## Use the workpaper [#use-the-workpaper]
Create a trust case in [Workpapers](/docs/getting-started/first-working-paper) for 2025–26 and upload those records. The delivered workbook has a tax calculation and distribution statement linked to its trial balance and investment schedules. Read the beneficiary rows, source links and [review points](/docs/review/review-points); answer any question about the deed or resolution before treating the allocation as complete.
For the income-year treatment used here, the repo's trust workpaper pack is the source. This guide describes the review job in fresh language; the pack remains the product's internal rules.
---
# Glossary (/docs/help/glossary)
Source reviewed: 2026-10-01 · Product documentation
| Term | Meaning |
| --------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Account | A person's sign-in identity; separate from their practice membership. |
| Practice / firm / workspace | The organisation whose members work on its clients and records. |
| Client record | A person or entity in the shared directory. It can exist without a case. |
| Workpaper / workpapers | The schedules, calculations and supporting evidence prepared for review. Also called work papers or working papers in Australian accounting and tax guidance. |
| Case | A Workpapers engagement for a client and financial year/return type. |
| Source document | The original evidence the firm holds, distinct from an outbound processed copy. |
| Recognised text | Text read from a file or scan; recognition alone does not verify its figures. |
| Draft workbook | Output available for inspection before delivery, or from some failed runs; not the final deliverable. |
| Delivered workbook | Output released by the build process; it can still have findings to resolve. |
| Current version | The version the case uses now, including supported edits; distinguish it from an earlier history entry. |
| Review point | A question, judgement or issue for the accountant to consider and resolve. |
| Chase / Awaiting | Missing evidence requested from the client. |
| Prepare | The case action that begins or refreshes the workpaper workflow. |
| Signed URL | A temporary credential granting access to a particular stored file. |
| Request token | The credential in a signing or verification link; treat it as personal to the intended recipient. |
| MCP | The machine interface through which authorised practice software calls the documented Workpapers tools. |
| Scope | A permission on an API key, such as reading cases or starting builds. |
| CDD record | A customer due-diligence evidence summary with recorded assessments and decisions. |
| Not run | A check did not run or lacks required evidence; it is not a pass. |
| Redaction | Removal or replacement of selected information from material sent onward. |
| Pseudonymisation | Substitution that can still be linked back; it does not make material anonymous. |
Follow [tutorials](/docs/tutorials) for these terms in context.
---
# Get help (/docs/help)
Source reviewed: 2026-10-01 · Product documentation
For a task walkthrough, start with [tutorials](/docs/tutorials). For an error,
read [troubleshooting](/docs/help/troubleshooting). For unfamiliar product terms,
use the [glossary](/docs/help/glossary).
## Product support [#product-support]
Email [support@beforemay.com.au](mailto:support@beforemay.com.au) with:
* the product and practice name;
* the task you were trying to complete;
* the exact error and the time it occurred, including your timezone;
* the relevant case, request or run reference, if available;
* browser/device and whether the issue also happens after a reload;
* a screenshot cropped to the problem and cleared of sensitive details.
Do not include passwords, API keys, sign-in codes, TFNs, full signed file URLs
or personal signing/verification tokens. If a source document is needed,
support can arrange the appropriate way to inspect it. Avoid repeated actions
that create invoices, requests or builds while waiting for help.
## Privacy and security [#privacy-and-security]
Email [privacy@beforemay.com.au](mailto:privacy@beforemay.com.au) for a privacy
request or suspected security/privacy incident. Describe what happened and
which product is affected without sending credentials or a client's identity
image in the initial message. The [Privacy Policy](/privacy) explains the
response process; this page does not add a separate response-time promise.
## Clients of an accounting firm [#clients-of-an-accounting-firm]
Contact your accountant first for a wrong invitation address, replacement link,
missing upload request or questions about your records. The firm controls those
records. [Client access](/docs/account/client-access) and
[account deletion](/delete-account) explain the relevant boundaries.
---
# Troubleshooting (/docs/help/troubleshooting)
Source reviewed: 2026-10-01 · Product documentation
## Sign-in and workspace [#sign-in-and-workspace]
| Symptom | Next step |
| ------------------- | ---------------------------------------------------------------------------------------------- |
| No login email | Check address and spam; wait for the 60-second resend timer. |
| Unexpected practice | Check the signed-in address and select the intended membership. |
| Passkey cannot run | Use a supported browser or an enrolled authenticator; contact support if neither is available. |
| Invitation refused | Use the invited address; ask the firm to correct or reissue it if needed. |
See [sign-in](/docs/account/signing-in) and [client access](/docs/account/client-access).
## Files and workpapers [#files-and-workpapers]
| Symptom | Next step |
| ------------------------- | ---------------------------------------------------------------------------------------------------------- |
| Upload refused | Read the format/size message; export a supported type or unzip the archive. |
| Unreadable evidence | Replace with a clearer original or digital copy; do not treat it as checked. |
| Preparing or reviewing | Inspect the current run state. A visible draft is not delivered output. |
| Waiting on an answer | Open the question, check the evidence and respond within the workflow's displayed window. |
| Build failed or held | Keep the run reference and error; resolve the stated cause or report it before repeatedly starting builds. |
| Delivered with findings | Read and resolve the outstanding items; delivery does not mean every check passed. |
| Documents changed | Refresh the workpaper through Prepare/the update flow before treating its figures as current. |
| File link no longer opens | Reopen the document/workbook to obtain a fresh signed URL. |
For a wrong amount, follow [source tracing](/docs/tutorials/trace-a-figure).
Do not use a failed draft as a filed return or final workpaper.
If these steps do not resolve the problem, [report it with context](/docs/help).
---
# BeforeMay docs (/docs)
Source reviewed: 2026-10-01 · Product documentation
Choose the guide for the work you are doing. Start with a walkthrough if you
are new, or go straight to the system details if you are evaluating BeforeMay
for your practice.
- [Use Workpapers](/docs/products) — Set up your practice, work with clients and finish a task.
- [Technical & integrations](/docs/technical) — Connect your software and understand the system behind it.
- [Security, data & AI](/docs/trust) — Follow the data, inspect the controls and assess the limits.
## Start with a task [#start-with-a-task]
* [Build your first workpaper](/docs/getting-started/first-working-paper) — upload, generate, review and download.
* [Check a figure against its source](/docs/tutorials/trace-a-figure) — follow a workbook cell back to the evidence.
## Workpapers cases [#workpapers-cases]
BeforeMay keeps a client's source files, document requests and workpaper in
one financial-year case. The delivered Excel workpaper still needs your
review. Company and trust papers are available to practices enabled for those
return types.
## Evaluating BeforeMay [#evaluating-beforemay]
Start with [data flow](/docs/trust/data-flow), [access controls](/docs/trust/access-control)
and [AI processing and human review](/docs/trust/ai-processing). The
[assessment guide](/docs/trust/audit-evidence) explains the evidence to request
for a technical or business review.
The [Privacy Policy](/privacy) and [Terms and Conditions](/terms) remain the
policy and contractual documents. These guides explain product behaviour;
they do not replace those documents or your practice's professional judgement.
---
# Invite a team member (/docs/practice/invite-a-team-member)
Source reviewed: 2026-10-01 · Product documentation
Open **Settings → Team**. In **Email addresses to invite**, enter one address or paste a list, then choose **What they can do once they join**. Review the addresses and choose **Invite** (or **Invite …** for a list).
{/* SCREENSHOT: Settings Team page with email entry, access choice and invite action, /cases/settings/team */}
The practice levels are **Owner**, **Admin** and **Member**. An invitation offers **Admin** to the owner and **Member** to an owner or admin. A practice has one owner; handing ownership over is a separate action. Members work with clients and cannot change the team, billing or practice settings.
Invitations that have not been accepted appear under **Waiting to join**. An expired invitation can be sent again with **Invite again**. A fresh invite link stops the old one working. The team list also lets authorised people change access or remove a member.
Removing someone from the practice removes their Workpapers access straight away, while their name remains on work they already did.
---
# Workpapers guide (/docs/products)
Source reviewed: 2026-10-01 · Product documentation
Start with [your first workpaper](/docs/getting-started/first-working-paper):
upload a client's documents, generate the workbook, review the figures and
download the Excel file.
## Set up your practice [#set-up-your-practice]
Read [account and practice setup](/docs/account) and [team roles](/docs/account/team),
then follow a [tutorial](/docs/tutorials).
## Review the result [#review-the-result]
Use [source tracing](/docs/tutorials/trace-a-figure) to check a figure against
its evidence. Read [the working paper](/docs/working-paper/reading-the-workbook)
and [AI findings](/docs/review/review-points) before completing your review.
## Assess before adopting [#assess-before-adopting]
Read [security, data and AI](/docs/trust) and the [data-flow guide](/docs/trust/data-flow)
for Workpapers' processing boundaries.
---
# When the AI asks a question (/docs/review/questions)
Source reviewed: 2026-10-01 · Product documentation
A preparation run can pause on a question and show **Waiting on your answer…**.
Open the question, read its options and evidence and respond on the case. Use a
written answer when the choices do not capture the facts you need to explain.
{/* SCREENSHOT: Current build question with response options, /cases/c2 */}
## The waiting window [#the-waiting-window]
The current Advanced setting describes a normal question waiting window of up
to **15 minutes**. Follow the current run's message and respond promptly; do
not assume the run will wait indefinitely. If it is no longer awaiting input,
inspect its result before attempting another response or build.
The case and notification/email paths can help you find an outstanding question.
Do not depend on a browser notification alone: browser permission, the open tab
and timing affect whether you see it.
## AI auto-answer [#ai-auto-answer]
**Settings → Advanced** offers a personal AI auto-answer permission for that
practice. Enabling it first requires reading and acknowledging the warning.
It is your setting, not a switch that grants the same permission to colleagues.
The preparation choices then decide who answers for that run, subject to the
recorded permission.
With automatic answering selected, the AI can apply its recommended answer and
continue without your immediate decision. Its answers are recorded in the
workpaper's **Review Pts** and case Activity so you can review them afterwards.
This removes a human checkpoint during the build; it does not remove your
responsibility to check the outcome.
## After the answer [#after-the-answer]
Inspect the resulting workbook and findings. A question marked answered is not
proof that the answer was supported by the client's evidence. If the facts were
wrong or incomplete, record the correction and use the offered assistant/update
flow to revise the work.
Next: [review points and findings](/docs/review/review-points).
---
# Review points and findings (/docs/review/review-points)
Source reviewed: 2026-10-01 · Product documentation
A review point is an item the accountant should consider. Read its reasoning,
source evidence and affected schedule before deciding what to do. Review
points, missing-evidence requests and automatic-check findings can coexist.
Open the workpaper's **Review Pts** panel to inspect its points. The former
case-menu **AI findings** action is no longer available; this guide covers the
workpaper's review points and preparation findings.

Example review points; the current panel can hand answers to the workpaper assistant.
## Respond [#respond]
Use the panel's answer/reply controls to record the facts or correction. Use
**Ignore** when the point is not relevant to the case. Untouched points are not
a positive agreement with the AI's treatment. Clearing a list does not prove
the underlying evidence is complete.
The current answer handoff sends responses to the workpaper assistant. It does
not itself guarantee that a new full build has started. Read any proposed cell
change or structural update, then inspect the affected figures and totals after
it is applied. Controls can be unavailable while another run is active or when
you are viewing an older paper.
## Reconcile disagreements [#reconcile-disagreements]
Compare the ATO prefill, source documents, client/year and timing. Explain a
material disagreement rather than assuming whichever number appears first is
complete. A large year-on-year variance is context, not by itself proof of error.
## Review options matter [#review-options-matter]
Independent review can be turned off for a preparation run where the product
offers that choice. AI auto-answer can also change whether a judgement call
waits for you; inspect the recorded answers afterwards. Read
[questions](/docs/review/questions) and [AI processing](/docs/trust/ai-processing)
for those boundaries.
Next: [check a figure](/docs/tutorials/trace-a-figure). Mark the case complete
only when your own review is finished.
---
# System architecture (/docs/technical/architecture)
Source reviewed: 2026-10-02 · Engineering documentation
Workpapers uses BeforeMay accounts, practice membership and client records.
Its screens connect to account, team, file and workpaper-processing services.
## Main boundaries [#main-boundaries]
```mermaid
flowchart TB
accTitle: Practice system architecture
accDescr: Workpapers uses account and client modules. Normal data access is scoped by membership; server functions coordinate privileged operations, Australian processing and external integrations.
A[Workpapers]
A --> P[Shared account, team, client and product modules]
P -->|Authorised account queries| D[(Authentication, practice data and private storage)]
P -->|Privileged or integration requests| F[Server functions: caller and practice checks]
F --> D
F -->|Queue work| W[Australian worker and recognition services]
W --> D
W --> G[Outbound identifier controls]
G --> AI[Configured external AI providers]
AI -->|Stage results| W
F --> E[Connected services]
class F,G control
```
Arrows show responsibilities and principal connections, not every request or
deployment unit. See [data flow](/docs/trust/data-flow) for processing locations.
| Layer | Responsibility |
| ------------------------------ | ------------------------------------------------------------------------------------- |
| Browser applications | User interaction, previews, local file parsing and authorised requests |
| Database and private storage | Practice-scoped records, membership, source documents and output files |
| Server functions | Validate callers, enforce privileged operations and coordinate integrations |
| Australian processing services | Recognise documents, apply outbound identifier controls and run the workpaper process |
| External providers | The configured AI steps and connected services described in the Privacy Policy |
Workpapers' AI provider credentials remain server-side. A browser application's
publishable connection configuration is not a privileged credential. Access
must stay within the caller's authorised practice and permitted action.
## A workpaper's route [#a-workpapers-route]
1. An authorised upload creates evidence in private storage and case metadata.
2. Recognition and analysis prepare the document information used by the case.
3. A build run reads the case evidence and generates a draft workbook.
4. The selected review/repair stages and delivery policy determine release;
some remaining findings can accompany a delivered workbook.
5. The delivered/current version is available for the accountant's review,
permitted edits and download.
A rendered draft and a delivered workbook are distinct states. The public MCP
download tool exposes delivered output, not the earlier draft. Provider and
model choices can change by stage through configuration; a vendor name in a
historical architecture note is not the current runtime setting.
Read [data flow](/docs/trust/data-flow) for destinations and [access controls](/docs/trust/access-control)
for credentials. Maintainers should use the repository's source and current
configuration for module, deployment and incident details.
---
# File formats and limits (/docs/technical/file-formats)
Source reviewed: 2026-10-01 · Engineering documentation
Different tasks accept different formats. A file that can be stored or previewed
is not necessarily readable by every extraction flow.
| Task | Input | Limit or important condition |
| --------------------------------- | ------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- |
| Shared client receipt-upload flow | PDF, common images, CSV/text/JSON/XML, Excel, Word and OFX/QIF/QBO bank exports | Current shared upload cap: 25 MB per file; follow the selected product's notice |
The shared upload cap is not a promise that a file of that size can be processed
in every browser or viewer. Encryption, corruption, missing text and unfamiliar
layouts can still require a different source or manual review.
## Export before uploading [#export-before-uploading]
* Apple Numbers or OpenDocument spreadsheets: export to `.xlsx`.
* Apple Pages and presentations: export to PDF.
* RTF or OpenDocument text: export to `.docx`.
* ZIP: unzip it and upload the files inside; the shared receipt flow refuses ZIP.
* Old Word `.doc`: export to `.docx` or PDF for analysis. Storage acceptance of
the old format is not the same as AI readability.
Email files have an unpacking flow that turns the covering message and
attachments into ordinary files. Do not assume an email extension is accepted
by every direct upload endpoint. Encrypted mail needs a readable export; it
must not be interpreted as an empty email.
## Outputs [#outputs]
Workpapers delivers a plain `.xlsx`.
An Excel export is a file handover, not a live link to the source system.
Keep the original evidence and the version you reviewed with it.
---
# Technical and integration guide (/docs/technical)
Source reviewed: 2026-10-01 · Engineering documentation
For questions about the guides themselves, read [use these docs with AI](/docs/technical/using-ai).
For external software, start with the [Workpapers MCP interface](/docs/technical/mcp).
For file-based handover, use [formats and limits](/docs/technical/file-formats).
For a technical assessment, read the [architecture overview](/docs/technical/architecture)
and [data flow](/docs/trust/data-flow).
## Choose the actual integration [#choose-the-actual-integration]
| Need | Current route | Boundary |
| ----------------------------------------- | ----------------------------------------------------- | ------------------------------------------------------------ |
| Read cases and obtain delivered workbooks | Workpapers MCP with a practice API key | The key's practice and granted scopes |
| Upload case evidence or start a build | MCP write scopes and the documented upload/build flow | Changes records; builds are paid from the practice's balance |
Do not use an internal database table or edge-function name as an undocumented
public contract. The MCP tools expose a deliberate subset of the system and
check their own credentials and scopes.
## Developers maintaining BeforeMay [#developers-maintaining-beforemay]
Local setup, secrets, database migrations, CI and deployment procedures are in
the repository's maintainer documentation. They are separate from the public
integration contract. The public architecture page explains the boundaries
without publishing credentials or operational access instructions.
For the maintained source map, reviewers can ask support for an evidence pack
appropriate to their assessment. Start with [assessment evidence](/docs/trust/audit-evidence)
to specify which controls and deployed version need to be examined.
---
# BeforeMay MCP interface (/docs/technical/mcp)
Source reviewed: 2026-10-23 · Engineering documentation
The BeforeMay machine interface accepts authenticated **HTTP POST** JSON-RPC
requests. It implements `initialize`, `tools/list`, `tools/call` and `ping`.
This guide covers Workpapers tools. The key's scopes decide which tools it sees.
Obtain the configured
MCP endpoint for your practice from support before connecting. The hosted
function route ends in `/functions/v1/mcp`.
## Create and protect a key [#create-and-protect-a-key]
An Owner or Admin can create a key under **Settings → Connections → API keys**,
shown once **API keys for your own agent** is turned on under
**Settings → Experimental**. Choose only the scopes the integration needs. Copy the key when
it is first shown: the stored record contains a hash and the full key cannot be
revealed later. Keep it in your integration's secret storage, not browser code,
a repository or a client document.
Send it as `Authorization: Bearer YOUR_PRACTICE_API_KEY`, with
`Content-Type: application/json`. Keys act as the practice, not the member who
minted them. Review and revoke them independently when an integration or team
member is no longer trusted.
## Scopes and tools [#scopes-and-tools]
| Scope | Tools | Access |
| ----------------- | ------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- |
| `cases:read` | `list_cases`, `get_case`, `list_documents`, `list_runs` | Case details, document metadata and run state; no source file or recognised-text content |
| `workpapers:read` | `get_workpaper` | A short-lived link to a delivered workbook, including its current edited copy when present |
| `builds:write` | `start_build` | Starts a build subject to balance and concurrency checks |
| `documents:write` | `upload_document`, `confirm_upload` | Authorises an upload and files it only after the bytes have arrived |
| `cases:read` | `list_open_questions`, `list_recent_problems` | Questions a build stopped to ask, documents still being chased, and builds that failed in the last 14 days |
## Write tools [#write-tools]
Write tools change the practice's records, so give a key only the write scopes
it needs. Each one runs through the same checks a person in the product would
meet, and records itself in the practice's audit trail.
`tools/list` returns the tools allowed by the presented key, including their
input schemas. Scope checks also apply to calls made directly by name. Case
ownership comes from the key's practice, not a caller-supplied practice ID.
A key acts for the practice, not for a person, so it never sees a **restricted
client** — one an owner limited to named members. Their cases and documents
are left out, and naming one answers as if it did not exist.
## First read request [#first-read-request]
Begin with `initialize`. The implementation answers with protocol version
`2025-06-18` and server version `0.1.0` at this guide's source review.
```json
{
"jsonrpc": "2.0",
"id": 1,
"method": "initialize",
"params": {
"protocolVersion": "2025-06-18",
"capabilities": {},
"clientInfo": { "name": "practice-integration", "version": "1.0.0" }
}
}
```
Then request `tools/list` and use its schema. For example:
```json
{
"jsonrpc": "2.0",
"id": 2,
"method": "tools/call",
"params": {
"name": "list_cases",
"arguments": { "fy": "2025-26", "limit": 25 }
}
}
```
These are request examples, not credentials or real client records. List tools
that accept `limit` default to 25 and cap it at 100. The current schemas do not
provide a pagination cursor; do not assume a capped response is the entire
practice directory.
## Build and download [#build-and-download]
```mermaid
flowchart TB
accTitle: MCP build and delivered-file access
accDescr: A scoped practice key starts a build subject to balance and concurrency checks. Poll the run with backoff; only delivered output receives a temporary download link.
K[Practice key: builds:write] --> C[Check key, practice, balance and concurrency]
C -->|Accepted| R[start_build returns run_id]
C -->|Refused| X[Inspect error and resolve the cause]
R --> B[Queued build and configured review stages]
B --> P[list_runs with cases:read and backoff]
P --> Q{Delivered output exists?}
Q -->|No: still active| P
Q -->|No: failed or cancelled| X
Q -->|Yes| D[get_workpaper with workpapers:read]
D --> L[Download current delivered copy within 300 seconds]
class C,Q control
```
`get_workpaper` also checks that the run belongs to the key's practice. Delivery
is identified by its output file, not merely a phase name or a successful
HTTP response. An earlier draft is not exposed through this tool.
Call `start_build` with `case_id` and optional `notes`. Starting work is paid from
the practice's balance. It returns a run reference; inspect
`list_runs` with backoff rather than holding the request open or repeatedly
starting builds. When the relevant run has a delivered workbook, call
`get_workpaper` with `run_id`.
An unfinished run returns `ready: false`. A delivered file returns a link with
`expires_in_seconds: 300`. Download before it expires or request another link.
The integration cannot obtain a pre-delivery draft through this tool.
## Upload a document [#upload-a-document]
```mermaid
sequenceDiagram
accTitle: MCP upload authorisation and confirmation
accDescr: Authorisation reserves a document and a storage path. The integration uploads bytes directly to private storage, then confirmation verifies and hashes them before filing the document.
participant I as Integration
participant M as MCP server
participant S as Private storage
I->>M: upload_document(case_id, filename)
Note over M: Check documents:write, practice ownership and upload rules
M-->>I: document_id, upload_url, method, content_type
Note over I,M: Authorised but not yet filed as build evidence
I->>S: PUT file bytes with returned Content-Type
S-->>I: Upload response
I->>M: confirm_upload(document_id)
M->>S: Read reserved file bytes
S-->>M: File bytes or missing-file error
alt Bytes arrived and confirmation accepted
Note over M: Hash bytes server-side and file the document
M-->>I: Confirmation result
else Missing bytes or refused confirmation
M-->>I: Error - resolve before starting a build
end
```
1. Call `upload_document` with `case_id` and `filename`.
2. Read `document_id`, `upload_url`, `method` and `content_type` from the answer.
3. PUT the file bytes to that signed URL using the returned Content-Type.
4. Call `confirm_upload` with the same `document_id` and inspect its result.
Authorisation alone is not a filed document. Confirmation verifies the stored
bytes and computes their hash server-side. A failed confirmation must be
resolved before expecting the document to be evidence for a build. A repeated
confirmation can report that the document is already filed; inspect state before
resubmitting the whole upload.
## Interpret failures [#interpret-failures]
Tool answers contain a text content block whose text is JSON. Check both
`result.isError` and the decoded value's `error`, not just HTTP success.
Protocol errors use a JSON-RPC `error` object. Rate-limit refusals can include
`retry_after_seconds`; wait rather than retrying continuously. Quota, scope and
ownership refusals need a configuration or practice decision, not another build.
Metadata can include extracted merchant and amount values. A downloaded workbook
can contain personal financial information. BeforeMay's outbound AI controls do
not govern what your own integration subsequently sends to another service.
---
# Use these docs with AI (/docs/technical/using-ai)
Source reviewed: 2026-10-01 · Engineering documentation
## Ask about one guide [#ask-about-one-guide]
Use **Copy Markdown** above any page and paste it into your assistant with your
question. This includes the guide's title, source-review date, text, links and
screenshots as Markdown references.
For a published page, **Open** includes shortcuts to ChatGPT and Claude. Those
shortcuts ask the service to read the page; they do not run a BeforeMay model.
The service may require you to sign in and may not be able to fetch the page.
A `localhost` preview is only accessible on your computer: copy its Markdown
instead of asking an external service to open that address.
## Provide broader context [#provide-broader-context]
| Export | Use |
| ----------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- |
| [Documentation index](/docs/llms.txt) | Titles, descriptions and the Markdown link for each guide. An assistant can select the relevant pages. |
| [Full documentation](/docs/llms-full.txt) | All public guides together, with their source-review dates. Use as a file or pasted context when your tool supports it. |
These exports are generated from the same pages as the website. They do not
contain client files, practice API keys or internal review-evidence records.
The files live under `/docs` because the main website has its own `llms.txt`.
## A useful question [#a-useful-question]
```text
Using only the attached BeforeMay guide, explain how I trace a workpaper
figure back to its source. Cite the relevant sections. If the guide does not explain
something, say what is missing instead of inventing an action or button.
```
Check the answer against the linked guide and the actual screen. An assistant's
summary does not complete an accountant's review. Ask for clarification when it proposes a step absent from the guide.
Do not add client documents, TFNs, personal request links or credentials to a
documentation question. Any information you type into an outside assistant is
handled by that service; it does not pass through Workpapers' outbound controls.
## Site search and in-site chat [#site-search-and-in-site-chat]
The website's **Search** finds guide titles and passages locally using a
prebuilt index. It does not generate answers. The published documentation does
not currently include a BeforeMay-hosted AI chat.
For a software integration that reads practice data or starts work, use the
[Workpapers MCP interface](/docs/technical/mcp). The documentation exports are
public reading material, not credentials or permission to operate the product.
---
# Accounts, roles and access controls (/docs/trust/access-control)
Source reviewed: 2026-10-02 · Security and privacy documentation
The implementation uses several credentials for different purposes. Review
which one applies to the action rather than assuming every link is a login.
| Credential | Boundary |
| -------------------------- | --------------------------------------------------------------------- |
| Signed-in firm member | The practices they belong to, with role checks for privileged actions |
| Accepted client invitation | The invited client's relationship with the firm |
| Practice API key | The key's practice and granted MCP scopes |
| Short-lived file URL | Temporary access to the specific file whose URL was issued |
## Practice isolation and roles [#practice-isolation-and-roles]
Practice membership determines which practice's records you can access.
Privileged actions also require the appropriate role and permission for the
target record. The UI offers Owner, Admin and Member access, as described in
[team roles](/docs/account/team).
Removing a colleague changes their practice membership. Review machine keys
separately because those keys act as the practice. The MCP server checks scopes
when a tool is called; seeing a tool listed does not grant permission to use it.
```mermaid
flowchart TB
accTitle: Practice access boundaries
accDescr: Practice-member access depends on the signed-in account, target practice and permission for the requested action. This conceptual diagram does not describe every enforcement mechanism.
U[Practice member requests an action] --> S[Check account and target practice]
S --> P{Membership and required permissions permit the action?}
P -->|Yes| A[Read or change authorised practice data]
P -->|No| X[Refuse access]
class S,P control
```
This is a conceptual boundary, rather than an inventory of enforcement paths.
Client invitations, request links and [MCP keys](/docs/technical/mcp) have the
separate limits listed above. A permitted record access does not make the
associated files public.
## Shared sessions and second factors [#shared-sessions-and-second-factors]
The practice products share sign-in within the same browser on
`beforemay.com.au` and its product subdomains. Those products belong to the same
session trust boundary. Treat a signed-in browser as access to your practice;
each colleague should use their own account. Preview domains, private windows
and different browsers do not automatically share the production session.
The source-reviewed practice-member flow requires a passkey or authenticator
app, with a temporary setup grace period for eligible existing members. The
product shows the setup deadline when that grace applies. A successful email
or provider sign-in alone does not complete a required second-factor check.
[Sign-in guidance](/docs/account/signing-in) explains setup, screen locks and
recovery. An assessment should confirm the deployed enforcement, grace settings
and any dedicated demonstration-account exceptions separately.
## Files and request links [#files-and-request-links]
Source documents are in private storage. Authorised flows issue short-lived
signed URLs rather than storing permanent public links. A signed URL is still
a bearer credential while valid: do not paste it into a public ticket or
forward it to someone who should not read the file.
## Scope of this description [#scope-of-this-description]
This guide describes implemented access boundaries, not a penetration-test
report or a guarantee against every cross-practice defect. For assurance,
request the current deployed configuration and negative-access tests listed in
[assessment evidence](/docs/trust/audit-evidence).
---
# AI processing and human review (/docs/trust/ai-processing)
Source reviewed: 2026-10-02 · Security and privacy documentation
Workpapers uses AI to help read, classify, assemble and review workpapers.
The accountant remains responsible for the figures and treatment they rely on.
The system's review and delivery steps do not lodge a return or replace the
practice's professional judgement.
## Inputs and provider choices [#inputs-and-provider-choices]
Processing can include recognised document text, processed source files,
filenames and case context such as financial year and taxpayer name. Provider
and model choices are configured per stage. The [Privacy Policy](/privacy)
names providers and processing countries; ask which apply to your practice
rather than relying on a fixed model name in a guide.
The policy states that client documents and extracted financial information are
not used to train our own or providers' general AI models. Provider retention
is a separate issue; see [retention](/docs/trust/retention).
## Identifier controls [#identifier-controls]
| Material | Control and limits |
| ------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| TFN, Medicare, passport and licence values | Identified values are removed or substituted in outbound material; the gate stops on unsafe or unreadable input rather than sending the original as fallback. |
| Recognised text | Additional bank, email, phone and recognised crypto identifiers are coded or substituted according to the text policy. |
| Source files | Email and recognised crypto identifiers join the sensitive-identifier controls. Bank details and phone values are not removed by the same file policy. |
| Names, addresses and financial facts | Can remain because the workpaper needs the client's context and evidence. |
This is redaction and pseudonymisation, not anonymisation. Detector coverage,
file type, layout and context affect which values are identified. Do not assume
that every personal identifier is removed. The original client record and
source document can still contain the information the firm needs. TFN storage
on a client record is different from TFN extraction or outbound AI processing.
Request scoped coverage and failure evidence for a technical assessment.
## Draft, review and delivery [#draft-review-and-delivery]
A build produces a draft, which can be inspected read-only while review is
running or after some failures. A visible draft is not a delivered workpaper.
When enabled, independent review and repair examine the draft before output.
Independent review can be deselected in the offered preparation choices. The
current delivery policy can release a rendered paper with remaining findings;
not every validation failure blocks delivery. Some failures hold or refuse the
run. Request current review configuration and delivery evidence if the review
process or provider independence is part of your assessment.
Checks address supported formula integrity, totals, breakdowns and workbook
presentation. Passing them does not prove that every source document was
complete, every judgement correct or every accounting/tax issue covered. A
formula can correctly sum the wrong inputs.
## Your review [#your-review]
Check the client and year, source amounts, material treatment decisions, missing
evidence and findings. Answer questions with the underlying evidence in mind.
Review changed output after an update. Use [the source-tracing tutorial](/docs/tutorials/trace-a-figure)
and keep the version you reviewed.
Review outstanding findings on delivered output. If the system refuses a
document or holds the run, resolve the cause or inspect the evidence manually.
Do not treat a skipped review, failed draft or unresolved finding as a completed
human check. With AI auto-answer enabled for the run, inspect the recorded
answers after preparation; this option removes an immediate human checkpoint.
---
# Assess the system and the business workflow (/docs/trust/audit-evidence)
Source reviewed: 2026-10-02 · Security and privacy documentation
Begin by naming the product, intended workflow, client-data categories and
version or review date. Ask for evidence that applies to that scope. A general
architecture diagram cannot prove that a particular access check or restore
worked in the deployed system.
## Technical assessment [#technical-assessment]
| Area | Evidence to request or inspect | What it should establish |
| ---------------------- | ----------------------------------------------------------------------------------- | ------------------------------------------------------------------ |
| Data destinations | Current provider list, processing agreement and per-stage configuration | Where your practice's material can be processed and retained |
| Tenant isolation | Two-practice negative-access tests for records, files and server operations | One practice's credentials are refused access to another's records |
| Authentication | Account/second-factor configuration and request expiry/revocation checks | The credentials and trust boundaries of each client and firm flow |
| Outbound AI gate | Supported-format tests, identifier fixtures and failure-path evidence | Unsafe/unreadable input stops before outbound transmission |
| Workpaper delivery | Representative cases, validation results, review/repair records and output versions | What was checked and which workbook was actually delivered |
| Retention and recovery | Cleanup/deletion results, provider retention terms and dated restore exercise | What is removed, what remains and how recovery was tested |
| Change management | Source revision, checks for that revision and deployment marker | The evaluated change reached the environment in question |
Automated tests are useful implementation evidence. They are not an external
certification, a complete security audit or a promise that every production
configuration matches the tested one. Ask for the test scope, date and revision
alongside the result. This documentation makes no SOC 2 or ISO certification
claim.
## Business and practice assessment [#business-and-practice-assessment]
Define who will upload evidence, answer questions, review output, authorise
communications and retain records. Check the product's boundary against the
actual service your practice offers:
* Workpapers does not lodge returns; the accountant checks and lodges through
their existing process.
Use representative cases, including missing evidence and provider failures.
Confirm the team can recognise incomplete results and recover without treating
a draft, stale result or untested rule as complete.
## Request a focused evidence pack [#request-a-focused-evidence-pack]
Contact [support@beforemay.com.au](mailto:support@beforemay.com.au) with your scope
and the relevant rows above. Request any needed agreements and operational
reports explicitly. Sensitive deployment details and client-level evidence
should be shared through an agreed access-controlled channel, not published
inside these public guides.
ATO/Digital Service Provider assessment material is prepared separately for
the agreed review scope. Identify the intended recipient and assessment purpose
when requesting it, so the applicable material and sharing arrangements can be
reviewed. These public guides do not imply ATO approval or DSP accreditation.
For policy and contractual terms, read [Privacy](/privacy) and [Terms](/terms).
For an incident or privacy request, use [privacy@beforemay.com.au](mailto:privacy@beforemay.com.au).
---
# Data flow and processing locations (/docs/trust/data-flow)
Source reviewed: 2026-10-03 · Security and privacy documentation
The [Privacy Policy](/privacy) describes documents and account data stored at
rest in Australia and our own processing services in Sydney. Some external
processing happens overseas. Use the product-specific route below when
assessing your practice's data.
## Workpapers [#workpapers]
```mermaid
flowchart TB
accTitle: Workpapers data flow
accDescr: Original files stay in Australian private storage. Supported outbound text and file copies pass identifier controls before configured AI processing overseas; delivered work still needs accountant review.
U[Practice: authorised upload]
H[Practice: accountant review]
subgraph AU[Australia: source evidence]
S[(Private source files)]
R[Document recognition]
G[Outbound identifier controls]
end
subgraph External[External AI: location depends on provider]
AI[Configured analysis, build and review stages]
end
subgraph Delivery[Australia: workpaper process]
W[Build, review and delivery policy]
O[(Delivered workbook)]
end
U --> S --> R --> G
S -->|Supported file copies| G
G -->|Processed text, context and copies| AI
AI -->|Stage results| W
W --> O --> H
class G,W control
```
This is the Workpapers route at a boundary level, not a network trace. The
outbound controls differ between text and file formats; they do not make all
remaining case information anonymous. Review may be disabled or degraded, and
delivery can include outstanding findings. See [AI processing and human review](/docs/trust/ai-processing).
Our own recognition and identifier-removal services run in Australia. Before
outbound AI processing, supported text and source files pass the relevant
identifier controls. Case context, recognised text and processed source files
can be provided to the configured AI services. The accountant's original source
file remains a practice record; the outbound copy has a different purpose.
The policy names possible AI processing in the United States.
Provider choice can vary by stage and practice configuration. Ask which providers
apply to your practice; do not infer that from an old model name or the location
of the worker that makes the request.
## Providers and analytics [#providers-and-analytics]
The policy's provider table includes infrastructure, AI, payments, email,
identity and analytics providers. That table is the maintained list of
processing purposes and locations; a service listed there is not necessarily
used for every task.
Analytics are separate from document processing. The policy describes product
identifiers and page/error information that analytics can receive, and states
that client documents and their contents are not supplied to analytics. Optional
third-party sign-in and mailbox connections have their own provider interaction.
---
# Security, data and AI (/docs/trust)
Source reviewed: 2026-10-01 · Security and privacy documentation
Evaluate the flow you intend to use and the data it will handle. The guides
below explain product behaviour and implementation boundaries. The
[Privacy Policy](/privacy) and [Terms and Conditions](/terms) remain the policy
and contractual sources.
| Question | Guide |
| ------------------------------------------------ | ----------------------------------------------------------------- |
| Where does the data go? | [Data flow and processing locations](/docs/trust/data-flow) |
| What does AI receive and who checks its output? | [AI processing and human review](/docs/trust/ai-processing) |
| Who can see or change records? | [Accounts, roles and access controls](/docs/trust/access-control) |
| What is retained, and what does deletion remove? | [Retention, deletion and exports](/docs/trust/retention) |
| What evidence should we request? | [Technical and business assessment](/docs/trust/audit-evidence) |
## Read claims at the right level [#read-claims-at-the-right-level]
A source review describes what the implementation does. It does not establish
that a control was tested against your practice, that a restore was exercised
recently or that an external assessor certified the system. Ask for evidence
against the deployed version and the service you are adopting.
Australian storage does not mean all processing remains in Australia. Removing
selected identifiers does not anonymise a document. A completed identity check
does not complete every due-diligence obligation, and an AI-reviewed workbook
still needs the accountant's review.
## Contact [#contact]
For technical evidence and product questions, contact
[support@beforemay.com.au](mailto:support@beforemay.com.au). For privacy requests
or a suspected security/privacy incident, contact
[privacy@beforemay.com.au](mailto:privacy@beforemay.com.au). Tell us which product
and control you are assessing; do not send credentials or a client document in
the initial request.
---
# Retention, deletion and exports (/docs/trust/retention)
Source reviewed: 2026-10-01 · Security and privacy documentation
Retention depends on the kind of record and the practice's instructions. The
[Privacy Policy](/privacy) contains the maintained retention schedule. Do not
interpret a deletion in one system as deletion in every other system.
## Common actions [#common-actions]
| Action | What it changes | What it does not automatically erase |
| --------------------------------------- | ----------------------------------------- | ---------------------------------------------------------- |
| Remove a firm member | Removes that person's practice membership | Practice records and practice API keys |
| Client deletes their mobile-app account | Deletes the sign-in and firm connections | Documents and messages already held by the accounting firm |
| Delete data held by BeforeMay | Applies the relevant record-deletion flow | A provider's copy governed by its retention terms |
## Record schedule [#record-schedule]
The policy describes uploaded documents and extracted fields being retained
while the client/job is active, then under the firm's retention requirements.
Some operational records have automated cleanup: rate-limit events after 7 days,
settled invitation metadata under the defined cleanup period and audit events
after 18 months. Other deletion depends on the record flow or a firm request;
there is no blanket daily purge of all client financial records.
## Provider copies [#provider-copies]
Files sent for AI processing can be retained by the provider under its own
agreement. The policy expressly distinguishes provider retention from deletion
in BeforeMay and describes immediate post-job provider file deletion as work
in progress. This guide does not present that plan as implemented.
## Export before closing [#export-before-closing]
Retain the records your practice needs: delivered/current workbooks, source
files and review records. Check
the files open and relate to the intended client and period. An individual
product export is not a promise of a one-click full-practice migration archive.
Clients can follow [account deletion](/delete-account). Firm users should ask
the Owner to remove their membership; contact
[support@beforemay.com.au](mailto:support@beforemay.com.au) for practice closure.
Privacy requests go to [privacy@beforemay.com.au](mailto:privacy@beforemay.com.au).
## Backups and recovery [#backups-and-recovery]
Deletion from active records and expiry from retained backups are separate
questions. No recovery-time, recovery-point or backup-erasure guarantee is
established by this guide. If those are adoption requirements, request the
current backup policy and a dated restore-test result before relying on them.
---
# Follow a tutorial (/docs/tutorials)
Source reviewed: 2026-10-01 · Product documentation
Choose a walkthrough for the task you need. Check which practice you are in
before following a step that creates records or sends a request.
If this is your first visit, start with [Set up your practice](/docs/account).
It connects sign-in, practice selection, security, colleagues and clients to
your first product task. You can stop after any step and use its result check
before continuing.
| Task | What you need | What you finish with |
| ------------------------------------------------------------ | -------------------------------------------------- | ---------------------------------------------------------- |
| [First workpaper](/docs/getting-started/first-working-paper) | A client, year, return type and readable documents | A delivered workbook ready for your review |
| [Trace a figure](/docs/tutorials/trace-a-figure) | A delivered workbook and its source files | A checked figure with evidence and any correction recorded |
## Use the completion checks [#use-the-completion-checks]
Follow **Before you begin**, the numbered or named steps, then the result check
at the end. A screen image helps you find a control; the state after the action
tells you whether the task succeeded. The captions identify example screens
and actions that were not performed when capturing them.
| Stage | What to confirm |
| ------------------------ | ---------------------------------------------------------------------------- |
| Before an action | Right account, practice, client and period; required permission and evidence |
| After saving or creating | A success result and the intended record visible in its list |
| After sending a request | Request creation and email delivery checked separately |
| After processing | Delivered output or returned evidence, rather than a pending draft |
| Before finishing | Your review, remaining exceptions and the retained/exported record |
Each workpaper needs its own client, year and return context.
---
# Check a figure against its source (/docs/tutorials/trace-a-figure)
Source reviewed: 2026-10-01 · Product documentation
## Before you begin [#before-you-begin]
Open a Workpapers case with a **delivered** workbook. Have access to the
original source documents. A draft under review or from a failed run is not a
completed deliverable.
## Open the figure [#open-the-figure]
Choose a figure in the workbook and inspect its source reference or the related
workpaper line. Note the section, ATO item and whether the figure is an extracted
amount, a judgement such as an apportionment, or a formula total.

The workpaper line is a useful starting point for the amount, ATO item and review state.
## Read the evidence [#read-the-evidence]
Open the referenced document from the cell or case. Compare the actual amount,
period and owner with the line. For an aggregation, inspect the contributing
records. For a formula total, follow the contributing cells; the total itself
may not be an amount printed on one source page.

The explanation panel helps you inspect the build's reasoning. Check it against the original evidence.
## Resolve the difference [#resolve-the-difference]
Read any review point attached to the treatment. Use **Reply** to record the
answer or correction, then hand the answers to the
workpaper assistant using the current panel. Inspect the proposed change and
its result before considering the correction complete. Use **Ignore** only when the point is not relevant, with enough
context in your own review records to explain the decision.
For a direct edit, use an editable non-formula cell and save the version.
Formula cells are locked. If the problem is missing or incorrect evidence,
replace or add the document and refresh the workpaper through the case flow.
## Check the result [#check-the-result]
Open the resulting version and compare the figure again. Check the affected
subtotal and estimate, not only the one cell. Confirm you are reviewing the
saved/current version rather than an earlier preview, then record completion
through the case's review controls.
## If the source is missing or unclear [#if-the-source-is-missing-or-unclear]
Do not mark the figure checked solely because the workbook has a number. Ask
for the underlying record, inspect related evidence or contact support if the
source reference will not open. Include the case, version and cell reference
in the report; omit TFNs and personal link tokens.
## Completion check [#completion-check]
Confirm the saved/current workbook version, the original amount and its period
and owner, any judgement or aggregation, and the affected totals after a change.
Retain the source reference and your review answer. An explanation panel or a
plausible total alone does not replace the underlying evidence.
Next: [editing and versions](/docs/working-paper/editing-and-versions).
---
# Ask about the workpaper (/docs/working-paper/ask-the-assistant)
Source reviewed: 2026-10-01 · Product documentation
Open the case's workpaper. Beside the sheet, open **Chat**. The panel **How it was built, and ask anything** explains the build and gives you a place to ask about a figure.
{/* SCREENSHOT: Current workpaper Chat panel explaining a build, /cases/c1/workpaper */}
Name the sheet, cell or source document in your question. For example, ask why a particular bank interest line uses one statement when two were uploaded. The reply stays in the case conversation.
For a review point, use its **Reply** box or **Ignore**, then choose **Send answers to the assistant**. The assistant takes those recorded answers into the update. A reply does not itself change the workbook.
{/* SCREENSHOT: Delivered paper with Chat open and a question naming a cell, /cases/c1/workpaper */}
Use **History** to check the delivered versions after an update. If you are changing a figure by hand, see [Editing and versions](/docs/working-paper/editing-and-versions).
---
# Editing and versions (/docs/working-paper/editing-and-versions)
Source reviewed: 2026-10-01 · Product documentation
You can type into the workbook without leaving the page.
## What is editable [#what-is-editable]
Non-formula cells on the current delivered paper. Anything computed is locked,
and the subtitle says **editable, formulas locked**. The lock stops an edit from silently
detaching a total from the lines it sums.
{/* SCREENSHOT: Current delivered workbook after loading, showing an editable cell and the formulas-locked subtitle, /cases/c1/workpaper */}
## What an edit does [#what-an-edit-does]
Manual cell changes autosave on the current delivered paper. The title bar
reports **saving…** or **saved** and counts the manual edits. **History** records
each hand edit alongside the delivered versions. An update normally starts from
the edited file; a fresh build starts again from the documents.
If the title bar says **not saved — retry an edit**, do not assume the
downloaded workbook includes your change. A fresh build can also leave
earlier manual edits behind; the page says so when that happens.
## Going back [#going-back]
{/* SCREENSHOT: Current History rail with delivered versions and a manual edit, /cases/c1/workpaper */}
Choose a delivered version in **History** to open it read-only. Its row has
**Download** and, if it is older than the current paper, **Restore**. A restore
becomes another entry in the history.
## Re-running after new documents [#re-running-after-new-documents]
Add or replace a document and the case shows **Documents changed since the last
generate.** Choose **Update** in that strip when you are ready to rebuild from
the changed source set.
---
# Prepare a company or trust paper (/docs/working-paper/entity-papers)
Source reviewed: 2026-10-01 · Product documentation
On **Cases**, choose **New case**. The **Company** and **Trust** cards say **By invitation — tap to request** until your practice has access. Select one to open **Company & trust** and send the access request. Wait until the practice is enabled before creating that case type.
{/* SCREENSHOT: New case dialog showing locked Company and Trust cards and the invitation request, /cases */}
Once enabled, choose **New case** again. Use **Upload & auto-fill** if you have last year's return or this year's ATO prefill, or **Enter manually** if you do not. Select **Company** or **Trust**, check the financial year, then choose **Create case**. Each type uses its own workpaper template. Add the current-year trial balance through its [trial balance page](/docs/working-paper/trial-balance), then upload the other records needed for that entity.
The trial balance page lets you classify accounts, check debits against credits and save prior-year comparatives. Review any draft issues it reports before treating the finished workbook as final. Company and trust files are assessed in the context of the whole case; the case does not require a per-file review tick on those entity types before a first build.
---
# Reading the workbook (/docs/working-paper/reading-the-workbook)
Source reviewed: 2026-10-01 · Product documentation
The deliverable is an `.xlsx`. Open it from the case or use **Download** in the
workpaper view.
## Lines carry their ATO item [#lines-carry-their-ato-item]
Each section of the workbook says which ATO item it feeds, and each line under it
is either reviewed or not. That is the unit of work: not "the case", but a line.
{/* SCREENSHOT: Current workpaper line with ATO item and source link, /cases/c5 */}
## Every figure has a source [#every-figure-has-a-source]
A source link lets you open the document behind a figure from the workbook.
When a figure looks wrong, use that link and read the source before changing the
cell or replying to a review point.
The build also keeps its own account of itself: how the paper was assembled,
and a place to ask about any part of it.
{/* SCREENSHOT: Current workpaper Chat panel explaining a build, /cases/c1/workpaper */}
## What was checked before delivery [#what-was-checked-before-delivery]
The build runs checks before delivery. They include:
* formulas recompute to the values stored in the file
* totals tie to the lines beneath them
* multi-document breakdowns tie to the figure they roll into
* the workbook can be opened and its output checked
**Formula integrity checks failed** means the paper did not pass that check.
Read the case's failure detail before trying another build.
Some rendered papers can be delivered with remaining findings under the
configured delivery policy. An available workbook still needs your review;
delivery does not establish that every check passed. See
[AI processing and human review](/docs/trust/ai-processing).
## The estimate rail [#the-estimate-rail]
The case page shows an estimate — **Estimated tax payable**, and the taxable
income behind it — in the right-hand rail. The delivered-workbook summary reads
the file's mapped figures; check the current workbook and its version when
reviewing that summary.
{/* SCREENSHOT: Current estimated tax payable rail after a build, /cases/c1 */}
For company and trust cases the rail is empty until a build has run. That is
expected: those entity types are built from the raw documents in one pass rather
than read file-by-file, so there is nothing to estimate from beforehand.
---
# Add a trial balance (/docs/working-paper/trial-balance)
Source reviewed: 2026-10-01 · Product documentation
Open an enabled company or trust case and go to its trial balance page. Choose the current financial year at the top.
If a trial balance is already among the case files, choose **Import uploaded trial balance**. Otherwise choose **Upload file** and select a CSV, Excel or PDF export. The page parses it locally and puts accounts into workpaper buckets.
{/* SCREENSHOT: Trial balance page for an enabled company case, with Upload file and Save, /cases//trial-balance */}
Check the account mappings, especially any account marked unmapped. The page shows **Total debits**, **Total credits** and **Debits − credits**. Fix an account classification or the source file, then choose **Save**.
{/* SCREENSHOT: Trial balance accounts table with an unmapped account and Save, /cases/c4/trial-balance */}
**Reconciled — the workpaper is ready.** means the arithmetic and classification checks on this page passed. If issues remain, the case can still generate a draft; the page lists what needs fixing before the paper is final. The page also has a prior-year view for comparatives.