Form1099CategoryAccountMappingQuery(8.0)

Returns one Ret object that contains a list of all of the account mappings currently in effect for Form 1099-NEC and Form 1099-MISC. You can optionally supply a Box number (representing the corresponding text box in the 1099 forms) if you only want the mappings for a particular box in the form. Using SDK version 13 or older will not yield correct category account mappings in the response.


Request

Response

XMLOps

VB.NET

C#

Tag Type Max length Implementation Required

IForm1099CategoryAccountMappingQuery

Returns one Ret object that contains a list of all of the account mappings for the specified form type (Form type will be MISC if no FormType is specified) currently in effect for Form 1099-NEC and Form 1099-MISC. You can optionally supply a Box number (representing the corresponding text box in the Form 1099-NEC and Form 1099-MISC) if you only want the mappings for a particular box in the form.
    8.0 us.png  

FormType

Added a form type to support Form 1099-NEC and Form 1099-MISC. FormType is a property to identify the type of form (MISC/NEC) for which Form1099CategoryAccountMapping query is run. Form type will be MISC if no FormType is specified.
IQBStringType   14.0  

MappingCategoryList

The QBFC list object containing one or more mapping category objects, which each of the mapping category objects indicating the form 1099 box that one or more accounts is being mapped to:

Form 1099-NEC supported boxes - BOX1, BOX4, BOX5

Form 1099-MISC supported boxes - BOX1, BOX2, BOX3, BOX4, BOX5, BOX6, BOX7, BOX8, BOX9, BOX10, BOX13, BOX15

IENMappingCategoryList      
Tag Type Max length Implementation Required

IResponse

Returns one Ret object that contains a list of all of the account mappings currently in effect for Form 1099-NEC and Form 1099-MISC. You can optionally supply a Box number (representing the corresponding text box in the 1099 forms) if you only want the mappings for a particular box in the form.
    8.0 us.png  

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

IForm1099CategoryAccountMappingRet      

IsFiling1099Misc

This property reports only (it does not set!) the current status of 1099 preferences setting in the company file. The value true indicates that the company file currently has the 1099 filing preference turned on. The value false indicates that the company file is not currently set to file 1099-MISC and 1099-NEC forms. (Even if this preference is turned off, the Form1099CategoryAccountMappingMod request will still carry out the requested changes.
IQBBoolType     Y

FormType

Added a form type to support Form 1099-NEC and Form 1099-MISC. FormType is a property to identify the type of form (MISC/NEC) for which Form1099CategoryAccountMapping query is run.Form type will be MISC if no FormType is specified.
IQBStringType   14.0  

CategoryAccountMappingList

The QBFC list object that contains one or more CategoryAccountMapping objects, used to map one or more QuickBooks accounts to a particular form 1099 box (or “Category” in SDK parlance). Multiple accounts can be mapped to the same 1099 box.
ICategoryAccountMappingList      

(List

of ICategoryAccountMapping Objects)
       

MappingCategory

A mapping category indicates the form 1099 box that one or more accounts is being mapped to. You must specify one of the following enumerated values based on the form type:

Form 1099-NEC supported boxes - BOX1, BOX4, BOX5

Form 1099-MISC supported boxes - BOX1, BOX2, BOX3, BOX4, BOX5, BOX6, BOX7, BOX8, BOX9, BOX10, BOX13, BOX15

IQBENMappingCategoryType     Y

AccountRefList

List of account reference objects.
IQBBaseRefList      

(List

of IQBBaseRef Objects)
       

ListID

Along with FullName, ListID is a way to identify a list object. When a list object is added to QuickBooks through the SDK or through the QuickBooks user interface, the server assigns it a ListID. A ListID is not unique across lists, but it is unique across each particular type of list. For example, two customers could not have the same ListID, and a customer could not have the same ListID as an employee (because Customer and Employee are both name lists). But a customer could have the same ListID as a non-inventory item.
IQBIDType      

FullName

FullName (along with ListID) is a way to identify a list object. The FullName is the name prefixed by the names of each ancestor, for example Jones:Kitchen:Cabinets. FullName values are not case-sensitive.
IQBStringType 159 chars    

Threshold

This is the dollar amount at which the IRS requires you to file the 1099-MISC and 1099-NEC forms. Each box (“Category” in SDK lingo) can have a separate threshold, as established by the IRS. For the latest thresholds, check the website for the Internal Revenue Service, currently at www.irs.gov.
IQBAmountType      

 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
<?xml version="1.0" encoding="utf-8"?>
<?qbxml version="14.0"?>
<QBXML>
        <QBXMLMsgsRq onError="stopOnError">
                <Form1099CategoryAccountMappingQueryRq>
                        <FormType>STRTYPE</FormType> <!-- optional -->
                        <!-- MappingCategory may have one of the following values: BOX1, BOX2, BOX3, BOX4, BOX5, BOX6, BOX7, BOX8, BOX9, BOX10, BOX13, BOX14, BOX15 -->
                        <MappingCategory >ENUMTYPE</MappingCategory> <!-- optional, may repeat -->
                </Form1099CategoryAccountMappingQueryRq>

                <Form1099CategoryAccountMappingQueryRs statusCode="INTTYPE" statusSeverity="STRTYPE" statusMessage="STRTYPE">
                        <Form1099CategoryAccountMappingRet> <!-- optional -->
                                <IsFiling1099Misc >BOOLTYPE</IsFiling1099Misc> <!-- required -->
                                <FormType>STRTYPE</FormType> <!-- optional -->
                                <CategoryAccountMapping> <!-- optional, may repeat -->
                                        <!-- MappingCategory may have one of the following values: BOX1, BOX2, BOX3, BOX4, BOX5, BOX6, BOX7, BOX8, BOX9, BOX10, BOX13, BOX14, BOX15 -->
                                        <MappingCategory >ENUMTYPE</MappingCategory> <!-- required -->
                                        <AccountRef> <!-- optional, may repeat -->
                                                <ListID >IDTYPE</ListID> <!-- optional -->
                                                <FullName >STRTYPE</FullName> <!-- optional -->
                                        </AccountRef>
                                        <Threshold >AMTTYPE</Threshold> <!-- optional -->
                                </CategoryAccountMapping>
                        </Form1099CategoryAccountMappingRet>
                </Form1099CategoryAccountMappingQueryRs>
        </QBXMLMsgsRq>
</QBXML>

  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
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
'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.QBFC14

Module com.intuit.idn.samples
        Public Class Sample
                Public Sub  DoForm1099CategoryAccountMappingQuery()
                        Dim sessionBegun as Boolean
                        sessionBegun = False
                        Dim connectionOpen as Boolean
                        connectionOpen = False
                        Dim sessionManager as QBSessionManager
                        sessionManager = nothing

                        Try
                                'Create the session Manager object
                                sessionManager = new QBSessionManager

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

                                BuildForm1099CategoryAccountMappingQueryRq(requestMsgSet)

                                'Connect to QuickBooks and begin a session
                                sessionManager.OpenConnection("","Sample Code from OSR")
                                connectionOpen = True
                                sessionManager.BeginSession("", ENOpenMode.omDontCare)
                                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

                                WalkForm1099CategoryAccountMappingQueryRs(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 BuildForm1099CategoryAccountMappingQueryRq(requestMsgSet as IMsgSetRequest)
                        Dim Form1099CategoryAccountMappingQueryRq as IForm1099CategoryAccountMappingQuery
                        Form1099CategoryAccountMappingQueryRq= requestMsgSet.AppendForm1099CategoryAccountMappingQueryRq()
                        'Set field value of form type ("MISC" or "NEC")
                        Form1099CategoryAccountMappingQueryRq.FormType.SetValue("MISC")
                        'Set field value for MappingCategoryList
                        'May create more than one of these if needed
                        Form1099CategoryAccountMappingQueryRq.MappingCategoryList.Add(ENMappingCategoryList.mclBOX1)
                End Sub




                Public Sub WalkForm1099CategoryAccountMappingQueryRs( 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.rtForm1099CategoryAccountMappingQueryRs) then
                                                        'upcast to more specific type here, this is safe because we checked with response.Type check above
                                                        Dim Form1099CategoryAccountMappingRet as IForm1099CategoryAccountMappingRet
                                                        Form1099CategoryAccountMappingRet = CType(response.Detail,IForm1099CategoryAccountMappingRet)
                                                        WalkForm1099CategoryAccountMappingRet(Form1099CategoryAccountMappingRet)
                                                End If
                                        End If
                                End If
                        Next j
                End Sub




                Public Sub WalkForm1099CategoryAccountMappingRet(Form1099CategoryAccountMappingRet as IForm1099CategoryAccountMappingRet)
                        if (Form1099CategoryAccountMappingRet is nothing) then
                                Exit Sub
                        End If

                        'Go through all the elements of IForm1099CategoryAccountMappingRet
                        'Get value of IsFiling1099Misc
                        Dim IsFiling1099Misc10614 as Boolean
                        IsFiling1099Misc10614 = Form1099CategoryAccountMappingRet.IsFiling1099Misc.GetValue()
                        'Get value of FormType
                        Dim FormType10614 as String
                        FormType10614 = Form1099CategoryAccountMappingRet.FormType.GetValue()

                        if (not Form1099CategoryAccountMappingRet.CategoryAccountMappingList is nothing)
                                Dim i10615 as Integer
                                for i10615 = 0  to Form1099CategoryAccountMappingRet.CategoryAccountMappingList.Count - 1
                                        Dim CategoryAccountMapping as ICategoryAccountMapping
                                        CategoryAccountMapping = Form1099CategoryAccountMappingRet.CategoryAccountMappingList.GetAt(i10615)
                                        'Get value of MappingCategory
                                        Dim MappingCategory10616 as ENMappingCategory
                                        MappingCategory10616 = CategoryAccountMappingMappingCategory.GetValue()
                                        if (not CategoryAccountMappingAccountRefList is nothing)
                                                Dim i10617 as Integer
                                                for i10617 = 0  to CategoryAccountMappingAccountRefList.Count - 1
                                                        Dim QBBaseRef as IQBBaseRef
                                                        QBBaseRef = CategoryAccountMappingAccountRefList.GetAt(i10617)
                                                        'Get value of ListID
                                                        if ( not QBBaseRefListID is nothing) then
                                                                Dim ListID10618 as String
                                                                ListID10618 = QBBaseRefListID.GetValue()
                                                        End If
                                                        'Get value of FullName
                                                        if ( not QBBaseRefFullName is nothing) then
                                                                Dim FullName10619 as String
                                                                FullName10619 = QBBaseRefFullName.GetValue()
                                                        End If
                                                Next i10617
                                        End If
                                        'Get value of Threshold
                                        if ( not CategoryAccountMappingThreshold is nothing) then
                                                Dim Threshold10620 as Double
                                                Threshold10620 = CategoryAccountMappingThreshold.GetValue()
                                        End If
                                Next i10615
                        End If
                End Sub




        End Class
End Module

  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
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
//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.QBFC14;

namespace com.intuit.idn.samples
{
        public class Sample
        {
                public void  DoForm1099CategoryAccountMappingQuery()
                {
                        bool sessionBegun = false;
                        bool connectionOpen = false;
                        QBSessionManager sessionManager = null;

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

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

                                BuildForm1099CategoryAccountMappingQueryRq(requestMsgSet);

                                //Connect to QuickBooks and begin a session
                                sessionManager.OpenConnection("","Sample Code from OSR");
                                connectionOpen = true;
                                sessionManager.BeginSession("", ENOpenMode.omDontCare);
                                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;

                                WalkForm1099CategoryAccountMappingQueryRs(responseMsgSet);
                        }
                        catch (Exception e)
                        {
                                MessageBox.Show(e.Message, "Error");
                                if (sessionBegun)
                                {
                                        sessionManager.EndSession();
                                }
                                if (connectionOpen)
                                {
                                        sessionManager.CloseConnection();
                                }
                        }
                }
                void BuildForm1099CategoryAccountMappingQueryRq(IMsgSetRequest requestMsgSet)
                {
                        IForm1099CategoryAccountMappingQuery Form1099CategoryAccountMappingQueryRq= requestMsgSet.AppendForm1099CategoryAccountMappingQueryRq();
                        //Set field value for FormType ("MISC" or "NEC")
                        Form1099CategoryAccountMappingQueryRq.FormType.SetValue("MISC");
                        //Set field value for MappingCategoryList
                        //May create more than one of these if needed
                        Form1099CategoryAccountMappingQueryRq.MappingCategoryList.Add(ENMappingCategoryList.mclBOX1);
                }




                void WalkForm1099CategoryAccountMappingQueryRs(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.rtForm1099CategoryAccountMappingQueryRs)
                                                {
                                                        //upcast to more specific type here, this is safe because we checked with response.Type check above
                                                        IForm1099CategoryAccountMappingRet Form1099CategoryAccountMappingRet = (IForm1099CategoryAccountMappingRet)response.Detail;
                                                        WalkForm1099CategoryAccountMappingRet(Form1099CategoryAccountMappingRet);
                                                }
                                        }
                                }
                        }
                }




                void WalkForm1099CategoryAccountMappingRet(IForm1099CategoryAccountMappingRet Form1099CategoryAccountMappingRet)
                {
                        if (Form1099CategoryAccountMappingRet == null) return;
                        //Go through all the elements of IForm1099CategoryAccountMappingRet
                        //Get value of IsFiling1099Misc
                        bool IsFiling1099Misc10607 = (bool)Form1099CategoryAccountMappingRet.IsFiling1099Misc.GetValue();
                        //Get value of FormType
                        string FormType10607 = (string)Form1099CategoryAccountMappingRet.FormType.GetValue();

                        if (Form1099CategoryAccountMappingRet.CategoryAccountMappingList != null)
                        {
                                for (int i10608 = 0; i10608 < Form1099CategoryAccountMappingRet.CategoryAccountMappingList.Count; i10608++)
                                {
                                        ICategoryAccountMapping CategoryAccountMapping = Form1099CategoryAccountMappingRet.CategoryAccountMappingList.GetAt(i10608);
                                        //Get value of MappingCategory
                                        ENMappingCategory MappingCategory10609 = (ENMappingCategory)CategoryAccountMapping.MappingCategory.GetValue();
                                        if (CategoryAccountMapping.AccountRefList != null)
                                        {
                                                for (int i10610 = 0; i10610 < CategoryAccountMapping.AccountRefList.Count; i10610++)
                                                {
                                                        IQBBaseRef QBBaseRef = CategoryAccountMapping.AccountRefList.GetAt(i10610);
                                                        //Get value of ListID
                                                        if (QBBaseRef.ListID != null)
                                                        {
                                                                string ListID10611 = (string)QBBaseRef.ListID.GetValue();
                                                        }
                                                        //Get value of FullName
                                                        if (QBBaseRef.FullName != null)
                                                        {
                                                                string FullName10612 = (string)QBBaseRef.FullName.GetValue();
                                                        }
                                                }
                                        }
                                        //Get value of Threshold
                                        if (CategoryAccountMapping.Threshold != null)
                                        {
                                                double Threshold10613 = (double)CategoryAccountMapping.Threshold.GetValue();
                                        }
                                }
                        }
                }




        }
}