---
openapi: 3.0.1
info:
  title: End Client Reporting
  description: "# Getting Started\nFor more information on how to start using our APIs, please refer to the Getting Started guide. \n***\n## Revision History\n***\n| Version | Date | Description |\n| ------- | ------- | ------- |\n| 1.0 | 02/26/2024 |Initial Version|\n\n\n# Servers\nSEI's API products have various environments available depending on your stage of integration. The server URL should correspond with the environment of your application. Please refer to the Getting Started guide for a list of all environments and URLs. \n\n**Note** For all Client applications, the Two-way TLS URL must be used. This is essential in order for the client server making API calls to establish a successful Two-Way SSL communication with SEI.\n***\n"
  version: v1
servers:
- url: https://test.api.seic.com
  description: Test Server with unmasked data.
- url: https://api.seic.com
  description: Production Server with unmasked data.
- url: https://test.mtls.api.seic.com
  description: Two-way SSL Test Server.
- url: https://mtls.api.seic.com
  description: Two-way SSL Production Server.
paths:
  /v1/ecr/reports/metadata:
    get:
      tags:
      - Reports
      summary: Reports Metadata
      description: Returns a list of all the reports that are available to use.
      parameters:
      - name: reportId
        in: query
        description: Report ID of the report configured in ECR.
        required: false
        style: form
        explode: true
        schema:
          type: string
      - name: category
        in: header
        description: Source System category - Investran(CEF)/Investier(OEF)
        required: true
        style: simple
        explode: false
        schema:
          type: string
      responses:
        "200":
          description: OK- The request has succeeded and the response has been returned.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/getmetaDataReportsResults'
        "400":
          description: Bad request - The server cannot or will not process the request due to an inaccurate request submitted by the client application.  Please resubmit the request after making the required corrections indicated in the error response.  For more Info on SEI Error Standards please refer to the API Standards FAQ under Support.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        "401":
          description: Unauthorized - Invalid authentication details have been provided.  Also useful to trigger an authorization pop up if the API is used from a browser.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        "403":
          description: Forbidden-The SEI Server understood the request but refuses to fulfill it.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        "404":
          description: Not Found- The requested resource or the underlying resource does not exist.  Please resubmit the request after making the required corrections
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        "500":
          description: Internal Server Error - The server was unable to fulfill the request due to an unknown condition. Please contact SEI for support. For More Info please refer to the "Response & Errors" FAQ under support.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      security:
      - oauth2: []
        bearerAuth: []
        ApiKeyAuth: []
  /v1/ecr/reports:
    get:
      tags:
      - Reports
      summary: ECR Reports
      description: This API is used to download the report package as generated by the requestId.
      operationId: ECRReportsGet
      parameters:
      - name: requestId
        in: query
        description: The unique identifer generated by the system to identify each request uniquely.
        required: true
        style: form
        explode: true
        schema:
          type: string
      - name: category
        in: header
        description: Source System category - Investran(CEF)/Investier(OEF)
        required: true
        style: simple
        explode: false
        schema:
          type: string
      responses:
        "200":
          description: OK- The request has succeeded and the response has been returned.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/getReportsResults'
        "400":
          description: Bad request - The server cannot or will not process the request due to an inaccurate request submitted by the client application.  Please resubmit the request after making the required corrections indicated in the error response.  For more Info on SEI Error Standards please refer to the API Standards FAQ under Support.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        "401":
          description: Unauthorized - Invalid authentication details have been provided.  Also useful to trigger an authorization pop up if the API is used from a browser.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        "403":
          description: Forbidden-The SEI Server understood the request but refuses to fulfill it.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        "404":
          description: Not Found- The requested resource or the underlying resource does not exist.  Please resubmit the request after making the required corrections
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        "500":
          description: Internal Server Error - The server was unable to fulfill the request due to an unknown condition. Please contact SEI for support. For More Info please refer to the "Response & Errors" FAQ under support.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      security:
      - oauth2: []
        bearerAuth: []
        ApiKeyAuth: []
    post:
      tags:
      - Reports
      summary: ECR Reports
      description: This endpoint triggers a report generation process.
      operationId: ECRReportsPOST
      parameters:
      - name: category
        in: header
        description: Source System category - Investran(CEF)/Investier(OEF)
        required: true
        style: simple
        explode: false
        schema:
          type: string
      - name: content-type
        in: header
        description: Request content type. The valid value is application/json.
        required: true
        style: simple
        explode: false
        schema:
          type: string
      requestBody:
        content:
          '*/*':
            schema:
              $ref: '#/components/schemas/reportsrequestDataPOST'
        required: false
      responses:
        "200":
          description: OK- The request has succeeded and the response has been returned.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/postReportsResponse'
        "400":
          description: Bad request - The server cannot or will not process the request due to an inaccurate request submitted by the client application.  Please resubmit the request after making the required corrections indicated in the error response.  For more Info on SEI Error Standards please refer to the API Standards FAQ under Support.
          content:
            application/json:
              schema:
                type: string
        "401":
          description: Unauthorized - Invalid authentication details have been provided.  Also useful to trigger an authorization pop up if the API is used from a browser.
          content:
            application/json:
              schema:
                type: string
        "403":
          description: Forbidden-The SEI Server understood the request but refuses to fulfill it.
          content:
            application/json:
              schema:
                type: string
        "404":
          description: Not Found- The requested resource or the underlying resource does not exist.  Please resubmit the request after making the required corrections
          content:
            application/json:
              schema:
                type: string
        "500":
          description: Internal Server Error - The server was unable to fulfill the request due to an unknown condition. Please contact SEI for support. For More Info please refer to the "Response & Errors" FAQ under support.
          content:
            application/json:
              schema:
                type: string
      security:
      - oauth2: []
        bearerAuth: []
        ApiKeyAuth: []
      x-codegen-request-body-name: requestPayload
components:
  schemas:
    postReportsResponse:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/reportsresponseDataPOST'
        paging:
          $ref: '#/components/schemas/Paging'
    getmetaDataReportsResults:
      type: object
      properties:
        firmId:
          type: string
        clientName:
          type: string
        reports:
          type: array
          items:
            $ref: '#/components/schemas/getmetaDataReportsResults_reports'
    reportsresponseDataPOST:
      type: object
      properties:
        requestId:
          type: string
        links:
          type: array
          items:
            $ref: '#/components/schemas/Link'
        reportName:
          type: string
        format:
          type: string
        status:
          type: string
    reportsrequestDataPOST:
      type: object
      properties:
        fundExternalId:
          type: string
        fundId:
          type: string
        type:
          type: string
          description: Valid values are "Fund" OR "Consolidated".
        reportId:
          type: number
        startDate:
          type: string
        endDate:
          type: string
        asOfDate:
          type: string
        merge:
          type: string
        mergeOutputFormat:
          type: string
    getReportsResults:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/ReportsResultRow'
        paging:
          $ref: '#/components/schemas/Paging'
    ReportsResultRow:
      type: object
      properties:
        status:
          type: string
    Paging:
      type: object
      properties:
        totalCount:
          type: integer
          format: int32
        limit:
          type: integer
          format: int32
        first:
          type: string
        last:
          type: string
        previous:
          type: string
        next:
          type: string
        self:
          type: string
    Link:
      type: object
      properties:
        rel:
          type: string
        href:
          type: string
    ErrorResponse:
      type: object
      properties:
        code:
          type: string
        message:
          type: string
        userMessage:
          type: string
        trackingId:
          type: string
        transient:
          type: boolean
        documentationalUrl:
          type: string
        remediationInfo:
          type: string
        errors:
          type: array
          items:
            $ref: '#/components/schemas/Errors'
        debugInfo:
          type: array
          items:
            $ref: '#/components/schemas/DebugInfo'
    Errors:
      type: object
      properties:
        field:
          type: string
        location:
          type: string
        reason:
          type: string
    DebugInfo:
      type: object
      properties:
        type:
          type: string
        reason:
          type: string
        remediationMsg:
          type: string
        debugInfo:
          type: array
          items:
            $ref: '#/components/schemas/DebugInfo'
    getmetaDataReportsResults_reports:
      type: object
      properties:
        reportName:
          type: string
        reportId:
          type: string
        parameters:
          type: array
          items:
            type: string
      example: null
  securitySchemes:
    oauth2:
      type: oauth2
      description: To access any API, first obtain an OAuth Token. Refer to the Access Token documentation for more information. The token has a 60 minutes active TTL and 30 minutes inactive TTL. An application making SEI API Requests from a Client/Server or Server/Server type of infrastructure will leverage the grant_type client_credentials while minting an OAuth from the Token API.
      flows:
        clientCredentials:
          tokenUrl: /v2/oauthtoken
          scopes: {}
    bearerAuth:
      type: http
      description: After successfully obtaining an OAuth token, pass the access_token value to the desired API endpoint by including the header parameter 'Authorization' with the value 'Bearer access_token'.
      scheme: bearer
    ApiKeyAuth:
      type: apiKey
      description: Pass the header parameter 'AppKey' to the API endpoint to authenticate your application. This value can be found within the 'My Apps' page. This value uniquely identifies the registered application.
      name: AppKey
      in: header
