Pennylane integration guide
Welcome to the Pennylane integration guide with Fincome. This document guides you step by step to connect your Pennylane billing data to Fincome.
Prerequisites
Before starting, make sure that:
You are an administrator of the Pennylane account
Your API access is enabled (via an OAuth connection or access token)
You have an active Fincome account
You have access to the Clients, Products, Invoices, Credit Notes, Subscriptions modules
Introduction to the integration
The Pennylane integration automatically synchronizes the following entities into Fincome:
Customers
Products & Prices
Subscriptions (via billing templates)
Invoices & lines
Credit notes
This data is used to feed:
Monthly revenue indicators (MRR)
A view by subscription or one-off billing
Revenue recognition based on periods
Customer cohort analysis
Tracking of discounts, VAT, billing periods
Integration steps
1. Connect to Pennylane from Fincome
Log in to your Fincome account.
Go to the Data tab.
Click Connect a new billing system:

Select Pennylane.
On another page, log in to your Pennylane account.
Go to Company Settings > Connectivity > Developers > Generate an API token. Choose Sales management in read-only mode.
Copy this key and paste it on your Fincome page.
Confirm.
Once the connection is established, the initial synchronization starts automatically.
Once access is validated, the initial synchronization starts automatically.
2. Data synchronized
Customers
ID, name, email, country, postal code, customer reference
Products & Prices
Product: ID, name
Price: ID, amount before tax, currency (linked to the product)
Subscriptions
Retrieved from billing templates (invoice_template)
Include: ID, customer, status, start and end dates, monthly amount
Invoices & Lines
Invoice: ID, status, date, number, customer
Line: linked product, amount before tax, VAT, currency, quantity, period, description
Credit notes
Credit notes extracted from credit_notes attached to an invoice
Amounts reversed (negative values)
Detailed operation of the integration
Structured mapping: all entities are mapped field by field from the Pennylane structure
Subscription detection: based on billing templates (invoice_template.line_items)
Amounts before tax and taxes: analyzed line by line, with conversion to base currency
Integrated credit notes: via invoice credit_notes, with reversed amount
Fixed discounts: constant value 0 (Pennylane does not manage line-by-line discounts in the current structure)
Service periods: extracted automatically (period_start, period_end)
Support for multiple addresses: country and postal codes extracted from several prioritized sources
To know
Draft invoices (is_draft): not synchronized
Discounts: not currently returned (field forced to 0)
Daily synchronization: every night automatically
Data deletion in Pennylane: not propagated to Fincome
Custom references: supported via the customer's reference field
Integration overview
Item
Detail
Integration method
OAuth 2.0 or Pennylane API key
Supported entities
Customers, Products, Prices, Subscriptions, Invoices, Credit notes
Synchronization frequency
Daily (night)
Scope of the initial import
Data available via API
Synchronization method
REST API with pagination
Pennylane data deletion
Not supported
Data settings
Behavior / Setting
How it works in Fincome
Customer country / postal code
Detected via multiple priority fields (country_alpha2, etc.)
Subscriptions
From billing templates (template)
Amounts before tax / taxes
Fields currency_price_before_tax, currency_tax
Credit notes
Reversed lines, with structure identical to invoices
Discounts
Not available (reported as 0)
Currency conversion
Based on currency and date
Billing periods
period_start, period_end extracted by Fincome
Technical mapping (Pennylane โ Fincome)
Customers
Pennylane field
Fincome field
source_id
original_id
name
name
country_alpha2, billing_address.country_alpha2, delivery_address.country_alpha2
country
postal_code, billing_address.postal_code, delivery_address.postal_code
zip_code
reference
custom_axis_field.reference
Products & Prices
Pennylane field
Fincome field
source_id
original_id (product & price)
label
name (product & price)
price_before_tax
amount
currency
currency_code
Subscriptions
Pennylane field
Fincome field
invoice_template.line_items[].product_id
price_id
invoice_template.currency
currency_code
invoice_template.line_items[].subscription_set_id
subscription_set_id
start
subscription_start_date
stopped_at
canceled_at
finish
effective_cancellation_date
activated_at
deal_closed_date
Calculated
monthly_value, monthly_value_main
Invoices & Lines
Pennylane field
Fincome field
id
original_id (invoice)
date
date
invoice_number
invoice_number
status
status
customer.source_id
customer_id
Invoice lines
Pennylane field
Fincome field
id
original_id (line)
product_id
price_id
currency_price_before_tax
amount_excluding_tax_after_discount
currency_tax
tax_amount
label
description
quantity
quantity
currency
currency_code
Calculated
amount_excluding_tax_after_discount_main, tax_amount_main
Periods
period_start, period_end
Credit notes
Pennylane field
Fincome field
credit_notes[].id
original_id
currency_price_before_tax
amount (reversed)
currency_tax
tax_amount (reversed)
currency
currency_code
Discounted amount
discount_amount = 0 (forced)
Credit note attached to invoice
credit_note_id, invoice_id
Need help?
Our support team is available via the in-app chat or by email: [email protected]
Next steps
Check your KPIs in the MRR, Churn, and Cohorts views
Add other billing sources (Stripe, Chargebee, etc.)
Enrich your customer data (segmentation, company size...)
Schedule a session with your Customer Success to go further
Last updated