Tax Calculation for Online Orders

I’m a little confused on how I’m supposed to be applying taxes for online orders. I have the “auto_apply_taxes” set to true in the order payload, but it’s always applying the local tax rate of the location, and not accounting for the shipping address.

My understanding is that sales taxes should only be applied if the shipping address is set to a state that is registered under Tax Registrations at https://app.squareup.com/dashboard/business/manual-taxes

So, if I only have NY registered, there should not be a sales tax applied if I am shipping to any other state. I’m currently creating the order through the payment link api (/v2/online-checkout/payment-links), and the user is getting prompted for their address in the Square checkout workflow.

I have “Automatically applied taxes” enabled for “Shipping and non-physical sales” in https://app.squareup.com/dashboard/business/manual-taxes. Should I be asking for the shipping address before I create the order? Is there a better way to add the taxes?

:wave: I’m Square Dev AI, here to help answer your question!
Based on the information you’ve provided, the following documentation will help answer your question:

Additional Documentation

Working with Addresses
Payments Pricing with Square APIs and SDKs
https://developer.squareup.com/docs/get-started/create-an-account

If this documentation helped you find a solution, please check the box indicating that this reply solves the problem.
Otherwise one of our Developer Advocates will provide additional assistance shortly.

The “auto_apply_taxes” option in the Orders API applies taxes based on the location of the order, not the shipping address. This is because the tax is preconfigured for the catalog items at the location where the order is created.

If you want to apply taxes based on the shipping address, you would need to manually calculate the tax based on the shipping address and then apply it to the order. This would involve creating a CatalogTax object for each tax jurisdiction you need to support, and then applying the appropriate CatalogTax object to the order based on the shipping address.

In your case, since you’re using the Payment Links API, you won’t be able to capture the shipping address before creating the order. One workaround could be to create different payment links for each tax jurisdiction you support, and direct the customer to the appropriate link based on their shipping address. However, this would require you to capture the shipping address before creating the payment link.

In summary, the “auto_apply_taxes” option applies taxes based on the location of the order, not the shipping address. If you need to apply taxes based on the shipping address, you’ll need to manually calculate and apply the tax.

This answer was reviewed by @Bryan-Square.

Hi @Bryan-Square -

Alternatively, if I create an order and then create a payment in my app instead of using payment links, can taxes be auto-calculated for the address? Or does this feature only work for websites created with Weebly?

Do all the configs in the Seller account settings relating to online sales only apply to Weebly websites? The orders I create through the payment links are automatically marked as online sales, so I thought some of the configs would apply.

I can handle all of this in my app, but I want to be able to clearly tell my clients what configs they need to set in our app and what needs to be set in Square.

Currently, square doesn’t calculate taxes based on a given location. We use the tax object that are created in the Square account. :slightly_smiling_face:

@Bryan-Square isn’t this saying that it does?

I thought this was saying that Square will reference your tax registrations to see if a destination address needs to have sales tax applied. I assumed this also meant that it will calculate the correct state and local taxes for the destination address. If this is calculating the location’s local taxes for all online shipment orders, then that is a serious issue. Could you clarify how this auto-calculation feature is supposed to work?

Regardless, for my application, I decided to add an address form to my checkout workflow so that we can calculate the taxes on our end, then send the calculated taxes with the order payload for the checkout link.

I’d recommend reaching out to a tax professional on what taxes you can charge customers. The explanation of taxes for the online store is that we will set it based on you the sellers address. Not the customer. :slightly_smiling_face:

Hi @Bryan-Square, I may be misunderstanding, but that’s not what your documentation says for automatically generated tax rates: Create and manage sales tax settings | Square Support Center - US

Automatically generated tax rates: The automatic tax calculator is used for shipping (and other distance orders) to apply the different necessary tax rates based on your tax registrations and the recipient’s address.

US sales tax for distance orders must charge taxes based on the destination address, if the seller has a nexus (or a “tax registration”) in that state. Your documentation seems to support this, so if this isn’t what is actually happening (even for regular Square online orders), this is a significant bug and is preventing your sellers from being compliant.

That’s for the Square Online Store. Unfortunately that functionality doesn’t extend to order created with our APIs. :slightly_smiling_face: