New: the Halo × Pennylane integration by Halentra is live. Take a look
Halentra
Home/Guides/HaloPSA × Pennylane Integration by Halentra
12 min read

HaloPSA × Pennylane Integration by Halentra

Complete guide to the HaloPSA and Pennylane integration: installation, configuration, and best practices for automating your financial workflows.

HaloPSA × Pennylane

This guide walks you through setting up the HaloPSA × Pennylane integration: what to prepare on each side, how to connect them, and how to run your first sync. For what the integration does and what it costs, see the Halo × Pennylane integration page.

Once it's set up, the integration runs on its own: clients, items, quotes and invoices you save in HaloPSA reach Pennylane within about a minute, and payments, quote decisions and records created in Pennylane come back to HaloPSA every few minutes.

In HaloPSAIn PennylaneDirection
ClientsCustomersBoth ways
ItemsProductsBoth ways
QuotationsQuotesBoth ways
InvoicesCustomer invoicesBoth ways
Credit notesCredit notesHaloPSA to Pennylane
Down-payment invoicesDown-payment invoicesHaloPSA to Pennylane

Setup at a glance

Halentra creates your integration tenant and invites you to it by email. Setup then takes five steps:

1
Prepare HaloPSA

Create an API application, and check the statuses, items and tax codes the sync uses.

2
Connect HaloPSA and Pennylane

Enter the API application's credentials, then sign in to Pennylane and approve the access.

3
Map statuses and defaults

Tell the integration which HaloPSA statuses mean sent, accepted, declined, expired and invoiced.

4
Choose what syncs

Set the sync directions, customer emails and data range, and link records that already exist on both sides.

5
Run the first sync

A bulk sync links and creates records on both sides. When it finishes, the ongoing sync starts by itself.

The Setup card at the top of your tenant's Settings page follows the same steps: it shows what's done, opens each step for you, and runs the first sync once everything above it is settled. Nothing syncs until then.

Before you start
  • Invoices are finalized in Pennylane straight away. Each invoice synced from HaloPSA is numbered and locked as soon as it's created, as if you'd finalized it yourself. Check your setup with a small first sync before your whole history goes across.
  • Fiscal years. Pennylane only accepts invoices dated within one of its fiscal years. Make sure they cover the dates you'll sync from.
  • Amounts are in euros, with French VAT rates.

Step 1: Prepare HaloPSA

Create the API application

The integration reads and writes your billing records through the HaloPSA API. In HaloPSA, go to Configuration › Integrations › HaloPSA API, open View Applications, and add a new application:

SettingValue
Application nameFor example "Pennylane integration"
AuthenticationClient ID and Secret
Login TypeAgent
Agent to log in asApplication Identity
Identity RolesAdministrator

Application Identity gives the integration an identity of its own, so it doesn't depend on any one person's account, and its changes are easy to tell apart from your team's.

On the application's Permissions tab, tick these:

PermissionWhat it's for
adminReading your quote statuses, invoice statuses, item groups and taxes
admin:webhooksCreating the webhook that sends your changes to the integration
edit:customersClients
edit:itemsItems
edit:quotesQuotations
edit:invoicesInvoices and credit notes
edit:ticketsIncident tickets opened when something fails

Save the application and copy its Client ID and Client Secret for step 2.

Check your statuses and items

You'll pick these in step 3, so make sure they exist in HaloPSA first:

  • Quote statuses, under Config › Quotes & Orders › Quote Statuses: one each for sent, accepted, declined and expired, and one or more meaning the quote has been invoiced, such as Closed or Converted to order.
  • An invoice status for sent invoices, under Config › Billing › Invoice Statuses.
  • An item group for products created in Pennylane.
  • An item for down payments.

Check tax codes and billing details

Each item's tax code needs a rate Pennylane supports: 0%, 0.9%, 1.05%, 1.75%, 2.1%, 4%, 5%, 5.5%, 6%, 6.5%, 8.5%, 9.2%, 10%, 13%, 16%, 19.6% or 20%. A line with any other rate is sent at 20%, with a warning in the sync logs.

Pennylane also uses each client's billing address, VAT number, payment terms and accounts email. Check these on your main clients before the first sync.

To keep a client's quotes and invoices out of Pennylane, use HaloPSA's own excluded from invoice sync flag: the integration respects it.

Step 2: Connect HaloPSA and Pennylane

On your tenant's Settings page, the Credentials section has a card for each system.

  • HaloPSA: click Connect and enter your HaloPSA address, such as https://yourcompany.halopsa.com, with the client ID and secret from step 1. The integration checks the connection and creates the webhook in HaloPSA for you. Leave that webhook as it is: if it's disabled or deleted, changes made in HaloPSA stop reaching Pennylane.
  • Pennylane: click Connect, sign in to Pennylane and approve the access. There's no API key to create or copy. Connect with a user who has access to the company you invoice from.

If HaloPSA shows Limited, the API application is missing some of the permissions above. Once connected, both connections are checked every hour, and you're told if one stops working.

Step 3: Map statuses and defaults

Open HaloPSA statuses and defaults in the Sync rules section and fill in the eight values:

  • Quote status - Sent, Accepted, Declined, Expired: a quote accepted in Pennylane moves to your Accepted status in HaloPSA, and setting it in HaloPSA marks the Pennylane quote accepted. The same goes for declined and expired.
  • Quote status - Invoiced: one or more statuses that mark the Pennylane quote as invoiced.
  • Invoice status - Sent: the status meaning an invoice has gone to the customer.
  • Default item group and Default down payment item: the ones you checked in step 1.

The two Sent statuses also decide when Pennylane emails your customers, if you turn that on in step 4.

Autofill suggests a status for each row whose name matches, such as "Accepted" or "Approved". Check the suggestions before saving.

Step 4: Choose what syncs

Sync direction

Customers, products, quotes and invoices each sync both ways by default. Send a record type towards Pennylane only, bring it towards HaloPSA only, or switch it off.

Let Pennylane email your quotes and invoices

In the same sheet, two switches hand sending over to Pennylane, so your customers get their quotes and invoices from Pennylane without anyone sending them by hand:

  • Send quotes via Pennylane: when a HaloPSA quote moves to your Sent quote status, Pennylane emails the quote to the customer.
  • Send invoices via Pennylane: when a HaloPSA invoice moves to your Sent invoice status, Pennylane emails the invoice and its PDF to the customer. Each invoice is emailed once at most.

Both are off by default, and only work while that record type syncs towards Pennylane. Emails use your Pennylane email settings: invoices go to the client's accounts email in HaloPSA, and quotes to the quote's contact. A bulk sync never sends them, so turning them on doesn't email your customers about old documents.

Data range and existing records

Data range sets the date quotes and invoices are synced from, or keeps your whole history. Customers and products always sync in full. A narrow range is the safest way to check your setup on a first sync, and you can widen it later.

Existing records only matters if some customers or products already exist in both HaloPSA and Pennylane. The first sync links records with exactly the same name by itself. For names that differ, such as "Acme" in HaloPSA and "ACME SAS" in Pennylane, link them here first, or the sync creates a second copy. Auto-map by name links every exact match in one click, and Exclusions keeps records out of the sync altogether.

Step 5: Run the first sync

Click Run on the last step of the Setup card. The confirmation says what will change on each side; read it, then confirm.

The bulk sync goes through customers, products, quotes and invoices, in that order:

  • Records linked on both sides are updated in HaloPSA with Pennylane's details.
  • Records only on one side are created on the other.
  • Quotes and invoices already linked only have their status updated.

It takes from a few minutes for a small company to a few hours for a long history. You can follow it on the Sync logs page, or close the page and get an email when it's done. A bulk sync never emails your customers, even with customer emails turned on.

When it finishes, the Setup card goes away and the ongoing sync starts by itself. Every setting stays editable afterwards, and you can run a bulk sync again at any time, for example after linking records you missed or widening the data range.

After setup: keeping an eye on the sync

See where things stand

The dashboard shows the latest syncs, how many records are linked, and this month's activity. A banner appears when something needs you, such as a connection that stopped working or failures to review.

Every record synced, skipped or failed appears in the Sync logs with its HaloPSA and Pennylane IDs and, for a failure, the reason. A record that fails is retried automatically before it's left as a failure.

You can also have the integration open a ticket in HaloPSA when a record still fails after its retries or a connection is lost, and choose which email notifications you receive.

Common setup issues

What you seeWhat to do
A bulk sync reports no quotes or invoicesCheck the data range: every document may be older than it.
Unsupported tax rate, synced as 20%Fix the item's tax code in HaloPSA, then check the Pennylane document.
Invoice outside fiscal year, not created or left as draftOpen the fiscal year in Pennylane, then finalize the draft or save the invoice again in HaloPSA.
A customer appears twice in PennylaneIt existed on both sides under different names. Link the right pair and remove the extra one in Pennylane.
Products created in Pennylane don't appear in HaloPSASet the default item group in step 3.
Changes in HaloPSA don't reach PennylaneCheck the dashboard for a webhook or connection problem, and that the record type syncs towards Pennylane.

Our in-depth setup guide, which comes with the integration, covers every setting and every message in the sync logs.

Pricing

  • Free for organizations with at least 5 HaloPSA licenses purchased through Halentra.
  • €69 / month for organizations without HaloPSA licenses through Halentra.

Frequently asked questions

No. The integration creates it when you connect HaloPSA, and offers to recreate it if it's ever disabled or deleted.

To read your quote statuses, invoice statuses, item groups and taxes, which you pick from during setup. Besides its webhook, the integration only writes clients, items, quotes, invoices, credit notes and incident tickets.

No. You sign in to Pennylane and approve the access, using Pennylane's own authorization.

Yes. Set a recent data range for the first sync, check the result in Pennylane, then widen the range and run a bulk sync again. Keep in mind that synced invoices are finalized in Pennylane.

Yes. Turn on Send quotes via Pennylane or Send invoices via Pennylane, and Pennylane emails each quote or invoice when it reaches your Sent status in HaloPSA. Old documents synced by a bulk sync are never emailed.

Yes. Every setting stays editable. After linking records you missed or widening the data range, run a bulk sync again: records already linked are never created twice.

Changes made in Pennylane are caught up when you resume. Changes made in HaloPSA while paused aren't: save those records again in HaloPSA, or run a bulk sync.

Ready to connect HaloPSA to Pennylane?

Book a demo on your own setup, and we'll get your tenant ready.