QBOnline API: Problems with overriding Sales Tax - passed in values not respected on Invoice (AST seems to override my override)

I'm new to the API. Diving in head first! :)

I'm trying to troubleshoot a problem with my app. It's submitting new Invoices to the QBOnline API, and passing in all the line item information. We aren't trying to use the AST system - so I was trying to set the override values. (Documentation: https://developer.intuit.com/app/developer/qbo/docs/workflows/manage-sales-tax-for-us-locales#specifying-sales-tax)

I think that I am providing the values correctly, but the system is still calculating it's own sales tax amount.

Target API URL:

https://sandbox-quickbooks.api.intuit.com/v3/company/4620816365232674520/Invoice?minorversion=4

Here's an example of the object we are passing in (edited for privacy, expanded for human readability):

{
    "BillAddr": {
        "City": "AnywhereVille",
        "Country": "USA",
        "CountrySubDivisionCode": "CA",
        "Line1": "",
        "Line2": "Customer Name LLP",
        "Line3": "45 E. Pacific Coast Highway",
        "Line4": "",
        "PostalCode": "90804"
    },
    "CustomField": [{
        "DefinitionId": "1",
        "Name": "P.O. Number",
        "StringValue": "",
        "Type": "StringType"
    }, {
        "DefinitionId": "2",
        "Name": "Sales Rep",
        "StringValue": "TY",
        "Type": "StringType"
    }],
    "CustomerMemo": {
        "value": "Pay your invoice online at: ..."
    },
    "CustomerRef": {
        "value": "60"
    },
    "DocNumber": "11111",
    "DueDate": "2022-08-01",
    "Line": [{
        "Amount": 576,
        "Description": "",
        "DetailType": "SalesItemLineDetail",
        "LineNum": 1,
        "SalesItemLineDetail": {
            "ClassRef": {
                "name": "3 Studios",
                "value": "1111111111111"
            },
            "ItemRef": {
                "name": "16GBUSBFLASH",
                "value": "21"
            },
            "Qty": 48,
            "TaxCodeRef": {
                "value": "TAX"
            },
            "UnitPrice": 12
        }
    }, {
        "Amount": 168,
        "Description": "",
        "DetailType": "SalesItemLineDetail",
        "LineNum": 4,
        "SalesItemLineDetail": {
            "ClassRef": {
                "name": "3 Studios",
                "value": "1111111111111"
            },
            "ItemRef": {
                "name": "DVDMEDIA",
                "value": "23"
            },
            "Qty": 12,
            "TaxCodeRef": {
                "value": "TAX"
            },
            "UnitPrice": 14
        }
    }, {
        "Amount": 600,
        "Description": "",
        "DetailType": "SalesItemLineDetail",
        "LineNum": 6,
        "SalesItemLineDetail": {
            "ClassRef": {
                "name": "3 Studios",
                "value": "1111111111111"
            },
            "ItemRef": {
                "name": "DIGITALDEL30",
                "value": "25"
            },
            "Qty": 12,
            "TaxCodeRef": {
                "value": "TAX"
            },
            "UnitPrice": 50
        }
    }],
    "SalesTermRef": {
        "value": "8"
    },
    "TxnDate": "2022-08-01",
    "TxnTaxDetail": {
        "TaxLine": [{
            "Amount": 130.98,
            "DetailType": "TaxLineDetail",
            "TaxLineDetail": {
                "NetAmountTaxable": 576,
                "PercentBased": true,
                "TaxPercent": 0.0925,
                "TaxRateRef": {
                    "value": "4"
                }
            }
        }],
        "TotalTax": 130.98,
        "TxnTaxCodeRef": {
            "value": "4"
        }
    }
}
1

There are 1 best solutions below

0
On

Our company was facing the same issue since the start of Intuit's AST(Automated Sales Tax) launch. So, after much communication with Intuit and R&D, we found the Inuit doc helping us achieve the same -> https://developer.intuit.com/app/developer/qbo/docs/workflows/manage-sales-tax-for-us-locales#working-with-tax-codes

Important things to note to override the tax code "Based on Location" with other tax codes ->

  1. You need to send the minorversion=62 or above in the request of transaction.
  2. In the transaction request data, you need to send the name of the Tax code in the below format "TaxRateRef": { "value": "2", "name": "Tucson City" }
  3. As of now, only custom tax rates created via UI on QBO are operable. By operable, I mean only such rates can be used to override in the QBO transaction.

How will you judge that a tax code is custom(user generated) or system generated?

Ans -> You can query to download all the tax codes of a company file with minorversion=51 or above and you will get a node called "TaxCodeConfigType". It contains values USER_DEFINED, SYSTEM_GENERATED. Intuit doc -> https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/taxcode

We are still finding a way to override the tax code with system generated Tax codes too apart from the user generated once.