Good Day
We need Customer Statements to send to our customers as we currently export data from ERPNext and import to Excell to create statement per customer per tab.
I see feature was requested for long time.
https://discuss.erpnext.com/t/multiple-customer-account-statements/8546/25
https://discuss.erpnext.com/t/customer-statement/33114
https://discuss.erpnext.com/t/customer-statements/35614/4
https://github.com/frappe/erpnext/issues/13565
https://github.com/frappe/erpnext/issues/4907
Hope this feature will be implemented soon.
Thank You
Albertus Geyser
I even created a Bounty a few months back - but no response from anyone:
https://erpnext.org/bounties/multiple-customer-account-statements
We need this too!
Good Day
I also want a feature like this on ERPNext, but instead designed my own on Jasper Reports.

I designed a new one that also highlights RED 30,60,90 days when over terms.
Hello,
We will evaluate the request and see how it can be implemented in the future versions.
We appreciate your patience and cooperation. Thanks.
Good Day
I also want a feature like this on ERPNext, but instead designed my own on Jasper Reports.
I designed a new one that also highlights RED 30,60,90 days when over terms.
Hi Albertus - your design on Jasper Reports looks great! That's exactly what we want. Do you use cloud ERPNext? If so, how do you go about integrating that report? Many thanks! James.
We cannot use Jasper Reports on ERPNext Cloud hosted.
Good Day
Not sure if this will help to implement Customer Statement Report, But herewith SQL Query for Customer Statement i used in Jasper Reports:
SELECT tabGL Entry.posting_date, tabCustomer.account_number,tabPayment Terms Template Detail.credit_days,tabGL Entry.party, tabGL Entry.voucher_type, tabGL Entry.voucher_no, DATEDIFF(LAST_DAY($P{FDate}), tabGL Entry.posting_date) AS days, CAST(SUM(debit) AS DOUBLE) AS debit, CAST(SUM(credit) AS DOUBLE) AS credit, CAST(tabSales Invoice.outstanding_amount AS DOUBLE) AS outstanding FROM tabGL Entry LEFT JOIN tabSales Invoice ON tabGL Entry.voucher_no = tabSales Invoice.name LEFT JOIN tabCustomer ON tabGL Entry.party = tabCustomer.name LEFT JOIN tabPayment Terms Template ON tabCustomer.payment_terms = tabPayment Terms Template.name LEFT JOIN tabPayment Terms Template Detail ON tabPayment Terms Template.name = tabPayment Terms Template Detail.parent WHERE tabGL Entry.company = "Standerton Mills" AND party=$P{customer} AND tabGL Entry.posting_date <= LAST_DAY($P{FDate}) GROUP BY tabGL Entry.voucher_no ORDER BY tabGL Entry.posting_date
Good Day
I also want a feature like this on ERPNext, but instead designed my own on Jasper Reports.
I designed a new one that also highlights RED 30,60,90 days when over terms.Hi Albertus - your design on Jasper Reports looks great! That's exactly what we want. Do you use cloud ERPNext? If so, how do you go about integrating that report? Many thanks! James.
https://discuss.erpnext.com/t/multiple-customer-account-statements/8546/47
I get the impression that the devs don't understand the _profound_ importance of such an _essential_ feature.
Its an enormous oversight, and it beggars belief that this software could go through 12 version and be used by sole without this functionality. I struggle to think how any company on the globe could consider software incapable of mass generating customer statements. I cannot believe ERPNext has _survived_ without this.
Strong words I know, but this should have been a top tier priority from day one, and this needs to come off the back burner.
Unfortunately, I'm not confident enough yet to try and raise PR's to ERPNext, but here is a custom app that we use to send statements to our customers

@replaceablehead
yey i second your comments i myself is dumbstruck and cant wrap my head around any software without customer statements
I kind of get why some might look at using existing software like Jasper Reports, but this is just too common a task not to be a standard feature. To be clear we're talking about the batch generation of statements per customer, with a mail merge. The mail merge is key.
why don鈥檛 you write a custom app? I鈥檝e been writing mine and I re wrote core methods to allow manufactured serial numbers to be generated. It was a feature in v11. If you don鈥檛 have something, make it .... otherwise stop complaining
@jma4227
i think you read this entire post wrong the point is not about writing a custom app the point is that any erp software should have customer and supplier statements build into the core .unless the area you come from don't issue statements
I AM SO GLAD YOU WROTE YOUR OWN APP FOR SERIAL NUMBERS THATS GREAT PAT ON YOUR SHOULDER
but coming back to this post statements should be in the core of any accounting program let alone an erp
Unfortunately, I'm not confident enough yet to try and raise PR's to ERPNext, but here is a custom app that we use to send statements to our customers
I tried installing this and I get the following error:
killed
npm ERR! code ELIFECYCLE
npm ERR! errno 137
npm ERR! frappe@ production: FRAPPE_ENV=production node rollup/build.js "erpnext_customer_statements_sender"
npm ERR! Exit status 137
npm ERR!
npm ERR! Failed at the frappe@ production script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
Most helpful comment
Unfortunately, I'm not confident enough yet to try and raise PR's to ERPNext, but here is a custom app that we use to send statements to our customers