Welcome to the Factorial Finance Integration!
Hi there! We're thrilled to collaborate with you on building a seamless integration between your ERP system and Factorial's Finance platform. This document is designed to provide you with a comprehensive blueprint for creating an integration that maximizes value for our mutual users, using Factorial's public API.
By following these guidelines, you'll make the development process smoother and create a more user-friendly integration. It's important to follow these steps to ensure we deliver the best possible experience for our shared clients. Let's team up to create something amazing that boosts productivity and satisfaction for everyone!
Introduction
We want to provide the best experience for users connecting their ERP with Factorial's financial features. To achieve this, it's crucial for developers to understand the integration details: what data is synced, how it's synced, and when. The goal is a reliable and consistent data flow between both systems.
That’s why we need external partners like you to build financial integrations following these guidelines and using the endpoints exposed on our public API. This approach aims to streamline the synchronization of accounting and financial data between Factorial and the ERP software, ensuring accurate and timely data exchange.
Key concepts
Before you start, familiarize yourself with these essential concepts:
- Source of Truth: Generally, the ERP is the primary source for foundational accounting data (Chart of Accounts, Contacts). Factorial acts as a significant source for processed data, particularly employee expenses and potentially bank transactions.
- external_id: This field is CRITICAL. When pushing data from the ERP to Factorial via POST, always include the unique identifier of the record in the ERP system in the external_id field. This allows Factorial and the integrator to map records accurately and understand their origin. Records in Factorial without an external_id are generally assumed to have originated within Factorial.
- updated_from: This query parameter is available on many GET endpoints. It allows integrators to efficiently fetch only records that have been created or updated in Factorial since the specified ISO 8601 timestamp, enabling incremental synchronization. Remember to store the timestamp of the last successful sync!
Factorial resources
Before start downloading/uploading data let’s see what resources exists in Factorial’s Finance Domain and how are them connected.

Sorted by more used:
- Employee Expenses are expenses made by employees mostly uploaded using the mobile app, uploading receipts or an invoices → Financial Documents
- Invoices are another type of Financial Documents. In Factorial invoices can be upload directly into the platform via a form or email. We use invoices in many products in factorial like: Procurement, Software, Expenses, Manual uploads. Also we can generate Sale invoices.
- Contacts can be clients or providers, they can have associated bank account information for making payments, in Factorial we have contacts linked to many resources but for ERPs purposes the main ones are: Financial Documents and Ledger Accounts
- Ledger Accounts are accounts for doing accounting through Journal Entries, the mainframe of any ERP. To do that in factorial, we allow clients to configure the app to automatically generate Journal Entries, when certain events happen, for example
- A new bank transaction enter to the system
- A draft journal entry is published (confirmed)
- A reconciliation is done between a expense/invoice with a bank transaction
- more… (TODO: talk with @Santiago Guillen to help me enlarge that list)
- …
- Bank accounts and Bank transactions extracted directly from the client bank institution (using GoCardless) this data is used mainly to reconcile and can mark automatically invoices or expenses as paid. Also we can generate SEPA files to allow our clients to pay invoices or expenses via transfer.
- TODO.. continue with Taxes and how we interconnect this using Ledger Account Resources and Accounting Settings