---
updatedAt: 2026-08-06T14:06:37.000Z
agentTools:
  projectIndex: https://docs.noves.fi/llms.txt
---

# Create an accounting report

Starts an accounting report for the signed-in account. Use the returned job URL to check progress.

# OpenAPI definition

```json
{
  "openapi": "3.0.4",
  "info": {
    "title": "Noves App API",
    "description": "Access Canton updates, party data, rewards, accounting data, and other Noves App features.",
    "version": "v1"
  },
  "paths": {
    "/api/v2/accounting/rollupJobs": {
      "post": {
        "tags": [
          "Accounting"
        ],
        "summary": "Create an accounting report",
        "description": "Starts an accounting report for the signed-in account. Use the returned job URL to check progress.",
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Required UUID used to replay this exact submission safely.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "jwt",
            "in": "header",
            "description": "JWT used to authenticate the accounting-data owner.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "jwt",
            "in": "query",
            "description": "Same JWT as the jwt header; use the header for normal clients.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "nodeId",
            "in": "query",
            "description": "Configured validator-node identifier. Defaults to the deployment's default node.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "nodeId",
            "in": "header",
            "description": "Configured validator-node identifier; the query value takes precedence.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": {
                  "$ref": "#/components/schemas/System.Text.Json.Nodes.JsonNode"
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "202": {
            "description": "Accepted",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CantonDataApp.Api.AccountingEndpoints.RollupJobResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/CantonDataApp.Api.AccountingEndpoints.CodedErrorResponse"
                    },
                    {
                      "$ref": "#/components/schemas/CantonDataApp.Api.ApiErrorResponse"
                    }
                  ]
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CantonDataApp.Api.ApiErrorResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CantonDataApp.Api.ApiErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CantonDataApp.Api.ApiErrorResponse"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CantonDataApp.Api.AccountingEndpoints.CodedErrorResponse"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Content",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CantonDataApp.Api.ApiErrorResponse"
                }
              }
            }
          },
          "429": {
            "description": "Too Many Requests",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CantonDataApp.Api.AccountingEndpoints.CodedErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CantonDataApp.Api.ApiErrorResponse"
                }
              }
            }
          },
          "501": {
            "description": "Not Implemented",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CantonDataApp.Api.AccountingEndpoints.CodedErrorResponse"
                }
              }
            }
          },
          "503": {
            "description": "Service Unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "oneOf": [
                        {
                          "$ref": "#/components/schemas/CantonDataApp.Api.AccountingEndpoints.CodedErrorResponse"
                        },
                        {
                          "$ref": "#/components/schemas/CantonDataApp.Database.StartupStatusResponse"
                        }
                      ]
                    },
                    {
                      "$ref": "#/components/schemas/CantonDataApp.Api.QuarantinedNodeResponse"
                    }
                  ]
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "CantonDataApp.Api.AccountingEndpoints.CodedErrorResponse": {
        "type": "object",
        "properties": {
          "code": {
            "type": "string",
            "nullable": true
          },
          "error": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CantonDataApp.Api.AccountingEndpoints.RollupJobResponse": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "nullable": true
          },
          "party": {
            "type": "string",
            "nullable": true
          },
          "fromMonth": {
            "type": "string",
            "nullable": true
          },
          "toMonth": {
            "type": "string",
            "nullable": true
          },
          "granularity": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "type": "string",
            "nullable": true
          },
          "periodsIncluded": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "rollupRowCount": {
            "type": "integer",
            "format": "int64"
          },
          "createdBy": {
            "type": "string",
            "nullable": true
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "completedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "error": {
            "type": "string",
            "nullable": true
          },
          "errorCode": {
            "type": "string",
            "nullable": true
          },
          "stage": {
            "type": "string",
            "nullable": true
          },
          "attemptCount": {
            "type": "integer",
            "format": "int32"
          },
          "processedRows": {
            "type": "integer",
            "format": "int64"
          },
          "totalRows": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "progressUpdatedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "retryable": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "CantonDataApp.Api.ApiErrorResponse": {
        "type": "object",
        "properties": {
          "error": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CantonDataApp.Api.QuarantinedNodeResponse": {
        "type": "object",
        "properties": {
          "error": {
            "type": "string",
            "nullable": true
          },
          "nodeId": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "type": "string",
            "nullable": true
          },
          "network": {
            "type": "string",
            "nullable": true
          },
          "detail": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CantonDataApp.Database.LifecycleIndexStatusResponse": {
        "type": "object",
        "properties": {
          "nodeId": {
            "type": "string",
            "nullable": true
          },
          "definitionFingerprint": {
            "type": "string",
            "nullable": true
          },
          "ready": {
            "type": "boolean"
          },
          "cursor": {
            "type": "integer",
            "format": "int64"
          },
          "remainingSourceRows": {
            "type": "integer",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "CantonDataApp.Database.ReplayNodeStatus": {
        "type": "object",
        "properties": {
          "nodeId": {
            "type": "string",
            "nullable": true
          },
          "currentOffset": {
            "type": "integer",
            "format": "int64"
          },
          "targetOffset": {
            "type": "integer",
            "format": "int64"
          },
          "status": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CantonDataApp.Database.StartupReplayResponse": {
        "type": "object",
        "properties": {
          "nodes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CantonDataApp.Database.ReplayNodeStatus"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CantonDataApp.Database.StartupStatusResponse": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string",
            "nullable": true
          },
          "phase": {
            "type": "string",
            "nullable": true
          },
          "phaseNumber": {
            "type": "integer",
            "format": "int32"
          },
          "totalPhases": {
            "type": "integer",
            "format": "int32"
          },
          "startedAt": {
            "type": "string",
            "nullable": true
          },
          "elapsedSeconds": {
            "type": "integer",
            "format": "int32"
          },
          "error": {
            "type": "string",
            "nullable": true
          },
          "schemaVersion": {
            "type": "string",
            "nullable": true
          },
          "targetSchemaVersion": {
            "type": "string",
            "nullable": true
          },
          "bootstrapSource": {
            "type": "string",
            "nullable": true
          },
          "bootstrapVersion": {
            "type": "string",
            "nullable": true
          },
          "pendingMigrations": {
            "type": "integer",
            "format": "int32"
          },
          "lastMigrationDurationMs": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "dataMigrations": {
            "type": "array",
            "items": {},
            "nullable": true
          },
          "replay": {
            "$ref": "#/components/schemas/CantonDataApp.Database.StartupReplayResponse"
          },
          "lifecycleIndexes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CantonDataApp.Database.LifecycleIndexStatusResponse"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Microsoft.AspNetCore.Mvc.ProblemDetails": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "nullable": true
          },
          "title": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "detail": {
            "type": "string",
            "nullable": true
          },
          "instance": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": {}
      },
      "System.Text.Json.Nodes.JsonNode": {
        "type": "object",
        "properties": {
          "options": {
            "$ref": "#/components/schemas/System.Text.Json.Nodes.JsonNodeOptions"
          },
          "parent": {
            "$ref": "#/components/schemas/System.Text.Json.Nodes.JsonNode"
          },
          "root": {
            "$ref": "#/components/schemas/System.Text.Json.Nodes.JsonNode"
          }
        },
        "additionalProperties": false
      },
      "System.Text.Json.Nodes.JsonNodeOptions": {
        "type": "object",
        "properties": {
          "propertyNameCaseInsensitive": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      }
    }
  },
  "tags": [
    {
      "name": "Accounting",
      "description": "Configure accounting rollups, exports, and integrations."
    }
  ]
}
```