JustiFi Reports API

Reports can be used to pull data for various different resources. They are CSV format, and can be filtered by date and sub account. Once a the create endpoint is called via POST, a report will be in `created` status. The report will move to `processing` status once it is being generated. Finally, when the report is generated, and the CSV file is available, the report will be in `completed` status. To download a report, you can use the `download_url` provided in the response when retrieving a report. We use presigned URLs to allow you to download the report directly from our S3 bucket. ## Report Types ### Payout Report Contains balance transaction data for payouts. | Column | Description | | ------ | ----------- | | id | Balance transaction ID | | type | Transaction type | | currency | Currency | | amount | Amount in cents | | fee | Fee amount in cents | | net | Net amount in cents | | source_id | Source object ID | | source_account_id | Source account ID | | source_type | Source object type | | source_amount | Source amount in cents | | available_on | When funds become available | | payment_id | Associated payment ID | | created_at | Creation timestamp | | payment_method_name | Payment method name | | source_payment_id | Payment ID associated with the source | | payout_id | Associated payout ID | | payout_created_at | Payout creation timestamp | | payout_deposits_at | Expected payout deposit date | ### Proceeds Report Contains platform proceeds data. | Column | Description | | ------ | ----------- | | id | Balance transaction ID | | type | Transaction type | | currency | Currency code | | amount | Amount in cents | | fee | Fee amount in cents | | net | Net amount in cents | | source_id | Source object ID | | source_account_id | Source account ID | | source_type | Source object type | | source_amount | Source amount in cents | | application_fee_amount | Application fee in cents | | platform_fee_amount | Platform fee in cents | | proceeds | Calculated proceeds in cents | | available_on | When funds become available | | created_at | Creation timestamp | | fee_major_category | Fee major category | | fee_minor_category | Fee minor category | | fee_description | Fee description | | fee_product_code | Fee product code | | fee_batch_date | Fee batch date | | payment_method_type | Payment method type | | payment_method_brand | Payment method brand | | source_payment_id | Payment ID associated with the source | | payout_id | Associated payout ID | | payout_created_at | Payout creation timestamp | | payout_deposits_at | Expected payout deposit date |

Operations 3

POST /reports Create a report #
GET /reports List Reports #
GET /reports/{id} Get a report #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/justifi-reports-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

justifi-reports-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  description: '## Introduction


    The JustiFi API is a REST-based payment processing API.'
  title: JustiFi API Documentation Reports API
  termsOfService: https://justifi.ai/terms-and-conditions
  x-logo:
    url: https://justifi-brand-assets.s3.us-east-2.amazonaws.com/justifi-light-bg.png
  contact:
    email: api-development@justifi.ai
servers:
- url: https://api.justifi.ai/v1
  description: JustiFi API
tags:
- name: Reports
  description: Reports can be used to pull data for various different resources.
paths:
  /reports:
    post:
      summary: Create a report
      description: Create a report for any of the available report types
      operationId: CreateReport
      tags:
      - Reports
      parameters:
      - $ref: '#/components/parameters/authorization-header'
      - $ref: '#/components/parameters/sub-account'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              anyOf:
              - $ref: '#/components/schemas/ReportInterchangeFeeParameters'
              - $ref: '#/components/schemas/ReportProceedsParameters'
              - $ref: '#/components/schemas/ReportPayoutParameters'
              - $ref: '#/components/schemas/ReportSubAccountSummaryParameters'
              - $ref: '#/components/schemas/ReportPaymentListParameters'
      responses:
        '200':
          description: Report was queued successfully
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/Envelope'
                - properties:
                    type:
                      example: report
                    data:
                      $ref: '#/components/schemas/Report'
    get:
      summary: List Reports
      description: List all generated reports
      operationId: ListSubAccounts
      tags:
      - Reports
      parameters:
      - $ref: '#/components/parameters/authorization-header'
      - $ref: '#/components/parameters/sub-account'
      - in: query
        name: nickname
        schema:
          type: string
        required: false
        example: '"My Report"'
        description: 'the nickname of the report

          '
      responses:
        '200':
          description: Successfully list reports
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/Envelope-list'
                - properties:
                    type:
                      example: array
                    data:
                      items:
                        $ref: '#/components/schemas/Report'
  /reports/{id}:
    get:
      summary: Get a report
      description: Get and generate the download url for a report
      operationId: GetReport
      tags:
      - Reports
      parameters:
      - $ref: '#/components/parameters/authorization-header'
      - $ref: '#/components/parameters/sub-account'
      - $ref: '#/components/parameters/id-path'
      responses:
        '200':
          description: Successfully get a report
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/Envelope'
                - properties:
                    type:
                      example: refund
                    data:
                      $ref: '#/components/schemas/Report'
components:
  schemas:
    Envelope:
      type: object
      properties:
        id:
          description: the object id, also found in the data object
          type: string
          format: uuid
          example: prefix_xyz (same as id of data object)
        type:
          description: the object type, or array of objects
          type: string
          example: account
        data:
          description: the attributes for the object
          type: object
        page_info:
          description: information for cursor style pagination, is null for single records
          type: null
    ReportInterchangeFeeParameters:
      type: object
      required:
      - report_type
      properties:
        report_type:
          type: string
          enum:
          - interchange_fee
        start_date:
          type: string
          format: date
          example: '2025-12-25'
          description: Start date to filter by. Maximum allowed date rage is 1 month
        end_date:
          type: string
          format: date
          example: '2025-12-30'
          description: End date to filter by. Maximum allowed date rage is 1 month
        nickname:
          description: the report nickname
          type: string
          example: My Report
    ReportPayoutParameters:
      type: object
      required:
      - report_type
      properties:
        report_type:
          type: string
          enum:
          - payout
        start_date:
          type: string
          format: date
          example: '2025-12-25'
          description: Start date to filter by. Maximum allowed date rage is 1 month
        end_date:
          type: string
          format: date
          example: '2025-12-30'
          description: End date to filter by. Maximum allowed date rage is 1 month
        nickname:
          description: the report nickname
          type: string
          example: My Report
    ReportPaymentListParameters:
      type: object
      required:
      - report_type
      properties:
        report_type:
          type: string
          enum:
          - payment_list
        payment_status:
          description: the payment status to filter by
          type: string
          enum:
          - authorized
          - failed
          - succeeded
          - canceled
          example: succeeded
        payment_method_id:
          description: the payment method id to filter by
          type: string
          example: pm_xyz
        terminal_id:
          description: the terminal_id to filter by
          type: string
          example: trm_xyz
        start_date:
          type: string
          format: date
          example: '2025-12-25'
          description: Start date to filter by. Maximum allowed date rage is 1 month
        end_date:
          type: string
          format: date
          example: '2025-12-30'
          description: End date to filter by. Maximum allowed date rage is 1 month
        nickname:
          description: the report nickname
          type: string
          example: My Report
    Report:
      type: object
      properties:
        id:
          description: report unique id
          type: string
          example: rpt_xyz
        report_type:
          $ref: '#/components/schemas/ReportType'
        nickname:
          description: the report nickname
          type:
          - string
          - 'null'
          example: My Report
        status:
          description: the report status
          type: string
          example: scheduled
          enum:
          - scheduled
          - processing
          - completed
          - failed
          - canceled
          - expired
        scheduled_at:
          description: when the report was scheduled
          type: string
          format: date
          example: '2025-12-25T14:44:45.026Z'
        run_at:
          description: when the report started processing
          type: string
          format: date
          example: '2025-12-30T14:44:45.026Z'
        created_at:
          description: when the report was created
          type: string
          format: date
          example: '2025-12-31T14:44:45.026Z'
        error_description:
          description: error description in case of errors
          type: string
        account_id:
          description: the account id the report was created for
          type: string
          example: acc_xyz
        presigned_url:
          description: the url to download the report when completed
          type: string
          format: url
        platform_account_id:
          description: the platform account id the report was created for
          type: string
          example: acc_xyz
        parameters:
          $ref: '#/components/schemas/ReportParameters'
    ReportProceedsParameters:
      type: object
      required:
      - report_type
      properties:
        report_type:
          type: string
          enum:
          - proceeds
        start_date:
          type: string
          format: date
          example: '2025-12-25'
          description: Start date to filter by. Maximum allowed date rage is 1 month
        end_date:
          type: string
          format: date
          example: '2025-12-30'
          description: End date to filter by. Maximum allowed date rage is 1 month
        nickname:
          description: the report nickname
          type: string
          example: My Report
    Envelope-list:
      type: object
      properties:
        id:
          description: the object id
          type: number
          example: 1
        type:
          description: the object type, or array of objects
          type: string
          example: account
        data:
          description: the list of objects
          type: array
        page_info:
          description: information for cursor style pagination
          $ref: '#/components/schemas/PageInfo'
    PageInfo:
      type: object
      properties:
        end_cursor:
          description: the encoded id of the last record in the current list
          type: string
          example: WyIyMDIyLTAyLTA4IDE5OjUyOjM3LjEwNDE3MzAwMCIsIjY4MDliYTU5LTYxYjctNDg3MS05YWFiLWE2Y2MyNmY3M2M1ZCJd
        has_next:
          description: true if the collection contains records following the current list
          type: boolean
          default: false
        has_previous:
          description: true if the collection contains records ahead of the current list
          type: boolean
          default: false
        start_cursor:
          description: the encoded id of the first record in the current list
          type: string
          example: WyIyMDIyLTAyLTA4IDIwOjAxOjU4LjEyMDIzMjAwMCIsIjU5ZTFjNGI1LWFlOWQtNDIyZC04MTVkLWNjNzQ5NzdlYmFjYSJd
    ReportType:
      description: which report was generated
      type: string
      example: proceeds
      enum:
      - proceeds
      - payout
      - interchange_fee
      - sub_account_summary
      - payment_list
    ReportParameters:
      oneOf:
      - allOf:
        - $ref: '#/components/schemas/ReportProceedsParameters'
        - type: object
          properties:
            account_id:
              type: string
              example: acc_xyz
            platform_account_id:
              type: string
              example: acc_xyz
      - allOf:
        - $ref: '#/components/schemas/ReportPayoutParameters'
        - type: object
          properties:
            account_id:
              type: string
              example: acc_xyz
            platform_account_id:
              type: string
              example: acc_xyz
      - allOf:
        - $ref: '#/components/schemas/ReportInterchangeFeeParameters'
        - type: object
          properties:
            account_id:
              type: string
              example: acc_xyz
            platform_account_id:
              type: string
              example: acc_xyz
      - allOf:
        - $ref: '#/components/schemas/ReportSubAccountSummaryParameters'
        - type: object
          properties:
            account_id:
              type: string
              example: acc_xyz
            platform_account_id:
              type: string
              example: acc_xyz
      - allOf:
        - $ref: '#/components/schemas/ReportPaymentListParameters'
        - type: object
          properties:
            account_id:
              type: string
              example: acc_xyz
            platform_account_id:
              type: string
              example: acc_xyz
    ReportSubAccountSummaryParameters:
      type: object
      required:
      - report_type
      properties:
        report_type:
          type: string
          enum:
          - sub_account_summary
        start_date:
          type: string
          format: date
          example: '2025-12-25'
          description: Start date to filter by. Maximum allowed date rage is 1 month
        end_date:
          type: string
          format: date
          example: '2025-12-30'
          description: End date to filter by. Maximum allowed date rage is 1 month
        nickname:
          description: the report nickname
          type: string
          example: My Report
  parameters:
    id-path:
      in: path
      name: id
      schema:
        type: string
        format: uuid
      required: true
    authorization-header:
      in: header
      name: Authorization
      schema:
        type: string
      required: true
      example: Bearer {access_token}
      description: the `access_token` value returned from the JustiFi `oauth/token` endpoint (be sure to append `Bearer` before the token)
    sub-account:
      in: header
      name: Sub-Account
      schema:
        type: string
      required: false
      example: acc_123xyz
      description: 'the id of the [sub account](https://docs.justifi.tech/api-spec#tag/Sub-Accounts) that this request applies to

        '
x-tagGroups:
- name: Authorization
  tags:
  - API Credentials
  - Web Component Tokens
- name: For Platforms
  tags:
  - Sub Accounts
  - Platform Wallet Accounts
  - Onboarding via Component
  - Hosted Onboarding
  - Onboarding via API
  - Fee Configurations
  - Proceeds
  - Reports
- name: Payment Resources
  tags:
  - Payments
  - Payment Methods
  - Tokenize via Component
  - Payment Method Groups
  - Refunds
  - Disputes
  - Payouts
  - Payout Holds
  - Balance Transactions
  - Ach Return Fees
  - Payment Method Migration
- name: Checkout Resources
  tags:
  - Checkouts
  - Checkout via Component
  - Checkout via API
- name: Insurance Resources
  tags:
  - Bind Insurance
- name: Entity Resources
  tags:
  - Business
  - Identity
  - Address
  - Document
  - Bank Account
  - Terms and Conditions
  - Provisioning
- name: Card Present Resources
  tags:
  - Terminals
  - Terminals Orders
- name: Libraries
  tags:
  - JustiFi Web Components
  - JustiFi SDK
- name: Event Publishing
  tags:
  - Events
  - Webhook Delivery