The balances in a balance sheet are generated from all transactions that have occurred in the business since the
start of the business. Suppose the business was operating and transacting before the Instance’s start date. In that case, opening balances will need to be set for the user’s assets, liabilities, and equity ledgers for the balance sheet to be accurate. An opening balance in a ledger increases the ledger’s value on
the start date to account for what the balance sheet should look like on the user’s start date.For example, if a user had $500 in a bank account on their start date, an opening balance debiting 500 to
the bank ledger would need to be made. Without an opening balance, the bank ledger would incorrectly report $0 on the user’s start date.Keep in mind that just like journal entries, opening balances must have debits=credits.
So, in the above example, it would be important to know where the $500 came from in order to credit the correct ledger.
There are two ways to set opening balances in Teal. The first is by using the opening balance
endpoint. This endpoint assumes that a non-zero balance in a ledger comes from past revenues and expenses, and so it debits/credits
a retained earnings opening balance ledger. This is a special ledger that exists solely for the purposes of setting opening balances, and
follows a standard convention used by many bookkeepers.The second is to manually create a journal entry on the start date with an appropriate title, such as “Opening balances” and
debit/credit the correct amount to the balance sheet ledgers so that the balances are correct on the user’s start date.
It is recommended that you create a dedicated interface for the user to enter their opening balances, as this is a common workflow for users
that are switching from one accounting platform to another.
{"docsConfig":{"$schema":"https://mintlify.com/docs.json","theme":"mint","name":"Teal","colors":{"primary":"#1E293B","light":"#1E293B","dark":"#1E293B"},"favicon":"https://mintcdn.com/tealplatforms/om5wdJ93k9u6SxcW/favicon.png?fit=max\u0026auto=format\u0026n=om5wdJ93k9u6SxcW\u0026q=85\u0026s=72abd52206475d1fe8e89523087d976d","logo":{"light":"https://mintcdn.com/tealplatforms/ufhJUlAWlrZ-dzAl/logo/dark.svg?fit=max\u0026auto=format\u0026n=ufhJUlAWlrZ-dzAl\u0026q=85\u0026s=f2864cdeef7a8e45083ea99a1454bdf4","dark":"https://mintcdn.com/tealplatforms/ufhJUlAWlrZ-dzAl/logo/dark.svg?fit=max\u0026auto=format\u0026n=ufhJUlAWlrZ-dzAl\u0026q=85\u0026s=f2864cdeef7a8e45083ea99a1454bdf4","href":"https://teal.dev"},"api":{"mdx":{"server":null,"auth":{"method":"bearer","name":null}}},"appearance":{"default":"light","strict":true},"background":{"image":"https://mintlify.s3.us-west-1.amazonaws.com/tealplatforms/background.png","decoration":null,"color":{"light":"#F8FAFC","dark":"#1E293B"}},"navbar":{"links":[],"primary":{"type":"button","label":"Developer Portal","href":"https://developer.teal.dev"}},"styling":{"latex":false},"integrations":{"koala":{"publicApiKey":"pk_98a1ffe3eda6dafde172cefc5681332b75fe"}},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"tealplatforms","hasAudioNarration":false,"actualSubdomain":"tealplatforms","customDomains":["docs.teal.dev"],"gitSource":{"type":"github","owner":"mercurytechnologies","repo":"teal-docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"entitlements":{"AI_CHAT":{"status":"DISABLED"}},"buildId":"6abc132fa094daac31317329","clientVersion":"0.0.4102","searchFilterCounts":[{"language":"default","tag":"API Reference","count":98},{"language":"default","tag":"Teal API Endpoints","count":86},{"language":"default","tag":"Guides","count":27},{"language":"default","tag":"Reports","count":13},{"language":"default","tag":"Tags","count":11},{"language":"default","tag":"Reconciliations","count":9},{"language":"default","tag":"Transactions","count":9},{"language":"default","tag":"Core accounting interfaces","count":9},{"language":"default","tag":"Chart of Accounts Templates","count":8},{"language":"default","tag":"Instances","count":8}]},"assistantConfig":{},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"guides/instances/opening_balances","slug":"/guides/instances/opening_balances","pageMetadata":{"title":"Opening balances","description":"How to set opening balances to ensure accurate balance sheets.","icon":null,"href":"/guides/instances/opening_balances"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"How to set opening balances to ensure accurate balance sheets.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,p:`p`,..._provideComponents(),...props.components},{Heading}=_components;if(!Heading)_missingMdxReference(`Heading`,true);return _jsxs(_Fragment,{children:[_jsx(Heading,{level:`2`,id:`what-is-an-opening-balance`,children:`What is an opening balance`}),`\n`,_jsx(_components.p,{children:`The balances in a balance sheet are generated from all transactions that have occurred in the business since the\nstart of the business. Suppose the business was operating and transacting before the Instance’s start date. In that case, opening balances will need to be set for the user’s assets, liabilities, and equity ledgers for the balance sheet to be accurate. An opening balance in a ledger increases the ledger’s value on\nthe start date to account for what the balance sheet should look like on the user’s start date.`}),`\n`,_jsx(_components.p,{children:`For example, if a user had $500 in a bank account on their start date, an opening balance debiting 500 to\nthe bank ledger would need to be made. Without an opening balance, the bank ledger would incorrectly report $0 on the user’s start date.`}),`\n`,_jsx(_components.p,{children:`Keep in mind that just like journal entries, opening balances must have debits=credits.\nSo, in the above example, it would be important to know where the $500 came from in order to credit the correct ledger.`}),`\n`,_jsx(Heading,{level:`2`,id:`setting-opening-balances`,children:`Setting opening balances`}),`\n`,_jsxs(_components.p,{children:[`There are two ways to set opening balances in Teal. The first is by using the `,_jsx(_components.a,{href:`/api-reference/ledgers/set-a-ledger's-opening-balance`,children:`opening balance`}),`\nendpoint. This endpoint assumes that a non-zero balance in a ledger comes from past revenues and expenses, and so it debits/credits\na retained earnings opening balance ledger. This is a special ledger that exists solely for the purposes of setting opening balances, and\nfollows a standard convention used by many bookkeepers.`]}),`\n`,_jsx(_components.p,{children:`The second is to manually create a journal entry on the start date with an appropriate title, such as “Opening balances” and\ndebit/credit the correct amount to the balance sheet ledgers so that the balances are correct on the user’s start date.`}),`\n`,_jsx(Heading,{level:`2`,id:`opening-balances-user-interface`,children:`Opening balances user interface`}),`\n`,_jsx(_components.p,{children:`It is recommended that you create a dedicated interface for the user to enter their opening balances, as this is a common workflow for users\nthat are switching from one accounting platform to another.`})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Opening balances","description":"How to set opening balances to ensure accurate balance sheets.","icon":null,"href":"/guides/instances/opening_balances"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"What is an opening balance","slug":"what-is-an-opening-balance","depth":2,"children":[]},{"title":"Setting opening balances","slug":"setting-opening-balances","depth":2,"children":[]},{"title":"Opening balances user interface","slug":"opening-balances-user-interface","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":["/_mintlify/custom/tealplatforms/84e6d7ce1b0df358/scripts/cleanup_openapi.js","/_mintlify/custom/tealplatforms/d8fb6eab696d5c42/scripts/scrape_openapi.js"],"subdomain":"tealplatforms","siteName":"Teal","title":"Opening balances - Teal","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2025-08-11T22:28:59.516Z","originalFileLocation":"guides/instances/opening_balances.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=\"light\";if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"light\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"How to set opening balances to ensure accurate balance sheets.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Teal\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/tealplatforms/79RJ17q02NVlfCK3/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/tealplatforms/79RJ17q02NVlfCK3/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/tealplatforms/79RJ17q02NVlfCK3/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/tealplatforms/79RJ17q02NVlfCK3/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/tealplatforms/79RJ17q02NVlfCK3/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/tealplatforms/79RJ17q02NVlfCK3/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/tealplatforms/79RJ17q02NVlfCK3/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/tealplatforms/79RJ17q02NVlfCK3/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/tealplatforms/79RJ17q02NVlfCK3/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Opening balances - Teal\">\u003cmeta data-mint-head property=\"og:description\" content=\"How to set opening balances to ensure accurate balance sheets.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Teal\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.teal.dev/guides/instances/opening_balances\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://tealplatforms.mintlify.site/_mintlify/api/og/v2?division=Instances\u0026amp;title=Opening+balances\u0026amp;description=How+to+set+opening+balances+to+ensure+accurate+balance+sheets.\u0026amp;theme=3402baa0f089b43b6866a5e4\u0026amp;signature=a9905248ee9de645531d3a37f89fedf5ba7958c722d09e4292eae692c1d87062\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Opening balances - Teal\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"How to set opening balances to ensure accurate balance sheets.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://tealplatforms.mintlify.site/_mintlify/api/og/v2?division=Instances\u0026amp;title=Opening+balances\u0026amp;description=How+to+set+opening+balances+to+ensure+accurate+balance+sheets.\u0026amp;theme=3402baa0f089b43b6866a5e4\u0026amp;signature=a9905248ee9de645531d3a37f89fedf5ba7958c722d09e4292eae692c1d87062\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/tealplatforms/79RJ17q02NVlfCK3/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Teal\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#1E293B\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.teal.dev/guides/instances/opening_balances\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/guides/instances/opening_balances.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.teal.dev/#organization\",\"name\":\"Teal\",\"url\":\"https://docs.teal.dev\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/tealplatforms/ufhJUlAWlrZ-dzAl/logo/dark.svg?fit=max\u0026auto=format\u0026n=ufhJUlAWlrZ-dzAl\u0026q=85\u0026s=f2864cdeef7a8e45083ea99a1454bdf4\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.teal.dev#website\",\"name\":\"Teal\",\"url\":\"https://docs.teal.dev\",\"publisher\":{\"@id\":\"https://docs.teal.dev/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.teal.dev/guides/instances/opening_balances#webpage\",\"url\":\"https://docs.teal.dev/guides/instances/opening_balances\",\"name\":\"Opening balances\",\"description\":\"How to set opening balances to ensure accurate balance sheets.\",\"dateModified\":\"2025-08-11T22:28:59.516Z\",\"isPartOf\":{\"@id\":\"https://docs.teal.dev#website\"},\"breadcrumb\":{\"@id\":\"https://docs.teal.dev/guides/instances/opening_balances#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.teal.dev/guides/instances/opening_balances#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Instances\",\"item\":\"https://docs.teal.dev/guides/instances/overview\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Opening balances\",\"item\":\"https://docs.teal.dev/guides/instances/opening_balances\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.teal.dev/guides/instances/opening_balances#article\",\"headline\":\"Opening balances\",\"name\":\"Opening balances\",\"description\":\"How to set opening balances to ensure accurate balance sheets.\",\"url\":\"https://docs.teal.dev/guides/instances/opening_balances\",\"mainEntityOfPage\":{\"@id\":\"https://docs.teal.dev/guides/instances/opening_balances#webpage\"},\"dateModified\":\"2025-08-11T22:28:59.516Z\",\"publisher\":{\"@id\":\"https://docs.teal.dev/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.teal.dev#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Teal\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Teal\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/guides/instances/opening_balances.md","siteName":"Teal","nav":{"global":null,"anchors":[{"anchor":"Guides","icon":"compass","groups":[{"group":"Get Started","pages":[{"title":"Overview","href":"/guides/introduction/overview"},{"title":"Initial setup","href":"/guides/introduction/initial_setup"},{"title":"Quickstart","href":"/guides/introduction/quickstart_guide"},{"title":"Use Cases","href":"/guides/introduction/about_teal"},{"title":"Core concepts","href":"/guides/introduction/core_concepts"}]},{"group":"Your Platform","pages":[{"title":"Overview","href":"/guides/platform/your_platform"},{"title":"Chart of accounts","icon":null,"href":"/guides/platform/chart_of_accounts_config"},{"group":"Categories and Tags","pages":[{"title":"Categorization","href":"/guides/platform/categorization/pipeline"},{"title":"Tags","href":"/guides/platform/categorization/tags_config"},{"title":"Crafting rules","href":"/guides/platform/categorization/rules"}]},{"title":"Invoices and Bills","href":"/guides/platform/ar_ap"}]},{"group":"Instances","pages":[{"title":"Overview","href":"/guides/instances/overview"},{"title":"Managing ledgers","description":null,"icon":null,"href":"/guides/instances/create_ledger"},{"title":"Opening balances","icon":null,"href":"/guides/instances/opening_balances"},{"group":"Importing transactions","pages":[{"title":"Integrations","description":"Use our data integrations so that Teal can do the work of fetching and reconciling transactions from a 3rd party data source.","icon":null,"href":"/guides/transactions/data_integrations"},{"title":"Import via API","href":"/guides/transactions/submitting"}]}]},{"group":"Core accounting interfaces","pages":[{"group":"Working with transactions","pages":[{"title":"Enriching Transactions","href":"/guides/transactions/transactions"},{"title":"Reviewing transactions","href":"/guides/transactions/reviewing_transactions"}]},{"group":"Generating reports","pages":[{"title":"Reports introduction","href":"/guides/reports/reports_introduction"},{"title":"Cash flow report","href":"/guides/reports/cash_flow_report"},{"title":"Income statement","href":"/guides/reports/income_statement"},{"title":"Balance sheet","icon":null,"href":"/guides/reports/balance_sheet"},{"title":"Ledger statement","icon":null,"href":"/guides/reports/ledger_statement"},{"title":"General ledger report","icon":null,"href":"/guides/reports/general_ledger"},{"title":"Enriching non-Teal reports","icon":null,"href":"/guides/reports/enriching"}]}]},{"group":"Complex interfaces","pages":[{"title":"Journal Entry Interface","href":"/guides/interfaces/journal_entry"},{"title":"Excel exports","href":"/guides/interfaces/excel_export"}]}]},{"anchor":"API Reference","icon":"code","color":{"light":"#1E293B","dark":"#1E293B"},"pages":[{"title":"API Reference","href":"/api-reference/api-design/authentication"}]},{"anchor":"Changelog","href":"https://teal.dev/changelog","icon":"bullhorn"}]},"basePath":"","title":"Opening balances - Teal","buildId":"dpl_596ePT575z4qnAFksq1biRW97aLY","deploymentId":"dpl_596ePT575z4qnAFksq1biRW97aLY","dynamics":[],"chunks":[]}