Link Search Menu Expand Document

Project

The APIs related to the Project entity allow you to manage and track projects. The Project API provides support for create, read, update, and delete operations. You can also add transactions to your project by configuring the ID for the project while creating the transaction.

This page outlines -

  • The Create/Read operations for Projects.
    • The Create operation for Invoice (sales transaction) with Projects.

Currently, we have added support to a few transactions so that you can configure a project ID. These include a few transactions like -

  • Supported sales Transactions for your customers -
    • Estimate
    • Project Cost Estimate
    • Invoice
    • Invoice payment
    • Sales Receipt
    • Refund Receipt
    • Credit Memo
  • Supported purchase transactions for your vendors -
    • Bill
    • Expense
    • Purchase order

Integration Diagram

Operations for Project entity

Scopes

  • project-management.project : Allows access to read and write projects data
  • com.intuit.quickbooks.accounting: For V3 Accounting REST API access

Endpoints

  • GraphQL API: https://qb.api.intuit.com/graphql
  • V3 Accounting REST API: https://quickbooks.api.intuit.com/v3/company//entityname/

Required headers

  • Content-type: application/json
  • Authorization: Bearer access_token Note: Use tokens generated using scopes mentioned above in the authorization header for all other calls shown here.

Use Cases

Pre-check: Query the QuickBooks company preferences by using V3 Accounting REST Preferences API and check for Preferences->OtherPrefs->NameValue> to identify if projects are supported for the company. Check if NameValue ProjectsEnabled is true.

Use Case 1: Create Project

Step 1: Use V3 Accounting Rest API to query customer and get the customer->id value.

Refer to the V3 Customer Query

Step 2: Use GraphQL API to create a Project for the above customer.

Refer to the Create Project (Mutation)

Use Case 2: Read Project

Read project by id / for a given date range using required filters

Refer to the Read Project (Query)

Use Case 3: Add transaction to a Project

Step 1: Create or read project

Refer to the sample Create / Read project:

Step 2: Create transactions using V3 accounting REST API and send ProjectRef with values from use-case 1 or 2 above.

Refer to the V3 developer docs how to reference Project to a transaction.

Sample Invoice creation using “ProjectRef” (from minorVersion=69):

{
    "TxnDate": "2024-06-26",
    "CurrencyRef": {
        "value": "USD",
        "name": "United States Dollar"
    },
    "LinkedTxn": [],
    "Line": [
        {
            "Id": "1",
            "LineNum": 1,
            "Description": "Test1",
            "Amount": 50.99,
            "DetailType": "SalesItemLineDetail",
            "SalesItemLineDetail": {
                "ItemRef": {
                    "value": "2",
                    "name": "Hours"
                },
                "UnitPrice": 50.99,
                "Qty": 1,
                "ItemAccountRef": {
                    "value": "5",
                    "name": "Sales"
                },
                "TaxCodeRef": {
                    "value": "NON"
                }
            }
        },
        {
            "Amount": 50.99,
            "DetailType": "SubTotalLineDetail",
            "SubTotalLineDetail": {}
        }
    ],
    "Tag": [],
    "ProjectRef": {
        "value": "393363026"
    },
    "CustomerRef": {
        "value": "1",
        "name": "Test Customer"
    },
    "BillAddr": {
        "Id": "4",
        "Lat": "INVALID",
        "Long": "INVALID"
    },
    "FreeFormAddress": false,
    "SalesTermRef": {
        "value": "3",
        "name": "Net 30"
    },
    "TotalAmt": 50.99,
    "Balance": 50.99
}

Response:

{
    "Invoice": {
       
        "Id": "5",
        "SyncToken": "0",
        "MetaData": {
            "CreateTime": "2024-06-26T09:20:16-07:00",
            "LastModifiedByRef": {
                "value": "9341452110907680"
            },
            "LastUpdatedTime": "2024-06-26T09:20:16-07:00"
        },
        "TxnDate": "2024-06-26",
        "CurrencyRef": {
            "value": "USD",
            "name": "United States Dollar"
        },
        "LinkedTxn": [],
        "Line": [
            {
                "Id": "1",
                "LineNum": 1,
                "Description": "Test1",
                "Amount": 50.99,
                "DetailType": "SalesItemLineDetail",
                "SalesItemLineDetail": {
                    "ItemRef": {
                        "value": "2",
                        "name": "Hours"
                    },
                    "UnitPrice": 50.99,
                    "Qty": 1,
                    "ItemAccountRef": {
                        "value": "5",
                        "name": "Sales"
                    },
                    "TaxCodeRef": {
                        "value": "NON"
                    }
                }
            },
            {
                "Amount": 50.99,
                "DetailType": "SubTotalLineDetail",
                "SubTotalLineDetail": {}
            }
        ],
        "ProjectRef": {
            "value": "393363026"
        },
        "CustomerRef": {
            "value": "1",
            "name": "Test Customer"
        },
        "BillAddr": {
            "Id": "2"
        },
        "ShipAddr": {
            "Id": "2"
        },
        "FreeFormAddress": true,
        "ShipFromAddr": {
            "Id": "5",
            "Line1": "2600 Marine Way",
            "Line2": "Mountain view, CA  94043 US"
        },
        "SalesTermRef": {
            "value": "3",
            "name": "Net 30"
        },
        "DueDate": "2024-07-26",
        "TotalAmt": 50.99,
        "Balance": 50.99
    },
    "time": "2024-06-26T09:20:16.310-07:00"
}

© 2024 Intuit Inc. All rights reserved. Intuit and QuickBooks are registered trademarks of Intuit Inc. Terms and conditions, features, support, pricing, and service options subject to change without notice.