openapi: 3.1.0 info: title: QuickBooks Online Accounting API description: >- The QuickBooks Online Accounting API is a RESTful API that provides programmatic access to QuickBooks Online company data. This specification covers core entities including invoices, customers, items, and payments, enabling developers to automate accounting workflows, synchronize financial data, and extend QuickBooks Online functionality for small and mid-sized businesses. All API calls require OAuth 2.0 authorization and a valid company ID (realmId). Responses follow the Intuit entity response envelope pattern, and the API supports minor version parameters to access newer fields and behaviors without breaking existing integrations. version: "75" termsOfService: https://developer.intuit.com/app/developer/qbo/docs/learn/terms-of-service contact: name: Intuit Developer Support url: https://help.developer.intuit.com email: developer-support@intuit.com license: name: Intuit Developer Terms of Service url: https://developer.intuit.com/app/developer/qbo/docs/learn/terms-of-service x-logo: url: https://developer.intuit.com/app/developer/common/imgs/IntuitDev_Logo.svg externalDocs: description: QuickBooks Online API Documentation url: https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/account servers: - url: https://quickbooks.api.intuit.com/v3/company/{realmId} description: Production variables: realmId: description: >- The QuickBooks Online company ID (realm ID) that uniquely identifies the company dataset to operate on. default: "1234567890" - url: https://sandbox-quickbooks.api.intuit.com/v3/company/{realmId} description: Sandbox variables: realmId: description: >- The sandbox company ID for testing and development purposes. default: "1234567890" security: - oauth2: [] tags: - name: Invoices description: >- An Invoice represents a sales form where the customer pays for a product or service later. QuickBooks records an accounts receivable transaction for each invoice. externalDocs: url: https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/invoice - name: Customers description: >- A Customer object represents a consumer of the service or product that the business offers. The Customer entity allows you to categorize customers into jobs and sub-customers. externalDocs: url: https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/customer - name: Items description: >- An Item represents a product or service that a company buys, sells, or re-sells, such as products, shipping charges, discount, and sales tax (if applicable). Items are used in line items on invoices and other transaction entities. externalDocs: url: https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/item - name: Payments description: >- A Payment object records a payment received from a customer against one or more invoices or credit memos. Payments can be applied to specific invoices or left as unapplied credits. externalDocs: url: https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/payment paths: /invoice: post: operationId: createInvoice summary: Create an Invoice description: >- Creates a new invoice. At minimum, the request must include a CustomerRef and at least one Line item. The TxnDate defaults to the current date if not specified. QuickBooks automatically calculates totals, tax, and balance fields. tags: - Invoices parameters: - $ref: "#/components/parameters/minorVersion" requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/Invoice" examples: CreateinvoiceRequestExample: summary: Default createInvoice request x-microcks-default: true value: Id: abc123 SyncToken: example_value MetaData: CreateTime: '2026-01-15T10:30:00Z' LastUpdatedTime: '2026-01-15T10:30:00Z' DocNumber: example_value TxnDate: '2026-01-15' DueDate: '2026-01-15' PrivateNote: example_value CustomerMemo: value: example_value CustomerRef: value: example_value name: Example Title BillAddr: Id: abc123 Line1: example_value Line2: example_value Line3: example_value Line4: example_value Line5: example_value City: example_value CountrySubDivisionCode: example_value PostalCode: example_value Country: example_value Lat: example_value Long: example_value ShipAddr: Id: abc123 Line1: example_value Line2: example_value Line3: example_value Line4: example_value Line5: example_value City: example_value CountrySubDivisionCode: example_value PostalCode: example_value Country: example_value Lat: example_value Long: example_value BillEmail: Address: example_value Line: - Id: abc123 LineNum: 10 Description: A sample description. Amount: 42.5 DetailType: SalesItemLineDetail LinkedTxn: {} TxnTaxDetail: TotalTax: 42.5 TaxLine: - {} TotalAmt: 42.5 Balance: 42.5 Deposit: 42.5 DepositToAccountRef: value: example_value name: Example Title SalesTermRef: value: example_value name: Example Title PaymentMethodRef: value: example_value name: Example Title CurrencyRef: value: example_value name: Example Title ExchangeRate: 42.5 ShipDate: '2026-01-15' ShipMethodRef: value: example_value name: Example Title TrackingNum: example_value ApplyTaxAfterDiscount: true PrintStatus: NotSet EmailStatus: NotSet GlobalTaxCalculation: TaxExcluded AllowOnlinePayment: true AllowOnlineCreditCardPayment: true AllowOnlineACHPayment: true CustomField: - DefinitionId: '500123' Name: Example Title Type: StringType StringValue: example_value LinkedTxn: - TxnId: '500123' TxnType: Invoice domain: example_value sparse: true responses: "200": description: Invoice created successfully content: application/json: schema: $ref: "#/components/schemas/InvoiceResponse" examples: Createinvoice200Example: summary: Default createInvoice 200 response x-microcks-default: true value: Invoice: Id: abc123 SyncToken: example_value DocNumber: example_value TxnDate: '2026-01-15' DueDate: '2026-01-15' PrivateNote: example_value CustomerMemo: value: example_value Line: - {} TotalAmt: 42.5 Balance: 42.5 Deposit: 42.5 ExchangeRate: 42.5 ShipDate: '2026-01-15' TrackingNum: example_value ApplyTaxAfterDiscount: true PrintStatus: NotSet EmailStatus: NotSet GlobalTaxCalculation: TaxExcluded AllowOnlinePayment: true AllowOnlineCreditCardPayment: true AllowOnlineACHPayment: true CustomField: - {} LinkedTxn: - {} domain: example_value sparse: true time: '2026-01-15T10:30:00Z' "400": $ref: "#/components/responses/BadRequest" "401": $ref: "#/components/responses/Unauthorized" "403": $ref: "#/components/responses/Forbidden" "500": $ref: "#/components/responses/InternalError" x-microcks-operation: delay: 0 dispatcher: FALLBACK /invoice/{invoiceId}: get: operationId: readInvoice summary: Read an Invoice description: >- Retrieves the details of an invoice that has been previously created. Supply the unique invoice ID returned from a previous create or query request. tags: - Invoices parameters: - $ref: "#/components/parameters/invoiceId" - $ref: "#/components/parameters/minorVersion" responses: "200": description: Invoice retrieved successfully content: application/json: schema: $ref: "#/components/schemas/InvoiceResponse" examples: Readinvoice200Example: summary: Default readInvoice 200 response x-microcks-default: true value: Invoice: Id: abc123 SyncToken: example_value DocNumber: example_value TxnDate: '2026-01-15' DueDate: '2026-01-15' PrivateNote: example_value CustomerMemo: value: example_value Line: - {} TotalAmt: 42.5 Balance: 42.5 Deposit: 42.5 ExchangeRate: 42.5 ShipDate: '2026-01-15' TrackingNum: example_value ApplyTaxAfterDiscount: true PrintStatus: NotSet EmailStatus: NotSet GlobalTaxCalculation: TaxExcluded AllowOnlinePayment: true AllowOnlineCreditCardPayment: true AllowOnlineACHPayment: true CustomField: - {} LinkedTxn: - {} domain: example_value sparse: true time: '2026-01-15T10:30:00Z' "400": $ref: "#/components/responses/BadRequest" "401": $ref: "#/components/responses/Unauthorized" "404": $ref: "#/components/responses/NotFound" "500": $ref: "#/components/responses/InternalError" x-microcks-operation: delay: 0 dispatcher: FALLBACK post: operationId: updateInvoice summary: Update an Invoice description: >- Updates an existing invoice. A full update replaces the entire entity with the data provided. The request must include the Id and SyncToken fields from the latest read of the entity. Writable fields omitted from the request body are set to NULL. tags: - Invoices parameters: - $ref: "#/components/parameters/invoiceId" - $ref: "#/components/parameters/minorVersion" requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/Invoice" examples: UpdateinvoiceRequestExample: summary: Default updateInvoice request x-microcks-default: true value: Id: abc123 SyncToken: example_value MetaData: CreateTime: '2026-01-15T10:30:00Z' LastUpdatedTime: '2026-01-15T10:30:00Z' DocNumber: example_value TxnDate: '2026-01-15' DueDate: '2026-01-15' PrivateNote: example_value CustomerMemo: value: example_value CustomerRef: value: example_value name: Example Title BillAddr: Id: abc123 Line1: example_value Line2: example_value Line3: example_value Line4: example_value Line5: example_value City: example_value CountrySubDivisionCode: example_value PostalCode: example_value Country: example_value Lat: example_value Long: example_value ShipAddr: Id: abc123 Line1: example_value Line2: example_value Line3: example_value Line4: example_value Line5: example_value City: example_value CountrySubDivisionCode: example_value PostalCode: example_value Country: example_value Lat: example_value Long: example_value BillEmail: Address: example_value Line: - Id: abc123 LineNum: 10 Description: A sample description. Amount: 42.5 DetailType: SalesItemLineDetail LinkedTxn: {} TxnTaxDetail: TotalTax: 42.5 TaxLine: - {} TotalAmt: 42.5 Balance: 42.5 Deposit: 42.5 DepositToAccountRef: value: example_value name: Example Title SalesTermRef: value: example_value name: Example Title PaymentMethodRef: value: example_value name: Example Title CurrencyRef: value: example_value name: Example Title ExchangeRate: 42.5 ShipDate: '2026-01-15' ShipMethodRef: value: example_value name: Example Title TrackingNum: example_value ApplyTaxAfterDiscount: true PrintStatus: NotSet EmailStatus: NotSet GlobalTaxCalculation: TaxExcluded AllowOnlinePayment: true AllowOnlineCreditCardPayment: true AllowOnlineACHPayment: true CustomField: - DefinitionId: '500123' Name: Example Title Type: StringType StringValue: example_value LinkedTxn: - TxnId: '500123' TxnType: Invoice domain: example_value sparse: true responses: "200": description: Invoice updated successfully content: application/json: schema: $ref: "#/components/schemas/InvoiceResponse" examples: Updateinvoice200Example: summary: Default updateInvoice 200 response x-microcks-default: true value: Invoice: Id: abc123 SyncToken: example_value DocNumber: example_value TxnDate: '2026-01-15' DueDate: '2026-01-15' PrivateNote: example_value CustomerMemo: value: example_value Line: - {} TotalAmt: 42.5 Balance: 42.5 Deposit: 42.5 ExchangeRate: 42.5 ShipDate: '2026-01-15' TrackingNum: example_value ApplyTaxAfterDiscount: true PrintStatus: NotSet EmailStatus: NotSet GlobalTaxCalculation: TaxExcluded AllowOnlinePayment: true AllowOnlineCreditCardPayment: true AllowOnlineACHPayment: true CustomField: - {} LinkedTxn: - {} domain: example_value sparse: true time: '2026-01-15T10:30:00Z' "400": $ref: "#/components/responses/BadRequest" "401": $ref: "#/components/responses/Unauthorized" "404": $ref: "#/components/responses/NotFound" "500": $ref: "#/components/responses/InternalError" x-microcks-operation: delay: 0 dispatcher: FALLBACK /invoice/{invoiceId}/send: post: operationId: sendInvoice summary: Send an Invoice via Email description: >- Sends the specified invoice via email to the address associated with the customer's BillEmail. You can override the destination email by providing a sendTo query parameter. tags: - Invoices parameters: - $ref: "#/components/parameters/invoiceId" - name: sendTo in: query description: Override destination email address schema: type: string format: email example: example_value - $ref: "#/components/parameters/minorVersion" responses: "200": description: Invoice sent successfully content: application/json: schema: $ref: "#/components/schemas/InvoiceResponse" examples: Sendinvoice200Example: summary: Default sendInvoice 200 response x-microcks-default: true value: Invoice: Id: abc123 SyncToken: example_value DocNumber: example_value TxnDate: '2026-01-15' DueDate: '2026-01-15' PrivateNote: example_value CustomerMemo: value: example_value Line: - {} TotalAmt: 42.5 Balance: 42.5 Deposit: 42.5 ExchangeRate: 42.5 ShipDate: '2026-01-15' TrackingNum: example_value ApplyTaxAfterDiscount: true PrintStatus: NotSet EmailStatus: NotSet GlobalTaxCalculation: TaxExcluded AllowOnlinePayment: true AllowOnlineCreditCardPayment: true AllowOnlineACHPayment: true CustomField: - {} LinkedTxn: - {} domain: example_value sparse: true time: '2026-01-15T10:30:00Z' "400": $ref: "#/components/responses/BadRequest" "401": $ref: "#/components/responses/Unauthorized" "404": $ref: "#/components/responses/NotFound" "500": $ref: "#/components/responses/InternalError" x-microcks-operation: delay: 0 dispatcher: FALLBACK /invoice/{invoiceId}/void: post: operationId: voidInvoice summary: Void an Invoice description: >- Voids the specified invoice. The invoice remains in the system with a voided status. The request body must include the Id and SyncToken of the invoice. The operation=void parameter must also be included. tags: - Invoices parameters: - $ref: "#/components/parameters/invoiceId" - name: operation in: query required: true schema: type: string enum: - void example: void - $ref: "#/components/parameters/minorVersion" requestBody: required: true content: application/json: schema: type: object required: - Id - SyncToken properties: Id: type: string SyncToken: type: string examples: VoidinvoiceRequestExample: summary: Default voidInvoice request x-microcks-default: true value: Id: abc123 SyncToken: example_value responses: "200": description: Invoice voided successfully content: application/json: schema: $ref: "#/components/schemas/InvoiceResponse" examples: Voidinvoice200Example: summary: Default voidInvoice 200 response x-microcks-default: true value: Invoice: Id: abc123 SyncToken: example_value DocNumber: example_value TxnDate: '2026-01-15' DueDate: '2026-01-15' PrivateNote: example_value CustomerMemo: value: example_value Line: - {} TotalAmt: 42.5 Balance: 42.5 Deposit: 42.5 ExchangeRate: 42.5 ShipDate: '2026-01-15' TrackingNum: example_value ApplyTaxAfterDiscount: true PrintStatus: NotSet EmailStatus: NotSet GlobalTaxCalculation: TaxExcluded AllowOnlinePayment: true AllowOnlineCreditCardPayment: true AllowOnlineACHPayment: true CustomField: - {} LinkedTxn: - {} domain: example_value sparse: true time: '2026-01-15T10:30:00Z' "400": $ref: "#/components/responses/BadRequest" "401": $ref: "#/components/responses/Unauthorized" "404": $ref: "#/components/responses/NotFound" "500": $ref: "#/components/responses/InternalError" x-microcks-operation: delay: 0 dispatcher: FALLBACK /invoice/{invoiceId}/pdf: get: operationId: getInvoicePdf summary: Get Invoice as Pdf description: >- Returns the specified invoice as a PDF document. The response content type is application/pdf. tags: - Invoices parameters: - $ref: "#/components/parameters/invoiceId" - $ref: "#/components/parameters/minorVersion" responses: "200": description: PDF retrieved successfully content: application/pdf: schema: type: string format: binary examples: Getinvoicepdf200Example: summary: Default getInvoicePdf 200 response x-microcks-default: true value: example_value "401": $ref: "#/components/responses/Unauthorized" "404": $ref: "#/components/responses/NotFound" "500": $ref: "#/components/responses/InternalError" x-microcks-operation: delay: 0 dispatcher: FALLBACK /query: get: operationId: queryEntities summary: Query Entities description: >- Executes a SQL-like query against QuickBooks Online entities. The query language supports SELECT, WHERE, ORDER BY, COUNT, STARTPOSITION, and MAXRESULTS clauses. This endpoint is used to query invoices, customers, items, payments, and other entity types. tags: - Invoices - Customers - Items - Payments parameters: - name: query in: query required: true description: >- A SQL-like query string. For example: SELECT * FROM Invoice WHERE TotalAmt > '100.00' ORDERBY TxnDate schema: type: string example: "SELECT * FROM Invoice WHERE TotalAmt > '100.00' MAXRESULTS 10" - $ref: "#/components/parameters/minorVersion" responses: "200": description: Query executed successfully content: application/json: schema: $ref: "#/components/schemas/QueryResponse" examples: Queryentities200Example: summary: Default queryEntities 200 response x-microcks-default: true value: QueryResponse: startPosition: 10 maxResults: 10 totalCount: 10 Invoice: - {} Customer: - {} Item: - {} Payment: - {} time: '2026-01-15T10:30:00Z' "400": $ref: "#/components/responses/BadRequest" "401": $ref: "#/components/responses/Unauthorized" "500": $ref: "#/components/responses/InternalError" x-microcks-operation: delay: 0 dispatcher: FALLBACK /customer: post: operationId: createCustomer summary: Create a Customer description: >- Creates a new customer. At minimum, the request must include a DisplayName that is unique across all Customer, Employee, and Vendor objects. Additional fields such as billing address, email, and phone can be set during creation. tags: - Customers parameters: - $ref: "#/components/parameters/minorVersion" requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/Customer" examples: CreatecustomerRequestExample: summary: Default createCustomer request x-microcks-default: true value: Id: abc123 SyncToken: example_value MetaData: CreateTime: '2026-01-15T10:30:00Z' LastUpdatedTime: '2026-01-15T10:30:00Z' Title: Example Title GivenName: example_value MiddleName: example_value FamilyName: example_value Suffix: example_value DisplayName: example_value CompanyName: example_value PrintOnCheckName: example_value Active: true Taxable: true PrimaryEmailAddr: Address: example_value PrimaryPhone: FreeFormNumber: example_value Mobile: FreeFormNumber: example_value Fax: FreeFormNumber: example_value AlternatePhone: FreeFormNumber: example_value BillAddr: Id: abc123 Line1: example_value Line2: example_value Line3: example_value Line4: example_value Line5: example_value City: example_value CountrySubDivisionCode: example_value PostalCode: example_value Country: example_value Lat: example_value Long: example_value ShipAddr: Id: abc123 Line1: example_value Line2: example_value Line3: example_value Line4: example_value Line5: example_value City: example_value CountrySubDivisionCode: example_value PostalCode: example_value Country: example_value Lat: example_value Long: example_value Notes: example_value Job: true ParentRef: value: example_value name: Example Title Level: 10 FullyQualifiedName: example_value CurrencyRef: value: example_value name: Example Title PreferredDeliveryMethod: Print Balance: 42.5 BalanceWithJobs: 42.5 SalesTermRef: value: example_value name: Example Title PaymentMethodRef: value: example_value name: Example Title TaxExemptionReasonId: '500123' WebAddr: URI: https://www.example.com domain: example_value sparse: true responses: "200": description: Customer created successfully content: application/json: schema: $ref: "#/components/schemas/CustomerResponse" examples: Createcustomer200Example: summary: Default createCustomer 200 response x-microcks-default: true value: Customer: Id: abc123 SyncToken: example_value Title: Example Title GivenName: example_value MiddleName: example_value FamilyName: example_value Suffix: example_value DisplayName: example_value CompanyName: example_value PrintOnCheckName: example_value Active: true Taxable: true Notes: example_value Job: true Level: 10 FullyQualifiedName: example_value PreferredDeliveryMethod: Print Balance: 42.5 BalanceWithJobs: 42.5 TaxExemptionReasonId: '500123' WebAddr: URI: https://www.example.com domain: example_value sparse: true time: '2026-01-15T10:30:00Z' "400": $ref: "#/components/responses/BadRequest" "401": $ref: "#/components/responses/Unauthorized" "500": $ref: "#/components/responses/InternalError" x-microcks-operation: delay: 0 dispatcher: FALLBACK /customer/{customerId}: get: operationId: readCustomer summary: Read a Customer description: >- Retrieves the details of a customer that has been previously created. Supply the unique customer ID. tags: - Customers parameters: - $ref: "#/components/parameters/customerId" - $ref: "#/components/parameters/minorVersion" responses: "200": description: Customer retrieved successfully content: application/json: schema: $ref: "#/components/schemas/CustomerResponse" examples: Readcustomer200Example: summary: Default readCustomer 200 response x-microcks-default: true value: Customer: Id: abc123 SyncToken: example_value Title: Example Title GivenName: example_value MiddleName: example_value FamilyName: example_value Suffix: example_value DisplayName: example_value CompanyName: example_value PrintOnCheckName: example_value Active: true Taxable: true Notes: example_value Job: true Level: 10 FullyQualifiedName: example_value PreferredDeliveryMethod: Print Balance: 42.5 BalanceWithJobs: 42.5 TaxExemptionReasonId: '500123' WebAddr: URI: https://www.example.com domain: example_value sparse: true time: '2026-01-15T10:30:00Z' "400": $ref: "#/components/responses/BadRequest" "401": $ref: "#/components/responses/Unauthorized" "404": $ref: "#/components/responses/NotFound" "500": $ref: "#/components/responses/InternalError" x-microcks-operation: delay: 0 dispatcher: FALLBACK post: operationId: updateCustomer summary: Update a Customer description: >- Updates an existing customer. The request body must include the Id and SyncToken. A sparse update is supported by including only the fields that need to change along with the sparse=true parameter. tags: - Customers parameters: - $ref: "#/components/parameters/customerId" - name: sparse in: query description: Set to true for a sparse (partial) update schema: type: boolean example: true - $ref: "#/components/parameters/minorVersion" requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/Customer" examples: UpdatecustomerRequestExample: summary: Default updateCustomer request x-microcks-default: true value: Id: abc123 SyncToken: example_value MetaData: CreateTime: '2026-01-15T10:30:00Z' LastUpdatedTime: '2026-01-15T10:30:00Z' Title: Example Title GivenName: example_value MiddleName: example_value FamilyName: example_value Suffix: example_value DisplayName: example_value CompanyName: example_value PrintOnCheckName: example_value Active: true Taxable: true PrimaryEmailAddr: Address: example_value PrimaryPhone: FreeFormNumber: example_value Mobile: FreeFormNumber: example_value Fax: FreeFormNumber: example_value AlternatePhone: FreeFormNumber: example_value BillAddr: Id: abc123 Line1: example_value Line2: example_value Line3: example_value Line4: example_value Line5: example_value City: example_value CountrySubDivisionCode: example_value PostalCode: example_value Country: example_value Lat: example_value Long: example_value ShipAddr: Id: abc123 Line1: example_value Line2: example_value Line3: example_value Line4: example_value Line5: example_value City: example_value CountrySubDivisionCode: example_value PostalCode: example_value Country: example_value Lat: example_value Long: example_value Notes: example_value Job: true ParentRef: value: example_value name: Example Title Level: 10 FullyQualifiedName: example_value CurrencyRef: value: example_value name: Example Title PreferredDeliveryMethod: Print Balance: 42.5 BalanceWithJobs: 42.5 SalesTermRef: value: example_value name: Example Title PaymentMethodRef: value: example_value name: Example Title TaxExemptionReasonId: '500123' WebAddr: URI: https://www.example.com domain: example_value sparse: true responses: "200": description: Customer updated successfully content: application/json: schema: $ref: "#/components/schemas/CustomerResponse" examples: Updatecustomer200Example: summary: Default updateCustomer 200 response x-microcks-default: true value: Customer: Id: abc123 SyncToken: example_value Title: Example Title GivenName: example_value MiddleName: example_value FamilyName: example_value Suffix: example_value DisplayName: example_value CompanyName: example_value PrintOnCheckName: example_value Active: true Taxable: true Notes: example_value Job: true Level: 10 FullyQualifiedName: example_value PreferredDeliveryMethod: Print Balance: 42.5 BalanceWithJobs: 42.5 TaxExemptionReasonId: '500123' WebAddr: URI: https://www.example.com domain: example_value sparse: true time: '2026-01-15T10:30:00Z' "400": $ref: "#/components/responses/BadRequest" "401": $ref: "#/components/responses/Unauthorized" "404": $ref: "#/components/responses/NotFound" "500": $ref: "#/components/responses/InternalError" x-microcks-operation: delay: 0 dispatcher: FALLBACK /item: post: operationId: createItem summary: Create an Item description: >- Creates a new item (product or service). At minimum, the request must include a Name, Type (Inventory, NonInventory, or Service), and appropriate account references (IncomeAccountRef, ExpenseAccountRef, and AssetAccountRef for inventory items). tags: - Items parameters: - $ref: "#/components/parameters/minorVersion" requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/Item" examples: CreateitemRequestExample: summary: Default createItem request x-microcks-default: true value: Id: abc123 SyncToken: example_value MetaData: CreateTime: '2026-01-15T10:30:00Z' LastUpdatedTime: '2026-01-15T10:30:00Z' Name: Example Title Description: A sample description. PurchaseDesc: example_value Active: true FullyQualifiedName: example_value Taxable: true SalesTaxIncluded: true UnitPrice: 42.5 Type: Inventory PurchaseCost: 42.5 QtyOnHand: 42.5 InvStartDate: '2026-01-15' TrackQtyOnHand: true Sku: example_value IncomeAccountRef: value: example_value name: Example Title ExpenseAccountRef: value: example_value name: Example Title AssetAccountRef: value: example_value name: Example Title ParentRef: value: example_value name: Example Title SubItem: true Level: 10 SalesTaxCodeRef: value: example_value name: Example Title PurchaseTaxCodeRef: value: example_value name: Example Title ClassRef: value: example_value name: Example Title AbatementRate: 42.5 ReverseChargeRate: 42.5 domain: example_value sparse: true responses: "200": description: Item created successfully content: application/json: schema: $ref: "#/components/schemas/ItemResponse" examples: Createitem200Example: summary: Default createItem 200 response x-microcks-default: true value: Item: Id: abc123 SyncToken: example_value Name: Example Title Description: A sample description. PurchaseDesc: example_value Active: true FullyQualifiedName: example_value Taxable: true SalesTaxIncluded: true UnitPrice: 42.5 Type: Inventory PurchaseCost: 42.5 QtyOnHand: 42.5 InvStartDate: '2026-01-15' TrackQtyOnHand: true Sku: example_value SubItem: true Level: 10 AbatementRate: 42.5 ReverseChargeRate: 42.5 domain: example_value sparse: true time: '2026-01-15T10:30:00Z' "400": $ref: "#/components/responses/BadRequest" "401": $ref: "#/components/responses/Unauthorized" "500": $ref: "#/components/responses/InternalError" x-microcks-operation: delay: 0 dispatcher: FALLBACK /item/{itemId}: get: operationId: readItem summary: Read an Item description: >- Retrieves the details of an item that has been previously created. Supply the unique item ID. tags: - Items parameters: - $ref: "#/components/parameters/itemId" - $ref: "#/components/parameters/minorVersion" responses: "200": description: Item retrieved successfully content: application/json: schema: $ref: "#/components/schemas/ItemResponse" examples: Readitem200Example: summary: Default readItem 200 response x-microcks-default: true value: Item: Id: abc123 SyncToken: example_value Name: Example Title Description: A sample description. PurchaseDesc: example_value Active: true FullyQualifiedName: example_value Taxable: true SalesTaxIncluded: true UnitPrice: 42.5 Type: Inventory PurchaseCost: 42.5 QtyOnHand: 42.5 InvStartDate: '2026-01-15' TrackQtyOnHand: true Sku: example_value SubItem: true Level: 10 AbatementRate: 42.5 ReverseChargeRate: 42.5 domain: example_value sparse: true time: '2026-01-15T10:30:00Z' "400": $ref: "#/components/responses/BadRequest" "401": $ref: "#/components/responses/Unauthorized" "404": $ref: "#/components/responses/NotFound" "500": $ref: "#/components/responses/InternalError" x-microcks-operation: delay: 0 dispatcher: FALLBACK post: operationId: updateItem summary: Update an Item description: >- Updates an existing item. The request must include the Id and SyncToken. Sparse updates are supported. tags: - Items parameters: - $ref: "#/components/parameters/itemId" - name: sparse in: query description: Set to true for a sparse (partial) update schema: type: boolean example: true - $ref: "#/components/parameters/minorVersion" requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/Item" examples: UpdateitemRequestExample: summary: Default updateItem request x-microcks-default: true value: Id: abc123 SyncToken: example_value MetaData: CreateTime: '2026-01-15T10:30:00Z' LastUpdatedTime: '2026-01-15T10:30:00Z' Name: Example Title Description: A sample description. PurchaseDesc: example_value Active: true FullyQualifiedName: example_value Taxable: true SalesTaxIncluded: true UnitPrice: 42.5 Type: Inventory PurchaseCost: 42.5 QtyOnHand: 42.5 InvStartDate: '2026-01-15' TrackQtyOnHand: true Sku: example_value IncomeAccountRef: value: example_value name: Example Title ExpenseAccountRef: value: example_value name: Example Title AssetAccountRef: value: example_value name: Example Title ParentRef: value: example_value name: Example Title SubItem: true Level: 10 SalesTaxCodeRef: value: example_value name: Example Title PurchaseTaxCodeRef: value: example_value name: Example Title ClassRef: value: example_value name: Example Title AbatementRate: 42.5 ReverseChargeRate: 42.5 domain: example_value sparse: true responses: "200": description: Item updated successfully content: application/json: schema: $ref: "#/components/schemas/ItemResponse" examples: Updateitem200Example: summary: Default updateItem 200 response x-microcks-default: true value: Item: Id: abc123 SyncToken: example_value Name: Example Title Description: A sample description. PurchaseDesc: example_value Active: true FullyQualifiedName: example_value Taxable: true SalesTaxIncluded: true UnitPrice: 42.5 Type: Inventory PurchaseCost: 42.5 QtyOnHand: 42.5 InvStartDate: '2026-01-15' TrackQtyOnHand: true Sku: example_value SubItem: true Level: 10 AbatementRate: 42.5 ReverseChargeRate: 42.5 domain: example_value sparse: true time: '2026-01-15T10:30:00Z' "400": $ref: "#/components/responses/BadRequest" "401": $ref: "#/components/responses/Unauthorized" "404": $ref: "#/components/responses/NotFound" "500": $ref: "#/components/responses/InternalError" x-microcks-operation: delay: 0 dispatcher: FALLBACK /payment: post: operationId: createPayment summary: Create a Payment description: >- Creates a new payment received from a customer. The payment can be applied to one or more outstanding invoices using the Line array with LinkedTxn references. If TotalAmt exceeds the sum of linked transactions, the remainder is treated as an unapplied amount. tags: - Payments parameters: - $ref: "#/components/parameters/minorVersion" requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/Payment" examples: CreatepaymentRequestExample: summary: Default createPayment request x-microcks-default: true value: Id: abc123 SyncToken: example_value MetaData: CreateTime: '2026-01-15T10:30:00Z' LastUpdatedTime: '2026-01-15T10:30:00Z' TxnDate: '2026-01-15' TotalAmt: 42.5 CustomerRef: value: example_value name: Example Title DepositToAccountRef: value: example_value name: Example Title PaymentMethodRef: value: example_value name: Example Title PaymentRefNum: example_value CurrencyRef: value: example_value name: Example Title ExchangeRate: 42.5 Line: - Amount: 42.5 LinkedTxn: {} PrivateNote: example_value UnappliedAmt: 42.5 ProcessPayment: true TxnSource: example_value domain: example_value sparse: true responses: "200": description: Payment created successfully content: application/json: schema: $ref: "#/components/schemas/PaymentResponse" examples: Createpayment200Example: summary: Default createPayment 200 response x-microcks-default: true value: Payment: Id: abc123 SyncToken: example_value TxnDate: '2026-01-15' TotalAmt: 42.5 PaymentRefNum: example_value ExchangeRate: 42.5 Line: - {} PrivateNote: example_value UnappliedAmt: 42.5 ProcessPayment: true TxnSource: example_value domain: example_value sparse: true time: '2026-01-15T10:30:00Z' "400": $ref: "#/components/responses/BadRequest" "401": $ref: "#/components/responses/Unauthorized" "500": $ref: "#/components/responses/InternalError" x-microcks-operation: delay: 0 dispatcher: FALLBACK /payment/{paymentId}: get: operationId: readPayment summary: Read a Payment description: >- Retrieves the details of a payment that has been previously created. Supply the unique payment ID. tags: - Payments parameters: - $ref: "#/components/parameters/paymentId" - $ref: "#/components/parameters/minorVersion" responses: "200": description: Payment retrieved successfully content: application/json: schema: $ref: "#/components/schemas/PaymentResponse" examples: Readpayment200Example: summary: Default readPayment 200 response x-microcks-default: true value: Payment: Id: abc123 SyncToken: example_value TxnDate: '2026-01-15' TotalAmt: 42.5 PaymentRefNum: example_value ExchangeRate: 42.5 Line: - {} PrivateNote: example_value UnappliedAmt: 42.5 ProcessPayment: true TxnSource: example_value domain: example_value sparse: true time: '2026-01-15T10:30:00Z' "400": $ref: "#/components/responses/BadRequest" "401": $ref: "#/components/responses/Unauthorized" "404": $ref: "#/components/responses/NotFound" "500": $ref: "#/components/responses/InternalError" x-microcks-operation: delay: 0 dispatcher: FALLBACK post: operationId: updatePayment summary: Update a Payment description: >- Updates an existing payment. The request must include the Id and SyncToken. Use this to change the linked transactions, payment method, or other details. tags: - Payments parameters: - $ref: "#/components/parameters/paymentId" - name: sparse in: query description: Set to true for a sparse (partial) update schema: type: boolean example: true - $ref: "#/components/parameters/minorVersion" requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/Payment" examples: UpdatepaymentRequestExample: summary: Default updatePayment request x-microcks-default: true value: Id: abc123 SyncToken: example_value MetaData: CreateTime: '2026-01-15T10:30:00Z' LastUpdatedTime: '2026-01-15T10:30:00Z' TxnDate: '2026-01-15' TotalAmt: 42.5 CustomerRef: value: example_value name: Example Title DepositToAccountRef: value: example_value name: Example Title PaymentMethodRef: value: example_value name: Example Title PaymentRefNum: example_value CurrencyRef: value: example_value name: Example Title ExchangeRate: 42.5 Line: - Amount: 42.5 LinkedTxn: {} PrivateNote: example_value UnappliedAmt: 42.5 ProcessPayment: true TxnSource: example_value domain: example_value sparse: true responses: "200": description: Payment updated successfully content: application/json: schema: $ref: "#/components/schemas/PaymentResponse" examples: Updatepayment200Example: summary: Default updatePayment 200 response x-microcks-default: true value: Payment: Id: abc123 SyncToken: example_value TxnDate: '2026-01-15' TotalAmt: 42.5 PaymentRefNum: example_value ExchangeRate: 42.5 Line: - {} PrivateNote: example_value UnappliedAmt: 42.5 ProcessPayment: true TxnSource: example_value domain: example_value sparse: true time: '2026-01-15T10:30:00Z' "400": $ref: "#/components/responses/BadRequest" "401": $ref: "#/components/responses/Unauthorized" "404": $ref: "#/components/responses/NotFound" "500": $ref: "#/components/responses/InternalError" x-microcks-operation: delay: 0 dispatcher: FALLBACK /payment/{paymentId}/void: post: operationId: voidPayment summary: Void a Payment description: >- Voids the specified payment. The payment is not deleted but marked as voided. The request body must include the Id and SyncToken. Include the operation=void query parameter. tags: - Payments parameters: - $ref: "#/components/parameters/paymentId" - name: operation in: query required: true schema: type: string enum: - void example: void - $ref: "#/components/parameters/minorVersion" requestBody: required: true content: application/json: schema: type: object required: - Id - SyncToken properties: Id: type: string SyncToken: type: string examples: VoidpaymentRequestExample: summary: Default voidPayment request x-microcks-default: true value: Id: abc123 SyncToken: example_value responses: "200": description: Payment voided successfully content: application/json: schema: $ref: "#/components/schemas/PaymentResponse" examples: Voidpayment200Example: summary: Default voidPayment 200 response x-microcks-default: true value: Payment: Id: abc123 SyncToken: example_value TxnDate: '2026-01-15' TotalAmt: 42.5 PaymentRefNum: example_value ExchangeRate: 42.5 Line: - {} PrivateNote: example_value UnappliedAmt: 42.5 ProcessPayment: true TxnSource: example_value domain: example_value sparse: true time: '2026-01-15T10:30:00Z' "400": $ref: "#/components/responses/BadRequest" "401": $ref: "#/components/responses/Unauthorized" "404": $ref: "#/components/responses/NotFound" "500": $ref: "#/components/responses/InternalError" x-microcks-operation: delay: 0 dispatcher: FALLBACK components: securitySchemes: oauth2: type: oauth2 description: >- Intuit uses OAuth 2.0 for authorization. Apps must be registered on the Intuit Developer portal to obtain client credentials. Access tokens have a 60-minute lifetime and can be refreshed using refresh tokens (100-day lifetime). flows: authorizationCode: authorizationUrl: https://appcenter.intuit.com/connect/oauth2 tokenUrl: https://oauth.platform.intuit.com/oauth2/v1/tokens/bearer refreshUrl: https://oauth.platform.intuit.com/oauth2/v1/tokens/bearer scopes: com.intuit.quickbooks.accounting: Access to QuickBooks Online Accounting API parameters: minorVersion: name: minorversion in: query description: >- The minor version of the API to use. Minor versions introduce new fields and behaviors without breaking existing integrations. If omitted, the base version behavior is used. schema: type: integer minimum: 1 maximum: 75 example: 75 invoiceId: name: invoiceId in: path required: true description: The unique identifier for the invoice schema: type: string customerId: name: customerId in: path required: true description: The unique identifier for the customer schema: type: string itemId: name: itemId in: path required: true description: The unique identifier for the item schema: type: string paymentId: name: paymentId in: path required: true description: The unique identifier for the payment schema: type: string schemas: ReferenceType: type: object description: >- A reference type used throughout the API to link entities. Contains the ID value and optionally the display name of the referenced entity. properties: value: type: string description: The ID of the referenced entity example: example_value name: type: string description: An identifying name for the referenced entity example: Example Title required: - value PhysicalAddress: type: object description: Physical (mailing) address properties: Id: type: string description: Unique identifier for the address example: abc123 Line1: type: string description: First line of the street address maxLength: 500 example: example_value Line2: type: string description: Second line of the street address maxLength: 500 example: example_value Line3: type: string description: Third line of the street address maxLength: 500 example: example_value Line4: type: string description: Fourth line of the street address maxLength: 500 example: example_value Line5: type: string description: Fifth line of the street address maxLength: 500 example: example_value City: type: string description: City name maxLength: 255 example: example_value CountrySubDivisionCode: type: string description: Region or state within a country (e.g., state, province) maxLength: 255 example: example_value PostalCode: type: string description: Postal code maxLength: 30 example: example_value Country: type: string description: Country name or code maxLength: 255 example: example_value Lat: type: string description: Latitude coordinate example: example_value Long: type: string description: Longitude coordinate example: example_value EmailAddress: type: object description: Email address properties: Address: type: string format: email description: Email address string maxLength: 100 example: example_value TelephoneNumber: type: object description: Telephone number properties: FreeFormNumber: type: string description: Telephone number in free-form format maxLength: 30 example: example_value MetaData: type: object description: Metadata about when the entity was created and last updated properties: CreateTime: type: string format: date-time description: Time the entity was created example: '2026-01-15T10:30:00Z' LastUpdatedTime: type: string format: date-time description: Time the entity was last updated example: '2026-01-15T10:30:00Z' LinkedTxn: type: object description: >- A reference to a linked transaction such as an invoice, payment, or credit memo properties: TxnId: type: string description: Transaction ID of the related transaction example: '500123' TxnType: type: string description: The type of the linked transaction enum: - Invoice - Payment - CreditMemo - Estimate - SalesReceipt - JournalEntry - Expense - StatementCharge - ReimburseCharge example: Invoice required: - TxnId - TxnType SalesItemLineDetail: type: object description: Detail for a sales item line properties: ItemRef: $ref: "#/components/schemas/ReferenceType" ClassRef: $ref: "#/components/schemas/ReferenceType" UnitPrice: type: number description: Unit price of the item example: 42.5 RatePercent: type: number description: The discount rate as a percentage (for discount lines) example: 42.5 Qty: type: number description: Number of items for the line example: 42.5 ItemAccountRef: $ref: "#/components/schemas/ReferenceType" TaxCodeRef: $ref: "#/components/schemas/ReferenceType" ServiceDate: type: string format: date description: Date the service was performed example: '2026-01-15' DiscountAmt: type: number description: Discount amount applied to the line example: 42.5 DiscountRate: type: number description: Discount rate as a percentage example: 42.5 InvoiceLine: type: object description: A line item on an invoice properties: Id: type: string description: The unique identifier for the line item example: abc123 LineNum: type: integer description: Line number within the transaction example: 10 Description: type: string description: Free-form text description of the line item maxLength: 4000 example: A sample description. Amount: type: number description: The total amount for the line item example: 42.5 DetailType: type: string description: Specifies the type of line detail enum: - SalesItemLineDetail - GroupLineDetail - DescriptionOnly - DiscountLineDetail - SubTotalLineDetail example: SalesItemLineDetail SalesItemLineDetail: $ref: "#/components/schemas/SalesItemLineDetail" LinkedTxn: type: array items: $ref: "#/components/schemas/LinkedTxn" example: [] required: - Amount - DetailType TxnTaxDetail: type: object description: Tax details for a transaction properties: TxnTaxCodeRef: $ref: "#/components/schemas/ReferenceType" TotalTax: type: number description: Total tax calculated for the transaction example: 42.5 TaxLine: type: array items: type: object properties: Amount: type: number description: Tax amount for this tax line DetailType: type: string enum: - TaxLineDetail TaxLineDetail: type: object properties: TaxRateRef: $ref: "#/components/schemas/ReferenceType" PercentBased: type: boolean TaxPercent: type: number NetAmountTaxable: type: number example: [] CustomField: type: object description: Custom field defined for the entity properties: DefinitionId: type: string description: Unique identifier of the custom field definition example: '500123' Name: type: string description: Name of the custom field example: Example Title Type: type: string description: Data type of the custom field enum: - StringType - BooleanType - NumberType - DateType example: StringType StringValue: type: string description: Value when Type is StringType example: example_value Invoice: type: object description: >- An Invoice represents a sales form where the customer pays for a product or service later. It creates an accounts receivable transaction. properties: Id: type: string description: Unique identifier for the invoice (assigned by QuickBooks) readOnly: true example: abc123 SyncToken: type: string description: >- Version number of the entity, used for optimistic locking. Required for updates. example: example_value MetaData: $ref: "#/components/schemas/MetaData" readOnly: true DocNumber: type: string description: >- Reference number for the transaction. If not provided, QuickBooks auto-generates one. maxLength: 21 example: example_value TxnDate: type: string format: date description: The date of the transaction. Defaults to the current date. example: '2026-01-15' DueDate: type: string format: date description: Date when the payment of the transaction is due example: '2026-01-15' PrivateNote: type: string description: A private note that is not displayed to the customer maxLength: 4000 example: example_value CustomerMemo: type: object description: A note to the customer displayed on the invoice properties: value: type: string maxLength: 1000 example: example_value CustomerRef: $ref: "#/components/schemas/ReferenceType" BillAddr: $ref: "#/components/schemas/PhysicalAddress" ShipAddr: $ref: "#/components/schemas/PhysicalAddress" BillEmail: $ref: "#/components/schemas/EmailAddress" Line: type: array description: >- Individual line items of the transaction. At least one line is required. items: $ref: "#/components/schemas/InvoiceLine" minItems: 1 example: [] TxnTaxDetail: $ref: "#/components/schemas/TxnTaxDetail" TotalAmt: type: number description: Total amount of the transaction including tax readOnly: true example: 42.5 Balance: type: number description: >- The balance remaining on the invoice. A value of 0 indicates the invoice is fully paid. readOnly: true example: 42.5 Deposit: type: number description: Deposit amount applied to the invoice example: 42.5 DepositToAccountRef: $ref: "#/components/schemas/ReferenceType" SalesTermRef: $ref: "#/components/schemas/ReferenceType" PaymentMethodRef: $ref: "#/components/schemas/ReferenceType" CurrencyRef: $ref: "#/components/schemas/ReferenceType" ExchangeRate: type: number description: Currency exchange rate (multicurrency enabled companies) example: 42.5 ShipDate: type: string format: date description: Date for delivery of goods or services example: '2026-01-15' ShipMethodRef: $ref: "#/components/schemas/ReferenceType" TrackingNum: type: string description: Shipping tracking number example: example_value ApplyTaxAfterDiscount: type: boolean description: Whether to apply tax after discount example: true PrintStatus: type: string description: Printing status of the invoice enum: - NotSet - NeedToPrint - PrintComplete example: NotSet EmailStatus: type: string description: Email delivery status of the invoice enum: - NotSet - NeedToSend - EmailSent example: NotSet GlobalTaxCalculation: type: string description: Method in which tax is applied enum: - TaxExcluded - TaxInclusive - NotApplicable example: TaxExcluded AllowOnlinePayment: type: boolean description: Whether online payment is allowed example: true AllowOnlineCreditCardPayment: type: boolean description: Whether online credit card payment is allowed example: true AllowOnlineACHPayment: type: boolean description: Whether online ACH (bank) payment is allowed example: true CustomField: type: array items: $ref: "#/components/schemas/CustomField" maxItems: 3 example: [] LinkedTxn: type: array items: $ref: "#/components/schemas/LinkedTxn" example: [] domain: type: string description: Domain (e.g., QBO) readOnly: true example: example_value sparse: type: boolean description: Whether this is a sparse (partial) representation example: true required: - CustomerRef - Line InvoiceResponse: type: object properties: Invoice: $ref: "#/components/schemas/Invoice" time: type: string format: date-time description: Timestamp of the response example: '2026-01-15T10:30:00Z' Customer: type: object description: >- A Customer represents a consumer of the service or product that the business offers. Customers can be organized as sub-customers (jobs) within a parent customer hierarchy. properties: Id: type: string description: Unique identifier for the customer readOnly: true example: abc123 SyncToken: type: string description: Version number for optimistic locking example: example_value MetaData: $ref: "#/components/schemas/MetaData" readOnly: true Title: type: string description: Title of the person (e.g., Mr., Mrs., Ms.) maxLength: 16 example: Example Title GivenName: type: string description: Given (first) name of the customer maxLength: 100 example: example_value MiddleName: type: string description: Middle name of the customer maxLength: 100 example: example_value FamilyName: type: string description: Family (last) name of the customer maxLength: 100 example: example_value Suffix: type: string description: Suffix of the person (e.g., Jr., Sr., III) maxLength: 16 example: example_value DisplayName: type: string description: >- The name displayed to identify the customer. Must be unique across Customer, Employee, and Vendor objects. maxLength: 500 example: example_value CompanyName: type: string description: The name of the company associated with the customer maxLength: 500 example: example_value PrintOnCheckName: type: string description: Name of the customer as printed on a check maxLength: 110 example: example_value Active: type: boolean description: Whether the customer is currently active default: true example: true Taxable: type: boolean description: Whether the customer is taxable example: true PrimaryEmailAddr: $ref: "#/components/schemas/EmailAddress" PrimaryPhone: $ref: "#/components/schemas/TelephoneNumber" Mobile: $ref: "#/components/schemas/TelephoneNumber" Fax: $ref: "#/components/schemas/TelephoneNumber" AlternatePhone: $ref: "#/components/schemas/TelephoneNumber" BillAddr: $ref: "#/components/schemas/PhysicalAddress" ShipAddr: $ref: "#/components/schemas/PhysicalAddress" Notes: type: string description: Free-form text about the customer maxLength: 2000 example: example_value Job: type: boolean description: Whether this customer is a sub-customer (job) example: true ParentRef: $ref: "#/components/schemas/ReferenceType" Level: type: integer description: Depth level in the customer hierarchy (0 = top) readOnly: true example: 10 FullyQualifiedName: type: string description: >- Fully qualified name of the entity, including parent names separated by colons readOnly: true example: example_value CurrencyRef: $ref: "#/components/schemas/ReferenceType" PreferredDeliveryMethod: type: string description: Preferred delivery method for communications enum: - Print - Email - None example: Print Balance: type: number description: Open balance amount for the customer readOnly: true example: 42.5 BalanceWithJobs: type: number description: >- Open balance amount including balances of sub-customers (jobs) readOnly: true example: 42.5 SalesTermRef: $ref: "#/components/schemas/ReferenceType" PaymentMethodRef: $ref: "#/components/schemas/ReferenceType" TaxExemptionReasonId: type: string description: Tax exemption reason ID example: '500123' WebAddr: type: object properties: URI: type: string format: uri description: Website address example: example_value domain: type: string readOnly: true example: example_value sparse: type: boolean example: true required: - DisplayName CustomerResponse: type: object properties: Customer: $ref: "#/components/schemas/Customer" time: type: string format: date-time example: '2026-01-15T10:30:00Z' Item: type: object description: >- An Item represents a product or service that a company buys, sells, or re-sells. Items are used in line items on invoices, sales receipts, bills, and other transactions. properties: Id: type: string description: Unique identifier for the item readOnly: true example: abc123 SyncToken: type: string description: Version number for optimistic locking example: example_value MetaData: $ref: "#/components/schemas/MetaData" readOnly: true Name: type: string description: Name of the item. Must be unique within the same type. maxLength: 100 example: Example Title Description: type: string description: Description of the item used in sales transactions maxLength: 4000 example: A sample description. PurchaseDesc: type: string description: Description of the item used in purchase transactions maxLength: 4000 example: example_value Active: type: boolean description: Whether the item is currently active default: true example: true FullyQualifiedName: type: string description: Fully qualified name of the item readOnly: true example: example_value Taxable: type: boolean description: Whether sales of this item are taxable example: true SalesTaxIncluded: type: boolean description: Whether the sales tax is included in the item amount example: true UnitPrice: type: number description: Sales price for this item example: 42.5 Type: type: string description: Classification of the item enum: - Inventory - NonInventory - Service - Group - Category - Bundle example: Inventory PurchaseCost: type: number description: Purchase cost of the item example: 42.5 QtyOnHand: type: number description: Current quantity on hand (inventory items only) example: 42.5 InvStartDate: type: string format: date description: Date of opening balance for inventory items example: '2026-01-15' TrackQtyOnHand: type: boolean description: Whether quantity on hand is tracked example: true Sku: type: string description: Stock keeping unit identifier maxLength: 100 example: example_value IncomeAccountRef: $ref: "#/components/schemas/ReferenceType" ExpenseAccountRef: $ref: "#/components/schemas/ReferenceType" AssetAccountRef: $ref: "#/components/schemas/ReferenceType" ParentRef: $ref: "#/components/schemas/ReferenceType" SubItem: type: boolean description: Whether this is a sub-item example: true Level: type: integer description: Depth level in the item hierarchy readOnly: true example: 10 SalesTaxCodeRef: $ref: "#/components/schemas/ReferenceType" PurchaseTaxCodeRef: $ref: "#/components/schemas/ReferenceType" ClassRef: $ref: "#/components/schemas/ReferenceType" AbatementRate: type: number readOnly: true example: 42.5 ReverseChargeRate: type: number readOnly: true example: 42.5 domain: type: string readOnly: true example: example_value sparse: type: boolean example: true required: - Name - Type ItemResponse: type: object properties: Item: $ref: "#/components/schemas/Item" time: type: string format: date-time example: '2026-01-15T10:30:00Z' PaymentLine: type: object description: A line item on a payment showing how it is applied properties: Amount: type: number description: Amount to apply from this payment example: 42.5 LinkedTxn: type: array items: $ref: "#/components/schemas/LinkedTxn" example: [] required: - Amount - LinkedTxn Payment: type: object description: >- A Payment records a payment received from a customer. Payments can be applied to one or more outstanding invoices, or left as unapplied credit. properties: Id: type: string description: Unique identifier for the payment readOnly: true example: abc123 SyncToken: type: string description: Version number for optimistic locking example: example_value MetaData: $ref: "#/components/schemas/MetaData" readOnly: true TxnDate: type: string format: date description: The date of the payment transaction example: '2026-01-15' TotalAmt: type: number description: Total amount of the payment example: 42.5 CustomerRef: $ref: "#/components/schemas/ReferenceType" DepositToAccountRef: $ref: "#/components/schemas/ReferenceType" PaymentMethodRef: $ref: "#/components/schemas/ReferenceType" PaymentRefNum: type: string description: Reference number for the payment (e.g., check number) maxLength: 21 example: example_value CurrencyRef: $ref: "#/components/schemas/ReferenceType" ExchangeRate: type: number description: Currency exchange rate example: 42.5 Line: type: array description: >- Lines indicating which invoices or credit memos this payment is applied against items: $ref: "#/components/schemas/PaymentLine" example: [] PrivateNote: type: string description: Private note for internal use maxLength: 4000 example: example_value UnappliedAmt: type: number description: Amount not yet applied to invoices readOnly: true example: 42.5 ProcessPayment: type: boolean description: >- Whether to process the payment through the Intuit payment gateway example: true TxnSource: type: string description: Source of the transaction readOnly: true example: example_value domain: type: string readOnly: true example: example_value sparse: type: boolean example: true required: - CustomerRef - TotalAmt PaymentResponse: type: object properties: Payment: $ref: "#/components/schemas/Payment" time: type: string format: date-time example: '2026-01-15T10:30:00Z' QueryResponse: type: object description: >- Response wrapper for query operations. Contains the array of matching entities along with pagination metadata. properties: QueryResponse: type: object properties: startPosition: type: integer description: Starting position of the results maxResults: type: integer description: Maximum number of results returned totalCount: type: integer description: Total count of matching entities Invoice: type: array items: $ref: "#/components/schemas/Invoice" Customer: type: array items: $ref: "#/components/schemas/Customer" Item: type: array items: $ref: "#/components/schemas/Item" Payment: type: array items: $ref: "#/components/schemas/Payment" example: example_value time: type: string format: date-time example: '2026-01-15T10:30:00Z' Error: type: object description: Error response from the API properties: Fault: type: object properties: Error: type: array items: type: object properties: Message: type: string description: A short human-readable summary of the error Detail: type: string description: Detailed description of the error code: type: string description: Intuit-specific error code element: type: string description: The element that caused the error type: type: string description: The type of fault enum: - ValidationFault - SystemFault - AuthenticationFault - AuthorizationFault example: example_value time: type: string format: date-time example: '2026-01-15T10:30:00Z' responses: BadRequest: description: >- The request was invalid. This can occur due to missing required fields, validation errors, or malformed request body. content: application/json: schema: $ref: "#/components/schemas/Error" Unauthorized: description: >- Authentication failed. The OAuth 2.0 access token is missing, expired, or invalid. content: application/json: schema: $ref: "#/components/schemas/Error" Forbidden: description: >- The authenticated user does not have permission to perform this operation on the specified resource. content: application/json: schema: $ref: "#/components/schemas/Error" NotFound: description: The requested resource was not found content: application/json: schema: $ref: "#/components/schemas/Error" InternalError: description: An internal error occurred on the server content: application/json: schema: $ref: "#/components/schemas/Error"