Contracts
What Is a Contract?
A contract in Sumo Ledger is a recorded obligation — a future action the system needs to carry out on a specific date. It works like a physical contract: it spells out what needs to happen, for whom, and when. The system reads these terms and triggers the associated process when the date arrives.
Contracts differ from schedulers. A scheduler runs at fixed intervals regardless of context. A contract carries specific terms — a customer, an amount, a date, and a set of parameters tied to the process it belongs to. Each contract is linked to a contract type, which determines which transaction process and stage get triggered at execution time.
Example: A customer has an EMI repayment of ₹5,000 due on the 10th of every month. This gets recorded as a contract under an EMI repayment contract type. On the 10th, the system picks up the contract and runs the fund transfer process to deduct the amount.
Batch ID
Contracts can be grouped using a Batch ID. This is useful when you need to execute a specific subset of contracts rather than all contracts of a given type.
For example, say a cashback program offers ₹500 on purchases above ₹5,000 and ₹1,000 on purchases above ₹10,000. All the ₹10,000+ purchase contracts might share one Batch ID, and the ₹5,000+ contracts might share another. When the business decides to pay out only the ₹10,000+ cashbacks first, you can execute just that batch without touching the rest.
Accessing the Contracts Module
In the left sidebar, click Contracts. This opens the Jobs dashboard — the central hub for monitoring and managing contracts.
Jobs Dashboard
The Jobs dashboard gives you a bird's-eye view of contract activity across all contract types.
Contract Execution Trend
At the top of the dashboard, three counters summarize the current state:
- Previous Contracts — contracts whose execution date has already passed within the selected date range.
- Todays Contracts — contracts due for execution today.
- Future Contracts — contracts with execution dates still ahead.
A Date Range selector (top-right) controls the time window for these numbers. Click it to choose from presets (Today, Yesterday, Last 7/30/60/90/180/365 Days) or define a Custom Period.
Summary Table
Below the counters, a table breaks down contract status by type:
| Column | Description |
|---|---|
| Contract Type | The name of the contract type (e.g., sumo). |
| Contracts Due Today | How many contracts of this type are due today. |
| Due Last 7 Days | Contracts that came due in the past week. |
| Due More than 7 days | Contracts that have been overdue for longer than a week. Values here appear in red to flag attention. |
Click on a contract type name to drill into its details.
Top-Right Action Buttons
Two action buttons sit at the top-right corner of the Jobs dashboard:
- + Add New Contract — opens the form to create a new contract.
- + Execute Contract — opens the form to trigger execution of contracts.
Contract Type Detail View
When you click a contract type from the Jobs dashboard (e.g., sumo), you enter the detail view. The breadcrumb reads Contract > sumo.
Execution Trend Chart
A bar chart shows contract execution volume over the selected date range. Each bar represents a day, and hovering over a bar shows the exact count. This helps you spot spikes, gaps, or patterns in contract activity at a glance.
The same three counters (Previous, Todays, Future) appear at the top, scoped to this specific contract type.
Tabs
Below the chart, four tabs organize the contracts by their status:
Due Today — Contracts of this type that are due for execution today. The table shows columns for Status, Executed Date, Batch Id, Remarks, and Actions.
Overdue — Contracts whose execution date has passed but that haven't been successfully executed yet. This is where failed or missed contracts land. The table displays the contract parameters alongside the status and execution date — for example, you might see columns like cheque_account_holder, beneficiary_name, first_cheque_dishonor_number, first_cheque_dishonor_amount, and other fields specific to the contract type's process. Overdue rows are highlighted to draw attention.
Future Contracts — Contracts with execution dates that haven't arrived yet. These are upcoming obligations waiting for their due date.
Execution History — A log of past execution attempts. Columns include Status, Executed Date, Batch Id, Remarks, and Actions. Use this to verify whether a contract was executed, check its outcome, and review any remarks attached to the execution.
Each tab includes Filter and Search controls, plus a View button for customizing the table layout.
Adding a New Contract
- Click + Add New Contract from either the Jobs dashboard or the contract type detail view (top-right).
- A form opens with the breadcrumb Contract > New Contract.
Base Fields
Every contract starts with three fields:
Contract Type — Select the contract type from the dropdown. This determines what process and stage will run when the contract executes.
Date — Enter the execution date in YYYY-MM-DD format (or use the calendar picker). This is when the contract becomes due.
Batch Id — Enter a batch identifier to group this contract with related ones. Use a consistent naming scheme so you can execute specific batches later (e.g., cashback_10k_jul2026, emi_batch_q3).
Dynamic Parameters
Once you select a contract type, additional fields appear below the base fields. These are the process-specific parameters defined by the contract type's associated transaction process. The fields you see will vary depending on which contract type you chose.
For example, selecting a cheque bounce contract type might show fields like required_document_1, required_document_2, followup_means, third_presentation_date, request_date, cheque_account_holder (dropdown), beneficiary_name, first_cheque_dishonor_number, first_cheque_dishonor_date, and first_cheque_dishonor_amount. A different contract type — say, one for loan disbursement — would show an entirely different set of fields relevant to that process.
Fill in all the required parameters for the selected contract type.
- Click + Create Contract (top-right) to save the contract.
The contract is now recorded and will appear in the appropriate tab (Future Contracts if the date is ahead, Due Today if it matches today's date).
Executing Contracts
Execution is the act of telling the system to process all eligible contracts — picking up every contract whose due date has arrived and running the associated transaction process for each one.
- Click + Execute Contract from the Jobs dashboard (top-right).
- A form opens with the breadcrumb Contract > Execute Contract.
Execution Fields
Contract Type — Select which contract type to execute. Only contracts of this type will be processed.
Date Less Than — Enter a cutoff date in YYYY-MM-DD format. The system will execute all contracts of the selected type whose execution date falls on or before this date. This means all matured contracts up to and including the specified date get picked up. For example, setting this to 2026-07-13 would execute every contract due on or before July 13, 2026.
Batch ID — Optionally enter a Batch ID to limit execution to a specific group of contracts. Leave this empty to execute all eligible contracts of the selected type regardless of batch.
Channel — Select the execution channel from the dropdown. This determines the pathway or medium through which the process runs.
Cancel — A toggle at the bottom. When enabled, this cancels the selected contracts instead of executing them. Use this when you need to void a batch of contracts that should no longer be processed.
- Click Execute (top-right) to start processing.
What Happens During Execution
The system picks up every contract matching your criteria (type, date, and optionally batch) and runs the associated transaction process from the stage defined in the contract type configuration.
If a contract executes successfully, it moves into the Execution History with its status and timestamp recorded. If a contract fails — due to insufficient funds, a validation error, or any other issue — it stays in a failed state. The next time you run execution for the same contract type, these failed contracts are automatically included along with any newly matured ones. You don't need to manually retry them.
Quick Reference
| Task | How |
|---|---|
| View contract overview | Sidebar → Contracts (opens Jobs dashboard) |
| Check overdue contracts | Jobs → click contract type → Overdue tab |
| View execution history | Jobs → click contract type → Execution History tab |
| Change date range | Click Date Range at the top, pick a preset or custom period |
| Add a new contract | Click + Add New Contract, select type, set date and batch, fill parameters, click + Create Contract |
| Execute contracts | Click + Execute Contract, select type, set cutoff date, optionally set batch and channel, click Execute |
| Execute a specific batch only | On the Execute Contract form, enter the Batch ID to limit execution to that group |
| Cancel contracts | On the Execute Contract form, enable the Cancel toggle before clicking Execute |