DriveWealth Settlements API

The Settlements API from DriveWealth — 6 operation(s) for settlements.

OpenAPI Specification

drivewealth-settlements-api-openapi.yml Raw ↑
openapi: 3.0.2
info:
  title: DriveWealth Accounts Settlements API
  version: '1.0'
servers:
- url: https://bo-api.drivewealth.io/back-office
  description: Sandbox server (Uses test data)
- url: https://bo-api.drivewealth.net/back-office
  description: Production Server (Uses LIVE data)
tags:
- name: Settlements
  x-displayName: Settlements
paths:
  /funding/reconciliations:
    get:
      tags:
      - Settlements
      summary: List Cashless Reconciliations
      description: Fetches a list of daily reconciliations for a firm using cashless settlement.
      parameters:
      - in: query
        name: to
        schema:
          type: string
        required: true
        example: '2022-12-25T18:36:40.609Z'
        description: The date and time in which to end at.
      - in: query
        name: from
        schema:
          type: string
        required: true
        example: '2022-12-08T18:36:40.609Z'
        description: The date and time in which to start from.
      - in: query
        name: type
        schema:
          type: string
        required: false
        example: CRYPTO
        description: Filters the reconciliations reports by the type of reconciliation.
      - in: query
        name: status
        schema:
          $ref: '#/components/schemas/reconciliationStatus'
        required: false
        description: Filters the reconciliations reports by the status of reconciliation.
      responses:
        '200':
          description: Fetching a list of daily reconciliations for a firm was successful.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListOfDailyReconciliations'
      security:
      - bearerAuth: []
        dwAppKey: []
      - sessionToken: []
        dwAppKey: []
  /funding/reconciliations/{reconciliationID}:
    get:
      tags:
      - Settlements
      summary: Retrieve Cashless Reconciliation
      description: Fetches reconciliations details for a firm using cashless settlement.
      parameters:
      - in: path
        name: reconciliationID
        schema:
          $ref: '#/components/schemas/reconciliationID'
        required: true
        description: The unique identifier of the reconciliation report.
      responses:
        '200':
          description: Fetching a firm's reconciliation details was successful.
          content:
            application/json:
              schema:
                oneOf:
                - $ref: '#/components/schemas/ReconciliationDetails'
      security:
      - bearerAuth: []
        dwAppKey: []
      - sessionToken: []
        dwAppKey: []
    patch:
      tags:
      - Settlements
      summary: Update Cashless Reconciliation
      description: Updates a Cashless Reconciliation by reconciliationID.
      parameters:
      - in: path
        name: reconciliationID
        schema:
          $ref: '#/components/schemas/reconciliationID'
        required: true
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ReconciliationUpdate'
      responses:
        '200':
          description: Updating the Cashless Reconciliations was Successful.
          content:
            application/json:
              schema:
                oneOf:
                - $ref: '#/components/schemas/ReconciliationDetails'
      security:
      - bearerAuth: []
        dwAppKey: []
      - sessionToken: []
        dwAppKey: []
  /accounts/{accountID}/reports/daily-trade-summary:
    post:
      tags:
      - Settlements
      summary: Create DVP RVP Report
      description: Creates a job to generate a DVP RVP Report.
      parameters:
      - in: path
        name: accountID
        schema:
          $ref: '#/components/schemas/accountID'
        required: true
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateDVPRVP'
      responses:
        '200':
          description: Creating the job to generate a DVP/RVP Report was successful
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateDVPRVPRes'
      security:
      - bearerAuth: []
        dwAppKey: []
      - sessionToken: []
        dwAppKey: []
    get:
      tags:
      - Settlements
      summary: List DVP RVP Reports
      description: Lists DVP RVP reports.
      parameters:
      - in: path
        name: accountID
        schema:
          $ref: '#/components/schemas/accountID'
        required: true
      - in: query
        name: status
        schema:
          $ref: '#/components/schemas/DVPRVPStatus'
        description: A filter, to filter on the status of the DVP/RVP.
      - in: query
        name: from
        schema:
          $ref: '#/components/schemas/from'
        required: true
      - in: query
        name: to
        schema:
          $ref: '#/components/schemas/to'
        required: true
      responses:
        '200':
          description: Fetching DVP/RVP List was Successful.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListDVPRVP'
      security:
      - bearerAuth: []
        dwAppKey: []
      - sessionToken: []
        dwAppKey: []
  /accounts/{accountID}/reports/daily-trade-summary/{reportID}:
    get:
      summary: Retrieve DVP RVP
      description: Retrieves a DVP RVP by reportID.
      tags:
      - Settlements
      parameters:
      - in: path
        name: accountID
        schema:
          $ref: '#/components/schemas/accountID'
        required: true
      - in: path
        name: reportID
        schema:
          type: string
          example: bsr_040fb9cc-84e8-4f20-bf09-d398dacd458d.1622745430469_20210604
          description: The DVP/RVP report identifier.
        required: true
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DVPRVPDetails'
      security:
      - bearerAuth: []
        dwAppKey: []
      - sessionToken: []
        dwAppKey: []
  /settlements:
    get:
      tags:
      - Settlements
      summary: Retrieve Settlements
      description: Retrieves a list of Settlements.
      parameters:
      - in: query
        name: from
        schema:
          type: string
        required: true
        example: '2022-12-08'
        description: The date to start from.
      - in: query
        name: to
        schema:
          type: string
        required: true
        example: '2022-12-25'
        description: The date to end at.
      - in: query
        name: status
        schema:
          $ref: '#/components/schemas/singleSettlementStatus'
        required: false
        description: Filters, the settlements by the status.
      - in: query
        name: settlementProfileID
        schema:
          $ref: '#/components/schemas/settlementProfileID'
        required: false
        description: Filters, the settlements by the settlement profile.
      - in: query
        name: limit
        schema:
          type: integer
          default: 50
          maximum: 200
        required: false
        description: The number of items to return.
      - in: query
        name: offset
        schema:
          type: string
          default: null
        required: false
        description: Used for pagination. Set this to the first/last id value of your payload to get the prev/next page of results respectively.
      - in: query
        name: direction
        schema:
          type: string
          enum:
          - prev
          - next
        required: false
        description: The direction of the pagination.
      responses:
        '200':
          description: Retrieving a list of Settlements was Successful.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleSettlementReports'
      security:
      - bearerAuth: []
        dwAppKey: []
      - sessionToken: []
        dwAppKey: []
  /settlements/{settlementID}:
    get:
      tags:
      - Settlements
      summary: Retrieve Settlement
      description: Retrieves Settlement by settlementID.
      parameters:
      - in: path
        name: settlementID
        schema:
          $ref: '#/components/schemas/singleSettlementID'
        required: true
      responses:
        '200':
          description: Retrieving Settlement by settlementID was Successful.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SingleSettlementByID'
        '404':
          description: The settlement for given settlementID doesn't exist.
      security:
      - bearerAuth: []
        dwAppKey: []
      - sessionToken: []
        dwAppKey: []
components:
  schemas:
    SingleSettlementDetails:
      type: object
      properties:
        id:
          $ref: '#/components/schemas/singleSettlementID'
        settlementDate:
          $ref: '#/components/schemas/date'
          description: The date for which the settlement was generated.
        partnerID:
          $ref: '#/components/schemas/parentIBID'
        status:
          $ref: '#/components/schemas/singleSettlementStatus'
        totalAmount:
          type: number
          example: -14250
          description: The total aggregated sum of all underlying accounts and transactions.
        createdAt:
          $ref: '#/components/schemas/created'
          description: The date and time the settlement was created.
        updatedAt:
          $ref: '#/components/schemas/updated'
          description: The date and time the settlement was last updated.
        settlementProfileID:
          $ref: '#/components/schemas/settlementProfileID'
    reconciliationID:
      type: string
      example: 80f9b672-120d-4b73-9cc9-42fb3262c4b9_20240417
      description: The unique identifier of the reconciliation report.
    CreateDVPRVPRes:
      type: object
      properties:
        id:
          type: string
          example: bsr_040fb9cc-84e8-4f20-bf09-d398dacd458d.1622745430469_20210604
          description: The DVP/RVP report identifier.
        accountID:
          $ref: '#/components/schemas/accountID'
        accountNo:
          $ref: '#/components/schemas/accountNo'
        tradeDate:
          type: string
          format: date
          example: '2021-06-04'
          pattern: yyyy-MM-dd
          description: The date for which the DVP/RVP was run for.
        note:
          $ref: '#/components/schemas/note'
        partnerID:
          $ref: '#/components/schemas/partnerID'
    CreateDVPRVP:
      type: object
      required:
      - tradeDate
      properties:
        tradeDate:
          type: string
          format: date
          example: '2021-06-04'
          pattern: yyyy-MM-dd
          description: The date to generate the DVP/RVP report for.
        note:
          $ref: '#/components/schemas/note'
    note:
      type: string
      example: Hey! Welcome to DriveWealth Developer Docs!
      description: A way to store a message/comment on the this object.
    reconciliationStatus:
      type: string
      example: APPROVED
      description: The current status of the reconciliation report.
      enum:
      - PENDING
      - APPROVED
      - PROCESSING
      - SUCCESSFUL
      - FAILED
    settlementProfileID:
      type: string
      example: settlement-profile-bank-account-1
      description: A settlement profile identifier that links to a specific bank account for fund settlement.
    updated:
      type: string
      example: '2022-12-11T22:28:21.810Z'
      description: ''
    SingleSettlementReports:
      type: object
      properties:
        pageSize:
          type: integer
          example: 1
          description: The amount of results on the page.
        limit:
          type: integer
          example: 50
          description: The maximum number of results per page.
        settlements:
          type: array
          items:
            oneOf:
            - $ref: '#/components/schemas/SingleSettlementDetails'
    SingleSettlementByID:
      type: object
      properties:
        id:
          $ref: '#/components/schemas/singleSettlementID'
        settlementDate:
          $ref: '#/components/schemas/date'
          description: The date the settlement was generated for.
        status:
          $ref: '#/components/schemas/singleSettlementStatus'
        statusComment:
          type: string
          example: Finished processing breakdown
          description: A custom comment about the current status of the settlement.
        amount:
          type: object
          properties:
            total:
              type: number
              example: 5000.45
              description: The aggregated sum of all the transactions settling on the settlement date.
            credits:
              type: number
              example: 6000.45
              description: The aggregated sum of all the credit transactions settling on the settlement date.
            debits:
              type: number
              example: -1000
              description: The aggregated sum of all the debit transactions settling on the settlement date.
        breakdownReport:
          type: string
          format: url
          example: https://du2c4wzqz90h1.cloudfront.net/singleSettlementReport....
          description: A breakdown of all the deposits or withdrawals across sub accounts over the course of the settlement date.
        partnerID:
          $ref: '#/components/schemas/partnerID'
        settlementProfileID:
          $ref: '#/components/schemas/settlementProfileID'
        updatedBy:
          $ref: '#/components/schemas/updatedBy'
        createdAt:
          $ref: '#/components/schemas/created'
          description: The date and time of when the settlement was created.
        updatedAt:
          $ref: '#/components/schemas/updated'
          description: The date and time of when the settlement was last updated.
    created:
      type: string
      example: '2022-12-11T22:28:21.810Z'
      description: ''
    singleSettlementID:
      type: string
      example: sett_63ccb073-a7b6-4b33-af77-5baec5cc4494_settle-profile-usa_20221224
      description: A unique identifier that identifies the settlement.
    from:
      type: string
      format: date
      pattern: yyyy-MM-dd
      example: '2022-12-25'
      description: A filter, the start date.
    singleSettlementStatus:
      type: string
      example: PENDING
      description: The current status of the settlement.
      enum:
      - PENDING
      - APPROVED
      - SUCCESSFUL
      - REJECTED
    accountID:
      type: string
      example: cc07f91b-7ee1-4868-b8fc-823c70a1b932.1407775317759
      description: The user's unique account identifier.
    DailyReconciliation:
      type: object
      properties:
        id:
          $ref: '#/components/schemas/reconciliationID'
        date:
          type: string
          example: '2024-04-17'
          description: The date of when the reconciliation report was generated for.
        status:
          $ref: '#/components/schemas/reconciliationStatus'
        statusComment:
          type: string
          example: Finished processing breakdown
          description: A custom comment about the status.
        totalAmount:
          type: number
          example: 12001.01
          description: The total amount due or owed to the firm.
        created:
          type: string
          example: '2024-04-15T22:28:21.810Z'
          description: The date and time the reconciliation report was created.
        updated:
          type: string
          example: '2024-04-17T22:28:21.810Z'
          description: The date and time the reconciliation report was last updated.
        updatedBy:
          $ref: '#/components/schemas/updatedBy'
    to:
      type: string
      format: date
      pattern: yyyy-MM-dd
      example: '2022-12-26'
      description: A filter, the end date.
    ReconciliationUpdate:
      type: object
      properties:
        status:
          type: string
          example: SUCCESSFUL
          description: The status to update the reconciliation report to.
          enum:
          - SUCCESSFUL
        statusComment:
          type: string
          example: Manually approving reconciliation for testing purposes.
          description: A custom comment about the status.
    parentIBID:
      type: string
      example: 80f9b672-120d-4b73-9cc9-42fb3262c4b9
      description: The unique identifier of the firm.
    ReconciliationDetails:
      type: object
      properties:
        id:
          $ref: '#/components/schemas/reconciliationID'
        date:
          type: string
          example: '2024-04-17'
          description: The date of when the reconciliation report was generated for.
        status:
          $ref: '#/components/schemas/reconciliationStatus'
        statusComment:
          type: string
          example: Finished processing breakdown
          description: A custom comment about the status.
        amounts:
          type: object
          properties:
            total:
              type: number
              example: -1263.56
              description: The total amount due or owed to the firm.
            purchases:
              type: number
              example: -1680.07
              description: The total amount in purchases of equity instruments, that are due to DriveWealth.
            sales:
              type: number
              example: 416.51
              description: The total amount in sales of equity instruments, that are owed to the firm.
            dividends:
              type: number
              example: 0
              description: The total amount of dividends, that are owed to the firm.
            fees:
              type: number
              example: 0
              description: The total amount of fees, that are due to DriveWealth.
            other:
              type: number
              example: 0
              description: The total amount of other payments, that are owed to the firm.
        transferAmounts:
          type: object
          properties:
            currency:
              type: string
              example: USD
              description: The currency in abbreviation form.
            payablesToDW:
              type: number
              example: 1263.56
              description: The total amount due to DriveWealth.
            receivablesFromDW:
              type: number
              example: 0
              description: The total amount owed to the partner firm.
        reconciliationBreakdown:
          type: string
          properties:
            JSON:
              type: string
              example: https://d3k101jzh5wilt.cloudfront.net/reconciliation_2e901d48-dd17-42fe-8225-32d2ca6b633e_20190322.json?Policy=eyJTdGF0ddiOiBbeyJSZXNvdXJjZSI6Imh0dHBzOi8vZDNrMTAxanpoNXdpbHQuY2xvdWRmcm9udC5uZXQvcmVjb25jaWxpYXRpb25fMmU5ffdasdamA17ggVl6C40gHkKsr2HLfmjTd9BevcYRPh-QDKA1J~76INZ3nfada4ROS6OUR66A%22
              description: A URL that contains the breakdown of all the transactions that are settling in the reconciliation report.
        partnerID:
          $ref: '#/components/schemas/parentIBID'
        created:
          type: string
          example: '2024-04-15T22:28:21.810Z'
          description: The date and time when the reconciliation report was created.
        updated:
          type: string
          example: '2024-04-17T22:28:21.810Z'
          description: The date and time when the reconciliation report was last updated.
        updatedBy:
          $ref: '#/components/schemas/updatedBy'
    accountNo:
      type: string
      example: DWBG000052
      description: The user's unique account number, that is human readable.
    DVPRVP:
      type: object
      properties:
        id:
          type: string
          example: bsr_040fb9cc-84e8-4f20-bf09-d398dacd458d.1622745430469_20210604
          description: The DVP/RVP report identifier.
        tradeDate:
          type: string
          format: date
          example: '2021-06-04'
          pattern: yyyy-MM-dd
          description: The date for which the DVP/RVP was run for.
        status:
          type: string
          example: SUCCESSFUL
          description: The status of the generated report.
          enum:
          - PROCESSING
          - SUCCESSFUL
        note:
          $ref: '#/components/schemas/note'
        partnerID:
          $ref: '#/components/schemas/partnerID'
        created:
          $ref: '#/components/schemas/created'
        updated:
          $ref: '#/components/schemas/updated'
        updatedBy:
          $ref: '#/components/schemas/updatedBy'
        source:
          type: string
          example: MANUAL
          enum:
          - MANUAL
          - SYSTEM
          description: The method type in which the report was generated.
    date:
      type: string
      example: '2022-12-25'
      description: ''
    partnerID:
      type: string
      example: 80f9b672-120d-4b73-9ccv9-42fb3262c4b9
      description: The partner's unique identifier.
    ListOfDailyReconciliations:
      type: array
      description: A list of daily reconciliations for a firm.
      items:
        oneOf:
        - $ref: '#/components/schemas/DailyReconciliation'
    ListDVPRVP:
      type: array
      items:
        oneOf:
        - $ref: '#/components/schemas/DVPRVP'
    updatedBy:
      type: string
      example: SYSTEM
      enum:
      - SYSTEM REPORT SERVICE
      - INSTANT FUNDING BREAKDOWN JOB
    DVPRVPStatus:
      type: string
      example: Processing
      enum:
      - Processing
      - Successful
    DVPRVPDetails:
      type: object
      allOf:
      - $ref: '#/components/schemas/DVPRVP'
      - type: object
        properties:
          amount:
            type: object
            properties:
              totalBuy:
                type: object
                properties:
                  quantity:
                    type: number
                    example: 10.71358941
                    description: The amount of shares that were purchased.
                  notional:
                    type: number
                    example: 144.26
                    description: The total amount in USD value of the instruments.
                  orders:
                    type: number
                    example: 30
                    description: The total amount of orders assiocated to the amount of shares purchased.
              totalSell:
                type: object
                properties:
                  quantity:
                    type: number
                    example: 0
                    description: The amount of shares that were sold.
                  notional:
                    type: number
                    example: 0
                    description: The total amount in USD value of the instruments.
                  orders:
                    type: number
                    example: 0
                    description: The total amount of orders assiocated to the amount of shares sold.
          breakdownJson:
            type: string
            format: url
            description: A json file of the trade breakdown of all the purchases and sale transactions.
            example: https://du2c4wzqz90h1.cloudfront.net/buySellTradesReport....
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
    dwAppKey:
      type: apiKey
      in: header
      name: dw-client-app-key
    sessionToken:
      type: apiKey
      in: header
      name: dw-auth-token