Jump to content
Kian

Billing Extension - State of the art billing!

Recommended Posts

1 hour ago, Kian said:

@Jaspaert Maybe you could be interested in this project published few minutes ago in our Lab. We're going to add the possibility to issue credit notes based on invoice items.

Apart from that, Italian users may find interesting that Fatturazione Elettronica is now supported by WHMCS thanks to BX.

Bye!

That would be very good !!

 

tnx

Kurt

Share this post


Link to post
Share on other sites

Since we frequently receive tickets about Credit Notes, we decided to write Issuing Credit Notes (Italian version: Creazione note di credito) article in our documentation. We explain how to issue credit notes in the 3 possible ways that the module offers. I hope that it will be useful for new users. Apart from this, during the last 30 days we released 9 updates. We moved from version 2.1.1 to 2.1.10. There are a lot of new features and improvements that can be found in the official changelog. The most relevant changes are the following:

Share this post


Link to post
Share on other sites

Version 2.2.0 has been released. People can finally start generating Electronic Invoices (XML) for Italy using FTP nodes or the WebService included in the module. Please notice that documentation is not available in English since this feature can be used only by Italian companies.

@Remitur Talking about VIES, the frequency of automatic checks can be customized. The default option was 30 days but now this value can be changed. Lastly the module now sends email notifications to specific Admin Roles wherever Tax Exempt status changes for customers.

Share this post


Link to post
Share on other sites

Recap time. We're now at version 2.2.8. Here are the most relevant changes:

  • Invoice Sync to share invoice numering and credit note numbering across multiple installations of WHMCS (preview)
  • New Widget to monitor the "health status" of your billing platform
  • Beautified the look of Electronic Invoicing.  Here is the before/after comparison: 1, 2, 3. Nothing special but now it's better
  • Huge updates to the WebService of Electronic Invoicing. Now it also includes more data
  • VIES Exception for Greece since they use EL country code instead of GR 😪
  • It is now possible to define custom MySQL ports
  • Importing complex Snapshots because life sucks 😤
  • XML files of Electronic Invoices can be created unformatted to save up to 30% disk space
  • New auto-tag {ID} available for proformas. It can be used reduce confusion among clients when they use PayPal. In fact there could be a discrepancy between PayPal descriptions (eg. Proforma #123) and the effective number of the proforma

But the biggest change is in my signature. You can now try out our modules in seconds requesing a Live Demo.

Share this post


Link to post
Share on other sites

Now we are at version 2.2.24 meaning that this month we released 16 updates 😩 all due to Electronic Invoicing. Probably the most important feature we added is the one that will let you start 2019 without hassles if you are an italian-based company. Your customers will be able to specify their business type from the page visible in the screenshot below. Depending on their business type (individual, sole proprietorship, professional with VAT number, company, organization and public administration) customer will be asked to provide all the required billing details.

whmcs-fatturazione-elettronica-dati-uten

VAT Numers are checked against Revenue Agency with VIES and Tax IDs (aka TIN, Codice Fiscale, CIF...) are fomally validated by format, length, control number and also by firstname and lastname that must resolve the first 6 characters of TIN. Still from this page customers can also quality for Split Payment that is required by public administration, listed companies in FTSE MIB in Milan Stock Exchange and state-owned companies (70%). Customers who did not complete the verification will see this sidebar in clientarea.

whmcs-fatturazione-elettronica-dati-uten

In this case Billing Extension will use a feature we named "Guess my Business Type" that automatically detects the business type of a given customer based on the available billing details. One contrary when a customer is verified the sidebar will reflect his/her business type like in the following example. For more information read Assisted Profilation documentation.

whmcs-fatturazione-elettronica-dati-uten

Moreover when BX is unable to generate the XML file of Electronic Invoice, the details about the errors are displayed directly on top of the invoice involed in addition to the integrated Warning System.

whmcs-fatturazione-elettronica-requisiti

Last but no least in addition to FTP Node transmissions (passive mode is supported) and the integrated WebService, we've also added a PHP classes 100% open source that can be used to manipulate the XML before Billing Extension sends it to the FTP Node and Revenue Agency. If you want to it also possible to re-route the file to a different location. In the PHP classes infact we included several methods for encoding, editing to upload file and many triggers. The file as I have already said is open source and documented line by line.

Other notable changes:

We've also published FAQs about Electronic Invoicing that will be useful for italian-based companies.

Share this post


Link to post
Share on other sites

During the 18 days we released 8 updates mainly due to italian Electronic Invoicing aka Fatturazione Elettronica.

We added support for things like CUP/CIG codes for invoices toward Public Administration, CDATA support for specific XML nodes plus UTF8 encoding for lazy intermediary platforms, lot of improvements to handle credit usage, coupon codes and lines with negative amounts on electronic invoices. We also developed a lot of new methods to validate, sanitize and even guess weird or missing billing information (end-users write silly things like Ltd as Lastname 😩).

There are also many new nodes available in XML files that were totally unnecessary but that we've been forced to add just because intermediary platforms love to scare people validating values that are weren't supposed to be validated by Revenue Agency aka Agenzia delle Entrate. They also love to put emphasis on nodes that are not needed. Our initial goal was to generate XML files as small as possible to ease transmissions and save disk space (more MB = more money) but we kind of give up. We'll keep adding all nodes they want even though they're completely useless.

Finally we had to waste ehm... sorry 😄 invest a lot of time to add backward compatibility for FontAwesome icons for people who refuse to update WHMCS. We also had to invest time to support Lara Admin and v4 template... Argh... I'll never understand why we're supposed to support things developed by other companies, outdated stuff, weird requirements by intermediary platforms... like if WHMCS wasn't enough.

Peace.

Edited by Kian

Share this post


Link to post
Share on other sites

Hope you give your customers with questions what time to responsie to the support tickets....

Share this post


Link to post
Share on other sites

TL;DR version below.

I'm sorry but we're having troubles with tickets due to electronic invoicing. It's a massive change that involves all our italian customers (providers, web agencies and professionals) and more in general 60 million people. The deadline was 1st of January 2019 and it was known from years but today we still have people ignoring that. Not to mention that very few people actually read documentation about electronic invoicing therefore we constantly have to repeat the same things over and over again. Sadly linking documentation doesn't seem to work but if they hear me reading documentation it's perfectly fine 🙄

During the last 50 days we received an average of 60 requests per day. In the same time we released 23 updates. Personally I even had to turn off my phone for like an entire month because people contact me by phone, Skype, Whatsapp, Linkedin, SMS, forums. I also spent christmas holidays coding night and day non-stop. On 31 December at 22 o'clock I was still talking with accounting department of a customer 😀

TL;DR I've answered to your ticket.

Edited by Kian

Share this post


Link to post
Share on other sites

@Kian , what about Billing Extension and WHMCS 7.7 ?
Many things are changed in WHMCS's management of VAT, so a "how to" to rightly configure the system after update will be appreciated...

 

Share this post


Link to post
Share on other sites
On 1/18/2019 at 12:22 PM, Kian said:

TL;DR version below.

I'm sorry but we're having troubles with tickets due to electronic invoicing. It's a massive change that involves all our italian customers (providers, web agencies and professionals) and more in general 60 million people. The deadline was 1st of January 2019 and it was known from years but today we still have people ignoring that. Not to mention that very few people actually read documentation about electronic invoicing therefore we constantly have to repeat the same things over and over again. Sadly linking documentation doesn't seem to work but if they hear me reading documentation it's perfectly fine 🙄

During the last 50 days we received an average of 60 requests per day. In the same time we released 23 updates. Personally I even had to turn off my phone for like an entire month because people contact me by phone, Skype, Whatsapp, Linkedin, SMS, forums. I also spent christmas holidays coding night and day non-stop. On 31 December at 22 o'clock I was still talking with accounting department of a customer 😀

TL;DR I've answered to your ticket.

Ticket from 2 Jan. Still no answers and unsatisfied customers. 

This is just unacceptable.  I payed for your product and because i'm not an Italian customer, doesn't mean that I don't need support.  

I want a solution quick. 

Kurt

Share this post


Link to post
Share on other sites

We're now at version 2.2.61 meaning that in 2019 the module received 35 updates. I'm going to describe main changes.

Electronic Invoicing

  • Integration with Intermediary Platforms that are based on FTP Node transmission
  • Automatic synchronization of XML status via WebService with Daily Cron Job of WHMCS. Each result can be expanded for more details
  • Digital signature and encryption of electronic invoices  with openSSL to interact with SdI
  • Widget that shows limits, warnings, errors...
  • Massive download of XML files. Downloaded files are automatically compressed and split into 2 separate directories:
    • Single electronic invoices
    • Batch of electronic invoices
  • Letter of Intent for approved exporters
  • Full support for coupons, discounts and negative amounts
  • HUNDREDS of validations and checks (sigh... I hated this part ☹️)
  • Intelligent checkboxes to select batches of electronic invoices
  • There's a badge that lets you know how many invoices are linked to the same XML file
  • If you don't like the idea of batches of electronic invoices, there's an option that turn off this feature. This way BX generates an XML file for each invoice
  • Dedicated menu for features related to electronic invoicing
  • Unrestricted mode
  • Profilation Log - The module logs when customers update their business type
  • Support for VAT MOSS
  • Business Type and Split Payment can be filtered in dedicated columns

Interface:

Invoicing:

  • Tax Exempt status can be locked for customers
  • Country/state-based Tax Exempt status. For example you can make Canary Islands and Livigno Tax Exempt even if they're from both Intra-EU regions (Spain and Italy)
  • Option to remove unused and unnecessary Configurable Options from Invoice description (e.g. 0x SSD, Antivirus: No, Backup: Not today)
  • Incorrect Invoice detection
  • Client Display Format on Invoices for companies: Full name only, Company name only, Full name & Company name (preview)
  • Country Display Format on Invoices - Full name vs 2 letters ISO (preview)
  • VIES check can be performed individually on specific invoices
  • Automatic detection of VAT-Free invoices in contrast with VIES regulations
  • Increased the number of column and filters available on Invoices page from 33 to 39
  • Client Custom Fields can be filtered in columns
  • Possibility to detach payments from pending invoices
  • Huge improvements to how BX issues invoices for Overpayments

Other:

In addition to the above changes, more in general we did the following activities:

  • New features: 66
  • Improvements: 65
  • Changes: 16
  • Deprecated features: 5
  • Fixes: 20

 

 

Share this post


Link to post
Share on other sites
Posted (edited)

Version 2.2.62 released few minutes. It brings 3 long-awaited features.

1. WebService

There's a new plugin named WebService (preview) that is a must-have in case next year you have to comply to electronic invoicing. Here is the documentation. With this guy you can connect to BX via API and get all you need to integrate your WHMCS with E-Invoicing of any country or accounting software. It has been designed to look exactly like External API of WHMCS (It's NOT WHMCS API).

<?

/* [... cut ...] */

$postData['action'] = 'Get';
$postData['start'] = 'Month to date'; // Supports dates (2019-06-10), integers (5 = last five days) and keywords (yesterday, last 7 days, last week, year to date, previous month...)
//$postData['end'] = '2019-06-15'; // Used to filter by range of dates
//$postData['invoicenum'] = '2019-150'; // Search by Invoice Number
//$postData['invoiceid'] = '10'; // Search by Invoice ID
//$postData['doctype'] = 'Invoices'; // "Invoice" returns invoices, "CreditNotes" returns credit notes, "All" or empty returns both

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $URL . 'modules/addons/BillingExtension/core/BillingExtension_Admin/resources/einvoice/einvoice.php');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($postData));
$postDataresponse = curl_exec($ch);

In the response there's everything (snapshots, VIES, MOSS, EU-stuff, invoices, clientdata, items...). If you need more data just tell us.

json-response.thumb.png.4473f9d3aab1c4f92691d4682d56bb04.png

2. Clients page

whmcs-client-page-massive-actions-custom-billing-mode.png

23 columns & filters +2 in case you're using Italian Electronic Invoicing plugin. The page also allows you to perform "massive" actions (Send Email, Turn on/off OneInvoice and OnePayment). I wanted to add more actions but I didn't manage to find cool ideas. The small button on the right can be used to Login as Client. Guess what? The table uses SorTables therefore you can add, move, remove, compress and export columns on XLS or CSV... I can't remember.

3. Custom Billing mode for each clients

Till now it was possible to use OneInvoice and OnePayment globally on all the registered customers but now both features can be enabled on specific customers. This way you can finally use manual invoicing for your best customers using the existing Billing page.

030-whmcs-advanced-billing.png

Next thing.... Electronic Invoicing for Slovenia 😭

On 6/15/2019 at 7:06 AM, mfoland said:

Very nice module! 

Thanks.

Edited by Kian

Share this post


Link to post
Share on other sites

Version 2.2.67 released just now. Here's the summary of the latest 5 releases.

White Label Emails

Our Enhanced Renewals has a built-in mailing system that can be used to send White Label emails.

whmcs-white-label-email-notification.png

With white labeling, expiration notifications sent to services' owners appear as sent directly from your customers. Let us explain this with an example. A Web Agency wants to send expiration notifications to customers without letting them know that you are the Provider. Through this feature the Web Agency can provide SMTP credentials that Billing Extension will use to send email notifications. Your role will be hidden to end-users. Email Settings are fully customizable and clients can also send a test email to make sure that everything is working as expected.

whmcs-white-label-email-settings.png

A very special Sidebar for Credit Balance

whmcs-low-credit-balance-notification-si

Almost every WHMCS has a sidebar that shows credit balance to logged customers. Showing credit balance is pretty simple job but Billing Extension gives more. Let's see what happens when you enable Low Credit Notification.

whmcs-low-credit-balance-notification-si

The sidebar expands to show an additional section. Let us explain this with an example. Let's suppose that a customer wants to take a vacation for 30 days. Billing Extension can send him a notification via email when credit balance is not enough to cover renewal costs for the given number of days. Here's the email (it can be customized from Setup > Email Templates).

whmcs-notify-low-credit-balance.png

This check repeats every time an invoice is paid with credit (full or partial) still based on the same period which in our example is 30 days. Renewal costs are based on domains, products/services and addons that expire between current date and the given number of days.  In order not to annoy customers with unnecessary emails, we make sure that each customer receives a maximum of one "Low Credit Balance" notification per day. The sidebar can be added/removed from clientarea by simply enabling/disabling a checkbox from backend.

Custom Billing Mode

Billing Extension now has so many options that it's time for a recap:

  • Manual Invoicing. Issue invoices whenever you want. Customers send you payment but you can freely decide when it's time to invoice them
  • OneInvoice. As the name suggests, customers pay proformas as normal but they receive a monthly invoice. This way you generate a maximum of 12 invoices per year per customer
  • OnePayment is an evolution of OneInvoice. The difference here is that you generate a maximum of 12 invoices per year and receive 12 payments saving a lot of money in transaction fees. Based on our case study, with PayPal you save up to 18% 🤑
  • Anti-Fraud. New customers do not automatically receive invoices for their orders. First they're need your manual approval
  • Standard (WHMCS)

The great news is that not only you can use any Billing Modes globally (for all customers), but you can also use them simultaneously for specific clients. For example you can have the following scenario:

  • Mike with Manual Invoicing
  • Sara and Jack with OneInvoice
  • Samuel with OnePayment
  • New customers with Anti-Fraud
  • Everyone else Standard (WHMCS)

Consolidated Renewal Reminders

OnePayment now sends consolidated renewal reminders on a monthly basis. Emails are sent only if a customer has at least one service that expire next month. Below you can see a preview of this email that can be customized normally from Email Templates. Notice that the module already includes 2 versions for English and Italian but you can add as many translations you want.

whmcs-monthly-consolidated-renewal-remin

Other

  • Full support for Tax Stamp on electronic invoices
  • Invoice View Snapshot. "Empty" values are now visible and can be used for replacements
  • Duplicated Invoices and Invoice Number Gaps checks hugely improved. No more false negatives 😉
  • New massive actions available on Clients page
  • Binary search removed form specific columns because searching for "mike" must return "Mike". My bad

Share this post


Link to post
Share on other sites

We're now at 2.2.70 and here is the usual recap:

Tax Stamp on Invoices

The "Tax Stamp" plugin included in BX has been updated in compliance with the latest «I'm the Revenue Agency obey to me!» regulations. Now there's an option that applies Tax Stamp when the sum of VAT-exempt items is greater than or equal to the minimum amount requested by Renevue Agency. What's next? 😡 Tax rate based on blood groups? Additional fee based on body fat percentage? Pffffff....

whmcs-tax-stamp-on-vat-free-items.png

Apart from that, there are no major changes. In the meantime we made BX compatible with the template made by @SwiftModders LLC I still don't know why I keep supporting all templates of the universe 😭 six, five, default, portal, classic, lara, swiftmodders, metro, WHMCS v5, v6, v7... 😪

Next project (no ETA available) is the integration with Australian ABN Lookup for VAT Numbers and RCTI support (Recipient Created Tax Invoice) so that in BX you will manage:

  • Proformas to receive money
  • Invoices to keep you out of jail
  • Credit Notes to refund customers and reverse invoices
  • RCTI (temporary name) to payout affiliate commissions
  • Indulgence to reduce the amount of punishment one has to undergo for sins *
  • Letter of marque to attack French ships with your vessel *

* It's a joke 😌

 

 

Share this post


Link to post
Share on other sites
 
 
1
13 hours ago, Kian said:
  • RCTI (temporary name) to payout affiliate commissions

Don't limit RCTI to Australian field: it's a kind of document existing (with very slight differences) in many countries... just let freely define the name of the document as language variable, and you did all that is required to use it moreover worldwide... 

Quote

Letter of marque to attack French ships with your vessel *

WANT!!!!!!!!!!!!!!!!!!!    🤣

Share this post


Link to post
Share on other sites
3 hours ago, Remitur said:

Don't limit RCTI to Australian field: it's a kind of document existing (with very slight differences) in many countries... just let freely define the name of the document as language variable, and you did all that is required to use it moreover worldwide... 

Yep, it has to be customizable and multi-language.

Share this post


Link to post
Share on other sites

We're now at version 2.2.72 and I'm starting to hate European Union 😑

Crazy Europe

Monaco is not an EU Member State but it's part of France territory for VAT purposes therefore it works like an Intra-EU country. As if it wasn't enough it uses French VAT numbers that start with FR prefix even though its country code is MC. VIES wants VAT Numbers with FR prefix but Italian Revenue Agency wants MC for electronic invoicing.

Isle of Man is another country, place, territory, planet, star, universe, TV series (I don't care anymore) that loves to complicate things. It's a tax haven blacklisted (or gray listed) by EU and a territory of UK that is going to leave EU (how? when?). What about Greece? Its ISO code is GR but loves to call himself EL. Austria? AT? Nope, ATU. San Marino? Let's just say that they love to "talk" with Italian Revenue Agency of a specific italian city! Cyprus British overseas territory? I stop here.

Apart from my rant, the good news is that the latest version of BX handles Monaco and Isle of Man properly. All other stuff like Greece and Austria were already supported. I perfectly understand why WHMCS doesn't want to deal with billing. Wise choice! 👍

Share this post


Link to post
Share on other sites
18 hours ago, Kian said:

Isle of Man is another country, place, territory, planet, star, universe, TV series

Tip: move your headquarter to Isle of man ... 😄 😄 😄  😄 

 

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.

×

Important Information

By using this site, you agree to our Terms of Use & Guidelines and understand your posts will initially be pre-moderated