Skip to main content
Multi-contract usage import loads usage for many revenue contracts from a single CSV or XLSX file. Each row maps to a contract and item (SKU), so you no longer open contracts one by one to record period usage or overages.

Prerequisites

Before you import, prepare identifiers and permissions:
  • Confirm your role can run bulk imports.
  • Ensure each target contract already has a usage-based performance obligation for the item you will reference.
  • Prefer exporting contracts and performance obligations first so your file uses DualEntry contract numbers (for example, RC-#####) and matching item/SKU values.

Export contracts and performance obligations

From Accounting > Revenue Recognition > Contracts, use the list export control to build a mapping workbook before you author usage rows. Apply the same filters you want in the file (company, customer, status, recognition strategy, and related list filters), including selected rows when you only need a subset. Choose the export that matches your file:
  • Export contracts: one row per contract, including the contract ID.
  • Export performance obligations: one row per obligation, including both the contract ID and the performance obligation ID.
Exports run as background jobs and appear in the Exports panel when ready. The performance obligation export is the mapping source for multi-contract usage files when you need both the contract and the usage obligation identifiers. Keep the exported IDs stable in your usage file so validation can resolve each row to exactly one usage obligation. If you re-export later with different filters, replace the mapping sheet rather than mixing IDs from two exports, which can point the same SKU at the wrong contract.

Build the usage file

Create a CSV or XLSX with one usage event per row. Map columns to the multi-contract usage fields DualEntry accepts. The table below lists the core fields DualEntry expects when you map the file. Field labels below are the conceptual destinations; your file headers can differ as long as you map them in the import wizard. DualEntry rejects a row when the contract is missing, the SKU matches zero or multiple usage obligations on that contract, or the obligation is not usage-based.

Run the bulk import

Use the standard bulk import wizard to validate and post the file:
  1. Open Workflows > Bulk Imports and choose New Import.
  2. Select the Multi-Contract Usage record type.
  3. Upload your file and map columns to the destination fields.
  4. Validate the file. Fix unmatched contracts, SKUs, or integrity errors before you post.
  5. Confirm the import.
DualEntry groups rows by contract and writes them through the same usage save path used on an individual contract. Pricing (including tiered usage pricing), recognition, and usage invoicing follow each obligation’s existing configuration. Successful rows create or update usage on their contracts. Failed rows remain out of the ledger and appear in the import error report with the source row number and reason. After a successful import, open affected contracts to review usage, recognition, and invoices. If an earlier usage edit leaves sibling rows out of date under tiered pricing, run the reconcile dry-run on those contracts before you close the period. For mapping failures and retry steps, see How to Fix a Failed Bulk Import.

Next steps

Last modified on September 1, 2026