What can you do with it?

Access and manage QuickBooks accounting data including customers, invoices, bills, payments, and financial reports, enabling comprehensive accounting operations such as creating customers, generating invoices, recording payments, and retrieving company information.

How to use it?

Basic Command Structure

/your-quickbooks-connection [action] [required-parameters] [optional-parameters]

Parameters

Required:

  • action - The operation to perform (get-company-info, create-customer, update-customer, get-customer, list-customers, create-invoice, get-invoice, create-payment)

Optional:

  • realm-id - QuickBooks company realm ID
  • customer-id - Customer ID for operations
  • invoice-id - Invoice ID for operations
  • company-id - Company ID for info retrieval
  • display-name - Customer display name
  • email - Customer email address

Tools

Get Company Info

Retrieve information about the company

Parameters:

  • realm-id (required) - QuickBooks company realm ID
  • company-id (required) - Company ID

Example:

/your-quickbooks-connection
action: get-company-info
realm-id: 123456789
company-id: 123456789

Response:

{
  "CompanyInfo": {
    "Id": "123456789",
    "SyncToken": "0",
    "CompanyName": "ABC Enterprises",
    "LegalName": "ABC Enterprises LLC",
    "CompanyAddr": {
      "Id": "1",
      "Line1": "123 Main Street",
      "City": "Mountain View",
      "CountrySubDivisionCode": "CA",
      "PostalCode": "94043",
      "Country": "US"
    },
    "Country": "US",
    "Email": {
      "Address": "info@abcenterprises.com"
    },
    "WebAddr": {
      "URI": "https://www.abcenterprises.com"
    },
    "SupportedLanguages": "en",
    "FiscalYearStartMonth": "January"
  },
  "time": "2023-09-15T14:30:00Z"
}

Create Customer

Create a new customer in QuickBooks

Parameters:

  • realm-id (required) - QuickBooks company realm ID
  • display-name (required) - Customer display name
  • email (optional) - Customer email address
  • phone (optional) - Customer phone number
  • address-line1 (optional) - Address line 1
  • city (optional) - City
  • state (optional) - State/province
  • postal-code (optional) - Postal/ZIP code
  • country (optional) - Country code

Example:

/your-quickbooks-connection
action: create-customer
realm-id: 123456789
display-name: John Smith
email: john.smith@example.com
phone: 555-555-5555
address-line1: 123 Main Street
city: San Francisco
state: CA
postal-code: 94105
country: US

Response:

{
  "Customer": {
    "Id": "1234",
    "SyncToken": "0",
    "DisplayName": "John Smith",
    "PrimaryEmailAddr": {
      "Address": "john.smith@example.com"
    },
    "PrimaryPhone": {
      "FreeFormNumber": "555-555-5555"
    },
    "BillAddr": {
      "Id": "567",
      "Line1": "123 Main Street",
      "City": "San Francisco",
      "CountrySubDivisionCode": "CA",
      "PostalCode": "94105",
      "Country": "US"
    },
    "Active": true,
    "MetaData": {
      "CreateTime": "2023-09-15T14:45:00Z",
      "LastUpdatedTime": "2023-09-15T14:45:00Z"
    },
    "domain": "QBO",
    "sparse": false
  },
  "time": "2023-09-15T14:45:00Z"
}

Update Customer

Update an existing customer’s information

Parameters:

  • realm-id (required) - QuickBooks company realm ID
  • customer-id (required) - Customer ID to update
  • sync-token (required) - Current sync token value
  • display-name (optional) - Updated display name
  • email (optional) - Updated email address
  • phone (optional) - Updated phone number
  • address-line1 (optional) - Updated address line 1
  • city (optional) - Updated city
  • state (optional) - Updated state/province
  • postal-code (optional) - Updated postal/ZIP code

Example:

/your-quickbooks-connection
action: update-customer
realm-id: 123456789
customer-id: 1234
sync-token: 0
display-name: John A. Smith
address-line1: 456 Market Street
city: San Francisco
state: CA
postal-code: 94105

Response:

{
  "Customer": {
    "Id": "1234",
    "SyncToken": "1",
    "DisplayName": "John A. Smith",
    "PrimaryEmailAddr": {
      "Address": "john.smith@example.com"
    },
    "PrimaryPhone": {
      "FreeFormNumber": "555-555-5555"
    },
    "BillAddr": {
      "Id": "567",
      "Line1": "456 Market Street",
      "City": "San Francisco",
      "CountrySubDivisionCode": "CA",
      "PostalCode": "94105",
      "Country": "US"
    },
    "Active": true,
    "MetaData": {
      "CreateTime": "2023-09-15T14:45:00Z",
      "LastUpdatedTime": "2023-09-15T15:00:00Z"
    },
    "domain": "QBO",
    "sparse": false
  },
  "time": "2023-09-15T15:00:00Z"
}

Get Customer

Retrieve a customer by ID

Parameters:

  • realm-id (required) - QuickBooks company realm ID
  • customer-id (required) - Customer ID to retrieve

Example:

/your-quickbooks-connection
action: get-customer
realm-id: 123456789
customer-id: 1234

Response:

{
  "Customer": {
    "Id": "1234",
    "SyncToken": "1",
    "DisplayName": "John A. Smith",
    "PrimaryEmailAddr": {
      "Address": "john.smith@example.com"
    },
    "PrimaryPhone": {
      "FreeFormNumber": "555-555-5555"
    },
    "BillAddr": {
      "Id": "567",
      "Line1": "456 Market Street",
      "City": "San Francisco",
      "CountrySubDivisionCode": "CA",
      "PostalCode": "94105",
      "Country": "US"
    },
    "Active": true,
    "MetaData": {
      "CreateTime": "2023-09-15T14:45:00Z",
      "LastUpdatedTime": "2023-09-15T15:00:00Z"
    },
    "domain": "QBO",
    "sparse": false
  },
  "time": "2023-09-15T15:15:00Z"
}

List Customers

Retrieve a list of customers

Parameters:

  • realm-id (required) - QuickBooks company realm ID

Example:

/your-quickbooks-connection
action: list-customers
realm-id: 123456789

Response:

{
  "QueryResponse": {
    "Customer": [
      {
        "Id": "1234",
        "DisplayName": "John A. Smith",
        "PrimaryEmailAddr": {
          "Address": "john.smith@example.com"
        },
        "Active": true
      },
      {
        "Id": "5678",
        "DisplayName": "Jane Doe",
        "PrimaryEmailAddr": {
          "Address": "jane.doe@example.com"
        },
        "Active": true
      }
    ],
    "startPosition": 1,
    "maxResults": 2,
    "totalCount": 2
  },
  "time": "2023-09-15T15:30:00Z"
}

Create Invoice

Create a new invoice for a customer

Parameters:

  • realm-id (required) - QuickBooks company realm ID
  • customer-id (required) - Customer ID to invoice
  • amount (required) - Invoice amount
  • item-name (optional) - Service/product name
  • item-id (optional) - Service/product ID
  • bill-email (optional) - Email for billing
  • txn-date (optional) - Transaction date

Example:

/your-quickbooks-connection
action: create-invoice
realm-id: 123456789
customer-id: 1234
amount: 100.00
item-name: Services
item-id: 1
bill-email: john.smith@example.com
txn-date: 2023-09-15

Response:

{
  "Invoice": {
    "Id": "9876",
    "SyncToken": "0",
    "Line": [
      {
        "Id": "1",
        "LineNum": 1,
        "Amount": 100.00,
        "DetailType": "SalesItemLineDetail",
        "SalesItemLineDetail": {
          "ItemRef": {
            "value": "1",
            "name": "Services"
          }
        }
      }
    ],
    "CustomerRef": {
      "value": "1234",
      "name": "John A. Smith"
    },
    "BillEmail": {
      "Address": "john.smith@example.com"
    },
    "TxnDate": "2023-09-15",
    "TotalAmt": 100.00,
    "Balance": 100.00,
    "MetaData": {
      "CreateTime": "2023-09-15T16:00:00Z",
      "LastUpdatedTime": "2023-09-15T16:00:00Z"
    },
    "domain": "QBO"
  },
  "time": "2023-09-15T16:00:00Z"
}

Get Invoice

Retrieve an invoice by ID

Parameters:

  • realm-id (required) - QuickBooks company realm ID
  • invoice-id (required) - Invoice ID to retrieve

Example:

/your-quickbooks-connection
action: get-invoice
realm-id: 123456789
invoice-id: 9876

Response:

{
  "Invoice": {
    "Id": "9876",
    "SyncToken": "0",
    "Line": [
      {
        "Id": "1",
        "LineNum": 1,
        "Amount": 100.00,
        "DetailType": "SalesItemLineDetail",
        "SalesItemLineDetail": {
          "ItemRef": {
            "value": "1",
            "name": "Services"
          }
        }
      }
    ],
    "CustomerRef": {
      "value": "1234",
      "name": "John A. Smith"
    },
    "BillEmail": {
      "Address": "john.smith@example.com"
    },
    "TxnDate": "2023-09-15",
    "TotalAmt": 100.00,
    "Balance": 100.00,
    "MetaData": {
      "CreateTime": "2023-09-15T16:00:00Z",
      "LastUpdatedTime": "2023-09-15T16:00:00Z"
    },
    "domain": "QBO"
  },
  "time": "2023-09-15T16:15:00Z"
}

Create Payment

Record a payment for an invoice

Parameters:

  • realm-id (required) - QuickBooks company realm ID
  • customer-id (required) - Customer ID making payment
  • invoice-id (required) - Invoice ID being paid
  • amount (required) - Payment amount
  • payment-method-id (optional) - Payment method reference ID
  • txn-date (optional) - Transaction date

Example:

/your-quickbooks-connection
action: create-payment
realm-id: 123456789
customer-id: 1234
invoice-id: 9876
amount: 100.00
payment-method-id: 3
txn-date: 2023-09-16

Response:

{
  "Payment": {
    "Id": "5432",
    "SyncToken": "0",
    "CustomerRef": {
      "value": "1234",
      "name": "John A. Smith"
    },
    "TotalAmt": 100.00,
    "Line": [
      {
        "Amount": 100.00,
        "LinkedTxn": [
          {
            "TxnId": "9876",
            "TxnType": "Invoice"
          }
        ]
      }
    ],
    "PaymentMethodRef": {
      "value": "3",
      "name": "Cash"
    },
    "TxnDate": "2023-09-16",
    "MetaData": {
      "CreateTime": "2023-09-16T09:00:00Z",
      "LastUpdatedTime": "2023-09-16T09:00:00Z"
    },
    "domain": "QBO"
  },
  "time": "2023-09-16T09:00:00Z"
}

Notes

QuickBooks API requires a realm ID (company ID) for all operations. Premium operations require Authorization Bearer token and Premium-Id headers. SyncToken values are required for update operations to maintain data consistency. Payment methods include Cash, Check, Credit Card, and other configured options. All monetary amounts are in the company’s base currency.