Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

QuickBooks Special Conditions: 

  • The AR (account receivables) uses

...

  • special rules built into QuickBooks, and APIs from outside systems cannot over-ride QuickBook's rules. For this reason, to include the 'BookingCenter AR' into the Chart of Accounts in QuickBooks, the

...

  • 'default' AR in QuickBooks cannot be used, a new one that is a 'Current Liabilities' account type needs to be cerated and should have a clear description such as ''BookingCenter AR' to clearly show the value.
  • BookingCenter uses a generic 'current liabilities' account for the 'BookingCenter

...

  • Advanced Deposits ' recorded each day as a single number from each day's GL posting.  There are no special rules/ tools for tracking Advanced Deposits in QuickBooks.

Automating the JSON to a General Ledger GL System

  • The Account Type: BANK also cannot be used, as it also uses special rules built into QuickBooks.  Thus when offsetting 'Bank' for income transactions such as cash, credit cards, etc we recommend setting up a Account Type: Other Current Asset using a Detail Type: CashOnHand because a QuickBooks JournalEntry / Purchase posting will trigger a “Business Validation Error” when trying to post a BANK account directly via the API. 

Automating the JSON to a General Ledger GL System

Because BookingCenter is designed with daily checks built-into MyPMS, we Because BookingCenter is designed with daily checks built-into MyPMS, we reduce the complexity of managing the Accounts Receivable and Advanced Deposit liabilities accounts in your GL. When issuing Payments and Charges to Folios, as well as Cancelling and Editing Bookings, the traditional Guest Ledger and City Ledger required Users to allocate these events to specific GL code(s) to decide what account to credit/debit.  Instead, because of the checks built-into MyPMS, GL automation keeps the daily activity 100% accurate, while avoiding duplication of managing the Accounts Receivable and Advanced Deposit liabilities accounts in both the PMS and your GL.  When automating your GL, BookingCenter does this by 're-setting' the daily Accounts Receivable and Advanced Deposit liabilities account totals, and then posting the new number each day.  For example, if the GL account for Accounts Receivable was $1,250 'yesterday', we read that total, offset it with a -1250 entry, then post the current (ie 'today') Accounts Receivable amount that was accurate as of Night Audit and detailed in the Accounts Receivable Aging report. We do the exact same thing with the Advanced Deposit liabilities account.  This saves a property a lot of accountant time and frees up staff to focus on guests and the art of hospitality - not allocating Payments & Charges to Folios and Cancellations & Edits to specific GL accounts to track these events in a GL system, 

...

When the GL is automated to your QuickBooks, using the QuickBooks app called "BookingCenter to Your GL", you have access to a web service that enables you to setup, map, and test the GL process between MyPMS and your QuickBooks system. The area looks like this:

  1. Mapping Accounts – This checks that your mappings are correct in QB and BookingCenter.
  2. QuickBooks Accounts – loads all QuickBooks Accounts directly from Quickbooks.
  3. QuickBooks Customers – loads all QuickBooks Customers directly from Quickbooks (used for AR).
  4. A/R and A/D - shows the QuickBooks account that is connected to the mapping in BookingCenter.
  5. Tech/Setup - shows the ClientID / Token settings etc.
  6. Import - Allows you to see the JSON

...

  1. data for the specific System Date and Import to QB, if needed.

...

  1. Note when you import, it will import to QB

...

  1. all records for that SystemDate as shown in the JSON array. 


    When we

...

  1. train a customer with the GL process to QuickBooks, there may initially be problems

...

  1. with GL mappings (errors get both emailed and visible on the screen, if so) and thus re-importing to the GL

...

  1. may need to occur.

...

  1. If left un-attended, this can be a BIG problem

...

  1. for the accountant

...

  1. to go back into

...

  1. QuickBooks Journal and remove/delete the errant postings, or re-import via

...

  1. the QB.BookingCenter.com area

...

  1. (which can create duplicate GL entries

...

When using a Date for the Import Tool, simply de-select those mapping areas you DO NOT want to re-import to QB form that date.

  1. ).

    For best practices, BookingCenter recommends that all new customers follow the approach:

      1. After double-checking your mappings and GL account codes, use the QB.BookingCenter.com area to Import the data for the first day or two of entries, and audit to make sure your assumptions were correct in your QuickBooks accounts.
      2.  After a few days of using the QB.BookingCenter.com area's Import button for each System Date, then use manual Night Audit for a couple days to get the Night Audit process working properly, including the ""BookingCenter to Your GL" automation.  

      3. If you then choose to use Automatic Night Audit, make that switch after at least 2 days of manual Night Audit and pay attention to the emails and arrays sent to you, run reports and confirm the expected results are delivered.

Importing via Night Audit: Manual and Automatic Night Audit.

BookingCenter has checks to assure a User does not import multiple times for a System Date, either manually via the QB.BookingCenter.com area; via manual Night Audit; or via Automatic Night Audit.  Ideally the import should be done only once, as multiple Imports would require you to accept multiple entries or multiple entries delete Journal entries in QuickBooks - a painful exercise.

The import tool also enables a re-import for a specific date (note, it's always the 'System Date' that loads the JSON for import - and thus will equal that System Date's Transaction Summary report). But the Log is always the 'clock date', which is the QuickBooks actually imported in Pacific time, which is often different than the hotel's System Date.  The Import tool allows a user to select which Items they want imported, avoiding duplicating GL entries already made for that System Date.  BookingCenter logs each System Date entry to make sure Night Audit (manual or automatic) or a manual 'Import' action will not re-submit journal entries.  If a System Date was already imported, there is an error message presented on the screen in the QB.BookingCenter.com area such as the following:


Image Added

When using a date for the Import Tool, simply de-select those mappings you DO NOT want to re-import to QB form that date.

Image Added

If the log shows that a System Date entry has already been done (whether with errors or not) then the User will need to approve the action, as it could re-import records already sent to QuickBooks.  

Image Added

As described above, though, it may that there were errors with only specific categories that have been fixed, and the accountant is now trying to re-import, and that is an excellent reason to answer YES and allow a re-import for a System Date that had been run prior.

  • Search – Allows you to search for a Journal entry that imported.  This only searches 1 day at a time.
  • Logging – QuickBooks logs each entry and error. Search any date required, but note that the date for the QuickBooks is actual time and date (listed in Pacific Time, ie, California) that the Journal entry was entered.  Depending on how you use Night Audit, that may/not be the actual date of your System Date.

Cross checking the accounting integration

#1 The Folio posting that occur at night Audit goes out to your email on record, as such:

From: "BookingCenter Support" <folioarch@bookingcenter.com>
Subject: MYPMSDO Charge Folio Results for 14-NOV-2025
Date: November 22, 2025 at 1:30:20 PM PST
To: info@bookingcenter.com

The following folios were charged Room Rent as a result of your Night Audit process for 14-NOV-2025
Guest: douglas, smith Folio Number: 11090062 Room: 221 Room Rent: 189
Guest: Amy, Tweddale Folio Number: 11133371 Room: 206 Room Rent: 194

#2 The email sent when using the "BookingCenter to Your GL, each day to your email on record that summarizes what was posted to QuickBooks, as such:

From: BookingCenter GL to QuickBooks <admin@bookingcenter.com>
Subject: BookingCenter GL to QuickBooks result for MYPMSDO on 14-NOV-2025
Date: November 22, 2025 at 2:00:06 PM PST
To: info@bookingcenter.com
Reply-To: noreply@bookingcenter.com


Item: Totals for Room Rent Value: 383.00 Journal Entry created. ID: 8
Item: Totals for NONCARD Value: 1.00 Journal Entry created. ID: 9
Item: Totals for Taxes Value: 21.83 Journal Entry created. ID: 10
Item: AD Value: 2.00 Journal Entry created. ID: 11
Item: AR Value: 1977.10 Journal Entry created. ID: 12

When there is no GL data to report for a specific day, because there were no transactions for that date, the email will be as follows:

From: BookingCenter GL Interface <admin@bookingcenter.com>
Subject: BookingCenter QBOE General Ledger JSON for A MYPMS demo hotel on 30-JAN-2025
Date: May 29, 2025 at 4:01:03 PM PDT
To: <Your GL Email>@bookingcenter.com
Reply-To: noreply@bookingcenter.com

[
   "ERROR",
   "No Transactions found for 30-JAN-2025"

#3 The GL JSON array sent via email, and that can be re-generated at any time onto a browser screen, will never change (it is based on the System Date's Transaction Summary report), as such:

Below are whats was sent via email, the detail provided in the JSON for the same date as the example used here:

 {
       "property_id": "MYPMSDO",
       "property_name": "A MYPMS demo hotel",
       "transaction_date": "2025-NOV-14",
       "item_id": "Totals for Room Rent",
       "item_description": "Totals for Room Rent",
       "gl_id": "7",
       "gl_desc": "RoomRentTotals",
       

Image Removed

  • Search – Allows you to search for a Journal entry that imported.  This only searches 1 day at a time.
  • Logging – we log each entry and error. Seach any date required.

In addition, when you are using the "BookingCenter to Your GL, each day an email summary will be sent to your 'billing email' address that summarizes what was posted to QuickBooks, and looks as follows:

From: BookingCenter GL Interface <admin@bookingcenter.com>
Date: Thu, May 29, 2025 at 12:00 PM
Subject: BookingCenter GL to QuickBooks result for MYPMSDO on 22-OCT-2025
To: <Your Billing Email>@<your domain>.

Item: RENT Value: 2444.00 Journal Entry created. ID: 552
Item: Totals for Taxes Value: 366.60 Journal Entry created. ID: 553
Item: RENT Value: 2444.00 Journal Entry created. ID: 554
Item: Totals for Taxes Value: 366.60 Journal Entry created. ID: 555
Item: RENT Value: 2444.00 Journal Entry created. ID: 556
Item: Totals for Taxes Value: 366.60 Journal Entry created. ID: 557
Item: RENT Value: 2444.00 Journal Entry created. ID: 558
Item: Totals for Taxes Value: 366.60 Journal Entry created. ID: 559
Item: RENT Value: 2444.00 Journal Entry created. ID: 560
Item: Totals for Taxes Value: 366.60 Journal Entry created. ID: 561
Item: RENT Value: 2444.00 Journal Entry created. ID: 562
Item: Totals for Taxes Value: 366.60 Journal Entry created. ID: 563
Item: RENT Value: 2444.00 Journal Entry created. ID: 564
Item: Totals for Taxes Value: 366.60 Journal Entry created. ID: 565
Item: RENT Value: 2444.00 Journal Entry created. ID: 566
Item: Totals for Taxes Value: 366.60 Journal Entry created. ID: 567

When there is no GL data to report for a specific day, because there were no transactions for that date, the email will be as follows:

From: BookingCenter GL Interface <admin@bookingcenter.com>
Subject: BookingCenter QBOE General Ledger JSON for A MYPMS demo hotel on 30-JAN-2025
Date: May 29, 2025 at 4:01:03 PM PDT
To: <Your GL Email>@bookingcenter.com
Reply-To: noreply@bookingcenter.com

[
   "ERROR",
   "No Transactions found for 30-JAN-2025"
]

Examples of a GL JSON array

Below are examples of what is provided in our JSON:

 { 
        "property_id": "TEST",
        "property_name": "TEST Property",
        "transaction_date": "2020-JAN-02",
        "item_id": "RENT",
        "item_description": "Room Rent",
        "gl_id": "2500",
        "gl_desc": "Rent",
        "gl_type": "Credit",
        "gl_amount": "4404.78",
        "offset_id": "3500",
        "offset_desc": "Rentoffset",
        "gl_offset_type": "Debit",
        "offset_amount": "4404.78"
    },
    {
        "property_id": "TEST",
        "property_name": "TEST Property",
        "transaction_date": "2020-JAN-02",
        "item_id": "Totals for Miscellaneous Items",
        "item_description": "Totals for Miscellaneous Items",
        "gl_id": "00009",
        "gl_desc": "MiscTotals",
        "gl_type": "Credit",
        "gl_amount": "250.00",
        "offset_id": "00090",
        "offset_desc": "MiscTotalsOffset",
        "gl_offset_type": "Debit",
        "offset_amount": "250.00"
    },
    {
        "property_id": "TEST",
        "property_name": "TEST Property",
        "transaction_date": "2020-JAN-02",
        "item_id": "CLEANING",
        "item_description": "Exit cleaning fee",
        "gl_id": "1012",
        "gl_desc": "ExitClean",
        "gl_type": "Credit",
        "gl_amount": "250.00",
        "offset_id": "10212",
        "offset_desc": "ExitCleanOffset",
        "gl_offset_type": "Debit",
        "offset_amount": "250.00"
    },

 {
        "property_id": "TEST",
        "property_name": "TEST Property",
        "transaction_date": "2020-JAN-02",
        "item_id": "Totals for CARDS",
        "item_description": "Totals for CARDS",
        "gl_id": "00003",
        "gl_desc": "CardsTotal",
        "gl_type": "Credit",
        "gl_amount": "19326.72",
        "offset_id": "00030",
        "offset_desc": "CardsTotalOffset",
        "gl_offset_type": "Debit",
        "offset_amount": "19326.72"
    },
    {
        "property_id": "TEST",
        "property_name": "TEST Property",
        "transaction_date": "2020-JAN-02",
        "item_id": "CA",
        "item_description": "Mastercard",
        "gl_id": "1001",
        "gl_desc": "MasterCard",
        "gl_type": "Credit",
        "gl_amount": "12162.00",
        "offset_id": "1002",
        "offset_desc": "MasterCardOffset",
        "gl_offset_type": "Debit",
        "offset_amount": "12162.00"
    },

 
    {
        "property_id": "TEST",
        "property_name": "TEST Property",
        "transaction_date": "2020-JAN-02",
        "item_id": "VI",
        "item_description": "Visa",
        "gl_id": "1003",
        "gl_desc": "Visa",
       

"gl_type": "Credit",

       

       "gl_amount": "

7164

383.

72

00",

       

       "offset_id": "

1004

1150040006",

       

       "offset_desc": "

VisaOffset

RoomRent Cash at Bank",

       

       "gl_offset_type": "Debit",

       

       "offset_amount": "

7164

383.

72

00"

   

   }

,

 

 {

       

       "property_id": "

TEST

MYPMSDO",

       

       "property_name": "

TEST Property

A MYPMS demo hotel",

       

       "transaction_date": "

2020

2025-

JAN

NOV-

02

14",

       

       "item_id": "Totals for NONCARD",

       

       "item_description": "Totals for NONCARD",

       

       "gl_id": "

00004

6",

       

       "gl_desc": "

NonCardsTotal

NonCardTotals",

       

       "gl_type": "Credit",

       

       "gl_amount": "

2789

1.00",

       

       "offset_id": "

00040

1150040006",

       

       "offset_desc": "

NonCardsTotalOffset

Non Cards Cash at Bank",

       

       "gl_offset_type": "Debit",

       

       "offset_amount": "

2789

1.00"

   

   }

,

 

 {

       

       "property_id": "

TEST

MYPMSDO",

       

       "property_name": "

TEST Property

A MYPMS demo hotel",

       

       "transaction_date": "

2020

2025-

JAN

NOV-

02

14",

       

       "item_id": "

DEBIT

Totals for Taxes",

       

       "item_description": "

Debit

Totals for Taxes",

       

       "gl_id": "

1007

1",

       

       "gl_desc": "

Debit

TaxTotals",

       

       "gl_type": "Credit",

       

       "gl_amount": "

2789

21.

00

83",

       

       "offset_id": "

1008

30",

       

       "offset_desc": "

DebitOffset

Tax Payables",

       

       "gl_offset_type": "Debit",

       

       "offset_amount": "

2789

21.

00

83"

   

   }

,

 
   {
               "property_id": "TESTMYPMSDO",
               "property_name": "TEST PropertyA MYPMS demo hotel",
               "transaction_date": "20242025-FEBNOV-2622",
               "transaction_ref": "Advance Deposits",
               "item_id": "AD",
               "item_description": "Advance Deposits",
               "gl_id": "0000218",
               "gl_desc": "ADAdvanceDeposit",
               "gl_type": "Credit",
               "gl_amount": "122.5000",
               "offset_id": "1024",
               "offset_desc": "ADOffsetAdvanceDepositOffset",
               "gl_offset_type": "Debit",
               "offset_amount": "122.5000"
       },
       {
               "property_id": "TESTMYPMSDO",
               "property_name": "TEST PropertyA MYPMS demo hotel",
               "transaction_date": "20242025-FEBNOV-2622",
               "transaction_ref": "Accounts Receivable",
               "item_id": "AR",
               "item_description": "Accounts Receivable",
               "gl_id": "000011150040000",
               "gl_desc": "AR",
               "gl_type": "Credit",
               "gl_amount": "286371977.2010",
               "offset_id": "1011150040007",
               "offset_desc": "AROffsetAR Pedning",
               "gl_offset_type": "Debit",
               "offset_amount": "286371977.2010"
    }

#4 the Journal report in QuickBooks.  Note, this is based on date and time - as Pacific time (California, USA) - of the import to QuickBooks, as such:

Image Added