diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..043fa83 --- /dev/null +++ b/.gitignore @@ -0,0 +1,9 @@ +*.gem +.bundle +.ruby-version +.jekyll-cache +.sass-cache +_site +Gemfile.lock +node_modules +.DS_Store diff --git a/404.html b/404.html new file mode 100644 index 0000000..5fde966 --- /dev/null +++ b/404.html @@ -0,0 +1,11 @@ +--- +layout: default +title: 404 +permalink: /404 +nav_exclude: true +search_exclude: true +--- + +

Page not found

+ +

The page you requested could not be found. Try using the navigation {% if site.search_enabled != false %}or search {% endif %}to find what you're looking for or go to this site's home page.

diff --git a/README.md b/README.md index 7edf4da..0fd454a 100644 --- a/README.md +++ b/README.md @@ -1 +1,6 @@ -# intuit-api \ No newline at end of file +# Intuit API Documentation + +API Documentation for Intuit's third-party APIs. This site is currently **in alpha** and invite-only for partners! + +Documentation can be viewed at: +https://intuitdeveloper.github.io/intuit-api/ diff --git a/_config.yml b/_config.yml new file mode 100644 index 0000000..ddc42f1 --- /dev/null +++ b/_config.yml @@ -0,0 +1,29 @@ +# theme: jekyll-theme-cayman +# remote_theme: pmarsceill/just-the-docs +# For GitHub: +remote_theme: bcole/just-the-docs +# For local: +# theme: "just-the-docs" + +title: Intuit API Docs +description: Documentation for Intuit's APIs + +aux_links: + "These capabilities are part of a closed alpha program and are not publicly available": + - "//help.developer.intuit.com" + +# Makes Aux links open in a new tab. Default is false +aux_links_new_tab: true + +permalink: pretty + +gh_edit_link: true +gh_edit_link_text: "Edit this page on GitHub." +gh_edit_repository: "https://github.com/IntuitDeveloper/intuit-api" +gh_edit_branch: "gh-pages" +gh_edit_view_mode: "tree" # "tree" or "edit" if you want the user to jump into the editor immediately + +back_to_top: false +back_to_top_text: "Back to top" + +footer_content: "© 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." diff --git a/assets/files/HowToConnectToPFTS.pdf b/assets/files/HowToConnectToPFTS.pdf new file mode 100644 index 0000000..e373552 Binary files /dev/null and b/assets/files/HowToConnectToPFTS.pdf differ diff --git a/assets/files/IntuitAPI -PostmanCollections.json b/assets/files/IntuitAPI -PostmanCollections.json new file mode 100644 index 0000000..6cb180e --- /dev/null +++ b/assets/files/IntuitAPI -PostmanCollections.json @@ -0,0 +1,3309 @@ +{ + "info": { + "_postman_id": "10b3e97e-b347-408a-8d39-95a31d4c7d51", + "name": "Alpha API -Collections_PRD", + "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json", + "_exporter_id": "35091101" + }, + "item": [ + { + "name": "EmployeeCompensation", + "item": [ + { + "name": "queryEmployeeCompensation", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "query getEmployeeCompensations($filter: Payroll_EmployeeCompensationsFilter!) {\n payrollEmployeeCompensations(filter: $filter ){\n \tedges {\n \tnode {\n \t id\n active\n \t employerCompensation {\n id\n name\n type {\n key\n description\n value\n }\n \t }\n \t }\n }\n }\n }", + "variables": "{\n \"filter\": {\n \"employeeId\": \"1\", \n \"active\": true\n }\n }\n " + } + }, + "url": { + "raw": "https://qb.api.intuit.com/graphql", + "protocol": "https", + "host": [ + "qb", + "api", + "intuit", + "com" + ], + "path": [ + "graphql" + ] + } + }, + "response": [] + } + ] + }, + { + "name": "CustomField", + "item": [ + { + "name": "CF- QBOV3Transactions", + "item": [ + { + "name": "Invoice-Create", + "request": { + "method": "POST", + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "", + "value": "", + "disabled": true + }, + { + "key": "", + "value": "", + "disabled": true + }, + { + "key": "", + "value": "", + "disabled": true + }, + { + "key": "", + "value": "", + "disabled": true + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"TxnDate\": \"2024-07-24\",\n \"Line\": [\n {\n \"Amount\": 100.00,\n \"DetailType\": \"SalesItemLineDetail\",\n \"SalesItemLineDetail\": {\n \"ItemRef\": {\n \"value\": \"1\",\n \"name\": \"Services\"\n }\n }\n }\n ],\n \"CustomerRef\": {\n \"value\": \"2\"\n },\n \"CustomField\": [\n {\n \"DefinitionId\": \"507804\",\n \"StringValue\": \"TestValue\"\n }\n ]\n}" + }, + "url": { + "raw": "https://{{baseurl}}/v3/company/{{companyId}}/invoice?minorversion={{minorversion}}&include=enhancedAllCustomFields", + "protocol": "https", + "host": [ + "{{baseurl}}" + ], + "path": [ + "v3", + "company", + "{{companyId}}", + "invoice" + ], + "query": [ + { + "key": "minorversion", + "value": "{{minorversion}}" + }, + { + "key": "include", + "value": "enhancedAllCustomFields" + } + ] + }, + "description": "Create an invoice object\nMethod : POST\n" + }, + "response": [] + }, + { + "name": "Invoice-ReadById", + "request": { + "method": "GET", + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "", + "value": "", + "disabled": true + }, + { + "key": "", + "value": "", + "disabled": true + }, + { + "key": "", + "value": "", + "disabled": true + } + ], + "url": { + "raw": "https://{{baseurl}}/v3/company/{{companyId}}/invoice/1?minorversion={{minorversion}}", + "protocol": "https", + "host": [ + "{{baseurl}}" + ], + "path": [ + "v3", + "company", + "{{companyId}}", + "invoice", + "1" + ], + "query": [ + { + "key": "minorversion", + "value": "{{minorversion}}" + } + ] + }, + "description": "Read an invoice object by Id\nMethod : POST\n" + }, + "response": [] + } + ], + "event": [ + { + "listen": "prerequest", + "script": { + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ] + } + }, + { + "listen": "test", + "script": { + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ] + } + } + ] + }, + { + "name": "Create Custom Field Definition", + "request": { + "method": "POST", + "header": [ + { + "key": "", + "value": "", + "disabled": true + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "graphql", + "graphql": { + "query": "mutation AppFoundationsCreateCustomFieldDefinition($input: AppFoundations_CustomFieldDefinitionCreateInput!) {\n appFoundationsCreateCustomFieldDefinition(input: $input) {\n label\n active\n associations {\n associatedEntity\n active\n validationOptions {\n required\n }\n allowedOperations\n associationCondition\n subAssociations {\n associatedEntity\n active\n allowedOperations\n }\n }\n dataType\n dropDownOptions {\n value\n active\n order\n }\n }\n}", + "variables": "{\n \"input\": {\n \"label\": \"cf-02\",\n \"associations\": [\n {\n \"validationOptions\": {\n \"required\": false \n },\n \"associatedEntity\": \"/transactions/Transaction\" ,\n \"active\": true,\n \"allowedOperations\": [],\n \"associationCondition\": \"INCLUDED\",\n \"subAssociations\": [\n {\n \"associatedEntity\": \"SALE_INVOICE\",\n \"active\": true,\n \"allowedOperations\": []\n }\n ]\n }\n ],\n \"dataType\": \"STRING\",\n \"active\": true\n }\n}" + } + }, + "url": { + "raw": "https://qb.api.intuit.com/graphql", + "protocol": "https", + "host": [ + "qb", + "api", + "intuit", + "com" + ], + "path": [ + "graphql" + ] + } + }, + "response": [ + { + "name": "Create Custom Field Definition", + "originalRequest": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "graphql" + }, + "url": { + "raw": "https://qb.api.intuit.com/graphql", + "protocol": "https", + "host": [ + "qb", + "api", + "intuit", + "com" + ], + "path": [ + "graphql" + ] + } + }, + "status": "OK", + "code": 200, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Date", + "value": "Thu, 27 Jun 2024 03:02:50 GMT" + }, + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Transfer-Encoding", + "value": "chunked" + }, + { + "key": "Connection", + "value": "keep-alive" + }, + { + "key": "x-spanid", + "value": "a36fac13-93bb-f0a2-ecec-50d3f12466ae" + }, + { + "key": "x-amzn-trace-id", + "value": "Root=1-667cd658-66e60a2f4c7e147608e72fa4" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "Vary", + "value": "origin" + }, + { + "key": "Content-Encoding", + "value": "gzip" + }, + { + "key": "x-envoy-upstream-service-time", + "value": "2023" + }, + { + "key": "Server", + "value": "istio-envoy" + }, + { + "key": "x-envoy-decorator-operation", + "value": "swimlane11graphqlorch-desired-service.platformrun-apiorch-swimlane11graphqlorch-usw2-prd.svc.cluster.local:8090/*" + }, + { + "key": "Strict-Transport-Security", + "value": "max-age=31536000" + }, + { + "key": "intuit_tid", + "value": "1-667cd658-66e60a2f4c7e147608e72fa4" + }, + { + "key": "x-request-id", + "value": "1-667cd658-66e60a2f4c7e147608e72fa4" + } + ], + "cookie": [], + "body": "{\n \"data\": {\n \"appFoundationsCreateCustomFieldDefinition\": {\n \"id\": \"udcf_1\",\n \"label\": \"cf-01\",\n \"associations\": [\n {\n \"associatedEntity\": \"/transactions/Transaction\",\n \"active\": true,\n \"validationOptions\": {\n \"required\": false\n },\n \"allowedOperations\": [],\n \"associationCondition\": \"INCLUDED\",\n \"subAssociations\": [\n {\n \"associatedEntity\": \"SALE_INVOICE\",\n \"active\": true,\n \"allowedOperations\": []\n }\n ]\n }\n ],\n \"dataType\": \"STRING\",\n \"dropDownOptions\": [],\n \"active\": true\n }\n }\n}" + }, + { + "name": "Create Custom Field Definition", + "originalRequest": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "graphql" + }, + "url": { + "raw": "https://qb.api.intuit.com/graphql", + "protocol": "https", + "host": [ + "qb", + "api", + "intuit", + "com" + ], + "path": [ + "graphql" + ] + } + }, + "status": "OK", + "code": 200, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Date", + "value": "Thu, 27 Jun 2024 03:15:02 GMT" + }, + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Transfer-Encoding", + "value": "chunked" + }, + { + "key": "Connection", + "value": "keep-alive" + }, + { + "key": "x-spanid", + "value": "fafd9b5f-aa74-7cbe-dfcc-271f6c808a50" + }, + { + "key": "x-amzn-trace-id", + "value": "Root=1-667cd936-2188ead01e1c56f55d4e3035" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "Vary", + "value": "origin" + }, + { + "key": "Content-Encoding", + "value": "gzip" + }, + { + "key": "x-envoy-upstream-service-time", + "value": "687" + }, + { + "key": "Server", + "value": "istio-envoy" + }, + { + "key": "x-envoy-decorator-operation", + "value": "swimlane11graphqlorch-desired-service.platformrun-apiorch-swimlane11graphqlorch-usw2-prd.svc.cluster.local:8090/*" + }, + { + "key": "Strict-Transport-Security", + "value": "max-age=31536000" + }, + { + "key": "intuit_tid", + "value": "1-667cd936-2188ead01e1c56f55d4e3035" + }, + { + "key": "x-request-id", + "value": "1-667cd936-2188ead01e1c56f55d4e3035" + } + ], + "cookie": [], + "body": "{\n \"data\": {\n \"appFoundationsCreateCustomFieldDefinition\": {\n \"id\": \"udcf_2\",\n \"label\": \"cf-02\",\n \"associations\": [\n {\n \"associatedEntity\": \"/transactions/Transaction\",\n \"active\": true,\n \"validationOptions\": {\n \"required\": false\n },\n \"allowedOperations\": [],\n \"associationCondition\": \"INCLUDED\",\n \"subAssociations\": [\n {\n \"associatedEntity\": \"SALE_INVOICE\",\n \"active\": true,\n \"allowedOperations\": []\n }\n ]\n }\n ],\n \"dataType\": \"STRING\",\n \"dropDownOptions\": [],\n \"active\": true\n }\n }\n}" + }, + { + "name": "Create Custom Field Definition", + "originalRequest": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "graphql" + }, + "url": { + "raw": "https://qb.api.intuit.com/graphql", + "protocol": "https", + "host": [ + "qb", + "api", + "intuit", + "com" + ], + "path": [ + "graphql" + ] + } + }, + "status": "OK", + "code": 200, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Date", + "value": "Thu, 27 Jun 2024 16:34:46 GMT" + }, + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Transfer-Encoding", + "value": "chunked" + }, + { + "key": "Connection", + "value": "keep-alive" + }, + { + "key": "x-spanid", + "value": "dd475469-96ad-e906-6c79-7d76f5ad53d4" + }, + { + "key": "x-amzn-trace-id", + "value": "Root=1-667d94a5-1d766a5e51dda39b4542d298" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "Vary", + "value": "origin" + }, + { + "key": "Content-Encoding", + "value": "gzip" + }, + { + "key": "x-envoy-upstream-service-time", + "value": "657" + }, + { + "key": "Server", + "value": "istio-envoy" + }, + { + "key": "x-envoy-decorator-operation", + "value": "swimlane11graphqlorch-desired-service.platformrun-apiorch-swimlane11graphqlorch-usw2-prd.svc.cluster.local:8090/*" + }, + { + "key": "Strict-Transport-Security", + "value": "max-age=31536000" + }, + { + "key": "intuit_tid", + "value": "1-667d94a5-1d766a5e51dda39b4542d298" + }, + { + "key": "x-request-id", + "value": "1-667d94a5-1d766a5e51dda39b4542d298" + } + ], + "cookie": [], + "body": "{\n \"data\": {\n \"appFoundationsCreateCustomFieldDefinition\": {\n \"label\": \"cf-03\",\n \"active\": true,\n \"associations\": [\n {\n \"associatedEntity\": \"/transactions/Transaction\",\n \"active\": true,\n \"validationOptions\": {\n \"required\": false\n },\n \"allowedOperations\": [],\n \"associationCondition\": \"INCLUDED\",\n \"subAssociations\": [\n {\n \"associatedEntity\": \"SALE_INVOICE\",\n \"active\": true,\n \"allowedOperations\": []\n }\n ]\n }\n ],\n \"dataType\": \"STRING\",\n \"dropDownOptions\": []\n }\n }\n}" + } + ] + }, + { + "name": "Create Custom Field Definition with Vendor", + "request": { + "method": "POST", + "header": [ + { + "key": "", + "value": "", + "disabled": true + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "graphql", + "graphql": { + "query": "mutation AppFoundationsCreateCustomFieldDefinition($input: AppFoundations_CustomFieldDefinitionCreateInput!) {\n appFoundationsCreateCustomFieldDefinition(input: $input) {\n id\n label\n associations {\n associatedEntity\n active\n validationOptions {\n required\n }\n allowedOperations\n associationCondition\n subAssociations {\n associatedEntity\n active\n allowedOperations\n }\n }\n dataType\n dropDownOptions {\n id\n value\n active\n order\n }\n active\n }\n}", + "variables": "{\n \"input\": {\n \"label\": \"CF-VendorType\",\n \"associations\": [\n {\n \"validationOptions\": {\n \"required\": false \n },\n \"associatedEntity\": \"/transactions/Transaction\" ,\n \"active\": true,\n \"allowedOperations\": [],\n \"associationCondition\": \"INCLUDED\",\n \"subAssociations\": [\n {\n \"associatedEntity\": \"SALE_INVOICE\",\n \"active\": true,\n \"allowedOperations\": []\n }\n ]\n },\n {\n \"associatedEntity\": \"/network/Contact\",\n \"active\": true,\n \"validationOptions\": {\n \"required\": false\n },\n \"allowedOperations\": [],\n \"associationCondition\": \"INCLUDED\",\n \"subAssociations\": [\n {\n \"associatedEntity\": \"VENDOR\",\n \"active\": true,\n \"allowedOperations\": []\n }\n ]\n } \n ],\n \"dataType\": \"STRING\",\n \"active\": true\n }\n}" + } + }, + "url": { + "raw": "https://qb.api.intuit.com/graphql", + "protocol": "https", + "host": [ + "qb", + "api", + "intuit", + "com" + ], + "path": [ + "graphql" + ] + } + }, + "response": [ + { + "name": "Create Custom Field Definition with Vendor", + "originalRequest": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "graphql" + }, + "url": { + "raw": "https://qb.api.intuit.com/graphql", + "protocol": "https", + "host": [ + "qb", + "api", + "intuit", + "com" + ], + "path": [ + "graphql" + ] + } + }, + "status": "OK", + "code": 200, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Date", + "value": "Thu, 27 Jun 2024 03:24:12 GMT" + }, + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Transfer-Encoding", + "value": "chunked" + }, + { + "key": "Connection", + "value": "keep-alive" + }, + { + "key": "x-spanid", + "value": "edbaa16f-9565-e15f-684b-28de76327a31" + }, + { + "key": "x-amzn-trace-id", + "value": "Root=1-667cdb5a-1e38738d1684766b615d961b" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "Vary", + "value": "origin" + }, + { + "key": "Content-Encoding", + "value": "gzip" + }, + { + "key": "x-envoy-upstream-service-time", + "value": "2559" + }, + { + "key": "Server", + "value": "istio-envoy" + }, + { + "key": "x-envoy-decorator-operation", + "value": "swimlane11graphqlorch-desired-service.platformrun-apiorch-swimlane11graphqlorch-usw2-prd.svc.cluster.local:8090/*" + }, + { + "key": "Strict-Transport-Security", + "value": "max-age=31536000" + }, + { + "key": "intuit_tid", + "value": "1-667cdb5a-1e38738d1684766b615d961b" + }, + { + "key": "x-request-id", + "value": "1-667cdb5a-1e38738d1684766b615d961b" + } + ], + "cookie": [], + "body": "{\n \"data\": {\n \"appFoundationsCreateCustomFieldDefinition\": {\n \"id\": \"udcf_3\",\n \"label\": \"CF-VendorType\",\n \"associations\": [\n {\n \"associatedEntity\": \"/transactions/Transaction\",\n \"active\": true,\n \"validationOptions\": {\n \"required\": false\n },\n \"allowedOperations\": [],\n \"associationCondition\": \"INCLUDED\",\n \"subAssociations\": [\n {\n \"associatedEntity\": \"SALE_INVOICE\",\n \"active\": true,\n \"allowedOperations\": []\n }\n ]\n },\n {\n \"associatedEntity\": \"/network/Contact\",\n \"active\": true,\n \"validationOptions\": {\n \"required\": false\n },\n \"allowedOperations\": [],\n \"associationCondition\": \"INCLUDED\",\n \"subAssociations\": [\n {\n \"associatedEntity\": \"VENDOR\",\n \"active\": true,\n \"allowedOperations\": []\n }\n ]\n }\n ],\n \"dataType\": \"STRING\",\n \"dropDownOptions\": [],\n \"active\": true\n }\n }\n}" + } + ] + }, + { + "name": "Create Custom Field Definition with Customer", + "request": { + "method": "POST", + "header": [ + { + "key": "", + "value": "", + "disabled": true + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "graphql", + "graphql": { + "query": "mutation AppFoundationsCreateCustomFieldDefinition($input: AppFoundations_CustomFieldDefinitionCreateInput!) {\n appFoundationsCreateCustomFieldDefinition(input: $input) {\n label\n active\n associations {\n associatedEntity\n active\n validationOptions {\n required\n }\n allowedOperations\n associationCondition\n subAssociations {\n associatedEntity\n active\n allowedOperations\n }\n }\n dataType\n dropDownOptions {\n value\n active\n order\n }\n }\n}", + "variables": "{\n \"input\": {\n \"label\": \"CF-customerType2\",\n \"associations\": [\n {\n \"validationOptions\": {\n \"required\": false \n },\n \"associatedEntity\": \"/transactions/Transaction\" ,\n \"active\": true,\n \"allowedOperations\": [],\n \"associationCondition\": \"INCLUDED\",\n \"subAssociations\": [\n {\n \"associatedEntity\": \"SALE_INVOICE\",\n \"active\": true,\n \"allowedOperations\": []\n }\n ]\n },\n {\n \"associatedEntity\": \"/network/Contact\",\n \"active\": true,\n \"validationOptions\": {\n \"required\": false\n },\n \"allowedOperations\": [],\n \"associationCondition\": \"INCLUDED\",\n \"subAssociations\": [\n {\n \"associatedEntity\": \"CUSTOMER\",\n \"active\": true,\n \"allowedOperations\": []\n }\n ]\n } \n ],\n \"dataType\": \"STRING\",\n \"active\": true\n }\n}" + } + }, + "url": { + "raw": "https://qb.api.intuit.com/graphql", + "protocol": "https", + "host": [ + "qb", + "api", + "intuit", + "com" + ], + "path": [ + "graphql" + ] + } + }, + "response": [ + { + "name": "Create Custom Field Definition with Customer", + "originalRequest": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "graphql" + }, + "url": { + "raw": "https://qb.api.intuit.com/graphql", + "protocol": "https", + "host": [ + "qb", + "api", + "intuit", + "com" + ], + "path": [ + "graphql" + ] + } + }, + "status": "OK", + "code": 200, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Date", + "value": "Thu, 27 Jun 2024 03:25:20 GMT" + }, + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Transfer-Encoding", + "value": "chunked" + }, + { + "key": "Connection", + "value": "keep-alive" + }, + { + "key": "x-spanid", + "value": "82dee6dc-2d2d-7134-5592-b6913889fae1" + }, + { + "key": "x-amzn-trace-id", + "value": "Root=1-667cdb9e-334864930e35af475e68f876" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "Vary", + "value": "origin" + }, + { + "key": "Content-Encoding", + "value": "gzip" + }, + { + "key": "x-envoy-upstream-service-time", + "value": "1806" + }, + { + "key": "Server", + "value": "istio-envoy" + }, + { + "key": "x-envoy-decorator-operation", + "value": "swimlane11graphqlorch-desired-service.platformrun-apiorch-swimlane11graphqlorch-usw2-prd.svc.cluster.local:8090/*" + }, + { + "key": "Strict-Transport-Security", + "value": "max-age=31536000" + }, + { + "key": "intuit_tid", + "value": "1-667cdb9e-334864930e35af475e68f876" + }, + { + "key": "x-request-id", + "value": "1-667cdb9e-334864930e35af475e68f876" + } + ], + "cookie": [], + "body": "{\n \"data\": {\n \"appFoundationsCreateCustomFieldDefinition\": {\n \"id\": \"udcf_4\",\n \"label\": \"CF-customerType\",\n \"associations\": [\n {\n \"associatedEntity\": \"/transactions/Transaction\",\n \"active\": true,\n \"validationOptions\": {\n \"required\": false\n },\n \"allowedOperations\": [],\n \"associationCondition\": \"INCLUDED\",\n \"subAssociations\": [\n {\n \"associatedEntity\": \"SALE_INVOICE\",\n \"active\": true,\n \"allowedOperations\": []\n }\n ]\n },\n {\n \"associatedEntity\": \"/network/Contact\",\n \"active\": true,\n \"validationOptions\": {\n \"required\": false\n },\n \"allowedOperations\": [],\n \"associationCondition\": \"INCLUDED\",\n \"subAssociations\": [\n {\n \"associatedEntity\": \"CUSTOMER\",\n \"active\": true,\n \"allowedOperations\": []\n }\n ]\n }\n ],\n \"dataType\": \"STRING\",\n \"dropDownOptions\": [],\n \"active\": true\n }\n }\n}" + }, + { + "name": "Create Custom Field Definition with Customer", + "originalRequest": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "graphql" + }, + "url": { + "raw": "https://qb.api.intuit.com/graphql", + "protocol": "https", + "host": [ + "qb", + "api", + "intuit", + "com" + ], + "path": [ + "graphql" + ] + } + }, + "status": "OK", + "code": 200, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Date", + "value": "Thu, 27 Jun 2024 16:57:44 GMT" + }, + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Transfer-Encoding", + "value": "chunked" + }, + { + "key": "Connection", + "value": "keep-alive" + }, + { + "key": "x-spanid", + "value": "162dc839-f0f1-45fc-04de-81f302fb07ec" + }, + { + "key": "x-amzn-trace-id", + "value": "Root=1-667d9a06-12eb5bac1ce98b216ba848cf" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "Vary", + "value": "origin" + }, + { + "key": "Content-Encoding", + "value": "gzip" + }, + { + "key": "x-envoy-upstream-service-time", + "value": "1325" + }, + { + "key": "Server", + "value": "istio-envoy" + }, + { + "key": "x-envoy-decorator-operation", + "value": "swimlane11graphqlorch-desired-service.platformrun-apiorch-swimlane11graphqlorch-usw2-prd.svc.cluster.local:8090/*" + }, + { + "key": "Strict-Transport-Security", + "value": "max-age=31536000" + }, + { + "key": "intuit_tid", + "value": "1-667d9a06-12eb5bac1ce98b216ba848cf" + }, + { + "key": "x-request-id", + "value": "1-667d9a06-12eb5bac1ce98b216ba848cf" + } + ], + "cookie": [], + "body": "{\n \"data\": {\n \"appFoundationsCreateCustomFieldDefinition\": {\n \"label\": \"CF-customerType2\",\n \"active\": true,\n \"associations\": [\n {\n \"associatedEntity\": \"/transactions/Transaction\",\n \"active\": true,\n \"validationOptions\": {\n \"required\": false\n },\n \"allowedOperations\": [],\n \"associationCondition\": \"INCLUDED\",\n \"subAssociations\": [\n {\n \"associatedEntity\": \"SALE_INVOICE\",\n \"active\": true,\n \"allowedOperations\": []\n }\n ]\n },\n {\n \"associatedEntity\": \"/network/Contact\",\n \"active\": true,\n \"validationOptions\": {\n \"required\": false\n },\n \"allowedOperations\": [],\n \"associationCondition\": \"INCLUDED\",\n \"subAssociations\": [\n {\n \"associatedEntity\": \"CUSTOMER\",\n \"active\": true,\n \"allowedOperations\": []\n }\n ]\n }\n ],\n \"dataType\": \"STRING\",\n \"dropDownOptions\": []\n }\n }\n}" + } + ] + }, + { + "name": "Read Custom Field Definition", + "request": { + "method": "POST", + "header": [ + { + "key": "", + "value": "", + "disabled": true + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "graphql", + "graphql": { + "query": "query {\n appFoundationsCustomFieldDefinitions {\n edges {\n node {\n id\n legacyIDV2\n label\n associations {\n associatedEntity\n active\n validationOptions {\n required\n }\n allowedOperations\n associationCondition\n subAssociations {\n associatedEntity\n active\n allowedOperations\n }\n }\n dataType\n dropDownOptions {\n id\n value\n active\n order\n }\n active\n customFieldDefinitionMetaModel {\n suggested\n }\n }\n }\n }\n}", + "variables": "" + } + }, + "url": { + "raw": "https://qb.api.intuit.com/graphql", + "protocol": "https", + "host": [ + "qb", + "api", + "intuit", + "com" + ], + "path": [ + "graphql" + ] + } + }, + "response": [ + { + "name": "Read Custom Field Definition", + "originalRequest": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "graphql" + }, + "url": { + "raw": "https://qb.api.intuit.com/graphql", + "protocol": "https", + "host": [ + "qb", + "api", + "intuit", + "com" + ], + "path": [ + "graphql" + ] + } + }, + "status": "OK", + "code": 200, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Date", + "value": "Thu, 27 Jun 2024 03:01:52 GMT" + }, + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Transfer-Encoding", + "value": "chunked" + }, + { + "key": "Connection", + "value": "keep-alive" + }, + { + "key": "x-spanid", + "value": "386a0538-f8bd-6afb-d5ba-b9e8dea11229" + }, + { + "key": "x-amzn-trace-id", + "value": "Root=1-667cd620-70aab18d12c712c572daaba3" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "Vary", + "value": "origin" + }, + { + "key": "Content-Encoding", + "value": "gzip" + }, + { + "key": "x-envoy-upstream-service-time", + "value": "451" + }, + { + "key": "Server", + "value": "istio-envoy" + }, + { + "key": "x-envoy-decorator-operation", + "value": "swimlane11graphqlorch-desired-service.platformrun-apiorch-swimlane11graphqlorch-usw2-prd.svc.cluster.local:8090/*" + }, + { + "key": "Strict-Transport-Security", + "value": "max-age=31536000" + }, + { + "key": "intuit_tid", + "value": "1-667cd620-70aab18d12c712c572daaba3" + }, + { + "key": "x-request-id", + "value": "1-667cd620-70aab18d12c712c572daaba3" + } + ], + "cookie": [], + "body": "{\n \"data\": {\n \"appFoundationsCustomFieldDefinitions\": {\n \"edges\": []\n }\n }\n}" + }, + { + "name": "Read Custom Field Definition", + "originalRequest": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "graphql" + }, + "url": { + "raw": "https://qb.api.intuit.com/graphql", + "protocol": "https", + "host": [ + "qb", + "api", + "intuit", + "com" + ], + "path": [ + "graphql" + ] + } + }, + "status": "OK", + "code": 200, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Date", + "value": "Thu, 27 Jun 2024 03:03:23 GMT" + }, + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Transfer-Encoding", + "value": "chunked" + }, + { + "key": "Connection", + "value": "keep-alive" + }, + { + "key": "x-spanid", + "value": "2be03862-3076-86d2-f0b7-90fd9c35ef20" + }, + { + "key": "x-amzn-trace-id", + "value": "Root=1-667cd67b-7862e1ce7111f3d8535b25c2" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "Vary", + "value": "origin" + }, + { + "key": "Content-Encoding", + "value": "gzip" + }, + { + "key": "x-envoy-upstream-service-time", + "value": "364" + }, + { + "key": "Server", + "value": "istio-envoy" + }, + { + "key": "x-envoy-decorator-operation", + "value": "swimlane11graphqlorch-desired-service.platformrun-apiorch-swimlane11graphqlorch-usw2-prd.svc.cluster.local:8090/*" + }, + { + "key": "Strict-Transport-Security", + "value": "max-age=31536000" + }, + { + "key": "intuit_tid", + "value": "1-667cd67b-7862e1ce7111f3d8535b25c2" + }, + { + "key": "x-request-id", + "value": "1-667cd67b-7862e1ce7111f3d8535b25c2" + } + ], + "cookie": [], + "body": "{\n \"data\": {\n \"appFoundationsCustomFieldDefinitions\": {\n \"edges\": [\n {\n \"node\": {\n \"id\": \"udcf_1\",\n \"legacyID\": \"djQ6OTM0MTQ1MjU5OTA4NTI5MDovY29tbW9uL0N1c3RvbUZpZWxkRGVmaW5pdGlvbjo:1149549\",\n \"label\": \"cf-01\",\n \"associations\": [\n {\n \"associatedEntity\": \"/transactions/Transaction\",\n \"active\": true,\n \"validationOptions\": {\n \"required\": false\n },\n \"allowedOperations\": [],\n \"associationCondition\": \"INCLUDED\",\n \"subAssociations\": [\n {\n \"associatedEntity\": \"SALE_INVOICE\",\n \"active\": true,\n \"allowedOperations\": []\n }\n ]\n }\n ],\n \"dataType\": \"STRING\",\n \"dropDownOptions\": [],\n \"active\": true,\n \"customFieldDefinitionMetaModel\": {\n \"suggested\": null\n }\n }\n }\n ]\n }\n }\n}" + }, + { + "name": "Read Custom Field Definition", + "originalRequest": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "graphql" + }, + "url": { + "raw": "https://qb.api.intuit.com/graphql", + "protocol": "https", + "host": [ + "qb", + "api", + "intuit", + "com" + ], + "path": [ + "graphql" + ] + } + }, + "status": "OK", + "code": 200, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Date", + "value": "Thu, 27 Jun 2024 03:10:33 GMT" + }, + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Transfer-Encoding", + "value": "chunked" + }, + { + "key": "Connection", + "value": "keep-alive" + }, + { + "key": "x-spanid", + "value": "bd1d3bc7-a079-b079-592b-db206df13abc" + }, + { + "key": "x-amzn-trace-id", + "value": "Root=1-667cd829-749f572e6d8296b2000963c5" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "Vary", + "value": "origin" + }, + { + "key": "Content-Encoding", + "value": "gzip" + }, + { + "key": "x-envoy-upstream-service-time", + "value": "435" + }, + { + "key": "Server", + "value": "istio-envoy" + }, + { + "key": "x-envoy-decorator-operation", + "value": "swimlane11graphqlorch-desired-service.platformrun-apiorch-swimlane11graphqlorch-usw2-prd.svc.cluster.local:8090/*" + }, + { + "key": "Strict-Transport-Security", + "value": "max-age=31536000" + }, + { + "key": "intuit_tid", + "value": "1-667cd829-749f572e6d8296b2000963c5" + }, + { + "key": "x-request-id", + "value": "1-667cd829-749f572e6d8296b2000963c5" + } + ], + "cookie": [], + "body": "{\n \"data\": {\n \"appFoundationsCustomFieldDefinitions\": {\n \"edges\": [\n {\n \"node\": {\n \"id\": \"udcf_1\",\n \"legacyIDV2\": \"1149549\",\n \"label\": \"cf-01\",\n \"associations\": [\n {\n \"associatedEntity\": \"/transactions/Transaction\",\n \"active\": true,\n \"validationOptions\": {\n \"required\": false\n },\n \"allowedOperations\": [],\n \"associationCondition\": \"INCLUDED\",\n \"subAssociations\": [\n {\n \"associatedEntity\": \"SALE_INVOICE\",\n \"active\": true,\n \"allowedOperations\": []\n }\n ]\n }\n ],\n \"dataType\": \"STRING\",\n \"dropDownOptions\": [],\n \"active\": true,\n \"customFieldDefinitionMetaModel\": {\n \"suggested\": null\n }\n }\n }\n ]\n }\n }\n}" + }, + { + "name": "Read Custom Field Definition", + "originalRequest": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "graphql" + }, + "url": { + "raw": "https://qb.api.intuit.com/graphql", + "protocol": "https", + "host": [ + "qb", + "api", + "intuit", + "com" + ], + "path": [ + "graphql" + ] + } + }, + "status": "OK", + "code": 200, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Date", + "value": "Thu, 27 Jun 2024 03:13:50 GMT" + }, + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Transfer-Encoding", + "value": "chunked" + }, + { + "key": "Connection", + "value": "keep-alive" + }, + { + "key": "x-spanid", + "value": "e9007151-e6b2-055f-5380-be481c6946a7" + }, + { + "key": "x-amzn-trace-id", + "value": "Root=1-667cd8ee-7e6d6f6560347c6b38f4bc41" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "Vary", + "value": "origin" + }, + { + "key": "Content-Encoding", + "value": "gzip" + }, + { + "key": "x-envoy-upstream-service-time", + "value": "121" + }, + { + "key": "Server", + "value": "istio-envoy" + }, + { + "key": "x-envoy-decorator-operation", + "value": "swimlane11graphqlorch-desired-service.platformrun-apiorch-swimlane11graphqlorch-usw2-prd.svc.cluster.local:8090/*" + }, + { + "key": "Strict-Transport-Security", + "value": "max-age=31536000" + }, + { + "key": "intuit_tid", + "value": "1-667cd8ee-7e6d6f6560347c6b38f4bc41" + }, + { + "key": "x-request-id", + "value": "1-667cd8ee-7e6d6f6560347c6b38f4bc41" + } + ], + "cookie": [], + "body": "{\n \"data\": {\n \"appFoundationsCustomFieldDefinitions\": {\n \"edges\": [\n {\n \"node\": {\n \"id\": \"udcf_1\",\n \"legacyIDV2\": \"1149549\",\n \"label\": \"cf-01\",\n \"associations\": [\n {\n \"associatedEntity\": \"/transactions/Transaction\",\n \"active\": false,\n \"validationOptions\": {\n \"required\": false\n },\n \"allowedOperations\": [],\n \"associationCondition\": \"INCLUDED\",\n \"subAssociations\": [\n {\n \"associatedEntity\": \"SALE_INVOICE\",\n \"active\": true,\n \"allowedOperations\": []\n },\n {\n \"associatedEntity\": \"SALE_ESTIMATE\",\n \"active\": true,\n \"allowedOperations\": []\n }\n ]\n }\n ],\n \"dataType\": \"STRING\",\n \"dropDownOptions\": [],\n \"active\": false,\n \"customFieldDefinitionMetaModel\": {\n \"suggested\": null\n }\n }\n }\n ]\n }\n }\n}" + }, + { + "name": "Read Custom Field Definition", + "originalRequest": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "graphql" + }, + "url": { + "raw": "https://qb.api.intuit.com/graphql", + "protocol": "https", + "host": [ + "qb", + "api", + "intuit", + "com" + ], + "path": [ + "graphql" + ] + } + }, + "status": "OK", + "code": 200, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Date", + "value": "Thu, 27 Jun 2024 03:15:24 GMT" + }, + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Transfer-Encoding", + "value": "chunked" + }, + { + "key": "Connection", + "value": "keep-alive" + }, + { + "key": "x-spanid", + "value": "db26165b-d466-d4e0-cc8c-2b96c14e1819" + }, + { + "key": "x-amzn-trace-id", + "value": "Root=1-667cd94b-54e75fea50c2f5615c7d3a55" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "Vary", + "value": "origin" + }, + { + "key": "Content-Encoding", + "value": "gzip" + }, + { + "key": "x-envoy-upstream-service-time", + "value": "152" + }, + { + "key": "Server", + "value": "istio-envoy" + }, + { + "key": "x-envoy-decorator-operation", + "value": "swimlane11graphqlorch-desired-service.platformrun-apiorch-swimlane11graphqlorch-usw2-prd.svc.cluster.local:8090/*" + }, + { + "key": "Strict-Transport-Security", + "value": "max-age=31536000" + }, + { + "key": "intuit_tid", + "value": "1-667cd94b-54e75fea50c2f5615c7d3a55" + }, + { + "key": "x-request-id", + "value": "1-667cd94b-54e75fea50c2f5615c7d3a55" + } + ], + "cookie": [], + "body": "{\n \"data\": {\n \"appFoundationsCustomFieldDefinitions\": {\n \"edges\": [\n {\n \"node\": {\n \"id\": \"udcf_1\",\n \"legacyIDV2\": \"1149549\",\n \"label\": \"cf-01\",\n \"associations\": [\n {\n \"associatedEntity\": \"/transactions/Transaction\",\n \"active\": false,\n \"validationOptions\": {\n \"required\": false\n },\n \"allowedOperations\": [],\n \"associationCondition\": \"INCLUDED\",\n \"subAssociations\": [\n {\n \"associatedEntity\": \"SALE_INVOICE\",\n \"active\": true,\n \"allowedOperations\": []\n },\n {\n \"associatedEntity\": \"SALE_ESTIMATE\",\n \"active\": true,\n \"allowedOperations\": []\n }\n ]\n }\n ],\n \"dataType\": \"STRING\",\n \"dropDownOptions\": [],\n \"active\": false,\n \"customFieldDefinitionMetaModel\": {\n \"suggested\": null\n }\n }\n },\n {\n \"node\": {\n \"id\": \"udcf_2\",\n \"legacyIDV2\": \"1149550\",\n \"label\": \"cf-02\",\n \"associations\": [\n {\n \"associatedEntity\": \"/transactions/Transaction\",\n \"active\": true,\n \"validationOptions\": {\n \"required\": false\n },\n \"allowedOperations\": [],\n \"associationCondition\": \"INCLUDED\",\n \"subAssociations\": [\n {\n \"associatedEntity\": \"SALE_INVOICE\",\n \"active\": true,\n \"allowedOperations\": []\n }\n ]\n }\n ],\n \"dataType\": \"STRING\",\n \"dropDownOptions\": [],\n \"active\": true,\n \"customFieldDefinitionMetaModel\": {\n \"suggested\": null\n }\n }\n }\n ]\n }\n }\n}" + }, + { + "name": "Read Custom Field Definition", + "originalRequest": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "graphql" + }, + "url": { + "raw": "https://qb.api.intuit.com/graphql", + "protocol": "https", + "host": [ + "qb", + "api", + "intuit", + "com" + ], + "path": [ + "graphql" + ] + } + }, + "status": "OK", + "code": 200, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Date", + "value": "Thu, 27 Jun 2024 16:35:02 GMT" + }, + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Transfer-Encoding", + "value": "chunked" + }, + { + "key": "Connection", + "value": "keep-alive" + }, + { + "key": "x-spanid", + "value": "924c63b9-3a25-848e-ef62-132c44801cb8" + }, + { + "key": "x-amzn-trace-id", + "value": "Root=1-667d94b6-39c485fa3d324b3b1f5094f7" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "Vary", + "value": "origin" + }, + { + "key": "Content-Encoding", + "value": "gzip" + }, + { + "key": "x-envoy-upstream-service-time", + "value": "148" + }, + { + "key": "Server", + "value": "istio-envoy" + }, + { + "key": "x-envoy-decorator-operation", + "value": "swimlane11graphqlorch-desired-service.platformrun-apiorch-swimlane11graphqlorch-usw2-prd.svc.cluster.local:8090/*" + }, + { + "key": "Strict-Transport-Security", + "value": "max-age=31536000" + }, + { + "key": "intuit_tid", + "value": "1-667d94b6-39c485fa3d324b3b1f5094f7" + }, + { + "key": "x-request-id", + "value": "1-667d94b6-39c485fa3d324b3b1f5094f7" + } + ], + "cookie": [], + "body": "{\n \"data\": {\n \"appFoundationsCustomFieldDefinitions\": {\n \"edges\": [\n {\n \"node\": {\n \"id\": \"udcf_1\",\n \"legacyIDV2\": \"1149549\",\n \"label\": \"cf-01\",\n \"associations\": [\n {\n \"associatedEntity\": \"/transactions/Transaction\",\n \"active\": true,\n \"validationOptions\": {\n \"required\": false\n },\n \"allowedOperations\": [],\n \"associationCondition\": \"INCLUDED\",\n \"subAssociations\": [\n {\n \"associatedEntity\": \"SALE_INVOICE\",\n \"active\": true,\n \"allowedOperations\": []\n },\n {\n \"associatedEntity\": \"SALE_ESTIMATE\",\n \"active\": true,\n \"allowedOperations\": []\n }\n ]\n }\n ],\n \"dataType\": \"STRING\",\n \"dropDownOptions\": [],\n \"active\": true,\n \"customFieldDefinitionMetaModel\": {\n \"suggested\": null\n }\n }\n },\n {\n \"node\": {\n \"id\": \"udcf_2\",\n \"legacyIDV2\": \"1149550\",\n \"label\": \"cf-02\",\n \"associations\": [\n {\n \"associatedEntity\": \"/transactions/Transaction\",\n \"active\": true,\n \"validationOptions\": {\n \"required\": false\n },\n \"allowedOperations\": [],\n \"associationCondition\": \"INCLUDED\",\n \"subAssociations\": [\n {\n \"associatedEntity\": \"SALE_INVOICE\",\n \"active\": true,\n \"allowedOperations\": []\n }\n ]\n }\n ],\n \"dataType\": \"STRING\",\n \"dropDownOptions\": [],\n \"active\": true,\n \"customFieldDefinitionMetaModel\": {\n \"suggested\": null\n }\n }\n },\n {\n \"node\": {\n \"id\": \"udcf_3\",\n \"legacyIDV2\": \"1149551\",\n \"label\": \"CF-VendorType\",\n \"associations\": [\n {\n \"associatedEntity\": \"/transactions/Transaction\",\n \"active\": true,\n \"validationOptions\": {\n \"required\": false\n },\n \"allowedOperations\": [],\n \"associationCondition\": \"INCLUDED\",\n \"subAssociations\": [\n {\n \"associatedEntity\": \"SALE_INVOICE\",\n \"active\": true,\n \"allowedOperations\": []\n }\n ]\n },\n {\n \"associatedEntity\": \"/network/Contact\",\n \"active\": true,\n \"validationOptions\": {\n \"required\": false\n },\n \"allowedOperations\": [],\n \"associationCondition\": \"INCLUDED\",\n \"subAssociations\": [\n {\n \"associatedEntity\": \"VENDOR\",\n \"active\": true,\n \"allowedOperations\": []\n }\n ]\n }\n ],\n \"dataType\": \"STRING\",\n \"dropDownOptions\": [],\n \"active\": true,\n \"customFieldDefinitionMetaModel\": {\n \"suggested\": null\n }\n }\n },\n {\n \"node\": {\n \"id\": \"udcf_4\",\n \"legacyIDV2\": \"1149552\",\n \"label\": \"CF-customerType\",\n \"associations\": [\n {\n \"associatedEntity\": \"/transactions/Transaction\",\n \"active\": true,\n \"validationOptions\": {\n \"required\": false\n },\n \"allowedOperations\": [],\n \"associationCondition\": \"INCLUDED\",\n \"subAssociations\": [\n {\n \"associatedEntity\": \"SALE_INVOICE\",\n \"active\": true,\n \"allowedOperations\": []\n }\n ]\n },\n {\n \"associatedEntity\": \"/network/Contact\",\n \"active\": true,\n \"validationOptions\": {\n \"required\": false\n },\n \"allowedOperations\": [],\n \"associationCondition\": \"INCLUDED\",\n \"subAssociations\": [\n {\n \"associatedEntity\": \"CUSTOMER\",\n \"active\": true,\n \"allowedOperations\": []\n }\n ]\n }\n ],\n \"dataType\": \"STRING\",\n \"dropDownOptions\": [],\n \"active\": true,\n \"customFieldDefinitionMetaModel\": {\n \"suggested\": null\n }\n }\n },\n {\n \"node\": {\n \"id\": \"udcf_5\",\n \"legacyIDV2\": \"1149622\",\n \"label\": \"cf-03\",\n \"associations\": [\n {\n \"associatedEntity\": \"/transactions/Transaction\",\n \"active\": true,\n \"validationOptions\": {\n \"required\": false\n },\n \"allowedOperations\": [],\n \"associationCondition\": \"INCLUDED\",\n \"subAssociations\": [\n {\n \"associatedEntity\": \"SALE_INVOICE\",\n \"active\": true,\n \"allowedOperations\": []\n }\n ]\n }\n ],\n \"dataType\": \"STRING\",\n \"dropDownOptions\": [],\n \"active\": true,\n \"customFieldDefinitionMetaModel\": {\n \"suggested\": null\n }\n }\n }\n ]\n }\n }\n}" + } + ] + }, + { + "name": "Update Custom Field Definition", + "request": { + "method": "POST", + "header": [ + { + "key": "", + "value": "", + "disabled": true + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "graphql", + "graphql": { + "query": "mutation AppFoundationsUpdateCustomFieldDefinition($input: AppFoundations_CustomFieldDefinitionUpdateInput!) {\n appFoundationsUpdateCustomFieldDefinition(input: $input) {\n id\n legacyIDV2\n label\n associations {\n associatedEntity\n active\n validationOptions {\n required\n }\n allowedOperations\n associationCondition\n subAssociations {\n associatedEntity\n active\n allowedOperations\n }\n }\n dataType\n dropDownOptions {\n id\n value\n active\n order\n }\n active\n }\n}", + "variables": "{\n \"input\": {\n \"id\": \"udcf_1\",\n \"legacyIDV2\": \"1149549\",\n \"label\": \"cf-01\",\n \"active\": true,\n \"associations\": [\n {\n \"validationOptions\": {\n \"required\": true \n },\n \"associatedEntity\": \"/transactions/Transaction\" ,\n \"active\": true,\n \"allowedOperations\": [],\n \"associationCondition\": \"INCLUDED\",\n \"subAssociations\": [\n {\n \"associatedEntity\": \"SALE_INVOICE\",\n \"active\": true,\n \"allowedOperations\": []\n },\n {\n \"associatedEntity\": \"SALE_ESTIMATE\",\n \"active\": true,\n \"allowedOperations\": []\n }\n ]\n }\n ]\n }\n}" + } + }, + "url": { + "raw": "https://qb.api.intuit.com/graphql", + "protocol": "https", + "host": [ + "qb", + "api", + "intuit", + "com" + ], + "path": [ + "graphql" + ] + } + }, + "response": [ + { + "name": "Update Custom Field Definition", + "originalRequest": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "graphql" + }, + "url": { + "raw": "https://qb.api.intuit.com/graphql", + "protocol": "https", + "host": [ + "qb", + "api", + "intuit", + "com" + ], + "path": [ + "graphql" + ] + } + }, + "status": "OK", + "code": 200, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Date", + "value": "Thu, 27 Jun 2024 03:06:30 GMT" + }, + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Transfer-Encoding", + "value": "chunked" + }, + { + "key": "Connection", + "value": "keep-alive" + }, + { + "key": "x-spanid", + "value": "0140d18c-0103-3349-7b86-53cd8cee85e3" + }, + { + "key": "x-amzn-trace-id", + "value": "Root=1-667cd736-59db00cc53f988bd68295bd6" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "Vary", + "value": "origin" + }, + { + "key": "Content-Encoding", + "value": "gzip" + }, + { + "key": "x-envoy-upstream-service-time", + "value": "82" + }, + { + "key": "Server", + "value": "istio-envoy" + }, + { + "key": "x-envoy-decorator-operation", + "value": "swimlane11graphqlorch-desired-service.platformrun-apiorch-swimlane11graphqlorch-usw2-prd.svc.cluster.local:8090/*" + }, + { + "key": "Strict-Transport-Security", + "value": "max-age=31536000" + }, + { + "key": "intuit_tid", + "value": "1-667cd736-59db00cc53f988bd68295bd6" + }, + { + "key": "x-request-id", + "value": "1-667cd736-59db00cc53f988bd68295bd6" + } + ], + "cookie": [], + "body": "{\n \"data\": {\n \"appFoundationsUpdateCustomFieldDefinition\": null\n },\n \"errors\": [\n {\n \"message\": \"Field legacyIDV2 cannot be null or empty\",\n \"path\": [\n \"appFoundationsUpdateCustomFieldDefinition\"\n ],\n \"extensions\": {\n \"errorCode\": {\n \"errorCode\": \"CES038\",\n \"errorMessage\": \"Field %s cannot be null or empty\",\n \"errorType\": \"VALIDATION_ERROR\"\n },\n \"cause\": \"Field legacyIDV2 cannot be null or empty\",\n \"errorType\": \"UNKNOWN\"\n }\n }\n ]\n}" + }, + { + "name": "Update Custom Field Definition", + "originalRequest": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "graphql" + }, + "url": { + "raw": "https://qb.api.intuit.com/graphql", + "protocol": "https", + "host": [ + "qb", + "api", + "intuit", + "com" + ], + "path": [ + "graphql" + ] + } + }, + "status": "OK", + "code": 200, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Date", + "value": "Thu, 27 Jun 2024 03:13:27 GMT" + }, + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Transfer-Encoding", + "value": "chunked" + }, + { + "key": "Connection", + "value": "keep-alive" + }, + { + "key": "x-spanid", + "value": "c7299231-779d-e626-6db7-47c678cf37ed" + }, + { + "key": "x-amzn-trace-id", + "value": "Root=1-667cd8d6-0fe9065073c8f2d554f3333d" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "Vary", + "value": "origin" + }, + { + "key": "Content-Encoding", + "value": "gzip" + }, + { + "key": "x-envoy-upstream-service-time", + "value": "726" + }, + { + "key": "Server", + "value": "istio-envoy" + }, + { + "key": "x-envoy-decorator-operation", + "value": "swimlane11graphqlorch-desired-service.platformrun-apiorch-swimlane11graphqlorch-usw2-prd.svc.cluster.local:8090/*" + }, + { + "key": "Strict-Transport-Security", + "value": "max-age=31536000" + }, + { + "key": "intuit_tid", + "value": "1-667cd8d6-0fe9065073c8f2d554f3333d" + }, + { + "key": "x-request-id", + "value": "1-667cd8d6-0fe9065073c8f2d554f3333d" + } + ], + "cookie": [], + "body": "{\n \"data\": {\n \"appFoundationsUpdateCustomFieldDefinition\": {\n \"id\": \"udcf_1\",\n \"legacyIDV2\": \"1149549\",\n \"label\": \"cf-01\",\n \"associations\": [\n {\n \"associatedEntity\": \"/transactions/Transaction\",\n \"active\": false,\n \"validationOptions\": {\n \"required\": false\n },\n \"allowedOperations\": [],\n \"associationCondition\": \"INCLUDED\",\n \"subAssociations\": [\n {\n \"associatedEntity\": \"SALE_INVOICE\",\n \"active\": true,\n \"allowedOperations\": []\n },\n {\n \"associatedEntity\": \"SALE_ESTIMATE\",\n \"active\": true,\n \"allowedOperations\": []\n }\n ]\n }\n ],\n \"dataType\": \"STRING\",\n \"dropDownOptions\": [],\n \"active\": false\n }\n }\n}" + }, + { + "name": "Update Custom Field Definition", + "originalRequest": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "graphql" + }, + "url": { + "raw": "https://qb.api.intuit.com/graphql", + "protocol": "https", + "host": [ + "qb", + "api", + "intuit", + "com" + ], + "path": [ + "graphql" + ] + } + }, + "status": "OK", + "code": 200, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Date", + "value": "Thu, 27 Jun 2024 03:17:03 GMT" + }, + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Transfer-Encoding", + "value": "chunked" + }, + { + "key": "Connection", + "value": "keep-alive" + }, + { + "key": "x-spanid", + "value": "c36ec2f3-7383-714b-8114-cc5631152d55" + }, + { + "key": "x-amzn-trace-id", + "value": "Root=1-667cd9ad-6c1dbaa928e15ba1055eefd9" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "Vary", + "value": "origin" + }, + { + "key": "Content-Encoding", + "value": "gzip" + }, + { + "key": "x-envoy-upstream-service-time", + "value": "1737" + }, + { + "key": "Server", + "value": "istio-envoy" + }, + { + "key": "x-envoy-decorator-operation", + "value": "swimlane11graphqlorch-desired-service.platformrun-apiorch-swimlane11graphqlorch-usw2-prd.svc.cluster.local:8090/*" + }, + { + "key": "Strict-Transport-Security", + "value": "max-age=31536000" + }, + { + "key": "intuit_tid", + "value": "1-667cd9ad-6c1dbaa928e15ba1055eefd9" + }, + { + "key": "x-request-id", + "value": "1-667cd9ad-6c1dbaa928e15ba1055eefd9" + } + ], + "cookie": [], + "body": "{\n \"data\": {\n \"appFoundationsUpdateCustomFieldDefinition\": null\n },\n \"errors\": [\n {\n \"message\": \"Validation failed\",\n \"path\": [\n \"appFoundationsUpdateCustomFieldDefinition\"\n ],\n \"extensions\": {\n \"errorCode\": \"CUSTOMFIELDDEFN-86003\",\n \"cause\": \"Unsupported entityCondition\",\n \"type\": \"VALIDATION_ERROR\",\n \"errorType\": \"UNKNOWN\"\n }\n }\n ]\n}" + }, + { + "name": "Update Custom Field Definition", + "originalRequest": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "graphql" + }, + "url": { + "raw": "https://qb.api.intuit.com/graphql", + "protocol": "https", + "host": [ + "qb", + "api", + "intuit", + "com" + ], + "path": [ + "graphql" + ] + } + }, + "status": "OK", + "code": 200, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Date", + "value": "Thu, 27 Jun 2024 03:19:29 GMT" + }, + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Transfer-Encoding", + "value": "chunked" + }, + { + "key": "Connection", + "value": "keep-alive" + }, + { + "key": "x-spanid", + "value": "dc7f47e1-7efb-5b7b-83de-3ec56faea8b3" + }, + { + "key": "x-amzn-trace-id", + "value": "Root=1-667cda3e-47aa3a78508142806f85c708" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "Vary", + "value": "origin" + }, + { + "key": "Content-Encoding", + "value": "gzip" + }, + { + "key": "x-envoy-upstream-service-time", + "value": "2305" + }, + { + "key": "Server", + "value": "istio-envoy" + }, + { + "key": "x-envoy-decorator-operation", + "value": "swimlane11graphqlorch-desired-service.platformrun-apiorch-swimlane11graphqlorch-usw2-prd.svc.cluster.local:8090/*" + }, + { + "key": "Strict-Transport-Security", + "value": "max-age=31536000" + }, + { + "key": "intuit_tid", + "value": "1-667cda3e-47aa3a78508142806f85c708" + }, + { + "key": "x-request-id", + "value": "1-667cda3e-47aa3a78508142806f85c708" + } + ], + "cookie": [], + "body": "{\n \"data\": {\n \"appFoundationsUpdateCustomFieldDefinition\": {\n \"id\": \"udcf_1\",\n \"legacyIDV2\": \"1149549\",\n \"label\": \"cf-01\",\n \"associations\": [\n {\n \"associatedEntity\": \"/transactions/Transaction\",\n \"active\": true,\n \"validationOptions\": {\n \"required\": false\n },\n \"allowedOperations\": [],\n \"associationCondition\": \"INCLUDED\",\n \"subAssociations\": [\n {\n \"associatedEntity\": \"SALE_INVOICE\",\n \"active\": true,\n \"allowedOperations\": []\n },\n {\n \"associatedEntity\": \"SALE_ESTIMATE\",\n \"active\": true,\n \"allowedOperations\": []\n }\n ]\n }\n ],\n \"dataType\": \"STRING\",\n \"dropDownOptions\": [],\n \"active\": true\n }\n }\n}" + }, + { + "name": "Update Custom Field Definition", + "originalRequest": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "graphql" + }, + "url": { + "raw": "https://qb.api.intuit.com/graphql", + "protocol": "https", + "host": [ + "qb", + "api", + "intuit", + "com" + ], + "path": [ + "graphql" + ] + } + }, + "status": "OK", + "code": 200, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Date", + "value": "Thu, 27 Jun 2024 16:36:03 GMT" + }, + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Transfer-Encoding", + "value": "chunked" + }, + { + "key": "Connection", + "value": "keep-alive" + }, + { + "key": "x-spanid", + "value": "554c9eb8-7bdd-95f2-6b75-768695ee0bc8" + }, + { + "key": "x-amzn-trace-id", + "value": "Root=1-667d94f3-4a8399cf63960436234bb419" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "Vary", + "value": "origin" + }, + { + "key": "Content-Encoding", + "value": "gzip" + }, + { + "key": "x-envoy-upstream-service-time", + "value": "665" + }, + { + "key": "Server", + "value": "istio-envoy" + }, + { + "key": "x-envoy-decorator-operation", + "value": "swimlane11graphqlorch-desired-service.platformrun-apiorch-swimlane11graphqlorch-usw2-prd.svc.cluster.local:8090/*" + }, + { + "key": "Strict-Transport-Security", + "value": "max-age=31536000" + }, + { + "key": "intuit_tid", + "value": "1-667d94f3-4a8399cf63960436234bb419" + }, + { + "key": "x-request-id", + "value": "1-667d94f3-4a8399cf63960436234bb419" + } + ], + "cookie": [], + "body": "{\n \"data\": {\n \"appFoundationsUpdateCustomFieldDefinition\": {\n \"id\": \"udcf_1\",\n \"legacyIDV2\": \"1149549\",\n \"label\": \"cf-01\",\n \"associations\": [\n {\n \"associatedEntity\": \"/transactions/Transaction\",\n \"active\": true,\n \"validationOptions\": {\n \"required\": false\n },\n \"allowedOperations\": [],\n \"associationCondition\": \"INCLUDED\",\n \"subAssociations\": [\n {\n \"associatedEntity\": \"SALE_INVOICE\",\n \"active\": true,\n \"allowedOperations\": []\n },\n {\n \"associatedEntity\": \"SALE_ESTIMATE\",\n \"active\": true,\n \"allowedOperations\": []\n }\n ]\n }\n ],\n \"dataType\": \"STRING\",\n \"dropDownOptions\": [],\n \"active\": false\n }\n }\n}" + } + ] + } + ] + }, + { + "name": "Project", + "item": [ + { + "name": "query", + "item": [ + { + "name": "queryDateRange", + "request": { + "method": "POST", + "header": [ + { + "key": "Accept", + "value": "application/json;charset=UTF-8", + "type": "text" + }, + { + "key": "Content-Type", + "value": "application/json;charset=UTF-8", + "type": "text" + } + ], + "body": { + "mode": "graphql", + "graphql": { + "query": "query projectManagementProjects(\n $first: PositiveInt!,\n $after: String,\n $filter: ProjectManagement_ProjectFilter!,\n $orderBy: [ProjectManagement_OrderBy!]\n) {\n projectManagementProjects(\n first: $first,\n after: $after,\n filter: $filter,\n orderBy: $orderBy\n ) {\n edges {\n node {\n id,\n name,\n description,\n type,\n status,\n dueDate,\n startDate,\n completedDate,\n dueDate,\n assignee{\n id\n },\n priority,\n customer{\n id\n },\n account{\n id\n }\n addresses {\n streetAddressLine1,\n streetAddressLine2,\n streetAddressLine3\n state,\n postalCode\n } \n }\n }\n pageInfo {\n hasNextPage\n hasPreviousPage\n startCursor\n endCursor\n }\n }\n}\n", + "variables": "{\n \"first\": 4,\n \"after\": \"c2ltcGxlLWN1cnNvcjA=\",\n \"filter\": {\n \"dueDate\": {\n \"between\": {\n \"minDate\": \"2024-04-01T18:47:25.123456789-07:00\",\n \"maxDate\": \"2024-12-05T18:47:25.123456789-07:00\"\n }\n }\n },\n \"orderBy\": [\"DUE_DATE_DESC\"]\n}\n" + } + }, + "url": { + "raw": "https://qb.api.intuit.com/graphql", + "protocol": "https", + "host": [ + "qb", + "api", + "intuit", + "com" + ], + "path": [ + "graphql" + ] + } + }, + "response": [] + }, + { + "name": "queryByProjectID", + "request": { + "method": "POST", + "header": [ + { + "key": "Accept", + "value": "application/json;charset=UTF-8", + "type": "text" + }, + { + "key": "Content-Type", + "value": "application/json;charset=UTF-8", + "type": "text" + } + ], + "body": { + "mode": "graphql", + "graphql": { + "query": "query projectManagementProject($id: ID!) {\n projectManagementProject(id: $id) {\n name,\n status,\n description,\n startDate,\n dueDate,\n account {\n id\n }\n customer{\n id\n }\n }\n}\n", + "variables": "{\n \"id\" : 411372250\n}" + } + }, + "url": { + "raw": "https://qb.api.intuit.com/graphql", + "protocol": "https", + "host": [ + "qb", + "api", + "intuit", + "com" + ], + "path": [ + "graphql" + ] + } + }, + "response": [] + } + ] + }, + { + "name": "createMutation", + "item": [ + { + "name": "createProject", + "request": { + "method": "POST", + "header": [ + { + "key": "accept", + "value": "application/json;charset=UTF-8", + "type": "text" + }, + { + "key": "Content-Type", + "value": "application/json;charset=UTF-8", + "type": "text" + } + ], + "body": { + "mode": "graphql", + "graphql": { + "query": "mutation ProjectManagementCreateProject($name: String!, \n $description: String,\n $startDate: DateTime,\n $dueDate: DateTime!, \n $status: ProjectManagement_Status,\n $customer: ProjectManagement_CustomerInput,\n $account: ProjectManagement_CompanyInput!,\n $priority: Int,\n $pinned: Boolean,\n $completionRate: Decimal,\n $emailAddress: [Qb_EmailAddressInput],\n $addresses: [Qb_PostalAddressInput]\n) {\n projectManagementCreateProject(input:{\n name: $name,\n description: $description,\n startDate : $startDate,\n dueDate : $dueDate,\n status: $status\n customer: $customer, \n account: $account,\n priority: $priority,\n pinned: $pinned,\n completionRate: $completionRate,\n emailAddress: $emailAddress,\n addresses: $addresses,\n }\n )\n {\n ... on ProjectManagement_Project {\n id,\n name,\n description,\n startDate,\n dueDate,\n status,\n priority,\n customer{\n id\n },\n account{\n id\n },\n priority,\n pinned,\n completionRate,\n emailAddress {\n email,\n name\n }\n addresses {\n streetAddressLine1,\n streetAddressLine2,\n streetAddressLine3\n state,\n postalCode\n } \n }\n }\n }\n", + "variables": "{\n \"name\": \"Demo Project\",\n \"description\": \"Test Demo Project\",\n \"startDate\": \"2024-07-29T00:00:00.000Z\",\n \"dueDate\": \"2024-08-29T00:00:00.000Z\",\n \"status\": \"OPEN\",\n \"account\": {\n \"id\": \"9341452811627568\"\n },\n \"customer\": {\n \"id\":1\n },\n\n \"priority\": 1,\n \"completionRate\": 99.00,\n \"pinned\": false,\n \"emailAddress\": [\n {\n \"email\":\"testproject@gmail.com\",\n \"name\": \"Demo Client\",\n \"variation\": {\n \"purpose\": \"BILLING\",\n \"usage\": \"HOME\",\n \"Common_Ordinal\": \"PRIMARY\"\n }\n }\n ],\n \"addresses\": [\n {\n \"streetAddressLine1\": \"3000 17th street\",\n \"postalCode\": \"94114\",\n \"city\": \"San Francisco\",\n \"state\": \"California\",\n \"country\": \"USA\",\n \"variation\": {\n \"purpose\": \"BILLING\",\n \"usage\": \"HOME\",\n \"Common_Ordinal\": \"PRIMARY\"\n }\n }\n ]\n }" + } + }, + "url": { + "raw": "https://qb.api.intuit.com/graphql", + "protocol": "https", + "host": [ + "qb", + "api", + "intuit", + "com" + ], + "path": [ + "graphql" + ] + } + }, + "response": [] + } + ] + }, + { + "name": "updateMutation", + "item": [ + { + "name": "updateProject", + "request": { + "method": "POST", + "header": [ + { + "key": "Accept", + "value": "application/json;charset=UTF-8", + "type": "text" + }, + { + "key": "Content-Type", + "value": "application/json;charset=UTF-8", + "type": "text" + } + ], + "body": { + "mode": "graphql", + "graphql": { + "query": "mutation projectManagementUpdateProject($id: ID!,\n $name: String,\n $description: String,\n $status: ProjectManagement_Status,\n $startDate: DateTime,\n $dueDate: DateTime,\n $customer: ProjectManagement_CustomerInput,\n $account: ProjectManagement_CompanyInput,\n $priority: Int,\n $completionRate: Decimal,\n $pinned: Boolean,\n)\n{\n projectManagementUpdateProject(input:{\n id: $id,\n name: $name,\n description : $description,\n status: $status,\n startDate:$startDate,\n dueDate: $dueDate,\n customer:$customer\n account: $account,\n priority: $priority,\n completionRate: $completionRate,\n pinned: $pinned\n })\n\n {\n ... on ProjectManagement_Project {\n id,\n name,\n description,\n status,\n startDate,\n dueDate,\n customer{\n id\n },\n account{\n id\n },\n priority,\n completionRate,\n pinned\n }\n }\n}", + "variables": "{\n\"id\": 412057097,\n \"name\": \"Demo Project new\",\n \"description\": \"Test DemoProject Description New\",\n \"startDate\": \"2024-07-25T00:00:00.000Z\",\n \"dueDate\": \"2024-07-31T00:00:00.000Z\",\n \"status\": \"IN_PROGRESS\",\n \"account\": {\n \"id\": \"9341452781483658\"\n },\n \"customer\": {\n \"id\":1\n },\n\n \"priority\": 1,\n \"completionRate\": 99.00,\n \"pinned\": false\n }" + } + }, + "url": { + "raw": "https://qb.api.intuit.com/graphql", + "protocol": "https", + "host": [ + "qb", + "api", + "intuit", + "com" + ], + "path": [ + "graphql" + ] + } + }, + "response": [] + }, + { + "name": "updateProjectName", + "request": { + "method": "POST", + "header": [ + { + "key": "Accept", + "value": "application/json;charset=UTF-8", + "type": "text" + }, + { + "key": "Content-Type", + "value": "application/json;charset=UTF-8", + "type": "text" + } + ], + "body": { + "mode": "graphql", + "graphql": { + "query": "mutation projectManagementUpdateName($id: ID!, \n $name: String!)\n{\n projectManagementUpdateName(input:{\n id: $id,\n name: $name,\n })\n\n {\n ... on ProjectManagement_Project {\n name, \n id,\n description\n }\n }\n}", + "variables": "{\n \"id\": 408577546,\n \"name\": \"Demo Project Update\",\n \"description\": \"Project Description Updated\",\n \"startDate\": \"2024-06-27T00:00:00.000Z\",\n \"dueDate\": \"2024-07-25T00:00:00.000Z\",\n \"status\": \"IN_PROGRESS\",\n \"account\": {\n \"id\": \"9341452164365778\"\n },\n \"type\": \"CONTACT\",\n \"priority\": 3,\n \"completionRate\": 70.00,\n \"pinned\": true,\n \"emailAddress\": [\n {\n \"email\":\"jacobsolis123@gmail.com\",\n \"name\": \"Jacob Solis\",\n \"variation\": {\n \"purpose\": \"BILLING\",\n \"usage\": \"HOME\",\n \"Common_Ordinal\": \"PRIMARY\"\n }\n }\n ],\n \"addresses\": [\n {\n \"streetAddressLine1\": \"3000 17th street\",\n \"postalCode\": \"94114\",\n \"city\": \"San Francisco\",\n \"state\": \"California\",\n \"country\": \"USA\",\n \"variation\": {\n \"purpose\": \"BILLING\",\n \"usage\": \"HOME\",\n \"Common_Ordinal\": \"PRIMARY\"\n }\n }\n ]\n }" + } + }, + "url": { + "raw": "https://qb.api.intuit.com/graphql", + "protocol": "https", + "host": [ + "qb", + "api", + "intuit", + "com" + ], + "path": [ + "graphql" + ] + } + }, + "response": [] + }, + { + "name": "deleteProject", + "request": { + "method": "POST", + "header": [ + { + "key": "Accept", + "value": "application/json;charset=UTF-8", + "type": "text" + }, + { + "key": "Content-Type", + "value": "application/json;charset=UTF-8", + "type": "text" + } + ], + "body": { + "mode": "graphql", + "graphql": { + "query": "mutation projectManagementDeleteProject($id: ID!\n )\n{\n projectManagementDeleteProject(input:{\n id: $id,\n })\n\n {\n ... on ProjectManagement_Project {\n id,\n deleted\n }\n }\n}", + "variables": "{\n \"id\": 408577546,\n \"name\": \"Test Project\",\n \"description\": \"A sample project\",\n \"startDate\": \"2024-07-01T00:00:00.000Z\",\n \"dueDate\": \"2024-07-31T00:00:00.000Z\",\n \"status\": \"OPEN\",\n \"account\": {\n \"id\": \"9130357863496756\"\n },\n \"customer\":{\n \"id\":\"2\"\n },\n \"type\": \"CONTACT\",\n \"priority\": 1,\n \"completionRate\": 95.00,\n \"pinned\": false,\n \"emailAddress\": [\n {\n \"email\":\"testgmail@gmail.com\",\n \"name\": \"Test Client\",\n \"variation\": {\n \"purpose\": \"BILLING\",\n \"usage\": \"HOME\",\n \"Common_Ordinal\": \"PRIMARY\"\n }\n }\n ],\n \"addresses\": [\n {\n \"streetAddressLine1\": \"3000 17th street\",\n \"postalCode\": \"94114\",\n \"city\": \"San Francisco\",\n \"state\": \"California\",\n \"country\": \"USA\",\n \"variation\": {\n \"purpose\": \"BILLING\",\n \"usage\": \"HOME\",\n \"Common_Ordinal\": \"PRIMARY\"\n }\n }\n ]\n }" + } + }, + "url": { + "raw": "https://qb.api.intuit.com/graphql", + "protocol": "https", + "host": [ + "qb", + "api", + "intuit", + "com" + ], + "path": [ + "graphql" + ] + } + }, + "response": [] + } + ] + }, + { + "name": "Project- QBOV3Transactions", + "item": [ + { + "name": "Invoice-Create", + "request": { + "method": "POST", + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"TxnDate\": \"2024-07-24\",\n \"CurrencyRef\": {\n \"value\": \"USD\",\n \"name\": \"United States Dollar\"\n },\n \"LinkedTxn\": [],\n \"Line\": [\n {\n \"Id\": \"1\",\n \"LineNum\": 1,\n \"Description\": \"Test1\",\n \"Amount\": 50.99,\n \"DetailType\": \"SalesItemLineDetail\",\n \"SalesItemLineDetail\": {\n \"ItemRef\": {\n \"value\": \"2\",\n \"name\": \"Hours\"\n },\n \"UnitPrice\": 50.99,\n \"Qty\": 1,\n \"ItemAccountRef\": {\n \"value\": \"5\",\n \"name\": \"Sales\"\n },\n \"TaxCodeRef\": {\n \"value\": \"NON\"\n }\n }\n },\n {\n \"Amount\": 50.99,\n \"DetailType\": \"SubTotalLineDetail\",\n \"SubTotalLineDetail\": {}\n }\n ],\n \"Tag\": [],\n \"ProjectRef\": {\n \"value\": \"412057097\"\n },\n \"CustomerRef\": {\n \"value\": \"2\",\n \"name\": \"Customer One\"\n },\n \"BillAddr\": {\n \"Id\": \"4\",\n \"Lat\": \"INVALID\",\n \"Long\": \"INVALID\"\n },\n \"FreeFormAddress\": false,\n \"SalesTermRef\": {\n \"value\": \"3\",\n \"name\": \"Net 30\"\n },\n \"TotalAmt\": 50.99,\n \"ApplyTaxAfterDiscount\": false,\n \"Balance\": 50.99\n}" + }, + "url": { + "raw": "https://{{baseurl}}/v3/company/{{companyId}}/invoice?minorversion={{minorversion}}", + "protocol": "https", + "host": [ + "{{baseurl}}" + ], + "path": [ + "v3", + "company", + "{{companyId}}", + "invoice" + ], + "query": [ + { + "key": "minorversion", + "value": "{{minorversion}}" + } + ] + }, + "description": "Create an invoice object\nMethod : POST\n" + }, + "response": [] + }, + { + "name": "Invoice-Query", + "request": { + "method": "POST", + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/text" + } + ], + "body": { + "mode": "raw", + "raw": "Select * \nfrom invoice \nstartposition 1 maxresults 5", + "options": { + "raw": { + "language": "text" + } + } + }, + "url": { + "raw": "https://{{baseurl}}/v3/company/{{companyId}}/query?minorversion={{minorversion}}", + "protocol": "https", + "host": [ + "{{baseurl}}" + ], + "path": [ + "v3", + "company", + "{{companyId}}", + "query" + ], + "query": [ + { + "key": "minorversion", + "value": "{{minorversion}}" + } + ] + }, + "description": "Read all invoice objects using the 'Query' endpoint\nMethod : POST\n" + }, + "response": [] + }, + { + "name": "Invoice-ReadById", + "request": { + "method": "GET", + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "url": { + "raw": "https://{{baseurl}}/v3/company/{{companyId}}/invoice/1?minorversion={{minorversion}}", + "protocol": "https", + "host": [ + "{{baseurl}}" + ], + "path": [ + "v3", + "company", + "{{companyId}}", + "invoice", + "1" + ], + "query": [ + { + "key": "minorversion", + "value": "{{minorversion}}" + } + ] + }, + "description": "Read an invoice object by Id\nMethod : POST\n" + }, + "response": [] + }, + { + "name": "Bill-Query", + "request": { + "method": "POST", + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/text" + } + ], + "body": { + "mode": "raw", + "raw": "Select * from Bill startposition 1 maxresults 5", + "options": { + "raw": { + "language": "text" + } + } + }, + "url": { + "raw": "https://{{baseurl}}/v3/company/{{companyId}}/query?minorversion={{minorversion}}", + "protocol": "https", + "host": [ + "{{baseurl}}" + ], + "path": [ + "v3", + "company", + "{{companyId}}", + "query" + ], + "query": [ + { + "key": "minorversion", + "value": "{{minorversion}}" + } + ] + }, + "description": "Retrieve all bills using generic 'Query' endpoint\nContent-Type:application/text\nMethod - POST\n\n" + }, + "response": [] + }, + { + "name": "Bill-Create", + "request": { + "method": "POST", + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"DueDate\": \"2024-08-22\",\n \"VendorAddr\": {\n \"Id\": \"6\",\n \"Lat\": \"INVALID\",\n \"Long\": \"INVALID\"\n },\n \"Balance\": 150.00,\n \"domain\": \"QBO\",\n \"sparse\": false,\n \"SyncToken\": \"0\",\n \"TxnDate\": \"2024-07-01\",\n \"CurrencyRef\": {\n \"value\": \"USD\",\n \"name\": \"United States Dollar\"\n },\n \n \"Line\": [\n {\n \"Id\": \"1\",\n \"LineNum\": 1,\n \"Description\": \"Test bill postman line 1\",\n \"Amount\": 75,\n \n \"DetailType\": \"AccountBasedExpenseLineDetail\",\n \"AccountBasedExpenseLineDetail\": {\n \"CustomerRef\": {\n \"value\": \"1\",\n \"name\": \"Test Customer\"\n },\n \"AccountRef\": {\n \"value\": \"10\",\n \"name\": \"Advertising & marketing\"\n },\n \"BillableStatus\": \"Billable\",\n \"TaxCodeRef\": {\n \"value\": \"NON\"\n }\n },\n \"ProjectRef\": {\n \"value\": \"411372250\"\n }\n },\n\n {\n \"Id\": \"2\",\n \"LineNum\": 2,\n \"Description\": \"Test Line 2\",\n \"Amount\": 75.00,\n \n \"DetailType\": \"AccountBasedExpenseLineDetail\",\n \"AccountBasedExpenseLineDetail\": {\n \"CustomerRef\": {\n \"value\": \"1\",\n \"name\": \"Test Customer\"\n },\n \"AccountRef\": {\n \"value\": \"11\",\n \"name\": \"Building & property rent\"\n },\n \"BillableStatus\": \"Billable\",\n \"TaxCodeRef\": {\n \"value\": \"NON\"\n }\n },\n \"ProjectRef\": {\n \"value\": \"411372250\"\n }\n }\n ],\n \"Tag\": [],\n \"VendorRef\": {\n \"value\": \"4\",\n \"name\": \"Test Vendor\"\n },\n \"APAccountRef\": {\n \"value\": \"1150040000\",\n \"name\": \"Accounts Payable (A/P)\"\n },\n \"TotalAmt\": 200.00\n}" + }, + "url": { + "raw": "https://{{baseurl}}/v3/company/{{companyId}}/bill?minorversion={{minorversion}}", + "protocol": "https", + "host": [ + "{{baseurl}}" + ], + "path": [ + "v3", + "company", + "{{companyId}}", + "bill" + ], + "query": [ + { + "key": "minorversion", + "value": "{{minorversion}}" + } + ] + }, + "description": "Create a bill\nContent-Type:application/json\nMethod - POST" + }, + "response": [] + }, + { + "name": "Bill-GetById", + "request": { + "method": "GET", + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "url": { + "raw": "https://{{baseurl}}/v3/company/{{companyId}}/bill/5?minorversion={{minorversion}}", + "protocol": "https", + "host": [ + "{{baseurl}}" + ], + "path": [ + "v3", + "company", + "{{companyId}}", + "bill", + "5" + ], + "query": [ + { + "key": "minorversion", + "value": "{{minorversion}}" + } + ] + }, + "description": "Retrieve a bill by Id\nAccept:application/json\nMethod - GET" + }, + "response": [] + }, + { + "name": "Purchase-Query", + "request": { + "method": "POST", + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/text" + } + ], + "body": { + "mode": "raw", + "raw": "select * from purchase startposition 1 maxresults 5" + }, + "url": { + "raw": "https://{{baseurl}}/v3/company/{{companyId}}/query?minorversion={{minorversion}}", + "protocol": "https", + "host": [ + "{{baseurl}}" + ], + "path": [ + "v3", + "company", + "{{companyId}}", + "query" + ], + "query": [ + { + "key": "minorversion", + "value": "{{minorversion}}" + } + ] + }, + "description": "Read all purchase objects using the 'Query' endpoint\nMethod : POST\n" + }, + "response": [] + }, + { + "name": "Purchase-Create", + "request": { + "method": "POST", + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"AccountRef\": {\n \"value\": \"1150040001\",\n \"name\": \"Cash\"\n },\n \"PaymentType\": \"Cash\",\n \"EntityRef\": {\n \"value\": \"1\",\n \"name\": \"Test\",\n \"type\": \"Customer\"\n },\n \"TotalAmt\": 2000.00,\n \"PurchaseEx\": {\n \"any\": [\n {\n \"name\": \"{http://schema.intuit.com/finance/v3}NameValue\",\n \"declaredType\": \"com.intuit.schema.finance.v3.NameValue\",\n \"scope\": \"javax.xml.bind.JAXBElement$GlobalScope\",\n \"value\": {\n \"Name\": \"TxnType\",\n \"Value\": \"54\"\n },\n \"nil\": false,\n \"globalScope\": true,\n \"typeSubstituted\": false\n }\n ]\n },\n \"domain\": \"QBO\",\n \"sparse\": false,\n \"SyncToken\": \"0\",\n \"TxnDate\": \"2024-07-22\",\n \"CurrencyRef\": {\n \"value\": \"USD\",\n \"name\": \"United States Dollar\"\n },\n \n \"Line\": [\n {\n \"Id\": \"1\",\n \"Description\": \"Customer\",\n \"Amount\": 1000,\n \n \"DetailType\": \"AccountBasedExpenseLineDetail\",\n \"AccountBasedExpenseLineDetail\": {\n \"CustomerRef\": {\n \"value\": \"1\",\n \"name\": \"Test\"\n },\n \"AccountRef\": {\n \"value\": \"10\",\n \"name\": \"Advertising & marketing\"\n },\n \"BillableStatus\": \"Billable\",\n \"TaxCodeRef\": {\n \"value\": \"NON\"\n }\n }\n },\n {\n \"Id\": \"2\",\n \"Description\": \"Project\",\n \"Amount\": 1000,\n \n \"DetailType\": \"AccountBasedExpenseLineDetail\",\n \"AccountBasedExpenseLineDetail\": {\n \"CustomerRef\": {\n \"value\": \"1\",\n \"name\": \"Test Customer\"\n },\n \"AccountRef\": {\n \"value\": \"11\",\n \"name\": \"Building & property rent\"\n },\n \"BillableStatus\": \"Billable\",\n \"TaxCodeRef\": {\n \"value\": \"NON\"\n }\n },\n \"ProjectRef\": {\n \"value\": \"411372250\"\n }\n }\n ]\n}" + }, + "url": { + "raw": "https://{{baseurl}}/v3/company/{{companyId}}/purchase?minorversion={{minorversion}}", + "protocol": "https", + "host": [ + "{{baseurl}}" + ], + "path": [ + "v3", + "company", + "{{companyId}}", + "purchase" + ], + "query": [ + { + "key": "minorversion", + "value": "{{minorversion}}" + } + ] + }, + "description": "Create a puchase object\nMethod : POST\n" + }, + "response": [] + }, + { + "name": "Purchase-ReadById", + "request": { + "method": "GET", + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "url": { + "raw": "https://{{baseurl}}/v3/company/{{companyId}}/purchase/11?minorversion={{minorversion}}", + "protocol": "https", + "host": [ + "{{baseurl}}" + ], + "path": [ + "v3", + "company", + "{{companyId}}", + "purchase", + "11" + ], + "query": [ + { + "key": "minorversion", + "value": "{{minorversion}}" + } + ] + }, + "description": "Read a puchase object by Id\nMethod : POST\n" + }, + "response": [] + } + ], + "event": [ + { + "listen": "prerequest", + "script": { + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ] + } + }, + { + "listen": "test", + "script": { + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ] + } + } + ] + } + ] + }, + { + "name": "TimeActivity", + "item": [ + { + "name": "TimeActivity-Create", + "request": { + "auth": { + "type": "oauth2", + "oauth2": [ + { + "key": "accessToken", + "value": "eyJlbmMiOiJBMTI4Q0JDLUhTMjU2IiwiYWxnIjoiZGlyIn0..dgT0i4NBZG2HMBsejZ5UAA.h-g_24jMacdF26qSEcmbRglshLe82cRgf40D2P6A1QP6j-fo590Yt1GBKUYNH-bMRsVIs1F9b6bzynDC6urERHLDQ5l2dpcKViajG6LE1NpbzX2X4-A7vFGQ-fSvQxo09e-DJxBHWseVTo0rzx7N1KOaH3wjwfAOHPGrIVq5YWx15d0fzqvcfz9wby9A8lcK8YcERKGHh4WDKQCD4ss9I5wkroJ38g5onratXpUi6so8bwUwPRSyLRWzFHxZnSlp9rFCU-fTfFQ1S4vRuo6o2KLayrUXxrgyZjhzLNeCwH-du5U_7TsRlsWN_dmW-RukjesL3VFqQ5BrgRkBpa1-0sc8rf2MfkEjjDMc9h4jtaHubZXO20VOE2ngjj8uuBoZPC_zj3jE_WdsokrcE5gRHfcvYh7kNBe4YN6sTCipLV7iEal5u6hKNJxmiJmK5ui2h9PNr6HGDA87z-CtIkPQ7fyI8S3mmR2SxpOmHR5FctxvJberECUOkCoFDBIeDH-oUzQm-8-d3vZ3uiDLTdk4CNpQragf5KruPSJJQBlJf3Tm7HjwKqOx0nRkWCEtBYBZoaz5GbMD5tGEgtp_zxpTrIYu9XV2ABubhBfH8m2vN_Djf9L6licsnqtF-kYQchL48X50jgJkHIuETpv0_g69Nh1HCxl0sx-4Y5egF18b7wIJbTrBcIoQ_m3Cpn7BkzSE.yxbHaI0lgQ8gKfy_I9HPIA", + "type": "string" + }, + { + "key": "addTokenTo", + "value": "header", + "type": "string" + }, + { + "key": "tokenType", + "value": "bearer", + "type": "string" + } + ] + }, + "method": "POST", + "header": [ + { + "key": "User-Agent", + "value": "{{UserAgent}}" + }, + { + "key": "Accept", + "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": " {\n \"TxnDate\": \"2024-08-01T12:00:00Z\",\n \"NameOf\": \"Employee\",\n \"EmployeeRef\": { \"value\": \"1\" },\n \"CustomerRef\": {\n \"value\": \"2\"\n },\n \"ItemRef\": { \"value\": \"1\" },\n \"Hours\": 8,\n \"Minutes\": 0,\n \"Description\": \"Construction:DailyWork\"\n }" + }, + "url": { + "raw": "https://{{baseurl}}/v3/company/{{companyid}}/timeactivity?minorversion={{minorversion}}", + "protocol": "https", + "host": [ + "{{baseurl}}" + ], + "path": [ + "v3", + "company", + "{{companyid}}", + "timeactivity" + ], + "query": [ + { + "key": "minorversion", + "value": "{{minorversion}}", + "description": "69" + } + ] + }, + "description": "Create a term object\nMethod : POST\n\n" + }, + "response": [] + }, + { + "name": "TimeActivity-Create With PayType", + "request": { + "auth": { + "type": "oauth2", + "oauth2": [ + { + "key": "accessToken", + "value": "eyJlbmMiOiJBMTI4Q0JDLUhTMjU2IiwiYWxnIjoiZGlyIn0..dgT0i4NBZG2HMBsejZ5UAA.h-g_24jMacdF26qSEcmbRglshLe82cRgf40D2P6A1QP6j-fo590Yt1GBKUYNH-bMRsVIs1F9b6bzynDC6urERHLDQ5l2dpcKViajG6LE1NpbzX2X4-A7vFGQ-fSvQxo09e-DJxBHWseVTo0rzx7N1KOaH3wjwfAOHPGrIVq5YWx15d0fzqvcfz9wby9A8lcK8YcERKGHh4WDKQCD4ss9I5wkroJ38g5onratXpUi6so8bwUwPRSyLRWzFHxZnSlp9rFCU-fTfFQ1S4vRuo6o2KLayrUXxrgyZjhzLNeCwH-du5U_7TsRlsWN_dmW-RukjesL3VFqQ5BrgRkBpa1-0sc8rf2MfkEjjDMc9h4jtaHubZXO20VOE2ngjj8uuBoZPC_zj3jE_WdsokrcE5gRHfcvYh7kNBe4YN6sTCipLV7iEal5u6hKNJxmiJmK5ui2h9PNr6HGDA87z-CtIkPQ7fyI8S3mmR2SxpOmHR5FctxvJberECUOkCoFDBIeDH-oUzQm-8-d3vZ3uiDLTdk4CNpQragf5KruPSJJQBlJf3Tm7HjwKqOx0nRkWCEtBYBZoaz5GbMD5tGEgtp_zxpTrIYu9XV2ABubhBfH8m2vN_Djf9L6licsnqtF-kYQchL48X50jgJkHIuETpv0_g69Nh1HCxl0sx-4Y5egF18b7wIJbTrBcIoQ_m3Cpn7BkzSE.yxbHaI0lgQ8gKfy_I9HPIA", + "type": "string" + }, + { + "key": "addTokenTo", + "value": "header", + "type": "string" + }, + { + "key": "tokenType", + "value": "bearer", + "type": "string" + } + ] + }, + "method": "POST", + "header": [ + { + "key": "User-Agent", + "value": "{{UserAgent}}" + }, + { + "key": "Accept", + "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": " {\n \"TxnDate\": \"2024-08-01T12:00:00Z\",\n \"NameOf\": \"Employee\",\n \"EmployeeRef\": { \"value\": \"1\" },\n \"PayrollItemRef\": {\n \"value\": \"626270109\"\n },\n \"CustomerRef\": {\n \"value\": \"2\"\n },\n \"ItemRef\": { \"value\": \"1\" },\n \"Hours\": 8,\n \"Minutes\": 0,\n \"Description\": \"Construction:DailyWork\"\n }" + }, + "url": { + "raw": "https://{{baseurl}}/v3/company/{{companyid}}/timeactivity?minorversion={{minorversion}}", + "protocol": "https", + "host": [ + "{{baseurl}}" + ], + "path": [ + "v3", + "company", + "{{companyid}}", + "timeactivity" + ], + "query": [ + { + "key": "minorversion", + "value": "{{minorversion}}", + "description": "69" + } + ] + }, + "description": "Create a term object\nMethod : POST\n\n" + }, + "response": [] + }, + { + "name": "TimeActivity-Create WithPaytypeToProject", + "request": { + "auth": { + "type": "oauth2", + "oauth2": [ + { + "key": "accessToken", + "value": "eyJlbmMiOiJBMTI4Q0JDLUhTMjU2IiwiYWxnIjoiZGlyIn0..dgT0i4NBZG2HMBsejZ5UAA.h-g_24jMacdF26qSEcmbRglshLe82cRgf40D2P6A1QP6j-fo590Yt1GBKUYNH-bMRsVIs1F9b6bzynDC6urERHLDQ5l2dpcKViajG6LE1NpbzX2X4-A7vFGQ-fSvQxo09e-DJxBHWseVTo0rzx7N1KOaH3wjwfAOHPGrIVq5YWx15d0fzqvcfz9wby9A8lcK8YcERKGHh4WDKQCD4ss9I5wkroJ38g5onratXpUi6so8bwUwPRSyLRWzFHxZnSlp9rFCU-fTfFQ1S4vRuo6o2KLayrUXxrgyZjhzLNeCwH-du5U_7TsRlsWN_dmW-RukjesL3VFqQ5BrgRkBpa1-0sc8rf2MfkEjjDMc9h4jtaHubZXO20VOE2ngjj8uuBoZPC_zj3jE_WdsokrcE5gRHfcvYh7kNBe4YN6sTCipLV7iEal5u6hKNJxmiJmK5ui2h9PNr6HGDA87z-CtIkPQ7fyI8S3mmR2SxpOmHR5FctxvJberECUOkCoFDBIeDH-oUzQm-8-d3vZ3uiDLTdk4CNpQragf5KruPSJJQBlJf3Tm7HjwKqOx0nRkWCEtBYBZoaz5GbMD5tGEgtp_zxpTrIYu9XV2ABubhBfH8m2vN_Djf9L6licsnqtF-kYQchL48X50jgJkHIuETpv0_g69Nh1HCxl0sx-4Y5egF18b7wIJbTrBcIoQ_m3Cpn7BkzSE.yxbHaI0lgQ8gKfy_I9HPIA", + "type": "string" + }, + { + "key": "addTokenTo", + "value": "header", + "type": "string" + }, + { + "key": "tokenType", + "value": "bearer", + "type": "string" + } + ] + }, + "method": "POST", + "header": [ + { + "key": "User-Agent", + "value": "{{UserAgent}}" + }, + { + "key": "Accept", + "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": " {\n \"TxnDate\": \"2024-08-01T12:00:00Z\",\n \"NameOf\": \"Employee\",\n \"EmployeeRef\": { \"value\": \"1\" },\n \"PayrollItemRef\": {\n \"value\": \"626270109\"\n },\n \"CustomerRef\": {\n \"value\": \"2\"\n },\n \"ProjectRef\": {\n \"value\":\"416296152\"\n },\n \"ItemRef\": { \"value\": \"1\" },\n \"Hours\": 8,\n \"Minutes\": 0,\n \"Description\": \"Construction:DailyWork\"\n }" + }, + "url": { + "raw": "https://{{baseurl}}/v3/company/{{companyid}}/timeactivity?minorversion={{minorversion}}", + "protocol": "https", + "host": [ + "{{baseurl}}" + ], + "path": [ + "v3", + "company", + "{{companyid}}", + "timeactivity" + ], + "query": [ + { + "key": "minorversion", + "value": "{{minorversion}}", + "description": "69" + } + ] + }, + "description": "Create a term object\nMethod : POST\n\n" + }, + "response": [] + }, + { + "name": "TimeActivity-Create-Contractor(Vendor)", + "request": { + "auth": { + "type": "oauth2", + "oauth2": [ + { + "key": "accessToken", + "value": "eyJlbmMiOiJBMTI4Q0JDLUhTMjU2IiwiYWxnIjoiZGlyIn0..dgT0i4NBZG2HMBsejZ5UAA.h-g_24jMacdF26qSEcmbRglshLe82cRgf40D2P6A1QP6j-fo590Yt1GBKUYNH-bMRsVIs1F9b6bzynDC6urERHLDQ5l2dpcKViajG6LE1NpbzX2X4-A7vFGQ-fSvQxo09e-DJxBHWseVTo0rzx7N1KOaH3wjwfAOHPGrIVq5YWx15d0fzqvcfz9wby9A8lcK8YcERKGHh4WDKQCD4ss9I5wkroJ38g5onratXpUi6so8bwUwPRSyLRWzFHxZnSlp9rFCU-fTfFQ1S4vRuo6o2KLayrUXxrgyZjhzLNeCwH-du5U_7TsRlsWN_dmW-RukjesL3VFqQ5BrgRkBpa1-0sc8rf2MfkEjjDMc9h4jtaHubZXO20VOE2ngjj8uuBoZPC_zj3jE_WdsokrcE5gRHfcvYh7kNBe4YN6sTCipLV7iEal5u6hKNJxmiJmK5ui2h9PNr6HGDA87z-CtIkPQ7fyI8S3mmR2SxpOmHR5FctxvJberECUOkCoFDBIeDH-oUzQm-8-d3vZ3uiDLTdk4CNpQragf5KruPSJJQBlJf3Tm7HjwKqOx0nRkWCEtBYBZoaz5GbMD5tGEgtp_zxpTrIYu9XV2ABubhBfH8m2vN_Djf9L6licsnqtF-kYQchL48X50jgJkHIuETpv0_g69Nh1HCxl0sx-4Y5egF18b7wIJbTrBcIoQ_m3Cpn7BkzSE.yxbHaI0lgQ8gKfy_I9HPIA", + "type": "string" + }, + { + "key": "addTokenTo", + "value": "header", + "type": "string" + }, + { + "key": "tokenType", + "value": "bearer", + "type": "string" + } + ] + }, + "method": "POST", + "header": [ + { + "key": "User-Agent", + "value": "{{UserAgent}}" + }, + { + "key": "Accept", + "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": " {\n \"TxnDate\": \"2024-08-01T12:00:00Z\",\n \"NameOf\": \"Vendor\",\n \"VendorRef\": { \"value\": \"5\" },\n \"ItemRef\": { \"value\": \"1\" },\n \"Hours\": 8,\n \"Minutes\": 0,\n \"Description\": \"Construction:DailyWork\"\n }\n" + }, + "url": { + "raw": "https://{{baseurl}}/v3/company/{{companyid}}/timeactivity?minorversion={{minorversion}}", + "protocol": "https", + "host": [ + "{{baseurl}}" + ], + "path": [ + "v3", + "company", + "{{companyid}}", + "timeactivity" + ], + "query": [ + { + "key": "minorversion", + "value": "{{minorversion}}", + "description": "69" + } + ] + }, + "description": "Create a term object\nMethod : POST\n\n" + }, + "response": [] + }, + { + "name": "TimeActivity-Create-Contractor(Vendor)ToProject", + "request": { + "auth": { + "type": "oauth2", + "oauth2": [ + { + "key": "accessToken", + "value": "eyJlbmMiOiJBMTI4Q0JDLUhTMjU2IiwiYWxnIjoiZGlyIn0..dgT0i4NBZG2HMBsejZ5UAA.h-g_24jMacdF26qSEcmbRglshLe82cRgf40D2P6A1QP6j-fo590Yt1GBKUYNH-bMRsVIs1F9b6bzynDC6urERHLDQ5l2dpcKViajG6LE1NpbzX2X4-A7vFGQ-fSvQxo09e-DJxBHWseVTo0rzx7N1KOaH3wjwfAOHPGrIVq5YWx15d0fzqvcfz9wby9A8lcK8YcERKGHh4WDKQCD4ss9I5wkroJ38g5onratXpUi6so8bwUwPRSyLRWzFHxZnSlp9rFCU-fTfFQ1S4vRuo6o2KLayrUXxrgyZjhzLNeCwH-du5U_7TsRlsWN_dmW-RukjesL3VFqQ5BrgRkBpa1-0sc8rf2MfkEjjDMc9h4jtaHubZXO20VOE2ngjj8uuBoZPC_zj3jE_WdsokrcE5gRHfcvYh7kNBe4YN6sTCipLV7iEal5u6hKNJxmiJmK5ui2h9PNr6HGDA87z-CtIkPQ7fyI8S3mmR2SxpOmHR5FctxvJberECUOkCoFDBIeDH-oUzQm-8-d3vZ3uiDLTdk4CNpQragf5KruPSJJQBlJf3Tm7HjwKqOx0nRkWCEtBYBZoaz5GbMD5tGEgtp_zxpTrIYu9XV2ABubhBfH8m2vN_Djf9L6licsnqtF-kYQchL48X50jgJkHIuETpv0_g69Nh1HCxl0sx-4Y5egF18b7wIJbTrBcIoQ_m3Cpn7BkzSE.yxbHaI0lgQ8gKfy_I9HPIA", + "type": "string" + }, + { + "key": "addTokenTo", + "value": "header", + "type": "string" + }, + { + "key": "tokenType", + "value": "bearer", + "type": "string" + } + ] + }, + "method": "POST", + "header": [ + { + "key": "User-Agent", + "value": "{{UserAgent}}" + }, + { + "key": "Accept", + "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": " {\n \"TxnDate\": \"2024-08-01T12:00:00Z\",\n \"NameOf\": \"Vendor\",\n \"VendorRef\": { \"value\": \"5\" },\n \"CustomerRef\": {\n \"value\": \"2\"\n },\n \"ProjectRef\": {\n \"value\":\"416296152\"\n },\n \"ItemRef\": { \"value\": \"1\" },\n \"Hours\": 8,\n \"Minutes\": 0,\n \"Description\": \"Construction:DailyWork\"\n }" + }, + "url": { + "raw": "https://{{baseurl}}/v3/company/{{companyid}}/timeactivity?minorversion={{minorversion}}", + "protocol": "https", + "host": [ + "{{baseurl}}" + ], + "path": [ + "v3", + "company", + "{{companyid}}", + "timeactivity" + ], + "query": [ + { + "key": "minorversion", + "value": "{{minorversion}}", + "description": "69" + } + ] + }, + "description": "Create a term object\nMethod : POST\n\n" + }, + "response": [] + }, + { + "name": "TimeActivity-Update", + "request": { + "auth": { + "type": "oauth2", + "oauth2": [ + { + "key": "accessToken", + "value": "eyJlbmMiOiJBMTI4Q0JDLUhTMjU2IiwiYWxnIjoiZGlyIn0..dgT0i4NBZG2HMBsejZ5UAA.h-g_24jMacdF26qSEcmbRglshLe82cRgf40D2P6A1QP6j-fo590Yt1GBKUYNH-bMRsVIs1F9b6bzynDC6urERHLDQ5l2dpcKViajG6LE1NpbzX2X4-A7vFGQ-fSvQxo09e-DJxBHWseVTo0rzx7N1KOaH3wjwfAOHPGrIVq5YWx15d0fzqvcfz9wby9A8lcK8YcERKGHh4WDKQCD4ss9I5wkroJ38g5onratXpUi6so8bwUwPRSyLRWzFHxZnSlp9rFCU-fTfFQ1S4vRuo6o2KLayrUXxrgyZjhzLNeCwH-du5U_7TsRlsWN_dmW-RukjesL3VFqQ5BrgRkBpa1-0sc8rf2MfkEjjDMc9h4jtaHubZXO20VOE2ngjj8uuBoZPC_zj3jE_WdsokrcE5gRHfcvYh7kNBe4YN6sTCipLV7iEal5u6hKNJxmiJmK5ui2h9PNr6HGDA87z-CtIkPQ7fyI8S3mmR2SxpOmHR5FctxvJberECUOkCoFDBIeDH-oUzQm-8-d3vZ3uiDLTdk4CNpQragf5KruPSJJQBlJf3Tm7HjwKqOx0nRkWCEtBYBZoaz5GbMD5tGEgtp_zxpTrIYu9XV2ABubhBfH8m2vN_Djf9L6licsnqtF-kYQchL48X50jgJkHIuETpv0_g69Nh1HCxl0sx-4Y5egF18b7wIJbTrBcIoQ_m3Cpn7BkzSE.yxbHaI0lgQ8gKfy_I9HPIA", + "type": "string" + }, + { + "key": "addTokenTo", + "value": "header", + "type": "string" + }, + { + "key": "tokenType", + "value": "bearer", + "type": "string" + } + ] + }, + "method": "POST", + "header": [ + { + "key": "User-Agent", + "value": "{{UserAgent}}" + }, + { + "key": "Accept", + "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"TxnDate\": \"2024-08-01\",\n \"NameOf\": \"Employee\",\n \"EmployeeRef\": {\n \"value\": \"1\"\n },\n \"ItemRef\": {\n \"value\": \"2\",\n \"name\": \"Hours\"\n },\n \"BillableStatus\": \"NotBillable\",\n \"Taxable\": false,\n \"HourlyRate\": 0,\n \"StartTime\": \"2024-08-01T09:00:00-07:00\",\n \"EndTime\": \"2024-08-01T18:00:00-07:00\",\n \"domain\": \"QBO\",\n \"sparse\": false,\n \"Id\": \"6\",\n \"SyncToken\": \"0\"\n }" + }, + "url": { + "raw": "https://{{baseurl}}/v3/company/{{companyid}}/timeactivity?minorversion={{minorversion}}", + "protocol": "https", + "host": [ + "{{baseurl}}" + ], + "path": [ + "v3", + "company", + "{{companyid}}", + "timeactivity" + ], + "query": [ + { + "key": "minorversion", + "value": "{{minorversion}}" + } + ] + }, + "description": "Update a term object\nMethod : POST\n\n" + }, + "response": [] + }, + { + "name": "TimeActivity-ReadById", + "protocolProfileBehavior": { + "disableBodyPruning": true + }, + "request": { + "auth": { + "type": "oauth2", + "oauth2": [ + { + "key": "accessToken", + "value": "eyJlbmMiOiJBMTI4Q0JDLUhTMjU2IiwiYWxnIjoiZGlyIn0..dgT0i4NBZG2HMBsejZ5UAA.h-g_24jMacdF26qSEcmbRglshLe82cRgf40D2P6A1QP6j-fo590Yt1GBKUYNH-bMRsVIs1F9b6bzynDC6urERHLDQ5l2dpcKViajG6LE1NpbzX2X4-A7vFGQ-fSvQxo09e-DJxBHWseVTo0rzx7N1KOaH3wjwfAOHPGrIVq5YWx15d0fzqvcfz9wby9A8lcK8YcERKGHh4WDKQCD4ss9I5wkroJ38g5onratXpUi6so8bwUwPRSyLRWzFHxZnSlp9rFCU-fTfFQ1S4vRuo6o2KLayrUXxrgyZjhzLNeCwH-du5U_7TsRlsWN_dmW-RukjesL3VFqQ5BrgRkBpa1-0sc8rf2MfkEjjDMc9h4jtaHubZXO20VOE2ngjj8uuBoZPC_zj3jE_WdsokrcE5gRHfcvYh7kNBe4YN6sTCipLV7iEal5u6hKNJxmiJmK5ui2h9PNr6HGDA87z-CtIkPQ7fyI8S3mmR2SxpOmHR5FctxvJberECUOkCoFDBIeDH-oUzQm-8-d3vZ3uiDLTdk4CNpQragf5KruPSJJQBlJf3Tm7HjwKqOx0nRkWCEtBYBZoaz5GbMD5tGEgtp_zxpTrIYu9XV2ABubhBfH8m2vN_Djf9L6licsnqtF-kYQchL48X50jgJkHIuETpv0_g69Nh1HCxl0sx-4Y5egF18b7wIJbTrBcIoQ_m3Cpn7BkzSE.yxbHaI0lgQ8gKfy_I9HPIA", + "type": "string" + }, + { + "key": "addTokenTo", + "value": "header", + "type": "string" + }, + { + "key": "tokenType", + "value": "bearer", + "type": "string" + } + ] + }, + "method": "GET", + "header": [ + { + "key": "User-Agent", + "value": "{{UserAgent}}" + }, + { + "key": "Accept", + "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "" + }, + "url": { + "raw": "https://{{baseurl}}/v3/company/{{companyid}}/timeactivity/?minorversion={{minorversion}}", + "protocol": "https", + "host": [ + "{{baseurl}}" + ], + "path": [ + "v3", + "company", + "{{companyid}}", + "timeactivity", + "" + ], + "query": [ + { + "key": "minorversion", + "value": "{{minorversion}}" + } + ] + }, + "description": "Read a term object by Id\nMethod : GET\n\n" + }, + "response": [] + }, + { + "name": "TimeActivity-Delete", + "request": { + "auth": { + "type": "oauth2", + "oauth2": [ + { + "key": "accessToken", + "value": "eyJlbmMiOiJBMTI4Q0JDLUhTMjU2IiwiYWxnIjoiZGlyIn0..dgT0i4NBZG2HMBsejZ5UAA.h-g_24jMacdF26qSEcmbRglshLe82cRgf40D2P6A1QP6j-fo590Yt1GBKUYNH-bMRsVIs1F9b6bzynDC6urERHLDQ5l2dpcKViajG6LE1NpbzX2X4-A7vFGQ-fSvQxo09e-DJxBHWseVTo0rzx7N1KOaH3wjwfAOHPGrIVq5YWx15d0fzqvcfz9wby9A8lcK8YcERKGHh4WDKQCD4ss9I5wkroJ38g5onratXpUi6so8bwUwPRSyLRWzFHxZnSlp9rFCU-fTfFQ1S4vRuo6o2KLayrUXxrgyZjhzLNeCwH-du5U_7TsRlsWN_dmW-RukjesL3VFqQ5BrgRkBpa1-0sc8rf2MfkEjjDMc9h4jtaHubZXO20VOE2ngjj8uuBoZPC_zj3jE_WdsokrcE5gRHfcvYh7kNBe4YN6sTCipLV7iEal5u6hKNJxmiJmK5ui2h9PNr6HGDA87z-CtIkPQ7fyI8S3mmR2SxpOmHR5FctxvJberECUOkCoFDBIeDH-oUzQm-8-d3vZ3uiDLTdk4CNpQragf5KruPSJJQBlJf3Tm7HjwKqOx0nRkWCEtBYBZoaz5GbMD5tGEgtp_zxpTrIYu9XV2ABubhBfH8m2vN_Djf9L6licsnqtF-kYQchL48X50jgJkHIuETpv0_g69Nh1HCxl0sx-4Y5egF18b7wIJbTrBcIoQ_m3Cpn7BkzSE.yxbHaI0lgQ8gKfy_I9HPIA", + "type": "string" + }, + { + "key": "addTokenTo", + "value": "header", + "type": "string" + }, + { + "key": "tokenType", + "value": "bearer", + "type": "string" + } + ] + }, + "method": "POST", + "header": [ + { + "key": "User-Agent", + "value": "{{UserAgent}}" + }, + { + "key": "Accept", + "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"Id\": \"6\",\n \"SyncToken\": \"1\"\n}" + }, + "url": { + "raw": "https://{{baseurl}}/v3/company/{{companyid}}/timeactivity?operation=delete", + "protocol": "https", + "host": [ + "{{baseurl}}" + ], + "path": [ + "v3", + "company", + "{{companyid}}", + "timeactivity" + ], + "query": [ + { + "key": "operation", + "value": "delete" + } + ] + }, + "description": "Delete a time-activity object by Id\nMethod : POST\n\n" + }, + "response": [] + }, + { + "name": "TimeActivity-ReadAll", + "request": { + "method": "POST", + "header": [ + { + "key": "User-Agent", + "value": "{{UserAgent}}" + }, + { + "key": "Accept", + "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/text" + } + ], + "body": { + "mode": "raw", + "raw": "select * from timeactivity startposition 1 maxresults 5" + }, + "url": { + "raw": "https://{{baseurl}}/v3/company/{{companyid}}/query?minorversion={{minorversion}}", + "protocol": "https", + "host": [ + "{{baseurl}}" + ], + "path": [ + "v3", + "company", + "{{companyid}}", + "query" + ], + "query": [ + { + "key": "minorversion", + "value": "{{minorversion}}" + } + ] + }, + "description": "Read all timeactivity objects using the 'Query' endpoint\nMethod : POST\n" + }, + "response": [] + } + ], + "description": "https://developer.intuit.com/docs/api/accounting/timeactivity\n\nThe TimeActivity object represents a record of time worked by a vendor or employee.\n\n" + } + ], + "auth": { + "type": "oauth2", + "oauth2": [ + { + "key": "client_authentication", + "value": "body", + "type": "string" + }, + { + "key": "tokenName", + "value": "Token", + "type": "string" + }, + { + "key": "addTokenTo", + "value": "header", + "type": "string" + }, + { + "key": "clientSecret", + "value": "{{clientsecret-prd-alphademo}}", + "type": "string" + }, + { + "key": "clientId", + "value": "{{clientid-prd-alphademo}}", + "type": "string" + }, + { + "key": "scope", + "value": "{{Scope_AllAphaScope}}", + "type": "string" + }, + { + "key": "state", + "value": "{{$guid}}", + "type": "string" + }, + { + "key": "accessTokenUrl", + "value": "{{token_endpoint}}", + "type": "string" + }, + { + "key": "authUrl", + "value": "{{auth_endpoint}}", + "type": "string" + }, + { + "key": "useBrowser", + "value": true, + "type": "boolean" + } + ] + }, + "event": [ + { + "listen": "prerequest", + "script": { + "type": "text/javascript", + "exec": [ + "" + ] + } + }, + { + "listen": "test", + "script": { + "type": "text/javascript", + "exec": [ + "" + ] + } + } + ] +} \ No newline at end of file diff --git a/assets/files/IntuitAPI_PostmanCollections_V3.json b/assets/files/IntuitAPI_PostmanCollections_V3.json new file mode 100644 index 0000000..aa6419e --- /dev/null +++ b/assets/files/IntuitAPI_PostmanCollections_V3.json @@ -0,0 +1,3017 @@ +{ + "info": { + "_postman_id": "2739848d-3317-4454-8f28-8cf7e0a14063", + "name": "Alpha API -Collections", + "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json", + "_exporter_id": "35091101" + }, + "item": [ + { + "name": "Time", + "item": [ + { + "name": "QueryTimeEntryByDateRange", + "event": [ + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript" + } + }, + { + "listen": "test", + "script": { + "exec": [ + "" + ], + "type": "text/javascript" + } + } + ], + "protocolProfileBehavior": { + "followRedirects": true + }, + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "query readTimeByDateRange (\n $after: String,\n $first: Int,\n $filter: TimeTracking_TimeEntryInputFilter,\n $orderBy: [TimeTracking_TimeEntryOrderBy] ) {\n timeTrackingTimeEntries( \n after: $after,\n first: $first,\n filter: $filter,\n orderBy: $orderBy\n )\n {\n edges {\n node {\n id\n meta {\n updatedAt\n }\n timeFor {\n ... on WorkerManagement_Employee {\n id\n }\n }\n serviceItem {\n id\n }\n entryMethod\n startDate\n entryMethod\n startTime\n endTime\n duration\n notes\n employeeCompensation {\n id\n }\n billable\n }\n }\n pageInfo {\n hasNextPage\n hasPreviousPage\n startCursor\n endCursor\n }\n }\n}", + "variables": "{\n\"after\":null,\n\"first\":1,\n \"filter\": {\n \"dateRange\": {\"beginDate\": \"2024-06-01\", \"endDate\": \"2024-06-30\"\n }\n },\n \"orderBy\": [\"START_ASC\",\"START_DESC\",\"END_ASC\",\n \"END_DESC\",\"DURATION_ASC\",\"DURATION_DESC\"\n ] \n }\n" + } + }, + "url": { + "raw": "https://qb.api.intuit.com/graphql", + "protocol": "https", + "host": [ + "qb", + "api", + "intuit", + "com" + ], + "path": [ + "graphql" + ] + }, + "description": "### Request Description\n\nThis endpoint is a POST request to [https://qb.api.intuit.com/graphql](https://qb.api.intuit.com/graphql). The request payload has an undefined request body type.\n\n### Response\n\nThe response is in JSON format and returns a status of 200. Below is the JSON schema for the response:\n\n``` json\n{\n \"data\": {\n \"timeTrackingTimeEntries\": {\n \"edges\": [\n {\n \"cursor\": \"\",\n \"node\": {\n \"id\": \"\",\n \"meta\": {\n \"updatedAt\": \"\"\n },\n \"timeFor\": {\n \"__typename\": \"\",\n \"id\": \"\"\n },\n \"timeAgainst\": {\n \"__typename\": \"\",\n \"id\": \"\"\n },\n \"entryMethod\": \"\",\n \"startDate\": \"\",\n \"startTime\": null,\n \"endTime\": null,\n \"duration\": 0,\n \"timezone\": \"\",\n \"notes\": \"\",\n \"attachedFileCount\": {\n \"attachmentCount\": 0,\n \"signatureCount\": 0\n },\n \"employeeCompensation\": null,\n \"billable\": true,\n \"state\": \"\",\n \"locked\": true,\n \"lockedReasons\": []\n }\n }\n ],\n \"pageInfo\": {\n \"hasNextPage\": true,\n \"hasPreviousPage\": true,\n \"startCursor\": \"\",\n \"endCursor\": \"\"\n }\n }\n }\n}\n\n ```" + }, + "response": [] + }, + { + "name": "QueryTimeEntryByIDList", + "event": [ + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript" + } + }, + { + "listen": "test", + "script": { + "exec": [ + "" + ], + "type": "text/javascript" + } + } + ], + "protocolProfileBehavior": { + "followRedirects": true + }, + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "query readMinimalTimeSheet (\n $after: String,\n $first: Int,\n $filter: TimeTracking_TimeEntryInputFilter,\n $orderBy: [TimeTracking_TimeEntryOrderBy]\n) {\n timeTrackingTimeEntries( \n after: $after,\n first: $first,\n filter: $filter,\n orderBy: $orderBy\n )\n {\n edges {\n node {\n id\n duration\n entryMethod\n startDate\n entryMethod\n startTime\n endTime\n duration\n notes\n employeeCompensation {\n id\n }\n billable\n }\n }\n pageInfo {\n hasNextPage\n hasPreviousPage\n startCursor\n endCursor\n }\n }\n}\n", + "variables": "{\n\"after\":null,\n\"first\":1,\n \"filter\": {\n \"ids\":[111]\n },\n \"orderBy\": [\"START_ASC\",\"START_DESC\",\"END_ASC\",\n \"END_DESC\",\"DURATION_ASC\",\"DURATION_DESC\"\n ] \n }\n" + } + }, + "url": { + "raw": "https://qb.api.intuit.com/graphql", + "protocol": "https", + "host": [ + "qb", + "api", + "intuit", + "com" + ], + "path": [ + "graphql" + ] + }, + "description": "### Request Description\n\nThis endpoint is a POST request to [https://qb.api.intuit.com/graphql](https://qb.api.intuit.com/graphql). The request payload has an undefined request body type.\n\n### Response\n\nThe response is in JSON format and returns a status of 200. Below is the JSON schema for the response:\n\n``` json\n{\n \"data\": {\n \"timeTrackingTimeEntries\": {\n \"edges\": [\n {\n \"cursor\": \"\",\n \"node\": {\n \"id\": \"\",\n \"meta\": {\n \"updatedAt\": \"\"\n },\n \"timeFor\": {\n \"__typename\": \"\",\n \"id\": \"\"\n },\n \"timeAgainst\": {\n \"__typename\": \"\",\n \"id\": \"\"\n },\n \"entryMethod\": \"\",\n \"startDate\": \"\",\n \"startTime\": null,\n \"endTime\": null,\n \"duration\": 0,\n \"timezone\": \"\",\n \"notes\": \"\",\n \"attachedFileCount\": {\n \"attachmentCount\": 0,\n \"signatureCount\": 0\n },\n \"employeeCompensation\": null,\n \"billable\": true,\n \"state\": \"\",\n \"locked\": true,\n \"lockedReasons\": []\n }\n }\n ],\n \"pageInfo\": {\n \"hasNextPage\": true,\n \"hasPreviousPage\": true,\n \"startCursor\": \"\",\n \"endCursor\": \"\"\n }\n }\n }\n}\n\n ```" + }, + "response": [] + }, + { + "name": "MutationCreateTimeEntry", + "event": [ + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript" + } + }, + { + "listen": "test", + "script": { + "exec": [ + "" + ], + "type": "text/javascript" + } + } + ], + "protocolProfileBehavior": { + "followRedirects": true + }, + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "mutation createTimeEntryByDuration ($input: TimeTracking_CreateTimeEntryByDurationInput!) {\n timeTrackingCreateTimeEntryByDuration(input: $input) {\n ... on TimeTracking_CreateTimeEntryByDurationPayload {\n successCode\n timeEntry {\n id\n meta {\n updatedAt\n }\n timeFor {\n ... on WorkerManagement_Employee {\n id\n }\n }\n entryMethod\n startDate\n startTime\n endTime\n notes\n serviceItem {\n id\n }\n employeeCompensation {\n id\n }\n billable\n }\n }\n ... on TimeTracking_CreateTimeEntryByDurationError {\n errorCode\n }\n }\n}", + "variables": " {\n \"input\": {\n \"timeFor\": { \"id\": 3, \n \"entityType\": \"EMPLOYEE\" \n } ,\n \"startDate\": \"2024-06-27\",\n \"duration\": 30,\n \"timeAgainst\": { \n \"id\": 51579212,\n \t \"entityType\": \"PROJECT\"\n },\n \"employeeCompensationId\": \"23348984\", // Regular\n \"serviceItemId\": 1,\n \"billable\": true,\n \"notes\": \"test note employee timeentry with regular timeoff\"\n }\n }" + } + }, + "url": { + "raw": "https://qb.api.intuit.com/graphql", + "protocol": "https", + "host": [ + "qb", + "api", + "intuit", + "com" + ], + "path": [ + "graphql" + ] + } + }, + "response": [] + }, + { + "name": "MutationUpdateTimeEntry", + "event": [ + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + }, + { + "listen": "test", + "script": { + "exec": [ + "" + ], + "type": "text/javascript", + "packages": {} + } + } + ], + "protocolProfileBehavior": { + "followRedirects": true + }, + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "mutation updateTimesheetByDuration ($input: TimeTracking_UpdateTimeEntryByDurationInput!) {\n timeTrackingUpdateTimeEntryByDuration (input: $input) {\n ... on TimeTracking_UpdateTimeEntryByDurationPayload {\n successCode\n timeEntry {\n id\n startDate\n duration\n billable\n serviceItem {\n id\n }\n classValue {\n id\n }\n employeeCompensation {\n id\n }\n }\n }\n ... on TimeTracking_UpdateTimeEntryByDurationError {\n errorCode\n }\n }\n }", + "variables": " {\n \"input\": {\n \"id\": 666350208,\n \"duration\": 40, \n \"serviceItemId\": 1,\n \"employeeCompensationId\": null,\n \"timeAgainst\": {\n \"id\": 1, \n \"entityType\": \"CUSTOMER\"\n } ,\n \"billable\": true, \n \"notes\": \"update mutation testing\"\n }\n}\n " + } + }, + "url": { + "raw": "https://qb.api.intuit.com/graphql", + "protocol": "https", + "host": [ + "qb", + "api", + "intuit", + "com" + ], + "path": [ + "graphql" + ] + } + }, + "response": [] + }, + { + "name": "MutationDeleteTimeEntry", + "event": [ + { + "listen": "prerequest", + "script": { + "exec": [ + "" + ], + "type": "text/javascript" + } + }, + { + "listen": "test", + "script": { + "exec": [ + "" + ], + "type": "text/javascript" + } + } + ], + "protocolProfileBehavior": { + "followRedirects": true + }, + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "mutation timeTrackingDeleteTimesheet($input: TimeTracking_DeleteTimeEntryInput!) {\n timeTrackingDeleteTimeEntry (input: $input) {\n ...on TimeTracking_DeleteTimeEntryPayload {\n successCode\n deletedTimeEntryId\n }\n ... on TimeTracking_DeleteTimeEntryError {\n errorCode\n }\n }\n }", + "variables": "{\n \"input\": {\n \"id\": 96495048\n }\n}" + } + }, + "url": { + "raw": "https://qb.api.intuit.com/graphql", + "protocol": "https", + "host": [ + "qb", + "api", + "intuit", + "com" + ], + "path": [ + "graphql" + ] + } + }, + "response": [] + } + ] + }, + { + "name": "EmployeeCompensation", + "item": [ + { + "name": "queryEmployeeCompensation", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "graphql", + "graphql": { + "query": "query getEmployeeCompensations($filter: Payroll_EmployeeCompensationsFilter!) {\n payrollEmployeeCompensations(filter: $filter ){\n \tedges {\n \tnode {\n \t id\n active\n \t employerCompensation {\n id\n name\n type {\n key\n description\n value\n }\n \t }\n \t }\n }\n }\n }", + "variables": "{\n \"filter\": {\n \"employeeId\": \"1\", \n \"active\": true\n }\n }" + } + }, + "url": { + "raw": "https://qb.api.intuit.com/graphql", + "protocol": "https", + "host": [ + "qb", + "api", + "intuit", + "com" + ], + "path": [ + "graphql" + ] + } + }, + "response": [] + } + ] + }, + { + "name": "Project", + "item": [ + { + "name": "query", + "item": [ + { + "name": "queryDateRange", + "request": { + "method": "POST", + "header": [ + { + "key": "accept", + "value": "application/json;charset=UTF-8", + "type": "text" + }, + { + "key": "Content-Type", + "value": "application/json;charset=UTF-8", + "type": "text" + } + ], + "body": { + "mode": "graphql", + "graphql": { + "query": "query projectManagementProjects(\n $first: PositiveInt!,\n $after: String,\n $filter: ProjectManagement_ProjectFilter!,\n $orderBy: [ProjectManagement_OrderBy!]\n) {\n projectManagementProjects(\n first: $first,\n after: $after,\n filter: $filter,\n orderBy: $orderBy\n ) {\n edges {\n node {\n id,\n name,\n description,\n startDate,\n dueDate,\n completedDate,\n status,\n customer{\n id\n },\n account{\n id\n },\n priority,\n emailAddress {\n email,\n name\n },\n addresses {\n streetAddressLine1,\n streetAddressLine2,\n streetAddressLine3\n state,\n postalCode\n } \n }\n }\n pageInfo {\n hasNextPage\n hasPreviousPage\n startCursor\n endCursor\n }\n }\n}\n", + "variables": "{\n \"first\": 5,\n \"after\": null,\n \"filter\": {\n \"dueDate\": {\n \"between\": {\n \"minDate\": \"2024-04-01T18:47:25.123456789-07:00\",\n \"maxDate\": \"2024-12-05T18:47:25.123456789-07:00\"\n }\n }\n },\n \"orderBy\": [\"DUE_DATE_DESC\"]\n}\n" + } + }, + "url": { + "raw": "https://qb.api.intuit.com/graphql", + "protocol": "https", + "host": [ + "qb", + "api", + "intuit", + "com" + ], + "path": [ + "graphql" + ] + } + }, + "response": [] + }, + { + "name": "queryByProjectID", + "request": { + "method": "POST", + "header": [ + { + "key": "accept", + "value": "application/json;charset=UTF-8", + "type": "text" + }, + { + "key": "Content-Type", + "value": "application/json;charset=UTF-8", + "type": "text" + } + ], + "body": { + "mode": "graphql", + "graphql": { + "query": "query projectManagementProject($id: ID!) {\n projectManagementProject(id: $id) {\n id,\n name,\n description,\n startDate,\n dueDate,\n completedDate,\n status,\n customer{\n id\n },\n account{\n id\n },\n priority,\n pinned,\n emailAddress {\n email,\n name\n },\n addresses {\n streetAddressLine1,\n streetAddressLine2,\n streetAddressLine3\n state,\n postalCode\n } \n }\n }", + "variables": "{\n \"id\" : 53363419\n}" + } + }, + "url": { + "raw": "https://qb.api.intuit.com/graphql", + "protocol": "https", + "host": [ + "qb", + "api", + "intuit", + "com" + ], + "path": [ + "graphql" + ] + } + }, + "response": [] + } + ] + }, + { + "name": "createMutation", + "item": [ + { + "name": "createProject", + "request": { + "method": "POST", + "header": [ + { + "key": "accept", + "value": "application/json;charset=UTF-8", + "type": "text" + }, + { + "key": "Content-Type", + "value": "application/json;charset=UTF-8", + "type": "text" + } + ], + "body": { + "mode": "graphql", + "graphql": { + "query": "mutation ProjectManagementCreateProject($name: String!, \n $description: String,\n $startDate: DateTime,\n $dueDate: DateTime!, \n $status: ProjectManagement_Status,\n $customer: ProjectManagement_CustomerInput,\n $account: ProjectManagement_CompanyInput!,\n $priority: Int,\n $pinned: Boolean,\n $completionRate: Decimal,\n $emailAddress: [Qb_EmailAddressInput],\n $addresses: [Qb_PostalAddressInput]\n) {\n projectManagementCreateProject(input:{\n name: $name,\n description: $description,\n startDate : $startDate,\n dueDate : $dueDate,\n status: $status\n customer: $customer, \n account: $account,\n priority: $priority,\n pinned: $pinned,\n completionRate: $completionRate,\n emailAddress: $emailAddress,\n addresses: $addresses,\n }\n )\n {\n ... on ProjectManagement_Project {\n id,\n name,\n description,\n startDate,\n dueDate,\n status,\n priority,\n customer{\n id\n },\n account{\n id\n },\n priority,\n pinned,\n emailAddress {\n email,\n name\n }\n addresses {\n streetAddressLine1,\n streetAddressLine2,\n streetAddressLine3\n state,\n postalCode\n } \n }\n }\n }", + "variables": "{\n \"name\": \"Demo Project\",\n \"description\": \"Test Demo Project\",\n \"startDate:\": \"2024-07-05T00:00:00.000Z\",\n \"dueDate\": \"2024-07-31T00:00:00.000Z\",\n \"status\": \"OPEN\",\n \"customer\": {\n \"id\":1\n },\n \"account\": {\n \"id\": \"9341451497924167\"\n },\n \"priority\": 1,\n \"pinned\": false,\n \"completionRate\": 99.00,\n \"emailAddress\": [\n {\n \"email\":\"testproject@gmail.com\",\n \"name\": \"Demo Client\",\n \"variation\": {\n \"purpose\": \"BILLING\",\n \"usage\": \"HOME\",\n \"Common_Ordinal\": \"PRIMARY\"\n }\n }\n ],\n \"addresses\": [\n {\n \"streetAddressLine1\": \"3000 17th street\",\n \"postalCode\": \"94114\",\n \"city\": \"San Francisco\",\n \"state\": \"California\",\n \"country\": \"USA\",\n \"variation\": {\n \"purpose\": \"BILLING\",\n \"usage\": \"HOME\",\n \"Common_Ordinal\": \"PRIMARY\"\n }\n }\n ]\n }" + } + }, + "url": { + "raw": "https://qb.api.intuit.com/graphql", + "protocol": "https", + "host": [ + "qb", + "api", + "intuit", + "com" + ], + "path": [ + "graphql" + ] + } + }, + "response": [] + } + ] + }, + { + "name": "updateMutation", + "item": [ + { + "name": "updateProject", + "request": { + "method": "POST", + "header": [ + { + "key": "accept", + "value": "application/json;charset=UTF-8", + "type": "text" + }, + { + "key": "Content-Type", + "value": "application/json;charset=UTF-8", + "type": "text" + } + ], + "body": { + "mode": "graphql", + "graphql": { + "query": "mutation projectManagementUpdateProject($id: ID!,\n $name: String,\n $description: String,\n $status: ProjectManagement_Status,\n $startDate: DateTime,\n $dueDate: DateTime,\n $customer: ProjectManagement_CustomerInput,\n $account: ProjectManagement_CompanyInput,\n $priority: Int,\n $completionRate: Decimal,\n $pinned: Boolean,\n)\n{\n projectManagementUpdateProject(input:{\n id: $id,\n name: $name,\n description : $description,\n status: $status,\n startDate:$startDate,\n dueDate: $dueDate,\n customer:$customer\n account: $account,\n priority: $priority,\n completionRate: $completionRate,\n pinned: $pinned\n })\n\n {\n ... on ProjectManagement_Project {\n id,\n name,\n description,\n status,\n startDate,\n dueDate,\n customer{\n id\n },\n account{\n id\n },\n priority,\n completionRate,\n pinned\n }\n }\n}", + "variables": "{\n \"id\": 53633723,\n \"name\": \"Demo Project Update\",\n \"description\": \"Project Description Updated\",\n \"status\": \"IN_PROGRESS\",\n \"startDate:\": \"2024-06-27T00:00:00.000Z\",\n \"dueDate\": \"2024-07-25T00:00:00.000Z\",\n \"customer\": {\n \"id\":1\n },\n \"account\": {\n \"id\": \"9341452164365778\"\n },\n \"priority\": 3,\n \"completionRate\": 70.00,\n \"pinned\": true\n }" + } + }, + "url": { + "raw": "https://qb.api.intuit.com/graphql", + "protocol": "https", + "host": [ + "qb", + "api", + "intuit", + "com" + ], + "path": [ + "graphql" + ] + } + }, + "response": [] + }, + { + "name": "deleteProject", + "request": { + "method": "POST", + "header": [ + { + "key": "accept", + "value": "application/json;charset=UTF-8", + "type": "text" + }, + { + "key": "Content-Type", + "value": "application/json;charset=UTF-8", + "type": "text" + } + ], + "body": { + "mode": "graphql", + "graphql": { + "query": "mutation projectManagementDeleteProject($id: ID!\n )\n{\n projectManagementDeleteProject(input:{\n id: $id,\n })\n\n {\n ... on ProjectManagement_Project {\n id,\n deleted\n }\n }\n}", + "variables": "{\n \"id\": 53633723,\n \"name\": \"Demo Project Update\",\n \"description\": \"Project Description Updated\",\n \"status\": \"IN_PROGRESS\",\n \"startDate:\": \"2024-06-27T00:00:00.000Z\",\n \"dueDate\": \"2024-07-25T00:00:00.000Z\",\n \"customer\": {\n \"id\":1\n },\n \"account\": {\n \"id\": \"9341452164365778\"\n },\n \"priority\": 3,\n \"completionRate\": 70.00,\n \"pinned\": true\n }" + } + }, + "url": { + "raw": "https://qb.api.intuit.com/graphql", + "protocol": "https", + "host": [ + "qb", + "api", + "intuit", + "com" + ], + "path": [ + "graphql" + ] + } + }, + "response": [] + } + ] + }, + { + "name": "Project- QBOV3Transactions", + "item": [ + { + "name": "Invoice-Create", + "request": { + "auth": { + "type": "oauth2", + "oauth2": [ + { + "key": "state", + "value": "{{$guid}}", + "type": "string" + }, + { + "key": "scope", + "value": "{{scope}}", + "type": "string" + }, + { + "key": "clientSecret", + "value": "{{clientsecret-stage}}", + "type": "string" + }, + { + "key": "clientId", + "value": "{{clientId-teststage}}", + "type": "string" + }, + { + "key": "accessTokenUrl", + "value": "{{stage_token_endpoint}}", + "type": "string" + }, + { + "key": "authUrl", + "value": "{{stage_auth_endpoint}}", + "type": "string" + }, + { + "key": "refreshRequestParams", + "value": [], + "type": "any" + }, + { + "key": "tokenRequestParams", + "value": [], + "type": "any" + }, + { + "key": "authRequestParams", + "value": [], + "type": "any" + }, + { + "key": "challengeAlgorithm", + "value": "S256", + "type": "string" + }, + { + "key": "useBrowser", + "value": true, + "type": "boolean" + }, + { + "key": "grant_type", + "value": "authorization_code", + "type": "string" + }, + { + "key": "addTokenTo", + "value": "header", + "type": "string" + }, + { + "key": "client_authentication", + "value": "header", + "type": "string" + }, + { + "key": "tokenType", + "value": "bearer", + "type": "string" + } + ] + }, + "method": "POST", + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"AllowIPNPayment\": false,\n \"AllowOnlinePayment\": false,\n \"AllowOnlineCreditCardPayment\": false,\n \"AllowOnlineACHPayment\": false,\n \"domain\": \"QBO\",\n \"sparse\": false,\n \"SyncToken\": \"0\",\n \"CustomField\": [],\n \"TxnDate\": \"2024-06-26\",\n \"CurrencyRef\": {\n \"value\": \"USD\",\n \"name\": \"United States Dollar\"\n },\n \"LinkedTxn\": [],\n \"Line\": [\n {\n \"Id\": \"1\",\n \"LineNum\": 1,\n \"Description\": \"Test1\",\n \"Amount\": 99.99,\n \"DetailType\": \"SalesItemLineDetail\",\n \"SalesItemLineDetail\": {\n \"ItemRef\": {\n \"value\": \"2\",\n \"name\": \"Hours\"\n },\n \"UnitPrice\": 99.99,\n \"Qty\": 1,\n \"ItemAccountRef\": {\n \"value\": \"5\",\n \"name\": \"Sales\"\n },\n \"TaxCodeRef\": {\n \"value\": \"NON\"\n }\n }\n },\n {\n \"Amount\": 99.99,\n \"DetailType\": \"SubTotalLineDetail\",\n \"SubTotalLineDetail\": {}\n }\n ],\n \"Tag\": [],\n \"ProjectRef\": {\n \"value\": \"393363026\"\n },\n \"CustomerRef\": {\n \"value\": \"1\",\n \"name\": \"Test Customer\"\n },\n \"BillAddr\": {\n \"Id\": \"4\",\n \"Lat\": \"INVALID\",\n \"Long\": \"INVALID\"\n },\n \"FreeFormAddress\": false,\n \"SalesTermRef\": {\n \"value\": \"3\",\n \"name\": \"Net 30\"\n },\n \"TotalAmt\": 99.99,\n \"ApplyTaxAfterDiscount\": false,\n \"PrintStatus\": \"NotSet\",\n \"EmailStatus\": \"NotSet\",\n \"Balance\": 99.99\n}" + }, + "url": { + "raw": "https://{{baseurl}}/v3/company/{{companyId}}/invoice?minorversion=69", + "protocol": "https", + "host": [ + "{{baseurl}}" + ], + "path": [ + "v3", + "company", + "{{companyId}}", + "invoice" + ], + "query": [ + { + "key": "minorversion", + "value": "69" + } + ] + }, + "description": "Create an invoice object\nMethod : POST\n" + }, + "response": [] + }, + { + "name": "Invoice-Query", + "request": { + "method": "POST", + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/text" + } + ], + "body": { + "mode": "raw", + "raw": "Select * \nfrom invoice \nstartposition 1 maxresults 5", + "options": { + "raw": { + "language": "text" + } + } + }, + "url": { + "raw": "https://{{baseurl}}/v3/company/{{companyId}}/query?minorversion=69", + "protocol": "https", + "host": [ + "{{baseurl}}" + ], + "path": [ + "v3", + "company", + "{{companyId}}", + "query" + ], + "query": [ + { + "key": "minorversion", + "value": "69" + } + ] + }, + "description": "Read all invoice objects using the 'Query' endpoint\nMethod : POST\n" + }, + "response": [] + }, + { + "name": "Invoice-ReadById", + "request": { + "method": "GET", + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "url": { + "raw": "https://{{baseurl}}/v3/company/{{companyId}}/invoice/1?minorversion=69", + "protocol": "https", + "host": [ + "{{baseurl}}" + ], + "path": [ + "v3", + "company", + "{{companyId}}", + "invoice", + "1" + ], + "query": [ + { + "key": "minorversion", + "value": "69" + } + ] + }, + "description": "Read an invoice object by Id\nMethod : POST\n" + }, + "response": [] + }, + { + "name": "Bill-Query", + "request": { + "method": "POST", + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/text" + } + ], + "body": { + "mode": "raw", + "raw": "Select * from Bill startposition 1 maxresults 5", + "options": { + "raw": { + "language": "text" + } + } + }, + "url": { + "raw": "https://{{baseurl}}/v3/company/{{companyId}}/query?minorversion=69", + "protocol": "https", + "host": [ + "{{baseurl}}" + ], + "path": [ + "v3", + "company", + "{{companyId}}", + "query" + ], + "query": [ + { + "key": "minorversion", + "value": "69" + } + ] + }, + "description": "Retrieve all bills using generic 'Query' endpoint\nContent-Type:application/text\nMethod - POST\n\n" + }, + "response": [] + }, + { + "name": "Bill-Create", + "request": { + "method": "POST", + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"DueDate\": \"2024-06-25\",\n \"VendorAddr\": {\n \"Id\": \"6\",\n \"Lat\": \"INVALID\",\n \"Long\": \"INVALID\"\n },\n \"Balance\": 199.99,\n \"domain\": \"QBO\",\n \"sparse\": false,\n \"SyncToken\": \"0\",\n \"TxnDate\": \"2024-06-07\",\n \"CurrencyRef\": {\n \"value\": \"USD\",\n \"name\": \"United States Dollar\"\n },\n \n \"Line\": [\n {\n \"Id\": \"1\",\n \"LineNum\": 1,\n \"Description\": \"Test bill postman line 1\",\n \"Amount\": 100,\n \n \"DetailType\": \"AccountBasedExpenseLineDetail\",\n \"AccountBasedExpenseLineDetail\": {\n \"CustomerRef\": {\n \"value\": \"8\",\n \"name\": \"Test Customer\"\n },\n \"AccountRef\": {\n \"value\": \"29\",\n \"name\": \"Advertising & marketing\"\n },\n \"BillableStatus\": \"Billable\",\n \"TaxCodeRef\": {\n \"value\": \"NON\"\n }\n },\n \"ProjectRef\": {\n \"value\": \"393363026\"\n }\n },\n\n {\n \"Id\": \"2\",\n \"LineNum\": 2,\n \"Description\": \"Test Line 2\",\n \"Amount\": 100.00,\n \n \"DetailType\": \"AccountBasedExpenseLineDetail\",\n \"AccountBasedExpenseLineDetail\": {\n \"CustomerRef\": {\n \"value\": \"1\",\n \"name\": \"Test Customer\"\n },\n \"AccountRef\": {\n \"value\": \"30\",\n \"name\": \"Building & property rent\"\n },\n \"BillableStatus\": \"Billable\",\n \"TaxCodeRef\": {\n \"value\": \"NON\"\n }\n },\n \"ProjectRef\": {\n \"value\": \"53150815\"\n }\n }\n ],\n \"Tag\": [],\n \"VendorRef\": {\n \"value\": \"12\",\n \"name\": \"Test Vendor\"\n },\n \"APAccountRef\": {\n \"value\": \"18\",\n \"name\": \"Accounts Payable (A/P)\"\n },\n \"TotalAmt\": 200.00\n}" + }, + "url": { + "raw": "https://{{baseurl}}/v3/company/{{companyId}}/bill?minorversion=69", + "protocol": "https", + "host": [ + "{{baseurl}}" + ], + "path": [ + "v3", + "company", + "{{companyId}}", + "bill" + ], + "query": [ + { + "key": "minorversion", + "value": "69" + } + ] + }, + "description": "Create a bill\nContent-Type:application/json\nMethod - POST" + }, + "response": [] + }, + { + "name": "Bill-GetById", + "request": { + "method": "GET", + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "url": { + "raw": "https://{{baseurl}}/v3/company/{{companyId}}/bill/5?minorversion=69", + "protocol": "https", + "host": [ + "{{baseurl}}" + ], + "path": [ + "v3", + "company", + "{{companyId}}", + "bill", + "5" + ], + "query": [ + { + "key": "minorversion", + "value": "69" + } + ] + }, + "description": "Retrieve a bill by Id\nAccept:application/json\nMethod - GET" + }, + "response": [] + }, + { + "name": "Purchase-Query", + "request": { + "method": "POST", + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/text" + } + ], + "body": { + "mode": "raw", + "raw": "select * from purchase startposition 1 maxresults 5" + }, + "url": { + "raw": "https://{{baseurl}}/v3/company/{{companyId}}/query?minorversion=69", + "protocol": "https", + "host": [ + "{{baseurl}}" + ], + "path": [ + "v3", + "company", + "{{companyId}}", + "query" + ], + "query": [ + { + "key": "minorversion", + "value": "69" + } + ] + }, + "description": "Read all purchase objects using the 'Query' endpoint\nMethod : POST\n" + }, + "response": [] + }, + { + "name": "Purchase-Create", + "request": { + "method": "POST", + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"AccountRef\": {\n \"value\": \"7\",\n \"name\": \"Cash\"\n },\n \"PaymentType\": \"Cash\",\n \"EntityRef\": {\n \"value\": \"2\",\n \"name\": \"New Customer:New Project\",\n \"type\": \"Customer\"\n },\n \"TotalAmt\": 2000.00,\n \"PurchaseEx\": {\n \"any\": [\n {\n \"name\": \"{http://schema.intuit.com/finance/v3}NameValue\",\n \"declaredType\": \"com.intuit.schema.finance.v3.NameValue\",\n \"scope\": \"javax.xml.bind.JAXBElement$GlobalScope\",\n \"value\": {\n \"Name\": \"TxnType\",\n \"Value\": \"54\"\n },\n \"nil\": false,\n \"globalScope\": true,\n \"typeSubstituted\": false\n }\n ]\n },\n \"domain\": \"QBO\",\n \"sparse\": false,\n \"SyncToken\": \"0\",\n \"TxnDate\": \"2024-05-28\",\n \"CurrencyRef\": {\n \"value\": \"USD\",\n \"name\": \"United States Dollar\"\n },\n \n \"Line\": [\n {\n \"Id\": \"1\",\n \"Description\": \"Customer\",\n \"Amount\": 1000,\n \n \"DetailType\": \"AccountBasedExpenseLineDetail\",\n \"AccountBasedExpenseLineDetail\": {\n \"CustomerRef\": {\n \"value\": \"1\",\n \"name\": \"New Customer\"\n },\n \"AccountRef\": {\n \"value\": \"29\",\n \"name\": \"Advertising & marketing\"\n },\n \"BillableStatus\": \"Billable\",\n \"TaxCodeRef\": {\n \"value\": \"NON\"\n }\n }\n },\n {\n \"Id\": \"2\",\n \"Description\": \"Project\",\n \"Amount\": 1000,\n \n \"DetailType\": \"AccountBasedExpenseLineDetail\",\n \"AccountBasedExpenseLineDetail\": {\n \"CustomerRef\": {\n \"value\": \"8\",\n \"name\": \"New Customer:New Project\"\n },\n \"AccountRef\": {\n \"value\": \"30\",\n \"name\": \"Building & property rent\"\n },\n \"BillableStatus\": \"Billable\",\n \"TaxCodeRef\": {\n \"value\": \"NON\"\n }\n },\n \"ProjectRef\": {\n \"value\": \"53115872\"\n }\n }\n ]\n}" + }, + "url": { + "raw": "https://{{baseurl}}/v3/company/{{companyId}}/purchase?minorversion=69", + "protocol": "https", + "host": [ + "{{baseurl}}" + ], + "path": [ + "v3", + "company", + "{{companyId}}", + "purchase" + ], + "query": [ + { + "key": "minorversion", + "value": "69" + } + ] + }, + "description": "Create a puchase object\nMethod : POST\n" + }, + "response": [] + }, + { + "name": "Purchase-ReadById", + "request": { + "method": "GET", + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/json" + } + ], + "url": { + "raw": "https://{{baseurl}}/v3/company/{{companyId}}/purchase/11", + "protocol": "https", + "host": [ + "{{baseurl}}" + ], + "path": [ + "v3", + "company", + "{{companyId}}", + "purchase", + "11" + ] + }, + "description": "Read a puchase object by Id\nMethod : POST\n" + }, + "response": [] + }, + { + "name": "Create PCE", + "request": { + "method": "POST", + "header": [ + { + "key": "Accept", + "value": "application/json", + "type": "text" + }, + { + "key": "Content-Type", + "value": "application/json", + "type": "text" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"domain\": \"QBO\",\n \"sparse\": false,\n \"SyncToken\": \"0\",\n \"CustomField\": [],\n \"TxnDate\": \"2024-06-26\",\n \"CurrencyRef\": {\n \"value\": \"CAD\",\n \"name\": \"Canadian Dollar\"\n },\n \"ExchangeRate\": 0.73,\n \"TxnStatus\": \"Pending\",\n \"Line\": [\n {\n \"Id\": \"1\",\n \"LineNum\": 1,\n \"Description\": \"new schema test\",\n \"Amount\": 80.00,\n \"DetailType\": \"SalesItemLineDetail\",\n \"SalesItemLineDetail\": {\n \"ItemRef\": {\n \"value\": \"2\",\n \"name\": \"Hours\"\n },\n \"UnitPrice\": 80,\n \"UnitCostPrice\": 80,\n \"Qty\": 1,\n \"ItemAccountRef\": {\n \"value\": \"5\",\n \"name\": \"Sales\"\n },\n \"TaxCodeRef\": {\n \"value\": \"NON\"\n }\n },\n \"CostAmount\": 80.00,\n \"HomeCostAmount\": 80.00\n },\n {\n \"Amount\": 80.00,\n \"DetailType\": \"SubTotalLineDetail\",\n \"SubTotalLineDetail\": {}\n }\n ],\n \"Tag\": [],\n \"ProjectRef\": {\n \"value\": \"397853930\"\n },\n \"TotalCostAmount\": -80.00,\n \"HomeTotalCostAmount\": -80.00,\n \"CustomerRef\": {\n \"value\": \"2\",\n \"name\": \"Test Customer\"\n },\n \"BillAddr\": {\n \"Id\": \"37\",\n \"Line1\": \"project_cad\",\n \"Line2\": \"Custome_CAD\"\n },\n \"ShipAddr\": {\n \"Id\": \"38\",\n \"Line1\": \"project_cad\",\n \"Line2\": \"Custome_CAD\"\n },\n \"FreeFormAddress\": true,\n \"TotalAmt\": 80.00,\n \"HomeTotalAmt\": 80,\n \"ApplyTaxAfterDiscount\": false,\n \"PrintStatus\": \"NotSet\",\n \"EmailStatus\": \"NotSet\"\n}" + }, + "url": { + "raw": "https://{{baseurl}}/v3/company/{{companyId}}/estimate?minorversion=73", + "protocol": "https", + "host": [ + "{{baseurl}}" + ], + "path": [ + "v3", + "company", + "{{companyId}}", + "estimate" + ], + "query": [ + { + "key": "minorversion", + "value": "73" + } + ] + }, + "description": "Create an Estimate object\nMethod : POST\n" + }, + "response": [] + }, + { + "name": "Query PCE", + "request": { + "method": "POST", + "header": [ + { + "key": "Accept", + "value": "application/json" + }, + { + "key": "Content-Type", + "value": "application/text" + } + ], + "body": { + "mode": "raw", + "raw": "Select * \nfrom invoice \n", + "options": { + "raw": { + "language": "text" + } + } + }, + "url": { + "raw": "https://{{baseurl}}/v3/company/{{companyId}}/query?minorversion=69", + "protocol": "https", + "host": [ + "{{baseurl}}" + ], + "path": [ + "v3", + "company", + "{{companyId}}", + "query" + ], + "query": [ + { + "key": "minorversion", + "value": "69" + } + ] + }, + "description": "Read all invoice objects using the 'Query' endpoint\nMethod : POST\n" + }, + "response": [] + } + ], + "auth": { + "type": "oauth2", + "oauth2": [ + { + "key": "scope", + "value": "{{Scope_AllAphaScope}}", + "type": "string" + }, + { + "key": "clientSecret", + "value": "{{ClientSecret-prd-alpha}}", + "type": "string" + }, + { + "key": "clientId", + "value": "{{ClientId-prd-alpha}}", + "type": "string" + }, + { + "key": "accessTokenUrl", + "value": "{{token_endpoint}}", + "type": "string" + }, + { + "key": "authUrl", + "value": "{{auth_endpoint}}", + "type": "string" + }, + { + "key": "refreshRequestParams", + "value": [], + "type": "any" + }, + { + "key": "tokenRequestParams", + "value": [], + "type": "any" + }, + { + "key": "authRequestParams", + "value": [], + "type": "any" + }, + { + "key": "challengeAlgorithm", + "value": "S256", + "type": "string" + }, + { + "key": "useBrowser", + "value": true, + "type": "boolean" + }, + { + "key": "state", + "value": "{{$guid}}", + "type": "string" + }, + { + "key": "grant_type", + "value": "authorization_code", + "type": "string" + }, + { + "key": "addTokenTo", + "value": "header", + "type": "string" + }, + { + "key": "client_authentication", + "value": "header", + "type": "string" + } + ] + }, + "event": [ + { + "listen": "prerequest", + "script": { + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ] + } + }, + { + "listen": "test", + "script": { + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ] + } + } + ] + } + ] + }, + { + "name": "CustomField", + "item": [ + { + "name": "Create Custom Field Definition", + "protocolProfileBehavior": { + "disabledSystemHeaders": {} + }, + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "graphql", + "graphql": { + "query": "mutation AppFoundationsCreateCustomFieldDefinition($input: AppFoundations_CustomFieldDefinitionCreateInput!) {\n appFoundationsCreateCustomFieldDefinition(input: $input) {\n label\n active\n associations {\n associatedEntity\n active\n validationOptions {\n required\n }\n allowedOperations\n associationCondition\n subAssociations {\n associatedEntity\n active\n allowedOperations\n }\n }\n dataType\n dropDownOptions {\n value\n active\n order\n }\n }\n}", + "variables": "{\n \"input\": {\n \"label\": \"cf-02\",\n \"associations\": [\n {\n \"validationOptions\": {\n \"required\": false \n },\n \"associatedEntity\": \"/transactions/Transaction\" ,\n \"active\": true,\n \"allowedOperations\": [],\n \"associationCondition\": \"INCLUDED\",\n \"subAssociations\": [\n {\n \"associatedEntity\": \"SALE_INVOICE\",\n \"active\": true,\n \"allowedOperations\": []\n }\n ]\n }\n ],\n \"dataType\": \"STRING\",\n \"active\": true\n }\n}" + } + }, + "url": { + "raw": "https://qb.api.intuit.com/graphql", + "protocol": "https", + "host": [ + "qb", + "api", + "intuit", + "com" + ], + "path": [ + "graphql" + ] + } + }, + "response": [ + { + "name": "Create Custom Field Definition", + "originalRequest": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "graphql" + }, + "url": { + "raw": "https://qb.api.intuit.com/graphql", + "protocol": "https", + "host": [ + "qb", + "api", + "intuit", + "com" + ], + "path": [ + "graphql" + ] + } + }, + "status": "OK", + "code": 200, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Date", + "value": "Thu, 27 Jun 2024 03:02:50 GMT" + }, + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Transfer-Encoding", + "value": "chunked" + }, + { + "key": "Connection", + "value": "keep-alive" + }, + { + "key": "x-spanid", + "value": "a36fac13-93bb-f0a2-ecec-50d3f12466ae" + }, + { + "key": "x-amzn-trace-id", + "value": "Root=1-667cd658-66e60a2f4c7e147608e72fa4" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "Vary", + "value": "origin" + }, + { + "key": "Content-Encoding", + "value": "gzip" + }, + { + "key": "x-envoy-upstream-service-time", + "value": "2023" + }, + { + "key": "Server", + "value": "istio-envoy" + }, + { + "key": "x-envoy-decorator-operation", + "value": "swimlane11graphqlorch-desired-service.platformrun-apiorch-swimlane11graphqlorch-usw2-prd.svc.cluster.local:8090/*" + }, + { + "key": "Strict-Transport-Security", + "value": "max-age=31536000" + }, + { + "key": "intuit_tid", + "value": "1-667cd658-66e60a2f4c7e147608e72fa4" + }, + { + "key": "x-request-id", + "value": "1-667cd658-66e60a2f4c7e147608e72fa4" + } + ], + "cookie": [], + "body": "{\n \"data\": {\n \"appFoundationsCreateCustomFieldDefinition\": {\n \"id\": \"udcf_1\",\n \"label\": \"cf-01\",\n \"associations\": [\n {\n \"associatedEntity\": \"/transactions/Transaction\",\n \"active\": true,\n \"validationOptions\": {\n \"required\": false\n },\n \"allowedOperations\": [],\n \"associationCondition\": \"INCLUDED\",\n \"subAssociations\": [\n {\n \"associatedEntity\": \"SALE_INVOICE\",\n \"active\": true,\n \"allowedOperations\": []\n }\n ]\n }\n ],\n \"dataType\": \"STRING\",\n \"dropDownOptions\": [],\n \"active\": true\n }\n }\n}" + }, + { + "name": "Create Custom Field Definition", + "originalRequest": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "graphql" + }, + "url": { + "raw": "https://qb.api.intuit.com/graphql", + "protocol": "https", + "host": [ + "qb", + "api", + "intuit", + "com" + ], + "path": [ + "graphql" + ] + } + }, + "status": "OK", + "code": 200, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Date", + "value": "Thu, 27 Jun 2024 03:15:02 GMT" + }, + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Transfer-Encoding", + "value": "chunked" + }, + { + "key": "Connection", + "value": "keep-alive" + }, + { + "key": "x-spanid", + "value": "fafd9b5f-aa74-7cbe-dfcc-271f6c808a50" + }, + { + "key": "x-amzn-trace-id", + "value": "Root=1-667cd936-2188ead01e1c56f55d4e3035" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "Vary", + "value": "origin" + }, + { + "key": "Content-Encoding", + "value": "gzip" + }, + { + "key": "x-envoy-upstream-service-time", + "value": "687" + }, + { + "key": "Server", + "value": "istio-envoy" + }, + { + "key": "x-envoy-decorator-operation", + "value": "swimlane11graphqlorch-desired-service.platformrun-apiorch-swimlane11graphqlorch-usw2-prd.svc.cluster.local:8090/*" + }, + { + "key": "Strict-Transport-Security", + "value": "max-age=31536000" + }, + { + "key": "intuit_tid", + "value": "1-667cd936-2188ead01e1c56f55d4e3035" + }, + { + "key": "x-request-id", + "value": "1-667cd936-2188ead01e1c56f55d4e3035" + } + ], + "cookie": [], + "body": "{\n \"data\": {\n \"appFoundationsCreateCustomFieldDefinition\": {\n \"id\": \"udcf_2\",\n \"label\": \"cf-02\",\n \"associations\": [\n {\n \"associatedEntity\": \"/transactions/Transaction\",\n \"active\": true,\n \"validationOptions\": {\n \"required\": false\n },\n \"allowedOperations\": [],\n \"associationCondition\": \"INCLUDED\",\n \"subAssociations\": [\n {\n \"associatedEntity\": \"SALE_INVOICE\",\n \"active\": true,\n \"allowedOperations\": []\n }\n ]\n }\n ],\n \"dataType\": \"STRING\",\n \"dropDownOptions\": [],\n \"active\": true\n }\n }\n}" + }, + { + "name": "Create Custom Field Definition", + "originalRequest": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "graphql" + }, + "url": { + "raw": "https://qb.api.intuit.com/graphql", + "protocol": "https", + "host": [ + "qb", + "api", + "intuit", + "com" + ], + "path": [ + "graphql" + ] + } + }, + "status": "OK", + "code": 200, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Date", + "value": "Thu, 27 Jun 2024 16:34:46 GMT" + }, + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Transfer-Encoding", + "value": "chunked" + }, + { + "key": "Connection", + "value": "keep-alive" + }, + { + "key": "x-spanid", + "value": "dd475469-96ad-e906-6c79-7d76f5ad53d4" + }, + { + "key": "x-amzn-trace-id", + "value": "Root=1-667d94a5-1d766a5e51dda39b4542d298" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "Vary", + "value": "origin" + }, + { + "key": "Content-Encoding", + "value": "gzip" + }, + { + "key": "x-envoy-upstream-service-time", + "value": "657" + }, + { + "key": "Server", + "value": "istio-envoy" + }, + { + "key": "x-envoy-decorator-operation", + "value": "swimlane11graphqlorch-desired-service.platformrun-apiorch-swimlane11graphqlorch-usw2-prd.svc.cluster.local:8090/*" + }, + { + "key": "Strict-Transport-Security", + "value": "max-age=31536000" + }, + { + "key": "intuit_tid", + "value": "1-667d94a5-1d766a5e51dda39b4542d298" + }, + { + "key": "x-request-id", + "value": "1-667d94a5-1d766a5e51dda39b4542d298" + } + ], + "cookie": [], + "body": "{\n \"data\": {\n \"appFoundationsCreateCustomFieldDefinition\": {\n \"label\": \"cf-03\",\n \"active\": true,\n \"associations\": [\n {\n \"associatedEntity\": \"/transactions/Transaction\",\n \"active\": true,\n \"validationOptions\": {\n \"required\": false\n },\n \"allowedOperations\": [],\n \"associationCondition\": \"INCLUDED\",\n \"subAssociations\": [\n {\n \"associatedEntity\": \"SALE_INVOICE\",\n \"active\": true,\n \"allowedOperations\": []\n }\n ]\n }\n ],\n \"dataType\": \"STRING\",\n \"dropDownOptions\": []\n }\n }\n}" + } + ] + }, + { + "name": "Create Custom Field Definition with Vendor", + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "graphql", + "graphql": { + "query": "mutation AppFoundationsCreateCustomFieldDefinition($input: AppFoundations_CustomFieldDefinitionCreateInput!) {\n appFoundationsCreateCustomFieldDefinition(input: $input) {\n id\n label\n associations {\n associatedEntity\n active\n validationOptions {\n required\n }\n allowedOperations\n associationCondition\n subAssociations {\n associatedEntity\n active\n allowedOperations\n }\n }\n dataType\n dropDownOptions {\n id\n value\n active\n order\n }\n active\n }\n}", + "variables": "{\n \"input\": {\n \"label\": \"CF-VendorType\",\n \"associations\": [\n {\n \"validationOptions\": {\n \"required\": false \n },\n \"associatedEntity\": \"/transactions/Transaction\" ,\n \"active\": true,\n \"allowedOperations\": [],\n \"associationCondition\": \"INCLUDED\",\n \"subAssociations\": [\n {\n \"associatedEntity\": \"SALE_INVOICE\",\n \"active\": true,\n \"allowedOperations\": []\n }\n ]\n },\n {\n \"associatedEntity\": \"/network/Contact\",\n \"active\": true,\n \"validationOptions\": {\n \"required\": false\n },\n \"allowedOperations\": [],\n \"associationCondition\": \"INCLUDED\",\n \"subAssociations\": [\n {\n \"associatedEntity\": \"VENDOR\",\n \"active\": true,\n \"allowedOperations\": []\n }\n ]\n } \n ],\n \"dataType\": \"STRING\",\n \"active\": true\n }\n}" + } + }, + "url": { + "raw": "https://qb.api.intuit.com/graphql", + "protocol": "https", + "host": [ + "qb", + "api", + "intuit", + "com" + ], + "path": [ + "graphql" + ] + } + }, + "response": [ + { + "name": "Create Custom Field Definition with Vendor", + "originalRequest": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "graphql" + }, + "url": { + "raw": "https://qb.api.intuit.com/graphql", + "protocol": "https", + "host": [ + "qb", + "api", + "intuit", + "com" + ], + "path": [ + "graphql" + ] + } + }, + "status": "OK", + "code": 200, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Date", + "value": "Thu, 27 Jun 2024 03:24:12 GMT" + }, + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Transfer-Encoding", + "value": "chunked" + }, + { + "key": "Connection", + "value": "keep-alive" + }, + { + "key": "x-spanid", + "value": "edbaa16f-9565-e15f-684b-28de76327a31" + }, + { + "key": "x-amzn-trace-id", + "value": "Root=1-667cdb5a-1e38738d1684766b615d961b" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "Vary", + "value": "origin" + }, + { + "key": "Content-Encoding", + "value": "gzip" + }, + { + "key": "x-envoy-upstream-service-time", + "value": "2559" + }, + { + "key": "Server", + "value": "istio-envoy" + }, + { + "key": "x-envoy-decorator-operation", + "value": "swimlane11graphqlorch-desired-service.platformrun-apiorch-swimlane11graphqlorch-usw2-prd.svc.cluster.local:8090/*" + }, + { + "key": "Strict-Transport-Security", + "value": "max-age=31536000" + }, + { + "key": "intuit_tid", + "value": "1-667cdb5a-1e38738d1684766b615d961b" + }, + { + "key": "x-request-id", + "value": "1-667cdb5a-1e38738d1684766b615d961b" + } + ], + "cookie": [], + "body": "{\n \"data\": {\n \"appFoundationsCreateCustomFieldDefinition\": {\n \"id\": \"udcf_3\",\n \"label\": \"CF-VendorType\",\n \"associations\": [\n {\n \"associatedEntity\": \"/transactions/Transaction\",\n \"active\": true,\n \"validationOptions\": {\n \"required\": false\n },\n \"allowedOperations\": [],\n \"associationCondition\": \"INCLUDED\",\n \"subAssociations\": [\n {\n \"associatedEntity\": \"SALE_INVOICE\",\n \"active\": true,\n \"allowedOperations\": []\n }\n ]\n },\n {\n \"associatedEntity\": \"/network/Contact\",\n \"active\": true,\n \"validationOptions\": {\n \"required\": false\n },\n \"allowedOperations\": [],\n \"associationCondition\": \"INCLUDED\",\n \"subAssociations\": [\n {\n \"associatedEntity\": \"VENDOR\",\n \"active\": true,\n \"allowedOperations\": []\n }\n ]\n }\n ],\n \"dataType\": \"STRING\",\n \"dropDownOptions\": [],\n \"active\": true\n }\n }\n}" + } + ] + }, + { + "name": "Create Custom Field Definition with Customer", + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "graphql", + "graphql": { + "query": "mutation AppFoundationsCreateCustomFieldDefinition($input: AppFoundations_CustomFieldDefinitionCreateInput!) {\n appFoundationsCreateCustomFieldDefinition(input: $input) {\n label\n active\n associations {\n associatedEntity\n active\n validationOptions {\n required\n }\n allowedOperations\n associationCondition\n subAssociations {\n associatedEntity\n active\n allowedOperations\n }\n }\n dataType\n dropDownOptions {\n value\n active\n order\n }\n }\n}", + "variables": "{\n \"input\": {\n \"label\": \"CF-customerType2\",\n \"associations\": [\n {\n \"validationOptions\": {\n \"required\": false \n },\n \"associatedEntity\": \"/transactions/Transaction\" ,\n \"active\": true,\n \"allowedOperations\": [],\n \"associationCondition\": \"INCLUDED\",\n \"subAssociations\": [\n {\n \"associatedEntity\": \"SALE_INVOICE\",\n \"active\": true,\n \"allowedOperations\": []\n }\n ]\n },\n {\n \"associatedEntity\": \"/network/Contact\",\n \"active\": true,\n \"validationOptions\": {\n \"required\": false\n },\n \"allowedOperations\": [],\n \"associationCondition\": \"INCLUDED\",\n \"subAssociations\": [\n {\n \"associatedEntity\": \"CUSTOMER\",\n \"active\": true,\n \"allowedOperations\": []\n }\n ]\n } \n ],\n \"dataType\": \"STRING\",\n \"active\": true\n }\n}" + } + }, + "url": { + "raw": "https://qb.api.intuit.com/graphql", + "protocol": "https", + "host": [ + "qb", + "api", + "intuit", + "com" + ], + "path": [ + "graphql" + ] + } + }, + "response": [ + { + "name": "Create Custom Field Definition with Customer", + "originalRequest": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "graphql" + }, + "url": { + "raw": "https://qb.api.intuit.com/graphql", + "protocol": "https", + "host": [ + "qb", + "api", + "intuit", + "com" + ], + "path": [ + "graphql" + ] + } + }, + "status": "OK", + "code": 200, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Date", + "value": "Thu, 27 Jun 2024 03:25:20 GMT" + }, + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Transfer-Encoding", + "value": "chunked" + }, + { + "key": "Connection", + "value": "keep-alive" + }, + { + "key": "x-spanid", + "value": "82dee6dc-2d2d-7134-5592-b6913889fae1" + }, + { + "key": "x-amzn-trace-id", + "value": "Root=1-667cdb9e-334864930e35af475e68f876" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "Vary", + "value": "origin" + }, + { + "key": "Content-Encoding", + "value": "gzip" + }, + { + "key": "x-envoy-upstream-service-time", + "value": "1806" + }, + { + "key": "Server", + "value": "istio-envoy" + }, + { + "key": "x-envoy-decorator-operation", + "value": "swimlane11graphqlorch-desired-service.platformrun-apiorch-swimlane11graphqlorch-usw2-prd.svc.cluster.local:8090/*" + }, + { + "key": "Strict-Transport-Security", + "value": "max-age=31536000" + }, + { + "key": "intuit_tid", + "value": "1-667cdb9e-334864930e35af475e68f876" + }, + { + "key": "x-request-id", + "value": "1-667cdb9e-334864930e35af475e68f876" + } + ], + "cookie": [], + "body": "{\n \"data\": {\n \"appFoundationsCreateCustomFieldDefinition\": {\n \"id\": \"udcf_4\",\n \"label\": \"CF-customerType\",\n \"associations\": [\n {\n \"associatedEntity\": \"/transactions/Transaction\",\n \"active\": true,\n \"validationOptions\": {\n \"required\": false\n },\n \"allowedOperations\": [],\n \"associationCondition\": \"INCLUDED\",\n \"subAssociations\": [\n {\n \"associatedEntity\": \"SALE_INVOICE\",\n \"active\": true,\n \"allowedOperations\": []\n }\n ]\n },\n {\n \"associatedEntity\": \"/network/Contact\",\n \"active\": true,\n \"validationOptions\": {\n \"required\": false\n },\n \"allowedOperations\": [],\n \"associationCondition\": \"INCLUDED\",\n \"subAssociations\": [\n {\n \"associatedEntity\": \"CUSTOMER\",\n \"active\": true,\n \"allowedOperations\": []\n }\n ]\n }\n ],\n \"dataType\": \"STRING\",\n \"dropDownOptions\": [],\n \"active\": true\n }\n }\n}" + }, + { + "name": "Create Custom Field Definition with Customer", + "originalRequest": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "graphql" + }, + "url": { + "raw": "https://qb.api.intuit.com/graphql", + "protocol": "https", + "host": [ + "qb", + "api", + "intuit", + "com" + ], + "path": [ + "graphql" + ] + } + }, + "status": "OK", + "code": 200, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Date", + "value": "Thu, 27 Jun 2024 16:57:44 GMT" + }, + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Transfer-Encoding", + "value": "chunked" + }, + { + "key": "Connection", + "value": "keep-alive" + }, + { + "key": "x-spanid", + "value": "162dc839-f0f1-45fc-04de-81f302fb07ec" + }, + { + "key": "x-amzn-trace-id", + "value": "Root=1-667d9a06-12eb5bac1ce98b216ba848cf" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "Vary", + "value": "origin" + }, + { + "key": "Content-Encoding", + "value": "gzip" + }, + { + "key": "x-envoy-upstream-service-time", + "value": "1325" + }, + { + "key": "Server", + "value": "istio-envoy" + }, + { + "key": "x-envoy-decorator-operation", + "value": "swimlane11graphqlorch-desired-service.platformrun-apiorch-swimlane11graphqlorch-usw2-prd.svc.cluster.local:8090/*" + }, + { + "key": "Strict-Transport-Security", + "value": "max-age=31536000" + }, + { + "key": "intuit_tid", + "value": "1-667d9a06-12eb5bac1ce98b216ba848cf" + }, + { + "key": "x-request-id", + "value": "1-667d9a06-12eb5bac1ce98b216ba848cf" + } + ], + "cookie": [], + "body": "{\n \"data\": {\n \"appFoundationsCreateCustomFieldDefinition\": {\n \"label\": \"CF-customerType2\",\n \"active\": true,\n \"associations\": [\n {\n \"associatedEntity\": \"/transactions/Transaction\",\n \"active\": true,\n \"validationOptions\": {\n \"required\": false\n },\n \"allowedOperations\": [],\n \"associationCondition\": \"INCLUDED\",\n \"subAssociations\": [\n {\n \"associatedEntity\": \"SALE_INVOICE\",\n \"active\": true,\n \"allowedOperations\": []\n }\n ]\n },\n {\n \"associatedEntity\": \"/network/Contact\",\n \"active\": true,\n \"validationOptions\": {\n \"required\": false\n },\n \"allowedOperations\": [],\n \"associationCondition\": \"INCLUDED\",\n \"subAssociations\": [\n {\n \"associatedEntity\": \"CUSTOMER\",\n \"active\": true,\n \"allowedOperations\": []\n }\n ]\n }\n ],\n \"dataType\": \"STRING\",\n \"dropDownOptions\": []\n }\n }\n}" + } + ] + }, + { + "name": "Read Custom Field Definition", + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "graphql", + "graphql": { + "query": "query {\n appFoundationsCustomFieldDefinitions {\n edges {\n node {\n id\n legacyIDV2\n label\n associations {\n associatedEntity\n active\n validationOptions {\n required\n }\n allowedOperations\n associationCondition\n subAssociations {\n associatedEntity\n active\n allowedOperations\n }\n }\n dataType\n dropDownOptions {\n id\n value\n active\n order\n }\n active\n customFieldDefinitionMetaModel {\n suggested\n }\n }\n }\n }\n}", + "variables": "" + } + }, + "url": { + "raw": "https://qb.api.intuit.com/graphql", + "protocol": "https", + "host": [ + "qb", + "api", + "intuit", + "com" + ], + "path": [ + "graphql" + ] + } + }, + "response": [ + { + "name": "Read Custom Field Definition", + "originalRequest": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "graphql" + }, + "url": { + "raw": "https://qb.api.intuit.com/graphql", + "protocol": "https", + "host": [ + "qb", + "api", + "intuit", + "com" + ], + "path": [ + "graphql" + ] + } + }, + "status": "OK", + "code": 200, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Date", + "value": "Thu, 27 Jun 2024 03:01:52 GMT" + }, + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Transfer-Encoding", + "value": "chunked" + }, + { + "key": "Connection", + "value": "keep-alive" + }, + { + "key": "x-spanid", + "value": "386a0538-f8bd-6afb-d5ba-b9e8dea11229" + }, + { + "key": "x-amzn-trace-id", + "value": "Root=1-667cd620-70aab18d12c712c572daaba3" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "Vary", + "value": "origin" + }, + { + "key": "Content-Encoding", + "value": "gzip" + }, + { + "key": "x-envoy-upstream-service-time", + "value": "451" + }, + { + "key": "Server", + "value": "istio-envoy" + }, + { + "key": "x-envoy-decorator-operation", + "value": "swimlane11graphqlorch-desired-service.platformrun-apiorch-swimlane11graphqlorch-usw2-prd.svc.cluster.local:8090/*" + }, + { + "key": "Strict-Transport-Security", + "value": "max-age=31536000" + }, + { + "key": "intuit_tid", + "value": "1-667cd620-70aab18d12c712c572daaba3" + }, + { + "key": "x-request-id", + "value": "1-667cd620-70aab18d12c712c572daaba3" + } + ], + "cookie": [], + "body": "{\n \"data\": {\n \"appFoundationsCustomFieldDefinitions\": {\n \"edges\": []\n }\n }\n}" + }, + { + "name": "Read Custom Field Definition", + "originalRequest": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "graphql" + }, + "url": { + "raw": "https://qb.api.intuit.com/graphql", + "protocol": "https", + "host": [ + "qb", + "api", + "intuit", + "com" + ], + "path": [ + "graphql" + ] + } + }, + "status": "OK", + "code": 200, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Date", + "value": "Thu, 27 Jun 2024 03:03:23 GMT" + }, + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Transfer-Encoding", + "value": "chunked" + }, + { + "key": "Connection", + "value": "keep-alive" + }, + { + "key": "x-spanid", + "value": "2be03862-3076-86d2-f0b7-90fd9c35ef20" + }, + { + "key": "x-amzn-trace-id", + "value": "Root=1-667cd67b-7862e1ce7111f3d8535b25c2" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "Vary", + "value": "origin" + }, + { + "key": "Content-Encoding", + "value": "gzip" + }, + { + "key": "x-envoy-upstream-service-time", + "value": "364" + }, + { + "key": "Server", + "value": "istio-envoy" + }, + { + "key": "x-envoy-decorator-operation", + "value": "swimlane11graphqlorch-desired-service.platformrun-apiorch-swimlane11graphqlorch-usw2-prd.svc.cluster.local:8090/*" + }, + { + "key": "Strict-Transport-Security", + "value": "max-age=31536000" + }, + { + "key": "intuit_tid", + "value": "1-667cd67b-7862e1ce7111f3d8535b25c2" + }, + { + "key": "x-request-id", + "value": "1-667cd67b-7862e1ce7111f3d8535b25c2" + } + ], + "cookie": [], + "body": "{\n \"data\": {\n \"appFoundationsCustomFieldDefinitions\": {\n \"edges\": [\n {\n \"node\": {\n \"id\": \"udcf_1\",\n \"legacyID\": \"djQ6OTM0MTQ1MjU5OTA4NTI5MDovY29tbW9uL0N1c3RvbUZpZWxkRGVmaW5pdGlvbjo:1149549\",\n \"label\": \"cf-01\",\n \"associations\": [\n {\n \"associatedEntity\": \"/transactions/Transaction\",\n \"active\": true,\n \"validationOptions\": {\n \"required\": false\n },\n \"allowedOperations\": [],\n \"associationCondition\": \"INCLUDED\",\n \"subAssociations\": [\n {\n \"associatedEntity\": \"SALE_INVOICE\",\n \"active\": true,\n \"allowedOperations\": []\n }\n ]\n }\n ],\n \"dataType\": \"STRING\",\n \"dropDownOptions\": [],\n \"active\": true,\n \"customFieldDefinitionMetaModel\": {\n \"suggested\": null\n }\n }\n }\n ]\n }\n }\n}" + }, + { + "name": "Read Custom Field Definition", + "originalRequest": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "graphql" + }, + "url": { + "raw": "https://qb.api.intuit.com/graphql", + "protocol": "https", + "host": [ + "qb", + "api", + "intuit", + "com" + ], + "path": [ + "graphql" + ] + } + }, + "status": "OK", + "code": 200, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Date", + "value": "Thu, 27 Jun 2024 03:10:33 GMT" + }, + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Transfer-Encoding", + "value": "chunked" + }, + { + "key": "Connection", + "value": "keep-alive" + }, + { + "key": "x-spanid", + "value": "bd1d3bc7-a079-b079-592b-db206df13abc" + }, + { + "key": "x-amzn-trace-id", + "value": "Root=1-667cd829-749f572e6d8296b2000963c5" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "Vary", + "value": "origin" + }, + { + "key": "Content-Encoding", + "value": "gzip" + }, + { + "key": "x-envoy-upstream-service-time", + "value": "435" + }, + { + "key": "Server", + "value": "istio-envoy" + }, + { + "key": "x-envoy-decorator-operation", + "value": "swimlane11graphqlorch-desired-service.platformrun-apiorch-swimlane11graphqlorch-usw2-prd.svc.cluster.local:8090/*" + }, + { + "key": "Strict-Transport-Security", + "value": "max-age=31536000" + }, + { + "key": "intuit_tid", + "value": "1-667cd829-749f572e6d8296b2000963c5" + }, + { + "key": "x-request-id", + "value": "1-667cd829-749f572e6d8296b2000963c5" + } + ], + "cookie": [], + "body": "{\n \"data\": {\n \"appFoundationsCustomFieldDefinitions\": {\n \"edges\": [\n {\n \"node\": {\n \"id\": \"udcf_1\",\n \"legacyIDV2\": \"1149549\",\n \"label\": \"cf-01\",\n \"associations\": [\n {\n \"associatedEntity\": \"/transactions/Transaction\",\n \"active\": true,\n \"validationOptions\": {\n \"required\": false\n },\n \"allowedOperations\": [],\n \"associationCondition\": \"INCLUDED\",\n \"subAssociations\": [\n {\n \"associatedEntity\": \"SALE_INVOICE\",\n \"active\": true,\n \"allowedOperations\": []\n }\n ]\n }\n ],\n \"dataType\": \"STRING\",\n \"dropDownOptions\": [],\n \"active\": true,\n \"customFieldDefinitionMetaModel\": {\n \"suggested\": null\n }\n }\n }\n ]\n }\n }\n}" + }, + { + "name": "Read Custom Field Definition", + "originalRequest": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "graphql" + }, + "url": { + "raw": "https://qb.api.intuit.com/graphql", + "protocol": "https", + "host": [ + "qb", + "api", + "intuit", + "com" + ], + "path": [ + "graphql" + ] + } + }, + "status": "OK", + "code": 200, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Date", + "value": "Thu, 27 Jun 2024 03:13:50 GMT" + }, + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Transfer-Encoding", + "value": "chunked" + }, + { + "key": "Connection", + "value": "keep-alive" + }, + { + "key": "x-spanid", + "value": "e9007151-e6b2-055f-5380-be481c6946a7" + }, + { + "key": "x-amzn-trace-id", + "value": "Root=1-667cd8ee-7e6d6f6560347c6b38f4bc41" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "Vary", + "value": "origin" + }, + { + "key": "Content-Encoding", + "value": "gzip" + }, + { + "key": "x-envoy-upstream-service-time", + "value": "121" + }, + { + "key": "Server", + "value": "istio-envoy" + }, + { + "key": "x-envoy-decorator-operation", + "value": "swimlane11graphqlorch-desired-service.platformrun-apiorch-swimlane11graphqlorch-usw2-prd.svc.cluster.local:8090/*" + }, + { + "key": "Strict-Transport-Security", + "value": "max-age=31536000" + }, + { + "key": "intuit_tid", + "value": "1-667cd8ee-7e6d6f6560347c6b38f4bc41" + }, + { + "key": "x-request-id", + "value": "1-667cd8ee-7e6d6f6560347c6b38f4bc41" + } + ], + "cookie": [], + "body": "{\n \"data\": {\n \"appFoundationsCustomFieldDefinitions\": {\n \"edges\": [\n {\n \"node\": {\n \"id\": \"udcf_1\",\n \"legacyIDV2\": \"1149549\",\n \"label\": \"cf-01\",\n \"associations\": [\n {\n \"associatedEntity\": \"/transactions/Transaction\",\n \"active\": false,\n \"validationOptions\": {\n \"required\": false\n },\n \"allowedOperations\": [],\n \"associationCondition\": \"INCLUDED\",\n \"subAssociations\": [\n {\n \"associatedEntity\": \"SALE_INVOICE\",\n \"active\": true,\n \"allowedOperations\": []\n },\n {\n \"associatedEntity\": \"SALE_ESTIMATE\",\n \"active\": true,\n \"allowedOperations\": []\n }\n ]\n }\n ],\n \"dataType\": \"STRING\",\n \"dropDownOptions\": [],\n \"active\": false,\n \"customFieldDefinitionMetaModel\": {\n \"suggested\": null\n }\n }\n }\n ]\n }\n }\n}" + }, + { + "name": "Read Custom Field Definition", + "originalRequest": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "graphql" + }, + "url": { + "raw": "https://qb.api.intuit.com/graphql", + "protocol": "https", + "host": [ + "qb", + "api", + "intuit", + "com" + ], + "path": [ + "graphql" + ] + } + }, + "status": "OK", + "code": 200, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Date", + "value": "Thu, 27 Jun 2024 03:15:24 GMT" + }, + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Transfer-Encoding", + "value": "chunked" + }, + { + "key": "Connection", + "value": "keep-alive" + }, + { + "key": "x-spanid", + "value": "db26165b-d466-d4e0-cc8c-2b96c14e1819" + }, + { + "key": "x-amzn-trace-id", + "value": "Root=1-667cd94b-54e75fea50c2f5615c7d3a55" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "Vary", + "value": "origin" + }, + { + "key": "Content-Encoding", + "value": "gzip" + }, + { + "key": "x-envoy-upstream-service-time", + "value": "152" + }, + { + "key": "Server", + "value": "istio-envoy" + }, + { + "key": "x-envoy-decorator-operation", + "value": "swimlane11graphqlorch-desired-service.platformrun-apiorch-swimlane11graphqlorch-usw2-prd.svc.cluster.local:8090/*" + }, + { + "key": "Strict-Transport-Security", + "value": "max-age=31536000" + }, + { + "key": "intuit_tid", + "value": "1-667cd94b-54e75fea50c2f5615c7d3a55" + }, + { + "key": "x-request-id", + "value": "1-667cd94b-54e75fea50c2f5615c7d3a55" + } + ], + "cookie": [], + "body": "{\n \"data\": {\n \"appFoundationsCustomFieldDefinitions\": {\n \"edges\": [\n {\n \"node\": {\n \"id\": \"udcf_1\",\n \"legacyIDV2\": \"1149549\",\n \"label\": \"cf-01\",\n \"associations\": [\n {\n \"associatedEntity\": \"/transactions/Transaction\",\n \"active\": false,\n \"validationOptions\": {\n \"required\": false\n },\n \"allowedOperations\": [],\n \"associationCondition\": \"INCLUDED\",\n \"subAssociations\": [\n {\n \"associatedEntity\": \"SALE_INVOICE\",\n \"active\": true,\n \"allowedOperations\": []\n },\n {\n \"associatedEntity\": \"SALE_ESTIMATE\",\n \"active\": true,\n \"allowedOperations\": []\n }\n ]\n }\n ],\n \"dataType\": \"STRING\",\n \"dropDownOptions\": [],\n \"active\": false,\n \"customFieldDefinitionMetaModel\": {\n \"suggested\": null\n }\n }\n },\n {\n \"node\": {\n \"id\": \"udcf_2\",\n \"legacyIDV2\": \"1149550\",\n \"label\": \"cf-02\",\n \"associations\": [\n {\n \"associatedEntity\": \"/transactions/Transaction\",\n \"active\": true,\n \"validationOptions\": {\n \"required\": false\n },\n \"allowedOperations\": [],\n \"associationCondition\": \"INCLUDED\",\n \"subAssociations\": [\n {\n \"associatedEntity\": \"SALE_INVOICE\",\n \"active\": true,\n \"allowedOperations\": []\n }\n ]\n }\n ],\n \"dataType\": \"STRING\",\n \"dropDownOptions\": [],\n \"active\": true,\n \"customFieldDefinitionMetaModel\": {\n \"suggested\": null\n }\n }\n }\n ]\n }\n }\n}" + }, + { + "name": "Read Custom Field Definition", + "originalRequest": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "graphql" + }, + "url": { + "raw": "https://qb.api.intuit.com/graphql", + "protocol": "https", + "host": [ + "qb", + "api", + "intuit", + "com" + ], + "path": [ + "graphql" + ] + } + }, + "status": "OK", + "code": 200, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Date", + "value": "Thu, 27 Jun 2024 16:35:02 GMT" + }, + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Transfer-Encoding", + "value": "chunked" + }, + { + "key": "Connection", + "value": "keep-alive" + }, + { + "key": "x-spanid", + "value": "924c63b9-3a25-848e-ef62-132c44801cb8" + }, + { + "key": "x-amzn-trace-id", + "value": "Root=1-667d94b6-39c485fa3d324b3b1f5094f7" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "Vary", + "value": "origin" + }, + { + "key": "Content-Encoding", + "value": "gzip" + }, + { + "key": "x-envoy-upstream-service-time", + "value": "148" + }, + { + "key": "Server", + "value": "istio-envoy" + }, + { + "key": "x-envoy-decorator-operation", + "value": "swimlane11graphqlorch-desired-service.platformrun-apiorch-swimlane11graphqlorch-usw2-prd.svc.cluster.local:8090/*" + }, + { + "key": "Strict-Transport-Security", + "value": "max-age=31536000" + }, + { + "key": "intuit_tid", + "value": "1-667d94b6-39c485fa3d324b3b1f5094f7" + }, + { + "key": "x-request-id", + "value": "1-667d94b6-39c485fa3d324b3b1f5094f7" + } + ], + "cookie": [], + "body": "{\n \"data\": {\n \"appFoundationsCustomFieldDefinitions\": {\n \"edges\": [\n {\n \"node\": {\n \"id\": \"udcf_1\",\n \"legacyIDV2\": \"1149549\",\n \"label\": \"cf-01\",\n \"associations\": [\n {\n \"associatedEntity\": \"/transactions/Transaction\",\n \"active\": true,\n \"validationOptions\": {\n \"required\": false\n },\n \"allowedOperations\": [],\n \"associationCondition\": \"INCLUDED\",\n \"subAssociations\": [\n {\n \"associatedEntity\": \"SALE_INVOICE\",\n \"active\": true,\n \"allowedOperations\": []\n },\n {\n \"associatedEntity\": \"SALE_ESTIMATE\",\n \"active\": true,\n \"allowedOperations\": []\n }\n ]\n }\n ],\n \"dataType\": \"STRING\",\n \"dropDownOptions\": [],\n \"active\": true,\n \"customFieldDefinitionMetaModel\": {\n \"suggested\": null\n }\n }\n },\n {\n \"node\": {\n \"id\": \"udcf_2\",\n \"legacyIDV2\": \"1149550\",\n \"label\": \"cf-02\",\n \"associations\": [\n {\n \"associatedEntity\": \"/transactions/Transaction\",\n \"active\": true,\n \"validationOptions\": {\n \"required\": false\n },\n \"allowedOperations\": [],\n \"associationCondition\": \"INCLUDED\",\n \"subAssociations\": [\n {\n \"associatedEntity\": \"SALE_INVOICE\",\n \"active\": true,\n \"allowedOperations\": []\n }\n ]\n }\n ],\n \"dataType\": \"STRING\",\n \"dropDownOptions\": [],\n \"active\": true,\n \"customFieldDefinitionMetaModel\": {\n \"suggested\": null\n }\n }\n },\n {\n \"node\": {\n \"id\": \"udcf_3\",\n \"legacyIDV2\": \"1149551\",\n \"label\": \"CF-VendorType\",\n \"associations\": [\n {\n \"associatedEntity\": \"/transactions/Transaction\",\n \"active\": true,\n \"validationOptions\": {\n \"required\": false\n },\n \"allowedOperations\": [],\n \"associationCondition\": \"INCLUDED\",\n \"subAssociations\": [\n {\n \"associatedEntity\": \"SALE_INVOICE\",\n \"active\": true,\n \"allowedOperations\": []\n }\n ]\n },\n {\n \"associatedEntity\": \"/network/Contact\",\n \"active\": true,\n \"validationOptions\": {\n \"required\": false\n },\n \"allowedOperations\": [],\n \"associationCondition\": \"INCLUDED\",\n \"subAssociations\": [\n {\n \"associatedEntity\": \"VENDOR\",\n \"active\": true,\n \"allowedOperations\": []\n }\n ]\n }\n ],\n \"dataType\": \"STRING\",\n \"dropDownOptions\": [],\n \"active\": true,\n \"customFieldDefinitionMetaModel\": {\n \"suggested\": null\n }\n }\n },\n {\n \"node\": {\n \"id\": \"udcf_4\",\n \"legacyIDV2\": \"1149552\",\n \"label\": \"CF-customerType\",\n \"associations\": [\n {\n \"associatedEntity\": \"/transactions/Transaction\",\n \"active\": true,\n \"validationOptions\": {\n \"required\": false\n },\n \"allowedOperations\": [],\n \"associationCondition\": \"INCLUDED\",\n \"subAssociations\": [\n {\n \"associatedEntity\": \"SALE_INVOICE\",\n \"active\": true,\n \"allowedOperations\": []\n }\n ]\n },\n {\n \"associatedEntity\": \"/network/Contact\",\n \"active\": true,\n \"validationOptions\": {\n \"required\": false\n },\n \"allowedOperations\": [],\n \"associationCondition\": \"INCLUDED\",\n \"subAssociations\": [\n {\n \"associatedEntity\": \"CUSTOMER\",\n \"active\": true,\n \"allowedOperations\": []\n }\n ]\n }\n ],\n \"dataType\": \"STRING\",\n \"dropDownOptions\": [],\n \"active\": true,\n \"customFieldDefinitionMetaModel\": {\n \"suggested\": null\n }\n }\n },\n {\n \"node\": {\n \"id\": \"udcf_5\",\n \"legacyIDV2\": \"1149622\",\n \"label\": \"cf-03\",\n \"associations\": [\n {\n \"associatedEntity\": \"/transactions/Transaction\",\n \"active\": true,\n \"validationOptions\": {\n \"required\": false\n },\n \"allowedOperations\": [],\n \"associationCondition\": \"INCLUDED\",\n \"subAssociations\": [\n {\n \"associatedEntity\": \"SALE_INVOICE\",\n \"active\": true,\n \"allowedOperations\": []\n }\n ]\n }\n ],\n \"dataType\": \"STRING\",\n \"dropDownOptions\": [],\n \"active\": true,\n \"customFieldDefinitionMetaModel\": {\n \"suggested\": null\n }\n }\n }\n ]\n }\n }\n}" + } + ] + }, + { + "name": "Update Custom Field Definition", + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "graphql", + "graphql": { + "query": "mutation AppFoundationsUpdateCustomFieldDefinition($input: AppFoundations_CustomFieldDefinitionUpdateInput!) {\n appFoundationsUpdateCustomFieldDefinition(input: $input) {\n id\n legacyIDV2\n label\n associations {\n associatedEntity\n active\n validationOptions {\n required\n }\n allowedOperations\n associationCondition\n subAssociations {\n associatedEntity\n active\n allowedOperations\n }\n }\n dataType\n dropDownOptions {\n id\n value\n active\n order\n }\n active\n }\n}", + "variables": "{\n \"input\": {\n \"id\": \"udcf_1\",\n \"legacyIDV2\": \"1149549\",\n \"label\": \"cf-01\",\n \"active\": true,\n \"associations\": [\n {\n \"validationOptions\": {\n \"required\": true \n },\n \"associatedEntity\": \"/transactions/Transaction\" ,\n \"active\": true,\n \"allowedOperations\": [],\n \"associationCondition\": \"INCLUDED\",\n \"subAssociations\": [\n {\n \"associatedEntity\": \"SALE_INVOICE\",\n \"active\": true,\n \"allowedOperations\": []\n },\n {\n \"associatedEntity\": \"SALE_ESTIMATE\",\n \"active\": true,\n \"allowedOperations\": []\n }\n ]\n }\n ]\n }\n}" + } + }, + "url": { + "raw": "https://qb.api.intuit.com/graphql", + "protocol": "https", + "host": [ + "qb", + "api", + "intuit", + "com" + ], + "path": [ + "graphql" + ] + } + }, + "response": [ + { + "name": "Update Custom Field Definition", + "originalRequest": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "graphql" + }, + "url": { + "raw": "https://qb.api.intuit.com/graphql", + "protocol": "https", + "host": [ + "qb", + "api", + "intuit", + "com" + ], + "path": [ + "graphql" + ] + } + }, + "status": "OK", + "code": 200, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Date", + "value": "Thu, 27 Jun 2024 03:06:30 GMT" + }, + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Transfer-Encoding", + "value": "chunked" + }, + { + "key": "Connection", + "value": "keep-alive" + }, + { + "key": "x-spanid", + "value": "0140d18c-0103-3349-7b86-53cd8cee85e3" + }, + { + "key": "x-amzn-trace-id", + "value": "Root=1-667cd736-59db00cc53f988bd68295bd6" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "Vary", + "value": "origin" + }, + { + "key": "Content-Encoding", + "value": "gzip" + }, + { + "key": "x-envoy-upstream-service-time", + "value": "82" + }, + { + "key": "Server", + "value": "istio-envoy" + }, + { + "key": "x-envoy-decorator-operation", + "value": "swimlane11graphqlorch-desired-service.platformrun-apiorch-swimlane11graphqlorch-usw2-prd.svc.cluster.local:8090/*" + }, + { + "key": "Strict-Transport-Security", + "value": "max-age=31536000" + }, + { + "key": "intuit_tid", + "value": "1-667cd736-59db00cc53f988bd68295bd6" + }, + { + "key": "x-request-id", + "value": "1-667cd736-59db00cc53f988bd68295bd6" + } + ], + "cookie": [], + "body": "{\n \"data\": {\n \"appFoundationsUpdateCustomFieldDefinition\": null\n },\n \"errors\": [\n {\n \"message\": \"Field legacyIDV2 cannot be null or empty\",\n \"path\": [\n \"appFoundationsUpdateCustomFieldDefinition\"\n ],\n \"extensions\": {\n \"errorCode\": {\n \"errorCode\": \"CES038\",\n \"errorMessage\": \"Field %s cannot be null or empty\",\n \"errorType\": \"VALIDATION_ERROR\"\n },\n \"cause\": \"Field legacyIDV2 cannot be null or empty\",\n \"errorType\": \"UNKNOWN\"\n }\n }\n ]\n}" + }, + { + "name": "Update Custom Field Definition", + "originalRequest": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "graphql" + }, + "url": { + "raw": "https://qb.api.intuit.com/graphql", + "protocol": "https", + "host": [ + "qb", + "api", + "intuit", + "com" + ], + "path": [ + "graphql" + ] + } + }, + "status": "OK", + "code": 200, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Date", + "value": "Thu, 27 Jun 2024 03:13:27 GMT" + }, + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Transfer-Encoding", + "value": "chunked" + }, + { + "key": "Connection", + "value": "keep-alive" + }, + { + "key": "x-spanid", + "value": "c7299231-779d-e626-6db7-47c678cf37ed" + }, + { + "key": "x-amzn-trace-id", + "value": "Root=1-667cd8d6-0fe9065073c8f2d554f3333d" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "Vary", + "value": "origin" + }, + { + "key": "Content-Encoding", + "value": "gzip" + }, + { + "key": "x-envoy-upstream-service-time", + "value": "726" + }, + { + "key": "Server", + "value": "istio-envoy" + }, + { + "key": "x-envoy-decorator-operation", + "value": "swimlane11graphqlorch-desired-service.platformrun-apiorch-swimlane11graphqlorch-usw2-prd.svc.cluster.local:8090/*" + }, + { + "key": "Strict-Transport-Security", + "value": "max-age=31536000" + }, + { + "key": "intuit_tid", + "value": "1-667cd8d6-0fe9065073c8f2d554f3333d" + }, + { + "key": "x-request-id", + "value": "1-667cd8d6-0fe9065073c8f2d554f3333d" + } + ], + "cookie": [], + "body": "{\n \"data\": {\n \"appFoundationsUpdateCustomFieldDefinition\": {\n \"id\": \"udcf_1\",\n \"legacyIDV2\": \"1149549\",\n \"label\": \"cf-01\",\n \"associations\": [\n {\n \"associatedEntity\": \"/transactions/Transaction\",\n \"active\": false,\n \"validationOptions\": {\n \"required\": false\n },\n \"allowedOperations\": [],\n \"associationCondition\": \"INCLUDED\",\n \"subAssociations\": [\n {\n \"associatedEntity\": \"SALE_INVOICE\",\n \"active\": true,\n \"allowedOperations\": []\n },\n {\n \"associatedEntity\": \"SALE_ESTIMATE\",\n \"active\": true,\n \"allowedOperations\": []\n }\n ]\n }\n ],\n \"dataType\": \"STRING\",\n \"dropDownOptions\": [],\n \"active\": false\n }\n }\n}" + }, + { + "name": "Update Custom Field Definition", + "originalRequest": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "graphql" + }, + "url": { + "raw": "https://qb.api.intuit.com/graphql", + "protocol": "https", + "host": [ + "qb", + "api", + "intuit", + "com" + ], + "path": [ + "graphql" + ] + } + }, + "status": "OK", + "code": 200, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Date", + "value": "Thu, 27 Jun 2024 03:17:03 GMT" + }, + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Transfer-Encoding", + "value": "chunked" + }, + { + "key": "Connection", + "value": "keep-alive" + }, + { + "key": "x-spanid", + "value": "c36ec2f3-7383-714b-8114-cc5631152d55" + }, + { + "key": "x-amzn-trace-id", + "value": "Root=1-667cd9ad-6c1dbaa928e15ba1055eefd9" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "Vary", + "value": "origin" + }, + { + "key": "Content-Encoding", + "value": "gzip" + }, + { + "key": "x-envoy-upstream-service-time", + "value": "1737" + }, + { + "key": "Server", + "value": "istio-envoy" + }, + { + "key": "x-envoy-decorator-operation", + "value": "swimlane11graphqlorch-desired-service.platformrun-apiorch-swimlane11graphqlorch-usw2-prd.svc.cluster.local:8090/*" + }, + { + "key": "Strict-Transport-Security", + "value": "max-age=31536000" + }, + { + "key": "intuit_tid", + "value": "1-667cd9ad-6c1dbaa928e15ba1055eefd9" + }, + { + "key": "x-request-id", + "value": "1-667cd9ad-6c1dbaa928e15ba1055eefd9" + } + ], + "cookie": [], + "body": "{\n \"data\": {\n \"appFoundationsUpdateCustomFieldDefinition\": null\n },\n \"errors\": [\n {\n \"message\": \"Validation failed\",\n \"path\": [\n \"appFoundationsUpdateCustomFieldDefinition\"\n ],\n \"extensions\": {\n \"errorCode\": \"CUSTOMFIELDDEFN-86003\",\n \"cause\": \"Unsupported entityCondition\",\n \"type\": \"VALIDATION_ERROR\",\n \"errorType\": \"UNKNOWN\"\n }\n }\n ]\n}" + }, + { + "name": "Update Custom Field Definition", + "originalRequest": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "graphql" + }, + "url": { + "raw": "https://qb.api.intuit.com/graphql", + "protocol": "https", + "host": [ + "qb", + "api", + "intuit", + "com" + ], + "path": [ + "graphql" + ] + } + }, + "status": "OK", + "code": 200, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Date", + "value": "Thu, 27 Jun 2024 03:19:29 GMT" + }, + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Transfer-Encoding", + "value": "chunked" + }, + { + "key": "Connection", + "value": "keep-alive" + }, + { + "key": "x-spanid", + "value": "dc7f47e1-7efb-5b7b-83de-3ec56faea8b3" + }, + { + "key": "x-amzn-trace-id", + "value": "Root=1-667cda3e-47aa3a78508142806f85c708" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "Vary", + "value": "origin" + }, + { + "key": "Content-Encoding", + "value": "gzip" + }, + { + "key": "x-envoy-upstream-service-time", + "value": "2305" + }, + { + "key": "Server", + "value": "istio-envoy" + }, + { + "key": "x-envoy-decorator-operation", + "value": "swimlane11graphqlorch-desired-service.platformrun-apiorch-swimlane11graphqlorch-usw2-prd.svc.cluster.local:8090/*" + }, + { + "key": "Strict-Transport-Security", + "value": "max-age=31536000" + }, + { + "key": "intuit_tid", + "value": "1-667cda3e-47aa3a78508142806f85c708" + }, + { + "key": "x-request-id", + "value": "1-667cda3e-47aa3a78508142806f85c708" + } + ], + "cookie": [], + "body": "{\n \"data\": {\n \"appFoundationsUpdateCustomFieldDefinition\": {\n \"id\": \"udcf_1\",\n \"legacyIDV2\": \"1149549\",\n \"label\": \"cf-01\",\n \"associations\": [\n {\n \"associatedEntity\": \"/transactions/Transaction\",\n \"active\": true,\n \"validationOptions\": {\n \"required\": false\n },\n \"allowedOperations\": [],\n \"associationCondition\": \"INCLUDED\",\n \"subAssociations\": [\n {\n \"associatedEntity\": \"SALE_INVOICE\",\n \"active\": true,\n \"allowedOperations\": []\n },\n {\n \"associatedEntity\": \"SALE_ESTIMATE\",\n \"active\": true,\n \"allowedOperations\": []\n }\n ]\n }\n ],\n \"dataType\": \"STRING\",\n \"dropDownOptions\": [],\n \"active\": true\n }\n }\n}" + }, + { + "name": "Update Custom Field Definition", + "originalRequest": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "graphql" + }, + "url": { + "raw": "https://qb.api.intuit.com/graphql", + "protocol": "https", + "host": [ + "qb", + "api", + "intuit", + "com" + ], + "path": [ + "graphql" + ] + } + }, + "status": "OK", + "code": 200, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Date", + "value": "Thu, 27 Jun 2024 16:36:03 GMT" + }, + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Transfer-Encoding", + "value": "chunked" + }, + { + "key": "Connection", + "value": "keep-alive" + }, + { + "key": "x-spanid", + "value": "554c9eb8-7bdd-95f2-6b75-768695ee0bc8" + }, + { + "key": "x-amzn-trace-id", + "value": "Root=1-667d94f3-4a8399cf63960436234bb419" + }, + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "Vary", + "value": "origin" + }, + { + "key": "Content-Encoding", + "value": "gzip" + }, + { + "key": "x-envoy-upstream-service-time", + "value": "665" + }, + { + "key": "Server", + "value": "istio-envoy" + }, + { + "key": "x-envoy-decorator-operation", + "value": "swimlane11graphqlorch-desired-service.platformrun-apiorch-swimlane11graphqlorch-usw2-prd.svc.cluster.local:8090/*" + }, + { + "key": "Strict-Transport-Security", + "value": "max-age=31536000" + }, + { + "key": "intuit_tid", + "value": "1-667d94f3-4a8399cf63960436234bb419" + }, + { + "key": "x-request-id", + "value": "1-667d94f3-4a8399cf63960436234bb419" + } + ], + "cookie": [], + "body": "{\n \"data\": {\n \"appFoundationsUpdateCustomFieldDefinition\": {\n \"id\": \"udcf_1\",\n \"legacyIDV2\": \"1149549\",\n \"label\": \"cf-01\",\n \"associations\": [\n {\n \"associatedEntity\": \"/transactions/Transaction\",\n \"active\": true,\n \"validationOptions\": {\n \"required\": false\n },\n \"allowedOperations\": [],\n \"associationCondition\": \"INCLUDED\",\n \"subAssociations\": [\n {\n \"associatedEntity\": \"SALE_INVOICE\",\n \"active\": true,\n \"allowedOperations\": []\n },\n {\n \"associatedEntity\": \"SALE_ESTIMATE\",\n \"active\": true,\n \"allowedOperations\": []\n }\n ]\n }\n ],\n \"dataType\": \"STRING\",\n \"dropDownOptions\": [],\n \"active\": false\n }\n }\n}" + } + ] + } + ] + } + ], + "auth": { + "type": "oauth2", + "oauth2": [ + { + "key": "state", + "value": "", + "type": "string" + }, + { + "key": "scope", + "value": "", + "type": "string" + }, + { + "key": "clientSecret", + "value": "", + "type": "string" + }, + { + "key": "clientId", + "value": "", + "type": "string" + }, + { + "key": "accessTokenUrl", + "value": "", + "type": "string" + }, + { + "key": "authUrl", + "value": "", + "type": "string" + }, + { + "key": "useBrowser", + "value": true, + "type": "boolean" + }, + { + "key": "addTokenTo", + "value": "header", + "type": "string" + } + ] + }, + "event": [ + { + "listen": "prerequest", + "script": { + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ] + } + }, + { + "listen": "test", + "script": { + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ] + } + } + ] +} \ No newline at end of file diff --git a/assets/files/QBO_Environment_PROD.json b/assets/files/QBO_Environment_PROD.json new file mode 100644 index 0000000..a51aaef --- /dev/null +++ b/assets/files/QBO_Environment_PROD.json @@ -0,0 +1,63 @@ +{ + "id": "0b331d27-aa75-4f8a-ac2f-098f0f9e6de3", + "name": "QBO_Environment_PROD", + "values": [ + { + "key": "ClientId", + "value": "", + "type": "default", + "enabled": true + }, + { + "key": "ClientSecret", + "value": "", + "type": "secret", + "enabled": true + }, + { + "key": "Scopes", + "value": "com.intuit.quickbooks.accounting project-management.project payroll.compensation.read app-foundations.custom-field-definitions", + "type": "default", + "enabled": true + }, + { + "key": "auth_endpoint", + "value": "https://appcenter.intuit.com/connect/oauth2", + "type": "default", + "enabled": true + }, + { + "key": "token_endpoint", + "value": "https://oauth.platform.intuit.com/oauth2/v1/tokens/bearer", + "type": "default", + "enabled": true + }, + { + "key": "baseurl", + "value": "quickbooks.api.intuit.com", + "type": "default", + "enabled": true + }, + { + "key": "companyId", + "value": "9341452598184808", + "type": "default", + "enabled": true + }, + { + "key": "baseGQLUrl", + "value": "qb.api.intuit.com", + "type": "default", + "enabled": true + }, + { + "key": "minorversion", + "value": "73", + "type": "default", + "enabled": true + } + ], + "_postman_variable_scope": "environment", + "_postman_exported_at": "2024-08-14T20:29:55.382Z", + "_postman_exported_using": "Postman/10.4.6" +} \ No newline at end of file diff --git a/assets/files/partnername_202104.csv b/assets/files/partnername_202104.csv new file mode 100644 index 0000000..7913327 --- /dev/null +++ b/assets/files/partnername_202104.csv @@ -0,0 +1,39 @@ +Customer name,Reporting Month,Connection date,QuickBooks company ID,Total employees,Participating employees,Revenue +Company UYDF,2020-02,5/1/20,139698901,5,5,$15 +Company RKDE,2020-02,19/1/20,161704238,7,6,$15 +Company SUPC,2020-02,13/1/20,100825475,8,7,$15 +Company MTDK,2020-02,20/2/20,171613857,5,4,$15 +Company KKSP,2020-02,21/1/20,109847762,8,7,$15 +Company JQPD,2020-02,21/2/20,176097701,4,3,$15 +Company KJUP,2020-02,15/1/20,145356936,5,4,$15 +Company RNBX,2020-02,1/1/20,190195509,10,9,$15 +Company MDDO,2020-02,18/2/20,175803445,2,2,$15 +Company EPYK,2020-02,9/1/20,109582752,8,8,$15 +Company DWYY,2020-02,15/2/20,159689148,5,4,$15 +Company CIQR,2020-02,15/2/20,114554074,5,4,$15 +Company MTZZ,2020-02,4/2/20,152308234,10,10,$15 +Company QOMA,2020-02,1/2/20,172059861,10,10,$15 +Company GSCJ,2020-02,16/1/20,180150235,1,0,$15 +Company CYFK,2020-02,18/2/20,192308036,11,10,$15 +Company XYPJ,2020-02,18/2/20,108052749,7,7,$15 +Company VNAQ,2020-02,20/1/20,103921596,4,4,$15 +Company SYOM,2020-02,25/1/20,170119654,9,9,$15 +Company VGDE,2020-02,14/1/20,123000894,10,10,$15 +Company VARE,2020-02,13/1/20,166699459,7,7,$15 +Company ZAIN,2020-02,20/1/20,124659436,1,1,$15 +Company ZOYM,2020-02,28/2/20,124928040,3,2,$15 +Company SSSQ,2020-02,4/1/20,129788406,10,9,$15 +Company GEQC,2020-02,5/1/20,100861535,9,9,$15 +Company UHYG,2020-02,29/1/20,161768115,1,0,$15 +Company RCYD,2020-02,19/2/20,128078287,2,1,$15 +Company NGOV,2020-02,21/2/20,153183775,2,2,$15 +Company FQMW,2020-02,2/1/20,134262838,6,5,$15 +Company ZWKG,2020-02,25/2/20,193019602,10,10,$15 +Company CEIX,2020-02,25/1/20,146649458,6,5,$15 +Company ZMZH,2020-02,5/2/20,106006365,3,3,$15 +Company UCUM,2020-02,15/1/20,188291367,3,2,$15 +Company PKKL,2020-02,24/1/20,104529783,10,10,$15 +Company ZOOT,2020-02,30/1/20,152154508,8,8,$15 +Company ZSSP,2020-02,7/2/20,173919166,4,4,$15 +Company JZNA,2020-02,14/2/20,141276281,4,3,$15 +,,Total,37,223,204,$555 \ No newline at end of file diff --git a/assets/images/CustomField.png b/assets/images/CustomField.png new file mode 100644 index 0000000..78f0de2 Binary files /dev/null and b/assets/images/CustomField.png differ diff --git a/assets/images/ProjectRef.png b/assets/images/ProjectRef.png new file mode 100644 index 0000000..111a04e Binary files /dev/null and b/assets/images/ProjectRef.png differ diff --git a/assets/images/Projects.png b/assets/images/Projects.png new file mode 100644 index 0000000..d19333f Binary files /dev/null and b/assets/images/Projects.png differ diff --git a/assets/images/Time.png b/assets/images/Time.png new file mode 100644 index 0000000..83fdeef Binary files /dev/null and b/assets/images/Time.png differ diff --git a/assets/images/Vendor1099.png b/assets/images/Vendor1099.png new file mode 100644 index 0000000..aef4c4f Binary files /dev/null and b/assets/images/Vendor1099.png differ diff --git a/assets/images/intuit-logo.png b/assets/images/intuit-logo.png new file mode 100644 index 0000000..da1c1b9 Binary files /dev/null and b/assets/images/intuit-logo.png differ diff --git a/assets/images/oauth2.png b/assets/images/oauth2.png new file mode 100644 index 0000000..c348f77 Binary files /dev/null and b/assets/images/oauth2.png differ diff --git a/docs/faq/best-practices.md b/docs/faq/best-practices.md new file mode 100644 index 0000000..9bca83b --- /dev/null +++ b/docs/faq/best-practices.md @@ -0,0 +1,42 @@ +--- +layout: default +title: Intuit API best practices +nav_order: 3 +parent: FAQ +--- + +# Adopt Intuit API best practices + +As you develop your app integration with QuickBooks, here are a few best practices for the API. Consider incorporating them in your app if you haven’t already. + + + +## Intuit API best practices + + +### Log frequently during development + +Take the time to properly log your app development process. It saves time in the long-run. Logging every execution may impact app performance, so prioritize what matters most. + + + + + +
Tip: Always log the value of the intuit_tid field in the server response. It will help our support team quickly find and address any reported issues. +
+ + +### Learn about API throttling + +- 500 requests per minute, per realm ID +- 10 concurrent requests per realm ID and app. + +**Note**: The above throttling limits are subject to change in the future. + + + +### Keep up with the latest version of Intuit API + +**Note**: We'll have more details around versioning in the future. + + diff --git a/docs/faq/error-handling.md b/docs/faq/error-handling.md new file mode 100644 index 0000000..42871da --- /dev/null +++ b/docs/faq/error-handling.md @@ -0,0 +1,227 @@ +--- +layout: default +title: Error Handling +nav_order: 3 +parent: FAQ +--- + +# Fix Intuit Ecosystem API errors + +If you ever encounter an error, the Intuit Ecosystem API server returns an error message. These messages give you clues about the issue's source and cause. + +## Step 1: Capture the intuit_tid value +Server responses for gateway and service errors have an `intuit_tid` field in the header. + +Capture this field's value. It will help our support team quickly find and address reported issues. + + +## Step 2: Identify the error type + +When requests from apps go to our servers, they first pass through a gateway layer. Then they pass through the GraphQL Service layer. Thus, there are two general types: **gateway** errors and **service** errors. + +Review the HTTP Status Code (xxx). This tells you the error type: + +* Service errors: **200** or **400** [List of possible GraphQL Error Code] +* Gateway errors: **All other ###** + +## Step 3: Fix errors + +### Fix gateway errors +Gateway errors are generated when requests hit our server's gateway layer. They apply to the whole request and follow the gateway error resposne format. + +``` +HTTP Status Code 401 +{ + "code": "AuthenticationFailed", + "type": "INPUT", + "message": null, + "detail": "Malformed bearer token: too short or too long", + "moreInfo": null +} +``` +In the server response, review the following fields: + +* HTTP Status Code - Gives you the error code +* `code` - Tells you what went wrong +* `detail` - Tells you what to fix + +Many gateway errors are self-explanatory. Some require a bit more digging. For 401 errors, you may need to [update your app's access or refresh tokens](https://developer.intuit.com/app/developer/qbo/docs/develop/authentication-and-authorization/oauth-2.0). + +#### See all gateway errors +``` +Status code - Error details +302 - Resource redirect or resource has moved +401 - Unauthenticated access: application authentication failed due to invalid or expired tokens +403 - Forbidden access: authorization specific, application authorization failed due to insufficient user access role +403 - Resource not found: routing error, access or configuration on the Gateway, or incorrect endpoint requested +405 - Method not allowed: attempt to request other than GET/POST requests +429 - Too many requests: request is throttled as it exceeded the throttle policy. +500 - Internal Server Error: missing POST body or other exceptions within application, or a service outage +502 - Bad Gateway: Infrastructure misconfiguration, propagates response from downstream, or a service outage +503 - Service unavailable: Outage +504 - Service timeout: Outage + +``` + +### Fix service errors +Service errors are generated when requests hit our server's service layer. + +Service errors only apply to a subset of requests, not the entire request. Responses follow the standard GraphQL service format. + +#### See all service errors +``` +200 - Authorization errors due to incorrect scope, or partial semantic errors +400 - GraphQL validation errors such as invalid or malformed requests and missing variables, or system errors +``` + +Most service errors are in response to [malformed queries](../../graphql-concepts/query/), parsing problems, validation issues, or [incorrect scopes](../../getting-started/scopes/). As a result, the server won't authorize the request. + +Here's an example of an HTTP status code 400: +``` +{ + "errors": [ + { + "message": "cannot query field 'offset' on type 'Common_PageInfo!'", + "extensions": { + "type": "Common_PageInfo!", + "field": "offset", + "code": "INVALID_FIELD" + } + } + ] +} + +``` + + +Here's an example validation error: +``` + +``` +Review the server response and use it as a guide. Each field gives clues for what failed, where, and how to fix it: + +* **Message** — Description of the error. +* **Extensions** — Additional info and error codes: + * **code** - Specific error code. + * **field** — Field that has the error. + * **type** — Entity that has the error. + +#### Error by error types + +### EmployeeCompensation : + +| Error Type | Error Code | Error Message | Error Source | +|----------------------------|----------------------------|-------------------------------------------------------------------------------------------------|---------------------------------------------------------------| +| SYSTEM_ERROR | SYSTEM_ERROR | Cannot return null for non-nullable field Payroll_EmployerCompensation.xx | When Pay types data is not available in the DB | +| SERVICE_UNAVAILABLE | SERVICE_UNAVAILABLE | Service Unavailable | When querying paytypes and downstream service not available | +| AUTHENTICATION_ERROR | AUTHENTICATION_ERROR | Unauthorized | When Querying paytypes and dont have valid active credentials | +| VALIDATION_ON_FILTER_ERROR | EMPTY_VALUES_PASSED_ERROR | Invalid filter input. Multiple filter operations specified, only a single operation is allowed. | When Querying paytypes with multiple filter options | +| AUTHORIZATION_ERROR | AUTHORIZATION_ERROR | Forbidden | When Querying paytypes and dont have sufficient permissions | +| PERMISSION_DENIED | AUTHORIZATION_ERROR | Forbidden | When Querying Compensations by not existing EmployeeId | +| INVALID_REQUEST | INVALID_REQUEST | Could not find any employee with RealmId ExternalEmployeeId | Query PayTypes by not existing EmployeeId | +| INVALID_REQUEST | INVALID_REQUEST | Unable to find companyId for realmId= | Query PayTypes for a terminated company | +| VALIDATION_ERROR | NOT_A_VALID_NUMBER_ERROR | Invalid filter input. Please provide a valid number for employeeId | Query PayTypes by EmployeeId with invalid format | +| VALIDATION_ERROR | VALIDATION_ON_FILTER_ERROR | Invalid filter input. No values passed for the list | Query PayTypes by Compensation Ids with empty list | +| VALIDATION_ERROR | NOT_A_VALID_NUMBER_ERROR | Invalid filter input. Please provide a valid number for id | Query PayTypes by Compensation Ids with Invalid format | + +### CustomField : + +| Error Type | Error Code | Error Message | Error Source | +|------------------|-----------------------------------------------|-------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| VALIDATION_ERROR | V4_EXECUTION_FAILED | Failed to execute V4 request. | There was an internal server error. Please retry after a few mins. | +| SYSTEM_ERROR | V4_MAPPING_ERROR | Failed to map V4 response object. | There was an internal server error. Please retry after a few mins. | +| INVALID_REQUEST | V4_ENTITY_CHECK_FAILED | Check Entity Response Failure | There was an internal server error. Please retry after a few mins. | +| INVALID_REQUEST | EMPTY_VALUES_PASSED_ERROR | Invalid filter input. Multiple filter operations specified, only a single operation is allowed. | There was an internal server error. Please retry after a few mins. | +| INVALID_REQUEST | NA | V4 Interaction Request is null. | There was an internal server error. Please retry after a few mins. | +| SYSTEM_ERROR | V4_MISSING_RESPONSE_NODE | Property node is missing in edges. | Error while mapping the v4 response to CustomFieldDefinitionsConnection. | +| SYSTEM_ERROR | V4_MISSING_CFD_RESPONSE | customFieldDefinitions field is missing in response | Error in getting the property company while mapping the v4 response to CustomFieldDefinitionsConnection | +| SYSTEM_ERROR | V4_MISSING_COMPANY_RESPONSE | Company field is missing in response | Error in getting the property customFieldDefinitions while mapping the v4 response to CustomFieldDefinitionsConnection | + | SYSTEM_ERROR | V4_MISSING_RESPONSE_DATA | Data field is missing in response | Error in getting the property data while mapping the v4 response to CustomFieldDefinitionsConnection(Method extractEdge not used) | + | SYSTEM_ERROR | V4_MISSING_RESPONSE_KEY | %s Key field is missing in response | Error in getting any property while mapping the v4 response to CustomFieldDefinitionsConnection(Method extractEdge not used) | + | SYSTEM_ERROR | V4_MISSING_RESOURCE | Resource is missing | If any resource is missing in the write payload while creating a graphql entity for monolith call | + | VALIDATION_ERROR | V4_UNSUPPORTED_TYPE_REQUEST | request type is unsupported | Whenever request type is not Write or Read, This is for internal execution flow | + | SYSTEM_ERROR | UNEXPECTED_ERROR | Some unknown error occurred | This is thrown when error code is not passed, we can get rid of any such instances | + | SYSTEM_ERROR | INTERNAL_SERVER_ERROR | An internal server error has occurred. | There is a general exception. | + | INVALID_REQUEST | FORBIDDEN_ACCESS | Forbidden Request | Not used( thrown in case of read one and readFromDB flag is not on) | + | INVALID_REQUEST | PRINCIPAL_FETCH_FAILED | Failed to fetch principal | This error would never show up for 3P customers, we can remove it | +| VALIDATION_ERROR | CUSTOM_FIELD_LIMIT_EXCEEDED | Custom field limit exceeded | validates count of custom fields based on sku for advanced effective count of cf's is no of cf's in db, for lower sku's effective count is calculated using the total number of parent entities like SALE or PURCHASE | + | VALIDATION_ERROR | CUSTOM_FIELD_ASSOCIATED_ENTITY_LIMIT_EXCEEDED | Content Message proposed by PM. | Validates the maximum number of sub associated entity for custom fields | + | VALIDATION_ERROR | ACTIVE_SUB_ASSOCIATION_REQUIRED | Custom field missing entity condition | No the entity condition here refers to associations. If there is no active sub entity. | + | VALIDATION_ERROR | INVALID_SUB_ASSOCIATION | Custom field unsupported entity condition | No the entity condition here refers to associations. If there is no active sub entity which is not supported, for example any transaction that is not supported is sent in associations. | + | VALIDATION_ERROR | INVALID_DATA_TYPE | Invalid custom field definition data type | Data type is invalid, there is a set of enum for data type and using anything apart from this would result into this error. | +| VALIDATION_ERROR | INVALID_ASSOCIATION | Invalid custom field definition associated entity | validates mandatory fields in custom field definition associations and throws an exception when any entity is invalid. If associatedEntity not of type project, contact or transaction | | | +| VALIDATION_ERROR | ITEM_REQUIRED_IN_SUB_ASSOCIATIONS | Invalid custom field definition sub association | When sub association list is empty for any association | + | VALIDATION_ERROR | DUPLICATE_ASSOCIATION | Custom field definition duplicate association | If there are duplicate associations, eg contact type is passed two times | + | VALIDATION_ERROR | DUPLICATE_SUB_ASSOCIATION | Custom field definition duplicate sub association | If there are duplicate sub associations, eg sale_invoice is passed two times | + | VALIDATION_ERROR | ACTIVE_ITEM_REQUIRED_IN_DROPDOWN | Custom field definition dropdown type invalid active allowed values count | validates allowedValues list and throws an exception when allowed values count is invalid. Count is less than 2 | + | VALIDATION_ERROR | PRINT_OPERATION_ALLOWED_ONLY | Custom field definition invalid allowed operation | allowedOperation is anything other than PRINT | + | VALIDATION_ERROR | MISSING_ALLOWED_VALUES | Custom field definition value missing in dropdown allowed value | No this is the case where dropdown list is added but there is no value passed or null value passed into the value field of dropdown list | + | VALIDATION_ERROR | DUPLICATE_ALLOWED_VALUE | Custom field definition duplicate value in dropdown allowed value | Value field has duplicate value in allowed definition | + | VALIDATION_ERROR | LABEL_REQUIRED | Custom field definition null or empty label | If label is null or empty | + | VALIDATION_ERROR | LABEL_ALREADY_EXISTS | Custom field definition duplicate label | | + | VALIDATION_ERROR | LABEL_LENGTH_EXCEEDED | Custom field definition label length exceeded | | + | VALIDATION_ERROR | INVALID_LABEL_CHARACTERS | Custom field definition label regex mismatch | This is an error when the label has some special characters or it doesn't matches the validations for naming a custom field. We can send back the regex in error saying that this should match the label | + | VALIDATION_ERROR | DUPLICATE_ALLOWED_VALUE_ID | Custom field definition duplicate id in dropdown allowed value | dropdown list is added but id field has duplicate values of dropdown list | + | VALIDATION_ERROR | UNSUPPORTED_DATA_TYPE | Unsupported custom field definition data type for company sku | Different SKUs has different data types supported for example, simple start only supports the text type of Custom field | + | VALIDATION_ERROR | ITEM_REQUIRED_IN_DROPDOWN | Custom field definition value no dropdown allowed values present | Yes, The error message also denotes the same. | + | VALIDATION_ERROR | PRINT_NOT_SUPPORTED_IN_ALLOWED_OPERATION | Custom field definition print limit exceeded for sub entity | This is the case that PRINT is passed for sub associations(transactions) on which print is not supported | + | VALIDATION_ERROR | PRINT_LIMIT_EXCEEDED_FOR_ENTITY | Custom field definition print limit exceeded | No for any CF created, the user can specify "PRINT" only for a maximum of three transactions, i.e. "SALE", "SALE_INVOICE", "SALE_ESTIMATE". | + | VALIDATION_ERROR | ID_REQUIRED | Missing id in custom field definition | In case of update, id is not passed | + | VALIDATION_ERROR | MISSING_SCHEMA | Schema is null/missing | Should not show up for 3P as we map the request fields to schema. | + | SYSTEM_ERROR | CUSTOM_FIELD_SAVE_FAILED | Error saving Custom field definition | We can add error message to retry in these cases | + | | VALIDATIONS_NOT_FOUND | | If any error occurs in fetching the threshold limits from variability engine | + | SYSTEM_ERROR | ID_NOT_FOUND | Custom field to be updated not found | Id for update entity doesn't exist | + | SYSTEM_ERROR | UNEXPECTED_UPDATE_FAILED | Custom field update not supported | When legacyID v4 is not passed correctly for 3P, others when legacyId doesn't matches the existing CFDs | + | SYSTEM_ERROR | READ_ERROR | Error reading Custom field definitions | We can add error message to retry in these cases | + | INVALID_REQUEST | PERSONA_ID_FETCH_FAILED | Failed to fetch personaId from principal | This error would never show up for 3P customers, we can remove it | + | VALIDATION_ERROR | FIELD_MISSING | Field %s cannot be null or empty | This error is thrown when a field is null or empty | + | VALIDATION_ERROR | ACTIVE_ITEM_REQUIRED_IN_SUB_ASSOCIATIONS | Custom field missing active entity | If there are no active sub associations | + | INVALID_REQUEST | AUTHORIZATION_DENIED | Forbidden Access | If user is not having allowed permission to make a request or insufficient privilege | + | SYSTEM_ERROR | AUTHORIZATION_FETCH_FAILED | Failed to fetch authz decision | If there is connection timeout, or gateway timeout etc (system error) | + | SYSTEM_ERROR | UNDETERMINED_AUTHORIZATION_DECISION | AuthZ could not get a expected decision | If authZ response is indeterminate or not applicable | + | VALIDATION_ERROR | EXPIRED_QBO_SUBSCRIPTION | | | + | SYSTEM_ERROR | ENTITLEMENT_ERROR | | | + + +### Project error code : + +| Error Code | Error Message | +|---------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| DUPLICATE_PROJECT_NAME_FOR_CLIENT | Project name already exists | +| INVALID_EMAIL_ADDRESS | Invalid Email , It should be valid and should follow the standard email format | +| WORKFLOW_QUERY_JOB_NOT_FOUND | Job with id 300 not found | +| WORKFLOW_INVALID_JOB_ID | Job id is invalid. | +| WORKFLOW_QUERY_DATE_RANGE_ERROR | The date range Tue Oct 07 00:00:00 UTC 2025 to Fri Dec 06 00:00:00 UTC 2024 is invalid | +| INVALID_STATUS | Status %s is invalid | +| ValidationError | "Variable 'status' has an invalid value: Invalid input for Enum 'ProjectManagement_Status'. No value found for name 'OPENN | +| INVALID_ASSIGNEE_ID | Assignee Id must be exactly 15 characters. | +| NULL_CLIENT_OII_ID | Client oii id must not be null. | +| INVALID_CLIENT_OII_ID | Client oii id must be exactly 15 characters. | +| NULL_CLIENT_LOCAL_ID | Client local id must not be null. | +| INVALID_CLIENT_LOCAL_ID | Invalid client local id %s | +| CLIENT_LOCAL_ID_NULL_FOR_SMB | For SMB, client local id must not be null | +| CLIENT_OII_ID_NULL_FOR_INSERVICETOTYPE_CONTACT | For inService type Contact, Client oii id must not be null | +| CLIENT_OII_ID_NOT_NULL_FOR_INSERVICETOTYPE_SELF | For inService type Self, Client oii id must be null | +| CLIENT_LOCAL_ID_NULL_FOR_INSERVICETOTYPE_CONTACT | For inService type Contact, Client local id must not be null | +| CLIENT_LOCAL_ID_NOT_NULL_FOR_INSERVICETOTYPE_SELF | For inService type Self, Client local id must be null | +| INSERVICETOTYPE_DEFAULT_ERROR | InService type Contact : Client oii id & local id cannot be null; for type SELF: Client oii id & local id must be null | +| NULL_NAME | Name must not be null. | +| INVALID_PROJECT_NAME_WITH_COLON | Project name cannot include a colon. | +| INVALID_PROJECT_NAME_ONLY_WHITE_SPACES | Project names cannot only contain white spaces. | +| NULL_TEAM | Team must not be null. | +| INVALID_TEAM | Team must be exactly 15 characters. | +| INVALID_PROJECT_COMPLETION_RATE_AMOUNT | Project completion rate must be between 00.00 and 100.00 | +| ADDRESSLINE1_EXCEEDS_CHARACTER_LIMIT | Exception while fetching data (/projectManagementCreateProject) : No enum constant com.intuit.qba.workflow.service.error.WorkflowError.ADDRESSLINE1_EXCEEDS_CHARACTER_LIMIT | +| INVALID_DESCRIPTION_SIZE | Description must be between 0-1500 characters. | +| INVALID_QUERY_ENTITY_ID_LIMIT | Project IDs exceeded the limit of %s | +| INVALID_NAME | Name must be between 1-80 characters | +| INVALID_PRIORITY | Project priority must be null or in range [0,9] | +| AUTHZ_ERROR | Something went wrong in AuthZ: %s | +| AUTHZ_VERIFY_ACCESS_ERROR | VerifyAccess DENY from AuthZ: % | +| AUTHZ_UNDETERMINDED_DECISION_ERROR | AuthZ could not get a expected decision: %s | +| AUTHZ_DENIED_ERROR | AuthZ denied decision | +| AUTHORIZATION_INVALID_TARGET_REALM | Authorization failed: target realm id is invalid | +| AUTHORIZATION_INVALID_CSRF | Authorization failed: CSRF is invalid for the realm | +| DEFAULT_ERROR | An error has occurred. %s | +| DataFetchingException | After cursor value shoud be null or base64 string value | +| GRAPHQL_VALIDATION_FAILED | String cannot represent a non string value | diff --git a/docs/faq/faq.md b/docs/faq/faq.md new file mode 100644 index 0000000..ea7fdaa --- /dev/null +++ b/docs/faq/faq.md @@ -0,0 +1,11 @@ +--- +layout: default +title: FAQ +nav_order: 5 +has_children: true +permalink: /docs/faq/ +--- + +## FAQ + +Here are answers to common questions and topics related to specific feature domains (accounting, payroll, etc). \ No newline at end of file diff --git a/docs/faq/webhooks.md b/docs/faq/webhooks.md new file mode 100644 index 0000000..5ea18d5 --- /dev/null +++ b/docs/faq/webhooks.md @@ -0,0 +1,21 @@ +--- +layout: default +title: Webhooks +nav_order: 3 +parent: FAQ +--- + +# Webhooks + +The following new entities will have support for webhooks. +- Projects (Events supported: Create/Update/Delete) + + Webhook support for the following entities is not avalable at this time and will be added in the future: +- Custom Fields Definitions +- Time +- Payroll Employee Compensation + + +Apps that require subscribing to webhooks events for the above entities will have to be manually onboarded. Reach out to your Intuit point of contact to get your app onboarded to webhooks. + + diff --git a/docs/getting-started/authentication.md b/docs/getting-started/authentication.md new file mode 100644 index 0000000..68a45c6 --- /dev/null +++ b/docs/getting-started/authentication.md @@ -0,0 +1,73 @@ +--- +layout: default +title: Authenticate your app +nav_order: 1 +parent: Getting Started +--- + +# Set up and authorize your app + +Let's get started. Intuit API gives you incredible flexibility to build creative solutions around key business problems. You can create client or server apps from the ground up, or [start with common use cases](../../use-cases/). + +Here's what you need to get up and running. + +## Step 1: Get to know the QuickBooks API platform +Already familiar with Intuit API and GraphQL? Feel free to skip this section. + +If you're new, check out these resources so you can develop with confidence: + +* [Learn about GraphQL](../../graphql-concepts/) +* [Learn about the specific use cases](../../use-cases) + +## Step 2: Set up your developer account + +Go to the Intuit Developer Portal and [create a developer account](https://developer.intuit.com/app/developer/myapps). + +## Step 3: Set up your QuickBooks Online test company + +If you don't have one already, reach out to your Intuit point of contact so we can provide you with a test company to test code as you develop. +Your test company may need specific features depending on the usecase that you are solving for. + +## Step 4: Create your app on the Intuit Developer Portal + +1. [Sign in](https://developer.intuit.com/) to your developer account. +2. Select the **Dashboard** tab on the toolbar. +3. Select **+ Create an app**. +4. Follow the on-screen steps. + +When you're done, reach out to your Intuit point of contact so we can onboard it to the Intuit API platform. + +## Step 5: Get familiar with data scopes + +Intuit API lets developers limit the scope of data. Instead of broad permissions, you set granular permissions so apps only focus on specific data-sets. This minimizes payloads and potentially improves performance. + +[Review the current scopes](https://intuitdeveloper.github.io/intuit-api/docs/getting-started/scopes/). Pick the ones that are relevant for your users. You'll set the scopes when you authorize your app. + +## Step 6: Authorize your app +All apps need access tokens to connect to our API servers. Intuit uses the [OAuth 2.0 protocol](https://developer.intuit.com/app/developer/qbo/docs/develop/authentication-and-authorization/oauth-2.0). + +To start, you need to get your app's credentials: +1. [Sign in to (or sign up for)](https://developer.intuit.com/) your developer account. +2. Select the **Dashboard** tab on the toolbar. +3. Select and open your app. +4. If you're starting with a sandbox environment, go to the **Development** section and select **Keys & OAuth**. If you're authorizing a production app, go to the **Production** section and select **Keys & OAuth**. +5. Copy the **Client ID** and **Client Secret**. + +Use the Client ID and Client Secret to [set up OAuth2.0](https://developer.intuit.com/app/developer/qbo/docs/develop/authentication-and-authorization/oauth-2.0). + + + + + +
Tip: Want to try the authentication process with demo code? Check out the OAuth 2.0 playground. +
+ +## Step 7: Get tools to test GraphQL queries + +We suggest using a [GraphQL Integrated Developer Environment (IDE)](https://intuitdeveloper.github.io/intuit-api/docs/getting-started/graphql-ide/), like Insomnia or GraphiQL, to test queries during development. + +## Step 8: Develop your app + +Your app is onboarded and authorized. You have everything you need to build and test queries! + +Check out [GraphQL best practices](../../faq/best-practices/) to develop fast, robust, and reliable apps. diff --git a/docs/getting-started/endpoints.md b/docs/getting-started/endpoints.md new file mode 100644 index 0000000..b32b2c9 --- /dev/null +++ b/docs/getting-started/endpoints.md @@ -0,0 +1,15 @@ +--- +layout: default +title: Endpoints +nav_order: 3 +parent: Getting Started +--- + +# Get the latest endpoint for Intuit API + +Endpoints are the locations on our server where apps send requests to call APIs. + +Since Intuit API is based on GraphQL, there's only one endpoint. No matter which entities or fields you include in your queries, requests all go to the same endpoint. + +- **For production apps**: `https://qb.api.intuit.com/graphql` +- **For sandbox companies and testing environments**: `NA` diff --git a/docs/getting-started/getting-started.md b/docs/getting-started/getting-started.md new file mode 100644 index 0000000..31add9e --- /dev/null +++ b/docs/getting-started/getting-started.md @@ -0,0 +1,11 @@ +--- +layout: default +title: Getting Started +nav_order: 2 +has_children: true +permalink: /docs/getting-started/ +--- + +# Getting Started + +Follow a link to get started with Intuit API. \ No newline at end of file diff --git a/docs/getting-started/graphql-ide/graphql-ide.md b/docs/getting-started/graphql-ide/graphql-ide.md new file mode 100644 index 0000000..bad7e69 --- /dev/null +++ b/docs/getting-started/graphql-ide/graphql-ide.md @@ -0,0 +1,12 @@ +--- +layout: default +title: Testing +nav_order: 4 +has_children: true +permalink: /docs/getting-started/graphql-ide/ +parent: Getting Started +--- + +# Testing + +Follow a links to get started with testing Intuit API. \ No newline at end of file diff --git a/docs/getting-started/graphql-ide/postman-collection.md b/docs/getting-started/graphql-ide/postman-collection.md new file mode 100644 index 0000000..004af5e --- /dev/null +++ b/docs/getting-started/graphql-ide/postman-collection.md @@ -0,0 +1,15 @@ +--- +layout: default +title: Postman Collection +nav_order: 3 +parent: Testing +grand_parent: Getting Started +permalink: /docs/getting-started/graphql-ide/postman-collection +--- + +# Set up and test with Postman + +To get a full list of operations and resources available in the Grapqh API, use the API reference docs [here](https://intuitdeveloper.github.io/intuit-api/docs/schema-entities/). +You can also refer to our collections for Postman [here](https://intuitdeveloper.github.io/intuit-api/assets/files/IntuitAPI -PostmanCollections.json) +and Environment variable [here](https://intuitdeveloper.github.io/intuit-api/assets/files/QBO_Environment_PROD.json) . + diff --git a/docs/getting-started/graphql-ide/testing-environment.md b/docs/getting-started/graphql-ide/testing-environment.md new file mode 100644 index 0000000..91c42c3 --- /dev/null +++ b/docs/getting-started/graphql-ide/testing-environment.md @@ -0,0 +1,13 @@ +--- +layout: default +title: Testing Environment +nav_order: 2 +parent: Testing +grand_parent: Getting Started +permalink: /docs/getting-started/graphql-ide/testing-environment +--- + +# Environment for API testing + +APIs are not available in the sandbox for the beta launch and will have to be tested in production. If you don't have a test production QuickBooks Online company already, reach out to your Intuit point of contact so we can provide you with a test company to test code as you develop. + diff --git a/docs/getting-started/scopes.md b/docs/getting-started/scopes.md new file mode 100644 index 0000000..4b860ef --- /dev/null +++ b/docs/getting-started/scopes.md @@ -0,0 +1,27 @@ +--- +layout: default +title: Scopes +nav_order: 2 +parent: Getting Started +--- + +**Last updated**: Aug 14, 2024 + +**Read time**: 1 min + +# Learn about Intuit scopes + +In GraphQL, scopes limit what data your app can read and update. Instead of getting broad permissions for everything, set granular permissions so your app only focuses on what's necessary. + +Here are the current scopes for Intuit API. + +| **Scope** | **Description** | **Sensitive data** | +|:----------------------------------------------|:--------------------------------------------------------|:-------------------| +| project-management.project | Grants access to read and write project | | +| payroll.compensation.read | Grants access to read pay types | | +| app-foundations.custom-field-definitions.read | Grants access to read custom field definitions | | +| app-foundations.custom-field-definitions | Grants access to read and write ustom field definitions | | + + + +**Note**: Sensitive data requires additional legal agreement and manual onboarding with our support team. \ No newline at end of file diff --git a/docs/graphql-concepts/directives.md b/docs/graphql-concepts/directives.md new file mode 100644 index 0000000..0d3db73 --- /dev/null +++ b/docs/graphql-concepts/directives.md @@ -0,0 +1,31 @@ +--- +layout: default +title: Directives +nav_order: 5 +parent: GraphQL Concepts +--- + +# Use directives to control server responses + +Directives let you conditionally control which fields and values the server returns in it's response. + +Instead of adjusting queries to add or remove fields, use directives to only see the data you currently need. You include or skip fields based on the argument you pass to the directive. + +## How to create directives +For Intuit API, use the core GraphQL **@include** and **@skip** directives. Both use Boolean arguments. + +Here's an example query with **@include** for `fieldName2`. + +``` +query + queryName($condition: Boolean) { + fieldName1 + fieldName2 @include(if: $condition) { + field1 + field2 + } + } +``` +The server will include `fieldName2` in the response if the **$condition** is met. + +Learn more about [directives from GraphQL.org](https://graphql.org/learn/queries/#directives). \ No newline at end of file diff --git a/docs/graphql-concepts/fragments.md b/docs/graphql-concepts/fragments.md new file mode 100644 index 0000000..bd8fb4b --- /dev/null +++ b/docs/graphql-concepts/fragments.md @@ -0,0 +1,45 @@ +--- +layout: default +title: Fragments +nav_order: 6 +parent: GraphQL Concepts +--- + +# Create fragments for sets of fields + +Fragments are reusable sets of fields you can use across queries. + +In GraphQL, you can define and group sets of fields into fragments. Instead of repeating individual fields, simply call the fragment to utilize all the fields and related data at once. + +This lets you organize code into modular, bite-sized "chunks." + +## How to create and use fragments + +For Intuit API, fragments are useful for queries that constantly reuse the same sets of fields. + +Here's an example of defining a fragment and using it in a query: + +``` +query + queryName { + fieldName1 + fieldName2 { + ...fragmentName + } + } +``` +We put `fragmentName` in `fieldName2`. + +Now define the fragment and corresponding set of fields: + +``` +fragment + fragmentName on FieldName { + field1 + field2 + field3 + } +``` +Now, instead of entering each individual field, you can just use `fragmentName`. + +Learn more about [fragments from GraphQL.org](https://graphql.org/learn/queries/#variables). diff --git a/docs/graphql-concepts/graphql-benefits.md b/docs/graphql-concepts/graphql-benefits.md new file mode 100644 index 0000000..b097cc8 --- /dev/null +++ b/docs/graphql-concepts/graphql-benefits.md @@ -0,0 +1,65 @@ +--- +layout: default +title: GraphQL best practices +nav_order: 8 +parent: GraphQL Concepts +--- + +# Adopt Intuit API best practices + +GraphQL is a powerful and efficient API language. Here are a few ways you can structure and craft your code to build world-class apps. + +For more tips, [visit GraphQL.org](https://graphql.org/learn/best-practices/). + +## GraphQL best practices + +### Only query for the data your app needs + +In GraphQL, less is more. Create queries that only request the specific fields and data required for your QuickBooks integration to be fully functional. You can change queries later and add more fields as needed. + + +### Use aliases to query the same field with different arguments + +[Aliases](https://graphql.org/learn/queries/#aliases) let you rename the results of identical object fields so you can query the same field for different arguments. You can pass multiple queries at once and get responses for both fields without conflict. + +### Always include operation names to avoid confusion + +Consciously [use operation names](https://graphql.org/learn/queries/#operationname) to make your code crystal clear, concrete, and unambiguous. + +### Create fragments to speed up code writing + +Instead of querying frequently used fields individually, [create and reuse fragments](../fragments/) whenever possible. This makes code modular and easier to scale. + +### Take advantage GraphQL's unique features to get more done + +[Pagination](../pagination/) lets you quickly navigate large datasets. If you expect a query to return lots of data, use pagination to fetch specific subsets. + + +## Advantages of GraphQL + +### Single endpoints + +Let's say you want to build an invoicing app. It needs to constantly request data for a specific set of invoices. The invoices contain particular items for a specific date range. And, the app needs current business addresses for each customer. + +With REST API, you’d need to make several queries to different endpoints: one for the invoice, one for each customer, and one for each item. + +GraphQL only requires a single query, [sent to a single endpoint](../../getting-started/endpoints/). + +### Get only the data you need + +GraphQL queries are highly customizable. You specify the exact fields and values you want the server to return. Apps only get the data you query for - there’s no over-fetching or under-fetching. + +### Develop with any language +GraphQL is language-independent. You can use it with any backend framework or programming language implementation. + +### Validate queries as you work + +Since GraphQL is a type system, everything about it is part of its schema. You can validate queries as you create them with [testing tools like GraphiQL](../../getting-started/graphql-ide/) (which has a built-in parser). You can also let the server validate requests against the current schema version. + +### Everything is documented + +Accurate and up-to-date documentation is always available along with the schema. + +### Simple data hierarchies + +GraphQL requests and responses are structured the same way. It naturally follows relationships between attributes. diff --git a/docs/graphql-concepts/graphql-concepts.md b/docs/graphql-concepts/graphql-concepts.md new file mode 100644 index 0000000..1a112b3 --- /dev/null +++ b/docs/graphql-concepts/graphql-concepts.md @@ -0,0 +1,23 @@ +--- +layout: default +title: GraphQL Concepts +nav_order: 3 +has_children: true +permalink: /docs/graphql-concepts/ +--- + +# Learn about GraphQL + +Intuit API uses the [GraphQL API framework](https://graphql.org/). Here's a brief overview. + +## What's GraphQL? + +GraphQL is an API query language that simplifies client-side requests. Apps can do a lot of work with just a single query: it can query multiple resources and entities, request data in a specific format, or get the server to perform several operations. + +> “At its simplest, GraphQL is about asking for specific fields on objects.” [GraphQL.org](https://graphql.org){:target="_blank"} + +All queries go to a single endpoint on the server. The server parses queries and only returns the requested data in the requested format. + +* Learn more about [the advantages of GraphQL](./graphql-benefits/) and what makes it a great API framework +* Visit [GraphQL.org](https://graphql.org/){:target="_blank"} for a deeper dive +* Check out [courses from edx.org](https://www.edx.org/course/exploring-graphql-a-query-language-for-apis){:target="_blank"} diff --git a/docs/graphql-concepts/mutation.md b/docs/graphql-concepts/mutation.md new file mode 100644 index 0000000..a447cda --- /dev/null +++ b/docs/graphql-concepts/mutation.md @@ -0,0 +1,53 @@ +--- +layout: default +title: Mutation +nav_order: 2 +parent: GraphQL Concepts +--- + +# Use mutations to modify data + +Mutations are what apps use to perform operations to change, update, or delete data on the server. + +In GraphQL, you can use mutations to modify multiple fields with a single request. If you're familiar with REST API, mutations are similar to the **POST**, **PUT**, and **DELETE** operations. + +While it's possible to create and update data with queries in GraphQL, it's best practice to use mutations to change or update data. And unlike queries, mutations run in series instead of in parallel. + +## How to use mutations + +For Intuit API, you'll use mutations often for things like timesheets, projects and custom fields. + +Here's a simple mutation to create a project: + +``` +mutation AppFoundationsCreateCustomFieldDefinition( + $input: AppFoundations_CustomFieldDefinitionCreateInput! +) { + appFoundationsCreateCustomFieldDefinition(input: $input) { + label + active + associations { + associatedEntity + active + associationCondition + subAssociations { + associatedEntity + active + allowedOperations + } + } + dataType + dropDownOptions { + value + active + order + } + } +} + +``` +Mutations typically take input data and define fields based on the response the server returns. + +In this example, the mutation took the `deduction` argument and let the server define the `id` and `name` fields based on the response. + +Learn more about [mutations from GraphQL.org](https://graphql.org/learn/queries/#mutations). \ No newline at end of file diff --git a/docs/graphql-concepts/pagination.md b/docs/graphql-concepts/pagination.md new file mode 100644 index 0000000..a611b06 --- /dev/null +++ b/docs/graphql-concepts/pagination.md @@ -0,0 +1,38 @@ +--- +layout: default +title: Pagination +nav_order: 7 +parent: GraphQL Concepts +--- + +# Use pagination to fetch subsets of data + +Pagination lets you quickly search and request subsets of data within larger datasets. + +In GraphQL, you can use the **pageInfo** object and cursor-based pagination (`endCursor` and `startCursor`) to set criteria or collect data after a certain point in the response. This typically yields smaller payloads and faster server responses. + +## How to use pagination + +Pagination can help when there's lots of comingled data. For example, you may only need data from specific subaccounts rather than everything on [the chart of accounts](https://developer.intuit.com/app/developer/qbo/docs/api/accounting/most-commonly-used/account). + +Here's an example query to get the number of records following the `cursorValue`. + +``` +query queryName { + fieldName1 + fieldName2(pagination: {first: numOfRecords, after: cursorValue}) { + pageInfo { + hasNextPage + startCursor + endCursor + hasPreviousPage + } + field1 + field2 + } +} +``` + +In this case, the server will only count records following the `cursorValue`. + +Learn more about [pagination from GraphQL.org](https://graphql.org/learn/pagination/). diff --git a/docs/graphql-concepts/query.md b/docs/graphql-concepts/query.md new file mode 100644 index 0000000..ccccd6e --- /dev/null +++ b/docs/graphql-concepts/query.md @@ -0,0 +1,37 @@ +--- +layout: default +title: Query +nav_order: 1 +parent: GraphQL Concepts +--- + +# Create queries to request data + +In GraphQL, queries can fetch data for single or multiple fields, apply filters, and get conditional data. If you're familiar with REST API, this is very similar to the GET operation. However, queries in GraphQL are always **POST** operations. + +GraphQL queries are very efficient. When apps send requests with queries, the server only returns the requested data. The response will be the same shape and format as the query. + +Server responses are clean, specific, and easy to work with. This also boosts app performance. Servers don't slow down to fetch unusable or extraneous data. + +## How to create queries + +For Intuit API, use queries to get data for projects, custome fields, and other resources. Specify the exact fields you want the server to return in the query body. + +Here's a simple query to read project by id: + +``` +query projectManagementProject($id: ID!) { + projectManagementProject(id: $id) { + name, + status + } +} + +Input variable: +{ + "id" : 123 +} +``` +The server will return values for the `name` and `status` fields of all the projects in a company. + +Learn more about queries [from GraphQL.org](https://graphql.org/learn/queries/). diff --git a/docs/graphql-concepts/variables.md b/docs/graphql-concepts/variables.md new file mode 100644 index 0000000..f2447d7 --- /dev/null +++ b/docs/graphql-concepts/variables.md @@ -0,0 +1,41 @@ +--- +layout: default +title: Variables +nav_order: 4 +parent: GraphQL Concepts +--- + +# Use variables to simplify queries and mutations + +Variables let you create dynamic code. + +Instead of entering static values for every argument, define and use a variable. You can update the variable anytime to push changes for that value everywhere in your code. + +This simplifies code and makes it much easier to maintain. + +## How to define and enter variables +In GraphQL, variables are JSON objects. You can use variables for both [queries](https://intuitdeveloper.github.io/intuit-api/docs/graphql-concepts/query/) and [mutations](https://intuitdeveloper.github.io/intuit-api/docs/graphql-concepts/mutations/). + +Here's an example. First, we'll replace the static value in the query with $**variable**. + +``` +query queryName ($variable : type) { + fieldName1 + fieldName2 (filter: {field1 {in : $variable}}) { + field1 + field2 + } +} +``` +We replaced the value for the `in` field in `fieldName2` with the **$variable**. + +Then declare the variable and its value in a separate variable dictionary: + +``` +{ + variable: “value” +} +``` +Now, any time you update the `variable`'s value, the change is reflected wherever you used the variable. + +Learn more about [variables from GraphQL.org](https://graphql.org/learn/queries/#variables). diff --git a/docs/schema-entities/customfield.md b/docs/schema-entities/customfield.md new file mode 100644 index 0000000..420ff45 --- /dev/null +++ b/docs/schema-entities/customfield.md @@ -0,0 +1,549 @@ +--- +layout: default +title: CustomField +nav_order: 1 +parent: Schema Entities +--- + +## Custom Field + +The APIs related to the Custom Fields allow you to manage and sync custom fields into QuickBooks Online. +The Custom Fields API provides support for create, read, update, and disable operations. +When creating a Custom Field, you can create associations with entities. +You can also add custom fields to transactions and other entities by configuring the custom field definition ID while creating the transaction. + +### Operations for Custom Fields entity + +- [Read](https://intuitdeveloper.github.io/intuit-api/docs/schema-entities/customfield/#read-custom-fields) - Query (POST) +- [Create](https://intuitdeveloper.github.io/intuit-api/docs/schema-entities/customfield/#create-custom-field) - Mutation (POST) +- [Update](https://intuitdeveloper.github.io/intuit-api/docs/schema-entities/customfield/#update-custom-field) - Mutation (POST) +- [Disable](https://intuitdeveloper.github.io/intuit-api/docs/schema-entities/customfield/#disable-custom-field) -Mutation (POST) + + +### API Reference + +| Field | Type | Required | Description | +|--------------------------------|------------------------------------------------------|----------|---------------------------------------------------------------------------------------------------------------------------| +| id | ID! | yes | Id of the Custom Field Definition. | +| legacyIDV2 | ID! | yes | Unique numeric identifier of the Custom Field Definition used in QBO 3P REST APIs. | +| label | String | no | Label of the Custom Field Definition. | +| associations | [AppFoundations_CustomExtensionAssociations!]! | yes | All the associations and their properties. | +| dataType | AppFoundations_CustomExtensionDataType! | yes | Data type of the Custom Extension Definition. For example: String, Number. | +| dropDownOptions | [AppFoundations_CustomFieldDefinitionDropDownOption] | no | drop down options, applicable when dataType is a list. | +| active | Boolean | no | indicates whether this CF is still active. | +| customFieldDefinitionMetaModel | AppFoundations_CustomFieldDefinitionMetaModel | no | used during downgrade flow to indicate if a custom field needs to be inactivated due to missing support in the target sku | + +### Type AppFoundations_CustomExtensionAssociations + +| Field | Type | Required | Description | +|----------------------|----------------------------------------------------|----------|--------------------------------------------------------------------------------------------------------------------------------------------------------------| +| associatedEntity | String! | yes | entity associated.For example: transaction. | +| active | Boolean | yes | indicates whether this entity association is active. | +| validationOptions | AppFoundations_CustomExtensionValidationOptions | no | indicates the validation options on this entity. | +| allowedOperations | [AppFoundations_CustomExtensionAssociations!]! | yes | indicates what possible operations can be done. For example: Search, Print. | +| associationCondition | AppFoundations_CustomExtensionAssociationCondition | yes | indicates whether this entity is part of an inclusion list or exclusion list. For exmaple: dimension will have EXCLUDED list, and CF will have INCLUDED list | +| subAssociations | [AppFoundations_CustomExtensionSubAssociation!] | yes | all sub associations for this entity. | + +### Type AppFoundations_CustomExtensionSubAssociation + +| Field | Type | Required | Description | +|-------------------|--------------------------------------------------|----------|-----------------------------------------------------------------------------| +| associatedEntity | String! | yes | sub entity associated. For example: invoice. | +| active | Boolean | no | indicates whether this sub entity is active. | +| validationOptions | AppFoundations_CustomExtensionValidationOptions | no | indicates the validation options on this entity. | +| allowedOperations | [AppFoundations_CustomExtensionAllowedOperation] | no | indicates what possible operations can be done. For example: Search, Print. | + +### AppFoundations_CustomExtensionDataType + +``` +enum AppFoundations_CustomExtensionDataType { + UNKNOWN + STRING + NUMBER + DATE + OBJECT_LIST + STRING_LIST +} + +``` + +### AppFoundations_CustomFieldDefinitionDropDownOption + +| Field | Type | Required | Description | +|--------|---------|----------|------------------------------------------------| +| id | ID! | yes | id of the option. | +| value | String! | yes | value of the option. | +| active | Boolean | no | indicates whether this option is still active. | +| order | Int | yes | indicates the creation order of this option. | + + +### AppFoundations_CustomFieldDefinitionMetaModel + +| Field | Type | Required | Description | +|-----------|---------|----------|-------------------------------------------------------------------------------------------------------| +| suggested | Boolean | no | this field being true indicates that the CF is unsupported in target sku and needs to be inactivated. | + + +### AppFoundations_CustomExtensionValidationOptions + +| Field | Type | Required | Description | +|----------|---------|----------|--------------------------------------------| +| required | Boolean | no | indicates whether this entity is required. | + + +### AppFoundations_CustomExtensionAssociationCondition + +``` +enum AppFoundations_CustomExtensionAssociationCondition { + UNKNOWN + INCLUDED + EXCLUDED +} +``` + +### Read Custom Fields + +Sample query (Query Time Entries): +``` +query { + appFoundationsCustomFieldDefinitions { + edges { + node { + id + legacyIDV2 + label + associations { + associatedEntity + active + validationOptions { + required + } + allowedOperations + associationCondition + subAssociations { + associatedEntity + active + allowedOperations + } + } + dataType + dropDownOptions { + id + value + active + order + } + active + customFieldDefinitionMetaModel { + suggested + } + } + } + } +} + +``` + +Response: +``` +{ + "data": { + "appFoundationsCustomFieldDefinitions": { + "edges": [ + { + "node": { + "id": "udcf_5", + "legacyIDV2": "1149622", + "label": "cf-03", + "associations": [ + { + "associatedEntity": "/transactions/Transaction", + "active": true, + "validationOptions": { + "required": false + }, + "allowedOperations": [], + "associationCondition": "INCLUDED", + "subAssociations": [ + { + "associatedEntity": "SALE_INVOICE", + "active": true, + "allowedOperations": [] + } + ] + } + ], + "dataType": "STRING", + "dropDownOptions": [], + "active": true, + "customFieldDefinitionMetaModel": { + "suggested": null + } + } + } + ] + } + } +} + + +``` + +### Create Custom Field +Mutation: + +``` +mutation AppFoundationsCreateCustomFieldDefinition($input: AppFoundations_CustomFieldDefinitionCreateInput!) { + appFoundationsCreateCustomFieldDefinition(input: $input) { + label + active + associations { + associatedEntity + active + validationOptions { + required + } + allowedOperations + associationCondition + subAssociations { + associatedEntity + active + allowedOperations + } + } + dataType + dropDownOptions { + value + active + order + } + } +} + +``` + +Input Variables: +``` +{ + "input": { + "label": "CF-customerType2", + "associations": [ + { + "validationOptions": { + "required": false + }, + "associatedEntity": "/transactions/Transaction" , + "active": true, + "allowedOperations": [], + "associationCondition": "INCLUDED", + "subAssociations": [ + { + "associatedEntity": "SALE_INVOICE", + "active": true, + "allowedOperations": [] + } + ] + }, + { + "associatedEntity": "/network/Contact", + "active": true, + "validationOptions": { + "required": false + }, + "allowedOperations": [], + "associationCondition": "INCLUDED", + "subAssociations": [ + { + "associatedEntity": "CUSTOMER", + "active": true, + "allowedOperations": [] + } + ] + } + ], + "dataType": "STRING", + "active": true + } +} + +``` + +Sample response: +``` +{ + "data": { + "appFoundationsCreateCustomFieldDefinition": { + "label": "CF-customerType2", + "active": true, + "associations": [ + { + "associatedEntity": "/transactions/Transaction", + "active": true, + "validationOptions": { + "required": false + }, + "allowedOperations": [], + "associationCondition": "INCLUDED", + "subAssociations": [ + { + "associatedEntity": "SALE_INVOICE", + "active": true, + "allowedOperations": [] + } + ] + }, + { + "associatedEntity": "/network/Contact", + "active": true, + "validationOptions": { + "required": false + }, + "allowedOperations": [], + "associationCondition": "INCLUDED", + "subAssociations": [ + { + "associatedEntity": "CUSTOMER", + "active": true, + "allowedOperations": [] + } + ] + } + ], + "dataType": "STRING", + "dropDownOptions": [] + } + } +} + +``` + +### Update Custom Field + +Mutation: + +``` +mutation AppFoundationsUpdateCustomFieldDefinition($input: AppFoundations_CustomFieldDefinitionUpdateInput!) { + appFoundationsUpdateCustomFieldDefinition(input: $input) { + id + legacyIDV2 + label + associations { + associatedEntity + active + validationOptions { + required + } + allowedOperations + associationCondition + subAssociations { + associatedEntity + active + allowedOperations + } + } + dataType + dropDownOptions { + id + value + active + order + } + active + } +} + +``` + + +Variables: +``` +{ + "input": { + "id": "udcf_1", + "legacyIDV2": "1149549", + "label": "cf-01", + "active": false, + "associations": [ + { + "validationOptions": { + "required": true + }, + "associatedEntity": "/transactions/Transaction" , + "active": true, + "allowedOperations": [], + "associationCondition": "INCLUDED", + "subAssociations": [ + { + "associatedEntity": "SALE_INVOICE", + "active": true, + "allowedOperations": [] + }, + { + "associatedEntity": "SALE_ESTIMATE", + "active": true, + "allowedOperations": [] + } + ] + } + ] + } +} + +``` + +Response: +``` +{ + "data": { + "appFoundationsUpdateCustomFieldDefinition": { + "id": "udcf_1", + "legacyIDV2": "1149549", + "label": "cf-01", + "associations": [ + { + "associatedEntity": "/transactions/Transaction", + "active": true, + "validationOptions": { + "required": false + }, + "allowedOperations": [], + "associationCondition": "INCLUDED", + "subAssociations": [ + { + "associatedEntity": "SALE_INVOICE", + "active": true, + "allowedOperations": [] + }, + { + "associatedEntity": "SALE_ESTIMATE", + "active": true, + "allowedOperations": [] + } + ] + } + ], + "dataType": "STRING", + "dropDownOptions": [], + "active": false + } + } +} + +``` +### Disable Custom Field + +Mutation: + +``` +mutation AppFoundationsUpdateCustomFieldDefinition($input: AppFoundations_CustomFieldDefinitionUpdateInput!) { + appFoundationsUpdateCustomFieldDefinition(input: $input) { + id + legacyIDV2 + label + associations { + associatedEntity + active + validationOptions { + required + } + allowedOperations + associationCondition + subAssociations { + associatedEntity + active + allowedOperations + } + } + dataType + createdSource + dropDownOptions { + id + value + active + order + } + active + } +} + + +``` + +Variables: +``` +{ + "input": { + "id": "udcf_1", + "legacyIDV2": "1149549", + "label": "cf-01", + "active": false, + "associations": [ + { + "validationOptions": { + "required": true + }, + "associatedEntity": "/transactions/Transaction" , + "active": false, + "allowedOperations": [], + "associationCondition": "INCLUDED", + "subAssociations": [ + { + "associatedEntity": "SALE_INVOICE", + "active": true, + "allowedOperations": [] + }, + { + "associatedEntity": "SALE_ESTIMATE", + "active": true, + "allowedOperations": [] + } + ] + } + ] + } +} + +``` + +Response: + +``` +{ + "data": { + "appFoundationsUpdateCustomFieldDefinition": { + "id": "udcf_1", + "legacyIDV2": "1149549", + "label": "cf-01", + "associations": [ + { + "associatedEntity": "/transactions/Transaction", + "active": false, + "validationOptions": { + "required": false + }, + "allowedOperations": [], + "associationCondition": "INCLUDED", + "subAssociations": [ + { + "associatedEntity": "SALE_INVOICE", + "active": true, + "allowedOperations": [] + }, + { + "associatedEntity": "SALE_ESTIMATE", + "active": true, + "allowedOperations": [] + } + ] + } + ], + "dataType": "STRING", + "createdSource": null, + "dropDownOptions": [], + "active": false + } + } +} + + +``` \ No newline at end of file diff --git a/docs/schema-entities/employeeCompensation.md b/docs/schema-entities/employeeCompensation.md new file mode 100644 index 0000000..06a2ec4 --- /dev/null +++ b/docs/schema-entities/employeeCompensation.md @@ -0,0 +1,265 @@ +--- +layout: default +title: EmployeeCompensation +nav_order: 1 +parent: Schema Entities +--- + +## EmployeeCompensation + +This resource allows your app to view the types of compensations provided from the employer to the employees. EmployeeCompensation allows you to determine which compensation types apply to a given employee. You can query a specific compensation type or all of them that apply. + +### Operations for EmployeeCompensation entity + +- [Read](https://intuitdeveloper.github.io/intuit-api/docs/schema-entities/employeeCompensation/#read-employeecompensationid) - Query (POST) + +### Endpoints + +- For production apps: https://qb.api.intuit.com/graphql + +### EmployeeCompensation Entry Fields + +| # | Field Name | Data Type | Required | Field Definition | +|-----|----------------------|-------------------------------|----------|-------------------------------------------------------------------| +| 1 | id | ID | | Unique identifier for the employee compensation. | +| 2 | employerCompensation | Payroll_EmployerCompensation! | | The employer compensation item associated with this compensation. | +| 3 | active | Boolean! | | Whether this compensation is currently active. | + + +### Payroll_EmployerCompensation + +| # | Field Name | Data Type | Required | Field Definition | +|-----|------------|------------------------------|----------|---------------------------------------------| +| 1 | id | ID | | The employer compensation id. | +| 2 | name | String! | | The name associated with this compensation. | +| 3 | type | Payroll_VariableStringField! | | The corresponding compensation type. | + +### Payroll_VariableStringField + +| # | Field Name | Data Type | Required | Field Definition | +|-----|-------------|-----------|----------|-----------------------------------------------| +| 1 | key | String! | | Key of the variable string field. | +| 2 | description | String! | | Key description of the variable string field. | +| 3 | value | String! | | Value of the variable string field. | + +### Payroll_EmployeeCompensationsFilter! + +| # | Field Name | Data Type | Required | Field Definition | +|-----|------------|-----------|----------|------------------------------------------------------------| +| 1 | active | Boolean! | | Filter active employee compensations. | +| 2 | employeeId | ID | | unique identifier of the employee to filter compensations. | + + +### Input Variables: + +| # | Input Name | Fields | Type | Field Definition | +|-----|------------|----------|------|----------------------------------------------------------------------------------------------------------------------------------------------| +| 1 | employeeId | String | | The ID of the Employee. If passed in specific employeeId, the query will return all active compensations assigned/applicable to the employee | +| 2 | active | Boolean! | | Whether this compensation is currently active. | + + +### Read EmployeeCompensationId + +Query Employee Compensation: + +``` +query getEmployeeCompensations($filter: Payroll_EmployeeCompensationsFilter!) { + payrollEmployeeCompensations(filter: $filter ){ + edges { + node { + id + active + employerCompensation { + id + name + type { + key + description + value + } + } + } + } + } + } + +``` + +Input Variable: + +``` +{ + "filter": { + "employeeId": "1", + "active": true + } + } + + +``` + +Response: +``` +{ + "data": { + "payrollEmployeeCompensations": { + "edges": [ + { + "node": { + "id": "624712157", + "active": true, + "employerCompensation": { + "id": "61897726", + "name": "OvrPay", + "type": { + "key": "OVERTIME", + "description": "OVERTIME", + "value": "OVERTIME" + } + } + } + }, + { + "node": { + "id": "624712160", + "active": false, + "employerCompensation": { + "id": "61897727", + "name": "DblOvrPay", + "type": { + "key": "DOUBLE_OVERTIME", + "description": "DOUBLE_OVERTIME", + "value": "DOUBLE_OVERTIME" + } + } + } + }, + { + "node": { + "id": "624712156", + "active": true, + "employerCompensation": { + "id": "61897728", + "name": "SickPay", + "type": { + "key": "SICK_PAY", + "description": "SICK_PAY", + "value": "SICK_PAY" + } + } + } + }, + { + "node": { + "id": "624712164", + "active": true, + "employerCompensation": { + "id": "61897729", + "name": "VacPay", + "type": { + "key": "VACATION_PAY", + "description": "VACATION_PAY", + "value": "VACATION_PAY" + } + } + } + }, + { + "node": { + "id": "624712158", + "active": true, + "employerCompensation": { + "id": "61897730", + "name": "PaidTO", + "type": { + "key": "PAID_TIME_OFF", + "description": "PAID_TIME_OFF", + "value": "PAID_TIME_OFF" + } + } + } + }, + { + "node": { + "id": "624712159", + "active": true, + "employerCompensation": { + "id": "61897731", + "name": "UnpaidTO", + "type": { + "key": "UNPAID_TIME_OFF", + "description": "UNPAID_TIME_OFF", + "value": "UNPAID_TIME_OFF" + } + } + } + }, + { + "node": { + "id": "624712162", + "active": true, + "employerCompensation": { + "id": "61897732", + "name": "HolidayPay", + "type": { + "key": "HOLIDAY_PAY", + "description": "HOLIDAY_PAY", + "value": "HOLIDAY_PAY" + } + } + } + }, + { + "node": { + "id": "624712163", + "active": true, + "employerCompensation": { + "id": "61897733", + "name": "Bonus", + "type": { + "key": "BONUS", + "description": "BONUS", + "value": "BONUS" + } + } + } + }, + { + "node": { + "id": "624712161", + "active": true, + "employerCompensation": { + "id": "61897734", + "name": "Commission", + "type": { + "key": "COMMISSION", + "description": "COMMISSION", + "value": "COMMISSION" + } + } + } + }, + { + "node": { + "id": "624712172", + "active": true, + "employerCompensation": { + "id": "61897735", + "name": "Salary", + "type": { + "key": "SALARY", + "description": "SALARY", + "value": "SALARY" + } + } + } + } + ] + } + } +} + +``` + + + diff --git a/docs/schema-entities/project.md b/docs/schema-entities/project.md new file mode 100644 index 0000000..a9e726d --- /dev/null +++ b/docs/schema-entities/project.md @@ -0,0 +1,1418 @@ +--- +layout: default +title: Project +nav_order: 1 +parent: Schema Entities +--- + +## Project + +The APIs related to the Project entity allow you to manage and track projects. The Project API provides support for create, read, update, delete operations. You can also add transactions to your project by configuring the ID for the project while creating the transaction. + +### Operations supported for Project + +- [Read](https://intuitdeveloper.github.io/intuit-api/docs/schema-entities/project/#read-project) - Query (POST) +- [Create](https://intuitdeveloper.github.io/intuit-api/docs/schema-entities/project/#create-project) - Mutation (POST) +- [Update](https://intuitdeveloper.github.io/intuit-api/docs/schema-entities/project/#update-project) - Mutation (POST) +- [Delete](https://intuitdeveloper.github.io/intuit-api/docs/schema-entities/project/#delete-project) - Mutation (POST) + +We have also added support to the below transactions so that you can configure a project ID. This will allow you to read back information about the project to which this transaction belongs to (if any). These include a few transactions like - +To do this you can make use of the "ProjectRef" field in the V3 entity which is available starting with minorVersion=69) + +- Project Cost Estimate (enhanced version of V3 estimate) + - New fields available - `Line.CostAmount`, `Line.HomeCostAmount`, `Line.SalesItemLine.SalesItemLineDetail.UnitCostPrice` +- Invoice +- Receive Payment +- Bill +- TimeEntry +- Expenses +- Purchase Order +- Credit Memo +- Refund Receipt +- Sales Receipt +- Vendor Credit +- Journal Entry + +### ProjectRef +Developer docs for reference: https://developer.intuit.com/app/developer/qbo/docs/api/accounting/most-commonly-used/invoice + +![](/intuit-api/assets/images/ProjectRef.png) + +### CRUD Endpoint + +- For production apps: https://qb.api.intuit.com/graphql + +### Project Fields + +| Field Name | Type | Required | Description | +|-------------------|--------------------------------------------|---------------|-----------------------------------------------------------------------------------------------------------------------------------------| +| name | String! | Yes | The name of the project. | +| description | String | No | The description of the project. | +| type | String | No (Optional) | The type of the project that user can define to differentiate between different types of projects and filter on them. | +| status | ProjectManagement_Status | No | The status of the project indicating the current state of the project. Default status is "OTHER" | +| priority | Int | No (Optional) | The priority of the project in the range of 0-9 where 0 is the lowest and 9 is the highest priority and filter on them. | +| customer | ProjectManagement_CustomerInput | Yes | The customer for whom the project is created. | +| account | ProjectManagement_CompanyInput | Yes | The company for whom the project is created. | +| dueDate | DateTime | No | The due date of the project. | +| startDate | DateTime | No | The start date of the project. | +| completedDate | DateTime | No | The completed date of the project. | +| completedBy | ProjectManagement_UserInput | No | The user completed the project. | +| completionRate | Decimal | No | The rate of completion of project. | +| pinned | Boolean | No | Pinned is used to tell if a project should be shown at the top of the projects list above those that are not pinned. | +| emailAddress | [Qb_EmailAddressInput] | No | The email address of the project. | +| addresses | [Qb_PostalAddressInput] | No | The addresses of the project. | + +### ProjectManagement_Status +``` +""" The list of allowed status values of the project indicating the current state of the project """ +""" If the status is not set default to "OTHER" """ +enum ProjectManagement_Status { + OPEN + IN_PROGRESS + BLOCKED + CANCELED + COMPLETE +} +``` + +### Input Variables: + +### ProjectManagement_CustomerInput + +``` +input ProjectManagement_CustomerInput { + """ + The customer Id for whom the project is created. + id: ID! +} +``` + +### ProjectManagement_CompanyInput +``` +input ProjectManagement_CompanyInput { + """ + The companyId(realmId) for whom the project is created. + id: ID! +} +``` +### ProjectManagement_UserInput + +``` +input ProjectManagement_UserInput { + """ + The user completed the project. + id: ID! +} +``` + +### Qb_EmailAddressInput + +```` +input Qb_EmailAddressInput { + """ + full email address + """ + email: String! #@pattern(regex: ".+@.+\\..+") + """ + the name before @ + """ + name: String + """ + domain address, part after @ + """ + domain: String + """ + How this email address is used + """ + variation: Common_ContactVariationInput + """ + email verification + """ + verification: Common_VerificationInput +} + +```` + + +### Qb_PostalAddressInput + +``` + +input Qb_PostalAddressInput { + """ + Contains primary address information - number, street + """ + streetAddressLine1: String! + """ + Contains secondary address information - apartment, care of, attention, ... + """ + streetAddressLine2: String + """ + Contains spill over space for line 2. + """ + streetAddressLine3: String + """ + Postal codes or zip code used for mail sorting. + """ + postalCode: String + """ + Any human settlement including cities, towns, villages, hamlets, localities, etc. + """ + city: String + """ + State, province, region abbreviation. Reference https://pe.usps.com/text/pub28/28apb.htm + """ + state: String + """ + Sovereign nations and their dependent territories, anything with + an ISO-3166 3 letter code. Reference https://www.iso.org/iso-3166-country-codes.html + """ + country: Common_CountryCode + """ + Latitude/longitude associated to this address + """ + geoLocation: Common_GeoLocationInput + """ + Address verification information. This field is read only. + """ + verification: Common_VerificationInput + """ + Capture the intention of this postal address + """ + variation: Common_ContactVariationInput +} + +``` + +### Qb_PostalAddressInput + +``` +input Qb_PostalAddressInput { + """ + Contains primary address information - number, street + """ + streetAddressLine1: String! + """ + Contains secondary address information - apartment, care of, attention, ... + """ + streetAddressLine2: String + """ + Contains spill over space for line 2. + """ + streetAddressLine3: String + """ + Postal codes or zip code used for mail sorting. + """ + postalCode: String + """ + Any human settlement including cities, towns, villages, hamlets, localities, etc. + """ + city: String + """ + State, province, region abbreviation. Reference https://pe.usps.com/text/pub28/28apb.htm + """ + state: String + """ + Sovereign nations and their dependent territories, anything with + an ISO-3166 3 letter code. Reference https://www.iso.org/iso-3166-country-codes.html + """ + country: Common_CountryCode + """ + Latitude/longitude associated to this address + """ + geoLocation: Common_GeoLocationInput + """ + Address verification information. This field is read only. + """ + verification: Common_VerificationInput + """ + Capture the intention of this postal address + """ + variation: Common_ContactVariationInput +} + +``` + +### Common_ContactVariationInput + +``` +input Common_ContactVariationInput { + """ + usage of this contact info - HOME, PUBLIC, BUSINESSALTERNATE + """ + usage: Common_ContactUsage! + + """ + purpose of this contact info - BILLING, SHIPPING + """ + purpose: Common_ContactPurpose! + + """ + Primary, Secondary... + """ + Common_Ordinal: Common_Ordinal! +} +``` +### Common_ContactUsage +``` + +""" +Contact usage +""" +enum Common_ContactUsage @tag(name: "common") @tag(name: "qb-external") @tag(name: "qb") { + UNKNOWN + OTHER + HOME + # Commenting while t is being resolved + # BUSINESSALTERNATE + BUSINESS + ALTERNATE + PUBLIC +} +``` + +### Common_ContactPurpose +``` +""" +Purpose for contact info: home, business, ... +""" +enum Common_ContactPurpose @tag(name: "common") @tag(name: "qb-external") @tag(name: "qb") { + UNKNOWN + OTHER + GENERAL + LEGAL + SUPPORT + ORDER + BILLING + SHIPPING +} +``` + +### Common_Ordinal +``` +""" +Classification/Importance of the contact type +""" +enum Common_Ordinal @tag(name: "common") @tag(name: "qb-external") @tag(name: "qb") { + UNKNOWN + OTHER + PRIMARY + SECONDARY + TERTIARY +} + +``` + +### Common_VerificationInput +``` +input Common_VerificationInput { + """ + Verification status: success, pending, failure ... + """ + status: Common_VerificationStatus + """ + Verification date/time + """ + time: DateTime + """ + Verification method: direct user contact, 3rd party ... + """ + method: Common_VerificationMethod + """ + Verified type: email, sms, inapp ... + """ + type: Common_VerificationType +} + +``` +### Common_VerificationStatus +``` +""" +Verification status: success, pending, failure ... +""" +enum Common_VerificationStatus { + UNKNOWN + # commenting whie it is being resolved with + OTHER + SUCCESS + PENDING + FAILURE +} +``` + +### Common_VerificationMethod +``` +""" +Verification methods: direct, third party ... +""" +enum Common_VerificationMethod { + UNKNOWN + # commenting whie it is being resolved with + # OTHER, + # DIRECT, + OTHER + DIRECT + THIRD_PARTY +} +``` + +### Common_VerificationType +``` +""" +Verified type: email, sms, inapp ... +""" +enum Common_VerificationType { + UNKNOWN + UNVERIFIED + OTHER + EMAIL + INAPP + SMS +} +``` + + +### Common_CountryCode + +``` +""" +Country alpha-3 code from international standards: https://en.wikipedia.org/wiki/ISO_3166-1 +""" +enum Common_CountryCode { + UNKNOWN + ABW + AFG + AGO + AIA + ALA + ALB + AND + ARE + ARG + ARM + ASM + ATA + ATF + ATG + AUS + AUT + AZE + BDI + BEL + BEN + BES + BFA + BGD + BGR + BHR + BHS + BIH + BLM + BLR + BLZ + BMU + BOL + BRA + BRB + BRN + BTN + BVT + BWA + CAF + CAN + CCK + CHE + CHL + CHN + CIV + CMR + COD + COG + COK + COL + COM + CPV + CRI + CUB + CUW + CXR + CYM + CYP + CZE + DEU + DJI + DMA + DNK + DOM + DZA + ECU + EGY + ERI + ESH + ESP + EST + ETH + FIN + FJI + FLK + FRA + FRO + FSM + GAB + GBR + GEO + GGY + GHA + GIB + GIN + GLP + GMB + GNB + GNQ + GRC + GRD + GRL + GTM + GUF + GUM + GUY + HKG + HMD + HND + HRV + HTI + HUN + IDN + IMN + IND + IOT + IRL + IRN + IRQ + ISL + ISR + ITA + JAM + JEY + JOR + JPN + KAZ + KEN + KGZ + KHM + KIR + KNA + KOR + KWT + LAO + LBN + LBR + LBY + LCA + LIE + LKA + LSO + LTU + LUX + LVA + MAC + MAF + MAR + MCO + MDA + MDG + MDV + MEX + MHL + MKD + MLI + MLT + MMR + MNE + MNG + MNP + MOZ + MRT + MSR + MTQ + MUS + MWI + MYS + MYT + NAM + NCL + NER + NFK + NGA + NIC + NIU + NLD + NOR + NPL + NRU + NZL + OMN + PAK + PAN + PCN + PER + PHL + PLW + PNG + POL + PRI + PRK + PRT + PRY + PSE + PYF + QAT + REU + ROU + RUS + RWA + SAU + SDN + SEN + SGP + SGS + SHN + SJM + SLB + SLE + SLV + SMR + SOM + SPM + SRB + SSD + STP + SUR + SVK + SVN + SWE + SWZ + SXM + SYC + SYR + TCA + TCD + TGO + THA + TJK + TKL + TKM + TLS + TON + TTO + TUN + TUR + TUV + TWN + TZA + UGA + UKR + UMI + URY + USA + UZB + VAT + VCT + VEN + VGB + VIR + VNM + VUT + WLF + WSM + XKX + YEM + ZAF + ZMB + ZWE +} + +``` + +### Common_GeoLocationInput + +``` +input Common_GeoLocationInput { + """ + Angular distance north (positive) or south (negative) from the equator + expressed as whole number and decimal part (e.g. '37.428328') + """ + latitude: String! #@length(max: 100) + """ + Angular distance east or west of the prime meridian, expressed as + whole number and decimal part (e.g. '-122.095892') + """ + longitude: String! #@length(max: 100) +} +``` + +### Read Project + +Query: +``` + query projectManagementProjects( + $first: PositiveInt!, + $after: String, + $filter: ProjectManagement_ProjectFilter!, + $orderBy: [ProjectManagement_OrderBy!] + ) { + projectManagementProjects( + first: $first, + after: $after + filter: $filter, + orderBy: $orderBy + ) { + edges { + node { + id, + name, + description, + type, + status, + dueDate, + startDate, + completedDate, + dueDate, + assignee{ + id + }, + priority, + customer{ + id + }, + account{ + id + } + addresses { + streetAddressLine1, + streetAddressLine2, + streetAddressLine3 + state, + postalCode + } + } + } + pageInfo { + hasNextPage + hasPreviousPage + startCursor + endCursor + } + } + } + +``` +Variables: + +``` + { + "first": 2, + "after": null, + "filter": { + "startDate": { + "between": { + "minDate": "2024-03-30T18:47:25.123456789-07:00", + "maxDate": "2024-05-30T18:47:25.123456789-07:00" + } + } + }, + "orderBy": ["DUE_DATE_DESC"] + } +``` + +Response: +``` +{ + "data": { + "projectManagementProjects": { + "edges": [ + { + "node": { + "id": "53115889", + "name": "Test project 3 updated", + "description": null, + "type": null, + "status": "IN_PROGRESS", + "dueDate": "2024-08-22T00:00:00.000Z", + "startDate": "2024-05-01T00:00:00.000Z", + "completedDate": null, + "assignee": null, + "priority": null, + "customer": { + "id": "3" + }, + "account": { + "id": "9341452164365778" + }, + "addresses": [] + } + }, + { + "node": { + "id": "53150787", + "name": "TestJamProject1", + "description": null, + "type": null, + "status": "OPEN", + "dueDate": "2024-08-15T00:00:00.000Z", + "startDate": null, + "completedDate": null, + "assignee": null, + "priority": null, + "customer": { + "id": "8" + }, + "account": { + "id": "9341452164365778" + }, + "addresses": [] + } + }, + { + "node": { + "id": "53150815", + "name": "TestJamProject2", + "description": null, + "type": null, + "status": "OPEN", + "dueDate": "2024-08-15T00:00:00.000Z", + "startDate": null, + "completedDate": null, + "assignee": null, + "priority": null, + "customer": { + "id": "9" + }, + "account": { + "id": "9341452164365778" + }, + "addresses": [] + } + }, + { + "node": { + "id": "53115872", + "name": "Test project 2", + "description": null, + "type": null, + "status": "IN_PROGRESS", + "dueDate": "2024-07-31T00:00:00.000Z", + "startDate": "2024-05-14T00:00:00.000Z", + "completedDate": null, + "assignee": null, + "priority": null, + "customer": { + "id": "3" + }, + "account": { + "id": "9341452164365778" + }, + "addresses": [] + } + }, + { + "node": { + "id": "53115846", + "name": "Test project", + "description": null, + "type": null, + "status": "IN_PROGRESS", + "dueDate": "2024-06-30T00:00:00.000Z", + "startDate": "2024-04-01T00:00:00.000Z", + "completedDate": null, + "assignee": null, + "priority": null, + "customer": { + "id": "1" + }, + "account": { + "id": "9341452164365778" + }, + "addresses": [] + } + } + ], + "pageInfo": { + "hasNextPage": false, + "hasPreviousPage": false, + "startCursor": "c2ltcGxlLWN1cnNvcjA=", + "endCursor": "c2ltcGxlLWN1cnNvcjQ=" + } + } + } +} + +``` + +## Filter support: + +### ProjectManagement_ProjectFilter + +``` +""" Filtering for projects """ +input ProjectManagement_ProjectFilter { + """ Filter the projects with given if of project """ + id: ProjectManagement_IdExpression + """ Filter the projects with given status.Allowed values of status (OPEN,IN_PROGRESS,BLOCKED,CANCELED,COMPLETE,OTHER). + Only one status can be applied at a time and returns projects of all status if not passed""" + status: ProjectManagement_StatusExpression + """ Filter the projects with the given customerId """ + customer: ProjectManagement_CustomerExpression + """ Filter the projects with the given type """ + type: ProjectManagement_StringExpression + """ Filter the projects with the given priority """ + priority: ProjectManagement_IntExpression + """ Filter the projects with the given whose dueDate is prior to the given date """ + dueDate: ProjectManagement_DateExpression + """ Filter the projects with the given whose startDate is after to the given date """ + startDate: ProjectManagement_DateExpression + """ Filter the projects that are recurring projects. Default is false and will not return recurring projects """ + includeRecurringProjects: Boolean + """ Filter the projects that deleted is passed false(default behaviour). If passed true will include all projects """ + deleted: Boolean +} +``` + +### ProjectManagement_CustomerExpression +``` +input ProjectManagement_CustomerExpression { + equals: ProjectManagement_CustomerInput + in: [ProjectManagement_CustomerInput!] +} +``` + +### ProjectManagement_StatusExpression +``` +input ProjectManagement_StatusExpression { + equals: ProjectManagement_Status + in: [ProjectManagement_Status!] + nin: [ProjectManagement_Status!] +} +``` + +### ProjectManagement_StringExpression +``` +input ProjectManagement_StringExpression { + equals: String + in: [String!] +} +``` + +### ProjectManagement_IdExpression +``` +input ProjectManagement_IdExpression { + equals: ID + in: [ID!] +} +``` + +### ProjectManagement_IntExpression +``` +input ProjectManagement_IntExpression { + equals: Int + in: [Int!] +} +``` +### ProjectManagement_DateExpression +``` +input ProjectManagement_DateExpression { + between: ProjectManagement_DateRange! +} +``` +### ProjectManagement_DateRange +``` +input ProjectManagement_DateRange { + minDate: DateTime! + maxDate: DateTime! +} +``` + +### Sample filter + +``` + "dueDate": { + "between": { + "minDate": "2024-04-01T18:47:25.123456789-07:00", + "maxDate": "2024-12-05T18:47:25.123456789-07:00" + } + } +``` + +### Create Project +Mutation: +``` +mutation ProjectManagementCreateProject($name: String!, + $description: String, + $startDate: DateTime, + $dueDate: DateTime!, + $status: ProjectManagement_Status, + $customer: ProjectManagement_CustomerInput, + $account: ProjectManagement_CompanyInput!, + $priority: Int, + $pinned: Boolean, + $completionRate: Decimal, + $emailAddress: [Qb_EmailAddressInput], + $addresses: [Qb_PostalAddressInput] +) { + projectManagementCreateProject(input:{ + name: $name, + description: $description, + startDate : $startDate, + dueDate : $dueDate, + status: $status + customer: $customer, + account: $account, + priority: $priority, + pinned: $pinned, + completionRate: $completionRate, + emailAddress: $emailAddress, + addresses: $addresses, + } + ) + { + ... on ProjectManagement_Project { + id, + name, + description, + startDate, + dueDate, + status, + priority, + customer{ + id + }, + account{ + id + }, + priority, + pinned, + completionRate, + emailAddress { + email, + name + } + addresses { + streetAddressLine1, + streetAddressLine2, + streetAddressLine3 + state, + postalCode + } + } + } + } +} +``` + +Sample Variables: + +``` +{ + "name": "Demo Project", + "description": "Test Demo Project", + "startDate:": "2024-07-05T00:00:00.000Z", + "dueDate": "2024-07-31T00:00:00.000Z", + "status": "OPEN", + "customer": { + "id":1 + }, + "account": { + "id": "9341451497924167" + }, + "priority": 1, + "pinned": false, + "completionRate": 99.00, + "emailAddress": [ + { + "email":"testproject@gmail.com", + "name": "Demo Client", + "variation": { + "purpose": "BILLING", + "usage": "HOME", + "Common_Ordinal": "PRIMARY" + } + } + ], + "addresses": [ + { + "streetAddressLine1": "3000 17th street", + "postalCode": "94114", + "city": "San Francisco", + "state": "California", + "country": "USA", + "variation": { + "purpose": "BILLING", + "usage": "HOME", + "Common_Ordinal": "PRIMARY" + } + } + ] + } + +``` +Required Fields: + +- `name` - The name of the project +- `customer` - The customer for whom the project is created +- `account` - The company for whom the project is created + +Sample response: + +``` +{ + "data": { + "projectManagementCreateProject": { + "id": "409291028", + "name": "Demo Project", + "description": "TestDemoProject", + "startDate:": "2024-07-23T00:00:00.000Z", + "dueDate": "2024-07-31T00:00:00.000Z", + "status": "OPEN", + "priority": 1, + "customer": { + "id": "1" + }, + "account": { + "id": "9341452075221168" + }, + "pinned": false, + "completionRate": 99.0, + "emailAddress": [ + { + "email": "testproject@gmail.com", + "name": null + } + ], + "addresses": [ + { + "streetAddressLine1": "3000 17th street", + "streetAddressLine2": null, + "streetAddressLine3": null, + "state": "California", + "postalCode": "94114" + } + ] + } + } +} + +``` + +### Update Project + +Mutation: +### projectManagementUpdateProject +``` +mutation projectManagementUpdateProject($id: ID!, + $name: String, + $description: String, + $status: ProjectManagement_Status, + $startDate: DateTime, + $dueDate: DateTime, + $customer: ProjectManagement_CustomerInput, + $account: ProjectManagement_CompanyInput, + $priority: Int, + $completionRate: Decimal, + $pinned: Boolean, +) +{ + projectManagementUpdateProject(input:{ + id: $id, + name: $name, + description : $description, + status: $status, + startDate:$startDate, + dueDate: $dueDate, + customer:$customer + account: $account, + priority: $priority, + completionRate: $completionRate, + pinned: $pinned + }) + { + ... on ProjectManagement_Project { + id, + name, + description, + status, + startDate, + dueDate, + customer{ + id + }, + account{ + id + }, + priority, + completionRate, + pinned + } + } +} +``` + +Variables: +You can pass the required fields that needs to be updated. Sample below has almost all fields. + +``` +{ +"id": 409291370, + "name": "Demo Project New Update", + "description": "Test DemoProject New Update", + "startDate:": "2024-07-17T00:00:00.000Z", + "dueDate": "2024-07-31T00:00:00.000Z", + "status": "OPEN", + "account": { + "id": "9341452075221168" + }, + "customer": { + "id":1 + }, + + "priority": 1, + "completionRate": 99.00, + "pinned": false + } +``` + +Response: +``` +{ + "data": { + "projectManagementUpdateProject": { + "id": "409291370", + "name": "Demo Project New Update", + "description": "Test DemoProject New Update", + "status": "OPEN", + "startDate": null, + "dueDate": "2024-07-31T00:00:00.000Z", + "customer": { + "id": "1" + }, + "account": { + "id": "9341452075221168" + }, + "priority": 1, + "completionRate": 99.0, + "pinned": false + } + } +} + +``` + +You can also use separate updateMutation that exists to update individual fields as below or use the generalized update mutation as above to update more than one field as needed. + +### projectManagementUpdateName +``` + mutation projectManagementUpdateName($id: ID!, + $name: String!) + { + projectManagementUpdateName(input:{ + id: $id, + name: $name, + }) + { + ... on ProjectManagement_Project { + name, + id, + description + } + } + } +``` + +### projectManagementUpdateStatus +``` +mutation projectManagementUpdateStatus($id: ID!, + $status: ProjectManagement_Status!) +{ + projectManagementUpdateStatus(input:{ + id: $id, + status: $status, + }) + { + ... on ProjectManagement_Project { + name, + id, + status + } + } +} +``` + +### projectManagementUpdateDescription +``` +mutation projectManagementUpdateDescription($id: ID!, + $description: String!) +{ + projectManagementUpdateDescription(input:{ + id: $id, + description: $description, + }) + { + ... on ProjectManagement_Project { + name, + id, + description + } + } +} +``` + +### projectManagementUpdateDueDate + +``` +mutation projectManagementUpdateDueDate($id: ID!, + $dueDate: DateTime!) +{ + projectManagementUpdateDueDate(input:{ + id: $id, + dueDate: $dueDate, + }) + { + ... on ProjectManagement_Project { + id, + dueDate + } + } +} +``` + +### projectManagementUpdateStartDate +``` +mutation projectManagementUpdateStartDate($id: ID!, + $startDate: DateTime!) +{ + projectManagementUpdateStartDate(input:{ + id: $id, + startDate: $startDate, + }) + { + ... on ProjectManagement_Project { + id, + startDate + } + } +} +``` + +### projectManagementUpdateCustomer +``` +mutation projectManagementUpdateCustomer($id: ID!, + $customer: ProjectManagement_CustomerInput!) +{ + projectManagementUpdateCustomer(input:{ + id: $id, + customer: $customer, + }) + { + ... on ProjectManagement_Project { + id + } + } +} +``` + +### projectManagementUpdateCompletionRate + +``` +mutation projectManagementUpdateCompletionRate($id: ID!, + $completionRate: Decimal!) +{ + projectManagementUpdateCompletionRate(input:{ + id: $id, + completionRate: $completionRate, + }) + { + ... on ProjectManagement_Project { + id, + completionRate + } + } +} +``` + +### projectManagementUpdateEmailAddress + +``` +mutation projectManagementUpdateEmailAddress($id: ID!, + $emailAddress: [Qb_EmailAddressInput]! + ) +{ + projectManagementUpdateEmailAddress(input:{ + id: $id, + emailAddress: $emailAddress, + }) + { + ... on ProjectManagement_Project { + id, + completionRate + } + } +} +``` + +### projectManagementUpdateAddresses +``` +mutation projectManagementUpdateAddresses($id: ID!, + $addresses: [Qb_PostalAddressInput]! + ) +{ + projectManagementUpdateAddresses(input:{ + id: $id, + addresses: $addresses, + }) + { + ... on ProjectManagement_Project { + id + } + } +} +``` + + +### Delete Project +Mutation: + +``` +mutation projectManagementDeleteProject($id: ID!) +{ + projectManagementDeleteProject(input:{ + id: $id, + }) + { + ... on ProjectManagement_Project { + id, + deleted + } + } + +``` + +Variables: +``` +{ + "id": 53115889 +} +``` + +Response: +``` +{ + "data": { + "projectManagementDeleteProject": { + "id": "53115872", + "deleted": true + } + } +} + +``` + + \ No newline at end of file diff --git a/docs/schema-entities/schema-entities.md b/docs/schema-entities/schema-entities.md new file mode 100644 index 0000000..ab6d30d --- /dev/null +++ b/docs/schema-entities/schema-entities.md @@ -0,0 +1,51 @@ +--- +layout: default +title: Schema Entities +nav_order: 19 +has_children: true +permalink: /docs/schema-entities/ +--- + +# See basic API documentation to help you follow the below steps to release and APP + +If you already know what you want to develop, [create custom queries](../graphql-concepts/query/) to build a bespoke experience. + +If you need inspiration, we've got you covered. Or if you don't see what you are looking for, check over in our more detailed [use-cases section.](../use-cases) You can use these guides as a foundation for your app. + +## Step 1: Create your app in the Intuit Developer Portal + +If you haven’t already, [create your app](../getting-started/authentication/) on the developer portal. + +## Step 2: Set your app's scopes + +The Intuit API [uses scopes](../getting-started/scopes/) to limit the type of data your app can access. You'll set scopes when you create your app. + +### If you want your app to read or write data + +To read QuickBooks Online Payroll data, and write in how much individual employees request for deductions, use the scopes associated with each use-case: + + +## Step 3: Get your app's credentials + +1. [Sign in](https://developer.intuit.com/) to your developer account. +2. Select the **Dashboard** link on the toolbar. +3. Select and open your app. +4. In the **Production** section, select **Keys & OAuth**. +5. Copy the **Client ID** and **Client Secret**. + +## Step 4: Authorize your app + +If you haven't already, use your Client ID, Client Secret, and scopes to [set up OAuth 2.0](https://developer.intuit.com/app/developer/qbo/docs/develop/authentication-and-authorization/oauth-2.0). + + +## Step 5: Create and execute queries for your app + +Use the sample queries provided in the respective sections as guides. Introspection can also be very helpful to build queries, with the help of tools such as Insomnia. More information can be found on [this](../graphql-concepts/introspection/) page. + +### Endpoints + +The endpoint for all queries are listed here : [API endpoints](../getting-started/endpoints/) + +## Step 6: Go live with your app + +Follow these steps when you're ready to [publish your app](https://developer.intuit.com/app/developer/qbo/docs/go-live). \ No newline at end of file diff --git a/docs/use-cases/customfield.md b/docs/use-cases/customfield.md new file mode 100644 index 0000000..dbd2190 --- /dev/null +++ b/docs/use-cases/customfield.md @@ -0,0 +1,289 @@ +--- +layout: default +title: Custom Fields +nav_order: 18 +parent: Use Cases +--- + +## Custom Fields + +The APIs related to the Custom Fields allow you to manage and sync custom fields into QuickBooks Online. +The Custom Fields API provides support for create, read, update, and disable operations. +When creating a Custom Field, you can create associations with entities. +You can also add custom fields to transactions and other entities by configuring the custom field definition ID while creating the transaction. + +This page outlines - +- The Create/Read operations for Custom Fields. +- The Create operation for Invoice (sales transaction) with Custom Fields. +- The Create operation for Customer with Custom Fields. + +Currently, custom fields are supported for the following transactions and entities. + +- Supported Transactions - + - Estimate + - Invoice + - Sales Receipt + - Refund Receipt + - Credit Memo + - Bill + - Expense + - Purchase Order + - Vendor Credit + +- Supported entities - + - Customer + - Vendor + +### Integration Diagram + +![](/intuit-api/assets/images/CustomField.png) + + +### Operations for Custom Fields entity + +- [Read](https://intuitdeveloper.github.io/intuit-api/docs/schema-entities/customfield/#read-custom-fields) - Query (POST) +- [Create](https://intuitdeveloper.github.io/intuit-api/docs/schema-entities/customfield/#create-custom-field) - Mutation (POST) +- [Update](https://intuitdeveloper.github.io/intuit-api/docs/schema-entities/customfield/#update-custom-field) - Mutation (POST) +- [Disable](https://intuitdeveloper.github.io/intuit-api/docs/schema-entities/customfield/#disable-custom-field) -Mutation (POST) + +### Scopes + +- app-foundations.custom-field-definitions.read: Allows access to read Custom field definitions data +- app-foundations.custom-field-definitions: Allows access to read and write Custom field definitions 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/{realmId}/{entityname}?minorversion=70&include=enhancedAllCustomFields + +### 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 + + + + +#### Use Case 1: Read Custom Fields Definitions +Use [Read Custom Field](https://intuitdeveloper.github.io/intuit-api/docs/schema-entities/customfield/#read-custom-fields) GraphQL API to read Custom Fields Definitions. The output would list the custom fields that’s being set up in the company along with data types and the entities it’s for. + +#### Use Case 2: Create Custom Field Definitions +Use GraphQL API to [Create Custom Field Definitions](https://intuitdeveloper.github.io/intuit-api/docs/schema-entities/customfield/#create-custom-field). + +#### Use Case 3: Create transactions with custom fields + +- Transactions that support custom fields: `Estimate,Invoice,Sales Receipt, Credit Memo, Refund Receipt, Purchase Order, Expense, Bill, VendorCredit` +- Use Accounting V3 Rest API to create transaction and send CustomField.DefinitionId with legacyIDV2 values obtained from Step 1 above + +##### Step 1: Use [Create custom field definitions](https://intuitdeveloper.github.io/intuit-api/docs/schema-entities/customfield/#create-custom-field) GraphQL API + +##### Step 2: [V3 Accounting Rest API Endpoint](https://intuitdeveloper.github.io/intuit-api/docs/use-cases/customfield/#endpoints) to create invoice with custom fields + +API Request: + +``` +{ + "Line": [ + { + "Amount": 200.00, + "DetailType": "SalesItemLineDetail", + "SalesItemLineDetail": { + "ItemRef": { + "value": "1", + "name": "Services" + } + } + } + ], + "CustomField": [ + { + "DefinitionId": "1", + "StringValue": "my custom value", + } + ], + "CustomerRef": { + "value": "1" + } +} + +``` + +API Response: + +``` +{ + "Invoice": { + "AllowIPNPayment": false, + "AllowOnlinePayment": false, + "AllowOnlineCreditCardPayment": false, + "AllowOnlineACHPayment": false, + "domain": "QBO", + "sparse": false, + "Id": "801", + "SyncToken": "0", + "MetaData": { + "CreateTime": "2024-05-29T23:22:07-07:00", + "LastModifiedByRef": { + "value": "9130347769252966" + }, + "LastUpdatedTime": "2024-05-29T23:22:07-07:00" + }, + "CustomField": [ + { + "DefinitionId": "1", + "Name": "sales1", + "Type": "StringType", + "StringValue": "my custom value" + } + ], + "TxnDate": "2024-05-29", + "CurrencyRef": { + "value": "USD", + "name": "United States Dollar" + }, + "ExchangeRate": 1, + "LinkedTxn": [], + "Line": [ + { + "Id": "1", + "LineNum": 1, + "Amount": 200.00, + "DetailType": "SalesItemLineDetail", + "SalesItemLineDetail": { + "ItemRef": { + "value": "1", + "name": "Sales" + }, + "ItemAccountRef": { + "value": "1", + "name": "Sales" + }, + "TaxCodeRef": { + "value": "NON" + }, + "TaxClassificationRef": { + "value": "EUC-99990201-V1-00020000" + } + } + }, + { + "Amount": 200.00, + "DetailType": "SubTotalLineDetail", + "SubTotalLineDetail": {} + } + ], + "TxnTaxDetail": { + "TxnTaxCodeRef": { + "value": "8" + }, + "TotalTax": 0, + "TaxLine": [ + { + "Amount": 0, + "DetailType": "TaxLineDetail", + "TaxLineDetail": { + "TaxRateRef": { + "value": "4" + }, + "PercentBased": true, + "TaxPercent": 1, + "NetAmountTaxable": 0 + } + } + ] + }, + "CustomerRef": { + "value": "1", + "name": "John" + }, + "ShipFromAddr": { + "Id": "1274", + "Line1": "2500 Garcia Avenue", + "Line2": "Mountain View, CA 94043 US" + }, + "DueDate": "2024-06-28", + "TotalAmt": 200.00, + "HomeTotalAmt": 200.00, + "ApplyTaxAfterDiscount": false, + "PrintStatus": "NeedToPrint", + "EmailStatus": "NotSet", + "Balance": 200.00, + "HomeBalance": 200.00, + "TaxExemptionRef": {} + }, + "time": "2024-05-29T23:22:06.843-07:00" +} + +``` + +#### Use Case 4: Create entity with custom fields + +- Entities that support custom fields: Customer, Vendor +- Use Accounting V3 Rest API to create a customer or vendor entity and send CustomFieldDefinitionId with values from Step 1 below + +##### Step 1: Use [Create custom field definitions](https://intuitdeveloper.github.io/intuit-api/docs/schema-entities/customfield/#create-custom-field) GraphQL API + + +##### Step 2: [V3 Accounting Rest API Endpoint](https://intuitdeveloper.github.io/intuit-api/docs/use-cases/customfield/#endpoints) to create customer with custom fields + +Sample Customer with Custom Field definition: +``` +{ + "DisplayName": "Customer-01", + "CustomField": [ + { + "DefinitionId": "540344", + "StringValue": "CF-CustomerType" + } + ] +} + +``` + +Response: + +``` +{ + "Customer": { + "Taxable": false, + "Job": false, + "BillWithParent": false, + "Balance": 0, + "BalanceWithJobs": 0, + "CurrencyRef": { + "value": "USD", + "name": "United States Dollar" + }, + "PreferredDeliveryMethod": "None", + "IsProject": false, + "domain": "QBO", + "sparse": false, + "Id": "4", + "SyncToken": "0", + "MetaData": { + "CreateTime": "2024-06-29T19:12:52-07:00", + "LastUpdatedTime": "2024-06-29T19:12:52-07:00" + }, + "CustomField": [ + { + "DefinitionId": "540344", + "Name": "cf-05", + "Type": "StringType", + "StringValue": "CF-CustomerType" + } + ], + "FullyQualifiedName": "Customer-01", + "DisplayName": "Customer-01", + "PrintOnCheckName": "Customer-01", + "Active": true + }, + "time": "2024-06-29T19:12:51.593-07:00" +} + +``` diff --git a/docs/use-cases/project.md b/docs/use-cases/project.md new file mode 100644 index 0000000..e41a510 --- /dev/null +++ b/docs/use-cases/project.md @@ -0,0 +1,493 @@ +--- +layout: default +title: Project +nav_order: 16 +parent: Use Cases +--- + +## 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 + - Invoice + - Invoice payment + - Sales Receipt + - Refund Receipt + - Credit Memo + - Vendor Credit + - Journal Entry + +- Supported purchase transactions for your vendors - + - Bill + - Expense + - Purchase order + + +### Integration Diagram + +![](/intuit-api/assets/images/Projects.png) + + +### Operations for Project entity + +- [Read](https://intuitdeveloper.github.io/intuit-api/docs/schema-entities/project/#read-project) - Query (POST) +- [Create](https://intuitdeveloper.github.io/intuit-api/docs/schema-entities/project/#create-project) - Mutation (POST) +- [Update](https://intuitdeveloper.github.io/intuit-api/docs/schema-entities/project/#update-project) - Mutation (POST) +- [Delete](https://intuitdeveloper.github.io/intuit-api/docs/schema-entities/project/#delete-project) - Mutation (POST) + + +### 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/{{realmid}}/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](https://developer.intuit.com/app/developer/qbo/docs/api/accounting/most-commonly-used/customer#query-a-customer) + +##### Step 2: Use GraphQL API to create a Project for the above customer. +Refer to the [Create Project (Mutation)](https://intuitdeveloper.github.io/intuit-api/docs/schema-entities/project/#create-project) + +### Use Case 2: Read Project + +##### Read project by id / for a given date range using required filters +Refer to the [Read Project (Query)](https://intuitdeveloper.github.io/intuit-api/docs/schema-entities/project/#read-project) + +### Use Case 3: Add transaction to a Project + +##### Step 1: Create or read project +Refer to the sample [Create](https://intuitdeveloper.github.io/intuit-api/docs/schema-entities/project/#create-project) / [Read](https://intuitdeveloper.github.io/intuit-api/docs/schema-entities/project/#read-project) 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](https://developer.intuit.com/app/developer/qbo/docs/api/accounting/most-commonly-used/invoice) how to reference Project to a transaction. + +![](/intuit-api/assets/images/ProjectRef.png) + + +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" +} +``` +Sample Vendor Credit creation with "ProjectRef" at line level: +``` +{ + "TotalAmt": 90.0, + "TxnDate": "2025-1-23", + "Line": [ + { + "DetailType": "AccountBasedExpenseLineDetail", + "Amount": 90.0, + "ProjectRef": { + "value": "435514740" + }, + "Id": "1", + "AccountBasedExpenseLineDetail": { + "TaxCodeRef": { + "value": "TAX" + }, + "AccountRef": { + + "value": "2" + }, + "BillableStatus": "Billable", + "CustomerRef": { + + "value": "1" + } + } + } + ], + "APAccountRef": { + "name": "Accounts Payable (A/P)", + "value": "1150040000" + }, + "VendorRef": { + + "value": "5" + } +} +``` +Response: +``` +{ + "VendorCredit": { + "VendorAddr": { + "Id": "6" + }, + "Balance": 90.00, + "domain": "QBO", + "sparse": false, + "Id": "16", + "SyncToken": "0", + "MetaData": { + "CreateTime": "2025-04-16T09:53:41-07:00", + "LastUpdatedTime": "2025-04-16T09:53:41-07:00" + }, + "TxnDate": "2025-04-16", + "CurrencyRef": { + "value": "USD", + "name": "United States Dollar" + }, + "LinkedTxn": [ + { + "TxnId": "17", + "TxnType": "ReimburseCharge" + } + ], + "Line": [ + { + "Id": "1", + "LineNum": 1, + "Amount": 90.00, + "LinkedTxn": [ + { + "TxnId": "17", + "TxnType": "ReimburseCharge" + } + ], + "DetailType": "AccountBasedExpenseLineDetail", + "AccountBasedExpenseLineDetail": { + "CustomerRef": { + "value": "1", + "name": "Test Customer" + }, + "AccountRef": { + "value": "2", + "name": "Uncategorized Expense" + }, + "BillableStatus": "Billable", + "TaxCodeRef": { + "value": "TAX" + } + } + } + ], + "VendorRef": { + "value": "5", + "name": "Test Vendor" + }, + "APAccountRef": { + "value": "1150040000", + "name": "AP" + }, + "TotalAmt": 90.00 + }, + "time": "2025-04-16T09:53:40.894-07:00" +} +``` + +Sample Journal Entry creation with ProjectRef at line Level: +``` +{ + "Line": [ + { + "JournalEntryLineDetail": { + "PostingType": "Credit", + "AccountRef": { + "name": "Uncategorized Asset", + "value": "4" + }, + "Entity": { + "Type": "Customer", + "EntityRef": { + "value": "1" + } + } + }, + "ProjectRef": { + "value": "435515005" + }, + "DetailType": "JournalEntryLineDetail", + "Amount": 100.0, + "Description": "nov portion of rider insurance" + }, + { + "JournalEntryLineDetail": { + "PostingType": "Debit", + "AccountRef": { + "name": "Uncategorized Expense", + "value": "3" + }, + "Entity": { + "Type": "Customer", + "EntityRef": { + "value": "1" + } + } + }, + "ProjectRef": { + "value": "435515005" + }, + "DetailType": "JournalEntryLineDetail", + "Amount": 200.0, + "Id": "0", + "Description": "nov portion of rider insurance" + }, + { + "JournalEntryLineDetail": { + "PostingType": "Credit", + "AccountRef": { + "name": "Uncategorized Asset", + "value": "4" + }, + "Entity": { + "Type": "Customer", + "EntityRef": { + + "value": "1" + } + } + }, + "ProjectRef": { + "value": "435515005" + }, + "DetailType": "JournalEntryLineDetail", + "Amount": 100.0, + "Description": "nov portion of rider insurance" + } + ] +} +``` + +Response: +``` +{ + "JournalEntry": { + "Adjustment": false, + "TotalAmt": 0, + "domain": "QBO", + "sparse": false, + "Id": "18", + "SyncToken": "0", + "MetaData": { + "CreateTime": "2025-04-16T10:36:10-07:00", + "LastUpdatedTime": "2025-04-16T10:36:10-07:00" + }, + "TxnDate": "2025-04-16", + "CurrencyRef": { + "value": "USD", + "name": "United States Dollar" + }, + "Line": [ + { + "Id": "0", + "Description": "nov portion of rider insurance", + "Amount": 100.00, + "DetailType": "JournalEntryLineDetail", + "JournalEntryLineDetail": { + "PostingType": "Credit", + "AccountRef": { + "value": "4", + "name": "Billable Expense Income" + } + }, + "ProjectRef": { + "value": "435515005" + } + }, + { + "Id": "1", + "Description": "nov portion of rider insurance", + "Amount": 200.00, + "DetailType": "JournalEntryLineDetail", + "JournalEntryLineDetail": { + "PostingType": "Debit", + "AccountRef": { + "value": "3", + "name": "Uncategorized Asset" + } + }, + "ProjectRef": { + "value": "435515005" + } + }, + { + "Id": "2", + "Description": "nov portion of rider insurance", + "Amount": 100.00, + "DetailType": "JournalEntryLineDetail", + "JournalEntryLineDetail": { + "PostingType": "Credit", + "AccountRef": { + "value": "4", + "name": "Billable Expense Income" + } + }, + "ProjectRef": { + "value": "435515005" + } + } + ] + }, + "time": "2025-04-16T10:36:09.960-07:00" +} +``` + diff --git a/docs/use-cases/time.md b/docs/use-cases/time.md new file mode 100644 index 0000000..7dca294 --- /dev/null +++ b/docs/use-cases/time.md @@ -0,0 +1,245 @@ +--- +layout: default +title: Time +nav_order: 16 +parent: Use Cases +--- + +## Time + +The APIs related to the Time entity allow you to track time for employees and contractors inclusive of PayItems (Paytypes). +The Time API provides support for create, read and update operations. +You can also link the Time entries to a project within QuickBooks by configuring the ID for the project while creating the time entries. + +This page outlines - +- The Create operation for tracking time for an employee with PayType +- The Create operation for tracking time for an employee with PayType and linking it to a Project +- The Create operation for tracking time for a contractor + + +### Integration Diagram + +![](/intuit-api/assets/images/Time.png) + + +### Operations for Time Activity + +- [Query](https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/timeactivity#query-a-timeactivity-object) +- [Create](https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/timeactivity#create-a-timeactivity-object) +- [Update](https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/timeactivity#full-update-a-timeactivity-object) +- [Delete](https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/timeactivity#delete-a-timeactivity-object) + +### API schema for Time Activity + +- [Time Activity Object](https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/timeactivity#the-timeactivity-object) + +### Scopes + +- payroll.compensation.read : Allows access to read Pay types (i.e. compensation) [Compensation data can only be queried for customers using QuickBooks Payroll] +- project-management.project : Allows access to read and write projects data +- com.intuit.quickbooks.accounting: For V3 Accounting REST API access [For Read only use cases] + + +### Endpoints + +- GraphQL API: https://qb.api.intuit.com/graphql +- V3 Accounting REST API: https://quickbooks.api.intuit.com/v3/company/{realmid}/{entityname}?minorversion=70 + +### 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 [Accounting V3 Preferences API](https://developer.intuit.com/app/developer/qbo/docs/api/accounting/most-commonly-used/preferences#query-preferences) and check for `Preferences->OtherPrefs->NameValue` to identify if projects are supported for the company. Check if NameValue `ProjectsEnabled` is true. + +Sample name value pair response for reference: +``` + { + "Name": "TimeTrackingFeatureEnabled", + "Value": "true" + } + { + "Name": "ProjectsEnabled", + "Value": "true" + } +``` + +### Use Case 1: Create Time Activity with pay type and link it to a Project + +This use case is applicable for the customers who are enrolled to **QuickBooks Payroll** and have the **Projects enabled** in QuickBooks Online. + +##### Use [V3 Create TimeActivity](https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/timeactivity#create-a-timeactivity-object) API to create time activity by + +- Fetching `employee->Id` by calling [V3 Accounting Employee Query](https://developer.intuit.com/app/developer/qbo/docs/api/accounting/most-commonly-used/employee#query-an-employee) & set it in `EmployeeRef` in the [TimeActivity](https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/timeactivity) object with `NameOf` field as `Employee`. +- Filter by the `employee->Id` from above step to fetch the list of employee compensation Ids `compensation ->id` from [Read EmployeeCompensation(Query)](https://intuitdeveloper.github.io/intuit-api/docs/schema-entities/employeeCompensation/#sample-query-body) GraphQL Query + & set it in `PayrollItemRef` in the [TimeActivity](https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/timeactivity) object. +- Fetch `project -> id` from [Read Project(Query)](https://intuitdeveloper.github.io/intuit-api/docs/schema-entities/project/#read-project) GraphQL Query to read `project -> id` & set it in `ProjectRef` in the [TimeActivity](https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/timeactivity) object. +- Fetch `Customer -> id` from [V3 Accounting Customer Query API](https://developer.intuit.com/app/developer/qbo/docs/api/accounting/most-commonly-used/customer#query-a-customer) (optional) & set it in `CustomerRef` in the [TimeActivity](https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/timeactivity) object. +- Fetch `Item->id` from [V3 Accounting Query Item API](https://developer.intuit.com/app/developer/qbo/docs/api/accounting/most-commonly-used/item) & set it in the [TimeActivity](https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/timeactivity) object. + +##### Sample request payload: + +``` + { + "TxnDate": "2024-08-01T12:00:00Z", + "NameOf": "Employee", + "EmployeeRef": { "value": "1" }, + "PayrollItemRef": { + "value": "626270109" + }, + "CustomerRef": { + "value": "2" + }, + "ProjectRef": { + "value":"416296152" + }, + "ItemRef": { "value": "1" }, + "Hours": 8, + "Minutes": 0, + "Description": "Construction:DailyWork" + } + +``` + +### Use Case 2: Create Time Activity with pay type +This use case is applicable for the customers who are enrolled to **QuickBooks Payroll** and **do not** have the **Projects** enabled in QuickBooks Online. + +##### Use [V3 Create TimeActivity](https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/timeactivity#create-a-timeactivity-object) API to create time activity by + +- Fetch `employee->id` from [V3 Accounting Employee Query](https://developer.intuit.com/app/developer/qbo/docs/api/accounting/most-commonly-used/employee#query-an-employee) & set it in `EmployeeRef` in the [TimeActivity](https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/timeactivity) object with `NameOf` field as `Employee`. +- Fetching `compensation ->id` from [Read EmployeeCompensation(Query)](https://intuitdeveloper.github.io/intuit-api/docs/schema-entities/employeeCompensation/#sample-query-body) GraphQL API & set it in `PayrollItemRef` in the [TimeActivity](https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/timeactivity) object. + +##### Sample request payload: + +``` + { + "TxnDate": "2024-08-01T12:00:00Z", + "NameOf": "Employee", + "EmployeeRef": { "value": "1" }, + "PayrollItemRef": { + "value": "626270109" + }, + "Hours": 8, + "Minutes": 0, + "Description": "Construction:TimeOff" + } + +``` + +### Use Case 3: Create Time Activity and link to projects +This use case is applicable for the customers who are **not** enrolled to **QuickBooks Payroll** and have the **Projects enabled** in QuickBooks Online. + +##### Use [V3 Create TimeActivity](https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/timeactivity#create-a-timeactivity-object) API to create time activity by + +- Fetch `employee->Id` by calling [V3 Accounting Employee Query](https://developer.intuit.com/app/developer/qbo/docs/api/accounting/most-commonly-used/employee#query-an-employee) & set it in `EmployeeRef` in the [TimeActivity](https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/timeactivity) object with `NameOf` field as `Employee`. +- Fetch `Item->id` from [V3 Accounting Query Item API](https://developer.intuit.com/app/developer/qbo/docs/api/accounting/most-commonly-used/item) & set it in `ItemRef` in the [TimeActivity](https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/timeactivity) object. +- Fetch `project -> Id` from [Read Project(Query)](https://intuitdeveloper.github.io/intuit-api/docs/schema-entities/project/#read-project) GraphQL API to read `project -> id` & set it in `ProjectRef` in the [TimeActivity](https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/timeactivity) object. +- Fetch `Customer -> id` from [V3 Accounting Customer Query API](https://developer.intuit.com/app/developer/qbo/docs/api/accounting/most-commonly-used/customer#query-a-customer) (optional) & set it in `CustomerRef` in the [TimeActivity](https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/timeactivity) object. + +##### Sample request payload: + +``` + { + "TxnDate": "2024-08-01T12:00:00Z", + "NameOf": "Employee", + "EmployeeRef": { "value": "1" }, + "ItemRef": { "value": "1" }, + "CustomerRef": { + "value": "2" + }, + "ProjectRef": { + "value":"416296152" + }, + "Hours": 8, + "Minutes": 0, + "Description": "Construction:DailyWork" + } + +``` + +### Use Case 4: Create Time Entry for employee + +This use case is applicable for the customers who are **not** enrolled to **QuickBooks Payroll** and do **not** have the **Projects enabled** in QuickBooks Online. + +#### Use [V3 Create TimeActivity](https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/timeactivity#create-a-timeactivity-object) API to create time activity by + +- Read `employee->Id` by calling [V3 Accounting Employee Query](https://developer.intuit.com/app/developer/qbo/docs/api/accounting/most-commonly-used/employee#query-an-employee) & set it in `EmployeeRef` in the [TimeActivity](https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/timeactivity) object with `NameOf` as `Employee`. +- Fetch `Item->id` from [V3 Accounting Query Item API](https://developer.intuit.com/app/developer/qbo/docs/api/accounting/most-commonly-used/item) & set it in `ItemRef` in the [TimeActivity](https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/timeactivity) object. + +##### Sample request payload: + +``` + { + "TxnDate": "2024-08-01T12:00:00Z", + "NameOf": "Employee", + "EmployeeRef": { "value": "1" }, + "ItemRef": { "value": "1" }, + "Hours": 8, + "Minutes": 0, + "Description": "Construction:DailyWork" + } + +``` + +### Use Case 5: Create Time Activity for contractor + +This use case is applicable to track time for contractors and for the customers who do **not** have the **Projects enabled** in QuickBooks Online. + +#### Use [V3 Create TimeActivity](https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/timeactivity#create-a-timeactivity-object) API to create time activity by +- Fetch `Vendor -> Id` from [V3 Accounting Vendor Query API](https://developer.intuit.com/app/developer/qbo/docs/api/accounting/most-commonly-used/vendor#query-a-vendor) & set it in `VendorRef` in the [TimeActivity](https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/timeactivity) object with `NameOf` as `Vendor`. +- Fetch `Item->id` from [V3 Accounting Query Item API](https://developer.intuit.com/app/developer/qbo/docs/api/accounting/most-commonly-used/item) & set it in `ItemRef` in the [TimeActivity](https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/timeactivity) object. + +##### Sample request payload: + +``` + { + "TxnDate": "2024-08-01T12:00:00Z", + "NameOf": "Vendor", + "VendorRef": { "value": "5" }, + "ItemRef": { "value": "1" }, + "Hours": 8, + "Minutes": 0, + "Description": "Construction:DailyWork" + } + +``` + +### Use Case 6: Create Time Activity for contractor and link it to projects +This use case is applicable to track time for **contractors** and for customers who have the **Projects enabled** in QuickBooks Online. + +#### Use [V3 Create TimeActivity](https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/timeactivity#create-a-timeactivity-object) API to create time activity by + +- Fetch `Vendor -> Id` from [V3 Accounting Vendor Query API](https://developer.intuit.com/app/developer/qbo/docs/api/accounting/most-commonly-used/vendor#query-a-vendor) & set it in `VendorRef` in the [TimeActivity](https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/timeactivity) object with `NameOf` as `Vendor`. +- Fetch `project -> Id` from [Read Project(Query)](https://intuitdeveloper.github.io/intuit-api/docs/schema-entities/project/#read-project) GraphQL API to read `project -> id` & set it in `ProjectRef` in the [TimeActivity](https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/timeactivity) object. +- Fetch `Customer -> id` from [V3 Accounting Customer Query API](https://developer.intuit.com/app/developer/qbo/docs/api/accounting/most-commonly-used/customer#query-a-customer) (optional) & set it in `CustomerRef` in the [TimeActivity](https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/timeactivity) object. + +##### Sample request payload: + +``` + { + "TxnDate": "2024-08-01T12:00:00Z", + "NameOf": "Vendor", + "VendorRef": { "value": "5" }, + "CustomerRef": { + "value": "2" + }, + "ProjectRef": { + "value":"416296152" + }, + "ItemRef": { "value": "1" }, + "Hours": 8, + "Minutes": 0, + "Description": "Construction:DailyWork" + } + +``` + +### Appendix + +Reference of (Contractor) - Vendor with `Vendor1099` true: +![](/intuit-api/assets/images/Vendor1099.png) diff --git a/docs/use-cases/use-cases.md b/docs/use-cases/use-cases.md new file mode 100644 index 0000000..f57579e --- /dev/null +++ b/docs/use-cases/use-cases.md @@ -0,0 +1,24 @@ +--- +layout: default +title: Use Cases +nav_order: 18 +has_children: true +permalink: /docs/use-cases/ +--- + +# Build apps around use cases + +Our newest Intuit GraphQL API currently supports the following use-cases: + +## Projects API + +Ability to manage Projects in QuickBooks Online, including adding transactions, customers and vendors. + +## Time API + +Ability to track time for employees, inclusive of Paytypes + + +## Custom Fields API + +Ability to sync advanced custom fields into QuickBooks Online for all data types (string, dates, integer). diff --git a/favicon.ico b/favicon.ico new file mode 100644 index 0000000..8102df0 Binary files /dev/null and b/favicon.ico differ diff --git a/index.md b/index.md new file mode 100644 index 0000000..b3b0aa2 --- /dev/null +++ b/index.md @@ -0,0 +1,24 @@ +--- +layout: default +title: Home +nav_order: 1 +description: "Documentation for Intuit APIs" +permalink: / +--- + +# Welcome to Intuit QuickBooks API + +Our newest API utilizes the [GraphQL framework](https://graphql.org/) and makes developing focused solutions around specific accounting problems easier than ever. + +The API offers several advantages over our existing [REST-based QuickBooks Online Accounting API](https://developer.intuit.com/app/developer/qbo/docs/develop/rest-api-features). In general, this new paradigm is more dynamic, requires fewer queries, and allows granular data scoping. + +## Get Started + +The below tracks can help you get started using Intuit's API: + +- [Set up and start developing](./docs/getting-started) +- [Learn about about GraphQL](./docs/graphql-concepts) +- [Review the API schema](./docs/schema-entities) +- [Build apps around specific use cases](./docs/use-cases) + +**Note**: Our GraphQL API is currently in beta. Participation is by invite-only for select Intuit partners. \ No newline at end of file