Skip to content

Add AU-specific strings/details to tax modal #10527

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 12 commits into
base: develop
Choose a base branch
from
20 changes: 20 additions & 0 deletions client/vat/form/tasks/vat-number-task.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,10 @@ import '../style.scss';
*/
const getVatPrefix = () => {
switch ( wcpaySettings.accountStatus.country ) {
case 'AU':
// AU ABN or ACN numbers are not prefixed.
// Based on a test lookup at https://abr.business.gov.au/
return '';
case 'JP':
// Corporate numbers are not prefixed.
return '';
Expand All @@ -41,6 +45,11 @@ const getVatPrefix = () => {

const getVatTaxIDName = () => {
switch ( wcpaySettings.accountStatus.country ) {
case 'AU':
// Note – AU GST numbers are actually ABN or ACN numbers.
// https://vatstack.com/articles/australian-business-number-abn-validation
// https://business.gov.au/registrations/register-for-taxes/tax-registration-for-your-business
return __( 'GST Number', 'woocommerce-payments' );
Copy link
Contributor

@Jinksi Jinksi Mar 12, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm somewhat familiar with this AU side of things, and it seems a bit abnormal to call it a "GST number". Normally, this would instead be labelled as "ABN".

The Stripe Customer Tax ID field labels might serve as an indicator of country-specific terminology, since they've presumably done the hard yards on tax-collecting UX here.

image

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good point, thanks for catching that :) in NZ it's the opposite, your GST is your IRD number, but you label it as GST number when appropriate.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actually wait – no, my comment explains my reasoning.

The value in this field will be an ABN OR an ACN, depending on the merchant. So we either need to be smarter about which is correct, or have something generic (GST number) and a hint that it would your ABN or ACN.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

But … if AU companies are used to putting an ACN in an ABN field (which could be the case) … then ABN would work fine too 🤷🏻

Copy link
Contributor

@Jinksi Jinksi Mar 13, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

AU companies are used to putting an ACN in an ABN field

AFAIK an ACN is not used for GST-related things. A company with an ACN needs to have an ABN as well, which they'll provide to us.

We'll only want the merchant's ABN, as this is what we're required to provide on the tax invoice.

Example: Bunnings

  • ACN: 008 672 179
  • ABN: 26 008 672 179

Hence why GST Number stood out to me. I agree, it would be OK to use generic wording and the merchant will be OK to figure it out, but we should lean against ambiguity where we can.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In the URL you shared in the code comments https://vatstack.com/articles/australian-business-number-abn-validation, it looks like they're getting the ABN via the ACN using the ABN lookup tool.

We can do this too, but it is added complexity, when it would be easier to require an ABN from the merchant rather than have to determine the merchant's ABN based on the ACN they've provided.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Aha! Thanks for digging in to that and clarifying!

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed up here f1904a8 – but feel free to jump on the PR / suggest more.

case 'JP':
return __( 'Corporate Number', 'woocommerce-payments' );
default:
Expand All @@ -50,6 +59,11 @@ const getVatTaxIDName = () => {

const getVatTaxIDRequirementHint = () => {
switch ( wcpaySettings.accountStatus.country ) {
case 'AU':
// To be determined - confirm details before merge.
// TODO
return __( '', 'woocommerce-payments' );

case 'JP':
// Leaving this blank intentionally, as I don't know what the requirements are in JP.
// Better to add this info later than clutter the dialog with vague/assumed legal requirements.
Expand All @@ -66,6 +80,12 @@ const getVatTaxIDRequirementHint = () => {

const getVatTaxIDValidationHint = () => {
switch ( wcpaySettings.accountStatus.country ) {
case 'AU':
// https://abr.business.gov.au/Help/AbnFormat
return __(
'Your ABN or ACN is an 11 digit number.',
'woocommerce-payments'
);
case 'JP':
return __(
'A 13 digit number, for example 1234567890123.',
Expand Down
Loading