
Integrator for Pennylane
Integrating the Pennylane API into your system
We wire Pennylane into your SaaS or billing stack: the invoice created in the product lands at the firm, the payment matches, with no export on the 10th.
- Senior product team
- accounting connectors in production
- from scoping to monitoring
Why work with a Pennylane integrator and why wire it into your platform?
Pennylane is online accounting for founders and their accountants, with a public API on sales, purchases, bank and ledger. You integrate it so your platform pushes business events into Pennylane: invoice issued, payment received, credit note. Pennylane stays the firm's system of record; your product stays the field tool. The work is mapping order, invoice and refund to the Pennylane model, in the right direction, without a parallel spreadsheet.
What Pennylane changes in your platform
Invoice created in the app, visible in Pennylane
An invoice issued in your SaaS or business tool lands in accounting with its attachment. No monthly catch-up by the firm and no intermediate file.
Stripe or bank payment that matches itself
The collection carries its reference through to Pennylane, which does the matching. You do not write a reconciliation engine on the side, or a tracking spreadsheet.
Credit note or refund that reverses
A return or refund triggered in the product creates the reverse entry. Support and accounting share the same event, aligned with the books.
Several client files from the same system
One firm token tracks document collection across hundreds of client files from your platform, instead of one integration per company.
What it changes in your product
Engineering in service of a measurable outcome: invoice from the product, matching from the funnel, Pennylane as the reference.
No more export on the 10th
Documents leave the product as they happen. The monthly appointment with a file to correct drops off the schedule.
Matching stops being parallel work
Payments carry their reference and match in Pennylane. What used to be manual becomes the exception to handle.
One figure in the product and at the firm
Your dashboard and your accounting start from the same source. You stop holding meetings to explain the gap between the two.
A connector wired into your touchpoints
Code delivered, documented, wired into billing, collection and support. You are locked into neither a black box nor a generic connector.
How we ship your Pennylane connector
Scoping
Where Pennylane enters your product: billing, collection, credit notes, multi-file. Token type, backfill volume, scopes: we list the edge cases before the code.
Mapping
Matching your business objects to the Pennylane model, an identifier table, validated with your accountant. This decides whether the product invoice posts correctly.
Development and testing
A connector wired into your business events. Rate-limited client, filtered pagination, decimal amounts, retry queue. Replay invoice → payment → credit note.
Monitoring
Consistency check against the trial balance, alerts on gaps. You see an incident before it breaks close or support.
What the API brings to your platform
- Push sales from the product
- Customers, products, quotes, invoices and subscriptions. The flow that links your sales front or SaaS to the firm's books.
- Bring purchases into the same system
- Import supplier invoices and purchase requests, with routing into your internal approval circuit before booking.
- Read the ledger for ops dashboards
- Journals, accounts, entries, trial balance, fiscal years and FEC export. Enough to feed reporting reconciled with the books, not beside them.
- Send the e-invoice from the product
- Import Factur-X, UBL or CII, send to the accredited platform and track status. The journey stays inside your application.
The vocabulary of the Pennylane API
- Company token and firm token
- The first opens a single company, the second several client files. A firm token demands strict partitioning in the application, encryption at rest and a documented rotation.
- Read-only or full scope
- Each resource is requested for reading or for writing. A clean integration asks only for what it needs, and that list is something you can hand to an IT director.
- transaction_reference
- The object carrying an invoice's payment reference. Filled in, it triggers automatic matching; left empty, it silently switches matching off.
- Pagination cursor
- The next-page token. It does not encode your filters: they have to be resent with every request, otherwise the following pages come back unfiltered.
- ledger_account
- The chart-of-accounts account, formerly named plan_item. That rename is part of a series that breaks connectors written for the first version of the API.
- Amounts as strings
- In v2, monetary values travel as text. A client typed as a number produces validation errors or, worse, silent rounding on accounting entries.
The real constraints of the Pennylane API
Twenty-five requests every five seconds
The limit is low, and it applies per token. A naive history backfill saturates it within seconds: it has to run in the background, split by period and driven by the counters returned on every response.
The cursor does not encode your filters
If the filter and sort are not resent with the cursor, the following pages come back unfiltered, without a single HTTP error. It is the costliest bug on this API because it silently produces wrong data.
Webhooks cover almost nothing
Three events in beta, all tied to electronic invoicing and files. There is no event for an entry being created: any general sync goes through the changelog endpoints or a measured re-read.
Matching is limited to three sources
Bank transfers by description, Stripe and GoCardless. A payment taken through another provider does not match on its own: the rule has to be planned on the connector side.
Pennylane or installed accounting software?
Two ways to wire your platform into accounting. The right choice depends on the software you already run, not on how modern the API is.
| Criterion | PennylaneNative web API | Installed accountingSage 100, EBP, Cegid |
|---|---|---|
| Access channel | Public REST API | Business objects or a component to host |
| Time to first access | One token, a few days | Server access, network, scheduling |
| Electronic invoicing | Import and send through the API | Depends on the range and the version |
| Multi-file accounting firm | One token for several companies | One access per installation |
| Real time | Limited webhooks, changelog as fallback | Most often a scheduled batch |
| Available throughput | 25 requests / 5 s per token | Depends on the server and its load |
| The right case | Flows as they happen, a cloud-native SME | Installed software and heavy accounting history |
The choice usually belongs to your accountant, not to your IT department. We integrate both, and we know how to make them coexist during a migration.
What we measure on a Pennylane integration
The other accounting software
If Pennylane is not the core of your billing / close journey, these options are worth discussing during scoping.
PennylaneIntegrating the Pennylane API into your systemThis page
SageSeveral ranges, from cloud to on-premise, very common in French SMEs.
EBPBusiness management and accounting for small French companies.
CegidThe option for firms and organisations already built on a Cegid base.We combine Pennylane with
The stack around Pennylane when we wire it into a SaaS or a billing product.
Pennylane integration: your questions
We wire it into your product touchpoints: invoice issued, payment received, credit note, multi-file. First the right token (company or firm) with strict scopes. Then a connector that respects the rate limit, keeps filters and sort on pagination, and treats amounts as decimals. Finally the mapping table from your business IDs to Pennylane's. The real difficulty is not the technical call; it is the accounting mapping.
Certification is a commercial label from the vendor, useful for rolling out the tool itself. To wire Pennylane into a custom platform, what counts is accounting-connector experience and rigour on the mapping: chart of accounts, journals, analytical categories, and the rule when a gap appears. We claim no Pennylane partner status: we act as the development team on the integration, with your accountant.
It depends on the number of flows, their direction and how much history has to be backfilled. Pushing customer invoices from your software costs far less than a full chain with supplier invoices, payment matching, electronic invoicing and a consistency check against the trial balance. The state of your customer register weighs as much as the engineering: duplicates left unhandled upstream end up in the accounts. We scope the perimeter up front and give a firm estimate before starting.
Yes, and those are the two most frequent requests. Pennylane natively matches payments coming from a bank transfer, from Stripe and from GoCardless, provided the invoice carries the right payment reference: filling that in is precisely the connector's job. For Qonto, we build the flow that pushes banking operations with their receipts into Pennylane, handling account mapping and discrepancy cases. A payment taken through another provider needs a matching rule written on the connector side.
A fair question, and the answer comes down to one constraint: the API accepts twenty-five requests every five seconds per token. A backfill therefore runs in the background, split by period, with a persisted cursor to resume after an interruption and a recovery window to catch objects modified in the meantime. In practice, three years of invoicing is backfilled over a few nights without ever approaching the limit or blocking your day-to-day flows. It is a sizing question, not an obstacle.
A Pennylane integration project?
Let's talk. 30 minutes to scope where Pennylane enters your platform (billing, payments, support) and tell you honestly what is feasible.
Discuss my Pennylane project