question

ben-m avatar image
ben-m asked David Marginian commented

A few questions about Ecommerce and Taxes

Hi devs!

I'm making an ecommerce payment gateway right now using the ecommerce API ( One will also manage inventory -- requiring Register Lite) and ran into some roadblocks regarding taxes.

The dilemma: Canada Revenue Agency requires merchants to charge for taxes in the province it is shipped or billed to. Each province has a mix of 1 or 2 different taxes.


The platform integrating the payment gateway lets the merchant enter tax areas and lets them decide if they want to charge the user for any situation they want ( Tax rates of billing address, tax rates of shipping address or tax rate of the store ).

I would like to support payments for any Canada to Canada order. I have access to a lot of information for each order from the platform, including tax rates, tax amount, total tax, anything I need to validate that it's the right tax amount.

The app in the works has 2 subscription tiers; One of them syncs inventory with the platform. I don't think it will be problematic to sync and/or create taxes either since it will require the Register Lite CA service plan for inventory management. What I would like to know is;


Question 1: Is it possible with a basic(Payments Plus CA) Clover service plan, to have dynamic taxes with the order(Even if I have to write the logic behind selecting the right ones), and to display them properly on the Clover receipt / Clover accounting data?



For the time being, my solution is to do order tax included as I could not figure out a way to add a custom amount of taxes or tax rates (They really have to be specified in the Clover merchant settings, right?);


For the sake of these examples:
Product: a single unit of something being sold. (IE: 1 hat)
Item: Contains a quantity of products. ( IE: 1 hat or 10 hats )

On the platform for this gateway, taxes are calculated on items and not products. Just like Clover requires when calculating taxes.

However, since I'm currently sending the item with taxes, if I don't want to be off by a cent or so, I can't have individual products showing up on the clover receipts.

This leaves me with no choice but to always (for each group of products) set the item quantity to be 1, add the taxes to it, and specify the quantity in the description.


Question 2: Given the tax situation resolved, what should I do if an order has more than 25 products? ( The 25 item limit actually counts the products quantity. ) We have merchants that regularly have orders of over 25 products online.


Orderse-commerce apiTaxes
10 |2000 characters needed characters left characters exceeded

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

David Marginian avatar image
David Marginian answered David Marginian edited

Update:

The original answer below is incorrect. This is possible if you use the bulk_line_items endpoint to create the line items. The bulk_line_items endpoint allows you to override the taxRates assigned to an item.

Incorrect/Original answer:

======================================================================

Unfortunately, taxes are still very much a work in progress for our Ecomm APIs.

If you are using Clover inventory, I do not believe this is possible. Each inventory item is staticly assigned (or defaulted) a tax rate and overridding the assigned rate isn't possible. We are aware of this limitation and have an outstanding issue to work out a solution. I can't provide you with a date on when or even if this will happen..

If you aren't using Clover inventory, I think this is possible by passing in a tax_rates array for each item in the order creation request (v1/orders):

{
    "currency": "usd",
    "email": "someemail@google.com",
    "items": [
        {
            "currency": "usd",
            "amount": 500,
            "quantity": 1,
            "tax_rates": [
                {
                    "name": "default",
                    "rate": 740000
                }
            ]
        }
    ]
}

In the request above each item in the tax_rates array must match an existing tax rate. Tax rates can be retrieved for a merchant via /v3/merchants/mId/tax_rates and created via posting to /v3/merchants/mId/tax_rates. Yes, it is odd but you must pass both a name and a rate that matches an existing tax rate (I have created an issue to allow passing in an id).

I am not sure if this is a workable solution for you. Let me know, if it is and how it goes if you try it.


10 |2000 characters needed characters left characters exceeded

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

ydev avatar image
ydev answered David Marginian commented

Is there any way to remove tax when using EComm API? We have merchants using tax exemption rule for specific order types. But it seems the rule is ignored by EComm when calculating the total payment and tax still attached in the payment receipt. screen-shot-2021-06-03-at-24654-am.png


1 comment
10 |2000 characters needed characters left characters exceeded

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Can you create a new question/topic for this?

0 Likes 0 ·

Write an Answer

Hint: Notify or tag a user in this post by typing @username.

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Welcome to the
Clover Developer Community