> ## Documentation Index
> Fetch the complete documentation index at: https://docs.lerian.studio/llms.txt
> Use this file to discover all available pages before exploring further.

# Generate a filing of a subscribed document

> Asks the worker to generate one filing: the binding in force is frozen into the request, the version is the one the subscription pinned, and the report comes out a DRAFT a person corrects and approves. The answer carries the fields nothing fills yet, so the blanks in the draft arrive expected rather than looking broken. Everything refusable cheaply is refused here: an inactive subscription, a missing required parameter, a binding that no longer plans.



## OpenAPI

````yaml /es/openapi/v3-current/reporter.yaml post /v1/regulatory/reports
openapi: 3.1.0
info:
  contact:
    email: contact@lerian.studio
    name: Lerian Studio
    url: https://lerian.studio
  description: >-
    This is OpenAPI documentation for Reporter. The unified reporter binary
    serves the REST API (RUN_MODE=api) and/or the RabbitMQ report-generation
    worker (RUN_MODE=worker); RUN_MODE=all runs both in one process for local
    development. All REST endpoints documented here serve only when RUN_MODE=api
    or all (port :4005); the worker (port :4006) exposes health/readyz/version
    only.
  license:
    name: Lerian Studio General License
  title: Midaz Reporter API
  version: 4.0.0
servers:
  - url: https://reporter.sandbox.lerian.net
security:
  - BearerAuth: []
tags:
  - description: Generated report instances and their lifecycle.
    name: Reports
  - description: Reusable report definitions.
    name: Templates
  - description: Interactive construction of report templates.
    name: Template Builder
  - description: Scheduled report due-date tracking.
    name: Deadlines
  - description: Configured inputs that feed report data.
    name: Data Sources
  - description: Aggregated reporting metrics.
    name: Metrics
  - description: Published business event catalog and delivery policies.
    name: Streaming
paths:
  /v1/regulatory/reports:
    post:
      tags:
        - Regulatory Reports
      summary: Generate a filing of a subscribed document
      description: >-
        Asks the worker to generate one filing: the binding in force is frozen
        into the request, the version is the one the subscription pinned, and
        the report comes out a DRAFT a person corrects and approves. The answer
        carries the fields nothing fills yet, so the blanks in the draft arrive
        expected rather than looking broken. Everything refusable cheaply is
        refused here: an inactive subscription, a missing required parameter, a
        binding that no longer plans.
      operationId: createRegulatoryReport
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateRegulatoryReportHumaInputBody'
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RegulatoryReportRequested'
          description: Created
        '400':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Detail'
          description: Bad Request
        '401':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Detail'
          description: Unauthorized
        '403':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Detail'
          description: Forbidden
        '404':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Detail'
          description: Not Found
        '500':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Detail'
          description: Internal Server Error
components:
  schemas:
    CreateRegulatoryReportHumaInputBody:
      additionalProperties: false
      properties:
        parameters:
          additionalProperties:
            type: string
          description: >-
            Generation parameters, keyed by name as the contract declares them.
            A parameter the contract does not declare is refused. At most 50
            parameters, each value at most 512 characters.
          examples:
            - dataBase: 2026-03
          maxProperties: 50
          type: object
        subscriptionId:
          description: Subscription this filing is generated under.
          examples:
            - 00000000-0000-0000-0000-000000000000
          type: string
      required:
        - subscriptionId
      type: object
    RegulatoryReportRequested:
      additionalProperties: false
      properties:
        openGaps:
          items:
            $ref: '#/components/schemas/Gap'
          type:
            - array
            - 'null'
        report:
          $ref: '#/components/schemas/Report'
      required:
        - report
        - openGaps
      type: object
    Detail:
      properties:
        code:
          description: >-
            Stable, machine-readable domain error code scoped to the emitting
            service (format: <SERVICE>-NNNN).
          type: string
        detail:
          description: >-
            A human-readable explanation specific to this occurrence of the
            problem.
          examples:
            - Property foo is required but is missing.
          type: string
        errors:
          description: Optional list of individual error details
          examples:
            - - location: body.templateId
                message: expected string to match 'uuid' format
                value: not-a-uuid
          items:
            $ref: '#/components/schemas/ErrorDetail'
          type:
            - array
            - 'null'
        instance:
          description: >-
            A URI reference that identifies the specific occurrence of the
            problem.
          examples:
            - https://example.com/error-log/abc123
          format: uri
          type: string
        status:
          description: HTTP status code
          examples:
            - 400
          format: int64
          type: integer
        title:
          description: >-
            A short, human-readable summary of the problem type. This value
            should not change between occurrences of the error.
          examples:
            - Bad Request
          type: string
        type:
          default: about:blank
          description: A URI reference to human-readable documentation for the error.
          examples:
            - https://example.com/errors/example
          format: uri
          type: string
        upstream:
          $ref: '#/components/schemas/Upstream'
          description: >-
            RFC 9457 extension member: the error a proxied third-party provider
            reported. Absent unless the emitting service explicitly surfaced
            one.
      type: object
    Gap:
      additionalProperties: false
      properties:
        field:
          description: Position in the contract the draft cannot fill, as "dataset.field".
          examples:
            - saldos_cosif.valor
          type: string
        reason:
          description: What the person completing the draft is told about this position.
          examples:
            - a consulta mapeada não devolve esta coluna
          type: string
        required:
          description: >-
            True when the document requires this position, which is what stops
            the draft being approved or downloaded.
          type: boolean
      required:
        - field
        - reason
        - required
      type: object
    Report:
      properties:
        allInstitutions:
          description: >-
            The caller chose every institution, so the report read every
            institution's rows unscoped.
          examples:
            - false
          type: boolean
        approvedAt:
          description: When the report was approved, when it was.
          examples:
            - '2026-03-12T10:00:00Z'
          format: date-time
          type: string
        approvedBy:
          description: >-
            Who approved it, as the Access Manager subject identifier the bearer
            token named. Absent until approval; never blank on a Final, because
            an approval whose actor the request did not identify is refused.
          examples:
            - 9c1d7e34-2b6a-4f81-90a3-5e7f8d0a1b2c
          type: string
        completedAt:
          description: Time when report generation completed, when available.
          examples:
            - '2026-01-31T15:04:05Z'
          format: date-time
          type:
            - string
            - 'null'
        correctedAt:
          description: When the draft was last corrected, when it was.
          examples:
            - '2026-03-12T09:40:00Z'
          format: date-time
          type: string
        correctedBy:
          description: >-
            Who last corrected it, as the Access Manager subject identifier the
            bearer token named. Absent until the first correction; never blank
            on a report that has one, because a correction whose actor the
            request did not identify is refused.
          examples:
            - 3f9a1c2e-0f5b-4d9a-9b8e-1a2b3c4d5e6f
          type: string
        createdAt:
          description: Time when the report was created.
          examples:
            - '2026-01-31T15:00:00Z'
          format: date-time
          type: string
        deletedAt:
          description: Time when the report was soft-deleted, when applicable.
          examples:
            - '2026-02-01T09:00:00Z'
          format: date-time
          type:
            - string
            - 'null'
        documentId:
          description: Curated document this report generates.
          examples:
            - br.bcb.cadoc-4010
          type: string
        documentVersion:
          description: Pinned version of the document it was generated against.
          examples:
            - 1.0.0
          type: string
        draftVersion:
          description: >-
            Version of the draft; a correction or an approval must present the
            one it read.
          examples:
            - 3
          format: int64
          type: integer
        filingPeriod:
          description: >-
            The filing period this generation is for, as the pinned contract's
            filing.period spells it: name=value of each period parameter in name
            order, joined by &. Two generations of one subscription with the
            same filingPeriod and remittance are the same filing. Absent on an
            operational report and on a filing generated before the period was
            recorded.
          examples:
            - dataBase=2026-09
          type: string
        filters:
          additionalProperties:
            additionalProperties:
              additionalProperties:
                $ref: '#/components/schemas/FilterCondition'
              type: object
            type: object
          description: Filter conditions grouped by data source, table, and field.
          examples:
            - accounts:
                account:
                  status:
                    eq:
                      - ACTIVE
          type: object
        id:
          description: Stable report identifier.
          examples:
            - 00000000-0000-0000-0000-000000000001
          type: string
        institution:
          $ref: '#/components/schemas/InstitutionSnapshot'
          description: >-
            The institution the report read for, frozen when it was requested:
            its scope is the part applied to the tables the report reads. Absent
            on a report that read for no institution.
        metadata:
          additionalProperties: {}
          description: Additional report metadata keyed by attribute name.
          examples:
            - source: ledger
              tenant: sandbox
          type: object
        openGaps:
          description: >-
            What a regulatory Draft still cannot fill, computed on read from the
            same stored state the approval refusal reads, each field flagged
            required or not. Present when a Draft is read by id; absent on a
            Final, on a non-regulatory report, and in the list endpoint, which
            does not compute it. Absent means unknown, an empty list means
            nothing is missing, and only a required gap refuses an approval.
          items:
            $ref: '#/components/schemas/Gap'
          type: array
        parameters:
          additionalProperties:
            type: string
          description: Generation parameters recorded with the report, when supplied.
          examples:
            - dataBase: 2026-08
          type: object
        provenance:
          $ref: '#/components/schemas/Provenance'
          description: >-
            Everything this report was made of, frozen — what answers, months
            later, why it says what it says.
        remittance:
          description: >-
            original or replacement, as the pinned contract's filing.remittance
            reads the generation's parameters. Absent when the contract declares
            no remittance.
          examples:
            - original
          type: string
        status:
          description: Current report generation status.
          examples:
            - Processing
          type: string
        subscriptionId:
          description: >-
            Subscription this report files under; present only on the regulatory
            flow.
          type: string
        supersededBy:
          description: >-
            The newest Draft or Final of the same subscription, filing period
            and remittance created after this report, which therefore stands in
            its place. Computed on read for regulatory filings that are not
            Final; absent when nothing supersedes the report, on a Final, on a
            filing without a recorded period and on an operational report.
          examples:
            - 00000000-0000-0000-0000-000000000003
          type: string
        templateDescription:
          description: Description copied from the template when the report was created.
          examples:
            - Monthly accounting report
          type: string
        templateId:
          description: Template snapshot source identifier.
          examples:
            - 00000000-0000-0000-0000-000000000002
          type: string
        templateOutputFormat:
          description: Output format selected for the generated report.
          examples:
            - pdf
          type: string
        updatedAt:
          description: Time when the report was last updated.
          examples:
            - '2026-01-31T15:04:05Z'
          format: date-time
          type: string
      type: object
    ErrorDetail:
      properties:
        location:
          description: >-
            Where the error occurred, e.g. 'body.items[3].tags' or
            'path.thing-id'
          examples:
            - body.templateId
          type: string
        message:
          description: Error message text
          examples:
            - expected string to match 'uuid' format
          type: string
        value:
          description: The value at the given location
          examples:
            - not-a-uuid
      type: object
    Upstream:
      additionalProperties: false
      properties:
        code:
          description: The upstream provider's own error code, verbatim.
          examples:
            - E4001
          type: string
        message:
          description: >-
            The upstream provider's own error message, verbatim (bounded, never
            its raw response body).
          examples:
            - account not found at provider
          type: string
      type: object
    FilterCondition:
      properties:
        between:
          description: Inclusive lower and upper bounds for a range match.
          examples:
            - - 100
              - 1000
          items: {}
          type:
            - array
            - 'null'
        eq:
          description: Values matched for equality; multiple values are combined with OR.
          examples:
            - - active
              - pending
          items: {}
          type:
            - array
            - 'null'
        gt:
          description: Single lower-bound value that the field must exceed.
          examples:
            - - 100
          items: {}
          type:
            - array
            - 'null'
        gte:
          description: Single inclusive lower-bound value for the field.
          examples:
            - - '2025-06-01'
          items: {}
          type:
            - array
            - 'null'
        in:
          description: Values for which the field may match any member of the list.
          examples:
            - - active
              - pending
              - suspended
          items: {}
          type:
            - array
            - 'null'
        isNull:
          description: >-
            Matches records where the field holds no value (NULL, or absent in a
            document). Carries no values and is not combined with other
            operators on the same field.
          examples:
            - true
          type: boolean
        lt:
          description: Single upper-bound value that the field must remain below.
          examples:
            - - 1000
          items: {}
          type:
            - array
            - 'null'
        lte:
          description: Single inclusive upper-bound value for the field.
          examples:
            - - '2025-06-30'
          items: {}
          type:
            - array
            - 'null'
        nin:
          description: Values excluded from matching records.
          examples:
            - - deleted
              - archived
          items: {}
          type:
            - array
            - 'null'
        notNull:
          description: Matches records where the field holds a value. Carries no values.
          examples:
            - true
          type: boolean
        notStartsWith:
          description: Text prefixes excluded from matching records. Text columns only.
          examples:
            - - '7'
              - '8'
          items: {}
          type:
            - array
            - 'null'
        startsWith:
          description: >-
            Text prefixes the field may begin with; any one of them matches.
            Text columns only.
          examples:
            - - '1'
              - '2'
          items: {}
          type:
            - array
            - 'null'
      type: object
    InstitutionSnapshot:
      additionalProperties: false
      properties:
        cnpj:
          description: CNPJ of the institution when the report was requested.
          examples:
            - 12ABC34501DE35
          type: string
        id:
          description: Identifier of the institution the report reads for.
          examples:
            - 00000000-0000-0000-0000-000000000000
          type: string
        name:
          description: Name of the institution when the report was requested.
          examples:
            - Banco Exemplo S.A.
          type: string
        scope:
          additionalProperties:
            $ref: '#/components/schemas/DataSourceScope'
          description: >-
            The part of the institution's scope the report applied: each data
            source and table it reads, keyed as the template maps them.
          type: object
      required:
        - id
        - name
        - cnpj
        - scope
      type: object
    Provenance:
      additionalProperties: false
      description: >-
        Everything a report was made of, frozen at generation. Exactly one
        origin is present: `catalog` for a filing produced from a curated
        regulatory document, `template` for one produced from a template whose
        category makes it regulatory. A record carrying both, or neither, does
        not exist — it is refused before it is stored.
      oneOf:
        - required:
            - catalog
        - required:
            - template
      properties:
        artifactChecksum:
          description: SHA-256 of the artifact, hex.
          examples:
            - e3b0c44298fc1c149afbf4c8996fb924...
          type: string
        artifactSizeBytes:
          description: Size of the stored artifact in bytes.
          examples:
            - 20480
          format: int64
          type: integer
        catalog:
          $ref: '#/components/schemas/CatalogOrigin'
        generatedAt:
          format: date-time
          type: string
        parameters:
          additionalProperties:
            type: string
          description: Generation parameters as supplied.
          examples:
            - dataBase: 2026-03
          type: object
        template:
          $ref: '#/components/schemas/TemplateOrigin'
      required:
        - generatedAt
      type: object
    DataSourceScope:
      additionalProperties: false
      properties:
        tables:
          additionalProperties:
            $ref: '#/components/schemas/TableScope'
          description: >-
            The tables of the data source the institution reads, keyed by table
            name; empty when it owns the whole data source.
          type: object
        whole:
          description: The institution owns every table of the data source.
          examples:
            - false
          type: boolean
      required:
        - whole
        - tables
      type: object
    CatalogOrigin:
      additionalProperties: false
      properties:
        bindingOrigin:
          description: >-
            Whether the report was generated from the catalog's reference
            binding, from that reference with additional sources the client
            added, or from a binding the client made.
          enum:
            - reference
            - referenceWithAdditions
            - customized
          examples:
            - reference
          type: string
        bindingVersion:
          description: Version of the binding the report was generated from.
          examples:
            - 3
          format: int64
          type: integer
        documentId:
          description: Curated document this report files.
          examples:
            - br.bcb.cadoc-4010
          type: string
        documentVersion:
          description: Catalog version of the document in force when it was generated.
          examples:
            - 1.0.0
          type: string
        institution:
          $ref: '#/components/schemas/InstitutionSnapshot'
          description: >-
            Institution the filing declares for, as frozen when it was
            requested. Absent on a filing generated before filings named an
            institution.
        subscriptionId:
          type: string
      required:
        - documentId
        - documentVersion
        - subscriptionId
        - bindingVersion
      type: object
    TemplateOrigin:
      additionalProperties: false
      properties:
        category:
          description: Template category, which is what makes the filing regulatory.
          examples:
            - cadoc4010
          type: string
        revision:
          description: Revision of the template the report was generated from.
          examples:
            - 4
          format: int64
          type: integer
        revisionChecksum:
          description: SHA-256 of the template revision used.
          examples:
            - 9f2c...
          type: string
        templateId:
          description: Template this report was generated from.
          examples:
            - 7c1e2f40-77d1-4a8a-9d0f-6b0e2c4a1111
          type: string
      required:
        - templateId
        - category
        - revision
        - revisionChecksum
      type: object
    TableScope:
      additionalProperties: false
      properties:
        conditions:
          additionalProperties:
            $ref: '#/components/schemas/FilterCondition'
          description: >-
            Conditions a row must meet to belong to the institution, keyed by
            field, in the report filter vocabulary; at least one is eq or in,
            and the others may narrow with any operator. Empty on a shared
            table.
          examples:
            - organization_id:
                eq:
                  - 00000000-0000-0000-0000-000000000000
          type: object
        shared:
          description: The table is reference data every institution reads whole.
          examples:
            - false
          type: boolean
      required:
        - shared
        - conditions
      type: object
  securitySchemes:
    BearerAuth:
      bearerFormat: JWT
      description: JWT bearer token issued by the identity provider.
      scheme: bearer
      type: http

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.