---
title: "Create a Report Schedule"
method: POST
path: "/reportSchedules"
tags: ["Report Scheduling"]
---

# Create a Report Schedule

`POST /reportSchedules`

## Request

- Base URL: `https://eu-west-1.api.silverflow.com/v1`
- URL: `https://eu-west-1.api.silverflow.com/v1/reportSchedules`
- Auth: one of:
  - HTTP basic
  - HTTP bearer
- TypeScript: <https://skmtc.dev/silverflow/apis/silverflow-api/docs/reportSchedules/post.ts> (a function with typed inputs; its response is checked against the schema)

Creates a new report schedule for generating various types of reports.

It requires the `reportSchedules:Create` permission in the API key.

Please check our detailed reporting guide including best practices integration and other considerations [here](https://docs.silverflow.com/guides/scheduling-reports).

The date range for the report is based on the `trigger` configuration and uses the standard UTC format for all times and timestamps.
However, to ensure completeness, the report schedule may execute with a slight delay.
This delay allows the system to capture any last-minute records and ensure accurate and comprehensive data.

Once the report schedule is executed, a new report will be created, and can be retrieved by calling the [List Reports](#operation/listReport) or [Get Report](#operation/getReport) endpoint.

To be notified of the creation of these reports, you can subscribe to the reports events using the `eventSource` `https://silverflow.com/reports` on [`POST /v1/eventSubscriptions`](#operation/createEventSubscription).

When a scheduled report is completed, if it has one of more related distribution objects, it will trigger the distribution to the specified targets.

## Request body

- union
  - object: The base report scheduling fields
    - `reportName` 'SchemeFeeDetails', required: The name of the report.
    - `mimeType` 'application/json' | 'application/x-ndjson' | 'text/csv', required: The mime-type in which the scheme fee details report is available.
    - `trigger` union, required: The trigger conditions for the scheme fee details report schedule.
      - object: Configuration for hourly-triggered reports.
        - `type` 'interval', required: A trigger type, which is based on a time-interval.
        - `cadence` 'hourly', required: The cadence of this interval trigger.
      - object: Configuration for daily-triggered reports, specifying the hour.
        - `type` 'interval', required: A trigger type, which is based on a time-interval.
        - `cadence` 'daily', required: The cadence of this interval trigger.
        - `hour` integer, required: The hour of the day (in 24-hour format) for the report trigger. - Must be between 0 and 23.
    - `reference` string: Unique ID used to identify a report.
    - `distributions` DistributionKey[]: The distribution objects' keys. If passed, the report will be distributed when generation is completed.
  - object: The base report scheduling fields
    - `reportName` 'NetworkFundsTransfers', required: The name of the report.
    - `mimeType` 'text/csv' | 'application/json' | 'application/x-ndjson', required: The mime-type in which the network funds transfers report is available.
    - `trigger` NetworkFundsTransfersTrigger, required: Configuration for daily-triggered reports, specifying the hour.
      - `type` 'interval', required: A trigger type, which is based on a time-interval.
      - `cadence` 'daily', required: The cadence of this interval trigger.
      - `hour` integer, required: The hour of the day (in 24-hour format) for the report trigger. - Must be between 0 and 23.
    - `reference` string: Unique ID used to identify a report.
    - `distributions` DistributionKey[]: The distribution objects' keys. If passed, the report will be distributed when generation is completed.
  - object: The base report scheduling fields
    - `reportName` 'MerchantPayout', required: The name of the report.
    - `mimeType` 'text/csv', required: The mime-type in which the MerchantPayout report is available.
    - `trigger` MerchantPayoutScheduleTrigger, required: Configuration for daily-triggered reports, specifying the hour.
      - `type` 'interval', required: A trigger type, which is based on a time-interval.
      - `cadence` 'daily', required: The cadence of this interval trigger.
      - `hour` integer, required: The hour of the day (in 24-hour format) for the report trigger. - Must be between 0 and 23.
    - `parameters` MerchantPayoutReportScheduleParameters, required: The parameters used for creating a merchant payout report schedule.
      - `type` 'Standardized', required
    - `reference` string: Unique ID used to identify a report.
    - `distributions` DistributionKey[]: The distribution objects' keys. If passed, the report will be distributed when generation is completed.
  - object: The base report scheduling fields
    - `reportName` 'ReconciliationDetails', required: The name of the report.
    - `mimeType` 'text/csv' | 'application/json' | 'application/x-ndjson', required: The mime-type in which the reconciliation details report is available.
    - `trigger` union, required: The trigger conditions for the reconciliation details schedule.
      - object: Configuration for hourly-triggered reports.
        - `type` 'interval', required: A trigger type, which is based on a time-interval.
        - `cadence` 'hourly', required: The cadence of this interval trigger.
      - object: Configuration for daily-triggered reports, specifying the hour.
        - `type` 'interval', required: A trigger type, which is based on a time-interval.
        - `cadence` 'daily', required: The cadence of this interval trigger.
        - `hour` integer, required: The hour of the day (in 24-hour format) for the report trigger. - Must be between 0 and 23.
    - `reference` string: Unique ID used to identify a report.
    - `distributions` DistributionKey[]: The distribution objects' keys. If passed, the report will be distributed when generation is completed.
  - object: The base report scheduling fields
    - `reportName` 'Charges', required: The name of the report.
    - `mimeType` 'text/csv', required: The mime-type in which the Charges report is available.
    - `trigger` union, required: The trigger conditions for the Charges report schedule.
      - object: Configuration for hourly-triggered reports.
        - `type` 'interval', required: A trigger type, which is based on a time-interval.
        - `cadence` 'hourly', required: The cadence of this interval trigger.
      - object: Configuration for daily-triggered reports, specifying the hour.
        - `type` 'interval', required: A trigger type, which is based on a time-interval.
        - `cadence` 'daily', required: The cadence of this interval trigger.
        - `hour` integer, required: The hour of the day (in 24-hour format) for the report trigger. - Must be between 0 and 23.
    - `reference` string: Unique ID used to identify a report.
    - `distributions` DistributionKey[]: The distribution objects' keys. If passed, the report will be distributed when generation is completed.
  - object: The base report scheduling fields
    - `reportName` 'DisputeHistoryEvents', required: The name of the report.
    - `mimeType` 'text/csv' | 'application/json' | 'application/x-ndjson', required: The mime-type in which the disputes report is available.
    - `trigger` union, required: The trigger conditions for the Dispute History Events report schedule.
      - object: Configuration for hourly-triggered reports.
        - `type` 'interval', required: A trigger type, which is based on a time-interval.
        - `cadence` 'hourly', required: The cadence of this interval trigger.
      - object: Configuration for daily-triggered reports, specifying the hour.
        - `type` 'interval', required: A trigger type, which is based on a time-interval.
        - `cadence` 'daily', required: The cadence of this interval trigger.
        - `hour` integer, required: The hour of the day (in 24-hour format) for the report trigger. - Must be between 0 and 23.
    - `reference` string: Unique ID used to identify a report.
    - `distributions` DistributionKey[]: The distribution objects' keys. If passed, the report will be distributed when generation is completed.
  - object: The base report scheduling fields
    - `reportName` 'FraudNotifications', required: The name of the report.
    - `mimeType` 'text/csv' | 'application/json' | 'application/x-ndjson', required: The mime-type in which the fraud notifications report is available.
    - `trigger` union, required: The trigger conditions for the Fraud Notifications report schedule.
      - object: Configuration for hourly-triggered reports.
        - `type` 'interval', required: A trigger type, which is based on a time-interval.
        - `cadence` 'hourly', required: The cadence of this interval trigger.
      - object: Configuration for daily-triggered reports, specifying the hour.
        - `type` 'interval', required: A trigger type, which is based on a time-interval.
        - `cadence` 'daily', required: The cadence of this interval trigger.
        - `hour` integer, required: The hour of the day (in 24-hour format) for the report trigger. - Must be between 0 and 23.
    - `reference` string: Unique ID used to identify a report.
    - `distributions` DistributionKey[]: The distribution objects' keys. If passed, the report will be distributed when generation is completed.
  - object: The base report scheduling fields
    - `reportName` 'SettlementDetails', required: The name of the report.
    - `mimeType` 'text/csv' | 'application/x-ndjson', required: The mime-type in which the SettlementDetails report is available.
    - `trigger` union, required: The trigger conditions for the SettlementDetails schedule.
      - object: Configuration for hourly-triggered reports.
        - `type` 'interval', required: A trigger type, which is based on a time-interval.
        - `cadence` 'hourly', required: The cadence of this interval trigger.
      - object: Configuration for daily-triggered reports, specifying the hour.
        - `type` 'interval', required: A trigger type, which is based on a time-interval.
        - `cadence` 'daily', required: The cadence of this interval trigger.
        - `hour` integer, required: The hour of the day (in 24-hour format) for the report trigger. - Must be between 0 and 23.
    - `reference` string: Unique ID used to identify a report.
    - `distributions` DistributionKey[]: The distribution objects' keys. If passed, the report will be distributed when generation is completed.
  - object: The base report scheduling fields
    - `reportName` 'AmmfReport', required: The name of the report.
    - `trigger` AmmfReportScheduleTrigger, required: Configuration for monthly-triggered reports, specifying the day of the month and hour the report should be scheduled.
      - `type` 'interval', required: A trigger type, which is based on a time-interval.
      - `cadence` 'monthly', required
      - `day` integer, required: The day of the month for the report trigger. - Must be between 1 and 28.
      - `hour` integer, required: The hour of the day (in 24-hour format) for the report trigger. - Must be between 0 and 23.
    - `parameters` AMMFReportScheduleParameters, required: The parameters used for creating a merchant payout report schedule.
      - `acquirerIdCode` string, required: the Acquirer Institution ID. For Visa, this is the BIC. It should be a 6-digit numeric value.
      - `directSubmission` boolean: set to `true` to indicate that the AMMF report should be directly submitted to Visa's AMMF service
    - `reference` string: Unique ID used to identify a report.
    - `mimeType` 'application/vnd.ms-excel', required: The mime-type in which the AMMF Report is available.
    - `distributions` DistributionKey[]: The distribution objects' keys. If passed, the report will be distributed when generation is completed.

## Response `201`

The newly created report schedule object

- union
  - object
    - `reportName` 'SchemeFeeDetails', required: The name of the report.
    - `key` string, required: Uniquely identifies a report schedule object
    - `status` 'active' | 'archived', required: Current state of the report schedule. - **active**: Schedule is currently enabled and will trigger as per configuration. - **archived**: Schedule is disabled and will not trigger.
    - `agentKey` string, required: Uniquely identifies an Agent
    - `created` string, date-time, required: The date and time this object was created
    - `lastModified` string, date-time: The date and time this object was last modified
    - `version` integer, required: The version of this object
    - `reference` string: Unique ID used to identify a report.
    - `distributions` DistributionKey[]: The distribution objects' keys. If passed, the report will be distributed when generation is completed.
    - `mimeType` 'application/json' | 'application/x-ndjson' | 'text/csv', required: The mime-type in which the scheme fee details report is available.
    - `trigger` union, required: The trigger conditions for the scheme fee details report schedule.
      - object: Configuration for hourly-triggered reports.
        - `type` 'interval', required: A trigger type, which is based on a time-interval.
        - `cadence` 'hourly', required: The cadence of this interval trigger.
      - object: Configuration for daily-triggered reports, specifying the hour.
        - `type` 'interval', required: A trigger type, which is based on a time-interval.
        - `cadence` 'daily', required: The cadence of this interval trigger.
        - `hour` integer, required: The hour of the day (in 24-hour format) for the report trigger. - Must be between 0 and 23.
  - object
    - `reportName` 'NetworkFundsTransfers', required: The name of the report.
    - `key` string, required: Uniquely identifies a report schedule object
    - `status` 'active' | 'archived', required: Current state of the report schedule. - **active**: Schedule is currently enabled and will trigger as per configuration. - **archived**: Schedule is disabled and will not trigger.
    - `agentKey` string, required: Uniquely identifies an Agent
    - `created` string, date-time, required: The date and time this object was created
    - `lastModified` string, date-time: The date and time this object was last modified
    - `version` integer, required: The version of this object
    - `reference` string: Unique ID used to identify a report.
    - `distributions` DistributionKey[]: The distribution objects' keys. If passed, the report will be distributed when generation is completed.
    - `mimeType` 'text/csv' | 'application/json' | 'application/x-ndjson', required: The mime-type in which the network funds transfers report is available.
    - `trigger` NetworkFundsTransfersTrigger, required: Configuration for daily-triggered reports, specifying the hour.
      - `type` 'interval', required: A trigger type, which is based on a time-interval.
      - `cadence` 'daily', required: The cadence of this interval trigger.
      - `hour` integer, required: The hour of the day (in 24-hour format) for the report trigger. - Must be between 0 and 23.
  - object
    - `reportName` 'MerchantPayout', required: The name of the report.
    - `key` string, required: Uniquely identifies a report schedule object
    - `status` 'active' | 'archived', required: Current state of the report schedule. - **active**: Schedule is currently enabled and will trigger as per configuration. - **archived**: Schedule is disabled and will not trigger.
    - `agentKey` string, required: Uniquely identifies an Agent
    - `created` string, date-time, required: The date and time this object was created
    - `lastModified` string, date-time: The date and time this object was last modified
    - `version` integer, required: The version of this object
    - `reference` string: Unique ID used to identify a report.
    - `distributions` DistributionKey[]: The distribution objects' keys. If passed, the report will be distributed when generation is completed.
    - `mimeType` 'text/csv', required: The mime-type in which the MerchantPayout report is available.
    - `trigger` MerchantPayoutScheduleTrigger, required: Configuration for daily-triggered reports, specifying the hour.
      - `type` 'interval', required: A trigger type, which is based on a time-interval.
      - `cadence` 'daily', required: The cadence of this interval trigger.
      - `hour` integer, required: The hour of the day (in 24-hour format) for the report trigger. - Must be between 0 and 23.
    - `parameters` MerchantPayoutReportScheduleParameters, required: The parameters used for creating a merchant payout report schedule.
      - `type` 'Standardized', required
  - object
    - `reportName` 'ReconciliationDetails', required: The name of the report.
    - `key` string, required: Uniquely identifies a report schedule object
    - `status` 'active' | 'archived', required: Current state of the report schedule. - **active**: Schedule is currently enabled and will trigger as per configuration. - **archived**: Schedule is disabled and will not trigger.
    - `agentKey` string, required: Uniquely identifies an Agent
    - `created` string, date-time, required: The date and time this object was created
    - `lastModified` string, date-time: The date and time this object was last modified
    - `version` integer, required: The version of this object
    - `reference` string: Unique ID used to identify a report.
    - `distributions` DistributionKey[]: The distribution objects' keys. If passed, the report will be distributed when generation is completed.
    - `mimeType` 'text/csv' | 'application/json' | 'application/x-ndjson', required: The mime-type in which the reconciliation details report is available.
    - `trigger` union, required: The trigger conditions for the reconciliation details schedule.
      - object: Configuration for hourly-triggered reports.
        - `type` 'interval', required: A trigger type, which is based on a time-interval.
        - `cadence` 'hourly', required: The cadence of this interval trigger.
      - object: Configuration for daily-triggered reports, specifying the hour.
        - `type` 'interval', required: A trigger type, which is based on a time-interval.
        - `cadence` 'daily', required: The cadence of this interval trigger.
        - `hour` integer, required: The hour of the day (in 24-hour format) for the report trigger. - Must be between 0 and 23.
  - object
    - `reportName` 'Charges', required: The name of the report.
    - `key` string, required: Uniquely identifies a report schedule object
    - `status` 'active' | 'archived', required: Current state of the report schedule. - **active**: Schedule is currently enabled and will trigger as per configuration. - **archived**: Schedule is disabled and will not trigger.
    - `agentKey` string, required: Uniquely identifies an Agent
    - `created` string, date-time, required: The date and time this object was created
    - `lastModified` string, date-time: The date and time this object was last modified
    - `version` integer, required: The version of this object
    - `reference` string: Unique ID used to identify a report.
    - `distributions` DistributionKey[]: The distribution objects' keys. If passed, the report will be distributed when generation is completed.
    - `mimeType` 'text/csv', required: The mime-type in which the Charges report is available.
    - `trigger` union, required: The trigger conditions for the Charges report schedule.
      - object: Configuration for hourly-triggered reports.
        - `type` 'interval', required: A trigger type, which is based on a time-interval.
        - `cadence` 'hourly', required: The cadence of this interval trigger.
      - object: Configuration for daily-triggered reports, specifying the hour.
        - `type` 'interval', required: A trigger type, which is based on a time-interval.
        - `cadence` 'daily', required: The cadence of this interval trigger.
        - `hour` integer, required: The hour of the day (in 24-hour format) for the report trigger. - Must be between 0 and 23.
  - object
    - `reportName` 'DisputeHistoryEvents', required: The name of the report.
    - `key` string, required: Uniquely identifies a report schedule object
    - `status` 'active' | 'archived', required: Current state of the report schedule. - **active**: Schedule is currently enabled and will trigger as per configuration. - **archived**: Schedule is disabled and will not trigger.
    - `agentKey` string, required: Uniquely identifies an Agent
    - `created` string, date-time, required: The date and time this object was created
    - `lastModified` string, date-time: The date and time this object was last modified
    - `version` integer, required: The version of this object
    - `reference` string: Unique ID used to identify a report.
    - `distributions` DistributionKey[]: The distribution objects' keys. If passed, the report will be distributed when generation is completed.
    - `mimeType` 'text/csv' | 'application/json' | 'application/x-ndjson', required: The mime-type in which the disputes report is available.
    - `trigger` union, required: The trigger conditions for the Dispute History Events report schedule.
      - object: Configuration for hourly-triggered reports.
        - `type` 'interval', required: A trigger type, which is based on a time-interval.
        - `cadence` 'hourly', required: The cadence of this interval trigger.
      - object: Configuration for daily-triggered reports, specifying the hour.
        - `type` 'interval', required: A trigger type, which is based on a time-interval.
        - `cadence` 'daily', required: The cadence of this interval trigger.
        - `hour` integer, required: The hour of the day (in 24-hour format) for the report trigger. - Must be between 0 and 23.
  - object
    - `reportName` 'FraudNotifications', required: The name of the report.
    - `key` string, required: Uniquely identifies a report schedule object
    - `status` 'active' | 'archived', required: Current state of the report schedule. - **active**: Schedule is currently enabled and will trigger as per configuration. - **archived**: Schedule is disabled and will not trigger.
    - `agentKey` string, required: Uniquely identifies an Agent
    - `created` string, date-time, required: The date and time this object was created
    - `lastModified` string, date-time: The date and time this object was last modified
    - `version` integer, required: The version of this object
    - `reference` string: Unique ID used to identify a report.
    - `distributions` DistributionKey[]: The distribution objects' keys. If passed, the report will be distributed when generation is completed.
    - `mimeType` 'text/csv' | 'application/json' | 'application/x-ndjson', required: The mime-type in which the fraud notifications report is available.
    - `trigger` union, required: The trigger conditions for the Fraud Notifications report schedule.
      - object: Configuration for hourly-triggered reports.
        - `type` 'interval', required: A trigger type, which is based on a time-interval.
        - `cadence` 'hourly', required: The cadence of this interval trigger.
      - object: Configuration for daily-triggered reports, specifying the hour.
        - `type` 'interval', required: A trigger type, which is based on a time-interval.
        - `cadence` 'daily', required: The cadence of this interval trigger.
        - `hour` integer, required: The hour of the day (in 24-hour format) for the report trigger. - Must be between 0 and 23.
  - object
    - `reportName` 'SettlementDetails', required: The name of the report.
    - `key` string, required: Uniquely identifies a report schedule object
    - `status` 'active' | 'archived', required: Current state of the report schedule. - **active**: Schedule is currently enabled and will trigger as per configuration. - **archived**: Schedule is disabled and will not trigger.
    - `agentKey` string, required: Uniquely identifies an Agent
    - `created` string, date-time, required: The date and time this object was created
    - `lastModified` string, date-time: The date and time this object was last modified
    - `version` integer, required: The version of this object
    - `reference` string: Unique ID used to identify a report.
    - `distributions` DistributionKey[]: The distribution objects' keys. If passed, the report will be distributed when generation is completed.
    - `mimeType` 'text/csv' | 'application/x-ndjson', required: The mime-type in which the SettlementDetails report is available.
    - `trigger` union, required: The trigger conditions for the SettlementDetails schedule.
      - object: Configuration for hourly-triggered reports.
        - `type` 'interval', required: A trigger type, which is based on a time-interval.
        - `cadence` 'hourly', required: The cadence of this interval trigger.
      - object: Configuration for daily-triggered reports, specifying the hour.
        - `type` 'interval', required: A trigger type, which is based on a time-interval.
        - `cadence` 'daily', required: The cadence of this interval trigger.
        - `hour` integer, required: The hour of the day (in 24-hour format) for the report trigger. - Must be between 0 and 23.
  - object
    - `reportName` 'AmmfReport', required: The name of the report.
    - `key` string, required: Uniquely identifies a report schedule object
    - `status` 'active' | 'archived', required: Current state of the report schedule. - **active**: Schedule is currently enabled and will trigger as per configuration. - **archived**: Schedule is disabled and will not trigger.
    - `agentKey` string, required: Uniquely identifies an Agent
    - `created` string, date-time, required: The date and time this object was created
    - `lastModified` string, date-time: The date and time this object was last modified
    - `version` integer, required: The version of this object
    - `reference` string: Unique ID used to identify a report.
    - `distributions` DistributionKey[]: The distribution objects' keys. If passed, the report will be distributed when generation is completed.
    - `mimeType` 'application/vnd.ms-excel', required: The mime-type in which the AMMF Report is available.
    - `parameters` AMMFReportScheduleParameters, required: The parameters used for creating a merchant payout report schedule.
      - `acquirerIdCode` string, required: the Acquirer Institution ID. For Visa, this is the BIC. It should be a 6-digit numeric value.
      - `directSubmission` boolean: set to `true` to indicate that the AMMF report should be directly submitted to Visa's AMMF service
    - `trigger` AmmfReportScheduleTrigger, required: Configuration for monthly-triggered reports, specifying the day of the month and hour the report should be scheduled.
      - `type` 'interval', required: A trigger type, which is based on a time-interval.
      - `cadence` 'monthly', required
      - `day` integer, required: The day of the month for the report trigger. - Must be between 1 and 28.
      - `hour` integer, required: The hour of the day (in 24-hour format) for the report trigger. - Must be between 0 and 23.

## Other responses

- `400`: Bad Request
- `401`: Unauthorized
- `403`: The authenticated client is forbidden to make the request for the resource identified.
- `409`: Conflict
- `429`: The number of requests (per minute) has exceeded the configured maximum

---

[API](https://skmtc.dev/silverflow/apis/silverflow-api.md) - [All operations](https://skmtc.dev/silverflow/apis/silverflow-api/llms.txt) - [OpenAPI document](https://skmtc.dev/silverflow/apis/silverflow-api/revisions/43ecbe4fd6ea?raw)
