1(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[6129],{27375:function(e,t,s){(window.__NEXT_P=window.__NEXT_P||[]).push(["/tools/expense-report-generator",function(){return s(31243)}])},69985:function(e,t,s){"use strict";s.d(t,{R:function(){return i}});var a=s(85893),r=s(18667),n=s(49605),o=s(60516);function i(e){let{title:t="Save time managing receipts",description:s="Join 350+ small businesses around the world who use ReceiptsAI to assist with their bookkeeping.",imageSrc:i="https://receiptsai.ams3.cdn.digitaloceanspaces.com/receiptsai/public/screenshots/documents.jpeg",imageAlt:l="ReceiptsAI screenshot",ctaId:c=o.gp.callToAction2.primarySignup}=e;return(0,a.jsx)("section",{id:"get-started-today",className:"relative overflow-hidden bg-white",children:(0,a.jsx)(n.W,{className:"py-24 sm:py-32",children:(0,a.jsxs)("div",{className:"relative isolate overflow-hidden bg-gray-900 px-6 pt-16 shadow-2xl sm:rounded-3xl sm:px-16 md:pt-24 lg:flex lg:gap-x-20 lg:px-24 lg:pt-0",children:[(0,a.jsxs)("svg",{viewBox:"0 0 1024 1024","aria-hidden":"true",className:"absolute left-1/2 top-1/2 -z-10 h-[64rem] w-[64rem] -translate-y-1/2 [mask-image:radial-gradient(closest-side,white,transparent)] sm:left-full sm:-ml-80 lg:left-1/2 lg:ml-0 lg:-translate-x-1/2 lg:translate-y-0",children:[(0,a.jsx)("circle",{cx:512,cy:512,r:512,fill:"url(#gradient)",fillOpacity:"0.7"}),(0,a.jsx)("defs",{children:(0,a.jsxs)("radialGradient",{id:"gradient",children:[(0,a.jsx)("stop",{stopColor:"#93c5fd"})," ",(0,a.jsx)("stop",{offset:1,stopColor:"#3b82f6"})," "]})})]}),(0,a.jsxs)("div",{className:"mx-auto max-w-md text-center lg:mx-0 lg:flex-auto lg:py-32 lg:text-left",children:[(0,a.jsx)("h2",{className:"text-3xl font-bold tracking-tight text-white sm:text-4xl",children:t}),(0,a.jsx)("p",{className:"mt-6 text-lg leading-8 text-gray-300",children:s}),(0,a.jsx)("div",{className:"mt-10 flex items-center justify-center gap-x-6 lg:justify-start",children:(0,a.jsx)(r.z,{variant:"hero",color:"white",href:"https://app.receiptsai.com",className:"rounded-md px-3.5 py-2.5 text-sm font-semibold text-gray-900 shadow-sm bg-gray-100 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-white",trackCta:!0,ctaId:c,ctaComponent:"CallToAction2",ctaPlacement:"primary",children:"Get started"})})]}),(0,a.jsx)("div",{className:"relative mt-16 h-80 lg:mt-8",children:(0,a.jsx)("img",{alt:l,src:i,width:1824,height:1080,className:"absolute left-0 top-0 w-[57rem] max-w-none rounded-md bg-white/5 ring-1 ring-white/10"})})]})})})}},48602:function(e,t,s){"use strict";s.d(t,{n:function(){return i}});var a=s(85893),r=s(95736),n=s(58118),o=s(60516);function i(e){let{eyebrow:t="Simple Process",title:s="How It Works",description:i="Our powerful tool makes the process simple and accurate.",steps:l=[],image:c="",imageAlt:d="Process visualization",imageClassName:m="w-[38rem] max-w-none rounded-xl md:w-[60rem] lg:w-[80rem]",cta:x={title:"Ready to get started?",description:"Join thousands of users who trust our tool. Try it now and experience the difference.",buttonText:"Get Started",buttonUrl:"#"},className:p="",showEyebrow:u=!0,showTitle:g=!0,showDescription:h=!0,showImage:f=!0,showCTA:y=!0,showCtaButton:b=!1,ctaButtonText:v="Get Started",ctaButtonUrl:j="https://app.receiptsai.com/",ctaId:w=o.gp.howToSection.primarySignup,layout:N="default"}=e;return"grid"===N?(0,a.jsx)("div",{className:"relative isolate overflow-hidden px-6 py-16 sm:py-24 ".concat(p),children:(0,a.jsxs)("div",{className:"mx-auto max-w-7xl",children:[(u||g||h)&&(0,a.jsx)(r.M,{eyebrow:u?t:"",title:g?s:"",description:h?i:"",align:"center"}),(0,a.jsx)("div",{className:"mx-auto mt-12 grid max-w-6xl grid-cols-1 gap-8 md:grid-cols-3",children:l.map(e=>(0,a.jsxs)("div",{className:"flex flex-col items-center text-center",children:[e.icon&&(0,a.jsx)("div",{className:"flex h-12 w-12 items-center justify-center rounded-xl bg-blue-50",children:(0,a.jsx)(e.icon,{className:"h-6 w-6 text-blue-600","aria-hidden":"true"})}),(0,a.jsx)("h3",{className:"mt-4 text-base font-semibold text-gray-900",children:e.title}),(0,a.jsx)("p",{className:"mt-2 text-sm leading-6 text-gray-600",children:e.description})]},e.title))}),x&&y&&(0,a.jsxs)("div",{className:"mx-auto mt-16 max-w-2xl text-center",children:[x.title&&(0,a.jsx)("h2",{className:"text-2xl font-bold tracking-tight text-gray-900",children:x.title}),b&&(0,a.jsx)("button",{className:"mt-6 rounded-full bg-gradient-to-r from-orange-400 to-orange-500 px-8 py-3 text-lg font-semibold text-white shadow-sm hover:from-orange-500 hover:to-orange-600 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-orange-600 transition-all duration-200",onClick:()=>{(null==j?void 0:j.includes("app.receiptsai.com"))&&(0,n.I)({ctaId:w,text:v,href:j,component:"HowToSection",placement:"primary"}),window.location.href=j},children:v}),x.description&&(0,a.jsx)("p",{className:"mt-6 text-gray-700",children:x.description})]})]})}):(0,a.jsxs)("div",{className:"relative isolate overflow-hidden px-6 py-24 sm:py-32 lg:overflow-visible lg:px-0 ".concat(p),children:[(0,a.jsx)("div",{className:"absolute inset-0 -z-10 overflow-hidden",children:(0,a.jsxs)("svg",{"aria-hidden":"true",className:"absolute left-[max(50%,25rem)] top-0 h-[64rem] w-[128rem] -translate-x-1/2 stroke-gray-200 [mask-image:radial-gradient(64rem_64rem_at_top,white,transparent)]",children:[(0,a.jsx)("defs",{children:(0,a.jsx)("pattern",{id:"e813992c-7d03-4cc4-a2bd-151760b470a0",width:200,height:200,x:"50%",y:-1,patternUnits:"userSpaceOnUse",children:(0,a.jsx)("path",{d:"M100 200V.5M.5 .5H200",fill:"none"})})}),(0,a.jsx)("rect",{width:"100%",height:"100%",strokeWidth:0,fill:"url(#e813992c-7d03-4cc4-a2bd-151760b470a0)"})]})}),(0,a.jsxs)("div",{className:"mx-auto grid max-w-2xl grid-cols-1 gap-x-8 gap-y-16 lg:mx-0 lg:max-w-none lg:grid-cols-2 lg:items-start lg:gap-y-10",children:[(0,a.jsx)("div",{className:"lg:col-span-2 lg:col-start-1 lg:row-start-1 lg:mx-auto lg:grid lg:w-full lg:max-w-7xl lg:grid-cols-2 lg:gap-x-8 lg:px-8",children:(0,a.jsx)("div",{className:"lg:pr-4",children:(0,a.jsx)("div",{className:"lg:max-w-lg",children:(u||g||h)&&(0,a.jsx)(r.M,{eyebrow:u?t:"",title:g?s:"",description:h?i:"",align:"left"})})})}),f&&(0,a.jsx)("div",{className:"-ml-20 sm:-ml-60 -mt-12 p-12 lg:sticky lg:top-4 lg:col-start-2 lg:row-span-2 lg:row-start-1 lg:overflow-hidden",children:c&&(0,a.jsx)("img",{className:m,src:c,alt:d})}),(0,a.jsx)("div",{className:"lg:col-span-2 lg:col-start-1 lg:row-start-2 lg:mx-auto lg:grid lg:w-full lg:max-w-7xl lg:grid-cols-2 lg:gap-x-8 lg:px-8",children:(0,a.jsx)("div",{className:"lg:pr-4",children:(0,a.jsxs)("div",{className:"max-w-xl text-base text-gray-700 lg:max-w-lg",children:[(0,a.jsx)("ul",{role:"list",className:"mt-8 space-y-8 text-gray-600",children:l.map(e=>(0,a.jsxs)("li",{className:"flex gap-x-3",children:[e.icon&&(0,a.jsx)(e.icon,{className:"mt-1 h-6 w-6 flex-none text-blue-600","aria-hidden":"true"}),(0,a.jsxs)("div",{children:[(0,a.jsx)("h3",{className:"font-semibold text-gray-900",children:e.title}),(0,a.jsx)("p",{children:e.description})]})]},e.title))}),x&&y&&(0,a.jsxs)("div",{className:"mt-16",children:[x.title&&(0,a.jsx)("h2",{className:"text-2xl font-bold tracking-tight text-gray-900",children:x.title}),b&&(0,a.jsx)("button",{className:"mt-6 rounded-full bg-gradient-to-r from-orange-400 to-orange-500 px-8 py-3 text-lg font-semibold text-white shadow-sm hover:from-orange-500 hover:to-orange-600 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-orange-600 transition-all duration-200",onClick:()=>{(null==j?void 0:j.includes("app.receiptsai.com"))&&(0,n.I)({ctaId:w,text:v,href:j,component:"HowToSection",placement:"primary"}),window.location.href=j},children:v}),x.description&&(0,a.jsx)("p",{className:"mt-6",children:x.description})]})]})})})]})]})}},6311:function(e,t,s){"use strict";s.d(t,{Y:function(){return n}});var a=s(85893),r=s(64118);function n(){return(0,a.jsx)("div",{className:"bg-slate-50 py-2 hidden md:block",children:(0,a.jsx)("div",{className:"mx-auto max-w-7xl px-6 lg:px-8",children:(0,a.jsxs)("div",{className:"flex justify-start items-center text-xs text-slate-500 space-x-12",children:[(0,a.jsxs)("div",{className:"flex items-center gap-1",children:[(0,a.jsx)(r.Z,{className:"h-4 w-4 text-green-500"}),(0,a.jsx)("span",{children:"Founded in Europe. We respect your privacy."})]}),(0,a.jsxs)("div",{className:"flex items-center gap-1",children:[(0,a.jsx)(r.Z,{className:"h-4 w-4 text-green-500"}),(0,a.jsx)("span",{children:"Accurate data extraction"})]}),(0,a.jsxs)("div",{className:"flex items-center gap-1",children:[(0,a.jsx)(r.Z,{className:"h-4 w-4 text-green-500"}),(0,a.jsx)("span",{children:"100,000+ documents processed"})]})]})})})}},49508:function(e,t,s){"use strict";async function a(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"/api/export-template";try{let s=await fetch(t,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!s.ok){let e=await s.json();throw Error(e.message||"Failed to export template")}let{file:a,filename:r}=await s.json(),n=document.createElement("a");n.href=a,n.download=r,document.body.appendChild(n),n.click(),document.body.removeChild(n)}catch(e){throw console.error("Export error:",e),e}}function r(e){return a(e,"/api/export-chart-of-accounts")}function n(e){return a(e,"/api/export-expense-report")}function o(e){let t=e.split(" "),s=0,a=t.length<=2?1:2;return t.map((e,t)=>{let r=e.toLowerCase();return!("and"===r||"budget"===r)&&s<a?(s++,{text:e,isGradient:!0,key:t}):{text:e,isGradient:!1,key:t}})}s.d(t,{RP:function(){return o},_B:function(){return n},p8:function(){return r},xk:function(){return a}})},31243:function(e,t,s){"use strict";s.r(t),s.d(t,{default:function(){return M}});var a=s(85893),r=s(67294),n=s(11163),o=s(41664),i=s.n(o),l=s(95804),c=s(58219),d=s(82871),m=s(61608),x=s(69985),p=s(31819),u=s(6311),g=s(48602),h=s(86597),f=s(11079),y=s(45960),b=s(93549),v=s(31844),j=s(42366),w=s(71627),N=s(36210),k=s(89755),E=s(43606);function C(e){if(null==e||""===e)return 0;
1let t=parseFloat(String(e).replace(/[^0-9.-]/g,""));return Number.isNaN(t)?0:t}function S(e){return new Intl.NumberFormat("en-US",{style:"currency",currency:"USD",minimumFractionDigits:2,maximumFractionDigits:2}).format(Number(e)||0)}function F(e){return(e.items||[]).reduce((e,t)=>e+C(t.amount),0)}function I(e){var t;let{reportData:s,onExport:n}=e,[o,i]=(0,r.useState)((null==s?void 0:null===(t=s.metadata)||void 0===t?void 0:t.name)||"Expense Report"),[l,c]=(0,r.useState)((null==s?void 0:s.categories)||[]),[d,m]=(0,r.useState)(null),[x,p]=(0,r.useState)(null),[u,g]=(0,r.useState)(!1);(0,r.useEffect)(()=>{var e;i((null==s?void 0:null===(e=s.metadata)||void 0===e?void 0:e.name)||"Expense Report"),c((null==s?void 0:s.categories)||[])},[s]);let h=(0,r.useMemo)(()=>l.reduce((e,t)=>e+F(t),0),[l]),f=(0,r.useMemo)(()=>l.map(e=>({name:e.name,value:F(e)})).filter(e=>e.value>0).sort((e,t)=>t.value-e.value),[l]),I=(e,t,s,a)=>{c(l.map((r,n)=>{if(n!==e)return r;let o=r.items.map((e,r)=>r===t?{...e,[s]:a}:e);return{...r,items:o}}))},T=(e,t)=>{c(l.map((s,a)=>a===e?{...s,name:t}:s))},R=e=>{c(l.map((t,s)=>s===e?{...t,items:[...t.items,{name:"New Expense",amount:""}]}:t))},P=(e,t)=>{c(l.map((s,a)=>a===e?{...s,items:s.items.filter((e,s)=>s!==t)}:s))},A=e=>{c(l.filter((t,s)=>s!==e))},D=async e=>{p(e),g(!0);try{await n({categories:l,metadata:{name:o},format:e})}catch(e){console.error("Export error:",e)}finally{g(!1),p(null)}};return s?(0,a.jsxs)("div",{className:"bg-white rounded-2xl shadow-lg p-6 sm:p-8",children:[(0,a.jsxs)("div",{className:"flex flex-col gap-4 sm:flex-row sm:items-center sm:justify-between mb-6",children:[(0,a.jsxs)("div",{className:"flex min-w-0 items-center gap-2",children:[(0,a.jsx)("input",{type:"text",value:o,onChange:e=>i(e.target.value),"aria-label":"Report title",className:"w-full text-xl font-bold text-gray-900 bg-transparent border-b border-transparent hover:border-gray-200 focus:border-blue-500 focus:outline-none px-1 py-0.5 sm:w-80"}),(0,a.jsx)(y.Z,{className:"h-4 w-4 flex-none text-gray-300","aria-hidden":"true"})]}),(0,a.jsxs)("div",{className:"flex gap-3",children:[(0,a.jsx)("button",{onClick:()=>D("excel"),disabled:u,className:"inline-flex items-center gap-x-2 rounded-lg bg-green-600 px-4 py-2.5 text-sm font-semibold text-white shadow-sm hover:bg-green-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-green-600 disabled:opacity-50 disabled:cursor-not-allowed",children:u&&"excel"===x?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(b.Z,{className:"h-5 w-5 animate-bounce"}),"Exporting..."]}):(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(v.Z,{className:"h-5 w-5"}),"Export to Excel"]})}),(0,a.jsx)("button",{onClick:()=>D("pdf"),disabled:u,className:"inline-flex items-center gap-x-2 rounded-lg bg-red-600 px-4 py-2.5 text-sm font-semibold text-white shadow-sm hover:bg-red-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-red-600 disabled:opacity-50 disabled:cursor-not-allowed",children:u&&"pdf"===x?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(b.Z,{className:"h-5 w-5 animate-bounce"}),"Exporting..."]}):(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(j.Z,{className:"h-5 w-5"}),"Export to PDF"]})})]})]}),(0,a.jsxs)("div",{className:"grid grid-cols-1 gap-4 lg:grid-cols-2",children:[(0,a.jsxs)("div",{className:"rounded-lg border border-gray-200 bg-white p-4 shadow-sm",children:[(0,a.jsx)("h3",{className:"mb-2 text-sm font-semibold text-gray-900",children:"Expense Breakdown"}),(0,a.jsx)(k.d,{data:f,colors:E.yE})]}),(0,a.jsx)("div",{className:"rounded-lg border border-gray-200 bg-white p-4 shadow-sm",children:f.length>0?(0,a.jsxs)("div",{className:"space-y-1",children:[f.slice(0,10).map((e,t)=>(0,a.jsxs)("div",{className:"flex items-center justify-between rounded-lg p-3 transition-colors hover:bg-gray-50",children:[(0,a.jsxs)("div",{className:"flex min-w-0 flex-1 items-center",children:[(0,a.jsx)("div",{className:"mr-3 h-3 w-3 flex-shrink-0 rounded-full",style:{backgroundColor:E.yE[t%E.yE.length]}}),(0,a.jsx)("span",{className:"truncate font-medium text-gray-900",children:e.name})]}),(0,a.jsx)("div",{className:"ml-4 text-right font-semibold text-gray-900",children:S(e.value)})]},e.name)),f.length>10&&(0,a.jsxs)("div",{className:"pt-3 text-center text-sm text-gray-500",children:["...and ",f.length-10," more categories"]}),(0,a.jsxs)("div",{className:"mt-2 flex items-center justify-between rounded-lg border-2 border-gray-200 bg-gray-50 p-4",children:[(0,a.jsxs)("div",{className:"flex items-center",children:[(0,a.jsx)("div",{className:"mr-3 h-3 w-3 rounded-full bg-gray-400"}),(0,a.jsx)("span",{className:"font-bold text-gray-900",children:"Total Expenses"})]}),(0,a.jsx)("div",{className:"text-right text-lg font-bold text-gray-900",children:S(h)})]})]}):(0,a.jsx)("div",{className:"flex h-full items-center justify-center text-sm text-gray-400",children:"Add expense amounts to see your category breakdown."})})]}),(0,a.jsx)("div",{className:"mt-6 overflow-x-auto rounded-lg border border-gray-200",children:(0,a.jsxs)("table",{className:"min-w-full divide-y divide-gray-200",children:[(0,a.jsx)("thead",{className:"bg-gray-50",children:(0,a.jsxs)("tr",{children:[(0,a.jsx)("th",{className:"w-3/5 px-6 py-3 text-left text-sm font-semibold text-gray-900",children:"Expense"}),(0,a.jsx)("th",{className:"w-2/5 px-6 py-3 text-right text-sm font-semibold text-gray-900",children:"Amount"}),(0,a.jsx)("th",{className:"w-16 px-6 py-3"})]})}),(0,a.jsxs)("tbody",{className:"divide-y divide-gray-200 bg-white",children:[l.map((e,t)=>(0,a.jsxs)(r.Fragment,{children:[(0,a.jsxs)("tr",{className:"group bg-blue-50 hover:bg-blue-100",children:[(0,a.jsx)("td",{className:"px-6 py-3",colSpan:"2",children:(0,a.jsxs)("div",{className:"flex items-center justify-between",children:[(0,a.jsx)("input",{type:"text",value:e.name,onChange:e=>T(t,e.target.value),className:"rounded bg-transparent px-2 py-1 text-base font-bold text-gray-900 focus:ring-2 focus:ring-blue-500"}),(0,a.jsx)("span",{className:"text-sm text-gray-600",children:S(F(e))})]})}),(0,a.jsx)("td",{className:"px-6 py-3",children:(0,a.jsx)("button",{onClick:()=>A(t),className:"rounded p-1 opacity-0 transition-opacity hover:bg-red-100 group-hover:opacity-100",title:"Delete category",children:(0,a.jsx)(w.Z,{className:"h-4 w-4 text-red-600"})})})]}),e.items.map((e,s)=>(0,a.jsxs)("tr",{className:"group hover:bg-gray-50",children:[(0,a.jsx)("td",{className:"px-6 py-3 pl-12",children:(null==d?void 0:d.catIndex)===t&&(null==d?void 0:d.itemIndex)===s&&(null==d?void 0:d.field)==="name"?(0,a.jsx)("input",{type:"text",value:e.name,onChange:e=>
1I(t,s,"name",e.target.value),onBlur:()=>m(null),onKeyDown:e=>"Enter"===e.key&&m(null),autoFocus:!0,className:"w-full rounded border border-blue-500 px-2 py-1 text-sm focus:outline-none focus:ring-2 focus:ring-blue-500"}):(0,a.jsxs)("div",{className:"flex cursor-pointer items-center gap-2 text-sm text-gray-900",onClick:()=>m({catIndex:t,itemIndex:s,field:"name"}),children:[(0,a.jsxs)("span",{children:["â ",e.name]}),(0,a.jsx)(y.Z,{className:"h-3 w-3 text-gray-400 opacity-0 group-hover:opacity-100"})]})}),(0,a.jsx)("td",{className:"px-6 py-3 text-right",children:(null==d?void 0:d.catIndex)===t&&(null==d?void 0:d.itemIndex)===s&&(null==d?void 0:d.field)==="amount"?(0,a.jsx)("input",{type:"text",value:e.amount,onChange:e=>I(t,s,"amount",e.target.value),onBlur:()=>m(null),onKeyDown:e=>"Enter"===e.key&&m(null),autoFocus:!0,placeholder:"0",className:"w-full rounded border border-blue-500 px-2 py-1 text-right text-sm focus:outline-none focus:ring-2 focus:ring-blue-500"}):(0,a.jsxs)("div",{className:"flex cursor-pointer items-center justify-end gap-2 text-sm text-gray-900",onClick:()=>m({catIndex:t,itemIndex:s,field:"amount"}),children:[(0,a.jsx)("span",{children:S(C(e.amount))}),(0,a.jsx)(y.Z,{className:"h-3 w-3 text-gray-400 opacity-0 group-hover:opacity-100"})]})}),(0,a.jsx)("td",{className:"px-6 py-3",children:(0,a.jsx)("button",{onClick:()=>P(t,s),className:"rounded p-1 opacity-0 transition-opacity hover:bg-red-100 group-hover:opacity-100",title:"Delete expense",children:(0,a.jsx)(w.Z,{className:"h-4 w-4 text-red-600"})})})]},s)),(0,a.jsx)("tr",{children:(0,a.jsx)("td",{colSpan:"3",className:"px-6 py-2 pl-12",children:(0,a.jsxs)("button",{onClick:()=>R(t),className:"inline-flex items-center gap-x-1 text-sm text-blue-600 hover:text-blue-500",children:[(0,a.jsx)(N.Z,{className:"h-4 w-4"}),"Add expense to ",e.name]})})})]},t)),(0,a.jsxs)("tr",{className:"bg-gray-100 font-bold",children:[(0,a.jsx)("td",{className:"px-6 py-4 text-base text-gray-900",children:"TOTAL"}),(0,a.jsx)("td",{className:"px-6 py-4 text-right text-base text-gray-900",children:S(h)}),(0,a.jsx)("td",{className:"px-6 py-4"})]})]})]})}),(0,a.jsx)("div",{className:"mt-4",children:(0,a.jsxs)("button",{onClick:()=>{c([...l,{name:"New Category",items:[{name:"New Expense",amount:""}]}])},className:"inline-flex items-center gap-x-2 text-sm font-semibold text-blue-600 hover:text-blue-500",children:[(0,a.jsx)(N.Z,{className:"h-5 w-5"}),"Add Category"]})})]}):null}var T=s(67698),R=s(58118),P=s(60516),A=s(49508),D=s(12072),q=s(39359),Z=s(95468),_=s(76415),G=s(84134);let z={"application/pdf":[".pdf"],"image/png":[".png"],"image/jpeg":[".jpg",".jpeg"]},Y="https://app.receiptsai.com";function B(e){return{metadata:{name:e.reportTitle},categories:e.categories.map(e=>({name:e.name,items:e.items.map(e=>({name:e.name,amount:e.amount}))}))}}let O=[{title:"1. Choose a template or start automatically",description:"Pick an expense report template for your business type, or let ReceiptsAI build it automatically from your receipts and statements.",icon:q.Z},{title:"2. Edit your expenses on the page",description:"Rename categories, add or remove line items, and update amounts. The pie chart and category totals update instantly as you type.",icon:Z.Z},{title:"3. Export to Excel or PDF",description:"Download a clean, formatted expense report with a category breakdown pie chart. Perfect for reimbursement, taxes, and bookkeeping.",icon:b.Z}],U=[{id:1,question:"What is an expense report generator?",answer:"An expense report generator is a free tool that helps you build an itemized report of your business or personal expenses. Instead of formatting a spreadsheet from scratch, you choose an expense report template, edit the categories and amounts on the page, and export a professional report to Excel or PDF in seconds."},{id:2,question:"Are the expense report templates free?",answer:"Yes. Every expense report template is completely free to use with no sign-up required. You can create, edit, and download as many expense reports as you need without any limits or hidden fees."},{id:3,question:"Which expense report templates are included?",answer:"We include expense report templates for common business types including freelancers, contractors, restaurants and caf\xe9s, online retail, rideshare drivers, lawn care, cleaning businesses, yoga studios, and SaaS companies, plus a personal expense report template. Each one comes pre-filled with relevant categories and example amounts you can edit."},{id:4,question:"Can I edit the expense report before downloading?",answer:"Absolutely. The report is fully editable on the page. Click any category name, line item, or amount to change it, add new expenses, or remove ones you don't need. The expense breakdown pie chart and totals recalculate automatically."},{id:5,question:"How do I export my expense report to Excel or Google Sheets?",answer:"Click 'Export to Excel' to download an .xlsx file that includes your itemized expenses and a category breakdown pie chart. To use it in Google Sheets, upload the file to Google Drive and open it with Sheets â the formatting and pie chart carry over."},{id:6,question:"Can I create a printable PDF expense report?",answer:"Yes. Click 'Export to PDF' to download a print-ready expense report with your category breakdown pie chart, itemized line items, and totals. It's ideal for submitting reimbursement claims or keeping records for tax time."},{id:7,question:"Can I generate expense reports automatically from receipts?",answer:"Yes. Instead of entering expenses by hand, ReceiptsAI can build your expense reports automatically. Upload your receipts, invoices, and bank or credit card statements and our AI extracts, categorizes, and organizes every transaction for you."},{id:8,question:"What is an expense report?",answer:"An expense report is a document that itemizes the business, travel, or personal costs incurred over a period of time, grouped by category with a running total. Businesses and employees use expense reports to request reimbursement, track spending, and claim tax-deductible expenses. Our generator turns those line items into a clean, professional report you can export to Excel or PDF."},{id:9,question:"How do I create an expense report?",answer:"Creating an expense report takes three steps. First, choose an expense report template for your business type (or let ReceiptsAI build one automatically from your receipts). Second, edit the categories, line items, and amounts directly on the page â totals and the breakdown pie chart update as you type. Third, click Export to Excel or Export to PDF to download your finished report."},{id:10,question:"What types of expenses can I track?",answer:"You can track any business or personal expense, including travel, flights, hotels and accommodation, meals and entertainment, mileage, softw
1are and subscriptions, equipment, office supplies, professional fees, and more. Add as many categories and line items as you need, rename them to match your business, and the report totals everything for you automatically."},{id:11,question:"Do I need an account or credit card to use the expense report generator?",answer:"No. The expense report generator is completely free with no sign-up, account, or credit card required. You can create, edit, and download unlimited expense reports right in your browser. Creating a free ReceiptsAI account is only needed if you want AI to build reports automatically from your receipts and statements."},{id:12,question:"Can I use the expense report generator on my phone or tablet?",answer:"Yes. The expense report generator runs entirely in your web browser and works on desktop, laptop, tablet, and mobile. You can build and export a professional expense report from anywhere â perfect for logging expenses during business travel or on the go."},{id:13,question:"Can I create monthly, travel, or annual expense reports?",answer:"Yes. Because every category, line item, and the report title are editable, you can use the tool for monthly expense reports, travel and mileage reports, client or project reports, or a full annual summary for tax time. Rename the report, adjust the categories to fit the period, and export a formatted Excel or PDF report."},{id:14,question:"Does your expense report include visuals?",answer:"Yes. To visualize the spending breakdown, the report includes a pie chart in the preview and on both Excel and PDF outputs."}],W=["small-business-budget","freelancer-budget","project-budget"].map(e=>D.budgetTemplates.find(t=>t.id===e)).filter(Boolean);function M(){let e=(0,n.useRouter)(),[t,s]=(0,r.useState)(E.Y9),[o,y]=(0,r.useState)(()=>B((0,E.MQ)(E.Y9))),[b,v]=(0,r.useState)(!1),j=function(e){let{shouldScroll:t=!0}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=(0,E.MQ)(e);s(a.id),y(B(a)),t&&setTimeout(()=>{var e;null===(e=document.getElementById("report-preview"))||void 0===e||e.scrollIntoView({behavior:"smooth",block:"start"})},100)};(0,r.useEffect)(()=>{e.isReady&&"string"==typeof e.query.template&&j(e.query.template,{shouldScroll:!1})},[e.isReady,e.query.template]);let w=async e=>{try{await (0,A._B)(e),v(!0)}catch(e){alert("Export failed: ".concat(e.message))}};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(p.Z,{siteTitle:"Free Online Expense Report Generator | Excel & PDF",siteDescription:"Create a professional expense report with our free expense report generator. Choose from our templates, edit on the page, and export to Excel or PDF.",siteCanonicalUrl:"https://receiptsai.com/tools/".concat("expense-report-generator")}),(0,a.jsx)(u.Y,{}),(0,a.jsx)(d.h,{}),(0,a.jsxs)("main",{children:[(0,a.jsx)("div",{className:"relative isolate overflow-hidden pt-16 sm:pt-20",style:{background:"linear-gradient(to bottom, white 0%, rgb(239 246 255 / 0.6) 30%, rgb(238 242 255 / 0.5) 50%, rgb(239 246 255 / 0.4) 70%, white 100%)"},children:(0,a.jsxs)("div",{className:"mx-auto max-w-7xl px-6 py-8 sm:py-12 lg:px-8",children:[(0,a.jsxs)("div",{className:"grid items-start gap-10 lg:grid-cols-2 lg:gap-12",children:[(0,a.jsxs)("div",{className:"max-w-2xl lg:pt-6",children:[(0,a.jsxs)("h1",{className:"text-4xl font-bold tracking-tight text-gray-900 sm:text-5xl",children:["Free"," ",(0,a.jsx)("span",{className:"bg-gradient-to-r from-blue-500 to-blue-600 bg-clip-text text-transparent",children:"Expense Report Generator"})]}),(0,a.jsx)("p",{className:"mt-6 text-lg leading-8 text-gray-600",children:"Build a professional expense report in seconds. Choose from free expense report templates for your business, edit it on the page, and export to Excel or PDF â no sign-up required."}),(0,a.jsxs)("div",{className:"mt-8 flex items-center gap-4",children:[(0,a.jsx)("div",{className:"h-px flex-1 bg-gray-200"}),(0,a.jsx)("span",{className:"text-xs font-semibold uppercase tracking-widest text-gray-400",children:"Start here"}),(0,a.jsx)("div",{className:"h-px flex-1 bg-gray-200"})]}),(0,a.jsxs)("div",{className:"mt-8",children:[(0,a.jsx)("h2",{className:"text-base font-semibold text-gray-900",children:"Choose an expense report template"}),(0,a.jsx)("p",{className:"mt-1 text-sm leading-6 text-gray-600",children:"Select from our premade templates. Our templates track the most common expense categories for several business types."}),(0,a.jsx)("div",{className:"mt-4 flex flex-wrap gap-2",children:E.fY.map(e=>{let s=e.id===t;return(0,a.jsx)("button",{type:"button",onClick:()=>j(e.id),"aria-pressed":s,className:"rounded-full px-4 py-2 text-sm font-semibold transition ".concat(s?"bg-blue-600 text-white shadow-sm":"bg-gray-50 text-gray-700 ring-1 ring-inset ring-gray-200 hover:bg-gray-100"),children:e.name},e.id)})}),(0,a.jsxs)("p",{className:"mt-4 text-sm text-gray-400",children:["Need a different template?"," ",(0,a.jsx)("a",{href:Y,className:"font-medium text-gray-500 underline hover:text-gray-700",onClick:()=>{(0,R.I)({ctaId:P.gp.expenseReportGenerator.templatesStartFreeSignup,text:"Sign up for free",href:Y,component:"ExpenseReportGeneratorPage",placement:"template_chooser"})},children:"Sign up for free â"})]})]})]}),(0,a.jsx)("div",{className:"rounded-2xl border border-gray-200 bg-white p-5 shadow-xl shadow-blue-500/10 sm:p-6 lg:mt-6",children:(0,a.jsxs)("div",{children:[(0,a.jsx)("p",{className:"text-sm font-semibold text-gray-900",children:"Let ReceiptsAI do it automatically"}),(0,a.jsx)("p",{className:"mt-1 text-sm leading-6 text-gray-600",children:"Upload your receipts, invoices, or bank statements and let AI extract, categorize, and build expense reports for you."}),(0,a.jsx)("div",{className:"mt-4",children:(0,a.jsx)(T.V,{uploadLabel:"Receipt",acceptedFileTypes:z,multiple:!1,actionButtonText:"Process & Continue â",processingText:"Uploading...",redirectUrl:Y,extractCompletedCtaId:P.gp.expenseReportGenerator.autoUploadExtract,ctaComponent:"ExpenseReportGeneratorPage",ctaPlacement:"auto_box_upload"})}),(0,a.jsxs)("p",{className:"mt-3 text-xs leading-5 text-gray-500",children:["Managing expenses every month?"," ",(0,a.jsx)(i(),{href:"/solutions/expense-management",className:"font-medium text-blue-600 hover:text-blue-500",children:"See how expense management works â"})]})]})})]}),(0,a.jsxs)("div",{id:"report-preview",className:"mx-auto mt-20 max-w-5xl sm:mt-28",children:[(0,a.jsxs)("div",{className:"mb-6 flex items-center gap-4",children:[(0,a.jsx)("div",{className:"h-px flex-1 bg-gray-200"}),(0,a.jsx)("h2",{className:"text-base font-semibold uppercase tracking-widest text-gray-400 sm:text-lg",children:"Preview"}),(0,a.jsx)("div",{className:"h-px flex-1 bg-gray-200"})]}),(0,a.jsx)(I,{reportData:o,onExport:w})]})]})}),(0,a.jsx)(g.n,{layout:"grid",eyebrow:"Simple Process",title:"How the Expense Report Generator Works",description:"Create and export a polished expense report in three quick steps.",steps:O,showImage:!1,showCTA:!1}),(0,a.jsx)("section",{className:"bg-white",children:(0,a.jsxs)("div",{className:"mx-auto max-w-7xl px-6 pt-12 pb-24 sm:pt-16 sm:pb-32 lg:px-8",children:[(0,a.jsxs)("div",{className:"mx-auto max-w-2xl text-center",children:[(0,a.jsx)("h2",{className:"text-4xl font-semibold tracking-tight text-balance text-gray-900 sm:text-5xl",children:"Looking for more free templates?"}),(0,a.jsxs)("p",{className:"mx-auto mt-6 max-w-2xl text-lg text-gray-600",children:["Explore our collection of free, ready-to-use budget and expense templates for every situation, or plan next month's spending with our free"," ",(0,a.jsx)(i(),{href:"/tools/budget-generator",className:"font-medium text-blue-600 hover:text-blue-500",children:"AI budget planner"}),"."]})]}),(0,a.jsx)(h.p,{templates:W,containerClassName:"mt-12",gridClassName:"mx-auto grid max-w-2xl grid-cols-1 gap-6 sm:grid-cols-2 lg:max-w-none lg:grid-cols-3"}),(0,a.jsx)("div",{className:"mt-12 flex items-center justify-center",children:(0,a.jsx)(i(),{href:"/free-templates",className:"rounded-md bg-blue-600 px-3.5 py-2.5 text-sm font-semibold text-white shadow-sm hover:bg-blue-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-600",children:"Explore Templates"})})]})}),(0,a.jsx)(f.Z,{faqs:U,title:"Expense Report Generator FAQs",de
1scription:"Everything you need to know about creating and exporting your expense reports."}),(0,a.jsx)(x.R,{title:"Save time managing expenses"})]}),(0,a.jsx)(m.$,{}),(0,a.jsx)(l.u.Root,{show:b,as:r.Fragment,children:(0,a.jsxs)(c.V,{as:"div",className:"relative z-50",onClose:v,children:[(0,a.jsx)(l.u.Child,{as:r.Fragment,enter:"ease-out duration-300",enterFrom:"opacity-0",enterTo:"opacity-100",leave:"ease-in duration-200",leaveFrom:"opacity-100",leaveTo:"opacity-0",children:(0,a.jsx)("div",{className:"fixed inset-0 bg-gray-500 bg-opacity-75 transition-opacity"})}),(0,a.jsx)("div",{className:"fixed inset-0 z-10 overflow-y-auto",children:(0,a.jsx)("div",{className:"flex min-h-full items-end justify-center p-4 text-center sm:items-center sm:p-0",children:(0,a.jsx)(l.u.Child,{as:r.Fragment,enter:"ease-out duration-300",enterFrom:"opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95",enterTo:"opacity-100 translate-y-0 sm:scale-100",leave:"ease-in duration-200",leaveFrom:"opacity-100 translate-y-0 sm:scale-100",leaveTo:"opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95",children:(0,a.jsxs)(c.V.Panel,{className:"relative transform overflow-hidden rounded-lg bg-white px-4 pb-4 pt-5 text-left shadow-xl transition-all sm:my-8 sm:w-full sm:max-w-sm sm:p-6",children:[(0,a.jsx)("div",{className:"absolute right-0 top-0 hidden pr-4 pt-4 sm:block",children:(0,a.jsxs)("button",{type:"button",className:"rounded-md bg-white text-gray-400 hover:text-gray-500 focus:outline-none",onClick:()=>v(!1),children:[(0,a.jsx)("span",{className:"sr-only",children:"Close"}),(0,a.jsx)(_.Z,{className:"h-6 w-6","aria-hidden":"true"})]})}),(0,a.jsxs)("div",{children:[(0,a.jsx)("div",{className:"mx-auto flex h-12 w-12 items-center justify-center rounded-full bg-blue-100",children:(0,a.jsx)(G.Z,{className:"h-6 w-6 text-blue-600","aria-hidden":"true"})}),(0,a.jsxs)("div",{className:"mt-3 text-center sm:mt-5",children:[(0,a.jsx)(c.V.Title,{as:"h3",className:"text-base font-semibold leading-6 text-gray-900",children:"Stop building expense reports by hand"}),(0,a.jsx)("div",{className:"mt-2",children:(0,a.jsx)("p",{className:"text-sm text-gray-500",children:"Let ReceiptsAI extract and categorize your receipts and statements automatically, then generate expense reports for you."})})]})]}),(0,a.jsx)("div",{className:"mt-5 sm:mt-6",children:(0,a.jsx)("a",{href:Y,className:"inline-flex w-full justify-center rounded-md bg-blue-600 px-3 py-2 text-sm font-semibold text-white shadow-sm hover:bg-blue-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-blue-600",onClick:()=>{(0,R.I)({ctaId:P.gp.expenseReportGenerator.dialogStartFreeSignup,text:"Start Free",href:Y,component:"ExpenseReportGeneratorPage",placement:"dialog"})},children:"Start Free"})})]})})})})]})})]})}}},function(e){e.O(0,[4976,7948,8535,1115,8219,1715,7390,5725,6798,2871,8164,5695,6597,2072,2888,9774,179],function(){return e(e.s=27375)}),_N_E=e.O()}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.