3 challenges that payroll software vendors face in building and maintaining customer-facing accounting integrations

Payroll software solutions need accounting integrations to help customers perform key financial activities in their ERP systems, whether that’s reconciling payroll journal entries, accounting for approved expenses, or building comprehensive financial reports.

The process of building and maintaining these integrations, however, is far from easy.

Each accounting integration requires significant developer resources at every phase, including ongoing maintenance.

To help streamline your team’s process of building and maintaining each accounting integration, we’ll break down the challenges associated with the API request you’ll need to make—POSTing payroll journal entries to customers’ ERP solutions—and how a unified API solution can address them.

Configuring journal entry data at scale

The most difficult part about building an integration between your payroll software and an ERP is the work you need to perform before POSTing a journal entry: configuring the journal entry data. 

For each customer, you’ll need to research and discover the general ledger account you should POST the journal entry against. You’ll also need to figure out whether to POST different line items per department, location, or employee. 

To address this at scale, you can equip customers with a custom mapping UI that lets them configure the journal entry sync. 

Using the UI, your customers should be able to select and map relevant dimensions to categorize their journal entries, such as departments, classes, and locations. The UI could also include a way to map benefit and deduction codes to the general ledger accounts in the ERP. 

For example, Gusto, a widely-used payroll and HR solution, lets customers map data between the payroll software and different ERP solutions:

POSTing to inactive accounts or creating duplicate data 

For any integration that involves POSTing data, you’ll need to think through next steps when a sync fails. 

This is even more important when an integration POSTs journal entries to a customer’s general ledger. If this data isn’t 100% accurate, it’ll adversely impact your customer's end-of-period reconciliation process—or worse.

To minimize the impact of any syncing issues, your integration will need to handle errors from the ERP and surface them to your customer. 

For example, say your customer voids a GL account that they’ve already mapped to your application. If you were to then POST a journal entry, you’ll receive an error that tells you the account is no longer active; you should pass that to your customer as soon as possible so they can correct the mapping.

Equally important, you’ll need to avoid creating duplicate data. 

You can use idempotency keys to prevent creating duplicate data, especially since many ERPs offer them out of the box. 

QuickBooks Online, as an example, lets you use their idempotency key as follows:


curl -X POST \
  https://quickbooks.api.intuit.com/v3/company//journalentry \
  -H "Authorization: Bearer " \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -H "Request-Id: " \
  -d '{
        "Line": [
          {
            "Description": "Debit line for Journal Entry",
            "Amount": 500.00,
            "DetailType": "JournalEntryLineDetail",
            "JournalEntryLineDetail": {
              "PostingType": "Debit",
              "AccountRef": {
                "value": "42"
              }
            }
          },
          {
            "Description": "Credit line for Journal Entry",
            "Amount": 500.00,
            "DetailType": "JournalEntryLineDetail",
            "JournalEntryLineDetail": {
              "PostingType": "Credit",
              "AccountRef": {
                "value": "50"
              }
            }
          }
        ],
        "TxnDate": "2024-12-16",
        "PrivateNote": "A Payroll Journal Entry"
      }'

Accounting for API providers’ unique build requirements

As you comb through accounting providers’ API documentation, you’ll notice that their journal entries’ endpoints differ in meaningful ways.

This can be anything from the rate limits you’ll need to follow to the data you can post to the authentication methods you should use.

For example, Sage Intacct offers a specific set of parameters you can include in your POST requests:

Journal Entry parameters for Sage Intacct
A snapshot of the parameters you can include when POSTing journal entries to Sage Intacct

These parameters differ almost entirely from what Zoho Books offers, both in their structure and in the type of data that can be passed through.

Journal entry parameters for Zoho Books
A snapshot of the “arguments,” or parameters, you can include when POSTing journal entries to Zoho Books

Addressing each application’s unique POST journal entries build can be time consuming for your engineers and lead to errors along the way (e.g., including the wrong parameters in an API request).

Related: What is a payroll integration?

Add several accounting integrations to your payroll product with ease through Merge

Merge, the leading unified API solution, lets you add more than a dozen accounting integrations through a single build. 

Accounting integrations Merge supports
A snapshot of the accounting integrations Merge supports

Merge also neatly addresses the challenges above by: 

  • Consolidating different categorization concepts into one Tracking Categories endpoint. This helps reduce the complexity in the mapping process
  • Returning errors in the same format as well as allowing you to pass an idempotency across all integrations—even if the third party ERP doesn’t support it
  • Letting you build to only one journal entry endpoint

Learn more about why leading HR and payroll software providers like Remote and BambooHR trust Merge to power their accounting integrations by scheduling a demo with one of our integration experts.

But Merge isn’t just a Unified 
API product. Merge is an integration platform to also manage customer integrations.  gradient text
“It was the same process, go talk to their team, figure out their API. It was taking a lot of time. And then before we knew it, there was a laundry list of HR integrations being requested for our prospects and customers.” gradient text
“It was the same process, go talk to their team, figure out their API. It was taking a lot of time. And then before we knew it, there was a laundry list of HR integrations being requested for our prospects and customers.” gradient text
“It was the same process, go talk to their team, figure out their API. It was taking a lot of time. And then before we knew it, there was a laundry list of HR integrations being requested for our prospects and customers.” gradient text

Heading 1

Heading 2

Heading 3

Heading 4

Heading 5
Heading 6
“It was the same process, go talk to their team, figure out their API. It was taking a lot of time. And then before we knew it, there was a laundry list of HR integrations being requested for our prospects and customers.”

Daniel Marashlian - Co-Founder & CTO

This is a link inside of a rich text

  • List item
  • List item
  • List item
  1. List item
  2. List item
  3. List item
Caption goes here
This is some text inside of a div block.
Table of contents
Add hundreds of integrations to your product through Merge’s Unified API
Get a demo
Just for you

3 challenges that payroll software vendors face in building and maintaining customer-facing accounting integrations

Jon Gitlin
Senior Content Marketing Manager
@Merge

Payroll software solutions need accounting integrations to help customers perform key financial activities in their ERP systems, whether that’s reconciling payroll journal entries, accounting for approved expenses, or building comprehensive financial reports.

The process of building and maintaining these integrations, however, is far from easy.

Each accounting integration requires significant developer resources at every phase, including ongoing maintenance.

To help streamline your team’s process of building and maintaining each accounting integration, we’ll break down the challenges associated with the API request you’ll need to make—POSTing payroll journal entries to customers’ ERP solutions—and how a unified API solution can address them.

Configuring journal entry data at scale

The most difficult part about building an integration between your payroll software and an ERP is the work you need to perform before POSTing a journal entry: configuring the journal entry data. 

For each customer, you’ll need to research and discover the general ledger account you should POST the journal entry against. You’ll also need to figure out whether to POST different line items per department, location, or employee. 

To address this at scale, you can equip customers with a custom mapping UI that lets them configure the journal entry sync. 

Using the UI, your customers should be able to select and map relevant dimensions to categorize their journal entries, such as departments, classes, and locations. The UI could also include a way to map benefit and deduction codes to the general ledger accounts in the ERP. 

For example, Gusto, a widely-used payroll and HR solution, lets customers map data between the payroll software and different ERP solutions:

POSTing to inactive accounts or creating duplicate data 

For any integration that involves POSTing data, you’ll need to think through next steps when a sync fails. 

This is even more important when an integration POSTs journal entries to a customer’s general ledger. If this data isn’t 100% accurate, it’ll adversely impact your customer's end-of-period reconciliation process—or worse.

To minimize the impact of any syncing issues, your integration will need to handle errors from the ERP and surface them to your customer. 

For example, say your customer voids a GL account that they’ve already mapped to your application. If you were to then POST a journal entry, you’ll receive an error that tells you the account is no longer active; you should pass that to your customer as soon as possible so they can correct the mapping.

Equally important, you’ll need to avoid creating duplicate data. 

You can use idempotency keys to prevent creating duplicate data, especially since many ERPs offer them out of the box. 

QuickBooks Online, as an example, lets you use their idempotency key as follows:


curl -X POST \
  https://quickbooks.api.intuit.com/v3/company//journalentry \
  -H "Authorization: Bearer " \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -H "Request-Id: " \
  -d '{
        "Line": [
          {
            "Description": "Debit line for Journal Entry",
            "Amount": 500.00,
            "DetailType": "JournalEntryLineDetail",
            "JournalEntryLineDetail": {
              "PostingType": "Debit",
              "AccountRef": {
                "value": "42"
              }
            }
          },
          {
            "Description": "Credit line for Journal Entry",
            "Amount": 500.00,
            "DetailType": "JournalEntryLineDetail",
            "JournalEntryLineDetail": {
              "PostingType": "Credit",
              "AccountRef": {
                "value": "50"
              }
            }
          }
        ],
        "TxnDate": "2024-12-16",
        "PrivateNote": "A Payroll Journal Entry"
      }'

Accounting for API providers’ unique build requirements

As you comb through accounting providers’ API documentation, you’ll notice that their journal entries’ endpoints differ in meaningful ways.

This can be anything from the rate limits you’ll need to follow to the data you can post to the authentication methods you should use.

For example, Sage Intacct offers a specific set of parameters you can include in your POST requests:

Journal Entry parameters for Sage Intacct
A snapshot of the parameters you can include when POSTing journal entries to Sage Intacct

These parameters differ almost entirely from what Zoho Books offers, both in their structure and in the type of data that can be passed through.

Journal entry parameters for Zoho Books
A snapshot of the “arguments,” or parameters, you can include when POSTing journal entries to Zoho Books

Addressing each application’s unique POST journal entries build can be time consuming for your engineers and lead to errors along the way (e.g., including the wrong parameters in an API request).

Related: What is a payroll integration?

Add several accounting integrations to your payroll product with ease through Merge

Merge, the leading unified API solution, lets you add more than a dozen accounting integrations through a single build. 

Accounting integrations Merge supports
A snapshot of the accounting integrations Merge supports

Merge also neatly addresses the challenges above by: 

  • Consolidating different categorization concepts into one Tracking Categories endpoint. This helps reduce the complexity in the mapping process
  • Returning errors in the same format as well as allowing you to pass an idempotency across all integrations—even if the third party ERP doesn’t support it
  • Letting you build to only one journal entry endpoint

Learn more about why leading HR and payroll software providers like Remote and BambooHR trust Merge to power their accounting integrations by scheduling a demo with one of our integration experts.

“It was the same process, go talk to their team, figure out their API. It was taking a lot of time. And then before we knew it, there was a laundry list of HR integrations being requested for our prospects and customers.”

Name
Position
Jon Gitlin
Senior Content Marketing Manager
@Merge

Jon Gitlin is the Managing Editor of Merge's blog. He has several years of experience in the integration and automation space; before Merge, he worked at Workato, an integration platform as a service (iPaaS) solution, where he also managed the company's blog. In his free time he loves to watch soccer matches, go on long runs in parks, and explore local restaurants.

Read more

Product objectives: how to define yours successfully

Insights

Paragon pricing: why it falls short of your integration needs

Insights

How 3 cutting-edge fintech companies build customer-centric products

Insights

Subscribe to the Merge Blog

Subscribe to the Merge Blog

Subscribe

Make integrations your competitive advantage

Stay in touch to learn how Merge can unlock hundreds of integrations in days, not years

Get a demo

Make integrations your competitive advantage

Stay in touch to learn how Merge can unlock hundreds of integrations in days, not years

Get a demo