---
title: "Create a report"
method: POST
path: "/reports"
tags: ["Reports"]
---

# Create a report

`POST /reports`

## Request

- Base URL: `https://api.justifi.ai/v1`
- URL: `https://api.justifi.ai/v1/reports`
- Auth: none declared. Required headers: `Authorization`
- TypeScript: <https://skmtc.dev/justifi/apis/justifi-api-documentation/docs/reports/post.ts> (a function with typed inputs; its response is checked against the schema)

Create a report for any of the available report types

## Headers

- `Authorization` string, required
- `Sub-Account` string

## Request body

- union
  - ReportInterchangeFeeParameters
    - `report_type` 'interchange_fee', required
    - `start_date` string, date: Start date to filter by. Maximum allowed date rage is 1 month
    - `end_date` string, date: End date to filter by. Maximum allowed date rage is 1 month
    - `nickname` string: the report nickname
  - ReportProceedsParameters
    - `report_type` 'proceeds', required
    - `start_date` string, date: Start date to filter by. Maximum allowed date rage is 1 month
    - `end_date` string, date: End date to filter by. Maximum allowed date rage is 1 month
    - `nickname` string: the report nickname
  - ReportPayoutParameters
    - `report_type` 'payout', required
    - `start_date` string, date: Start date to filter by. Maximum allowed date rage is 1 month
    - `end_date` string, date: End date to filter by. Maximum allowed date rage is 1 month
    - `nickname` string: the report nickname
  - ReportSubAccountSummaryParameters
    - `report_type` 'sub_account_summary', required
    - `start_date` string, date: Start date to filter by. Maximum allowed date rage is 1 month
    - `end_date` string, date: End date to filter by. Maximum allowed date rage is 1 month
    - `nickname` string: the report nickname
  - ReportPaymentListParameters
    - `report_type` 'payment_list', required
    - `payment_status` 'authorized' | 'failed' | 'succeeded' | 'canceled': the payment status to filter by
    - `payment_method_id` string: the payment method id to filter by
    - `terminal_id` string: the terminal_id to filter by
    - `start_date` string, date: Start date to filter by. Maximum allowed date rage is 1 month
    - `end_date` string, date: End date to filter by. Maximum allowed date rage is 1 month
    - `nickname` string: the report nickname

## Response `200`

Report was queued successfully

- object
  - `id` string, uuid: the object id, also found in the data object
  - `type` string: the object type, or array of objects
  - `data` object: the attributes for the object
    - `id` string: report unique id
    - `report_type` 'proceeds' | 'payout' | 'interchange_fee' | 'sub_account_summary' | 'payment_list': which report was generated
    - `nickname` string, nullable: the report nickname
    - `status` 'scheduled' | 'processing' | 'completed' | 'failed' | 'canceled' | 'expired': the report status
    - `scheduled_at` string, date: when the report was scheduled
    - `run_at` string, date: when the report started processing
    - `created_at` string, date: when the report was created
    - `error_description` string: error description in case of errors
    - `account_id` string: the account id the report was created for
    - `presigned_url` string, url: the url to download the report when completed
    - `platform_account_id` string: the platform account id the report was created for
    - `parameters` union
      - object
        - `report_type` 'proceeds', required
        - `start_date` string, date: Start date to filter by. Maximum allowed date rage is 1 month
        - `end_date` string, date: End date to filter by. Maximum allowed date rage is 1 month
        - `nickname` string: the report nickname
        - `account_id` string
        - `platform_account_id` string
      - object
        - `report_type` 'payout', required
        - `start_date` string, date: Start date to filter by. Maximum allowed date rage is 1 month
        - `end_date` string, date: End date to filter by. Maximum allowed date rage is 1 month
        - `nickname` string: the report nickname
        - `account_id` string
        - `platform_account_id` string
      - object
        - `report_type` 'interchange_fee', required
        - `start_date` string, date: Start date to filter by. Maximum allowed date rage is 1 month
        - `end_date` string, date: End date to filter by. Maximum allowed date rage is 1 month
        - `nickname` string: the report nickname
        - `account_id` string
        - `platform_account_id` string
      - object
        - `report_type` 'sub_account_summary', required
        - `start_date` string, date: Start date to filter by. Maximum allowed date rage is 1 month
        - `end_date` string, date: End date to filter by. Maximum allowed date rage is 1 month
        - `nickname` string: the report nickname
        - `account_id` string
        - `platform_account_id` string
      - object
        - `report_type` 'payment_list', required
        - `payment_status` 'authorized' | 'failed' | 'succeeded' | 'canceled': the payment status to filter by
        - `payment_method_id` string: the payment method id to filter by
        - `terminal_id` string: the terminal_id to filter by
        - `start_date` string, date: Start date to filter by. Maximum allowed date rage is 1 month
        - `end_date` string, date: End date to filter by. Maximum allowed date rage is 1 month
        - `nickname` string: the report nickname
        - `account_id` string
        - `platform_account_id` string
  - `page_info` unknown

---

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