Wingspan Collaborator Management API

This category includes endpoints that manage relationships and interactions with collaborators. This includes collaborator settings, and various operations related to collaborators.

OpenAPI Specification

wingspan-collaborator-management-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Wingspan Payments 1099 Operations Collaborator Management API
  description: Payments
  termsOfService: https://www.wingspan.app
  contact:
    name: Wingspan API Support
    url: https://www.wingspan.app
    email: support@wingspan.app
  license:
    name: UNLICENSED
    url: https://UNLICENSED
  version: 1.0.0-oas3.1
servers:
- url: https://api.wingspan.app
  description: Wingspan's Payments API in Production
  x-speakeasy-server-id: prod
- url: https://stagingapi.wingspan.app
  description: Wingspan's Payments API in Staging
  x-speakeasy-server-id: staging
security:
- BearerAuth: []
tags:
- name: Collaborator Management
  description: This category includes endpoints that manage relationships and interactions with collaborators. This includes collaborator settings, and various operations related to collaborators.
paths:
  /payments/collaborator-deduction:
    post:
      summary: Register a New Deduction for a Collaborator
      operationId: createDeductionCollaborator
      x-speakeasy-name-override: create_collaborator_deduction
      tags:
      - Collaborator Management
      description: Create and add a new deduction entry for a collaborator based on the provided data.
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DeductionCreateRequest'
      responses:
        '200':
          description: A deduction
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeductionResponse'
    get:
      summary: Retrieve All Deductions for Collaborators
      operationId: listDeductionCollaborators
      x-speakeasy-name-override: list_collaborator_deduction
      tags:
      - Collaborator Management
      description: Fetch a list of all deduction entries currently registered for collaborators.
      responses:
        '200':
          description: A list of deductions
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/DeductionResponse'
  /payments/collaborator-deduction/{id}:
    get:
      parameters:
      - in: path
        required: true
        name: id
        description: Unique identifier
        schema:
          type: string
      summary: Retrieve Specific Deduction Details
      operationId: getDeductionCollaborator
      x-speakeasy-name-override: get_collaborator_deduction
      tags:
      - Collaborator Management
      description: Fetch details of a specific deduction entry for a collaborator based on its unique identifier.
      responses:
        '200':
          description: A deduction
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeductionResponse'
    patch:
      parameters:
      - in: path
        required: true
        name: id
        description: Unique identifier
        schema:
          type: string
      summary: Modify Details of a Specific Deduction
      operationId: updateDeductionCollaborator
      x-speakeasy-name-override: update_collaborator_deduction
      tags:
      - Collaborator Management
      description: Update attributes or data related to an existing deduction entry for a collaborator.
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DeductionUpdateRequest'
      responses:
        '200':
          description: A deduction
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeductionResponse'
    delete:
      parameters:
      - in: path
        required: true
        name: id
        description: Unique identifier
        schema:
          type: string
      summary: Erase a Specific Deduction Entry
      operationId: deleteDeductionCollaborator
      x-speakeasy-name-override: delete_collaborator_deduction
      tags:
      - Collaborator Management
      description: Delete a specific deduction entry, eliminating its record from the system.
      responses:
        '200':
          description: A deduction
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeductionResponse'
  /payments/collaborator/{id}/events:
    get:
      parameters:
      - in: path
        required: true
        name: id
        description: Unique identifier
        schema:
          type: string
      summary: Retrieve Events Associated with a Collaborator
      operationId: getEventAssociatedCollaborator
      x-speakeasy-name-override: get_event_associated
      tags:
      - Collaborator Management
      description: Fetch a list of all events linked to a collaborator based on the provided collaborator ID.
      responses:
        '200':
          description: List of events on collaborator
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CollaboratorEvents'
  /payments/collaborator/{id}:
    get:
      parameters:
      - in: path
        required: true
        name: id
        description: Unique identifier
        schema:
          type: string
      summary: Retrieve Details of a Specific Collaborator
      operationId: getCollaborator
      x-speakeasy-name-override: get
      tags:
      - Collaborator Management
      description: Fetch detailed information about a specific collaborator using its unique identifier.
      responses:
        '200':
          description: A collaborator is a contractor that can receive payments
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CollaboratorSchema'
    patch:
      parameters:
      - in: path
        required: true
        name: id
        description: Unique identifier
        schema:
          type: string
      summary: Modify Collaborator Details
      operationId: updateCollaborator
      x-speakeasy-name-override: update
      tags:
      - Collaborator Management
      description: Update specific details or attributes related to an existing collaborator.
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CollaboratorUpdateRequest'
      responses:
        '200':
          description: A collaborator is a contractor that can receive payments
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CollaboratorSchema'
    delete:
      parameters:
      - in: path
        required: true
        name: id
        description: Unique identifier
        schema:
          type: string
      summary: Remove a Specific Collaborator Record
      operationId: deleteCollaborator
      x-speakeasy-name-override: delete
      tags:
      - Collaborator Management
      description: Permanently delete the record of a specific collaborator from the system.
      responses:
        '200':
          description: A collaborator is a contractor that can receive payments
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CollaboratorSchema'
  /payments/collaborator:
    get:
      summary: Retrieve All Registered Collaborators
      operationId: listRegisteredCollaborators
      x-speakeasy-name-override: list_registered
      tags:
      - Collaborator Management
      description: Fetch a comprehensive list of all collaborators currently registered in the system.
      responses:
        '200':
          description: ' A list of collaborators'
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/CollaboratorSchema'
    post:
      summary: Register a New Collaborator
      operationId: createCollaborator
      x-speakeasy-name-override: create
      tags:
      - Collaborator Management
      description: Add a new collaborator to the system, allowing them to be eligible for payments.
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CollaboratorCreateRequest'
      responses:
        '200':
          description: A collaborator is a contractor that can receive payments
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CollaboratorSchema'
  /payments/collaborator/{id}/add-group/{groupId}:
    patch:
      parameters:
      - in: path
        required: true
        name: id
        description: Unique identifier
        schema:
          type: string
      - in: path
        required: true
        name: groupId
        description: Unique group Id
        schema:
          type: string
      summary: Associate Collaborator with a Specific Group
      operationId: associateCollaboratorWithGroup
      x-speakeasy-name-override: associate
      tags:
      - Collaborator Management
      description: Add the specified collaborator to the designated group, allowing group-specific configurations and permissions.
      responses:
        '200':
          description: A collaborator is a contractor that can receive payments
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CollaboratorSchema'
  /payments/collaborator/{id}/remove-group/{groupId}:
    patch:
      parameters:
      - in: path
        required: true
        name: id
        description: Unique identifier
        schema:
          type: string
      - in: path
        required: true
        name: groupId
        description: Unique group Id
        schema:
          type: string
      summary: Disassociate Collaborator from a Specific Group
      operationId: disassociateCollaboratorWithGroup
      x-speakeasy-name-override: disassociate
      tags:
      - Collaborator Management
      description: Remove the collaborator from the designated group, revoking any group-specific configurations and permissions.
      responses:
        '200':
          description: A collaborator is a contractor that can receive payments
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CollaboratorSchema'
  /payments/collaborator-group:
    get:
      summary: Retrieve All Collaborator Groups
      operationId: listCollaboratorGroups
      x-speakeasy-name-override: list_collaborator_groups
      tags:
      - Collaborator Management
      description: Fetch a comprehensive list of all collaborator groups created by the client, showcasing configurations and member details.
      responses:
        '200':
          description: A list of Collaborator Configurations created by client
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/CollaboratorGroupResponse'
    post:
      summary: Generate New Collaborator Group
      operationId: createCollaboratorGroup
      x-speakeasy-name-override: create_collaborator_group
      tags:
      - Collaborator Management
      description: Create a new collaborator group with specific configurations and permissions as defined by the client.
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CollaboratorGroupCreateRequest'
      responses:
        '200':
          description: Collaborator Configuration Per Group
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CollaboratorGroupResponse'
  /payments/v2/collaborator:
    get:
      summary: Retrieve All Collaborators (Version 2)
      operationId: listCollaborators
      x-speakeasy-name-override: list
      tags:
      - Collaborator Management
      description: Fetches a comprehensive list of collaborators formatted in the V2 standard, providing an overview of all collaborator data.
      responses:
        '200':
          description: List of V2 Collaborators
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/CollaboratorV2'
  /payments/v2/collaborator/{memberId}:
    get:
      parameters:
      - in: path
        required: true
        name: memberId
        description: Unique identifier of a member
        schema:
          type: string
      summary: Retrieve Specific Collaborator Details (Version 2)
      operationId: listSpecificCollaboratorDetails
      x-speakeasy-name-override: list_specific_collaborator_detail
      tags:
      - Collaborator Management
      description: Fetches detailed information of a specific collaborator, identified by the memberId, in the V2 format.
      responses:
        '200':
          description: A single V2 Collaborator
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CollaboratorV2'
components:
  schemas:
    CompanyLinks:
      type: object
      properties:
        instagramUrl:
          type:
          - string
          - 'null'
        linkedInUrl:
          type:
          - string
          - 'null'
        otherUrl:
          type:
          - string
          - 'null'
        twitterUrl:
          type:
          - string
          - 'null'
        websiteUrl:
          type:
          - string
          - 'null'
    Form1099Correction:
      type: object
      properties:
        address:
          oneOf:
          - type: 'null'
          - type: object
        companyStructure:
          type:
          - string
          - 'null'
          enum:
          - None
          - SoleProprietorship
          - LlcSingleMember
          - LlcMultiMember
          - CorporationS
          - LLCCorporationS
          - LLCCorporationC
          - LLCPartnership
          - CorporationC
          - Partnership
          - null
        ein:
          type:
          - string
          - 'null'
        firstName:
          type:
          - string
          - 'null'
        lastName:
          type:
          - string
          - 'null'
        legalBusinessName:
          type:
          - string
          - 'null'
        ssn:
          type:
          - string
          - 'null'
        totalAmount:
          type:
          - number
          - 'null'
    87539cb97aa7616e350fc0d23c5a49177ea4c4a8bd00ec2a2cfd2a9a5c4e648a:
      type: object
      additionalProperties:
        type: string
    8a9c6cb49482a98cdd603ff09858cdc3e5ef6ad9807c876c4161d925a96694a5:
      type: object
      properties:
        amount:
          type:
          - number
          - 'null'
        comment:
          type:
          - string
          - 'null'
        status:
          type:
          - string
          - 'null'
          enum:
          - Open
          - Accepted
          - Rejected
          - null
    DeductionResponse:
      type: object
      properties:
        amount:
          type: number
        application:
          type: array
          items:
            $ref: '#/components/schemas/DeductionApplication'
        clientId:
          type: string
        createdAt:
          type: string
        currency:
          type: string
          enum:
          - USD
          - CAD
        deductionId:
          type: string
        eventActors:
          $ref: '#/components/schemas/87539cb97aa7616e350fc0d23c5a49177ea4c4a8bd00ec2a2cfd2a9a5c4e648a'
        labels:
          $ref: '#/components/schemas/LabelsDictionary'
        memberId:
          type: string
        name:
          type: string
        priority:
          type: number
        startDate:
          type: string
        status:
          type: string
          enum:
          - Pending
          - PartiallyApplied
          - Complete
        type:
          type: string
          enum:
          - PrePayment
          - PostPayment
        updatedAt:
          type: string
        userRoles:
          $ref: '#/components/schemas/UserRoles'
        deductionTemplateId:
          type:
          - string
          - 'null'
        disbursement:
          oneOf:
          - type: 'null'
          - $ref: '#/components/schemas/PostPaymentDeductionDisbursement'
        sourceInvoiceId:
          type:
          - string
          - 'null'
      required:
      - amount
      - application
      - clientId
      - createdAt
      - currency
      - deductionId
      - eventActors
      - labels
      - memberId
      - name
      - priority
      - startDate
      - status
      - type
      - updatedAt
      - userRoles
    6a65bb5a9fe6d1135b7182baff68e9bc6612ee2c1ab942926fe2804c58663cf4:
      type: object
      properties:
        expenseAccountId:
          type:
          - string
          - 'null'
        vendorId:
          type:
          - string
          - 'null'
    MemberClientForm1099Balances:
      type: object
      properties:
        adjustments:
          type: number
        deliveryMethod:
          type: string
          enum:
          - Electronic
          - Mail
        exclusionReason:
          type: string
          enum:
          - BelowThreshold
          - CompanyStructure
          - NonUsEntity
        form1099Generated:
          type: boolean
        paymentProcessingFees:
          type: number
        platformIncome:
          type: number
        status:
          type: string
          enum:
          - Ready
          - NeedsActionInfo
          - NeedsActionDispute
          - Submitted
          - Rejected
          - Accepted
          - Excluded
        type:
          type: string
          enum:
          - NEC
        correction:
          oneOf:
          - type: 'null'
          - $ref: '#/components/schemas/Form1099Correction'
        dispute:
          oneOf:
          - type: 'null'
          - $ref: '#/components/schemas/8a9c6cb49482a98cdd603ff09858cdc3e5ef6ad9807c876c4161d925a96694a5'
        events:
          oneOf:
          - type: 'null'
          - $ref: '#/components/schemas/Form1099Events'
        taxForm:
          oneOf:
          - type: 'null'
          - type: object
        taxFormId:
          type:
          - string
          - 'null'
      required:
      - adjustments
      - deliveryMethod
      - exclusionReason
      - form1099Generated
      - paymentProcessingFees
      - platformIncome
      - status
      - type
    ClientData:
      type: object
      properties:
        autoPayStrategy:
          type:
          - string
          - 'null'
          enum:
          - All
          - None
          - null
        externalId:
          type:
          - string
          - 'null'
        verificationStratgy:
          type:
          - string
          - 'null'
          enum:
          - None
          - All
          - null
    CollaboratorV2:
      type: object
      properties:
        achCreditAccount:
          $ref: '#/components/schemas/MemberClientWireAccount'
        clientId:
          type: string
        collaborations:
          type: array
          items:
            $ref: '#/components/schemas/Collaboration'
        createdAt:
          type: string
        eventActors:
          $ref: '#/components/schemas/87539cb97aa7616e350fc0d23c5a49177ea4c4a8bd00ec2a2cfd2a9a5c4e648a'
        firstCollaborationId:
          type: string
        form1099Balances:
          $ref: '#/components/schemas/b9789f45f8c8070ff38a64d80c2e4a8732ddaf329e46546474400d26f84c0f1c'
        formW9Data:
          $ref: '#/components/schemas/CollaboratorV2FormW9Info'
        internationalWireAccount:
          $ref: '#/components/schemas/MemberClientWireAccount'
        labels:
          $ref: '#/components/schemas/LabelsDictionary'
        member:
          $ref: '#/components/schemas/RedactedMember'
        memberId:
          type: string
        primaryCollaborationId:
          type: string
        status:
          type: string
          enum:
          - Active
          - Inactive
          - Pending
        taxStatus:
          type: string
          enum:
          - Complete
          - Failed
          - Pending
          - Incomplete
        updatedAt:
          type: string
        userRoles:
          $ref: '#/components/schemas/UserRoles'
        clientData:
          oneOf:
          - type: 'null'
          - $ref: '#/components/schemas/ClientData'
        memberData:
          oneOf:
          - type: 'null'
          - $ref: '#/components/schemas/MemberData'
        memberEvents:
          oneOf:
          - type: 'null'
          - $ref: '#/components/schemas/CollaboratorEvents'
      required:
      - achCreditAccount
      - clientId
      - collaborations
      - createdAt
      - eventActors
      - firstCollaborationId
      - form1099Balances
      - formW9Data
      - internal
      - internationalWireAccount
      - labels
      - member
      - memberId
      - primaryCollaborationId
      - status
      - taxStatus
      - updatedAt
      - userRoles
    b9789f45f8c8070ff38a64d80c2e4a8732ddaf329e46546474400d26f84c0f1c:
      type: object
      properties:
        '2021':
          oneOf:
          - type: 'null'
          - $ref: '#/components/schemas/MemberClientForm1099Balances'
        '2022':
          oneOf:
          - type: 'null'
          - $ref: '#/components/schemas/MemberClientForm1099Balances'
    MemberClientFormW9Info:
      type: object
      properties:
        addressLine1:
          type:
          - string
          - 'null'
        addressLine2:
          type:
          - string
          - 'null'
        city:
          type:
          - string
          - 'null'
        companyStructure:
          type:
          - string
          - 'null'
          enum:
          - None
          - SoleProprietorship
          - LlcSingleMember
          - LlcMultiMember
          - CorporationS
          - LLCCorporationS
          - LLCCorporationC
          - LLCPartnership
          - CorporationC
          - Partnership
          - null
        country:
          type:
          - string
          - 'null'
        dob:
          type:
          - string
          - 'null'
        ein:
          type:
          - string
          - 'null'
        firstName:
          type:
          - string
          - 'null'
        lastName:
          type:
          - string
          - 'null'
        legalBusinessName:
          type:
          - string
          - 'null'
        postalCode:
          type:
          - string
          - 'null'
        ssn:
          type:
          - string
          - 'null'
        state:
          type:
          - string
          - 'null'
    MemberClientRequirementResponse:
      type: object
      properties:
        clientId:
          type: string
        collaboratorGroupId:
          type: string
        eligibilityRequirementId:
          type: string
        requirementType:
          type: string
          enum:
          - Signature
        document:
          oneOf:
          - type: 'null'
          - $ref: '#/components/schemas/DocumentResponse'
        documentId:
          type:
          - string
          - 'null'
        status:
          type:
          - string
          - 'null'
          enum:
          - New
          - Sent
          - Pending
          - Complete
          - null
        templateId:
          type:
          - string
          - 'null'
        validFor:
          type:
          - number
          - 'null'
      required:
      - clientId
      - collaboratorGroupId
      - eligibilityRequirementId
      - requirementType
    RedactedMember:
      type: object
      properties:
        user:
          $ref: '#/components/schemas/RedactedUser'
        profile:
          oneOf:
          - type: 'null'
          - $ref: '#/components/schemas/23d776fc12e56286a20f36065e4f942c43a28218a62eb2f211116c130deb74eb'
      required:
      - user
    UserRoles:
      type: object
      properties:
        ownerIds:
          type: array
          items:
            type: string
        viewerIds:
          type: array
          items:
            type: string
      required:
      - ownerIds
      - viewerIds
    MemberClientWireAccount:
      type: object
      properties:
        accountNumber:
          type: string
        bankName:
          type: string
        routingNumber:
          type:
          - string
          - 'null'
        swiftCode:
          type:
          - string
          - 'null'
      required:
      - accountNumber
      - bankName
    CollaboratorGroupResponse:
      type: object
      properties:
        clientId:
          type: string
        collaboratorGroupId:
          type: string
        defaultGroup:
          type: boolean
        description:
          type: string
        name:
          type: string
        collaboratorSettings:
          oneOf:
          - type: 'null'
          - $ref: '#/components/schemas/LabelsDictionary'
        eligibilityRequirements:
          type:
          - array
          - 'null'
          items:
            oneOf:
            - type: 'null'
            - $ref: '#/components/schemas/EligibilityRequirement'
      required:
      - clientId
      - collaboratorGroupId
      - defaultGroup
      - description
      - name
    CollaboratorUpdateRequest:
      type: object
      properties:
        clientData:
          oneOf:
          - type: 'null'
          - $ref: '#/components/schemas/ClientData'
        form1099Balances:
          oneOf:
          - type: 'null'
          - $ref: '#/components/schemas/90f96495b02c2509fff131505484d46479a91b7d23ed2b0f438ca117d0bccad7'
        formW9Data:
          oneOf:
          - type: 'null'
          - type: object
        integration:
          oneOf:
          - type: 'null'
          - $ref: '#/components/schemas/26e8ea23ccb1e007e7d6560175c7e75c768dac34727b7fe1d834ca24b8221ef4'
        labels:
          oneOf:
          - type: 'null'
          - $ref: '#/components/schemas/LabelsDictionary'
        status:
          type:
          - string
          - 'null'
          enum:
          - Active
          - Inactive
          - Pending
          - null
    26e8ea23ccb1e007e7d6560175c7e75c768dac34727b7fe1d834ca24b8221ef4:
      type: object
      properties:
        quickbooks:
          oneOf:
          - type: 'null'
          - $ref: '#/components/schemas/6a65bb5a9fe6d1135b7182baff68e9bc6612ee2c1ab942926fe2804c58663cf4'
    EligibilityRequirement:
      type: object
      properties:
        clientId:
          type: string
        eligibilityRequirementId:
          type: string
        requirementType:
          type: string
          enum:
          - Signature
        templateId:
          type:
          - string
          - 'null'
        validFor:
          type:
          - number
          - 'null'
      required:
      - clientId
      - eligibilityRequirementId
      - requirementType
    CollaboratorV2FormW9Info:
      type: object
      properties:
        addressLine1:
          type: string
        city:
          type: string
        companyStructure:
          type: string
          enum:
          - None
          - SoleProprietorship
          - LlcSingleMember
          - LlcMultiMember
          - CorporationS
          - LLCCorporationS
          - LLCCorporationC
          - LLCPartnership
          - CorporationC
          - Partnership
        country:
          type: string
        postalCode:
          type: string
        state:
          type: string
        addressLine2:
          type:
          - string
          - 'null'
        dob:
          type:
          - string
          - 'null'
        ein:
          type:
          - string
          - 'null'
        firstName:
          type:
          - string
          - 'null'
        lastName:
          type:
          - string
          - 'null'
        legalBusinessName:
          type:
          - string
          - 'null'
        ssnLastFour:
          type:
          - string
          - 'null'
      required:
      - addressLine1
      - city
      - companyStructure
      - country
      - postalCode
      - state
    ce853dbef33b2b91880690c84bc5314340c1301fd7b3503dd6ce79c844e2a481:
      type: object
      properties:
        address:
          oneOf:
          - type: 'null'
          - type: object
        companyStructure:
          type:
          - string
          - 'null'
          enum:
          - None
          - SoleProprietorship
          - LlcSingleMember
          - LlcMultiMember
          - CorporationS
          - LLCCorporationS
          - LLCCorporationC
          - LLCPartnership
          - CorporationC
          - Partnership
          - null
        ein:
          type:
          - string
          - 'null'
        firstName:
          type:
          - string
          - 'null'
        lastName:
          type:
          - string
          - 'null'
        legalBusinessName:
          type:
          - string
          - 'null'
        ssn:
          type:
          - string
          - 'null'
        totalAmount:
          type:
          - number
          - 'null'
    Form1099Events:
      type: object
      properties:
        acceptedByCollaboratorAt:
          type:
          - string
          - 'null'
        createdAt:
          type:
          - string
          - 'null'
        postFilingSuggestionMadeAt:
          type:
          - string
          - 'null'
        postFilingSuggestionResolvedAt:
          type:
          - string
          - 'null'
        submittedForCollaboratorReviewAt:
          type:
          - string
          - 'null'
        suggestionMadeAt:
          type:
          - string
          - 'null'
        suggestionResolvedAt:
          type:
          - string
          - 'null'
        updatedAt:
          type:
          - string
          - 'null'
    DocumentResponse:
      type: object
      properties:
        clientId:
          type: string
        documentId:
          type: string
        memberId:
          type: string
        status:
          type: string
          enum:
          - Required
          - Approved
          - Invalid
          - ReceivedFront
          - ReceivedBack
          - PendingReview
        templateId:
          type: string
        title:
          type: string
        userRoles:
          $ref: '#/components/schemas/UserRoles'
        events:
          oneOf:
          - type: 'null'
          - $ref: '#/components/schemas/DocumentEvents'
        files:
          oneOf:
          - type: 'null'
          - $ref: '#/components/schemas/DocumentFiles'
      required:
      - clientId
      - documentId
      - memberId
      - status
      - templateId
      - title
      - userRoles
    DocumentFiles:
      type: object
      properties:
        client:
          type:
          - string
          - 'null'
        member:
          type:
          - string
          - 'null'
    DeductionCreateRequest:
      type: object
      properties:
        amount:
          type: number
        clientId:
          type: string
        currency:
          type: string
          enum:
          - USD
          - CAD
        memberId:
          type: string
        name:
          type: string
        type:
          type: string
          enum:
          - PrePayment
          - PostPayment
        priority:
          type:
          - number
          - 'null'
        sourceInvoiceId:
          type:
          - string
          - 'null'
        startDate:
          type:
          - string
          - 'null'
      required:
      - amount
      - clientId
      - currency
      - memberId
      - name
      - type
    CompanyPerson:
      type: object
      properties:
        memberId:
          type: string
        ownershipPercentage:
          type:
          - number
          - 'null'
      required:
      - memberId
    Company:
      type: object
      properties:
        banking:
          type:
          - boolean
          - 'null'
        companyOwners:
          type:
          - array
          - 'null'
          items:
            oneOf:
            - type: 'null'
            - $ref: '#/components/schemas/CompanyPerson'
        description:
          type:
          - string
          - 'null'
        disregardedEntityName:
          type:
          - string
          - 'nu

# --- truncated at 32 KB (44 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/wingspan/refs/heads/main/openapi/wingspan-collaborator-management-api-openapi.yml