Skip to main content

Accounting Integration Endpoints

Vendor Integrations: Accounting

This section covers the HaloPSA API endpoints for managing accounting software integrations, including Xero, QuickBooks, Sage Business Cloud, MYOB, Kashflow, Fortnox, Exact, Business Central, and Avalara.


XeroDetails

GET /XeroDetails

Summary: List of XeroDetails

Description: Returns multiple XeroDetails records. Requires authentication.

Query Parameters:

NameTypeDescription
connectedonlybooleanFilter to only connected Xero tenants
tenantidstringFilter by Xero tenant ID

POST /XeroDetails

Summary: Create or update XeroDetails

Request Body: Array of XeroDetails objects (see schema below)


GET /XeroDetails/{id}

Summary: Get one XeroDetails

Description: Returns a single XeroDetails instance by ID. Requires authentication.

Path Parameters:

NameTypeRequiredDescription
idinteger (int32)YesXeroDetails record ID

Query Parameters:

NameTypeDescription
includedetailsbooleanInclude additional details in the response

DELETE /XeroDetails/{id}

Summary: Delete a XeroDetails record

Path Parameters:

NameTypeRequiredDescription
idinteger (int32)YesXeroDetails record ID

XeroDetails Schema

PropertyTypeDescription
idintegerRecord ID
namestringIntegration name
tenant_idstringXero tenant ID
tenant_namestringXero tenant display name
new_access_tokenstringOAuth access token
new_refresh_tokenstringOAuth refresh token
token_expirystring (date-time)Token expiration timestamp
authorizedbooleanWhether the connection is authorized
redirect_uristringOAuth redirect URI
codestringOAuth authorization code
_exchangecodebooleanTrigger to exchange auth code for tokens
_disconnectbooleanTrigger to disconnect the integration
client_idstringXero client/app ID
new_client_secretstringXero client secret
client_top_levelintegerTop-level client mapping ID
client_top_level_namestringTop-level client name
item_groupintegerDefault item group ID
item_group_namestringDefault item group name
isdefaultbooleanWhether this is the default integration
enablesyncbooleanWhether sync is enabled
default_item_codestringDefault item code for invoice lines
sync_entitiesstringComma-separated list of entity types to sync
sync_entities_listarraySync entity list as key-value pairs
supplier_top_levelintegerTop-level supplier mapping ID
archive_contactsbooleanArchive contacts in Xero on disconnect
rounding_adjustment_account_codeintegerAccount code for rounding adjustments
group_rounding_adjustmentsbooleanGroup rounding adjustments into one line
receive_client_createdbooleanSync newly created clients to Xero
receive_client_updatedbooleanSync updated clients to Xero
receive_invoice_createdbooleanSync newly created invoices to Xero
receive_invoice_updatedbooleanSync updated invoices to Xero
sync_currency_for_invoicesbooleanSync currency on invoices
sync_currency_for_purchaseordersbooleanSync currency on purchase orders
allow_create_xero_paymentsbooleanAllow creating payments in Xero
allow_update_xero_paymentsbooleanAllow updating payments in Xero
allow_reversal_xero_paymentsbooleanAllow reversing payments in Xero
automatic_sales_taxbooleanUse automatic sales tax
dont_import_draft_invoicesbooleanSkip importing draft invoices from Xero
do_daily_tax_importbooleanRun daily tax import from Xero
app_typeintegerApplication type identifier
_warningstringWarning message from last sync

QuickBooksDetails

GET /QuickBooksDetails

Summary: List of QuickBooksDetails

Description: Returns multiple QuickBooksDetails records. Requires authentication.

Query Parameters:

NameTypeDescription
companyidstringFilter by QuickBooks company ID
connectedonlybooleanFilter to only connected companies

POST /QuickBooksDetails

Summary: Create or update QuickBooksDetails

Request Body: Array of QuickBooksDetails objects (see schema below)


GET /QuickBooksDetails/{id}

Summary: Get one QuickBooksDetails

Description: Returns a single QuickBooksDetails instance by ID. Requires authentication.

Path Parameters:

NameTypeRequiredDescription
idinteger (int32)YesQuickBooksDetails record ID

Query Parameters:

NameTypeDescription
includedetailsbooleanInclude additional details in the response

DELETE /QuickBooksDetails/{id}

Summary: Delete a QuickBooksDetails record

Path Parameters:

NameTypeRequiredDescription
idinteger (int32)YesQuickBooksDetails record ID

QuickBooksDetails Schema

PropertyTypeDescription
idintegerRecord ID
namestringIntegration name
countrystringCountry/region of the QBO instance
company_idstringQuickBooks company/realm ID
company_namestringQuickBooks company name
new_access_tokenstringOAuth access token
new_refresh_tokenstringOAuth refresh token
token_expirystring (date-time)Token expiration timestamp
authorizedbooleanWhether the connection is authorized
redirect_uristringOAuth redirect URI
authorization_codestringOAuth authorization code
_exchangecodebooleanTrigger to exchange auth code for tokens
_disconnectbooleanTrigger to disconnect the integration
client_idstringQuickBooks app client ID
new_client_secretstringQuickBooks app client secret
api_urlstringQuickBooks API base URL
enable_syncbooleanWhether sync is enabled
sync_entitiesstringComma-separated entity types to sync
sync_entities_listarraySync entity list as key-value pairs
client_top_levelintegerTop-level client mapping ID
inventory_item_groupintegerItem group for inventory items
non_inventory_item_groupintegerItem group for non-inventory items
service_item_groupintegerItem group for service items
default_invoice_itemintegerDefault invoice line item ID
default_order_itemintegerDefault order line item ID
default_tax_code_idintegerDefault tax code ID
zero_tax_rate_idintegerZero-rate tax code ID
default_sales_account_idintegerDefault sales account ID
default_expense_account_idintegerDefault expense account ID
default_asset_account_idintegerDefault asset account ID
automatic_sales_taxbooleanUse automatic sales tax
online_paymentsbooleanEnable online payments
accept_credit_cardbooleanAccept credit card payments
accept_bank_transferbooleanAccept bank transfer payments
multi_currencybooleanMulti-currency enabled
receive_client_createdbooleanSync newly created clients
receive_client_updatedbooleanSync updated clients
receive_payment_createdbooleanSync newly created payments
receive_payment_updatedbooleanSync updated payments
sync_halo_invoice_idbooleanSync Halo invoice ID to QBO
sync_invoice_bill_addressbooleanSync billing address on invoices
sync_invoice_ship_addressbooleanSync shipping address on invoices
use_qbo_invoice_termsbooleanUse QBO invoice terms
round_payments_to_2dpbooleanRound payment amounts to 2 decimal places
dont_post_item_quantitiesbooleanSkip posting item quantities
dont_sync_cost_tracking_linesbooleanSkip cost tracking line items
mark_as_voidbooleanMark cancelled invoices as void in QBO
do_daily_tax_importbooleanRun daily tax import
app_typeintegerApplication type identifier
instance_typeintegerQBO instance type
_warningstringWarning message from last sync

SageBusinessCloudDetails

GET /SageBusinessCloudDetails

Summary: List of SageBusinessCloudDetails

Description: Returns multiple SageBusinessCloudDetails records. Requires authentication.

Query Parameters:

NameTypeDescription
connectedonlybooleanFilter to only connected tenants
tenantidstringFilter by Sage tenant ID

POST /SageBusinessCloudDetails

Summary: Create or update SageBusinessCloudDetails

Request Body: Array of SageBusinessCloudDetails objects (see schema below)


GET /SageBusinessCloudDetails/{id}

Summary: Get one SageBusinessCloudDetails

Description: Returns a single SageBusinessCloudDetails instance by ID. Requires authentication.

Path Parameters:

NameTypeRequiredDescription
idinteger (int32)YesSageBusinessCloudDetails record ID

Query Parameters:

NameTypeDescription
includedetailsbooleanInclude additional details in the response

DELETE /SageBusinessCloudDetails/{id}

Summary: Delete a SageBusinessCloudDetails record

Path Parameters:

NameTypeRequiredDescription
idinteger (int32)YesSageBusinessCloudDetails record ID

SageBusinessCloudDetails Schema

PropertyTypeDescription
idintegerRecord ID
namestringIntegration name
tokenexpirystring (date-time)Token expiration timestamp
isauthorizedbooleanWhether the connection is authorized
redirecturistringOAuth redirect URI
clienttoplevelintegerTop-level client mapping ID
client_top_level_namestringTop-level client name
itemgroupintegerDefault item group ID
item_group_namestringDefault item group name
enablesyncbooleanWhether sync is enabled
defaultitemcodestringDefault item code
showmessagebooleanDisplay sync status messages
client_idstringSage app client ID
new_client_secretstringSage app client secret
syncentitiesstringComma-separated entity types to sync
sync_entities_listarraySync entity list as key-value pairs
sbcdnewmethodbooleanUse newer API method
codestringOAuth authorization code
_exchangecodebooleanTrigger to exchange auth code
_disconnectbooleanTrigger to disconnect the integration
new_access_tokenstringOAuth access token
new_refresh_tokenstringOAuth refresh token
client_mappingsarrayClient mapping records
item_group_mappingsarrayItem group mapping records
app_typeintegerApplication type identifier
code_verifierstringPKCE code verifier
do_daily_tax_importbooleanRun daily tax import
_importtypestringImport type identifier
_warningstringWarning message from last sync

MYOBDetails

GET /MYOBdetails

Summary: List MYOB integration details

Description: Returns all MYOB integration records.


POST /MYOBdetails

Summary: Create or update MYOBDetails

Request Body: Array of MYOBDetails objects (see schema below)


GET /MYOBdetails/{id}

Summary: Get one MYOBDetails

Path Parameters:

NameTypeRequiredDescription
idinteger (int32)YesMYOBDetails record ID

DELETE /MYOBdetails/{id}

Summary: Delete a MYOBDetails record

Path Parameters:

NameTypeRequiredDescription
idinteger (int32)YesMYOBDetails record ID

MYOBDetails Schema

PropertyTypeDescription
idintegerRecord ID
isdesktopbooleanWhether this is the MYOB desktop edition
urlstringMYOB API base URL
company_urlstringMYOB company file URL
company_idstringMYOB company ID
company_namestringMYOB company name
redirect_uristringOAuth redirect URI
codestringOAuth authorization code
client_idstringMYOB app client ID
new_client_secretstringMYOB app client secret
_exchangecodebooleanTrigger to exchange auth code
authorizedbooleanWhether the connection is authorized
newmethodbooleanUse newer API method
usernamestringMYOB username
new_passwordstringMYOB password
new_access_tokenstringOAuth access token
new_refresh_tokenstringOAuth refresh token
defaulttaxcodeidintegerDefault tax code ID
defaulttaxcodenamestringDefault tax code name
clienttoplevelintegerTop-level client mapping ID
client_top_level_namestringTop-level client name
defaultitemgroupintegerDefault item group ID
item_group_namestringDefault item group name
defaultsalesaccountidintegerDefault sales account ID
defaultsalesaccountnamestringDefault sales account name
defaultexpenseaccountidintegerDefault expense account ID
defaultexpenseaccountnamestringDefault expense account name
enablesyncbooleanWhether sync is enabled
syncentitiesstringComma-separated entity types to sync
sync_entities_listarraySync entity list as key-value pairs
showmessagebooleanDisplay sync status messages
defaultinvoiceitemintegerDefault invoice line item ID
defaultorderitemintegerDefault order line item ID
suppliertoplevelintegerTop-level supplier mapping ID
supplier_top_level_namestringTop-level supplier name
suppliernamefieldintegerField used for supplier name
freighttaxcodeintegerTax code for freight lines
generalledgeraccountintegerGeneral ledger account ID
halointegratorenabledbooleanWhether Halo Integrator is enabled
halo_integrator_import_typesarrayImport type list for Halo Integrator
halo_integrator_import_liststringSerialized import list
halointegrator_lastsyncstring (date-time)Last Halo Integrator sync timestamp
halointegrator_lasterrorstringLast Halo Integrator error message
client_mappingsarrayClient mapping records
supplier_mappingsarraySupplier mapping records
_disconnectbooleanTrigger to disconnect the integration
_importtypestringImport type identifier
do_daily_tax_importbooleanRun daily tax import
_warningstringWarning message from last sync

KashflowDetails

GET /KashflowDetails

Summary: List of KashflowDetails

Description: Returns multiple KashflowDetails records. Requires authentication.

Query Parameters:

NameTypeDescription
includedisabledbooleanInclude disabled integrations
includeenabledbooleanInclude enabled integrations
tenantidintegerFilter by tenant ID