Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.dualentry.com/llms.txt

Use this file to discover all available pages before exploring further.

Chargebee Integration: RevRec Journal Posting

Chargebee RevRec Premium posts revenue recognition journal entries directly into your DualEntry general ledger. The connection is initiated from Chargebee using a DualEntry API key plus the company ID of the entity that should receive each entry. Data flows one way, from Chargebee into DualEntry, on the journal frequency you configure in Chargebee. This page covers the DualEntry side of the setup: the values you need to share with Chargebee, the records that appear in DualEntry, and what to check when an entry fails to post. For the Chargebee-side UI, see Chargebee’s RevRec Premium DualEntry integration documentation.

Prerequisites

Confirm the following in DualEntry before starting the Chargebee-side setup. Each prerequisite blocks a specific step in Chargebee’s configuration flow, so missing one halts the connection on the Chargebee side rather than failing during posting.
  • Access to your organization’s DualEntry administrator, who provisions API keys on your behalf (see Get an API key from your administrator). The administrator role is what gates key creation in DualEntry, and Chargebee cannot connect without a valid key.
  • The chart of accounts you intend Chargebee to post into, including revenue, deferred revenue, AR, and any contra-revenue accounts the RevRec posting flow uses. Chargebee maps to these accounts by name or ID, so the accounts must exist before mapping starts.
  • The DualEntry company that should receive the entries, with the company ID handy (see Gather your DualEntry credentials). Chargebee’s posting flow targets one DualEntry company per connection.
  • An active Early Access entitlement for the Chargebee RevRec Premium DualEntry connector on the Chargebee side. Chargebee enables this for you on request and the DualEntry option only appears in Chargebee’s accounting system list once it’s turned on.
You also need a Controller (or higher) role in Chargebee RevRec Premium to configure the posting flow.

Gather your DualEntry credentials

Chargebee needs two values from DualEntry to post: a DualEntry company ID (which identifies the entity that should receive each journal entry) and a DualEntry API key (which authorizes Chargebee to write to your ledger). Generate both before opening the Chargebee setup flow.

Find your company ID

The DualEntry company ID identifies which entity in your DualEntry organization receives entries from Chargebee.
  1. In DualEntry, open the company switcher in the top navigation and choose Companies.
  2. Locate the entity that should receive Chargebee’s entries.
  3. Copy the company ID from the ID column on the Companies list.
You can also fetch the ID programmatically by calling the Companies API endpoint with your API key. The value is a string and is sent to Chargebee as company_id.

Get an API key from your administrator

Each Chargebee posting flow uses one DualEntry API key. API keys are provisioned exclusively by your organization’s DualEntry administrator, so request one from them rather than generating it yourself. Ask for a dedicated key for Chargebee so it can be rotated without affecting other integrations.
  1. Identify your DualEntry administrator. If you’re not sure who that is, your account owner can tell you, or you can ask via DualEntry support.
  2. Ask the administrator to generate a new API key named Chargebee RevRec (or another name that identifies the integration owner).
  3. Have the administrator capture the key at creation time. The key is shown only once and cannot be retrieved later.
  4. Receive the key through a secrets manager or other secure channel, and store it the same way. Pass it to whoever configures the Chargebee posting flow, along with the DualEntry company ID.
See the Developer guides for how keys are scoped, presented in the X-API-KEY header, and rotated.
Treat the Chargebee API key as a write credential. It can create journal entries against your live ledger, so issue a dedicated key for Chargebee and rotate it immediately if anyone outside the Chargebee admin team has seen it.

Connect from Chargebee

The connection is established from Chargebee, not from DualEntry. Once you have the DualEntry API key and company ID from the previous section, open Chargebee RevRec Premium and follow Chargebee’s setup flow. DualEntry doesn’t expose a Chargebee tile on the Settings → Integrations screen; the credentials are consumed by Chargebee directly. The flow is documented in detail in Chargebee’s RevRec Premium DualEntry integration page. At a high level:
  1. In Chargebee RevRec Premium, navigate to Settings → Accounting and choose Connect your data.
  2. Select ACJournal Posting and choose DualEntry as the accounting system.
  3. Paste the DualEntry API key and the company_id you generated.
  4. Save the connection. Chargebee tests the credentials against DualEntry and shows Linked when the integration is active.
Each Chargebee posting flow connects to a single DualEntry company. To post to multiple DualEntry companies, configure one Chargebee posting flow per DualEntry company, each with its own company_id and (optionally) its own dedicated API key. Treat the linked status as a confirmation that authentication succeeded, not that any entry has posted yet. Posting itself happens on the cadence covered in When entries post.

What syncs to DualEntry

Chargebee creates one DualEntry journal entry per posting batch defined by its journal frequency configuration. Each entry posts to the company identified by the company_id you supplied during setup.
Chargebee outputDualEntry recordNotes
RevRec journal batchjournal_entryOne entry per batch. The memo carries Chargebee’s journal description.
Journal linejournal_entry_lineDebits and credits are taken from Chargebee’s Journal Account Mappings.
Posting periodEntry dateThe entry date is the close date of the Chargebee period.
The account mapping between Chargebee’s accounts and your DualEntry GL accounts is configured in Chargebee under Settings → Accounting → Journal Account Mappings. The accounts on those mappings must already exist in your DualEntry chart of accounts before Chargebee can post; otherwise the post fails with an account-not-found error. After a successful post, the entries appear in DualEntry under Transactions → Journal Entries. See Journal Entries for how to review them in your ledger.

When entries post

Chargebee pushes entries to DualEntry on the cadence configured in its journal frequency settings. Two triggers exist:
  • Automatic. When you close an accounting period in Chargebee RevRec Premium, the configured batch posts to DualEntry automatically. This is the typical path for monthly and quarterly closes, and it is the one most customers run on once the integration is live.
  • Manual. From Chargebee’s Post Journal page, choose Post Journals to post a batch on demand. Use this for backfills, reposts after fixing a mapping, and out-of-cycle adjustments such as auditor-requested corrections.
After posting, Chargebee updates each journal’s status to Success on its dashboard, and the entry appears under Transactions → Journal Entries in DualEntry. Failed entries show a retry icon in Chargebee that re-attempts the post against the same DualEntry API endpoint with the same credentials, so a transient network failure or a temporarily locked period can usually be cleared by retrying once the underlying condition is resolved. Posted entries are not synced back to Chargebee on subsequent edits in DualEntry; if you edit an entry in DualEntry after posting, the change does not flow back upstream.

Current limitations

The Chargebee RevRec Premium DualEntry connector has the following limits today. These are constraints on what Chargebee sends, not what DualEntry accepts.
  • Journal entries only. The current connector imports only the journal entries produced by Chargebee’s RevRec posting flow. It does not push invoices, customers, vendor credits, or other transactional records from Chargebee into DualEntry. If you need that data in DualEntry, sync it through another channel (such as a custom integration or bulk import) until Chargebee expands the connector.
  • No classification dimensions. Departments, locations, classes, and other DualEntry classifications cannot be set from Chargebee. If your posting policy requires classification splits, reclassify the entries in DualEntry after they land, or post them as draft and split on review.
  • No vendor sub-ledger links. Journal entries post without a vendor reference, so they don’t appear in AP aging or vendor-level reports.
  • Single DualEntry company per posting flow. Chargebee Entity IDs don’t split into multiple DualEntry company IDs on a single connection. Use one Chargebee posting flow per DualEntry company.
  • Early Access status. The connector is in Early Access at Chargebee; contact Chargebee Support to enable it on your account.

Troubleshoot posting errors

When a Chargebee post fails, Chargebee surfaces the error on its Post Journal page and the journal status stays in a retry state until the issue is resolved. The most common causes, with where to fix each:
ErrorLikely causeResolution
API key authentication failedThe DualEntry API key has been revoked, rotated, or copied incorrectly.Generate a fresh API key in DualEntry under Settings → Developers → API Keys and update the Chargebee connection.
Company not foundThe company_id configured in Chargebee doesn’t exist in your DualEntry organization, or the user who issued the API key doesn’t have access to that company.Confirm the company ID under Companies in DualEntry and re-enter it in Chargebee.
Account not foundA Chargebee Journal Account Mapping points at a DualEntry account that has been renamed, archived, or never existed.Open Settings → Accounting → Journal Account Mappings in Chargebee and remap the affected account to a current DualEntry GL account.
Period is lockedThe journal date falls inside a closed accounting period in DualEntry.Reopen the period under Period locking, or change the close date in Chargebee.
Once the underlying issue is fixed, choose the retry icon on the failed journal in Chargebee to repost. The retried entry posts using the same API key and company ID.

Result

After completing these steps, every Chargebee RevRec Premium period close produces a balanced journal entry in your DualEntry general ledger, dated to the Chargebee close date, with Chargebee’s journal description carried into the memo. The entry is visible under Transactions → Journal Entries in DualEntry and is included in trial balance, balance sheet, and income statement views from the moment it posts. To validate the integration is healthy after each Chargebee close, confirm three things in DualEntry: the entry exists for the expected close date, the debit and credit totals tie out to the values shown in Chargebee’s Post Journal page, and no entries are sitting in a retry state in Chargebee. If any of those checks fail, see Troubleshoot posting errors. To connect more systems, return to Integrations. To model subscription revenue end-to-end inside DualEntry instead of relying on Chargebee’s posting flow, see Revenue Recognition. To bring Chargebee’s transactional data (invoices, customers, vendor credits) into DualEntry alongside the journal entries, see the Journal entries only limitation for the recommended workaround.
Last modified on May 28, 2026