Contract
Zenskar is a flexible billing and revenue management system built to serve businesses of all sizes and across industries. It automates both invoicing and revenue recognition, enabling seamless compliance with accounting standards like ASC 606 and IFRS 15 for companies that require it. At the same time, Zenskar remains equally valuable for early-stage startups, service providers, or internal teams that may not need formal revenue recognition and instead use it purely as a robust billing engine. At the core of both workflows lies the concept of a contract, which defines the commercial terms that govern how invoices are generated and, when applicable, how revenue is recognized.
What is a contract
Definition
A contract in Zenskar is a structured digital representation of a commercial agreement between you and your customer. It defines the products or services offered, their pricing, billing cadence, applicable taxes, discounts, and other relevant commercial details. This digital contract forms the foundation for operational and financial processes such as invoicing and revenue recognition.
Why is a contract needed
A contract acts as a single source of truth for how customers are billed and how revenue is recognized. It provides clarity on:
- What is being sold
- When and how it should be billed
- The timing and pattern of revenue recognition (if applicable)
- Auditability of financial processes
Whether or not your business is subject to financial reporting standards like ASC 606 or IFRS 15, having a structured contract ensures consistency, traceability, and automation in core revenue operations.
Components of a contract in Zenskar
In Zenskar, a contract consists of two primary types of components: products and features. These components define how a commercial agreement is configured for billing and revenue recognition purposes.
Products
A product represents the core offering being delivered to the customer. This could be a subscription, a usage-based service, or a one-time item. Products define the pricing model, billing frequency, and other key attributes that determine how charges are calculated.
Features
Features provide additional commercial terms or configuration settings that modify or enhance how the contract behaves. These components are configured per contract and work together to define the financial and operational behavior of the agreement throughout its lifecycle.
graph TD Contract["📄 Contract"] Phase["📆 Phase"] Product["📦 Product"] Feature["✨ Feature (e.g., Tax, Discount)"] Contract -->|"Includes one or more"| Phase Phase -->|"Contains one or more"| Product Phase -->|"Contains one or more"| Feature style Contract fill:#90ee90,color:#000
Two workflows: billing-only and billing with revenue recognition
Zenskar is designed to support businesses at different stages of financial maturity by enabling two distinct workflows:
-
Billing-only workflow
This workflow is ideal for businesses—especially early-stage startups—that are focused on generating invoices and collecting payments. It handles pricing, billing frequency, invoicing, taxation, and discount application. Revenue recognition is triggered in the background but can be completely ignored if the business is not required to comply with accounting standards like ASC 606 or IFRS 15. -
Billing with revenue recognition workflow
This workflow is intended for businesses that are required to comply with ASC 606 and IFRS 15. In addition to managing billing operations, Zenskar automatically carries out revenue recognition based on performance obligations, transaction price allocation, and other criteria defined in the contract. The system is built to support audit-readiness and financial compliance.
Note
Zenskar activates both workflows for a contract. While revenue recognition always runs in the background, businesses that are not subject to compliance standards can choose to disregard it.
These workflows offer flexibility, allowing businesses to scale their financial operations without changing tools or workflows as compliance needs evolve.
stateDiagram-v2 [*] --> ContractCreated ContractCreated: Contract created ContractCreated --> BillingWorkflow : Billing terms defined ContractCreated --> RevenueWorkflow : Performance obligations identified BillingWorkflow: Billing workflow RevenueWorkflow: Revenue workflow %% Billing Workflow state BillingWorkflow { BillingScheduled --> InvoiceGeneratedAndSent : Invoice created and sent to customer InvoiceGeneratedAndSent --> PaymentPending : Awaiting payment PaymentPending --> PaymentReceived : Payment received PaymentReceived --> ReceiptIssued : Receipt issued ReceiptIssued --> [*] BillingScheduled: Billing scheduled InvoiceGeneratedAndSent: Invoice generated and sent PaymentPending: Payment pending PaymentReceived: Payment received ReceiptIssued: Receipt issued } %% Revenue Recognition Workflow state RevenueWorkflow { RevenuePlanCreated --> RevenueScheduleGenerated : Revenue schedule created RevenueScheduleGenerated --> RevenueRecognized : Revenue recognized on fulfilment of performance obligations RevenueRecognized --> [*] RevenuePlanCreated: Revenue plan created RevenueScheduleGenerated: Revenue schedule generated RevenueRecognized: Revenue recognized } %% Notes note right of ContractCreated Contract includes product, price, billing, and revenue terms. end note note left of RevenuePlanCreated Allocation of transaction price to performance obligations. end note note right of RevenueRecognized Revenue is recognized based on fulfilment of performance obligations. end note note right of ReceiptIssued Receipt confirms payment and closes the billing transaction. end note
Role of a contract in a billing-only workflow
For businesses that are not required to comply with ASC 606 or IFRS 15, the contract still plays a vital role:
- It defines the commercial terms used to generate invoices
- It drives the billing engine to calculate charges on a recurring or usage basis
- It allows integration with systems like CPQ and ERP for a seamless quote-to-cash process
In this workflow, revenue recognition runs passively in the background but can be ignored without consequence. Businesses typically operate on a cash or simple accrual basis and use the contract primarily to automate invoicing and reporting.
Role of a contract in a billing with revenue recognition workflow
Revenue recognition must comply with ASC 606 or IFRS 15, depending on the accounting standards applicable to the business. ASC 606 is mandatory for entities reporting under U.S. GAAP, while IFRS 15 is required for those following international financial reporting standards. These are not optional guidelines but legally binding accounting standards that ensure transparency, consistency, and audit readiness in how revenue is reported..
- Identify the contract with a customer
- Identify the performance obligations in the contract
- Determine the transaction price
- Allocate the transaction price to performance obligations
- Recognize revenue as performance obligations are satisfied
Zenskar plays a key role in automating and managing steps 2 through 5. However, the first step—identifying whether a contract exists and meets the five ASC 606 criteria—is outside the scope of Zenskar.
Once a valid contract has been identified and created in Zenskar—either manually, via API, or through integrations—Zenskar takes over and executes the downstream revenue recognition process, ensuring accurate and audit-ready financial treatment of revenue based on the contract's commercial terms.
Note
Zenskar captures and manages the commercial structure of a contract, but it does not assess its legal enforceability.
How are contracts created in Zenskar
stateDiagram-v2 [*] --> Contract_Options Contract_Options: Available options for handling contracts in Zenskar Contract_Options --> Sync_Existing_Contracts : Option 1 Sync_Existing_Contracts: Sync contracts Contract_Options --> Create_New_Contracts_Manually : Option 2 Create_New_Contracts_Manually: Create contracts manually Contract_Options --> Create_New_Contracts_API : Option 3 Create_New_Contracts_API: Create and configure contracts via Zenskar APIs Sync_Existing_Contracts --> Contracts_Available Create_New_Contracts_Manually --> Contracts_Available Create_New_Contracts_API --> Contracts_Available Contracts_Available: Your contracts are now available in Zenskar for billing and revenue management Contracts_Available --> [*] state Sync_Existing_Contracts { [*] --> Sync_In_Progress Sync_In_Progress --> Sync_Completed : Contracts synced successfully Sync_Completed --> [*] : Sync process completed Sync_In_Progress: Sync contracts from third-party systems (ERP, CRM, CPQ) using Zenskar's third-party integrations Sync_Completed: Contracts are now available in Zenskar } state Create_New_Contracts_Manually { [*] --> Contract_Creation Contract_Creation --> Contract_Ready : Contract created in Zenskar Contract_Ready --> [*] : Contract creation completed Contract_Creation: Create new contracts based on physical or electronic versions Contract_Ready: New contracts are ready for further processing } state Create_New_Contracts_API { [*] --> Contract_Creation_API Contract_Creation_API --> Contract_Ready_API : Contract created in Zenskar Contract_Ready_API --> [*] : Contract creation completed Contract_Creation_API: Create and configure contracts via Zenskar APIs Contract_Ready_API: New contracts are ready for further processing } note left of Contract_Options You can either sync existing contracts from third-party systems (ERP, CRM, or CPQ), or create new contracts based on physical contracts (hard copies) or electronic versions (PDFs). end note
Updated 3 days ago