TaxCodeAdd

Adds a tax code to the QBPOS company. In the QBPOS UI, you specify sales tax behavior by creating sales tax locations and tax codes. (What the QBPOS UI calls a “tax location” is what the SDK calls a “tax category”.) The tax code and its name is shared between all tax categories (locations): that is, all tax categories will have the same set of tax codes. However, the actual tax rate(s) that are used in a given tax code can vary from one tax category to the next. The tax code rates that are actually applied at transaction time are those that are in the tax category that is currently specified as the default tax category (location) in sales tax preferences. You create and modify tax categories and tax codes using the TaxCategoryAdd/Mod and TaxCodeAdd/Mod requests respectively. You assign tax code rates to a tax code within a tax category using the TaxRecordMod request. You query for the tax preference information (tax rate information for each tax code under each tax category) using the CompanyQuery. However, currently the default tax category (location) can be specified only within the QBPOS UI. When you create or modify an inventory item in QBPOS, you apply a tax code to it, but not a tax category. At sales transaction time, the actual sales tax is calculated for each item, based on the tax code assigned to that item and the tax code rate(s) for that tax code under the tax category currently specified as the default tax category (location).


Request

Response

XMLOPS

VB.NET

C#

Tag Type Max length Implementation Required

ITaxCodeAdd

Adds a tax code to the QBPOS company. In the QBPOS UI, you specify sales tax behavior by creating sales tax locations and tax codes. (What the QBPOS UI calls a “tax location” is what the SDK calls a “tax category”.) The tax code and its name is shared between all tax categories (locations): that is, all tax categories will have the same set of tax codes. However, the actual tax rate(s) that are used in a given tax code can vary from one tax category to the next. The tax code rates that are actually applied at transaction time are those that are in the tax category that is currently specified as the default tax category (location) in sales tax preferences. You create and modify tax categories and tax codes using the TaxCategoryAdd/Mod and TaxCodeAdd/Mod requests respectively. You assign tax code rates to a tax code within a tax category using the TaxRecordMod request. You query for the tax preference information (tax rate information for each tax code under each tax category) using the CompanyQuery. However, currently the default tax category (location) can be specified only within the QBPOS UI. When you create or modify an inventory item in QBPOS, you apply a tax code to it, but not a tax category. At sales transaction time, the actual sales tax is calculated for each item, based on the tax code assigned to that item and the tax code rate(s) for that tax code under the tax category currently specified as the default tax category (location).
    2.0  

POSTaxCode

The tax code. This is the three-character maximum code, which is different from the (usually) longer tax code name that is displayed in the UI to provide a better “hint” for the user.
IQBStringType 3 chars   Y

POSTaxCodeName

The tax code name is (usually) longer than the actual tax code. This name is displayed in the UI to provide a better “hint” for the user to determine which tax code to apply.
IQBStringType 31 chars    

POSTaxCodeMark

The tax code mark is a character that is printed on sales receipt to identify which tax code was applied in the transaction.
IQBStringType 1 chars    
Tag Type Max length Implementation Required

IResponse

Adds a tax code to the QBPOS company. In the QBPOS UI, you specify sales tax behavior by creating sales tax locations and tax codes. (What the QBPOS UI calls a “tax location” is what the SDK calls a “tax category”.) The tax code and its name is shared between all tax categories (locations): that is, all tax categories will have the same set of tax codes. However, the actual tax rate(s) that are used in a given tax code can vary from one tax category to the next. The tax code rates that are actually applied at transaction time are those that are in the tax category that is currently specified as the default tax category (location) in sales tax preferences. You create and modify tax categories and tax codes using the TaxCategoryAdd/Mod and TaxCodeAdd/Mod requests respectively. You assign tax code rates to a tax code within a tax category using the TaxRecordMod request. You query for the tax preference information (tax rate information for each tax code under each tax category) using the CompanyQuery. However, currently the default tax category (location) can be specified only within the QBPOS UI. When you create or modify an inventory item in QBPOS, you apply a tax code to it, but not a tax category. At sales transaction time, the actual sales tax is calculated for each item, based on the tax code assigned to that item and the tax code rate(s) for that tax code under the tax category currently specified as the default tax category (location).
    2.0  

StatusCode

A number that corresponds to a statusSeverity and statusMessage. Five status codes relate directly to signon messages: 2000, 2010, 2020, 2030, and 2040. For details about these and other statusCode values that can be returned, see the statusCode table on the Error Codes page.
IQBIntType     Y

StatusSeverity

One of the following values: INFO The request was completed, and the results are consistent with what your application expected. WARNING The request was completed, but the results might not be consistent with what you expected. ERROR The request was not completed. No data will appear in the server’s response after the statusMessage.
IQBStringType     Y

StatusMessage

A user-readable explanation of the success or error condition that is indicated by the statusCode. For details about the statusMessage values that can be returned, see the “Explanation” column of the statusCode table on the Error Codes page.
IQBStringType     Y

Detail

ITaxCodeRet      

POSTaxCodeListID

The list ID of the tax code. This is always the same as the tax code itself. It has its own element tag only to identify it as an object reference.
IQBIDType     Y

POSTaxCode

The tax code. This is the three-character maximum code, which is different from the (usually) longer tax code name that is displayed in the UI to provide a better “hint” for the user.
IQBStringType 3 chars    

POSTaxCodeName

The tax code name is (usually) longer than the actual tax code. This name is displayed in the UI to provide a better “hint” for the user to determine which tax code to apply.
IQBStringType 31 chars    

POSTaxCodeMark

The tax code mark is a character that is printed on sales receipt to identify which tax code was applied in the transaction.
IQBStringType 1 chars    

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?xml version="1.0" encoding="utf-8"?>
<?qbposxml version="4.0"?>
<QBPOSXML>
        <QBPOSXMLMsgsRq onError="stopOnError">
                <TaxCodeAddRq>
                        <TaxCodeAdd> <!-- required -->
                                <POSTaxCode >STRTYPE</POSTaxCode> <!-- required -->
                                <POSTaxCodeName >STRTYPE</POSTaxCodeName> <!-- optional -->
                                <POSTaxCodeMark >STRTYPE</POSTaxCodeMark> <!-- optional -->
                        </TaxCodeAdd>
                </TaxCodeAddRq>

                <TaxCodeAddRs statusCode="INTTYPE" statusSeverity="STRTYPE" statusMessage="STRTYPE">
                        <TaxCodeRet> <!-- optional -->
                                <POSTaxCodeListID >IDTYPE</POSTaxCodeListID> <!-- required -->
                                <POSTaxCode >STRTYPE</POSTaxCode> <!-- optional -->
                                <POSTaxCodeName >STRTYPE</POSTaxCodeName> <!-- optional -->
                                <POSTaxCodeMark >STRTYPE</POSTaxCodeMark> <!-- optional -->
                        </TaxCodeRet>
                </TaxCodeAddRs>
        </QBPOSXMLMsgsRq>
</QBPOSXML>

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
'The following sample code is generated as an illustration of
'Creating requests and parsing responses ONLY
'This code is NOT intended to show best practices or ideal code
'Use at your most careful discretion

imports System
imports System.Net
imports System.Drawing
imports System.Collections
imports System.ComponentModel
imports System.Windows.Forms
imports System.Data
imports System.IO
imports Interop.qbposfc4

        Public Class SampleTaxCodeAdd
                Public Sub  DoTaxCodeAdd()
                        Dim sessionBegun as Boolean
                        sessionBegun = False
                        Dim connectionOpen as Boolean
                        connectionOpen = False
                        Dim sessionManager as QBPOSSessionManager
                        sessionManager = nothing

                        Try
                                'Create the session Manager object
                                sessionManager = new QBPOSSessionManager

                                'Create the message set request object to hold our request
                                Dim requestMsgSet as IMsgSetRequest
                                requestMsgSet = sessionManager.CreateMsgSetRequest(4,0)
                                requestMsgSet.Attributes.OnError = ENRqOnError.roeContinue

                                BuildTaxCodeAddRq(requestMsgSet)

                                'Connect to QuickBooks and begin a session
                                sessionManager.OpenConnection("","Sample Code from OSR")
                                connectionOpen = True
                                sessionManager.BeginSession("")
                                sessionBegun = True

                                'Send the request and get the response from QuickBooks
                                Dim responseMsgSet as IMsgSetResponse
                                responseMsgSet = sessionManager.DoRequests(requestMsgSet)

                                'End the session and close the connection to QuickBooks
                                sessionManager.EndSession()
                                sessionBegun = False
                                sessionManager.CloseConnection()
                                connectionOpen = False

                                WalkTaxCodeAddRs(responseMsgSet)
                        Catch e as Exception
                                MessageBox.Show(e.Message, "Error")
                                if (sessionBegun) then
                                        sessionManager.EndSession()
                                End If
                                if (connectionOpen) then
                                        sessionManager.CloseConnection()
                                End If
                        End Try
                End Sub
                Public Sub BuildTaxCodeAddRq(requestMsgSet as IMsgSetRequest)
                        Dim TaxCodeAddRq as ITaxCodeAdd
                        TaxCodeAddRq= requestMsgSet.AppendTaxCodeAddRq()
                        'Set field value for POSTaxCode
                        TaxCodeAddRq.POSTaxCode.SetValue("ab")
                        'Set field value for POSTaxCodeName
                        TaxCodeAddRq.POSTaxCodeName.SetValue("ab")
                        'Set field value for POSTaxCodeMark
                        TaxCodeAddRq.POSTaxCodeMark.SetValue("ab")
                End Sub




                Public Sub WalkTaxCodeAddRs( responseMsgSet as IMsgSetResponse)
                        if (responseMsgSet is nothing) then
                                Exit Sub
                        End If

                        Dim responseList as IResponseList
                        responseList = responseMsgSet.ResponseList
                        if (responseList is nothing) then
                                Exit Sub
                        End If

                        'if we sent only one request, there is only one response, we'll walk the list for this sample
                        for j=0 to responseList.Count-1
                                Dim response as IResponse
                                response = responseList.GetAt(j)
                                'check the status code of the response, 0=ok, >0 is warning
                                if (response.StatusCode >= 0) then
                                        'the request-specific response is in the details, make sure we have some
                                        if (not response.Detail is nothing) then
                                                'make sure the response is the type we're expecting
                                                Dim responseType as ENResponseType
                                                responseType = CType(response.Type.GetValue(),ENResponseType)
                                                if (responseType = ENResponseType.rtTaxCodeAddRs) then
                                                        'upcast to more specific type here, this is safe because we checked with response.Type check above
                                                        Dim TaxCodeRet as ITaxCodeRet
                                                        TaxCodeRet = CType(response.Detail,ITaxCodeRet)
                                                                WalkTaxCodeRet(TaxCodeRet)
                                                End If
                                        End If
                                End If
                        Next j
                End Sub




                Public Sub WalkTaxCodeRet(TaxCodeRet as ITaxCodeRet)
                        if (TaxCodeRet is nothing) then
                                Exit Sub
                        End If

                        'Go through all the elements of ITaxCodeRet
                        'Get value of POSTaxCodeListID
                        Dim POSTaxCodeListID4189 as String
                        POSTaxCodeListID4189 = TaxCodeRet.POSTaxCodeListID.GetValue()
                        'Get value of POSTaxCode
                        if ( not TaxCodeRet.POSTaxCode is nothing) then
                                Dim POSTaxCode4190 as String
                                POSTaxCode4190 = TaxCodeRet.POSTaxCode.GetValue()
                        End If
                        'Get value of POSTaxCodeName
                        if ( not TaxCodeRet.POSTaxCodeName is nothing) then
                                Dim POSTaxCodeName4191 as String
                                POSTaxCodeName4191 = TaxCodeRet.POSTaxCodeName.GetValue()
                        End If
                        'Get value of POSTaxCodeMark
                        if ( not TaxCodeRet.POSTaxCodeMark is nothing) then
                                Dim POSTaxCodeMark4192 as String
                                POSTaxCodeMark4192 = TaxCodeRet.POSTaxCodeMark.GetValue()
                        End If
                End Sub




        End Class

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
//The following sample code is generated as an illustration of
//Creating requests and parsing responses ONLY
//This code is NOT intended to show best practices or ideal code
//Use at your most careful discretion

using System;
using System.Net;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
using System.IO;
using Interop.qbposfc4;

namespace com.intuit.idn.samples
{
        public class SampleTaxCodeAdd
        {
                public void  DoTaxCodeAdd()
                {
                        bool sessionBegun = false;
                        bool connectionOpen = false;
                        QBPOSSessionManager sessionManager = null;

                        try
                        {
                                //Create the session Manager object
                                sessionManager = new QBPOSSessionManager();

                                //Create the message set request object to hold our request
                                IMsgSetRequest requestMsgSet = sessionManager.CreateMsgSetRequest(4,0);
                                requestMsgSet.Attributes.OnError = ENRqOnError.roeContinue;

                                BuildTaxCodeAddRq(requestMsgSet);

                                //Connect to QuickBooks and begin a session
                                sessionManager.OpenConnection("","Sample Code from OSR");
                                connectionOpen = true;
                                sessionManager.BeginSession("");
                                sessionBegun = true;

                                //Send the request and get the response from QuickBooks
                                IMsgSetResponse responseMsgSet = sessionManager.DoRequests(requestMsgSet);

                                //End the session and close the connection to QuickBooks
                                sessionManager.EndSession();
                                sessionBegun = false;
                                sessionManager.CloseConnection();
                                connectionOpen = false;

                                WalkTaxCodeAddRs(responseMsgSet);
                        }
                        catch (Exception e)
                        {
                                MessageBox.Show(e.Message, "Error");
                                if (sessionBegun)
                                {
                                        sessionManager.EndSession();
                                }
                                if (connectionOpen)
                                {
                                        sessionManager.CloseConnection();
                                }
                        }
                }
                void BuildTaxCodeAddRq(IMsgSetRequest requestMsgSet)
                {
                        ITaxCodeAdd TaxCodeAddRq= requestMsgSet.AppendTaxCodeAddRq();
                        //Set field value for POSTaxCode
                        TaxCodeAddRq.POSTaxCode.SetValue("ab");
                        //Set field value for POSTaxCodeName
                        TaxCodeAddRq.POSTaxCodeName.SetValue("ab");
                        //Set field value for POSTaxCodeMark
                        TaxCodeAddRq.POSTaxCodeMark.SetValue("ab");
                }




                void WalkTaxCodeAddRs(IMsgSetResponse responseMsgSet)
                {
                        if (responseMsgSet == null) return;
                        IResponseList responseList = responseMsgSet.ResponseList;
                        if (responseList == null) return;
                        //if we sent only one request, there is only one response, we'll walk the list for this sample
                        for(int i=0; i < responseList.Count; i++)
                        {
                                IResponse response = responseList.GetAt(i);
                                //check the status code of the response, 0=ok, >0 is warning
                                if (response.StatusCode >= 0)
                                {
                                        //the request-specific response is in the details, make sure we have some
                                        if (response.Detail != null)
                                        {
                                                //make sure the response is the type we're expecting
                                                ENResponseType responseType = (ENResponseType)response.Type.GetValue();
                                                if (responseType == ENResponseType.rtTaxCodeAddRs)
                                                {
                                                        //upcast to more specific type here, this is safe because we checked with response.Type check above
                                                        ITaxCodeRet TaxCodeRet = (ITaxCodeRet)response.Detail;
                                                                WalkTaxCodeRet(TaxCodeRet);
                                                }
                                        }
                                }
                        }
                }




                void WalkTaxCodeRet(ITaxCodeRet TaxCodeRet)
                {
                        if (TaxCodeRet == null) return;
                        //Go through all the elements of ITaxCodeRet
                        //Get value of POSTaxCodeListID
                        string POSTaxCodeListID4193 = (string)TaxCodeRet.POSTaxCodeListID.GetValue();
                        //Get value of POSTaxCode
                        if (TaxCodeRet.POSTaxCode != null)
                        {
                                string POSTaxCode4194 = (string)TaxCodeRet.POSTaxCode.GetValue();
                        }
                        //Get value of POSTaxCodeName
                        if (TaxCodeRet.POSTaxCodeName != null)
                        {
                                string POSTaxCodeName4195 = (string)TaxCodeRet.POSTaxCodeName.GetValue();
                        }
                        //Get value of POSTaxCodeMark
                        if (TaxCodeRet.POSTaxCodeMark != null)
                        {
                                string POSTaxCodeMark4196 = (string)TaxCodeRet.POSTaxCodeMark.GetValue();
                        }
                }




        }
}