3 challenges that FinServ companies face in building and maintaining customer-facing ERP integrations

Most financial services (FinServ) companies need to support customer-facing accounting integrations to grow over time.

Case in point: We surveyed 260 leaders at FinServ companies with at least 100 employees through Centiment, a leading market research platform, and learned that most FinServ companies can close more sales, retain customers, expand to new markets, and more by offering customer-facing ERP integrations.

Unfortunately, the process of building and maintaining ERP integrations is far from easy. Each requires significant developer resources at every phase, including ongoing maintenance.

To help streamline your team’s process of building and maintaining every accounting integration, we’ll break down the challenges associated with the API request your FinServ company likely needs to make—POSTing bank feeds to customers’ ERP solutions—and how Merge can address them.

Accessing ERP providers’ bank feed endpoints 

Widely-used ERP solutions, like Xero and Quickbooks Online, typically restrict access to their bank feed functionality to partners. 

The process of securing a partnership with one of these providers can be time intensive (it can take months, if not years) and expensive (it can cost tens of thousands of dollars per year). Also, some FinServ companies may not even qualify to be a partner, preventing them from accessing the ERP vendors’ bank feed endpoints altogether.

Xero requires many types of FinServ companies to get prior approval before beginning the application process 

https://www.merge.dev/blog/tax-rate-api?blog-related=image

Accounting for providers’ unique build requirements

Each platform has a fundamentally different way of building into their bank feed APIs. For example, while Xero has a relatively straightforward REST API, NetSuite’s requires a custom SuiteApp build to enable bank feed functionality. 

Banking SuiteApps screenshot
To build to NetSuite’s bank feeds endpoint, you’ll need to install their SuiteApp Marketplace and use their “Bank Feeds” SuiteApp

Given the differences across providers, your engineers will have to take the same steps for each integration they need to add—from scoping the requirements to constructing the build to thoroughly testing the connection. This takes your engineers away from the core development initiatives they’re uniquely equipped to tackle, which can degrade your product over time.

Handling different data models

Each platform uses a different data model for its bank feeds functionality, and bridging these differences when you’re trying to build bank feeds functionality across providers can prove difficult.

For example, Sage Intacct uses the following data model:


{
  "BANKACCTTXNFEED": {
    "FINANCIALENTITY": "BOV",
    "FEEDDATE": "2020-05-15",
    "FEEDTYPE": "xml",
    "BANKACCTTXNRECORDS": [
      {
        "POSTINGDATE": "2020-04-09",
        "TRANSACTIONTYPE": "withdrawal",
        "DOCTYPE": "Check",
        "DOCNO": "198",
        "AMOUNT": -184.00,
        "DESCRIPTION": "Office supplies"
      },
      {
        "POSTINGDATE": "2020-04-09",
        "TRANSACTIONTYPE": "withdrawal",
        "DOCTYPE": "Check",
        "DOCNO": "222",
        "AMOUNT": -211.14,
        "DESCRIPTION": "Computer service call"
      },
      {
        "POSTINGDATE": "2020-04-17",
        "TRANSACTIONTYPE": "deposit",
        "DOCTYPE": "Check",
        "DOCNO": "220",
        "AMOUNT": 2000.00,
        "DESCRIPTION": "From account CH to account BOV"
      }
    ]
  }
}

Xero, on the other hand, requires you to format bank transactions in a REST format:


{
  "pagination": {
    "page": 1,
    "pageCount": 1,
    "pageSize": 50,
    "itemCount": 3
  },
  "items": [
    {
      "id": "ba4f3127-5e46-427d-80ea-dea2fcd26afe",
      "feedConnectionId": "87cb0dc8-fa32-409c-b622-19f8de8dcc83",
      "status": "PENDING",
      "startDate": "2018-07-27",
      "endDate": "2018-07-27",
      "startBalance": {
        "amount": "9.0000",
        "creditDebitIndicator": "DEBIT"
      },
      "endBalance": {
        "amount": "10.1340",
        "creditDebitIndicator": "DEBIT"
      },
      "statementLineCount": "1"
    },
    {
      "id": "6f04e5be-dc4c-46e7-be93-560e306d613e",
      "feedConnectionId": "c2abe0f1-179c-456e-aae0-cdc49ecc936a",
      "status": "REJECTED",
      "startDate": "2018-07-28",
      "endDate": "2018-07-27",
      "startBalance": {
        "amount": "13.00",
        "creditDebitIndicator": "CREDIT"
      },
      "endBalance": {
        "amount": "15.50",
        "creditDebitIndicator": "CREDIT"
      },
      "statementLineCount": "1",
      "errors": [
        {
          "type": "invalid-start-and-end-date",
          "title": "Invalid Start and End Date",
          "status": 422,
          "detail": "The end date 2018-07-28 must be later than the start date 2018-07-27."
        }
      ]
    }
  ]
}

https://www.merge.dev/blog/quickbooks-api?blog-related=image

Add accounting integrations that let you POST to customers’ ERP systems with ease via Merge 

Merge, the leading unified API platform, neatly addresses the challenges above by:

  • Enabling you to avoid costly partnerships: By building to Merge, you don’t need to form partnerships with enterprise ERPs, like NetSuite
  • Helping you access bank feed endpoints at scale, quickly: You only have to build to Merge’s Accounting Unified API to access bank feed endpoints across ERP solutions

Learn more about Merge’s Bank Feeds Common Models and how you can use them by scheduling a demo with one of our integration experts.

Email Updates

Subscribe to the Merge Blog

Get stories from Merge straight to your inbox