Articles on: Resources
This article is also available in:

Pennylane integration mapping

Connecting to Pennylane


Follow this guide to establish the connection to the Pennylane API.

Synchronized data


Entity

Key synchronized fields

Customers

id, name, email, country, zip_code, customer_reference

Products

id, name

Prices

id, amount_excl_tax, currency (linked_to_product)

Subscriptions

id, linked customer, status, start and end dates, monthly_amount

Invoices

id, status, date, number, customer
• Lines: linked_product, amount_excl_tax, VAT, currency, quantity, period, description

Credit Notes

Extracted from the credit_notes attached to an invoice

How the integration works in detail


  • Structured mapping: all entities are mapped field by field from the Pennylane structure
  • Subscription detection: based on the billing templates (invoice_template.line_items)
  • Amounts excl. tax and taxes: analyzed line by line, with conversion into the base currency
  • Credit notes integrated: via invoice credit_notes, with the amount inverted
  • Service periods: extracted automatically (period_start, period_end)

Good to know


  • Draft invoices (is_draft): not synchronized
  • Discounts: not currently brought up (field forced to 0)
  • Daily synchronization: every night automatically
  • Data deletion in Pennylane: not propagated to Fincome
  • Custom references: supported via the customers' reference field
  • Incremental synchronization not supported: data must be extracted in full

Integration overview


Element

Detail

Integration method

OAuth 2.0 or Pennylane API key

Supported entities

Customers, Products, Prices, Subscriptions, Invoices, Credit notes

Synchronization frequency

Daily (at 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 / Zip code

Detection via several fields in order of priority (country_alpha2, etc.)

Subscriptions

From the billing templates (template)

Amounts excl. tax / taxes

currency_price_before_tax, currency_tax fields

Credit notes

Inverted lines, with a structure identical to invoices

Discounts

Not available (brought up 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

email

email

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


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

Periods

period_start, period_end


Credit notes


Pennylane field

Fincome field

credit_notes[].id

original_id

currency_price_before_tax

amount (inverted)

currency_tax

tax_amount (inverted)

currency

currency_code

Discounted amount

discount_amount = 0 (forced)

Credit note attached to invoice

credit_note_id, invoice_id

Next steps


  • Check your KPIs in the MRR, Churn, and Cohort 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

Updated on: 03/07/2026

Was this article helpful?

Share your feedback

Cancel

Thank you!