Export FRS 102 Journals to Xero, Sage, Dynamics 365
Connect Lease102 to your accounting system to automatically post FRS 102 journal entries. Once configured, you can sync lease accounting journals directly from the Reports page.
Supported ERP Systems
Lease102 supports direct integration with the following accounting systems:
| System | Connection Type | Features |
|---|---|---|
| Xero | OAuth 2.0 | Manual Journals, Fixed Assets, Tracking Categories |
| Dynamics 365 Business Central | OAuth 2.0 (Azure AD) | General Journals, Dimensions, Fixed Assets |
| Sage 50 | Via Codat middleware | Nominal Journals, Departments, Fixed Assets |
| Sage 200 Standard | OAuth 2.0 | Nominal Journals, Analysis Types, Ledger Accounts |
How ERP Integration Works
The integration follows a four-step process:
Step 0: IT Setup (One-Time)
Your IT administrator must register Lease102 as an OAuth application with each ERP provider and configure the credentials in your Lease102 deployment. This is a one-time setup per ERP system. If you see 'Not Configured' on a system, this step is pending.
Step 1: Connect
Once IT has configured credentials, the Connect button becomes active. Click it to authorize Lease102 to access your ERP. You'll be redirected to the ERP's login page to grant permission via OAuth.
Step 2: Configure GL Mappings
After connecting, click 'GL Mappings' to map FRS 102 account types to your chart of accounts. This tells Lease102 which GL codes to use when posting journals.
Step 3: Sync Journals
Go to Reports → Journal Entry Export, select a date range, then click 'Sync to ERP'. Entries can be posted as draft (recommended) for review in your ERP before finalizing.
GL Account Mappings
You must map each FRS 102 account type to your chart of accounts before syncing. These mappings determine which GL codes appear in the posted journals.
Tracking Categories
| FRS 102 Account Type | Description | Typical Code |
|---|---|---|
| Right-of-Use Asset | Initial recognition of lease asset | 0030 (Fixed Assets) |
| Accumulated Depreciation - ROU | Contra account for ROU asset depreciation | 0031 |
| Lease Liability (Current) | Portion due within 12 months | 2109 (Creditors) |
| Lease Liability (Non-Current) | Portion due after 12 months | 2300 (Long-term Liabilities) |
| Depreciation Expense | ROU asset depreciation charge | 8004 (Admin Expenses) |
| Interest Expense | Lease liability interest charge (Finance Costs) | 7903 |
| Lease Clearing Account | For payment reconciliation (optional) | 2110 |
Telling Which Lease a Posting Belongs To
Xero receives one journal per lease, and its narration is what identifies it: it appears in the manual journals list and in front of each line's own description when you open a nominal. Sage and Dynamics 365 Business Central receive one combined journal per posting run, so there the identity is carried on each journal line instead. By default it reads "FRS 102 Lease Journals 2026-07-01 to 2026-07-31 - HL-2024-047 | Portfolio: Residential Schemes". Under Settings then Integrations then Journal Narration you choose what goes into it: the contract reference, the property, the portfolio, the period, and the "FRS 102 Lease Journals" label. The contract reference is always included, because it identifies the lease and Xero rejects a journal whose narration is empty. Configured with the property, the same journal reads "HL-2024-047 | Dudley, West Midlands | Residential Schemes | Jul 2026".
Where the property comes from is yours to choose
Per-Asset-Class GL Mappings
Each FRS 102 account type has a default mapping that applies to every lease. You can also add asset-class overrides so a single account type posts to different GL codes depending on the leased asset. For example, map the Right-of-Use Asset to one fixed-asset nominal for Vehicles and another for Land & Buildings. On a mapping row click 'Add asset-class override', choose the asset class, and select its GL account (and tracking values if used).
How the override is chosen
Platform OAuth Setup
OAuth client credentials for each ERP are configured once per Lease102 deployment by the Lease102 platform team, not by individual tenants. If a system shows 'Not Configured' in Settings → Integrations, email support@lease102.co.uk so we can complete the platform-side setup.
Connecting to Your ERP
Once the platform OAuth credentials are in place, any user with Owner or Accountant role can connect their organisation:
Navigate to Integrations
Go to Settings → Integrations tab.
Click Connect
Click the 'Connect' button on your ERP system. You'll be redirected to the ERP's authorization page.
Grant Permission
Log in to your ERP and authorize Lease102 to access your accounting data. You'll be redirected back to Lease102.
Verify Connection
The system should now show 'Connected' with your organization name. Click 'Test' to verify the connection is working.
Choosing the Organisation
If your Xero login can access more than one organisation (common for accountants and bookkeepers), the connection card shows an 'Organisation' dropdown beneath 'Connected to'. Pick which organisation Lease102 should post journals to - the change is instant and does not require disconnecting and reconnecting, because the authorization you granted at sign-in already covers every organisation you selected. The 'Connected to' name updates to confirm the active organisation.
Re-check GL mappings after switching
Reconnecting: your mappings come with you
Disconnecting and reconnecting creates a new connection, so Lease102 copies your GL account mappings from the previous connection onto the new one automatically. Every mapping is checked against the organisation you have just connected to: a mapping whose account is missing from that organisation's chart of accounts is left out rather than copied, and a tracking value whose category or option no longer exists is cleared while the account mapping itself is kept. A message on the Integrations tab tells you how many mappings were carried over and how many need setting up by hand.
Out-of-date mappings are flagged
Syncing Journal Entries
To post journal entries to your ERP:
1. Generate Journals
Go to Reports → Journal Entry Export. Select the date range for journal entries.
2. Review Entries
Preview the journal entries before posting. Ensure GL mappings are correctly configured.
3. Sync to ERP
Click 'Sync to ERP'. Choose whether to post as Draft (recommended) or Final. Draft is not a preview: it creates real journals in your ERP with an unposted status, and you approve them in your ERP (in Xero, under Accounting > Manual Journals > Draft). Each sync creates new journals rather than replacing ones already sent, so a lease posted twice would leave two sets in your ledger. To prevent that, the sync leaves out leases already posted for the period, and tells you which ones and how many. Untick 'Skip leases already posted' if you genuinely want to send them again. A lease whose journals you have since reversed no longer counts as posted and is included automatically.
Opening and transition entries
A sync posts every entry the period contains, opening amounts included, so it reconciles exactly to the Journal Entry Export for the same period and scope. Those opening amounts are the transition opening for a transitioned lease (Finance Lease Asset, Lease Liability, and the Pre-Transition Rent Reclassification line that clears the old prepaid or accrued rent balance) and the initial recognition for a lease that commences in the period. They are not optional: FRS 102 recognises the right-of-use asset and lease liability at the commencement date, and at the transition date for a lease you have transitioned, so a ledger without them carries interest and depreciation on balances it never recognised. They also post only once, because they belong to the single period containing that date, and a period already posted for a lease is skipped. Map 'Pre-Transition Rent Reclassification' under Transition in GL Mappings (usually to your rent prepayment or accrual account) before you post the period containing your transition date, or the sync will stop and tell you which nominal is missing. If your accountant or auditor posted the opening balances themselves, open the lease and choose 'Posted elsewhere' under Opening Balances: Lease102 then leaves that lease's opening entries out of every export and every sync, and posts everything else for the period as normal. It records who said so and when, and Undo hands the entries back.
Transition warnings before you post
The sync modal checks the transition state of the leases in scope before anything reaches your ERP. A lease that starts before your transition date and runs past it, but has not been transitioned yet, has its journals calculated from the lease start date: once you calculate transition, the opening balances move to the transition date and every figure after it changes, so anything already posted for that lease stops matching what Lease102 expects. The modal names those leases, and posting is still allowed. It also tells you when a transitioned lease transitions after the period you are posting, because that lease produces no entries before its transition date and the sync would otherwise report nothing with no explanation. The usual order is: calculate transition, post the period containing the transition date with opening entries included, then post each following period as normal.
4. Check Sync History
View sync history from Settings → Integrations, or from 'Posting history' on the Reports page, which shows only the postings covering the period you are working on. Postings are listed by period and not by portfolio, so each row names the portfolio its leases belong to: if you manage several client entities, a posting for another client can appear in the list for the same dates. A row also carries a Reversed marker once its journals have been withdrawn from your accounting system, which is why a completed posting can sit above a period that Close Checks still reads as unposted. Each posting lists the journals it created, one per lease, with the amount, the date and the reference your ERP holds. Select a posting to see its journals and to reverse them.
Reversing a posting
If a posting was wrong, Lease102 can withdraw it from your accounting system rather than leaving you to unpick it there. Open the posting from 'Posting history' on Reports, or from Settings → Integrations, then reverse the whole posting or a single lease. What happens depends on the state each journal is in, and Lease102 decides that per journal, so one posting can contain both. A journal you have already approved is voided, which reverses the entries and changes a period you may have reported on. A journal still sitting as a draft is deleted, which changes nothing in your accounts because a draft never reached them, though your accounting system keeps no record of a deleted draft. The status on each row is the status when Lease102 posted, so if your process is to approve drafts in your accounting system, a row can still read Draft for a journal now sitting in your ledger. Lease102 checks what each journal actually is before acting, voids it rather than deleting it if you have approved it since, and says so before you confirm. It also reads each journal back afterwards and records it as reversed only once your ledger shows it has gone. Reversing is always something you ask for: nothing is withdrawn as a side effect of editing or recalculating a lease. Once reversed, the period reads as unposted again in Close Checks and you can post it afresh.
When a reversal cannot go through
Your accounting system has the final say, and Lease102 reports its answer per lease rather than as one overall result. The most common refusal is a locked period: if you have locked your ledger up to a date, voiding an approved journal inside it would change a closed period, so it is refused and you are told the lock date. A lock does not stop a draft being deleted, because a draft never reached the ledger, so a lock protects the journals you have approved and not the ones still in draft. A refused journal keeps the reason on its row and stays reversible, so once you have lifted the lock you can simply reverse it again. Either unlock the period in your accounting system, or post a correcting journal there. Lease102 also reports a journal that is no longer in your accounting system, which happens when someone has already removed it, and records it as reversed so the two stay in step. Postings made before Lease102 recorded individual journal references cannot be reversed from here, because Lease102 cannot say which journal in your ledger belongs to which lease; those are marked as such and must be handled in your accounting system.
Currency scope
A sync posts one currency at a time, matching the Journal Entry Export. Each ERP manual journal posts in the connected organisation's base currency, so Lease102 will not mix currencies in a single sync. If you select a specific portfolio, its currency is used. If you sync 'All portfolios', the sync uses the currency selected on the Reports page, so only leases in that currency are posted. To post another currency, switch the currency on Reports (or connect that currency's organisation) and sync again.
Troubleshooting
Common issues and solutions:
| Issue | Cause | Solution |
|---|---|---|
| 'Not Configured' shown | Platform OAuth credentials not yet in place for this ERP | Email support@lease102.co.uk so the Lease102 team can complete the platform-side setup |
| 'Token Expired' status | OAuth token has expired (typically 30-60 days) | Click 'Refresh' to renew the token, or disconnect and reconnect |
| 'Error' status | Connection issue with ERP | Check ERP availability, then disconnect and reconnect |
| Sync fails with 'No GL mapping' | Account type not mapped | Go to GL Mappings and map all required account types |
| Journals not appearing in ERP | Posted as draft | Check draft journals in your ERP and approve them |
| Journals posted to the wrong company | Your Xero login has multiple organisations and the connection points at the wrong one | On the Xero card use the 'Organisation' dropdown to select the correct company, then re-check GL mappings before syncing |
Permissions
Only users with Owner or Accountant roles can manage ERP integrations. Viewers can see connection status but cannot connect, disconnect, or modify mappings.
Disconnect Carefully