Home News Order Support Download Links About

QBooks Office
Transactions

  Last Updated: 6/28/98

Transactions are the most complicated part of QuickBooks - but they are also where most of the significant data is. A transaction is created and posted whenever something happens in QuickBooks that affects fields in other record type(s). Posting is the activity that updates the other record type. Most tranactions are created through the Activities menu - although some are created internally by QuickBooks. All transactions are posted at the time they created - except purchase orders and estimates, which hold information used to create other transactions at a later date.

Each transaction also a header (TranDoc) and 2 or more transaction lines (TranLine). Transaction documents contain header information that applies to the transaction as a whole - but no postable transaction data. Each transaction line typically contains a single dollar amount to be posted to a single account - as well as other fields that may (for example) update inventory item quantities or payroll year to date information, depending on the transaction type.

Even though QuickBooks uses 24 different types of transactions, it stores them all in the same set of records. This is a flexible and powerful technique - but can difficult to understand.

Some fields - such as dDate, sTranType, and kDoc exist in every transaction line. Other fields - such as kAcct and mAmount exist about 99% of the time. Most of the fields exist for some transaction types and not for others. A few fields have different meanings in different transaction types.

Contents

Transaction Types
Transaction Documents (TranDoc)
Transaction Lines (TranLine)
Memorized Transaction Documents (MemDoc)

Back to QBooks Office Overview


Transaction Types
 
The following table lists each of the 24 transaction types. Most transactions are entered manually, but some - such as YtdAdjst and LiaAdjst are mainly entered automatically by QuickBooks.

The specific menu item used to access each type of transaction is also listed. There are often other ways of accessing transactions through registers that are not listed here.

Tran Type

QuickBooks Long Name

QuickBooks Abbrev

Description

Journal

Journal

GENJRNL

Debit or credit entry (general journal). Accessed through the Activities / Make Journal Entry menu or the register of any asset, liability, or equity type account. Journal entries are the simplest type of transactions in that they only involve dates, accounts, and dollar amounts. All of the other types of transactions use the same fields as journal transactions - but they add other fields with data specific to that type of transaction.
Transfer

Transfer

TRANSFR

Transfer from one account to another. Accessed through the Activities / Transfer Money menu. QuickBooks has this type of transaction primarily for importing data from Quicken. It is often unused.
Check

Check

CHK

Check drawn on a bank account. Accessed through the Activities / Write Checks menu or the register of a bank type account.
Deposit

Deposit

DEP

Deposit to a bank account. Accessed through the Activities / Make Deposits menu or the register of a bank type account.
CashSale

Cash Sale

RCPT

Cash sale (receipt). Accessed through the Activities / Enter Cash Sales menu.
Estimate

Estimate

EST

Estimate to a customer. Accessed through the Activities / Create Estimates menu. Dollar amounts and inventory quantities in estimates are never posted to accounts. Later, if and when the estimate is turned into a sale - the appropriate amounts will be posted.
CustInvc

Invoice

INV

Invoice to a customer. Accessed through the Activities / Create Invoices menu. Invoices are the most complex type of transaction. Several transaction line fields (see TranLine below) are only used for invoices.
CustChrg

Statement Charge

STMTCHG

Statement charge (usually interest) billed to a customer. Accessed through the Activities / Assess Finance Charges menu or the register of the customer or the accounts receivable register.
CustPymt

Payment

PMT

Payment from a customer. Accessed through the Activities / Receive Payments menu.
CustCred

Credit Memo

CREDMEM

Credit memo for a customer. Accessed through the Activities / Create Credit Memos / Refunds menu.
InvAdjst

Inventory Adjustment

INV ADJ

Inventory adjustment. Accessed through the Activities / Adjust Qty/Value on Hand menu.
PurchOrd

Purchase Order

PURCHORD

Purchase Order to a vendor. Accessed through the Activities / Create Purchase Orders menu. Dollar amounts and inventory quantities in purchase orders are never posted to accounts. Later, if and when the items in the purchase order are received or billed - the appropriate amounts will be posted.
ItemRcpt

Item Receipt

ITEM RCP

Receipt of an item that has been ordered - where no bill has been received from the vendor yet. Accessed through the Activities / Inventory / Receive Items menu. After the associated bill is later entered, the type of this transaction will change to VendBill.
VendBill

Bill

BILL

Bill from a vendor. Accessed through the Activities / Enter Bills menu or the register of the accounts payable type account.
VendPymt

Bill Payment

BILLPMT

Payment to a vendor by other than credit card. Accessed through the Activities / Pay Bills menu.
VendCard

Bill CCard

BILLPMT

Payment to a vendor by credit card. Accessed through the Activities / Pay Bills menu.
VendCred

Bill Credit

BILLCRED

Credit from a vendor. Accessed through the Activities / Enter Bills menu.
CardChrg

Credit Card (charge)

CC

General credit card charge. Accessed through the Activities / Enter Credit Card Charges menu or the register of a credit card type account.
CardRfnd

CCard Refund

CC CRED

General credit card refund or credit. Accessed through the Activities / Enter Credit Card Charges menu or the register of a credit card type account.
TaxPymt

Sales Tax Payment

TAXPMT

Sales tax payment. Accessed through the Activities / Pay Sales Tax menu.
Paycheck

Paycheck

PAY CHK

Payroll check to an employee. Accessed through the Activities / Payroll / Pay Employees... menu.
LiabPymt

Payroll Liability Check

LIAB CHK

Check for payroll taxes or other payroll liability. Accessed through the Activities / Payroll / Pay Liabilities/Taxes... menu.
YtdAdjst

YTD Adjustment

YTD ADJ

Year to Date Payroll Adjustment. Accessed through the Activities / Set Up YTD Amounts... menu. QuickBooks also automatically generates entries of this type that are not visible in any reports.
LiaAdjst

Liability Adjustment

LIAB ADJ

Payroll Liability Adjustment. Accessed through the Activities / Adjust Liabilities... menu. QuickBooks also automatically generates entries if this type that are not visible in any reports.

Contents of this page
QBooks Office Overview


Transaction Documents
 
Transaction documents contain the 'header' fields for each transaction. These are fields that appear only once in each document - and are not repeated for each line. For example, a sales invoice transaction (type Invoice) will have fields that specify the the customer, address, invoice number, etc. that belong to the customer as a whole.

Transaction lines (TranLine below) are the individual line items typically listed in the lower part of a printed document.

Fields in record type: TranDoc

Ver

Field Name

Type

Prop

IIF Name

Description

456

nKey

Long

PKey

-

Unique transaction document record identifier This is always identical to the nKey of first transaction line belonging to this doc. QBooks Office code artificially generates this key (as well as the nKey for for TranLines) - see field nOrigKey for the actual value stored in the QB file.

456

dDate

Date

Req

DATE

Date of transaction This date will match field dDate in all TranLines belonging to this TranDoc.

456

sTranType

S8

Req

TRNSTYPE

Type of transaction. See list of possible values at beginning of this record section.

456

nTranLineCnt

Long

Req

-

Total count of tran lines for this doc.

This will normally be the number of transaction lines that appear in the user interface + 1. The first transaction line of each document typically contains the the totals of the other transaction lines. Sales tax tranactions also use a transaction line - although it will not appear in the items list.

456

kFirstTran

Long

FKeyReq

-

Key of first tran line for this doc. The first transaction line usually has a different set of fields than subsequent transactions - because it contains the totals. This will always exactly match the nKey field of a record in table TranLine.

456

nFormTemplate

Long

OptDft0

-

ID of form template used. The actual form templates are not exported - but this can indicate that a customized form is being used. Users can delete and rearrange positions of fields and enable custom fields.

There are some fields in setup dialogs that the user can enable that are not enabled by default. The data for these fields is always in sCustomField... fields.

456

sDocNum

S11

Opt

INVTITLE

Main document identifier, such as the check number or invoice number as printed on the document.

456

sAddr1

S41

Opt

ADDR1

Address line. This line and the other address lines are typically copied from the customer or vendor record when the document is created - although they can be modified.

456

sAddr2

S41

Opt

ADDR2

Address line

456

sAddr3

S41

Opt

ADDR3

Address line

456

sAddr4

S41

Opt

ADDR4

Address line

456

sAddr5

S41

Opt

ADDR5

Address line

456

sCompAddr1

S41

Opt

SADDR1

Shipping address line

456

sCompAddr2

S41

Opt

SADDR2

Shipping address line

456

sCompAddr5

S41

Opt

SADDR5

Shipping address line

456

sCompAddr3

S41

Opt

SADDR3

Shipping address line

456

sCompAddr4

S41

Opt

SADDR4

Shipping address line

456

sDocNum2

S11

Opt

PONUM

Auxiliary document number, such as customer's PO number.

456

kTerms

Long

FKeyOpt

TERMS

Key of payment terms. If this exists, it will always exactly match the nKey field of a record in table Terms.

456

kEmployee

Long

FKeyOpt

REP

Key of sales rep for invoice. If this exists, it will always exactly match the nKey field of a record in table Employee.

456

kShipMeth

Long

FKeyOpt

SHIPVIA

Key of shipping method used. If this exists, it will always exactly match the nKey field of a record in table ShipVia.

456

sFob

S13

Opt

FOB

Shipping location for which customer pays shipping charges. Freeform text.

456

kCustMessage

Long

FKeyOpt

-

Key of customer message used in this doc. If this exists, it will exactly match the nKey field of a record in table CustMessage.

456

sDocMessage

S99

Opt

INVMEMO

Message to vendor or customer. Free form text.

456

sCustomField1

S30

Opt

-

1st user customizable field

-56

sCustomField2

S30

Opt

-

2nd user customizable field

-56

sCustomField3

S30

Opt

-

3rd user customizable field

-56

sCustomField4

S30

Opt

-

4th user customizable field

-56

sCustomField5

S30

Opt

-

5th user customizable field

-56

sCustomField6

S30

Opt

-

6th user customizable field

-56

sCustomField7

S30

Opt

-

7th user customizable field

-56

sCustomField8

S30

Opt

-

8th user customizable field

?56

dLast

Date

Opt

-

Last date of payroll period. Used in PayCheck type transactions only.

?56

dFirst

Date

Opt

-

First date of payroll period. Used in PayCheck type transactions only.

?56

rSickHours

Doub

OptDft0

-

Number of sick hours accumulated during this payroll period. Used in PayCheck type transactions only.

?56

rVacHours

Doub

OptDft0

-

Number of vacation hours accumulated during this payroll period. Used in PayCheck type transactions only.

456

nOrigKey

Long

Req

TRNSID

Original key (TRNSID) of this TranDoc as stored in the QB file. This is mainly of interest to IIF developers. Possibly useful for modifying existing transactions.

Contents of this page
QBooks Office Overview


Transaction Lines
 
Transaction lines are the individual line items for each of document. Most transaction lines are used to post a dollar amount to a specific account. It could also add or subtract inventory quantities to what's currently in stock, on order, etc. or update A/R, A/P, or payroll information.

Transaction lines also exist that do not appear in the user interface. All documents include a 'main' transaction line that does not correspond to a visible line item in the document.

Most transactions use only a small subset of the fields listed below. Some fields (nKey, dDate, sTranType, kDoc) exist in every transaction. Some (kAcct, mAmount) almost always exist - but there may be exceptions. Other fields (bToSend, bItemValueAdjust, mWageBase, mYearToDate, ...) may be used in only 1 or 2 types of transactions. A typical transaction will have 7 to 10 fields.

Fields in record type: TranLine

Ver

Field Name

Type

Prop

IIF Name

Description

456

nKey

Long

PKey

-

Unique transaction line record identifier.

456

dDate

Date

Req

DATE

Date on which transaction occurred This will always be identical for the transaction document and all transaction lines that belong to it. For multiple transactions occuring on the same day, order can be determined using the nKey field.

456

sTranType

S8

Req

TRNSTYPE

Type of transaction. See list of possible values at beginning of TranDoc record section.

456

kDoc

Long

FKeyReq

-

Tran doc this tran line belongs to. QB guarantees that the total of all amounts for all transaction lines with the same kDoc number is $0.00. It is impossible for the user to enter multiple transaction lines that do not balance.

456

nLine

Long

Req

SPLID

Relative line number of this line in doc. Line 0 (same as bDocMain) typically has a different set of fields than the other lines because it contains composite data for the entire document.

These line numbers don't always correspond directly to lines in the printed document, although they are in the same order.

456

bDocMain

Bool

OptDftF

-

Main transaction line for document. This line may have a different set of fields. It acts as an extension of the document and often has totals from other lines - depending on the type of transaction.

456

sDocNum

S11

Opt

DOCNUM

Document identifier (check #, invoice #, etc.). Often redundant.

456

kAcct

Long

FKeyOpt

ACCNT

Key of main account to be debited or credited. The account is not debited or credited if flag bNoPost is true. This flag is used in estimates and purchase orders to mark 'inert' transactions.

456

sAcctType

S12

Opt

-

Type of account for kAcct One of: "Bank", "AcctRec", "OthCurrAsset", "FixedAsset", "OthAsset", "AcctPay", "CredCard", "OthCurrLiab", "LongTermLiab", "Equity", "Income", "COGS", "Expense", "OthIncome", "OthExpense", "NonPosting".

456

mAmount

Curr

Opt

AMOUNT

Dollar amount of tran line. Negative if account is credited - regardless of the type of the account.

456

bNoPost

Bool

OptDftF

-

T if not to be posted. Applies to PurchOrd, Estimate only.

456

kEntity

Long

FKeyOpt

NAME

Key of associated Customer, Vendor, Employee, or OtherName

456

sEntityType

S9

Opt

-

Type of main entity. One of CustJob, Vendor, Employee, OtherName

456

kEntity2

Long

FKeyOpt

-

Key of entity from main doc tran line. This is often useful to know which other CustJob, Vendor, Employee, or OtherName is involved.

456

sEntity2Type

S9

Opt

-

Type of secondary entity. One of CustJob, Vendor, Employee, OtherName

456

kClass

Long

FKeyOpt

CLASS

Key of associated class

456

kItem

Long

FKeyOpt

INVITEM

Key of inventory item <<< ?types

456

sItemType

S11

Opt

-

Type of kItem. One of <<<

456

rItemCount

Doub

Opt

QNTY

Count of items. For main transaction lines (bDocMain = T), this is the total item count for all line transactions in the document.

456

rUnitPrice

Doub

Opt

PRICE

Either wholesale cost or retail price per unit - depending on transaction type. For purchases, this is the wholesale cost. For sales / invoices, this is the retail price.

For some item types (such as TaxItem), this can be a percentage. Percentage amounts are exported with a "%" character as the rightmost character of the value. When importing into a database - you should check for this character and deal with it appropriately. One technique is to have a separate boolean field that indicated if the amount is a percent.

456

mDebitCOGS

Curr

Opt

-

Amount to credit inventory and debit COGS. Transaction lines that move inventory dollars from the inventory asset account to the cost of goods account are not stored separately. Whenever this occurs, the dollar amount of the transfer will be in this field - attached to the transaction line that initiated the transfer.

This dollar amount should be credited from the corresponding kItem's kAcctAsset account and debited to the corresponding kItem's kAcctCOGS account - both are listed below.

Be careful using this field in code. In the future, we will likely eliminate this field and artificially create a pair of transactions to move the amount so no post processing is necessary.

If this field is present, there will always be corresponding kAcctAsset and kAcctCOGS accounts for the transfer.

456

kAcctAsset

Long

Opt

-

Inventory asset account to credit

456

kAcctCOGS

Long

Opt

-

Inventory COGS account to debit

456

bItemValueAdjust

Bool

OptDftF

VALDAJ

T if mAmount is an inventory value adjustment - as opposed to an inventory count adjustment. Only used with transaction type InvAdjst.

456

rCountMisc

Doub

Opt

-

Miscellaneous count Meaning depends on transaction type. For example, on a Purchase Order main line, it's the total item count received so far. On other than a main line, it's the count of that item that has not yet been received.

456

dDue

Date

Opt

DUEDATE

Exact meaning varies with tran type - but generally the date due. Used mainly with bills and invoices.

456

dShip

Date

Opt

SHIPDATE

Exact meaning varies with tran type - but generally the date shipped or last shipped. For receivable and payable transactions - this is usually the date paid.

456

bPaid

Bool

OptDftF

PAID

T if document has been paid in full. Invoices, vendor bills, and sales tax payments only. Does not exist if the invoice, vendor bill, or tax payment has only been partially paid.

456

mBalanceDue

Curr

Opt

-

Partial amount due on a bill or invoice. If bPaid is False and this field exists, the amount in this field is what is still owed on the bill or invoice.

In the future (after V6 work is done), we will likely change this to be the full amount due for this line. Basically, if bPaid is False and there has been no partial payment - then this field will equal mAmount.

456

bReceived

Bool

OptDftF

-

T if line item has been received or (if main of PurchOrd) all items have been received.

456

kPayMeth

Long

FKeyOpt

PAYMETH

Key of customer payment method

456

bCleared

Bool

OptDftF

CLEAR

T if check has cleared bank. This sometimes also occurs in other transaction types. In these cases, we don't know if it has meaning or contains random uninitialized data.

456

bTaxable

Bool

OptDftF

TAXABLE

T if sales tax is applicable for this line item. This will be true even in purchase orders where sales tax is not being paid if the item itself is taxable - which should be ignored.

456

bAutoTax

Bool

OptDftF

EXTRA
AUTOSTAX

T if this is an automatically generated sales tax item - using the rate for the tax item at the time generated. If the transaction line in which this occurs has no mAmount field - the sales tax was not charged and this line should be ignored.

Before version 6, if cash sales and invoices are entered out of sequence and the tax rate has subsequently been changed - the current tax rate will be used in the calculation.

456

bToPrint

Bool

OptDftF

TOPRINT

T if document is in print queue - waiting to be printed

456

bToSend

Bool

OptDftF

-

T if line item is awaiting online transmittal

456

kPayItem

Long

FKeyOpt

PAYITEM

Key of payroll item used in calculation. Payroll only.

456

sPayItemType

S13

Opt

-

Type of pay item for kPayItem. One of ...

456

mWageBase

Curr

Opt

WAGEBASE

Current wages or earnings used in calculation. Payroll only.

456

mYearToDate

Curr

Opt

YEAR-
TODATE

YTD amount used in calculation. Payroll only.

456

sMemo

Memo

Opt

MEMO

Memo text. This can be either data the user entered, or data entered by QuickBooks. If entered by QuickBooks, matching the exact text in code can be useful for determining why the transaction was created - such as for opening balances or condensed transactions.

456

dCustomDate

Date

Opt

SERVICE-
DATE

Single user defined date field

456

sCustomField1

S30

Opt

-

1st user defined string field

456

sCustomField2

S30

Opt

-

2nd user defined string field

-56

sCustomField3

S30

Opt

-

3rd user defined string field

-56

sCustomField4

S30

Opt

-

4th user defined string field

-56

sCustomField5

S30

Opt

-

5th user defined string field

-56

sCustomField6

S30

Opt

-

6th user defined string field

456

kNextTran

Long

FKeyOpt

EXTRA
ENDGRP

Key of the transaction that follows this. If this field doesn't exist, this is the last transaction in the chain.

456

nOrigKey

Long

Req

TRNSID
SPLID

Original key (reference) from this record in the QuickBooks file. This field was added in case it is required in IIF import files.

Contents of this page
QBooks Office Overview


Memorized Transaction Documents

  Memorized transaction documents are clones of previously entered documents that may be reused in the future. There are strictly a data entry convenience and have no effect or relationship with transactions or other record types currently in the file.

Each memorized transaction document also contains a set of transaction lines. We do not currently extract them - although we could if there is sufficient demand.

Fields in record type: MemDoc

Ver

Field Name

Type

Prop

IIF Name

Description

45-

nKey

Long

PKey

-

Unique memorized document record identifier

45-

sName

S31

Req

-

Name of this memorized document. Normally the name of the recipient of the transaction.

45-

kAcctSource

Long

FKeyOpt

-

Key of account used as the source of funds for this transaction. Normally, a bank account.

45-

sTranType

S8

Opt

-

Type of transaction. See list of transaction types. This field is optional (unlike occurrences of sTranType in other records).

45-

mAmount

Curr

Opt

-

Total dollar amount of memorized transaction.

45-

dNext

Date

Opt

-

Scheduled date of the next transaction

45-

dSubsequent

Date

Opt

-

Scheduled data of transaction following the next transaction.

45-

nNumbRemaining

Long

Opt

-

Count of documents not generated yet. Applies only to documents regenerated on a regular basis - such as loan payments.

45-

sRemindFreq

S13

Opt

-

How often user should be reminded. One of "Daily", "Weekly", "Every2Weeks", "TwiceMonthly", "Every4Weeks", "Monthly", "Quarterly", "TwiceAnnually", or "Annually".

45-

nDaysInAdvance

Long

Opt

-

Count of days in advance to enter this document

45-

bInGroup

Bool

OptDftF

-

T if this is a component of a group. When a memorized transaction is part of a group, QB enters all transactions as a single operation.

45-

bIsGroup

Bool

OptDftF

-

T if this is a group (header) for memorized transactions

45-

bAutoEnter

Bool

OptDftF

-

T if this should be automatically entered as a transaction by QB when the transaction is due.

Contents of this page
QBooks Office Overview