Integration Framework Endpoints
Integration Framework
This section covers HaloPSA's integration framework — the APIs for connecting external systems, configuring integration modules, exchanging data with third-party services, and managing sync state.
HaloIntegration
Internal integration endpoint used to push data into HaloPSA from external systems.
GET /HaloIntegration/Get
Retrieve integration state or connection info.
No query parameters documented.
POST /HaloIntegration/CreateTicket
Create a ticket via the integration channel.
Request body: Faults schema — see Faults object (ticket creation payload).
POST /HaloIntegration/CreateAction
Add an action to a ticket via the integration channel.
Request body: Actions schema — ticket action object with ticket_id, note, note_html, outcome, datetime, who_agentid, attachment_list, customfields, and many optional fields for billing, email, social, travel, and scheduling.
IntegrationConfiguration
Manages the configuration of integration modules (third-party connectors configured in HaloPSA).
GET /IntegrationConfiguration
List all integration configurations.
No query parameters documented.
POST /IntegrationConfiguration
Create or update integration configurations.
Request body: Array of IntegrationConfiguration objects.
GET /IntegrationConfiguration/{id}
Get a single integration configuration by ID.
| Parameter | Type | Description |
|---|---|---|
id | integer (path, required) | Integration configuration ID |
includedetails | boolean | Include full details |
IntegrationData
The largest tag in this section — 130+ endpoints that proxy requests to specific third-party integration systems. Each follows one of these URL patterns:
GET /IntegrationData/Get/{IntegrationType}— fetch data from the integrationPOST /IntegrationData/Import/{IntegrationType}— import data into HaloPSA from the integrationPOST /IntegrationData/Export/{IntegrationType}— export data from HaloPSA to the integrationPOST /IntegrationData/Send/{IntegrationType}— send a specific record (e.g., invoice)POST /IntegrationData/Post/{IntegrationType}/{action}— perform a specific actionGET /IntegrationData/Validate/{IntegrationType}— validate integration credentials/connectionGET /IntegrationData/Search/{IntegrationType}— search integration dataPOST /IntegrationData/Link/{IntegrationType}— link a HaloPSA record to an integration recordPOST /IntegrationData/Unlink/{IntegrationType}— unlink a HaloPSA record from an integration recordPOST /IntegrationData/AdjustQty/{IntegrationType}— adjust subscription quantity
Integration Types Supported
Accounting / Finance
| Integration | Endpoints |
|---|---|
Xero | GET, Import, Send (invoice) |
QuickBooksOnline | GET, Import |
Kashflow | GET, Import |
BusinessCentral | GET, Import |
SageBusinessCloud | GET, Import |
ExactOnline | GET, Import |
Intacct | GET, Import |
SnelStart | GET, Import |
Fortnox | GET, Import |
Myob | GET, Import |
RMM / Monitoring
| Integration | Endpoints |
|---|---|
PRTG | GET (testOnly) |
Datto | GET (dataType, fetchSites, keyPair) |
NinjaRMM | GET (datatype, organizationid, page) |
SolarWindsRMM | GET (datatype, gfisiteid) |
Automate | GET (dataType, extraFilter, keyPair) |
Atera | GET (datatype, keyPair, page) |
Auvik | GET (dataType, alsoInclude, excludeMapped, mappedOnly, next_url, paginate, parentId, subDataType) |
NCentral | GET (accountid, customerid, dataOnly, datatype) |
KaseyaVSA | GET (datatype, extrafilter, keyPair, page) |
LogicMonitor | GET (datatype, offset) |
Zabbix | GET (method) |
Icinga | GET |
ConnectwiseRmm | GET |
Domotz | GET (endpoint, returntype, validate) |
Barracuda | GET (after, datatype, keypair, pageinapi, varname) |
NewRelic | GET (datatype) |
Prometheus | GET |
Tanium | GET |
Snow | GET (accountid, dataOnly, datatype, nextlink, paginate) |
Syncro | GET (dataOnly, datatype, page) |
Dynatrace | GET |
Xensam | GET |
BigPanda (GetDeviceList) | GET |
PSA / Help Desk
| Integration | Endpoints |
|---|---|
ConnectWise | GET (datatype, page) |
Autotask | GET (datatype, nexturl) |
ServiceNow | GET |
ServiceNowIntegration | GET (alternate_sys_id, customer_id, datatype, offset, search, updateddate) |
JiraServiceManagement | GET (alternate_sys_id, customer_id, datatype, offset, search, supplier_id) |
Freshdesk | GET (datatype, page, parent_id) |
Jira | GET (dataOnly, dataType, haloProduct, issueTypes, productId, search), Validate, Search, Import, Link, Unlink |
DevOps (Azure DevOps) | GET (data_only, haloProduct, instance_id, product_id, resource, search, workItemTypes), Search, Import, Link, Unlink |
Identity / Directory
| Integration | Endpoints |
|---|---|
AzureAD | GET (connectionid, datatype, mappingid, tenantid), Delta |
Intune | GET (areaAzureTenant, connectionid, datatype, doPaginate, nextLink) |
GoogleWorkplace | GET (datatype, mappingid, nexttoken, paginate) |
Okta | GET (datatype, override_mapping_id, validate) |
MicrosoftCSP | GET (azuretenants, continuationToken, datatype, detailsId, doPaginate, isLookup, keyPair, nextLink, search), AdjustQty, ClearLicenceKeyCache |
Calendars / Scheduling
| Integration | Endpoints |
|---|---|
ExchangeCalendars | GET (datatype, masterid, nexturl, overrideenddate, overridestartdate, userprincipalname) |
ExchangeCalendars/EWS | GET, Import (EWSAppointmentChange) |
GoogleCalendars | GET (datatype), Post (array of Uname) |
HolidayAPI | GET (country, dataOnly, endpoint, year) |
CRM / Sales
| Integration | Endpoints |
|---|---|
DynamicsCRM | GET (accountid, datatype) |
HubSpot | GET (keypair, nextlink, objecttype, paginate, resource, search) |
Salesforce | GET (endpoint, keypair, nextlink, resource) |
Quoter | GET (resource) |
GoToAssist | GET (customeremail, customername, datatype, limit, offset, ticketid) |
AmazonSeller | GET |
Shopify | GET, ShopifyVerify |
GoogleBusiness | GET |
WordPress.com | GET |
WordPress.org | GET |
Distribution / Licensing
| Integration | Endpoints |
|---|---|
Pax8 | GET (include_this_id, page, paginate, remove_existing, resource, third_party_id), AdjustQty |
IngramMicro | GET (include_this_id, offset, paginate, remove_existing, resource, tenant, third_party_id), Import (Subscriptions) |
StreamOneIon | GET |
Synnex | GET |
Giacom | GET (include_this_id, remove_existing, resource, sub_resource) |
Rhipe | GET (include_this_id, remove_existing, resource) |
TechData | GET (include_this_id, remove_existing, resource) |
intY | GET (include_this_id, remove_existing, resource) |
CloudMarketplace | GET (account_id, include_this_id, module_id, remove_existing, reset_token, resource) |
Sherweb | GET (customer_id, include_this_id, remove_existing, reset_token, resource) |
ArrowSphere | GET (include_this_id, next_url, paginate, remove_existing, resource) |
DickerData | GET (include_this_id, remove_existing, resource, tenant_id) |
DattoCommerce | GET (connectionid, datatype, page) |
MicrosoftSkus | GET |
Security / Access
| Integration | Endpoints |
|---|---|
BeyondTrust | GET Code, Import |
AzureSentinel | GET (connectionid, datatype, resourcegroupname, subscriptionid, workspacename) |
Qualys | GET (mappingid, offset, paginate, resource) |
Passportal | GET (clientid, documenttype, endpoint, pagenum, returntype, validate) |
PagerDuty | GET (apikeyoverride, dataOnly, datatype) |
SplunkOnCall | GET (datatype), CreateIncident |
Jamf | GET (dataOnly, endpoint) |
ITGlue | GET (datatype, organizationid, returntype, typeid, updateddate) |
Liongard | GET (datatype, keyPair, page), Post Customer (Area), Post Metrics |
Device42 | GET (datatype, keyPair) |
Etilize | GET (catalog, datatype, locale, page_size, pageno, search) |
Communication / Messaging
| Integration | Endpoints |
|---|---|
SplunkOnCall | GET, CreateIncident (SOCCreateIncident) |
Twitter | GET (callbackurl, datatype) |
Facebook | GET (facebook_details_id, resource) |
Slack | GET |
Mattermost | GET, Post create-webhook, Post delete-webhook, Post send-webhook |
MicrosoftTeams | Post Manifest (TeamsManifestCreate) |
Interact | GET (searchString, testOnly) |
GoogleBusiness | GET |
Remote Access
| Integration | Endpoints |
|---|---|
LogMeIn | GET (datatype) |
ConnectwiseControl | GET (datatype, keyPair, secondarydatatype) |
Splashtop | GET |
Asset Management
| Integration | Endpoints |
|---|---|
Lansweeper | GET (datatype, exportid, exportUrl, halositeid, siteid), Export (LansweeperStartExport) |
SnipeIT | GET |
VMWorkspace | GET |
Meraki | GET |
Finance / Payments
| Integration | Endpoints |
|---|---|
Stripe | GET, Post create-webhook (StripeWebhookEndpoint), Post create-setup-intent, Post create-payment-intent (StripePaymentIntentCreateRequest), Post update-invoice-payment (StripeUpdateInvoicePaymentRequest), Post create-portal-session (StripeCreatePortalSession) |
GoCardless | GET, GET /Payments |
Avalara | GET |
Other / Misc
| Integration | Endpoints |
|---|---|
HaloLink | GET (resource, uriparams), Unlink (array of int IDs) |
Datagate | GET |
Confluence | GET, Post create-webhook (ConfluenceWebhookEndpoint) |
Mail | GET, GET DeletedMail, POST Move (MoveMailRequest) |
OpenAi | Post (Actions schema) |
SalesMailbox | GET (connectionid, datatype, mailboxname, mappingid), GET /{id} |
SAML/IdP/Metadata | POST (KeyPair2) |
SAML/SP/Metadata | GET |
Quoter | GET (resource) |
FormatJsonArray | POST — utility to format a JSON array |
Datagate | GET |
Confluence | GET, Post webhook |
Common GET /IntegrationData/Get/{type} Parameters
Many integration GET endpoints share common query parameters:
| Parameter | Type | Description |
|---|---|---|
datatype | string | Sub-resource type to fetch (e.g., "customers", "devices") |
keyPair | boolean | Return results as key-value pairs |
page | integer | Page number for paginated results |
paginate | boolean | Enable pagination |
nextLink / next_url / nexturl | string | Continuation token for next page |
dataOnly | boolean | Return raw data without Halo mapping metadata |
connectionid | integer | Target a specific connection config |
mappingid | integer | Target a specific field mapping |
search | string | Filter results by search string |
Key Request Body Schemas
StripeCreatePortalSession
| Field | Type | Description |
|---|---|---|
customerid | string | Stripe customer ID |
returnurl | string | URL to return to after portal session |
SubscriptionQuantityChange (used for MicrosoftCSP and Pax8 AdjustQty)
| Field | Type | Description |
|---|---|---|
licence_id | integer | HaloPSA licence record ID |
current_quantity | integer | Current subscription seat count |
new_quantity | integer | New desired seat count |
Actions (used for CreateAction, OpenAI post)
Key fields:
| Field | Type | Description |
|---|---|---|
ticket_id | integer | Parent ticket ID |
id | integer | Action ID (for updates) |
note | string | Plain text note body |
note_html | string | HTML note body |
outcome | string | Action outcome text |
who_agentid | integer | Agent who performed the action |
datetime | datetime | Action timestamp |
attachment_list | object | Attachment_View schema |
customfields | array | Custom field values |
actisbillable | boolean | Whether time is billable |
emailbody | string | Email body (for email actions) |
emailsubject | string | Email subject |
actionarrivaldate | datetime | Scheduled arrival time |
actioncompletiondate | datetime | Scheduled completion time |
IntegrationDelta
Tracks changes (deltas) for sync operations between HaloPSA and integrations.
GET /IntegrationDelta
List all integration deltas.
No query parameters documented.
POST /IntegrationDelta
Create integration delta records.
Request body: Array of IntegrationDelta objects.
GET /IntegrationDelta/{id}
Get a single delta record.
| Parameter | Type | Description |
|---|---|---|
id | integer (path, required) | Delta record ID |