State Street Orders API

ETF creation and redemption order operations

OpenAPI Specification

state-street-orders-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: State Street Alpha Data Platform Baskets Orders API
  description: The State Street Alpha Data Platform API provides institutional investment managers, asset owners, and wealth managers with programmatic access to their portfolio data across the front-to-back Alpha investment management platform. The API enables clients to retrieve portfolio positions, holdings, investable cash, pledged collateral, securities on loan, risk exposures, performance measurement, and transaction history in near real-time. Built on Snowflake and Microsoft Azure, the Alpha Data Platform provides intraday visibility across geographies, asset classes, and counterparties. Authentication uses OAuth 2.0 Client Credentials (RFC 6749 Section 4.4.2). All requests require the X-Correlation-ID header for request tracing. The API follows REST conventions with JSON as the default data format, versioned using Major.Minor.Patch semantics.
  version: 1.0.0
  contact:
    name: State Street API Support
    email: api-support@statestreet.com
    url: https://developer.statestreet.com
  termsOfService: https://www.statestreet.com/us/en/individual-investor/tools-and-resources/terms-and-conditions
  license:
    name: Proprietary
    url: https://developer.statestreet.com/api-platform-standards
servers:
- url: https://api.statestreet.com/v1
  description: State Street API Production
security:
- OAuth2:
  - portfolio:read
  - positions:read
  - transactions:read
  - performance:read
  - risk:read
tags:
- name: Orders
  description: ETF creation and redemption order operations
paths:
  /orders:
    post:
      operationId: createOrder
      summary: Create ETF Order
      description: Submit an ETF creation or redemption order through Fund Connect. Authorized participants can request creation of new ETF shares by delivering the in-kind basket, or redeem existing ETF shares to receive the underlying basket securities. Orders are processed at end-of-day NAV.
      tags:
      - Orders
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OrderRequest'
      responses:
        '201':
          description: Order successfully submitted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Order'
        '400':
          description: Invalid order request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Not authorized as AP for this fund
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
    get:
      operationId: listOrders
      summary: List ETF Orders
      description: Retrieve a list of ETF creation and redemption orders submitted by the authenticated authorized participant. Supports filtering by order status, fund, and date range.
      tags:
      - Orders
      parameters:
      - name: fundId
        in: query
        description: Filter by fund identifier
        required: false
        schema:
          type: string
      - name: status
        in: query
        description: Filter by order status
        required: false
        schema:
          type: string
          enum:
          - PENDING
          - ACCEPTED
          - PROCESSING
          - SETTLED
          - REJECTED
          - CANCELLED
      - name: startDate
        in: query
        required: false
        schema:
          type: string
          format: date
      - name: endDate
        in: query
        required: false
        schema:
          type: string
          format: date
      - name: pageSize
        in: query
        required: false
        schema:
          type: integer
          default: 25
          maximum: 100
      - name: pageToken
        in: query
        required: false
        schema:
          type: string
      - $ref: '#/components/parameters/XCorrelationId'
      responses:
        '200':
          description: List of ETF orders
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrderListResponse'
  /orders/{orderId}:
    get:
      operationId: getOrder
      summary: Get ETF Order
      description: Retrieve the current status and details of a specific ETF creation or redemption order including basket delivery confirmation and settlement status.
      tags:
      - Orders
      parameters:
      - name: orderId
        in: path
        description: Unique order identifier
        required: true
        schema:
          type: string
          example: FC-2026-0502-00123
      - $ref: '#/components/parameters/XCorrelationId'
      responses:
        '200':
          description: ETF order details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Order'
        '404':
          description: Order not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /orders/{orderId}/cancel:
    post:
      operationId: cancelOrder
      summary: Cancel ETF Order
      description: Cancel a pending ETF creation or redemption order before it has been accepted for processing. Orders can only be cancelled while in PENDING status.
      tags:
      - Orders
      parameters:
      - name: orderId
        in: path
        description: Unique order identifier
        required: true
        schema:
          type: string
          example: FC-2026-0502-00123
      - $ref: '#/components/parameters/XCorrelationId'
      responses:
        '200':
          description: Order successfully cancelled
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Order'
        '404':
          description: Order not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '409':
          description: Order cannot be cancelled in current state
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
components:
  schemas:
    OrderRequest:
      type: object
      required:
      - fundId
      - orderType
      - units
      description: ETF creation or redemption order request
      properties:
        fundId:
          type: string
          description: Fund identifier
          example: ETF-SPDR-SPY
        orderType:
          type: string
          description: Order type
          enum:
          - CREATION
          - REDEMPTION
          example: CREATION
        units:
          type: integer
          description: Number of creation/redemption units
          minimum: 1
          example: 5
        settlementType:
          type: string
          description: Settlement instruction type
          enum:
          - IN_KIND
          - CASH
          default: IN_KIND
        clientOrderId:
          type: string
          description: Client-provided reference ID
          example: CLIENT-ORDER-98765
    Error:
      type: object
      properties:
        code:
          type: string
          example: UNAUTHORIZED
        message:
          type: string
          example: Access token is missing or invalid.
        correlationId:
          type: string
          format: uuid
    Order:
      type: object
      description: An ETF creation or redemption order
      properties:
        orderId:
          type: string
          description: Unique Fund Connect order identifier
          example: FC-2026-0502-00123
        clientOrderId:
          type: string
          description: Client-provided reference ID
          example: CLIENT-ORDER-98765
        fundId:
          type: string
          example: ETF-SPDR-SPY
        orderType:
          type: string
          enum:
          - CREATION
          - REDEMPTION
          example: CREATION
        units:
          type: integer
          description: Number of creation/redemption units ordered
          example: 5
        status:
          type: string
          enum:
          - PENDING
          - ACCEPTED
          - PROCESSING
          - SETTLED
          - REJECTED
          - CANCELLED
          example: ACCEPTED
        submittedAt:
          type: string
          format: date-time
          description: Order submission timestamp
        tradeDate:
          type: string
          format: date
          description: Trade date
        settlementDate:
          type: string
          format: date
          description: Expected settlement date
    OrderListResponse:
      type: object
      properties:
        orders:
          type: array
          items:
            $ref: '#/components/schemas/Order'
        nextPageToken:
          type: string
        totalCount:
          type: integer
  parameters:
    XCorrelationId:
      name: X-Correlation-ID
      in: header
      description: Client-provided correlation ID for request tracing
      required: false
      schema:
        type: string
        format: uuid
  securitySchemes:
    OAuth2:
      type: oauth2
      description: OAuth 2.0 Client Credentials flow per RFC 6749 Section 4.4.2. Requires multifactor authentication for all user access.
      flows:
        clientCredentials:
          tokenUrl: https://api.statestreet.com/oauth/token
          scopes:
            portfolio:read: Read portfolio metadata and account information
            positions:read: Read portfolio positions and holdings
            transactions:read: Read transaction history
            performance:read: Read performance measurement and attribution data
            risk:read: Read risk analytics and exposure data