Skip to main content

Contract Overview and It's Configurations

What Is a Contract?

A contract in Sumo Ledger represents a future obligation or scheduled action that the system needs to carry out. Think of it as a digital agreement — much like a physical contract that spells out what will happen, when, and for whom.

Contracts are not the same as schedulers, though they share a surface-level resemblance. A scheduler fires at fixed intervals regardless of context. A contract, on the other hand, holds specific terms: which customer, what amount, what action, and on what date. The system reads these terms and executes the corresponding process at the right time.

Example: A customer has an EMI repayment obligation of ₹5,000 on the 10th of every month. This agreement gets recorded as a contract: "Customer A owes ₹5,000, due on the 10th, processed via the fund transfer workflow." When the 10th arrives, the system picks up this contract and runs the associated process to deduct the amount.

What Is a Contract Type?

A Contract Type defines the category of a contract by linking it to a specific transaction process and a stage within that process. It answers two questions:

  • Which process should run? (e.g., cheque bounce handling, payday settlement, fund transfer)
  • At which stage of that process should execution begin? (e.g., input stage, fan-out stage, blacklist stage)

Every contract created in the system must belong to a contract type. The type tells the system exactly what workflow to trigger and where in that workflow to start when the contract's conditions are met.

Accessing Contract Type Configuration

  1. In the left sidebar, click Configurations at the bottom.
  2. Under General Settings, click Contract Type.
  3. The Contract Type list loads in the main area.

Viewing Contract Types

The Contract Type screen displays a table with the following columns:

ColumnDescription
CheckboxUsed for selecting one or more contract types (for bulk operations, if applicable).
NameThe label assigned to the contract type (e.g., sumo).
Process SlugThe identifier of the transaction process linked to this contract type (e.g., cheque_bounce). This is the workflow that gets triggered.
Stage SlugThe identifier of the specific stage within that process where execution starts (e.g., black_list).

Above the table, you have:

  • Search — a text field to filter contract types by name or slug.
  • Refresh — reloads the list from the server.
  • View — lets you adjust the table display settings (density, row style, visible columns), similar to other configuration screens.

Pagination controls at the bottom let you set items per page (default 100) and navigate between pages.

Creating a New Contract Type

  1. Click the + New Contract Type button in the top-right corner.

  2. A dialog titled New Contract Type appears with three fields:

    Name — Enter a descriptive label for this contract type. Pick something that makes the purpose clear at a glance (e.g., emi_repayment, loan_disbursement, cheque_clearing).

    Transaction Process — Select the process this contract type should trigger. Click the dropdown to see all available processes configured in the system. Choose the one that matches the workflow this contract type is meant to execute.

    Transaction Process Stage — Once you select a process, this dropdown populates with the stages available within that process. Pick the stage where the contract's execution should begin. The available stages will differ depending on which process you selected — each process has its own defined stages.

  3. Click Create Contract Type to save. If you change your mind, click Cancel to close the dialog without saving.

The new contract type appears in the list and can immediately be used when creating contracts elsewhere in the system.


How Contract Types Fit into the Bigger Picture

The relationship flows like this:

A contract (created under the Contracts module) holds the specific terms — the customer, the amount, the schedule. It references a contract type, which in turn points to a transaction process and a stage within that process.

When the contract's execution date arrives, the system looks up the contract type, identifies the linked process and stage, and kicks off that workflow from the specified stage. This separation keeps things clean: the contract holds the "what and when," the contract type holds the "how."

For the EMI example mentioned earlier, the setup would look like this: create a contract type named something like emi_monthly_repayment, link it to the fund transfer process at the appropriate deduction stage, and then create individual contracts for each customer referencing that contract type with their specific amounts and dates.


Quick Reference

TaskHow
View all contract typesConfigurations → Contract Type
Search for a contract typeUse the Search bar above the table
Create a new contract typeClick + New Contract Type, fill in Name, Process, and Stage, then click Create Contract Type
Refresh the listClick Refresh above the table
Apply changes to live systemClick Load Configuration in Memory (top-right of Configuration page)